linear-grab 0.22.1 → 0.22.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45784,7 +45784,30 @@ async function e2(e) {
45784
45784
  states: []
45785
45785
  };
45786
45786
  }
45787
- async function t2(e, t, n) {
45787
+ var t2 = {
45788
+ active: !1,
45789
+ msLeft: 0,
45790
+ total: 0,
45791
+ byTrigger: {}
45792
+ }, n2 = /* @__PURE__ */ new Set();
45793
+ function r2(e) {
45794
+ t2 = {
45795
+ ...t2,
45796
+ ...e
45797
+ };
45798
+ for (let e of n2) e(t2);
45799
+ }
45800
+ function i2(e) {
45801
+ return n2.add(e), e(t2), () => void n2.delete(e);
45802
+ }
45803
+ var a2 = null;
45804
+ function o2() {
45805
+ a2?.();
45806
+ }
45807
+ function s2(e) {
45808
+ return e === "hover" || e === "focus" ? e : "open";
45809
+ }
45810
+ async function c2(e, t, n) {
45788
45811
  let r = q0(), i = await X0(), a = [], o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map(), c = (e) => Q0(e, r).styles, l = (e) => {
45789
45812
  if (!(s.size >= 120)) {
45790
45813
  s.set(e, c(e));
@@ -45805,11 +45828,20 @@ async function t2(e, t, n) {
45805
45828
  }
45806
45829
  if (Object.keys(l).length === 0) return;
45807
45830
  let u = Z0(e, i), d = `${t}|${u}|${Object.keys(l).join(",")}`;
45808
- o.has(d) || (o.add(d), a.push({
45831
+ if (o.has(d)) return;
45832
+ o.add(d), a.push({
45809
45833
  trigger: t,
45810
45834
  label: u,
45811
45835
  changed: l
45812
- }));
45836
+ });
45837
+ let f = s2(t);
45838
+ r2({
45839
+ total: t2.total + 1,
45840
+ byTrigger: {
45841
+ ...t2.byTrigger,
45842
+ [f]: (t2.byTrigger[f] ?? 0) + 1
45843
+ }
45844
+ });
45813
45845
  }, d = (e) => {
45814
45846
  let t = e.target;
45815
45847
  t instanceof Element && s.has(t) && setTimeout(() => u(t, "hover"), 50);
@@ -45854,20 +45886,39 @@ async function t2(e, t, n) {
45854
45886
  trigger: "appeared (portal/open)",
45855
45887
  label: n,
45856
45888
  changed: c
45889
+ }), r2({
45890
+ total: t2.total + 1,
45891
+ byTrigger: {
45892
+ ...t2.byTrigger,
45893
+ open: (t2.byTrigger.open ?? 0) + 1
45894
+ }
45857
45895
  });
45858
45896
  }, 50);
45859
45897
  });
45860
45898
  m.observe(document.body, {
45861
45899
  childList: !0,
45862
45900
  subtree: !1
45901
+ }), r2({
45902
+ active: !0,
45903
+ msLeft: t,
45904
+ total: 0,
45905
+ byTrigger: {}
45863
45906
  });
45864
45907
  let h = setInterval(() => {
45865
45908
  let e = t - (Date.now() - g);
45866
- n?.(Math.max(0, e));
45909
+ n?.(Math.max(0, e)), r2({ msLeft: Math.max(0, e) });
45867
45910
  }, 250), g = Date.now();
45868
- return await new Promise((e) => setTimeout(e, t)), clearInterval(h), e.removeEventListener("pointerover", d, !0), e.removeEventListener("focusin", f, !0), p.disconnect(), m.disconnect(), a;
45911
+ return await new Promise((e) => {
45912
+ let n = setTimeout(e, t);
45913
+ a2 = () => {
45914
+ clearTimeout(n), e();
45915
+ };
45916
+ }), a2 = null, r2({
45917
+ active: !1,
45918
+ msLeft: 0
45919
+ }), clearInterval(h), e.removeEventListener("pointerover", d, !0), e.removeEventListener("focusin", f, !0), p.disconnect(), m.disconnect(), a;
45869
45920
  }
45870
- function n2(e) {
45921
+ function l2(e) {
45871
45922
  let t = [
45872
45923
  `# Design genome: ${e.title}`,
45873
45924
  `Extracted from ${e.pageUrl}`,
@@ -45888,7 +45939,7 @@ function n2(e) {
45888
45939
  }
45889
45940
  return t.join("\n");
45890
45941
  }
45891
- function r2() {
45942
+ function u2() {
45892
45943
  return new Promise((e) => {
45893
45944
  let t = document.createElement("div");
45894
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);
@@ -45915,48 +45966,55 @@ function r2() {
45915
45966
  }
45916
45967
  //#endregion
45917
45968
  //#region src/panel/views/DesignView.tsx
45918
- var i2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), a2 = /*#__PURE__*/ N("<p class=\"text-warn px-1 text-[11px] font-medium\">Recording interactions — hover / open the component now… <span class=tabular-nums>s"), o2 = /*#__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>"), s2 = /*#__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."), c2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), l2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[8ch] text-center\">"), u2 = /*#__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.5\">"), d2 = /*#__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\">"), f2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), p2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), m2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), h2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), g2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), _2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), v2 = "linear-grab:genomes:v1", y2 = 30;
45919
- function b2() {
45969
+ var d2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), f2 = /*#__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>"), p2 = /*#__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."), m2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), h2 = /*#__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>"), g2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), _2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), v2 = /*#__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\">"), y2 = /*#__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\">"), b2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), x2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), S2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), C2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), w2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), T2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), E2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), D2 = /*#__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>"), O2 = /*#__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\">"), k2 = "linear-grab:genomes:v1", A2 = 30;
45970
+ function j2() {
45920
45971
  try {
45921
- return JSON.parse(localStorage.getItem(v2) ?? "[]");
45972
+ return JSON.parse(localStorage.getItem(k2) ?? "[]");
45922
45973
  } catch {
45923
45974
  return [];
45924
45975
  }
45925
45976
  }
45926
- function x2(e) {
45977
+ function M2(e) {
45927
45978
  try {
45928
- localStorage.setItem(v2, JSON.stringify(e.slice(0, y2)));
45979
+ localStorage.setItem(k2, JSON.stringify(e.slice(0, A2)));
45929
45980
  } catch {}
45930
45981
  }
45931
- var S2 = /* @__PURE__ */ new Map();
45932
- function C2() {
45933
- let [e, t] = T(b2()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), f = (e) => {
45934
- t(e), x2(e);
45935
- }, p = async () => {
45982
+ var N2 = /* @__PURE__ */ new Map();
45983
+ function P2() {
45984
+ let [e, t] = T(j2()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
45985
+ active: !1,
45986
+ msLeft: 0,
45987
+ total: 0,
45988
+ byTrigger: {}
45989
+ });
45990
+ ae(i2(p));
45991
+ let m = (e) => {
45992
+ t(e), M2(e);
45993
+ }, h = async () => {
45936
45994
  l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
45937
45995
  try {
45938
- let t = await r2();
45996
+ let t = await u2();
45939
45997
  if (!t) return;
45940
45998
  let n = await e2(t), i = Date.now();
45941
- S2.set(i, new WeakRef(t)), f([{
45999
+ N2.set(i, new WeakRef(t)), m([{
45942
46000
  id: i,
45943
46001
  genome: n
45944
46002
  }, ...e()]), r(i);
45945
46003
  } catch (e) {
45946
46004
  l(e instanceof Error ? e.message : String(e));
45947
46005
  } finally {
45948
- a(null), window.dispatchEvent(new CustomEvent(VZ));
46006
+ a(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
45949
46007
  }
45950
- }, m = async (t) => {
46008
+ }, g = async (t) => {
45951
46009
  l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
45952
46010
  try {
45953
- let n = S2.get(t.id)?.deref() ?? null;
46011
+ let n = N2.get(t.id)?.deref() ?? null;
45954
46012
  if (!n || !n.isConnected) {
45955
- if (n = await r2(), !n) return;
45956
- S2.set(t.id, new WeakRef(n));
46013
+ if (n = await u2(), !n) return;
46014
+ N2.set(t.id, new WeakRef(n));
45957
46015
  }
45958
- let r = await t2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
45959
- r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), f(e().map((e) => e.id === t.id ? {
46016
+ let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
46017
+ r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), m(e().map((e) => e.id === t.id ? {
45960
46018
  ...e,
45961
46019
  genome: {
45962
46020
  ...e.genome,
@@ -45966,36 +46024,28 @@ function C2() {
45966
46024
  } catch (e) {
45967
46025
  l(e instanceof Error ? e.message : String(e));
45968
46026
  } finally {
45969
- a(null), s(null), window.dispatchEvent(new CustomEvent(VZ));
46027
+ a(null), s(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
45970
46028
  }
45971
- }, h = async (e) => {
46029
+ }, _ = async (e) => {
45972
46030
  try {
45973
- await navigator.clipboard.writeText(n2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
46031
+ await navigator.clipboard.writeText(l2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
45974
46032
  } catch {
45975
46033
  l("Clipboard was blocked — click Copy again.");
45976
46034
  }
45977
- }, g = (t) => {
45978
- S2.delete(t), f(e().filter((e) => e.id !== t));
46035
+ }, v = (t) => {
46036
+ N2.delete(t), m(e().filter((e) => e.id !== t));
45979
46037
  };
45980
46038
  return (() => {
45981
- var t = s2(), a = t.firstChild;
46039
+ var t = p2(), a = t.firstChild;
45982
46040
  return a.firstChild, P(a, j(kj, {
45983
46041
  variant: "primary",
45984
46042
  class: "h-7 shrink-0 px-2.5 text-[11.5px]",
45985
46043
  get loading() {
45986
46044
  return i() === "extract";
45987
46045
  },
45988
- onClick: () => void p(),
45989
- get children() {
45990
- return i2();
45991
- }
45992
- }), null), P(t, j(M, {
45993
- get when() {
45994
- return o() !== null;
45995
- },
46046
+ onClick: () => void h(),
45996
46047
  get children() {
45997
- var e = a2(), t = e.firstChild.nextSibling, n = t.firstChild;
45998
- return P(t, o, n), e;
46048
+ return d2();
45999
46049
  }
46000
46050
  }), null), P(t, j(M, {
46001
46051
  get when() {
@@ -46017,7 +46067,7 @@ function C2() {
46017
46067
  });
46018
46068
  },
46019
46069
  get children() {
46020
- var t = o2();
46070
+ var t = f2();
46021
46071
  return t.firstChild, P(t, j(We, {
46022
46072
  get each() {
46023
46073
  return e();
@@ -46025,30 +46075,30 @@ function C2() {
46025
46075
  children: (e) => {
46026
46076
  let t = () => n() === e.id;
46027
46077
  return (() => {
46028
- var n = d2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, f = d.nextSibling;
46029
- f.nextSibling;
46030
- var p = l.nextSibling;
46078
+ var n = b2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
46079
+ p.nextSibling;
46080
+ var m = l.nextSibling;
46031
46081
  return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
46032
46082
  var t = $e(() => !!e.genome.states.length);
46033
46083
  return () => t() ? ` · ${e.genome.states.length} states` : "";
46034
- })(), f), P(l, () => Wj(e.genome.extractedAt), null), P(o, j(M, {
46084
+ })(), p), P(l, () => Wj(e.genome.extractedAt), null), P(o, j(M, {
46035
46085
  get when() {
46036
46086
  return t();
46037
46087
  },
46038
46088
  get children() {
46039
- var t = u2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46089
+ var t = y2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46040
46090
  return P(n, () => e.genome.pageUrl), P(r, j(We, {
46041
46091
  get each() {
46042
46092
  return e.genome.nodes;
46043
46093
  },
46044
46094
  children: (e) => (() => {
46045
- var t = p2(), n = t.firstChild;
46095
+ var t = S2(), n = t.firstChild;
46046
46096
  return P(n, () => e.label, null), P(n, j(M, {
46047
46097
  get when() {
46048
46098
  return e.count > 1;
46049
46099
  },
46050
46100
  get children() {
46051
- var t = f2();
46101
+ var t = x2();
46052
46102
  return t.firstChild, P(t, () => e.count, null), t;
46053
46103
  }
46054
46104
  }), null), P(t, j(We, {
@@ -46056,13 +46106,13 @@ function C2() {
46056
46106
  return Object.entries(e.styles);
46057
46107
  },
46058
46108
  children: ([t, n]) => (() => {
46059
- var r = h2(), i = r.firstChild;
46109
+ var r = w2(), i = r.firstChild;
46060
46110
  return P(r, t, i), P(r, n, null), P(r, j(M, {
46061
46111
  get when() {
46062
46112
  return e.tokens[t];
46063
46113
  },
46064
46114
  get children() {
46065
- var n = m2(), r = n.firstChild.nextSibling;
46115
+ var n = C2(), r = n.firstChild.nextSibling;
46066
46116
  return r.nextSibling, P(n, () => e.tokens[t], r), n;
46067
46117
  }
46068
46118
  }), null), r;
@@ -46074,52 +46124,95 @@ function C2() {
46074
46124
  return e.genome.states.length > 0;
46075
46125
  },
46076
46126
  get children() {
46077
- return [c2(), j(We, {
46127
+ return [m2(), j(We, {
46078
46128
  get each() {
46079
46129
  return e.genome.states;
46080
46130
  },
46081
46131
  children: (e) => (() => {
46082
- var t = g2(), n = t.firstChild, r = n.firstChild;
46132
+ var t = T2(), n = t.firstChild, r = n.firstChild;
46083
46133
  return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
46084
46134
  get each() {
46085
46135
  return Object.entries(e.changed);
46086
46136
  },
46087
46137
  children: ([e, t]) => (() => {
46088
- var n = _2(), r = n.firstChild, i = r.nextSibling;
46138
+ var n = E2(), r = n.firstChild, i = r.nextSibling;
46089
46139
  return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
46090
46140
  })()
46091
46141
  }), null), t;
46092
46142
  })()
46093
46143
  })];
46094
46144
  }
46095
- }), null), P(a, j(kj, {
46096
- class: "h-6 px-2 text-[11px]",
46097
- variant: "ghost",
46098
- get loading() {
46099
- return i() === e.id;
46145
+ }), null), P(a, j(M, {
46146
+ get when() {
46147
+ return $e(() => i() === e.id)() && f().active;
46100
46148
  },
46101
- title: "Record hover/focus/open styles for 8 seconds while you interact",
46102
- onClick: () => void m(e),
46103
- children: "Capture states"
46149
+ get fallback() {
46150
+ return j(kj, {
46151
+ class: "size-7 px-0",
46152
+ variant: "ghost",
46153
+ get loading() {
46154
+ return i() === e.id;
46155
+ },
46156
+ title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
46157
+ "aria-label": "Capture interaction states",
46158
+ onClick: () => void g(e),
46159
+ get children() {
46160
+ return D2();
46161
+ }
46162
+ });
46163
+ },
46164
+ get children() {
46165
+ return [j(kj, {
46166
+ class: "text-danger size-7 px-0",
46167
+ variant: "ghost",
46168
+ get title() {
46169
+ return `Stop recording — ${Math.ceil(f().msLeft / 1e3)}s left · ${f().total} captured`;
46170
+ },
46171
+ "aria-label": "Stop recording states",
46172
+ onClick: () => o2(),
46173
+ get children() {
46174
+ return h2();
46175
+ }
46176
+ }), (() => {
46177
+ var e = g2(), t = e.firstChild, n = t.nextSibling;
46178
+ return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
46179
+ })()];
46180
+ }
46104
46181
  }), null), P(a, j(kj, {
46105
- class: "h-6 px-2 text-[11px]",
46182
+ class: "size-7 px-0",
46106
46183
  variant: "ghost",
46107
- title: "Copy the genome as a markdown spec — paste to an agent or issue",
46108
- onClick: () => void h(e),
46184
+ get title() {
46185
+ return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
46186
+ },
46187
+ "aria-label": "Copy genome spec",
46188
+ onClick: () => void _(e),
46109
46189
  get children() {
46110
- var t = l2();
46111
- return P(t, () => u() === e.id ? "Copied ✓" : "Copy spec"), t;
46190
+ return j(M, {
46191
+ get when() {
46192
+ return u() === e.id;
46193
+ },
46194
+ get fallback() {
46195
+ return O2();
46196
+ },
46197
+ get children() {
46198
+ return _2();
46199
+ }
46200
+ });
46112
46201
  }
46113
46202
  }), null), P(a, j(kj, {
46114
- class: "text-danger ml-auto h-6 px-2 text-[11px]",
46203
+ class: "text-danger ml-auto size-7 px-0",
46115
46204
  variant: "ghost",
46116
- onClick: () => g(e.id),
46117
- children: "Delete"
46205
+ title: "Delete this genome",
46206
+ "aria-label": "Delete genome",
46207
+ onClick: () => v(e.id),
46208
+ get children() {
46209
+ return v2();
46210
+ }
46118
46211
  }), null), t;
46119
46212
  }
46120
46213
  }), null), D((e) => {
46121
46214
  var n = { "bg-accent border-accent": t() }, r = !!t();
46122
- return e.e = lt(a, n, e.e), r !== e.t && p.classList.toggle("rotate-180", e.t = r), e;
46215
+ return e.e = lt(a, n, e.e), r !== e.t && m.classList.toggle("rotate-180", e.t = r), e;
46123
46216
  }, {
46124
46217
  e: void 0,
46125
46218
  t: void 0
@@ -46134,7 +46227,7 @@ function C2() {
46134
46227
  rt(["click"]);
46135
46228
  //#endregion
46136
46229
  //#region src/lib/projectConfig.ts
46137
- var w2 = [
46230
+ var F2 = [
46138
46231
  "defaultTeamId",
46139
46232
  "defaultProjectId",
46140
46233
  "defaultLabelIds",
@@ -46149,29 +46242,29 @@ var w2 = [
46149
46242
  "issueTemplate",
46150
46243
  "testUsername"
46151
46244
  ];
46152
- function T2(e) {
46245
+ function I2(e) {
46153
46246
  let t = {};
46154
- for (let n of w2) {
46247
+ for (let n of F2) {
46155
46248
  let r = e[n];
46156
46249
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
46157
46250
  }
46158
46251
  return t;
46159
46252
  }
46160
- function E2(e, t) {
46253
+ function L2(e, t) {
46161
46254
  let n = {};
46162
- for (let r of w2) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46255
+ for (let r of F2) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46163
46256
  return Object.keys(n).length ? n : null;
46164
46257
  }
46165
46258
  //#endregion
46166
46259
  //#region src/lib/linear/auth.ts
46167
46260
  Br();
46168
- function D2(e) {
46261
+ function R2(e) {
46169
46262
  let t = "";
46170
46263
  for (let n of e) t += String.fromCharCode(n);
46171
46264
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
46172
46265
  }
46173
- async function O2(e) {
46174
- let t = D2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = D2(new Uint8Array(n)), i = D2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46266
+ async function z2(e) {
46267
+ let t = R2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = R2(new Uint8Array(n)), i = R2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46175
46268
  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");
46176
46269
  let s = await chrome.identity.launchWebAuthFlow({
46177
46270
  url: o.toString(),
@@ -46199,15 +46292,15 @@ async function O2(e) {
46199
46292
  linearOauthClientId: e
46200
46293
  });
46201
46294
  }
46202
- async function k2() {
46295
+ async function B2() {
46203
46296
  await Er({
46204
46297
  linearAccessToken: void 0,
46205
46298
  linearApiKey: void 0
46206
46299
  });
46207
46300
  }
46208
46301
  Br(), Sr(), Fx(), gD();
46209
- var A2 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), j2 = /*#__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."), M2 = /*#__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"), N2 = /*#__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)."), P2 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), F2 = /*#__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]\">"), I2 = /*#__PURE__*/ N("<option value>Select a team…"), L2 = /*#__PURE__*/ N("<option value>No project"), R2 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), z2 = /*#__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."), B2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), V2 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), H2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), U2 = /*#__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."), W2 = /*#__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."), G2 = /*#__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."), K2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), q2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), J2 = /*#__PURE__*/ N("<option value>Select a channel…"), Y2 = /*#__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"), X2 = /*#__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."), Z2 = /*#__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"), Q2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), $2 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), e4 = /*#__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."), t4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), n4 = /*#__PURE__*/ N("<button>"), r4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), i4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), a4 = /*#__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\">"), o4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), s4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), c4 = /*#__PURE__*/ N("<option> (<!>)"), l4 = /*#__PURE__*/ N("<option>"), u4 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), d4 = /*#__PURE__*/ N("<option value>Select the agent…"), f4 = /*#__PURE__*/ N("<option>#"), p4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46210
- function m4() {
46302
+ var V2 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), H2 = /*#__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."), U2 = /*#__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"), W2 = /*#__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)."), G2 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), K2 = /*#__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]\">"), q2 = /*#__PURE__*/ N("<option value>Select a team…"), J2 = /*#__PURE__*/ N("<option value>No project"), Y2 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), X2 = /*#__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."), Z2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), Q2 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), $2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), e4 = /*#__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."), t4 = /*#__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."), n4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), r4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), i4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), a4 = /*#__PURE__*/ N("<option value>Select a channel…"), o4 = /*#__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"), s4 = /*#__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."), c4 = /*#__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"), l4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), u4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), d4 = /*#__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."), f4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), p4 = /*#__PURE__*/ N("<button>"), m4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), h4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), g4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), _4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), v4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), y4 = /*#__PURE__*/ N("<option> (<!>)"), b4 = /*#__PURE__*/ N("<option>"), x4 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), S4 = /*#__PURE__*/ N("<option value>Select the agent…"), C4 = /*#__PURE__*/ N("<option>#"), w4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46303
+ function T4() {
46211
46304
  let e = sr(), t = _r(() => ({
46212
46305
  queryKey: ["settings"],
46213
46306
  queryFn: Tr,
@@ -46235,13 +46328,13 @@ function m4() {
46235
46328
  retry: 0
46236
46329
  })), [l, u] = T(!1), d = async () => {
46237
46330
  try {
46238
- await navigator.clipboard.writeText(JSON.stringify(T2(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46331
+ await navigator.clipboard.writeText(JSON.stringify(I2(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46239
46332
  } catch {}
46240
46333
  }, f = () => {
46241
46334
  let e = c.data?.projectConfig;
46242
46335
  if (!e) return;
46243
46336
  let t = {};
46244
- for (let n of w2) e[n] !== void 0 && (t[n] = e[n]);
46337
+ for (let n of F2) e[n] !== void 0 && (t[n] = e[n]);
46245
46338
  r(t);
46246
46339
  }, p = _r(() => ({
46247
46340
  queryKey: ["linear-labels"],
@@ -46274,7 +46367,7 @@ function m4() {
46274
46367
  }
46275
46368
  E(!0), ee("");
46276
46369
  try {
46277
- await O2(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"] });
46370
+ await z2(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"] });
46278
46371
  } catch (e) {
46279
46372
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
46280
46373
  } finally {
@@ -46285,7 +46378,7 @@ function m4() {
46285
46378
  async function re() {
46286
46379
  ne(!0);
46287
46380
  try {
46288
- await k2(), 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"] });
46381
+ await B2(), 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"] });
46289
46382
  } finally {
46290
46383
  ne(!1);
46291
46384
  }
@@ -46301,12 +46394,12 @@ function m4() {
46301
46394
  return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
46302
46395
  });
46303
46396
  return (() => {
46304
- var e = t4();
46397
+ var e = f4();
46305
46398
  return P(e, j(Rj, {
46306
46399
  title: "Workflow",
46307
46400
  get children() {
46308
46401
  return [(() => {
46309
- var e = A2();
46402
+ var e = V2();
46310
46403
  return P(e, j(We, {
46311
46404
  each: [{
46312
46405
  id: "cloud",
@@ -46316,19 +46409,19 @@ function m4() {
46316
46409
  label: "Local · clipboard"
46317
46410
  }],
46318
46411
  children: (e) => (() => {
46319
- var t = n4();
46412
+ var t = p4();
46320
46413
  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;
46321
46414
  })()
46322
46415
  })), e;
46323
- })(), j2()];
46416
+ })(), H2()];
46324
46417
  }
46325
46418
  }), null), P(e, j(Rj, {
46326
46419
  title: "Capture",
46327
46420
  get children() {
46328
46421
  return [(() => {
46329
- var e = M2(), t = e.firstChild;
46422
+ var e = U2(), t = e.firstChild;
46330
46423
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
46331
- })(), N2()];
46424
+ })(), W2()];
46332
46425
  }
46333
46426
  }), null), P(e, j(Rj, {
46334
46427
  title: "Linear",
@@ -46339,13 +46432,13 @@ function m4() {
46339
46432
  },
46340
46433
  get fallback() {
46341
46434
  return (() => {
46342
- var e = o4();
46435
+ var e = _4();
46343
46436
  return P(e, j(Lj, {
46344
46437
  label: "Personal API key",
46345
46438
  hint: "Create one at linear.app → Settings → API — fastest path.",
46346
46439
  get children() {
46347
46440
  return [(() => {
46348
- var e = r4();
46441
+ var e = m4();
46349
46442
  return P(e, j(jj, {
46350
46443
  type: "password",
46351
46444
  placeholder: "lin_api_…",
@@ -46382,12 +46475,12 @@ function m4() {
46382
46475
  }), null), P(e, j(M, {
46383
46476
  when: xr,
46384
46477
  get children() {
46385
- return [i4(), j(Lj, {
46478
+ return [h4(), j(Lj, {
46386
46479
  label: "OAuth client ID",
46387
46480
  get children() {
46388
46481
  return [
46389
46482
  (() => {
46390
- var e = r4();
46483
+ var e = m4();
46391
46484
  return P(e, j(jj, {
46392
46485
  placeholder: "your-client-id",
46393
46486
  get value() {
@@ -46415,7 +46508,7 @@ function m4() {
46415
46508
  }
46416
46509
  }),
46417
46510
  (() => {
46418
- var e = a4(), t = e.firstChild.nextSibling.nextSibling;
46511
+ var e = g4(), t = e.firstChild.nextSibling.nextSibling;
46419
46512
  return P(t, ie), e;
46420
46513
  })()
46421
46514
  ];
@@ -46426,13 +46519,13 @@ function m4() {
46426
46519
  })();
46427
46520
  },
46428
46521
  get children() {
46429
- var e = F2(), t = e.firstChild;
46522
+ var e = K2(), t = e.firstChild;
46430
46523
  return P(t, j(M, {
46431
46524
  get when() {
46432
46525
  return !a.isLoading;
46433
46526
  },
46434
46527
  get fallback() {
46435
- return s4();
46528
+ return v4();
46436
46529
  },
46437
46530
  get children() {
46438
46531
  return j(M, {
@@ -46445,7 +46538,7 @@ function m4() {
46445
46538
  return a.isError;
46446
46539
  },
46447
46540
  get fallback() {
46448
- return s4();
46541
+ return v4();
46449
46542
  },
46450
46543
  get children() {
46451
46544
  return j(Hj, { message: "Key rejected — reconnect" });
@@ -46453,7 +46546,7 @@ function m4() {
46453
46546
  });
46454
46547
  },
46455
46548
  get children() {
46456
- var e = P2(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46549
+ var e = G2(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46457
46550
  return P(t, () => a.data.name), P(n, () => a.data.email), e;
46458
46551
  }
46459
46552
  });
@@ -46494,7 +46587,7 @@ function m4() {
46494
46587
  return o.isLoading;
46495
46588
  },
46496
46589
  get children() {
46497
- return [I2(), j(M, {
46590
+ return [q2(), j(M, {
46498
46591
  get when() {
46499
46592
  return o.data;
46500
46593
  },
@@ -46504,7 +46597,7 @@ function m4() {
46504
46597
  return o.data;
46505
46598
  },
46506
46599
  children: (e) => (() => {
46507
- var t = c4(), r = t.firstChild, i = r.nextSibling;
46600
+ var t = y4(), r = t.firstChild, i = r.nextSibling;
46508
46601
  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;
46509
46602
  })()
46510
46603
  });
@@ -46528,14 +46621,14 @@ function m4() {
46528
46621
  },
46529
46622
  get children() {
46530
46623
  return [(() => {
46531
- var e = L2();
46624
+ var e = J2();
46532
46625
  return D(() => e.selected = !n().defaultProjectId), e;
46533
46626
  })(), j(We, {
46534
46627
  get each() {
46535
46628
  return s.data ?? [];
46536
46629
  },
46537
46630
  children: (e) => (() => {
46538
- var t = l4();
46631
+ var t = b4();
46539
46632
  return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
46540
46633
  })()
46541
46634
  })];
@@ -46547,7 +46640,7 @@ function m4() {
46547
46640
  label: "Default labels",
46548
46641
  hint: "Applied to every issue created from the panel.",
46549
46642
  get children() {
46550
- var e = R2();
46643
+ var e = Y2();
46551
46644
  return P(e, j(We, {
46552
46645
  get each() {
46553
46646
  return p.data ?? [];
@@ -46555,7 +46648,7 @@ function m4() {
46555
46648
  children: (e) => {
46556
46649
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
46557
46650
  return (() => {
46558
- var i = u4(), a = i.firstChild;
46651
+ var i = x4(), a = i.firstChild;
46559
46652
  return i.$$click = () => {
46560
46653
  let i = n().defaultLabelIds ?? [];
46561
46654
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -46572,7 +46665,7 @@ function m4() {
46572
46665
  }
46573
46666
  }),
46574
46667
  (() => {
46575
- var e = z2(), t = e.firstChild;
46668
+ var e = X2(), t = e.firstChild;
46576
46669
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
46577
46670
  })(),
46578
46671
  j(Lj, {
@@ -46622,7 +46715,7 @@ function m4() {
46622
46715
  return m.isLoading;
46623
46716
  },
46624
46717
  get children() {
46625
- return [d4(), j(M, {
46718
+ return [S4(), j(M, {
46626
46719
  get when() {
46627
46720
  return m.data;
46628
46721
  },
@@ -46632,7 +46725,7 @@ function m4() {
46632
46725
  return m.data;
46633
46726
  },
46634
46727
  children: (e) => (() => {
46635
- var t = l4();
46728
+ var t = b4();
46636
46729
  return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
46637
46730
  })()
46638
46731
  });
@@ -46642,7 +46735,7 @@ function m4() {
46642
46735
  });
46643
46736
  },
46644
46737
  get children() {
46645
- return B2();
46738
+ return Z2();
46646
46739
  }
46647
46740
  });
46648
46741
  }
@@ -46690,7 +46783,7 @@ function m4() {
46690
46783
  onBlur: (e) => {
46691
46784
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
46692
46785
  }
46693
- }), V2()];
46786
+ }), Q2()];
46694
46787
  }
46695
46788
  }),
46696
46789
  j(Lj, {
@@ -46747,7 +46840,7 @@ function m4() {
46747
46840
  label: "Test account",
46748
46841
  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.",
46749
46842
  get children() {
46750
- var e = H2();
46843
+ var e = $2();
46751
46844
  return P(e, j(jj, {
46752
46845
  placeholder: "Username or email (e.g. demo@yourapp.com)",
46753
46846
  get value() {
@@ -46779,7 +46872,7 @@ function m4() {
46779
46872
  title: "Panel",
46780
46873
  get children() {
46781
46874
  return [(() => {
46782
- var e = U2(), t = e.firstChild.nextSibling;
46875
+ var e = e4(), t = e.firstChild.nextSibling;
46783
46876
  return P(t, j(We, {
46784
46877
  each: [{
46785
46878
  id: "overlay",
@@ -46789,7 +46882,7 @@ function m4() {
46789
46882
  label: "Beside page"
46790
46883
  }],
46791
46884
  children: (e) => (() => {
46792
- var t = n4();
46885
+ var t = p4();
46793
46886
  return t.$$click = () => void r({
46794
46887
  panelMode: e.id,
46795
46888
  panelPos: void 0
@@ -46797,11 +46890,11 @@ function m4() {
46797
46890
  })()
46798
46891
  })), e;
46799
46892
  })(), (() => {
46800
- var e = W2(), t = e.firstChild.nextSibling;
46893
+ var e = t4(), t = e.firstChild.nextSibling;
46801
46894
  return P(t, j(We, {
46802
46895
  each: ["left", "right"],
46803
46896
  children: (e) => (() => {
46804
- var t = n4();
46897
+ var t = p4();
46805
46898
  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;
46806
46899
  })()
46807
46900
  })), e;
@@ -46831,8 +46924,8 @@ function m4() {
46831
46924
  }), null), P(e, j(Rj, {
46832
46925
  title: "Project config (.lineargrab.json)",
46833
46926
  get children() {
46834
- return [G2(), (() => {
46835
- var e = q2();
46927
+ return [n4(), (() => {
46928
+ var e = i4();
46836
46929
  return P(e, j(M, {
46837
46930
  get when() {
46838
46931
  return c.data?.projectConfig;
@@ -46863,7 +46956,7 @@ function m4() {
46863
46956
  },
46864
46957
  onClick: () => void d(),
46865
46958
  get children() {
46866
- var e = K2();
46959
+ var e = r4();
46867
46960
  return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
46868
46961
  }
46869
46962
  }), null), e;
@@ -46954,12 +47047,12 @@ function m4() {
46954
47047
  });
46955
47048
  },
46956
47049
  get children() {
46957
- return [J2(), j(We, {
47050
+ return [a4(), j(We, {
46958
47051
  get each() {
46959
47052
  return ae.data ?? [];
46960
47053
  },
46961
47054
  children: (e) => (() => {
46962
- var t = f4();
47055
+ var t = C4();
46963
47056
  return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
46964
47057
  })()
46965
47058
  })];
@@ -47010,10 +47103,10 @@ function m4() {
47010
47103
  }
47011
47104
  }),
47012
47105
  (() => {
47013
- var e = Y2(), t = e.firstChild;
47106
+ var e = o4(), t = e.firstChild;
47014
47107
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
47015
47108
  })(),
47016
- X2()
47109
+ s4()
47017
47110
  ];
47018
47111
  }
47019
47112
  }), null), P(e, j(Rj, {
@@ -47051,7 +47144,7 @@ function m4() {
47051
47144
  }
47052
47145
  }),
47053
47146
  (() => {
47054
- var e = Z2(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47147
+ var e = c4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47055
47148
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
47056
47149
  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;
47057
47150
  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;
@@ -47064,16 +47157,16 @@ function m4() {
47064
47157
  }), e;
47065
47158
  })(),
47066
47159
  (() => {
47067
- var e = $2();
47160
+ var e = u4();
47068
47161
  return P(e, j(M, {
47069
47162
  get when() {
47070
47163
  return se();
47071
47164
  },
47072
47165
  get fallback() {
47073
- return p4();
47166
+ return w4();
47074
47167
  },
47075
47168
  get children() {
47076
- var e = Q2();
47169
+ var e = l4();
47077
47170
  return P(e, se), e;
47078
47171
  }
47079
47172
  })), e;
@@ -47083,7 +47176,7 @@ function m4() {
47083
47176
  }), null), P(e, j(Rj, {
47084
47177
  title: "How it works",
47085
47178
  get children() {
47086
- return e4();
47179
+ return d4();
47087
47180
  }
47088
47181
  }), null), e;
47089
47182
  })();
@@ -47091,38 +47184,38 @@ function m4() {
47091
47184
  rt(["click"]);
47092
47185
  //#endregion
47093
47186
  //#region src/lib/idbCache.ts
47094
- var h4 = "linear-grab", g4 = "queries", _4 = [
47187
+ var E4 = "linear-grab", D4 = "queries", O4 = [
47095
47188
  "my-issues",
47096
47189
  "issue",
47097
47190
  "sessions",
47098
47191
  "teams",
47099
47192
  "agents"
47100
47193
  ];
47101
- function v4() {
47194
+ function k4() {
47102
47195
  return new Promise((e) => {
47103
47196
  try {
47104
- let t = indexedDB.open(h4, 1);
47105
- t.onupgradeneeded = () => t.result.createObjectStore(g4), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47197
+ let t = indexedDB.open(E4, 1);
47198
+ t.onupgradeneeded = () => t.result.createObjectStore(D4), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47106
47199
  } catch {
47107
47200
  e(null);
47108
47201
  }
47109
47202
  });
47110
47203
  }
47111
- function y4(e) {
47112
- return typeof e[0] == "string" && _4.includes(e[0]);
47204
+ function A4(e) {
47205
+ return typeof e[0] == "string" && O4.includes(e[0]);
47113
47206
  }
47114
- async function b4(e) {
47115
- let t = await v4();
47207
+ async function j4(e) {
47208
+ let t = await k4();
47116
47209
  if (!t) return () => {};
47117
47210
  await new Promise((n) => {
47118
47211
  try {
47119
- let r = t.transaction(g4, "readonly").objectStore(g4).openCursor();
47212
+ let r = t.transaction(D4, "readonly").objectStore(D4).openCursor();
47120
47213
  r.onsuccess = () => {
47121
47214
  let t = r.result;
47122
47215
  if (!t) return n();
47123
47216
  try {
47124
47217
  let { queryKey: n, data: r } = t.value;
47125
- y4(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47218
+ A4(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47126
47219
  } catch {}
47127
47220
  t.continue();
47128
47221
  }, r.onerror = () => n();
@@ -47133,14 +47226,14 @@ async function b4(e) {
47133
47226
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
47134
47227
  if (r.type !== "updated" || r.action.type !== "success") return;
47135
47228
  let { queryKey: i, queryHash: a } = r.query;
47136
- if (!y4(i)) return;
47229
+ if (!A4(i)) return;
47137
47230
  let o = n.get(a);
47138
47231
  o && clearTimeout(o), n.set(a, setTimeout(() => {
47139
47232
  n.delete(a);
47140
47233
  try {
47141
47234
  let n = e.getQueryData(i);
47142
47235
  if (n === void 0) return;
47143
- t.transaction(g4, "readwrite").objectStore(g4).put({
47236
+ t.transaction(D4, "readwrite").objectStore(D4).put({
47144
47237
  queryKey: i,
47145
47238
  data: n
47146
47239
  }, a);
@@ -47156,7 +47249,7 @@ async function b4(e) {
47156
47249
  //#endregion
47157
47250
  //#region src/panel/App.tsx
47158
47251
  Br();
47159
- var x4 = /*#__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\">"), S4 = /*#__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\">"), C4 = /*#__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\">–"), w4 = /*#__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>"), T4 = /*#__PURE__*/ N("<button>"), E4 = [
47252
+ var M4 = /*#__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\">"), N4 = /*#__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\">"), P4 = /*#__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\">–"), F4 = /*#__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>"), I4 = /*#__PURE__*/ N("<button>"), L4 = [
47160
47253
  {
47161
47254
  id: "draft",
47162
47255
  label: "Draft"
@@ -47193,35 +47286,35 @@ var x4 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
47193
47286
  id: "settings",
47194
47287
  label: "Settings"
47195
47288
  }
47196
- ], D4 = /* @__PURE__ */ new Set();
47197
- function O4(e, t, n) {
47198
- if (D4.has(e) || typeof Notification > "u") return;
47199
- D4.add(e);
47289
+ ], R4 = /* @__PURE__ */ new Set();
47290
+ function z4(e, t, n) {
47291
+ if (R4.has(e) || typeof Notification > "u") return;
47292
+ R4.add(e);
47200
47293
  let r = () => new Notification(t, { body: n });
47201
47294
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
47202
47295
  }
47203
- function k4() {
47296
+ function B4() {
47204
47297
  setInterval(() => {
47205
47298
  NO().then((e) => {
47206
47299
  for (let t of e) {
47207
47300
  if (t.status !== "running") continue;
47208
47301
  let e = t.lastEventAt ?? t.startedAt;
47209
- Date.now() - e > 10 * 6e4 && O4(`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.`);
47302
+ Date.now() - e > 10 * 6e4 && z4(`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.`);
47210
47303
  }
47211
47304
  }).catch(() => {}), gO().then((e) => {
47212
- for (let t of e) /awaitingInput|elicit/i.test(t.status) && O4(`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.`);
47305
+ for (let t of e) /awaitingInput|elicit/i.test(t.status) && z4(`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.`);
47213
47306
  }).catch(() => {});
47214
47307
  }, 6e4);
47215
47308
  }
47216
- k4();
47217
- var A4 = new gr({ defaultOptions: { queries: {
47309
+ B4();
47310
+ var V4 = new gr({ defaultOptions: { queries: {
47218
47311
  retry: 1,
47219
47312
  refetchOnWindowFocus: !1,
47220
47313
  staleTime: 5e3
47221
47314
  } } });
47222
- function j4(e) {
47315
+ function H4(e) {
47223
47316
  return (() => {
47224
- var t = x4();
47317
+ var t = M4();
47225
47318
  return D((n) => {
47226
47319
  var r = e.size ?? 14, i = e.size ?? 14;
47227
47320
  return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
@@ -47231,36 +47324,36 @@ function j4(e) {
47231
47324
  }), t;
47232
47325
  })();
47233
47326
  }
47234
- function M4(e) {
47327
+ function U4(e) {
47235
47328
  let [t, n] = T("draft"), r = () => {
47236
- A4.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47329
+ V4.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47237
47330
  };
47238
47331
  return O(() => {
47239
47332
  let e = nj();
47240
47333
  e && n(e);
47241
47334
  }), ie(() => {
47242
- let e = b4(A4), t = XZ(r), n = () => {
47335
+ let e = j4(V4), t = XZ(r), n = () => {
47243
47336
  JO().then(y$), VO(), MO().then(async (e) => {
47244
47337
  if (!e.projectConfig) return;
47245
- let t = E2(await Tr(), e.projectConfig);
47338
+ let t = L2(await Tr(), e.projectConfig);
47246
47339
  t && await Er(t);
47247
47340
  }).catch(() => {});
47248
47341
  };
47249
47342
  n();
47250
47343
  let i = Mr((e) => {
47251
- e === "settings" && (A4.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47344
+ e === "settings" && (V4.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47252
47345
  });
47253
47346
  ae(() => {
47254
47347
  t(), i(), e.then((e) => e());
47255
47348
  });
47256
47349
  }), j(cr, {
47257
- client: A4,
47350
+ client: V4,
47258
47351
  get children() {
47259
- var r = w4(), 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;
47260
- return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(j4, { size: 14 })), P(o, j(We, {
47261
- each: E4,
47352
+ var r = F4(), 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;
47353
+ return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(H4, { size: 14 })), P(o, j(We, {
47354
+ each: L4,
47262
47355
  children: (e) => (() => {
47263
- var r = T4();
47356
+ var r = I4();
47264
47357
  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;
47265
47358
  })()
47266
47359
  })), P(i, j(M, {
@@ -47268,7 +47361,7 @@ function M4(e) {
47268
47361
  return e.onTogglePin;
47269
47362
  },
47270
47363
  get children() {
47271
- var t = S4();
47364
+ var t = N4();
47272
47365
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
47273
47366
  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"}`;
47274
47367
  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;
@@ -47283,10 +47376,10 @@ function M4(e) {
47283
47376
  return e.onClose;
47284
47377
  },
47285
47378
  get children() {
47286
- var t = C4();
47379
+ var t = P4();
47287
47380
  return t.$$click = () => e.onClose?.(), t;
47288
47381
  }
47289
- }), 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(C2, {})), P(h, j(m4, {})), D((n) => {
47382
+ }), 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(P2, {})), P(h, j(T4, {})), D((n) => {
47290
47383
  var r = `border-border bg-surface flex shrink-0 items-center gap-1 border-b px-2 py-1.5 select-none ${e.onHeaderPointerDown ? "cursor-grab active:cursor-grabbing" : ""}`, a = t() !== "draft", o = t() !== "capture", g = t() !== "activity", _ = t() !== "running", v = t() !== "cloud", y = t() !== "local", b = t() !== "prs", x = t() !== "design", S = t() !== "settings";
47291
47384
  return r !== n.e && st(i, n.e = r), a !== n.t && s.classList.toggle("hidden", n.t = a), o !== n.a && c.classList.toggle("hidden", n.a = o), g !== n.o && l.classList.toggle("hidden", n.o = g), _ !== n.i && u.classList.toggle("hidden", n.i = _), v !== n.n && d.classList.toggle("hidden", n.n = v), y !== n.s && f.classList.toggle("hidden", n.s = y), b !== n.h && p.classList.toggle("hidden", n.h = b), x !== n.r && m.classList.toggle("hidden", n.r = x), S !== n.d && h.classList.toggle("hidden", n.d = S), n;
47292
47385
  }, {
@@ -47307,12 +47400,12 @@ function M4(e) {
47307
47400
  rt(["pointerdown", "click"]);
47308
47401
  //#endregion
47309
47402
  //#region src/styles/app.css?inline
47310
- var N4 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-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)}.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)}}}: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}}";
47403
+ var W4 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-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)}.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)}}}: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}}";
47311
47404
  //#endregion
47312
47405
  //#region src/page/index.tsx
47313
47406
  Br();
47314
- var P4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), F4 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), I4 = /*#__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"), L4 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), R4 = /*#__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"), z4 = /*#__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\">"), B4 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), V4 = /*#__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\">"), H4 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), U4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), W4 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), G4 = /*#__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>"), K4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), q4 = /*#__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\"> · <!> · ");
47315
- function J4(e = {}) {
47407
+ var G4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), K4 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), q4 = /*#__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"), J4 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), Y4 = /*#__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"), X4 = /*#__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\">"), Z4 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), Q4 = /*#__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\">"), $4 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), e3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), t3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), n3 = /*#__PURE__*/ N("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), r3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), i3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), a3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), o3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), s3 = /*#__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\"> · <!> · ");
47408
+ function c3(e = {}) {
47316
47409
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
47317
47410
  window.__LINEAR_GRAB_PAGE__ = !0;
47318
47411
  let t = () => {
@@ -47344,17 +47437,17 @@ function J4(e = {}) {
47344
47437
  "keypress"
47345
47438
  ]) window.addEventListener(e, n, { capture: !0 });
47346
47439
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
47347
- i.textContent = N4, r.appendChild(i);
47440
+ i.textContent = W4, r.appendChild(i);
47348
47441
  let a = document.createElement("div");
47349
47442
  r.appendChild(a);
47350
- let o = () => a.setAttribute("data-theme", Y4());
47351
- o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(t3, { get defaultOpen() {
47443
+ let o = () => a.setAttribute("data-theme", l3());
47444
+ o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(h3, { get defaultOpen() {
47352
47445
  return e.defaultOpen ?? !1;
47353
47446
  } }), a);
47354
47447
  };
47355
47448
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
47356
47449
  }
47357
- function Y4() {
47450
+ function l3() {
47358
47451
  try {
47359
47452
  let e = [document.body, document.documentElement];
47360
47453
  for (let t of e) {
@@ -47364,133 +47457,140 @@ function Y4() {
47364
47457
  } catch {}
47365
47458
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
47366
47459
  }
47367
- var X4 = 130, Z4 = 36, Q4 = 380, $4 = 280, e3 = 720;
47368
- function t3(e) {
47460
+ var u3 = 130, d3 = 36, f3 = 380, p3 = 280, m3 = 720;
47461
+ function h3(e) {
47369
47462
  let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
47370
- x: Math.max(8, window.innerWidth - X4 - 24),
47371
- y: Math.max(8, window.innerHeight - Z4 - 20)
47463
+ x: Math.max(8, window.innerWidth - u3 - 24),
47464
+ y: Math.max(8, window.innerHeight - d3 - 20)
47372
47465
  }), [s, c] = T({
47373
47466
  running: [],
47374
47467
  review: []
47375
- }), l = () => s().running, u = () => s().review, [d, f] = T(!1), [p, m] = T(HD().phase), [h, g] = T(0);
47468
+ }), l = () => s().running, u = () => s().review, [d, f] = T(!1), [p, m] = T(HD().phase), [h, g] = T({
47469
+ active: !1,
47470
+ msLeft: 0,
47471
+ total: 0,
47472
+ byTrigger: {}
47473
+ }), [_, v] = T(0);
47376
47474
  ie(() => {
47377
47475
  let e = setInterval(() => {
47378
- p() === "recording" && g(Date.now() - (HD().startedAt ?? Date.now()));
47476
+ p() === "recording" && v(Date.now() - (HD().startedAt ?? Date.now()));
47379
47477
  }, 250);
47380
47478
  ae(() => clearInterval(e));
47381
47479
  });
47382
- let _ = (e) => {
47480
+ let y = (e) => {
47383
47481
  let t = Math.floor(e / 1e3);
47384
47482
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
47385
- }, [v, y] = T(null), b = (e) => ({
47386
- x: Math.min(Math.max(8, e.x), window.innerWidth - X4 - 8),
47387
- y: Math.min(Math.max(8, e.y), window.innerHeight - Z4 - 8)
47388
- }), x = (e) => ({
47389
- x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
47483
+ }, [b, x] = T(null), S = (e) => ({
47484
+ x: Math.min(Math.max(8, e.x), window.innerWidth - u3 - 8),
47485
+ y: Math.min(Math.max(8, e.y), window.innerHeight - d3 - 8)
47486
+ }), C = (e) => ({
47487
+ x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
47390
47488
  y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
47391
- }), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(Q4), ne = (e) => Math.min(e3, Math.max($4, Math.min(e, window.innerWidth - 60)));
47489
+ }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(f3), oe = (e) => Math.min(m3, Math.max(p3, Math.min(e, window.innerWidth - 60)));
47392
47490
  O(() => {
47393
- let e = document.documentElement, n = t() && S();
47394
- e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
47491
+ let e = document.documentElement, n = t() && w();
47492
+ e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
47395
47493
  }), ae(() => {
47396
47494
  document.documentElement.style.marginRight = "", document.documentElement.style.marginLeft = "";
47397
47495
  });
47398
- let re = () => {
47399
- let e = !S();
47400
- C(e), e && y(null), Er({
47496
+ let se = () => {
47497
+ let e = !w();
47498
+ E(e), e && x(null), Er({
47401
47499
  panelMode: e ? "pinned" : "overlay",
47402
47500
  panelPos: void 0
47403
47501
  });
47404
47502
  };
47405
47503
  ie(() => {
47406
47504
  Tr().then((e) => {
47407
- e.panelSide && i(e.panelSide), e.launcherPos && o(b(e.launcherPos)), e.panelPos && y(x(e.panelPos)), e.panelWidth && A(ne(e.panelWidth)), C(e.panelMode === "pinned"), E(e.workflowMode ?? "cloud");
47505
+ e.panelSide && i(e.panelSide), e.launcherPos && o(S(e.launcherPos)), e.panelPos && x(C(e.panelPos)), e.panelWidth && re(oe(e.panelWidth)), E(e.panelMode === "pinned"), ee(e.workflowMode ?? "cloud");
47408
47506
  });
47409
47507
  let e = Mr((e) => {
47410
47508
  e === "settings" && Tr().then((e) => {
47411
- i(e.panelSide ?? "right"), C(e.panelMode === "pinned"), E(e.workflowMode ?? "cloud");
47412
- }), e === "grab" && w() !== "local" && n(!0);
47509
+ i(e.panelSide ?? "right"), E(e.panelMode === "pinned"), ee(e.workflowMode ?? "cloud");
47510
+ }), e === "grab" && k() !== "local" && n(!0);
47413
47511
  }), t = () => {
47414
- ee(!0), setTimeout(() => ee(!1), 1600);
47512
+ A(!0), setTimeout(() => A(!1), 1600);
47415
47513
  };
47416
47514
  window.addEventListener(zZ, t);
47417
47515
  let r = () => {
47418
- f(!1), S() || n(!1);
47516
+ f(!1), w() || n(!1);
47419
47517
  };
47420
47518
  window.addEventListener(BZ, r);
47421
47519
  let s = () => n(!0);
47422
47520
  window.addEventListener("linear-grab:picker-finished", s), ae(() => {
47423
47521
  window.removeEventListener(zZ, t), window.removeEventListener(BZ, r), window.removeEventListener("linear-grab:picker-finished", s);
47424
47522
  });
47425
- let l = e$(c), u = HD().phase, d = UD((e) => {
47426
- m(e.phase), e.phase === "recording" && u !== "recording" && !S() && n(!1), e.phase === "ready" && u !== "ready" && (oj("capture"), n(!0)), u = e.phase;
47523
+ let l = e$(c);
47524
+ ae(i2(g));
47525
+ let u = HD().phase, d = UD((e) => {
47526
+ m(e.phase), e.phase === "recording" && u !== "recording" && !w() && n(!1), e.phase === "ready" && u !== "ready" && (oj("capture"), n(!0)), u = e.phase;
47427
47527
  }), p = () => {
47428
- o(b(a()));
47429
- let e = v();
47430
- e && y(x(e));
47528
+ o(S(a()));
47529
+ let e = b();
47530
+ e && x(C(e));
47431
47531
  };
47432
47532
  window.addEventListener("resize", p), ae(() => {
47433
47533
  e(), l(), d(), window.removeEventListener("resize", p);
47434
47534
  });
47435
47535
  });
47436
- let oe = !1, se = (e) => {
47536
+ let ce = !1, le = (e) => {
47437
47537
  if (e.button !== 0) return;
47438
47538
  let t = {
47439
47539
  x: e.clientX,
47440
47540
  y: e.clientY
47441
47541
  }, n = a();
47442
- oe = !1;
47542
+ ce = !1;
47443
47543
  let r = (e) => {
47444
47544
  let r = e.clientX - t.x, i = e.clientY - t.y;
47445
- Math.abs(r) + Math.abs(i) > 4 && (oe = !0), oe && o(b({
47545
+ Math.abs(r) + Math.abs(i) > 4 && (ce = !0), ce && o(S({
47446
47546
  x: n.x + r,
47447
47547
  y: n.y + i
47448
47548
  }));
47449
47549
  }, i = () => {
47450
- window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i), oe && Er({ launcherPos: a() }), setTimeout(() => {
47451
- oe = !1;
47550
+ window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i), ce && Er({ launcherPos: a() }), setTimeout(() => {
47551
+ ce = !1;
47452
47552
  }, 0);
47453
47553
  };
47454
47554
  window.addEventListener("pointermove", r), window.addEventListener("pointerup", i);
47455
- }, ce = () => a().y > 260, le = (e) => {
47555
+ }, ue = () => a().y > 260, de = (e) => {
47456
47556
  f(!1), oj("activity", e), n(!0);
47457
- }, ue = (e) => {
47557
+ }, fe = (e) => {
47458
47558
  if (e.button !== 0) return;
47459
47559
  e.preventDefault(), e.stopPropagation();
47460
- let t = e.clientX, n = te(), i = v(), a = (e) => {
47461
- let a = e.clientX - t, o = r() === "right" ? -a : a, s = ne(n + o);
47462
- A(s), i && r() === "right" && y(x({
47560
+ let t = e.clientX, n = ne(), i = b(), a = (e) => {
47561
+ let a = e.clientX - t, o = r() === "right" ? -a : a, s = oe(n + o);
47562
+ re(s), i && r() === "right" && x(C({
47463
47563
  x: i.x + (n - s),
47464
47564
  y: i.y
47465
47565
  }));
47466
47566
  }, o = () => {
47467
47567
  window.removeEventListener("pointermove", a), window.removeEventListener("pointerup", o), Er({
47468
- panelWidth: te(),
47469
- ...v() ? { panelPos: v() } : {}
47568
+ panelWidth: ne(),
47569
+ ...b() ? { panelPos: b() } : {}
47470
47570
  });
47471
47571
  };
47472
47572
  window.addEventListener("pointermove", a), window.addEventListener("pointerup", o);
47473
- }, de = (e) => {
47573
+ }, pe = (e) => {
47474
47574
  if (e.button !== 0) return;
47475
47575
  if (e.detail === 2) {
47476
- y(null), Er({ panelPos: void 0 });
47576
+ x(null), Er({ panelPos: void 0 });
47477
47577
  return;
47478
47578
  }
47479
47579
  let t = {
47480
47580
  x: e.clientX,
47481
47581
  y: e.clientY
47482
- }, n = v() ?? {
47483
- x: r() === "right" ? window.innerWidth - te() : 0,
47582
+ }, n = b() ?? {
47583
+ x: r() === "right" ? window.innerWidth - ne() : 0,
47484
47584
  y: 0
47485
47585
  }, i = !1, a = (e) => {
47486
47586
  let r = e.clientX - t.x, a = e.clientY - t.y;
47487
- Math.abs(r) + Math.abs(a) > 4 && (i = !0), i && y(x({
47587
+ Math.abs(r) + Math.abs(a) > 4 && (i = !0), i && x(C({
47488
47588
  x: n.x + r,
47489
47589
  y: n.y + a
47490
47590
  }));
47491
47591
  }, o = () => {
47492
47592
  window.removeEventListener("pointermove", a), window.removeEventListener("pointerup", o);
47493
- let e = v();
47593
+ let e = b();
47494
47594
  i && e && Er({ panelPos: e });
47495
47595
  };
47496
47596
  window.addEventListener("pointermove", a), window.addEventListener("pointerup", o);
@@ -47500,41 +47600,41 @@ function t3(e) {
47500
47600
  return !t();
47501
47601
  },
47502
47602
  get children() {
47503
- var e = z4(), t = e.firstChild;
47603
+ var e = X4(), t = e.firstChild;
47504
47604
  return t.$$click = () => {
47505
- oe || p() === "recording" || (f(!1), n(!0));
47506
- }, t.$$pointerdown = se, P(t, j(M, {
47605
+ ce || p() === "recording" || h().active || (f(!1), n(!0));
47606
+ }, t.$$pointerdown = le, P(t, j(M, {
47507
47607
  get when() {
47508
- return p() === "recording";
47608
+ return p() === "recording" || h().active;
47509
47609
  },
47510
47610
  get fallback() {
47511
47611
  return [
47512
47612
  (() => {
47513
- var e = V4();
47613
+ var e = Q4();
47514
47614
  return e.$$click = () => {
47515
- oe || (f(!1), n(!0));
47516
- }, P(e, j(j4, { size: 13 })), e;
47615
+ ce || (f(!1), n(!0));
47616
+ }, P(e, j(H4, { size: 13 })), e;
47517
47617
  })(),
47518
- H4(),
47618
+ $4(),
47519
47619
  (() => {
47520
- var e = G4(), t = e.firstChild, n = t.nextSibling;
47620
+ var e = n3(), t = e.firstChild, n = t.nextSibling;
47521
47621
  return e.$$click = (e) => {
47522
- e.stopPropagation(), !oe && f((e) => !e);
47622
+ e.stopPropagation(), !ce && f((e) => !e);
47523
47623
  }, P(n, (() => {
47524
- var e = $e(() => !!k());
47624
+ var e = $e(() => !!te());
47525
47625
  return () => e() ? "Copied ✓" : `${l().length} run`;
47526
47626
  })()), P(e, j(M, {
47527
47627
  get when() {
47528
- return $e(() => !k())() && u().length > 0;
47628
+ return $e(() => !te())() && u().length > 0;
47529
47629
  },
47530
47630
  get children() {
47531
- return [U4(), (() => {
47532
- var e = W4(), t = e.firstChild;
47631
+ return [e3(), (() => {
47632
+ var e = t3(), t = e.firstChild;
47533
47633
  return P(e, () => u().length, t), e;
47534
47634
  })()];
47535
47635
  }
47536
47636
  }), null), D((e) => {
47537
- var r = `size-2 rounded-full ${k() ? "bg-success" : l().length ? "bg-success animate-pulse" : "bg-text-faint"}`, i = `min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums ${k() ? "text-success" : "text-text-dim"}`;
47637
+ var r = `size-2 rounded-full ${te() ? "bg-success" : l().length ? "bg-success animate-pulse" : "bg-text-faint"}`, i = `min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums ${te() ? "text-success" : "text-text-dim"}`;
47538
47638
  return r !== e.e && st(t, e.e = r), i !== e.t && st(n, e.t = i), e;
47539
47639
  }, {
47540
47640
  e: void 0,
@@ -47544,39 +47644,65 @@ function t3(e) {
47544
47644
  ];
47545
47645
  },
47546
47646
  get children() {
47547
- return [
47548
- P4(),
47549
- (() => {
47550
- var e = F4();
47551
- return P(e, () => _(h())), e;
47552
- })(),
47553
- (() => {
47554
- var e = I4();
47555
- return e.$$click = () => {
47556
- oe || eO();
47557
- }, e;
47558
- })()
47559
- ];
47647
+ return j(M, {
47648
+ get when() {
47649
+ return p() === "recording";
47650
+ },
47651
+ get fallback() {
47652
+ return [
47653
+ r3(),
47654
+ (() => {
47655
+ var e = i3(), t = e.firstChild;
47656
+ return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
47657
+ })(),
47658
+ (() => {
47659
+ var e = a3(), t = e.firstChild;
47660
+ 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;
47661
+ })(),
47662
+ (() => {
47663
+ var e = q4();
47664
+ return e.$$click = (e) => {
47665
+ e.stopPropagation(), !ce && o2();
47666
+ }, e;
47667
+ })()
47668
+ ];
47669
+ },
47670
+ get children() {
47671
+ return [
47672
+ G4(),
47673
+ (() => {
47674
+ var e = K4();
47675
+ return P(e, () => y(_())), e;
47676
+ })(),
47677
+ (() => {
47678
+ var e = q4();
47679
+ return e.$$click = () => {
47680
+ ce || eO();
47681
+ }, e;
47682
+ })()
47683
+ ];
47684
+ }
47685
+ });
47560
47686
  }
47561
47687
  })), P(e, j(M, {
47562
47688
  get when() {
47563
47689
  return d();
47564
47690
  },
47565
47691
  get children() {
47566
- var e = R4(), t = e.firstChild;
47692
+ var e = Y4(), t = e.firstChild;
47567
47693
  return P(e, j(M, {
47568
47694
  get when() {
47569
47695
  return u().length > 0;
47570
47696
  },
47571
47697
  get children() {
47572
- return [L4(), j(We, {
47698
+ return [J4(), j(We, {
47573
47699
  get each() {
47574
47700
  return u();
47575
47701
  },
47576
- children: (e) => j(n3, {
47702
+ children: (e) => j(g3, {
47577
47703
  agent: e,
47578
47704
  review: !0,
47579
- onOpen: le
47705
+ onOpen: de
47580
47706
  })
47581
47707
  })];
47582
47708
  }
@@ -47585,20 +47711,20 @@ function t3(e) {
47585
47711
  return l().length > 0;
47586
47712
  },
47587
47713
  get fallback() {
47588
- return K4();
47714
+ return o3();
47589
47715
  },
47590
47716
  get children() {
47591
47717
  return j(We, {
47592
47718
  get each() {
47593
47719
  return l();
47594
47720
  },
47595
- children: (e) => j(n3, {
47721
+ children: (e) => j(g3, {
47596
47722
  agent: e,
47597
- onOpen: le
47723
+ onOpen: de
47598
47724
  })
47599
47725
  });
47600
47726
  }
47601
- }), null), D(() => st(e, `bg-surface border-border absolute w-72 rounded-lg border p-1.5 font-sans shadow-2xl ${ce() ? "bottom-full mb-2" : "top-full mt-2"} ${a().x > window.innerWidth - 300 ? "right-0" : "left-0"}`)), e;
47727
+ }), null), D(() => st(e, `bg-surface border-border absolute w-72 rounded-lg border p-1.5 font-sans shadow-2xl ${ue() ? "bottom-full mb-2" : "top-full mt-2"} ${a().x > window.innerWidth - 300 ? "right-0" : "left-0"}`)), e;
47602
47728
  }
47603
47729
  }), null), D((t) => {
47604
47730
  var n = `${a().x}px`, r = `${a().y}px`;
@@ -47613,23 +47739,23 @@ function t3(e) {
47613
47739
  return t();
47614
47740
  },
47615
47741
  get children() {
47616
- var e = B4(), t = e.firstChild;
47617
- return t.$$pointerdown = ue, P(e, j(M4, {
47742
+ var e = Z4(), t = e.firstChild;
47743
+ return t.$$pointerdown = fe, P(e, j(U4, {
47618
47744
  onGrab: () => n(!0),
47619
47745
  onClose: () => n(!1),
47620
47746
  get onHeaderPointerDown() {
47621
- return S() ? void 0 : de;
47747
+ return w() ? void 0 : pe;
47622
47748
  },
47623
47749
  get pinned() {
47624
- return S();
47750
+ return w();
47625
47751
  },
47626
- onTogglePin: re
47752
+ onTogglePin: se
47627
47753
  }), null), D((n) => {
47628
- var i = `bg-bg text-text border-border fixed z-[2147483645] flex max-w-[100vw] flex-col overflow-hidden font-sans text-[13px] antialiased ${S() ? "" : "shadow-2xl"} ${!S() && v() ? "rounded-xl border" : r() === "right" ? "top-0 right-0 h-screen border-l" : "top-0 left-0 h-screen border-r"}`, a = {
47629
- width: `${te()}px`,
47630
- ...!S() && v() ? {
47631
- left: `${v().x}px`,
47632
- top: `${v().y}px`,
47754
+ var i = `bg-bg text-text border-border fixed z-[2147483645] flex max-w-[100vw] flex-col overflow-hidden font-sans text-[13px] antialiased ${w() ? "" : "shadow-2xl"} ${!w() && b() ? "rounded-xl border" : r() === "right" ? "top-0 right-0 h-screen border-l" : "top-0 left-0 h-screen border-r"}`, a = {
47755
+ width: `${ne()}px`,
47756
+ ...!w() && b() ? {
47757
+ left: `${b().x}px`,
47758
+ top: `${b().y}px`,
47633
47759
  height: `${Math.min(680, window.innerHeight - 16)}px`
47634
47760
  } : {}
47635
47761
  }, o = `hover:bg-accent/50 active:bg-accent absolute top-0 z-10 h-full w-1 cursor-col-resize transition-colors ${r() === "right" ? "left-0" : "right-0"}`;
@@ -47642,19 +47768,19 @@ function t3(e) {
47642
47768
  }
47643
47769
  })];
47644
47770
  }
47645
- function n3(e) {
47771
+ function g3(e) {
47646
47772
  return (() => {
47647
- var t = q4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
47773
+ var t = s3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
47648
47774
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
47649
47775
  var t = $e(() => !!e.review);
47650
47776
  return () => t() ? "PR ready · needs review" : e.agent.stateName;
47651
- })(), s), P(o, () => e.agent.delegateName, c), P(o, () => r3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
47777
+ })(), s), P(o, () => e.agent.delegateName, c), P(o, () => _3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
47652
47778
  })();
47653
47779
  }
47654
- function r3(e) {
47780
+ function _3(e) {
47655
47781
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
47656
47782
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
47657
47783
  }
47658
47784
  rt(["pointerdown", "click"]);
47659
47785
  //#endregion
47660
- export { J4 as init };
47786
+ export { c3 as init };