linear-grab 0.22.1 → 0.22.2

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,47 +45966,47 @@ 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=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>"), g2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), _2 = /*#__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\">"), v2 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), y2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), b2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), x2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), S2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), C2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), w2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), T2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), E2 = /*#__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\">"), D2 = "linear-grab:genomes:v1", O2 = 30;
45970
+ function k2() {
45920
45971
  try {
45921
- return JSON.parse(localStorage.getItem(v2) ?? "[]");
45972
+ return JSON.parse(localStorage.getItem(D2) ?? "[]");
45922
45973
  } catch {
45923
45974
  return [];
45924
45975
  }
45925
45976
  }
45926
- function x2(e) {
45977
+ function A2(e) {
45927
45978
  try {
45928
- localStorage.setItem(v2, JSON.stringify(e.slice(0, y2)));
45979
+ localStorage.setItem(D2, JSON.stringify(e.slice(0, O2)));
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);
45982
+ var j2 = /* @__PURE__ */ new Map();
45983
+ function M2() {
45984
+ let [e, t] = T(k2()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), f = (e) => {
45985
+ t(e), A2(e);
45935
45986
  }, p = async () => {
45936
45987
  l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
45937
45988
  try {
45938
- let t = await r2();
45989
+ let t = await u2();
45939
45990
  if (!t) return;
45940
45991
  let n = await e2(t), i = Date.now();
45941
- S2.set(i, new WeakRef(t)), f([{
45992
+ j2.set(i, new WeakRef(t)), f([{
45942
45993
  id: i,
45943
45994
  genome: n
45944
45995
  }, ...e()]), r(i);
45945
45996
  } catch (e) {
45946
45997
  l(e instanceof Error ? e.message : String(e));
45947
45998
  } finally {
45948
- a(null), window.dispatchEvent(new CustomEvent(VZ));
45999
+ a(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
45949
46000
  }
45950
46001
  }, m = async (t) => {
45951
46002
  l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
45952
46003
  try {
45953
- let n = S2.get(t.id)?.deref() ?? null;
46004
+ let n = j2.get(t.id)?.deref() ?? null;
45954
46005
  if (!n || !n.isConnected) {
45955
- if (n = await r2(), !n) return;
45956
- S2.set(t.id, new WeakRef(n));
46006
+ if (n = await u2(), !n) return;
46007
+ j2.set(t.id, new WeakRef(n));
45957
46008
  }
45958
- let r = await t2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
46009
+ let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
45959
46010
  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 ? {
45960
46011
  ...e,
45961
46012
  genome: {
@@ -45966,19 +46017,19 @@ function C2() {
45966
46017
  } catch (e) {
45967
46018
  l(e instanceof Error ? e.message : String(e));
45968
46019
  } finally {
45969
- a(null), s(null), window.dispatchEvent(new CustomEvent(VZ));
46020
+ a(null), s(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
45970
46021
  }
45971
46022
  }, h = async (e) => {
45972
46023
  try {
45973
- await navigator.clipboard.writeText(n2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
46024
+ await navigator.clipboard.writeText(l2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
45974
46025
  } catch {
45975
46026
  l("Clipboard was blocked — click Copy again.");
45976
46027
  }
45977
46028
  }, g = (t) => {
45978
- S2.delete(t), f(e().filter((e) => e.id !== t));
46029
+ j2.delete(t), f(e().filter((e) => e.id !== t));
45979
46030
  };
45980
46031
  return (() => {
45981
- var t = s2(), a = t.firstChild;
46032
+ var t = p2(), a = t.firstChild;
45982
46033
  return a.firstChild, P(a, j(kj, {
45983
46034
  variant: "primary",
45984
46035
  class: "h-7 shrink-0 px-2.5 text-[11.5px]",
@@ -45987,15 +46038,7 @@ function C2() {
45987
46038
  },
45988
46039
  onClick: () => void p(),
45989
46040
  get children() {
45990
- return i2();
45991
- }
45992
- }), null), P(t, j(M, {
45993
- get when() {
45994
- return o() !== null;
45995
- },
45996
- get children() {
45997
- var e = a2(), t = e.firstChild.nextSibling, n = t.firstChild;
45998
- return P(t, o, n), e;
46041
+ return d2();
45999
46042
  }
46000
46043
  }), null), P(t, j(M, {
46001
46044
  get when() {
@@ -46017,7 +46060,7 @@ function C2() {
46017
46060
  });
46018
46061
  },
46019
46062
  get children() {
46020
- var t = o2();
46063
+ var t = f2();
46021
46064
  return t.firstChild, P(t, j(We, {
46022
46065
  get each() {
46023
46066
  return e();
@@ -46025,7 +46068,7 @@ function C2() {
46025
46068
  children: (e) => {
46026
46069
  let t = () => n() === e.id;
46027
46070
  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;
46071
+ var n = y2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, f = d.nextSibling;
46029
46072
  f.nextSibling;
46030
46073
  var p = l.nextSibling;
46031
46074
  return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
@@ -46036,19 +46079,19 @@ function C2() {
46036
46079
  return t();
46037
46080
  },
46038
46081
  get children() {
46039
- var t = u2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46082
+ var t = v2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46040
46083
  return P(n, () => e.genome.pageUrl), P(r, j(We, {
46041
46084
  get each() {
46042
46085
  return e.genome.nodes;
46043
46086
  },
46044
46087
  children: (e) => (() => {
46045
- var t = p2(), n = t.firstChild;
46088
+ var t = x2(), n = t.firstChild;
46046
46089
  return P(n, () => e.label, null), P(n, j(M, {
46047
46090
  get when() {
46048
46091
  return e.count > 1;
46049
46092
  },
46050
46093
  get children() {
46051
- var t = f2();
46094
+ var t = b2();
46052
46095
  return t.firstChild, P(t, () => e.count, null), t;
46053
46096
  }
46054
46097
  }), null), P(t, j(We, {
@@ -46056,13 +46099,13 @@ function C2() {
46056
46099
  return Object.entries(e.styles);
46057
46100
  },
46058
46101
  children: ([t, n]) => (() => {
46059
- var r = h2(), i = r.firstChild;
46102
+ var r = C2(), i = r.firstChild;
46060
46103
  return P(r, t, i), P(r, n, null), P(r, j(M, {
46061
46104
  get when() {
46062
46105
  return e.tokens[t];
46063
46106
  },
46064
46107
  get children() {
46065
- var n = m2(), r = n.firstChild.nextSibling;
46108
+ var n = S2(), r = n.firstChild.nextSibling;
46066
46109
  return r.nextSibling, P(n, () => e.tokens[t], r), n;
46067
46110
  }
46068
46111
  }), null), r;
@@ -46074,18 +46117,18 @@ function C2() {
46074
46117
  return e.genome.states.length > 0;
46075
46118
  },
46076
46119
  get children() {
46077
- return [c2(), j(We, {
46120
+ return [m2(), j(We, {
46078
46121
  get each() {
46079
46122
  return e.genome.states;
46080
46123
  },
46081
46124
  children: (e) => (() => {
46082
- var t = g2(), n = t.firstChild, r = n.firstChild;
46125
+ var t = w2(), n = t.firstChild, r = n.firstChild;
46083
46126
  return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
46084
46127
  get each() {
46085
46128
  return Object.entries(e.changed);
46086
46129
  },
46087
46130
  children: ([e, t]) => (() => {
46088
- var n = _2(), r = n.firstChild, i = r.nextSibling;
46131
+ var n = T2(), r = n.firstChild, i = r.nextSibling;
46089
46132
  return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
46090
46133
  })()
46091
46134
  }), null), t;
@@ -46093,28 +46136,47 @@ function C2() {
46093
46136
  })];
46094
46137
  }
46095
46138
  }), null), P(a, j(kj, {
46096
- class: "h-6 px-2 text-[11px]",
46139
+ class: "size-7 px-0",
46097
46140
  variant: "ghost",
46098
46141
  get loading() {
46099
46142
  return i() === e.id;
46100
46143
  },
46101
- title: "Record hover/focus/open styles for 8 seconds while you interact",
46144
+ title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
46145
+ "aria-label": "Capture interaction states",
46102
46146
  onClick: () => void m(e),
46103
- children: "Capture states"
46147
+ get children() {
46148
+ return h2();
46149
+ }
46104
46150
  }), null), P(a, j(kj, {
46105
- class: "h-6 px-2 text-[11px]",
46151
+ class: "size-7 px-0",
46106
46152
  variant: "ghost",
46107
- title: "Copy the genome as a markdown spec — paste to an agent or issue",
46153
+ get title() {
46154
+ return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
46155
+ },
46156
+ "aria-label": "Copy genome spec",
46108
46157
  onClick: () => void h(e),
46109
46158
  get children() {
46110
- var t = l2();
46111
- return P(t, () => u() === e.id ? "Copied ✓" : "Copy spec"), t;
46159
+ return j(M, {
46160
+ get when() {
46161
+ return u() === e.id;
46162
+ },
46163
+ get fallback() {
46164
+ return E2();
46165
+ },
46166
+ get children() {
46167
+ return g2();
46168
+ }
46169
+ });
46112
46170
  }
46113
46171
  }), null), P(a, j(kj, {
46114
- class: "text-danger ml-auto h-6 px-2 text-[11px]",
46172
+ class: "text-danger ml-auto size-7 px-0",
46115
46173
  variant: "ghost",
46174
+ title: "Delete this genome",
46175
+ "aria-label": "Delete genome",
46116
46176
  onClick: () => g(e.id),
46117
- children: "Delete"
46177
+ get children() {
46178
+ return _2();
46179
+ }
46118
46180
  }), null), t;
46119
46181
  }
46120
46182
  }), null), D((e) => {
@@ -46134,7 +46196,7 @@ function C2() {
46134
46196
  rt(["click"]);
46135
46197
  //#endregion
46136
46198
  //#region src/lib/projectConfig.ts
46137
- var w2 = [
46199
+ var N2 = [
46138
46200
  "defaultTeamId",
46139
46201
  "defaultProjectId",
46140
46202
  "defaultLabelIds",
@@ -46149,29 +46211,29 @@ var w2 = [
46149
46211
  "issueTemplate",
46150
46212
  "testUsername"
46151
46213
  ];
46152
- function T2(e) {
46214
+ function P2(e) {
46153
46215
  let t = {};
46154
- for (let n of w2) {
46216
+ for (let n of N2) {
46155
46217
  let r = e[n];
46156
46218
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
46157
46219
  }
46158
46220
  return t;
46159
46221
  }
46160
- function E2(e, t) {
46222
+ function F2(e, t) {
46161
46223
  let n = {};
46162
- for (let r of w2) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46224
+ for (let r of N2) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46163
46225
  return Object.keys(n).length ? n : null;
46164
46226
  }
46165
46227
  //#endregion
46166
46228
  //#region src/lib/linear/auth.ts
46167
46229
  Br();
46168
- function D2(e) {
46230
+ function I2(e) {
46169
46231
  let t = "";
46170
46232
  for (let n of e) t += String.fromCharCode(n);
46171
46233
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
46172
46234
  }
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");
46235
+ async function L2(e) {
46236
+ let t = I2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = I2(new Uint8Array(n)), i = I2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46175
46237
  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
46238
  let s = await chrome.identity.launchWebAuthFlow({
46177
46239
  url: o.toString(),
@@ -46199,15 +46261,15 @@ async function O2(e) {
46199
46261
  linearOauthClientId: e
46200
46262
  });
46201
46263
  }
46202
- async function k2() {
46264
+ async function R2() {
46203
46265
  await Er({
46204
46266
  linearAccessToken: void 0,
46205
46267
  linearApiKey: void 0
46206
46268
  });
46207
46269
  }
46208
46270
  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() {
46271
+ var z2 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), B2 = /*#__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."), V2 = /*#__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"), H2 = /*#__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)."), U2 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), W2 = /*#__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]\">"), G2 = /*#__PURE__*/ N("<option value>Select a team…"), K2 = /*#__PURE__*/ N("<option value>No project"), q2 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), J2 = /*#__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."), Y2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), X2 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), Z2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), Q2 = /*#__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."), $2 = /*#__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."), e4 = /*#__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."), t4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), n4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), r4 = /*#__PURE__*/ N("<option value>Select a channel…"), i4 = /*#__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"), a4 = /*#__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."), o4 = /*#__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"), s4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), c4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), l4 = /*#__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."), u4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), d4 = /*#__PURE__*/ N("<button>"), f4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), p4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), m4 = /*#__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\">"), h4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), g4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), _4 = /*#__PURE__*/ N("<option> (<!>)"), v4 = /*#__PURE__*/ N("<option>"), y4 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), b4 = /*#__PURE__*/ N("<option value>Select the agent…"), x4 = /*#__PURE__*/ N("<option>#"), S4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46272
+ function C4() {
46211
46273
  let e = sr(), t = _r(() => ({
46212
46274
  queryKey: ["settings"],
46213
46275
  queryFn: Tr,
@@ -46235,13 +46297,13 @@ function m4() {
46235
46297
  retry: 0
46236
46298
  })), [l, u] = T(!1), d = async () => {
46237
46299
  try {
46238
- await navigator.clipboard.writeText(JSON.stringify(T2(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46300
+ await navigator.clipboard.writeText(JSON.stringify(P2(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46239
46301
  } catch {}
46240
46302
  }, f = () => {
46241
46303
  let e = c.data?.projectConfig;
46242
46304
  if (!e) return;
46243
46305
  let t = {};
46244
- for (let n of w2) e[n] !== void 0 && (t[n] = e[n]);
46306
+ for (let n of N2) e[n] !== void 0 && (t[n] = e[n]);
46245
46307
  r(t);
46246
46308
  }, p = _r(() => ({
46247
46309
  queryKey: ["linear-labels"],
@@ -46274,7 +46336,7 @@ function m4() {
46274
46336
  }
46275
46337
  E(!0), ee("");
46276
46338
  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"] });
46339
+ await L2(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
46340
  } catch (e) {
46279
46341
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
46280
46342
  } finally {
@@ -46285,7 +46347,7 @@ function m4() {
46285
46347
  async function re() {
46286
46348
  ne(!0);
46287
46349
  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"] });
46350
+ await R2(), 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
46351
  } finally {
46290
46352
  ne(!1);
46291
46353
  }
@@ -46301,12 +46363,12 @@ function m4() {
46301
46363
  return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
46302
46364
  });
46303
46365
  return (() => {
46304
- var e = t4();
46366
+ var e = u4();
46305
46367
  return P(e, j(Rj, {
46306
46368
  title: "Workflow",
46307
46369
  get children() {
46308
46370
  return [(() => {
46309
- var e = A2();
46371
+ var e = z2();
46310
46372
  return P(e, j(We, {
46311
46373
  each: [{
46312
46374
  id: "cloud",
@@ -46316,19 +46378,19 @@ function m4() {
46316
46378
  label: "Local · clipboard"
46317
46379
  }],
46318
46380
  children: (e) => (() => {
46319
- var t = n4();
46381
+ var t = d4();
46320
46382
  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
46383
  })()
46322
46384
  })), e;
46323
- })(), j2()];
46385
+ })(), B2()];
46324
46386
  }
46325
46387
  }), null), P(e, j(Rj, {
46326
46388
  title: "Capture",
46327
46389
  get children() {
46328
46390
  return [(() => {
46329
- var e = M2(), t = e.firstChild;
46391
+ var e = V2(), t = e.firstChild;
46330
46392
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
46331
- })(), N2()];
46393
+ })(), H2()];
46332
46394
  }
46333
46395
  }), null), P(e, j(Rj, {
46334
46396
  title: "Linear",
@@ -46339,13 +46401,13 @@ function m4() {
46339
46401
  },
46340
46402
  get fallback() {
46341
46403
  return (() => {
46342
- var e = o4();
46404
+ var e = h4();
46343
46405
  return P(e, j(Lj, {
46344
46406
  label: "Personal API key",
46345
46407
  hint: "Create one at linear.app → Settings → API — fastest path.",
46346
46408
  get children() {
46347
46409
  return [(() => {
46348
- var e = r4();
46410
+ var e = f4();
46349
46411
  return P(e, j(jj, {
46350
46412
  type: "password",
46351
46413
  placeholder: "lin_api_…",
@@ -46382,12 +46444,12 @@ function m4() {
46382
46444
  }), null), P(e, j(M, {
46383
46445
  when: xr,
46384
46446
  get children() {
46385
- return [i4(), j(Lj, {
46447
+ return [p4(), j(Lj, {
46386
46448
  label: "OAuth client ID",
46387
46449
  get children() {
46388
46450
  return [
46389
46451
  (() => {
46390
- var e = r4();
46452
+ var e = f4();
46391
46453
  return P(e, j(jj, {
46392
46454
  placeholder: "your-client-id",
46393
46455
  get value() {
@@ -46415,7 +46477,7 @@ function m4() {
46415
46477
  }
46416
46478
  }),
46417
46479
  (() => {
46418
- var e = a4(), t = e.firstChild.nextSibling.nextSibling;
46480
+ var e = m4(), t = e.firstChild.nextSibling.nextSibling;
46419
46481
  return P(t, ie), e;
46420
46482
  })()
46421
46483
  ];
@@ -46426,13 +46488,13 @@ function m4() {
46426
46488
  })();
46427
46489
  },
46428
46490
  get children() {
46429
- var e = F2(), t = e.firstChild;
46491
+ var e = W2(), t = e.firstChild;
46430
46492
  return P(t, j(M, {
46431
46493
  get when() {
46432
46494
  return !a.isLoading;
46433
46495
  },
46434
46496
  get fallback() {
46435
- return s4();
46497
+ return g4();
46436
46498
  },
46437
46499
  get children() {
46438
46500
  return j(M, {
@@ -46445,7 +46507,7 @@ function m4() {
46445
46507
  return a.isError;
46446
46508
  },
46447
46509
  get fallback() {
46448
- return s4();
46510
+ return g4();
46449
46511
  },
46450
46512
  get children() {
46451
46513
  return j(Hj, { message: "Key rejected — reconnect" });
@@ -46453,7 +46515,7 @@ function m4() {
46453
46515
  });
46454
46516
  },
46455
46517
  get children() {
46456
- var e = P2(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46518
+ var e = U2(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46457
46519
  return P(t, () => a.data.name), P(n, () => a.data.email), e;
46458
46520
  }
46459
46521
  });
@@ -46494,7 +46556,7 @@ function m4() {
46494
46556
  return o.isLoading;
46495
46557
  },
46496
46558
  get children() {
46497
- return [I2(), j(M, {
46559
+ return [G2(), j(M, {
46498
46560
  get when() {
46499
46561
  return o.data;
46500
46562
  },
@@ -46504,7 +46566,7 @@ function m4() {
46504
46566
  return o.data;
46505
46567
  },
46506
46568
  children: (e) => (() => {
46507
- var t = c4(), r = t.firstChild, i = r.nextSibling;
46569
+ var t = _4(), r = t.firstChild, i = r.nextSibling;
46508
46570
  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
46571
  })()
46510
46572
  });
@@ -46528,14 +46590,14 @@ function m4() {
46528
46590
  },
46529
46591
  get children() {
46530
46592
  return [(() => {
46531
- var e = L2();
46593
+ var e = K2();
46532
46594
  return D(() => e.selected = !n().defaultProjectId), e;
46533
46595
  })(), j(We, {
46534
46596
  get each() {
46535
46597
  return s.data ?? [];
46536
46598
  },
46537
46599
  children: (e) => (() => {
46538
- var t = l4();
46600
+ var t = v4();
46539
46601
  return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
46540
46602
  })()
46541
46603
  })];
@@ -46547,7 +46609,7 @@ function m4() {
46547
46609
  label: "Default labels",
46548
46610
  hint: "Applied to every issue created from the panel.",
46549
46611
  get children() {
46550
- var e = R2();
46612
+ var e = q2();
46551
46613
  return P(e, j(We, {
46552
46614
  get each() {
46553
46615
  return p.data ?? [];
@@ -46555,7 +46617,7 @@ function m4() {
46555
46617
  children: (e) => {
46556
46618
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
46557
46619
  return (() => {
46558
- var i = u4(), a = i.firstChild;
46620
+ var i = y4(), a = i.firstChild;
46559
46621
  return i.$$click = () => {
46560
46622
  let i = n().defaultLabelIds ?? [];
46561
46623
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -46572,7 +46634,7 @@ function m4() {
46572
46634
  }
46573
46635
  }),
46574
46636
  (() => {
46575
- var e = z2(), t = e.firstChild;
46637
+ var e = J2(), t = e.firstChild;
46576
46638
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
46577
46639
  })(),
46578
46640
  j(Lj, {
@@ -46622,7 +46684,7 @@ function m4() {
46622
46684
  return m.isLoading;
46623
46685
  },
46624
46686
  get children() {
46625
- return [d4(), j(M, {
46687
+ return [b4(), j(M, {
46626
46688
  get when() {
46627
46689
  return m.data;
46628
46690
  },
@@ -46632,7 +46694,7 @@ function m4() {
46632
46694
  return m.data;
46633
46695
  },
46634
46696
  children: (e) => (() => {
46635
- var t = l4();
46697
+ var t = v4();
46636
46698
  return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
46637
46699
  })()
46638
46700
  });
@@ -46642,7 +46704,7 @@ function m4() {
46642
46704
  });
46643
46705
  },
46644
46706
  get children() {
46645
- return B2();
46707
+ return Y2();
46646
46708
  }
46647
46709
  });
46648
46710
  }
@@ -46690,7 +46752,7 @@ function m4() {
46690
46752
  onBlur: (e) => {
46691
46753
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
46692
46754
  }
46693
- }), V2()];
46755
+ }), X2()];
46694
46756
  }
46695
46757
  }),
46696
46758
  j(Lj, {
@@ -46747,7 +46809,7 @@ function m4() {
46747
46809
  label: "Test account",
46748
46810
  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
46811
  get children() {
46750
- var e = H2();
46812
+ var e = Z2();
46751
46813
  return P(e, j(jj, {
46752
46814
  placeholder: "Username or email (e.g. demo@yourapp.com)",
46753
46815
  get value() {
@@ -46779,7 +46841,7 @@ function m4() {
46779
46841
  title: "Panel",
46780
46842
  get children() {
46781
46843
  return [(() => {
46782
- var e = U2(), t = e.firstChild.nextSibling;
46844
+ var e = Q2(), t = e.firstChild.nextSibling;
46783
46845
  return P(t, j(We, {
46784
46846
  each: [{
46785
46847
  id: "overlay",
@@ -46789,7 +46851,7 @@ function m4() {
46789
46851
  label: "Beside page"
46790
46852
  }],
46791
46853
  children: (e) => (() => {
46792
- var t = n4();
46854
+ var t = d4();
46793
46855
  return t.$$click = () => void r({
46794
46856
  panelMode: e.id,
46795
46857
  panelPos: void 0
@@ -46797,11 +46859,11 @@ function m4() {
46797
46859
  })()
46798
46860
  })), e;
46799
46861
  })(), (() => {
46800
- var e = W2(), t = e.firstChild.nextSibling;
46862
+ var e = $2(), t = e.firstChild.nextSibling;
46801
46863
  return P(t, j(We, {
46802
46864
  each: ["left", "right"],
46803
46865
  children: (e) => (() => {
46804
- var t = n4();
46866
+ var t = d4();
46805
46867
  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
46868
  })()
46807
46869
  })), e;
@@ -46831,8 +46893,8 @@ function m4() {
46831
46893
  }), null), P(e, j(Rj, {
46832
46894
  title: "Project config (.lineargrab.json)",
46833
46895
  get children() {
46834
- return [G2(), (() => {
46835
- var e = q2();
46896
+ return [e4(), (() => {
46897
+ var e = n4();
46836
46898
  return P(e, j(M, {
46837
46899
  get when() {
46838
46900
  return c.data?.projectConfig;
@@ -46863,7 +46925,7 @@ function m4() {
46863
46925
  },
46864
46926
  onClick: () => void d(),
46865
46927
  get children() {
46866
- var e = K2();
46928
+ var e = t4();
46867
46929
  return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
46868
46930
  }
46869
46931
  }), null), e;
@@ -46954,12 +47016,12 @@ function m4() {
46954
47016
  });
46955
47017
  },
46956
47018
  get children() {
46957
- return [J2(), j(We, {
47019
+ return [r4(), j(We, {
46958
47020
  get each() {
46959
47021
  return ae.data ?? [];
46960
47022
  },
46961
47023
  children: (e) => (() => {
46962
- var t = f4();
47024
+ var t = x4();
46963
47025
  return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
46964
47026
  })()
46965
47027
  })];
@@ -47010,10 +47072,10 @@ function m4() {
47010
47072
  }
47011
47073
  }),
47012
47074
  (() => {
47013
- var e = Y2(), t = e.firstChild;
47075
+ var e = i4(), t = e.firstChild;
47014
47076
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
47015
47077
  })(),
47016
- X2()
47078
+ a4()
47017
47079
  ];
47018
47080
  }
47019
47081
  }), null), P(e, j(Rj, {
@@ -47051,7 +47113,7 @@ function m4() {
47051
47113
  }
47052
47114
  }),
47053
47115
  (() => {
47054
- var e = Z2(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47116
+ var e = o4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47055
47117
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
47056
47118
  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
47119
  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 +47126,16 @@ function m4() {
47064
47126
  }), e;
47065
47127
  })(),
47066
47128
  (() => {
47067
- var e = $2();
47129
+ var e = c4();
47068
47130
  return P(e, j(M, {
47069
47131
  get when() {
47070
47132
  return se();
47071
47133
  },
47072
47134
  get fallback() {
47073
- return p4();
47135
+ return S4();
47074
47136
  },
47075
47137
  get children() {
47076
- var e = Q2();
47138
+ var e = s4();
47077
47139
  return P(e, se), e;
47078
47140
  }
47079
47141
  })), e;
@@ -47083,7 +47145,7 @@ function m4() {
47083
47145
  }), null), P(e, j(Rj, {
47084
47146
  title: "How it works",
47085
47147
  get children() {
47086
- return e4();
47148
+ return l4();
47087
47149
  }
47088
47150
  }), null), e;
47089
47151
  })();
@@ -47091,38 +47153,38 @@ function m4() {
47091
47153
  rt(["click"]);
47092
47154
  //#endregion
47093
47155
  //#region src/lib/idbCache.ts
47094
- var h4 = "linear-grab", g4 = "queries", _4 = [
47156
+ var w4 = "linear-grab", T4 = "queries", E4 = [
47095
47157
  "my-issues",
47096
47158
  "issue",
47097
47159
  "sessions",
47098
47160
  "teams",
47099
47161
  "agents"
47100
47162
  ];
47101
- function v4() {
47163
+ function D4() {
47102
47164
  return new Promise((e) => {
47103
47165
  try {
47104
- let t = indexedDB.open(h4, 1);
47105
- t.onupgradeneeded = () => t.result.createObjectStore(g4), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47166
+ let t = indexedDB.open(w4, 1);
47167
+ t.onupgradeneeded = () => t.result.createObjectStore(T4), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47106
47168
  } catch {
47107
47169
  e(null);
47108
47170
  }
47109
47171
  });
47110
47172
  }
47111
- function y4(e) {
47112
- return typeof e[0] == "string" && _4.includes(e[0]);
47173
+ function O4(e) {
47174
+ return typeof e[0] == "string" && E4.includes(e[0]);
47113
47175
  }
47114
- async function b4(e) {
47115
- let t = await v4();
47176
+ async function k4(e) {
47177
+ let t = await D4();
47116
47178
  if (!t) return () => {};
47117
47179
  await new Promise((n) => {
47118
47180
  try {
47119
- let r = t.transaction(g4, "readonly").objectStore(g4).openCursor();
47181
+ let r = t.transaction(T4, "readonly").objectStore(T4).openCursor();
47120
47182
  r.onsuccess = () => {
47121
47183
  let t = r.result;
47122
47184
  if (!t) return n();
47123
47185
  try {
47124
47186
  let { queryKey: n, data: r } = t.value;
47125
- y4(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47187
+ O4(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47126
47188
  } catch {}
47127
47189
  t.continue();
47128
47190
  }, r.onerror = () => n();
@@ -47133,14 +47195,14 @@ async function b4(e) {
47133
47195
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
47134
47196
  if (r.type !== "updated" || r.action.type !== "success") return;
47135
47197
  let { queryKey: i, queryHash: a } = r.query;
47136
- if (!y4(i)) return;
47198
+ if (!O4(i)) return;
47137
47199
  let o = n.get(a);
47138
47200
  o && clearTimeout(o), n.set(a, setTimeout(() => {
47139
47201
  n.delete(a);
47140
47202
  try {
47141
47203
  let n = e.getQueryData(i);
47142
47204
  if (n === void 0) return;
47143
- t.transaction(g4, "readwrite").objectStore(g4).put({
47205
+ t.transaction(T4, "readwrite").objectStore(T4).put({
47144
47206
  queryKey: i,
47145
47207
  data: n
47146
47208
  }, a);
@@ -47156,7 +47218,7 @@ async function b4(e) {
47156
47218
  //#endregion
47157
47219
  //#region src/panel/App.tsx
47158
47220
  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 = [
47221
+ var A4 = /*#__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\">"), j4 = /*#__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\">"), M4 = /*#__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\">–"), N4 = /*#__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>"), P4 = /*#__PURE__*/ N("<button>"), F4 = [
47160
47222
  {
47161
47223
  id: "draft",
47162
47224
  label: "Draft"
@@ -47193,35 +47255,35 @@ var x4 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
47193
47255
  id: "settings",
47194
47256
  label: "Settings"
47195
47257
  }
47196
- ], D4 = /* @__PURE__ */ new Set();
47197
- function O4(e, t, n) {
47198
- if (D4.has(e) || typeof Notification > "u") return;
47199
- D4.add(e);
47258
+ ], I4 = /* @__PURE__ */ new Set();
47259
+ function L4(e, t, n) {
47260
+ if (I4.has(e) || typeof Notification > "u") return;
47261
+ I4.add(e);
47200
47262
  let r = () => new Notification(t, { body: n });
47201
47263
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
47202
47264
  }
47203
- function k4() {
47265
+ function R4() {
47204
47266
  setInterval(() => {
47205
47267
  NO().then((e) => {
47206
47268
  for (let t of e) {
47207
47269
  if (t.status !== "running") continue;
47208
47270
  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.`);
47271
+ Date.now() - e > 10 * 6e4 && L4(`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
47272
  }
47211
47273
  }).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.`);
47274
+ for (let t of e) /awaitingInput|elicit/i.test(t.status) && L4(`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
47275
  }).catch(() => {});
47214
47276
  }, 6e4);
47215
47277
  }
47216
- k4();
47217
- var A4 = new gr({ defaultOptions: { queries: {
47278
+ R4();
47279
+ var z4 = new gr({ defaultOptions: { queries: {
47218
47280
  retry: 1,
47219
47281
  refetchOnWindowFocus: !1,
47220
47282
  staleTime: 5e3
47221
47283
  } } });
47222
- function j4(e) {
47284
+ function B4(e) {
47223
47285
  return (() => {
47224
- var t = x4();
47286
+ var t = A4();
47225
47287
  return D((n) => {
47226
47288
  var r = e.size ?? 14, i = e.size ?? 14;
47227
47289
  return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
@@ -47231,36 +47293,36 @@ function j4(e) {
47231
47293
  }), t;
47232
47294
  })();
47233
47295
  }
47234
- function M4(e) {
47296
+ function V4(e) {
47235
47297
  let [t, n] = T("draft"), r = () => {
47236
- A4.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47298
+ z4.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47237
47299
  };
47238
47300
  return O(() => {
47239
47301
  let e = nj();
47240
47302
  e && n(e);
47241
47303
  }), ie(() => {
47242
- let e = b4(A4), t = XZ(r), n = () => {
47304
+ let e = k4(z4), t = XZ(r), n = () => {
47243
47305
  JO().then(y$), VO(), MO().then(async (e) => {
47244
47306
  if (!e.projectConfig) return;
47245
- let t = E2(await Tr(), e.projectConfig);
47307
+ let t = F2(await Tr(), e.projectConfig);
47246
47308
  t && await Er(t);
47247
47309
  }).catch(() => {});
47248
47310
  };
47249
47311
  n();
47250
47312
  let i = Mr((e) => {
47251
- e === "settings" && (A4.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47313
+ e === "settings" && (z4.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47252
47314
  });
47253
47315
  ae(() => {
47254
47316
  t(), i(), e.then((e) => e());
47255
47317
  });
47256
47318
  }), j(cr, {
47257
- client: A4,
47319
+ client: z4,
47258
47320
  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,
47321
+ var r = N4(), 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;
47322
+ return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(B4, { size: 14 })), P(o, j(We, {
47323
+ each: F4,
47262
47324
  children: (e) => (() => {
47263
- var r = T4();
47325
+ var r = P4();
47264
47326
  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
47327
  })()
47266
47328
  })), P(i, j(M, {
@@ -47268,7 +47330,7 @@ function M4(e) {
47268
47330
  return e.onTogglePin;
47269
47331
  },
47270
47332
  get children() {
47271
- var t = S4();
47333
+ var t = j4();
47272
47334
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
47273
47335
  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
47336
  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 +47345,10 @@ function M4(e) {
47283
47345
  return e.onClose;
47284
47346
  },
47285
47347
  get children() {
47286
- var t = C4();
47348
+ var t = M4();
47287
47349
  return t.$$click = () => e.onClose?.(), t;
47288
47350
  }
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) => {
47351
+ }), 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(M2, {})), P(h, j(C4, {})), D((n) => {
47290
47352
  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
47353
  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
47354
  }, {
@@ -47307,12 +47369,12 @@ function M4(e) {
47307
47369
  rt(["pointerdown", "click"]);
47308
47370
  //#endregion
47309
47371
  //#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}}";
47372
+ var H4 = "/*! 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
47373
  //#endregion
47312
47374
  //#region src/page/index.tsx
47313
47375
  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 = {}) {
47376
+ var U4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), W4 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), G4 = /*#__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"), K4 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), q4 = /*#__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"), J4 = /*#__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\">"), Y4 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), X4 = /*#__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\">"), Z4 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), Q4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), $4 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), e3 = /*#__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>"), t3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), n3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), r3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), i3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), a3 = /*#__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\"> · <!> · ");
47377
+ function o3(e = {}) {
47316
47378
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
47317
47379
  window.__LINEAR_GRAB_PAGE__ = !0;
47318
47380
  let t = () => {
@@ -47344,17 +47406,17 @@ function J4(e = {}) {
47344
47406
  "keypress"
47345
47407
  ]) window.addEventListener(e, n, { capture: !0 });
47346
47408
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
47347
- i.textContent = N4, r.appendChild(i);
47409
+ i.textContent = H4, r.appendChild(i);
47348
47410
  let a = document.createElement("div");
47349
47411
  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() {
47412
+ let o = () => a.setAttribute("data-theme", s3());
47413
+ o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(p3, { get defaultOpen() {
47352
47414
  return e.defaultOpen ?? !1;
47353
47415
  } }), a);
47354
47416
  };
47355
47417
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
47356
47418
  }
47357
- function Y4() {
47419
+ function s3() {
47358
47420
  try {
47359
47421
  let e = [document.body, document.documentElement];
47360
47422
  for (let t of e) {
@@ -47364,133 +47426,140 @@ function Y4() {
47364
47426
  } catch {}
47365
47427
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
47366
47428
  }
47367
- var X4 = 130, Z4 = 36, Q4 = 380, $4 = 280, e3 = 720;
47368
- function t3(e) {
47429
+ var c3 = 130, l3 = 36, u3 = 380, d3 = 280, f3 = 720;
47430
+ function p3(e) {
47369
47431
  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)
47432
+ x: Math.max(8, window.innerWidth - c3 - 24),
47433
+ y: Math.max(8, window.innerHeight - l3 - 20)
47372
47434
  }), [s, c] = T({
47373
47435
  running: [],
47374
47436
  review: []
47375
- }), l = () => s().running, u = () => s().review, [d, f] = T(!1), [p, m] = T(HD().phase), [h, g] = T(0);
47437
+ }), l = () => s().running, u = () => s().review, [d, f] = T(!1), [p, m] = T(HD().phase), [h, g] = T({
47438
+ active: !1,
47439
+ msLeft: 0,
47440
+ total: 0,
47441
+ byTrigger: {}
47442
+ }), [_, v] = T(0);
47376
47443
  ie(() => {
47377
47444
  let e = setInterval(() => {
47378
- p() === "recording" && g(Date.now() - (HD().startedAt ?? Date.now()));
47445
+ p() === "recording" && v(Date.now() - (HD().startedAt ?? Date.now()));
47379
47446
  }, 250);
47380
47447
  ae(() => clearInterval(e));
47381
47448
  });
47382
- let _ = (e) => {
47449
+ let y = (e) => {
47383
47450
  let t = Math.floor(e / 1e3);
47384
47451
  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),
47452
+ }, [b, x] = T(null), S = (e) => ({
47453
+ x: Math.min(Math.max(8, e.x), window.innerWidth - c3 - 8),
47454
+ y: Math.min(Math.max(8, e.y), window.innerHeight - l3 - 8)
47455
+ }), C = (e) => ({
47456
+ x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
47390
47457
  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)));
47458
+ }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(u3), oe = (e) => Math.min(f3, Math.max(d3, Math.min(e, window.innerWidth - 60)));
47392
47459
  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` : "";
47460
+ let e = document.documentElement, n = t() && w();
47461
+ e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
47395
47462
  }), ae(() => {
47396
47463
  document.documentElement.style.marginRight = "", document.documentElement.style.marginLeft = "";
47397
47464
  });
47398
- let re = () => {
47399
- let e = !S();
47400
- C(e), e && y(null), Er({
47465
+ let se = () => {
47466
+ let e = !w();
47467
+ E(e), e && x(null), Er({
47401
47468
  panelMode: e ? "pinned" : "overlay",
47402
47469
  panelPos: void 0
47403
47470
  });
47404
47471
  };
47405
47472
  ie(() => {
47406
47473
  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");
47474
+ 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
47475
  });
47409
47476
  let e = Mr((e) => {
47410
47477
  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);
47478
+ i(e.panelSide ?? "right"), E(e.panelMode === "pinned"), ee(e.workflowMode ?? "cloud");
47479
+ }), e === "grab" && k() !== "local" && n(!0);
47413
47480
  }), t = () => {
47414
- ee(!0), setTimeout(() => ee(!1), 1600);
47481
+ A(!0), setTimeout(() => A(!1), 1600);
47415
47482
  };
47416
47483
  window.addEventListener(zZ, t);
47417
47484
  let r = () => {
47418
- f(!1), S() || n(!1);
47485
+ f(!1), w() || n(!1);
47419
47486
  };
47420
47487
  window.addEventListener(BZ, r);
47421
47488
  let s = () => n(!0);
47422
47489
  window.addEventListener("linear-grab:picker-finished", s), ae(() => {
47423
47490
  window.removeEventListener(zZ, t), window.removeEventListener(BZ, r), window.removeEventListener("linear-grab:picker-finished", s);
47424
47491
  });
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;
47492
+ let l = e$(c);
47493
+ ae(i2(g));
47494
+ let u = HD().phase, d = UD((e) => {
47495
+ m(e.phase), e.phase === "recording" && u !== "recording" && !w() && n(!1), e.phase === "ready" && u !== "ready" && (oj("capture"), n(!0)), u = e.phase;
47427
47496
  }), p = () => {
47428
- o(b(a()));
47429
- let e = v();
47430
- e && y(x(e));
47497
+ o(S(a()));
47498
+ let e = b();
47499
+ e && x(C(e));
47431
47500
  };
47432
47501
  window.addEventListener("resize", p), ae(() => {
47433
47502
  e(), l(), d(), window.removeEventListener("resize", p);
47434
47503
  });
47435
47504
  });
47436
- let oe = !1, se = (e) => {
47505
+ let ce = !1, le = (e) => {
47437
47506
  if (e.button !== 0) return;
47438
47507
  let t = {
47439
47508
  x: e.clientX,
47440
47509
  y: e.clientY
47441
47510
  }, n = a();
47442
- oe = !1;
47511
+ ce = !1;
47443
47512
  let r = (e) => {
47444
47513
  let r = e.clientX - t.x, i = e.clientY - t.y;
47445
- Math.abs(r) + Math.abs(i) > 4 && (oe = !0), oe && o(b({
47514
+ Math.abs(r) + Math.abs(i) > 4 && (ce = !0), ce && o(S({
47446
47515
  x: n.x + r,
47447
47516
  y: n.y + i
47448
47517
  }));
47449
47518
  }, i = () => {
47450
- window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i), oe && Er({ launcherPos: a() }), setTimeout(() => {
47451
- oe = !1;
47519
+ window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i), ce && Er({ launcherPos: a() }), setTimeout(() => {
47520
+ ce = !1;
47452
47521
  }, 0);
47453
47522
  };
47454
47523
  window.addEventListener("pointermove", r), window.addEventListener("pointerup", i);
47455
- }, ce = () => a().y > 260, le = (e) => {
47524
+ }, ue = () => a().y > 260, de = (e) => {
47456
47525
  f(!1), oj("activity", e), n(!0);
47457
- }, ue = (e) => {
47526
+ }, fe = (e) => {
47458
47527
  if (e.button !== 0) return;
47459
47528
  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({
47529
+ let t = e.clientX, n = ne(), i = b(), a = (e) => {
47530
+ let a = e.clientX - t, o = r() === "right" ? -a : a, s = oe(n + o);
47531
+ re(s), i && r() === "right" && x(C({
47463
47532
  x: i.x + (n - s),
47464
47533
  y: i.y
47465
47534
  }));
47466
47535
  }, o = () => {
47467
47536
  window.removeEventListener("pointermove", a), window.removeEventListener("pointerup", o), Er({
47468
- panelWidth: te(),
47469
- ...v() ? { panelPos: v() } : {}
47537
+ panelWidth: ne(),
47538
+ ...b() ? { panelPos: b() } : {}
47470
47539
  });
47471
47540
  };
47472
47541
  window.addEventListener("pointermove", a), window.addEventListener("pointerup", o);
47473
- }, de = (e) => {
47542
+ }, pe = (e) => {
47474
47543
  if (e.button !== 0) return;
47475
47544
  if (e.detail === 2) {
47476
- y(null), Er({ panelPos: void 0 });
47545
+ x(null), Er({ panelPos: void 0 });
47477
47546
  return;
47478
47547
  }
47479
47548
  let t = {
47480
47549
  x: e.clientX,
47481
47550
  y: e.clientY
47482
- }, n = v() ?? {
47483
- x: r() === "right" ? window.innerWidth - te() : 0,
47551
+ }, n = b() ?? {
47552
+ x: r() === "right" ? window.innerWidth - ne() : 0,
47484
47553
  y: 0
47485
47554
  }, i = !1, a = (e) => {
47486
47555
  let r = e.clientX - t.x, a = e.clientY - t.y;
47487
- Math.abs(r) + Math.abs(a) > 4 && (i = !0), i && y(x({
47556
+ Math.abs(r) + Math.abs(a) > 4 && (i = !0), i && x(C({
47488
47557
  x: n.x + r,
47489
47558
  y: n.y + a
47490
47559
  }));
47491
47560
  }, o = () => {
47492
47561
  window.removeEventListener("pointermove", a), window.removeEventListener("pointerup", o);
47493
- let e = v();
47562
+ let e = b();
47494
47563
  i && e && Er({ panelPos: e });
47495
47564
  };
47496
47565
  window.addEventListener("pointermove", a), window.addEventListener("pointerup", o);
@@ -47500,41 +47569,41 @@ function t3(e) {
47500
47569
  return !t();
47501
47570
  },
47502
47571
  get children() {
47503
- var e = z4(), t = e.firstChild;
47572
+ var e = J4(), t = e.firstChild;
47504
47573
  return t.$$click = () => {
47505
- oe || p() === "recording" || (f(!1), n(!0));
47506
- }, t.$$pointerdown = se, P(t, j(M, {
47574
+ ce || p() === "recording" || h().active || (f(!1), n(!0));
47575
+ }, t.$$pointerdown = le, P(t, j(M, {
47507
47576
  get when() {
47508
- return p() === "recording";
47577
+ return p() === "recording" || h().active;
47509
47578
  },
47510
47579
  get fallback() {
47511
47580
  return [
47512
47581
  (() => {
47513
- var e = V4();
47582
+ var e = X4();
47514
47583
  return e.$$click = () => {
47515
- oe || (f(!1), n(!0));
47516
- }, P(e, j(j4, { size: 13 })), e;
47584
+ ce || (f(!1), n(!0));
47585
+ }, P(e, j(B4, { size: 13 })), e;
47517
47586
  })(),
47518
- H4(),
47587
+ Z4(),
47519
47588
  (() => {
47520
- var e = G4(), t = e.firstChild, n = t.nextSibling;
47589
+ var e = e3(), t = e.firstChild, n = t.nextSibling;
47521
47590
  return e.$$click = (e) => {
47522
- e.stopPropagation(), !oe && f((e) => !e);
47591
+ e.stopPropagation(), !ce && f((e) => !e);
47523
47592
  }, P(n, (() => {
47524
- var e = $e(() => !!k());
47593
+ var e = $e(() => !!te());
47525
47594
  return () => e() ? "Copied ✓" : `${l().length} run`;
47526
47595
  })()), P(e, j(M, {
47527
47596
  get when() {
47528
- return $e(() => !k())() && u().length > 0;
47597
+ return $e(() => !te())() && u().length > 0;
47529
47598
  },
47530
47599
  get children() {
47531
- return [U4(), (() => {
47532
- var e = W4(), t = e.firstChild;
47600
+ return [Q4(), (() => {
47601
+ var e = $4(), t = e.firstChild;
47533
47602
  return P(e, () => u().length, t), e;
47534
47603
  })()];
47535
47604
  }
47536
47605
  }), 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"}`;
47606
+ 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
47607
  return r !== e.e && st(t, e.e = r), i !== e.t && st(n, e.t = i), e;
47539
47608
  }, {
47540
47609
  e: void 0,
@@ -47544,39 +47613,65 @@ function t3(e) {
47544
47613
  ];
47545
47614
  },
47546
47615
  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
- ];
47616
+ return j(M, {
47617
+ get when() {
47618
+ return p() === "recording";
47619
+ },
47620
+ get fallback() {
47621
+ return [
47622
+ t3(),
47623
+ (() => {
47624
+ var e = n3(), t = e.firstChild;
47625
+ return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
47626
+ })(),
47627
+ (() => {
47628
+ var e = r3(), t = e.firstChild;
47629
+ 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;
47630
+ })(),
47631
+ (() => {
47632
+ var e = G4();
47633
+ return e.$$click = (e) => {
47634
+ e.stopPropagation(), !ce && o2();
47635
+ }, e;
47636
+ })()
47637
+ ];
47638
+ },
47639
+ get children() {
47640
+ return [
47641
+ U4(),
47642
+ (() => {
47643
+ var e = W4();
47644
+ return P(e, () => y(_())), e;
47645
+ })(),
47646
+ (() => {
47647
+ var e = G4();
47648
+ return e.$$click = () => {
47649
+ ce || eO();
47650
+ }, e;
47651
+ })()
47652
+ ];
47653
+ }
47654
+ });
47560
47655
  }
47561
47656
  })), P(e, j(M, {
47562
47657
  get when() {
47563
47658
  return d();
47564
47659
  },
47565
47660
  get children() {
47566
- var e = R4(), t = e.firstChild;
47661
+ var e = q4(), t = e.firstChild;
47567
47662
  return P(e, j(M, {
47568
47663
  get when() {
47569
47664
  return u().length > 0;
47570
47665
  },
47571
47666
  get children() {
47572
- return [L4(), j(We, {
47667
+ return [K4(), j(We, {
47573
47668
  get each() {
47574
47669
  return u();
47575
47670
  },
47576
- children: (e) => j(n3, {
47671
+ children: (e) => j(m3, {
47577
47672
  agent: e,
47578
47673
  review: !0,
47579
- onOpen: le
47674
+ onOpen: de
47580
47675
  })
47581
47676
  })];
47582
47677
  }
@@ -47585,20 +47680,20 @@ function t3(e) {
47585
47680
  return l().length > 0;
47586
47681
  },
47587
47682
  get fallback() {
47588
- return K4();
47683
+ return i3();
47589
47684
  },
47590
47685
  get children() {
47591
47686
  return j(We, {
47592
47687
  get each() {
47593
47688
  return l();
47594
47689
  },
47595
- children: (e) => j(n3, {
47690
+ children: (e) => j(m3, {
47596
47691
  agent: e,
47597
- onOpen: le
47692
+ onOpen: de
47598
47693
  })
47599
47694
  });
47600
47695
  }
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;
47696
+ }), 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
47697
  }
47603
47698
  }), null), D((t) => {
47604
47699
  var n = `${a().x}px`, r = `${a().y}px`;
@@ -47613,23 +47708,23 @@ function t3(e) {
47613
47708
  return t();
47614
47709
  },
47615
47710
  get children() {
47616
- var e = B4(), t = e.firstChild;
47617
- return t.$$pointerdown = ue, P(e, j(M4, {
47711
+ var e = Y4(), t = e.firstChild;
47712
+ return t.$$pointerdown = fe, P(e, j(V4, {
47618
47713
  onGrab: () => n(!0),
47619
47714
  onClose: () => n(!1),
47620
47715
  get onHeaderPointerDown() {
47621
- return S() ? void 0 : de;
47716
+ return w() ? void 0 : pe;
47622
47717
  },
47623
47718
  get pinned() {
47624
- return S();
47719
+ return w();
47625
47720
  },
47626
- onTogglePin: re
47721
+ onTogglePin: se
47627
47722
  }), 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`,
47723
+ 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 = {
47724
+ width: `${ne()}px`,
47725
+ ...!w() && b() ? {
47726
+ left: `${b().x}px`,
47727
+ top: `${b().y}px`,
47633
47728
  height: `${Math.min(680, window.innerHeight - 16)}px`
47634
47729
  } : {}
47635
47730
  }, 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 +47737,19 @@ function t3(e) {
47642
47737
  }
47643
47738
  })];
47644
47739
  }
47645
- function n3(e) {
47740
+ function m3(e) {
47646
47741
  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;
47742
+ var t = a3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
47648
47743
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
47649
47744
  var t = $e(() => !!e.review);
47650
47745
  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;
47746
+ })(), s), P(o, () => e.agent.delegateName, c), P(o, () => h3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
47652
47747
  })();
47653
47748
  }
47654
- function r3(e) {
47749
+ function h3(e) {
47655
47750
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
47656
47751
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
47657
47752
  }
47658
47753
  rt(["pointerdown", "click"]);
47659
47754
  //#endregion
47660
- export { J4 as init };
47755
+ export { o3 as init };