@popcorn245/cornfield-components 0.52.0 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1782,45 +1782,45 @@ function un(e, t, n) {
1782
1782
  return e.when !== void 0 && (cn.includes(e.when) || r.push(`has when "${e.when}". Valid values: ${cn.join(", ")}`), e.kind === "calls" ? i || r.push("has \"when\" but does not go into a cloud node: only an outage of a cloud service is timed.") : r.push("has \"when\", which goes only on a calls edge.")), e.side !== void 0 && (ln.includes(e.side) || r.push(`has side "${e.side}". Valid values: ${ln.join(", ")}`), e.kind === "calls" ? (t?.type !== "app" || n?.type !== "external") && r.push("has \"side\", which goes only on an app -> external calls edge (the visitor's browser makes the call).") : r.push("has \"side\", which goes only on a calls edge.")), r;
1783
1783
  }
1784
1784
  // ../explorer/outage-model.js
1785
- var dn = Object.keys(M), fn = Object.fromEntries(dn.map((e, t) => [e, t])), pn = /* @__PURE__ */ new Set([
1785
+ var F = Object.keys(M), dn = Object.fromEntries(F.map((e, t) => [e, t])), fn = /* @__PURE__ */ new Set([
1786
1786
  "persona",
1787
1787
  "room",
1788
1788
  "floor"
1789
- ]), mn = [
1789
+ ]), pn = [
1790
1790
  "external",
1791
1791
  "machine",
1792
1792
  "container",
1793
1793
  "service",
1794
1794
  "page",
1795
1795
  "app"
1796
- ], hn = (e) => {
1797
- let t = mn.indexOf(e);
1798
- return t < 0 ? mn.length : t;
1799
- }, gn = {
1796
+ ], mn = (e) => {
1797
+ let t = pn.indexOf(e);
1798
+ return t < 0 ? pn.length : t;
1799
+ }, hn = {
1800
1800
  color: "#050608",
1801
1801
  halo: "child"
1802
- }, _n = {
1802
+ }, gn = {
1803
1803
  alpha: .92,
1804
1804
  glow: 10,
1805
1805
  edgeAlpha: .9,
1806
1806
  edgeWidth: 2.2
1807
- }, vn = (e, t) => `${e}->${t}`;
1808
- function yn(e, t, n) {
1807
+ }, _n = (e, t) => `${e}->${t}`;
1808
+ function vn(e, t, n) {
1809
1809
  let r = new Map(t.map((e) => [e.id, e])), i = [...new Set(Array.isArray(e) ? e : [])].filter((e) => r.has(e)), a = new Set(i), o = /* @__PURE__ */ new Map(), s = (e, t) => {
1810
1810
  o.has(e) || o.set(e, []), o.get(e).push(t);
1811
1811
  }, c = /* @__PURE__ */ new Map();
1812
1812
  for (let e of n) if (e && e.from && e.to) {
1813
1813
  if (e.kind === "calls") s(e.to, {
1814
1814
  from: e.from,
1815
- rank: fn[At(e)],
1815
+ rank: dn[At(e)],
1816
1816
  browser: e.side === "browser",
1817
- key: vn(e.from, e.to)
1817
+ key: _n(e.from, e.to)
1818
1818
  });
1819
1819
  else if (e.kind === "triggers" && (r.get(e.from) || {}).type === "page" && (r.get(e.to) || {}).type === "service") s(e.to, {
1820
1820
  from: e.from,
1821
1821
  rank: 0,
1822
1822
  browser: !1,
1823
- key: vn(e.from, e.to)
1823
+ key: _n(e.from, e.to)
1824
1824
  });
1825
1825
  else if (e.kind === "runs-on" && Array.isArray(e.mappings)) for (let t of e.mappings) {
1826
1826
  if (!t || !t.service) continue;
@@ -1838,7 +1838,7 @@ function yn(e, t, n) {
1838
1838
  key: null
1839
1839
  }));
1840
1840
  return i.length ? [...t, ...i] : t;
1841
- }, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = dn.map(() => []);
1841
+ }, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = F.map(() => []);
1842
1842
  i.forEach((e) => f[0].push({
1843
1843
  id: e,
1844
1844
  rank: 0,
@@ -1848,13 +1848,13 @@ function yn(e, t, n) {
1848
1848
  let { id: n, rank: i, browser: o } = f[e][t], s = u.get(n);
1849
1849
  if (!(s && (s.rank < i || s.rank === i && s.browser !== o))) for (let e of l(n)) {
1850
1850
  let t = r.get(e.from);
1851
- if (!t || a.has(e.from) || pn.has(t.type)) continue;
1851
+ if (!t || a.has(e.from) || fn.has(t.type)) continue;
1852
1852
  let n = Math.max(i, e.rank), s = o || e.browser;
1853
- e.key && (!d.has(e.key) || fn[d.get(e.key)] > n) && d.set(e.key, dn[n]);
1853
+ e.key && (!d.has(e.key) || dn[d.get(e.key)] > n) && d.set(e.key, F[n]);
1854
1854
  let c = u.get(e.from);
1855
1855
  c && (c.rank < n || c.rank === n && (!c.browser || s)) || (u.set(e.from, {
1856
1856
  rank: n,
1857
- when: dn[n],
1857
+ when: F[n],
1858
1858
  browser: s
1859
1859
  }), f[n].push({
1860
1860
  id: e.from,
@@ -1871,8 +1871,8 @@ function yn(e, t, n) {
1871
1871
  down: i,
1872
1872
  hits: p,
1873
1873
  edges: d,
1874
- groups: dn.map((e) => {
1875
- let t = [...p].filter(([, t]) => t.when === e).map(([e]) => e).sort((e, t) => hn(r.get(e).type) - hn(r.get(t).type) || m(e).localeCompare(m(t))), { title: n, color: i } = M[e];
1874
+ groups: F.map((e) => {
1875
+ let t = [...p].filter(([, t]) => t.when === e).map(([e]) => e).sort((e, t) => mn(r.get(e).type) - mn(r.get(t).type) || m(e).localeCompare(m(t))), { title: n, color: i } = M[e];
1876
1876
  return {
1877
1877
  when: e,
1878
1878
  title: n,
@@ -1882,25 +1882,25 @@ function yn(e, t, n) {
1882
1882
  }).filter((e) => e.ids.length)
1883
1883
  };
1884
1884
  }
1885
- var F = null;
1886
- function bn(e, t, n) {
1885
+ var I = null;
1886
+ function yn(e, t, n) {
1887
1887
  let r = e && Array.isArray(e.down) ? e.down : [];
1888
1888
  if (!r.length) return null;
1889
1889
  let i = r.join("\0");
1890
- return F && F.key === i && F.nodes === t && F.edges === n || (F = {
1890
+ return I && I.key === i && I.nodes === t && I.edges === n || (I = {
1891
1891
  key: i,
1892
1892
  nodes: t,
1893
1893
  edges: n,
1894
- radius: yn(r, t, n)
1895
- }), F.radius;
1894
+ radius: vn(r, t, n)
1895
+ }), I.radius;
1896
1896
  }
1897
- function xn(e, t) {
1897
+ function bn(e, t) {
1898
1898
  if (!t) return;
1899
1899
  let n = new Set(t.down);
1900
1900
  for (let r of e.nodes) {
1901
1901
  if (n.has(r.id)) {
1902
1902
  Object.assign(r, {
1903
- color: gn.color,
1903
+ color: hn.color,
1904
1904
  alpha: 1,
1905
1905
  labelAlpha: 1,
1906
1906
  labelColor: "#f8fafc",
@@ -1908,12 +1908,12 @@ function xn(e, t) {
1908
1908
  labelStrike: !0,
1909
1909
  connected: !0,
1910
1910
  glow: 0
1911
- }), r.halo === "none" && (r.halo = gn.halo);
1911
+ }), r.halo === "none" && (r.halo = hn.halo);
1912
1912
  continue;
1913
1913
  }
1914
1914
  let e = t.hits.get(r.id);
1915
1915
  if (!e) continue;
1916
- let i = Math.max(r.alpha, _n.alpha);
1916
+ let i = Math.max(r.alpha, gn.alpha);
1917
1917
  Object.assign(r, {
1918
1918
  color: M[e.when].color,
1919
1919
  alpha: i,
@@ -1921,101 +1921,101 @@ function xn(e, t) {
1921
1921
  labelColor: "#f8fafc",
1922
1922
  labelKeep: !0,
1923
1923
  connected: !0,
1924
- glow: Math.max(r.glow || 0, _n.glow)
1924
+ glow: Math.max(r.glow || 0, gn.glow)
1925
1925
  });
1926
1926
  }
1927
1927
  for (let n of e.edges) {
1928
- let e = t.edges.get(vn(n.from, n.to));
1928
+ let e = t.edges.get(_n(n.from, n.to));
1929
1929
  if (!e) continue;
1930
1930
  let r = M[e].color;
1931
- n.color = r, n.glow && (n.glowColor = r), n.alpha = Math.max(n.alpha, _n.edgeAlpha), n.width = Math.max(n.width, _n.edgeWidth), n.packet &&= {
1931
+ n.color = r, n.glow && (n.glowColor = r), n.alpha = Math.max(n.alpha, gn.edgeAlpha), n.width = Math.max(n.width, gn.edgeWidth), n.packet &&= {
1932
1932
  ...n.packet,
1933
1933
  glowColor: r
1934
1934
  };
1935
1935
  }
1936
1936
  }
1937
1937
  // ../explorer/house-model.js
1938
- var Sn = /* @__PURE__ */ new Set([
1938
+ var xn = /* @__PURE__ */ new Set([
1939
1939
  "container",
1940
1940
  "stack",
1941
1941
  "machine"
1942
1942
  ]);
1943
- function Cn(e, t) {
1943
+ function Sn(e, t) {
1944
1944
  return !!(e.house && e.house.shown && e.house.shown.has(t.id));
1945
1945
  }
1946
- var wn = null;
1947
- function Tn(e) {
1946
+ var Cn = null;
1947
+ function wn(e) {
1948
1948
  let t = e.house && e.house.cloudLines;
1949
- return !t || !t.length ? e.edges : (wn && wn.edges === e.edges && wn.lines === t || (wn = {
1949
+ return !t || !t.length ? e.edges : (Cn && Cn.edges === e.edges && Cn.lines === t || (Cn = {
1950
1950
  edges: e.edges,
1951
1951
  lines: t,
1952
1952
  all: [...e.edges, ...t]
1953
- }), wn.all);
1953
+ }), Cn.all);
1954
1954
  }
1955
- function En(e, t, n) {
1956
- return e.kind === "runs-on" || e.kind === "delivers" ? "flow" : e.kind === "calls" && n && n.type === "external" ? e.rolled || !(t && Sn.has(t.type)) ? "flow" : null : !e.kind && !e.dashed && t && t.type === "persona" && n && n.type === "device" || !e.kind && e.dashed && t && (t.type === "container" || t.type === "external") && n && n.type === "device" ? "link" : null;
1955
+ function Tn(e, t, n) {
1956
+ return e.kind === "runs-on" || e.kind === "delivers" ? "flow" : e.kind === "calls" && n && n.type === "external" ? e.rolled || !(t && xn.has(t.type)) ? "flow" : null : !e.kind && !e.dashed && t && t.type === "persona" && n && n.type === "device" || !e.kind && e.dashed && t && (t.type === "container" || t.type === "external") && n && n.type === "device" ? "link" : null;
1957
1957
  }
1958
- var Dn = [
1958
+ var En = [
1959
1959
  "persona",
1960
1960
  "machine",
1961
1961
  "stack",
1962
1962
  "floor",
1963
1963
  "external"
1964
1964
  ];
1965
- function On(e, t) {
1965
+ function Dn(e, t) {
1966
1966
  let n = t.house;
1967
1967
  e.decor.rings = [], e.decor.lanes = n && n.lanes ? n.lanes : [];
1968
- for (let t of e.nodes) t.type === "room" ? (t.label = "", t.labelKeep = !1) : Dn.includes(t.type) && (t.labelKeep = !0);
1969
- return n && n.cloudIds && n.cloudIds.size && Nn(e, t), e;
1968
+ for (let t of e.nodes) t.type === "room" ? (t.label = "", t.labelKeep = !1) : En.includes(t.type) && (t.labelKeep = !0);
1969
+ return n && n.cloudIds && n.cloudIds.size && Mn(e, t), e;
1970
1970
  }
1971
- var kn = {
1971
+ var On = {
1972
1972
  run: .9,
1973
1973
  deploy: .25,
1974
1974
  renew: .9
1975
- }, An = {
1975
+ }, kn = {
1976
1976
  alpha: .9,
1977
1977
  width: 2.2
1978
- }, jn = Object.keys(M), Mn = (e) => jn.find((t) => M[t].ticks === (e.ticks || 0)) || "run";
1979
- function Nn(e, t) {
1980
- let n = t.house, r = t.scenario ? bn(t.scenario, t.nodes, t.edges) : null, i = !t.scenario && !!t.selectedNode, a = new Map((n.cloudLines || []).map((e) => [`${e.from}->${e.to}|${e.when}`, e])), o = r ? new Set(r.down) : null;
1978
+ }, An = Object.keys(M), jn = (e) => An.find((t) => M[t].ticks === (e.ticks || 0)) || "run";
1979
+ function Mn(e, t) {
1980
+ let n = t.house, r = t.scenario ? yn(t.scenario, t.nodes, t.edges) : null, i = !t.scenario && !!t.selectedNode, a = new Map((n.cloudLines || []).map((e) => [`${e.from}->${e.to}|${e.when}`, e])), o = r ? new Set(r.down) : null;
1981
1981
  e.edges = e.edges.filter((e) => {
1982
1982
  if (e.kind !== "calls" || !n.cloudIds.has(e.to)) return !0;
1983
- let t = Mn(e);
1983
+ let t = jn(e);
1984
1984
  if (r) {
1985
1985
  let i = a.get(`${e.from}->${e.to}|${t}`), s = o.has(e.to) ? "run" : r.hits.has(e.to) ? r.hits.get(e.to).when : null;
1986
1986
  if (i && s) {
1987
- let n = jn[Math.max(jn.indexOf(s), jn.indexOf(t))];
1987
+ let n = An[Math.max(An.indexOf(s), An.indexOf(t))];
1988
1988
  return Object.assign(e, {
1989
1989
  color: M[n].color,
1990
- alpha: Math.max(e.alpha, An.alpha),
1991
- width: Math.max(e.width, An.width)
1990
+ alpha: Math.max(e.alpha, kn.alpha),
1991
+ width: Math.max(e.width, kn.width)
1992
1992
  }), e.glow && (e.glowColor = e.color), !0;
1993
1993
  }
1994
1994
  return !n.phone || r.edges.has(`${e.from}->${e.to}`);
1995
1995
  }
1996
- return i ? !n.phone || e.alpha >= .5 : !n.phone && (e.alpha = kn[t], !0);
1996
+ return i ? !n.phone || e.alpha >= .5 : !n.phone && (e.alpha = On[t], !0);
1997
1997
  });
1998
1998
  }
1999
1999
  // ../explorer/verdict-paint.js
2000
- var Pn = {
2000
+ var Nn = {
2001
2001
  allowed: "#4ade80",
2002
2002
  refused: "#ff2d55",
2003
2003
  mismatch: "#fbbf24"
2004
- }, Fn = 18, In = 4.5;
2005
- function Ln(e, t) {
2004
+ }, Pn = 18, Fn = 4.5;
2005
+ function In(e, t) {
2006
2006
  return e.from !== t.from || e.to !== t.to ? !1 : t.kind ? e.kind === t.kind && (!t.flow || e.key.split("|")[2] === t.flow) : e.kind === "ownership" || e.kind === "usage";
2007
2007
  }
2008
- function Rn(e, t) {
2008
+ function Ln(e, t) {
2009
2009
  let n = t && t.verdict;
2010
2010
  if (!n || t.done) return;
2011
- let r = n.mismatch ? Pn.mismatch : Pn[n.state];
2011
+ let r = n.mismatch ? Nn.mismatch : Nn[n.state];
2012
2012
  if (!r) return;
2013
2013
  let { node: i, edge: a } = t.current;
2014
2014
  if (i !== void 0) {
2015
2015
  let t = e.nodes.find((e) => e.id === i);
2016
- t && (t.color = r, t.glow = Math.max(t.glow || 0, Fn));
2016
+ t && (t.color = r, t.glow = Math.max(t.glow || 0, Pn));
2017
2017
  } else a && e.edges.forEach((e) => {
2018
- Ln(e, a) && (e.color = r, e.glowColor = r, e.glow = Math.max(e.glow || 0, Fn), e.width = Math.max(e.width || 0, In), e.packet &&= n.state === "refused" && !n.mismatch ? {
2018
+ In(e, a) && (e.color = r, e.glowColor = r, e.glow = Math.max(e.glow || 0, Pn), e.width = Math.max(e.width || 0, Fn), e.packet &&= n.state === "refused" && !n.mismatch ? {
2019
2019
  ...e.packet,
2020
2020
  color: r,
2021
2021
  glowColor: r,
@@ -2028,26 +2028,26 @@ function Rn(e, t) {
2028
2028
  });
2029
2029
  }
2030
2030
  // ../core/layers.js
2031
- var zn = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/, Bn = Object.freeze([
2031
+ var Rn = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/, zn = Object.freeze([
2032
2032
  "key",
2033
2033
  "label",
2034
2034
  "desc",
2035
2035
  "match"
2036
- ]), Vn = Object.freeze([
2036
+ ]), Bn = Object.freeze([
2037
2037
  "type",
2038
2038
  "kind",
2039
2039
  "parent",
2040
2040
  "field"
2041
- ]), Hn = Object.freeze([
2041
+ ]), Vn = Object.freeze([
2042
2042
  "add",
2043
2043
  "off",
2044
2044
  "order"
2045
- ]), Un = /^[A-Za-z][A-Za-z0-9_]*$/, Wn = Object.freeze([
2045
+ ]), Hn = /^[A-Za-z][A-Za-z0-9_]*$/, Un = Object.freeze([
2046
2046
  "root",
2047
2047
  "external",
2048
2048
  "floor",
2049
2049
  "room"
2050
- ]), Gn = Object.freeze([
2050
+ ]), Wn = Object.freeze([
2051
2051
  {
2052
2052
  key: "app",
2053
2053
  label: "Apps",
@@ -2191,54 +2191,54 @@ var zn = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/, Bn = Object.freeze([
2191
2191
  match: { type: "persona" },
2192
2192
  live: !0
2193
2193
  }
2194
- ]), Kn = Object.freeze(Gn.map((e) => e.key)), qn = new Set(Kn), Jn = Object.keys(P), I = (e) => typeof e == "object" && !!e && !Array.isArray(e), Yn = /* @__PURE__ */ RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u2028\\u2029]"), L = (e) => typeof e == "string" ? `"${e.length > 40 ? `${e.slice(0, 40)}…` : e}"` : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) ? "a list" : e === null ? "null" : typeof e, Xn = (e) => typeof e == "string" && e.length > 0 && e.length <= 80 && !Yn.test(e) || typeof e == "number" && Number.isFinite(e) || typeof e == "boolean", Zn = /^[a-z0-9]+(-[a-z0-9]+)*$/, Qn = new Set(Jn), $n = (e, t) => Qn.has(e) && typeof t == "string" && t.length <= 32 && Zn.test(t) ? `--corn-map-kind-${e}-${t}` : null, er = (e) => typeof e == "string" && e.length <= 32 && zn.test(e) ? `--corn-map-group-${e}` : null, tr = ({ type: e, kind: t, layer: n, group: r }) => [
2195
- $n(e, t),
2196
- n ? er(n) : null,
2194
+ ]), Gn = Object.freeze(Wn.map((e) => e.key)), Kn = new Set(Gn), qn = Object.keys(P), L = (e) => typeof e == "object" && !!e && !Array.isArray(e), Jn = /* @__PURE__ */ RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u2028\\u2029]"), R = (e) => typeof e == "string" ? `"${e.length > 40 ? `${e.slice(0, 40)}…` : e}"` : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) ? "a list" : e === null ? "null" : typeof e, Yn = (e) => typeof e == "string" && e.length > 0 && e.length <= 80 && !Jn.test(e) || typeof e == "number" && Number.isFinite(e) || typeof e == "boolean", Xn = /^[a-z0-9]+(-[a-z0-9]+)*$/, Zn = new Set(qn), Qn = (e, t) => Zn.has(e) && typeof t == "string" && t.length <= 32 && Xn.test(t) ? `--corn-map-kind-${e}-${t}` : null, $n = (e) => typeof e == "string" && e.length <= 32 && Rn.test(e) ? `--corn-map-group-${e}` : null, er = ({ type: e, kind: t, layer: n, group: r }) => [
2195
+ Qn(e, t),
2196
+ n ? $n(n) : null,
2197
2197
  `--corn-map-node-${e}`,
2198
2198
  `--corn-map-group-${r || e}`
2199
2199
  ].filter(Boolean);
2200
- function nr(e) {
2200
+ function tr(e) {
2201
2201
  if (typeof e != "string") return null;
2202
- if (Qn.has(e)) return { type: e };
2202
+ if (Zn.has(e)) return { type: e };
2203
2203
  let t = e.indexOf(":");
2204
2204
  if (t < 0) return null;
2205
2205
  let n = e.slice(0, t), r = e.slice(t + 1);
2206
- return n === "layer" ? zn.test(r) && r.length <= 32 ? { layer: r } : null : Qn.has(n) && Zn.test(r) && r.length <= 32 ? {
2206
+ return n === "layer" ? Rn.test(r) && r.length <= 32 ? { layer: r } : null : Zn.has(n) && Xn.test(r) && r.length <= 32 ? {
2207
2207
  type: n,
2208
2208
  kind: r
2209
2209
  } : null;
2210
2210
  }
2211
- function rr(e, t, n) {
2211
+ function nr(e, t, n) {
2212
2212
  let r = [];
2213
- return typeof t == "string" && Zn.test(t) && t.length <= 32 && r.push(`${e}:${t}`), n && r.push(`layer:${n}`), r.push(e), r;
2213
+ return typeof t == "string" && Xn.test(t) && t.length <= 32 && r.push(`${e}:${t}`), n && r.push(`layer:${n}`), r.push(e), r;
2214
2214
  }
2215
- var ir = /* @__PURE__ */ new WeakMap();
2216
- function ar(e) {
2217
- let t = ir.get(e);
2215
+ var rr = /* @__PURE__ */ new WeakMap();
2216
+ function ir(e) {
2217
+ let t = rr.get(e);
2218
2218
  if (t && t.length === e.length) return t.map;
2219
2219
  let n = /* @__PURE__ */ new Map();
2220
2220
  for (let t of e) t && !t.dashed && !t.kind && t.from && t.to && t.from !== t.to && !n.has(t.to) && n.set(t.to, t.from);
2221
- return ir.set(e, {
2221
+ return rr.set(e, {
2222
2222
  length: e.length,
2223
2223
  map: n
2224
2224
  }), n;
2225
2225
  }
2226
- var R = (e, t) => Array.isArray(e) ? e.includes(t) : e === t;
2226
+ var ar = (e, t) => Array.isArray(e) ? e.includes(t) : e === t;
2227
2227
  function or(e, t, n) {
2228
- if (!I(e)) return !1;
2228
+ if (!L(e)) return !1;
2229
2229
  let r = !1;
2230
- if (e.type !== void 0 && (r = !0, !R(e.type, t.type)) || e.kind !== void 0 && (r = !0, !R(e.kind, t.kind)) || e.parent !== void 0 && (r = !0, !n || !R(e.parent, n(t)))) return !1;
2230
+ if (e.type !== void 0 && (r = !0, !ar(e.type, t.type)) || e.kind !== void 0 && (r = !0, !ar(e.kind, t.kind)) || e.parent !== void 0 && (r = !0, !n || !ar(e.parent, n(t)))) return !1;
2231
2231
  if (e.field !== void 0) {
2232
2232
  r = !0;
2233
2233
  for (let n of Object.keys(e.field)) {
2234
2234
  if (!Object.hasOwn(t, n)) return !1;
2235
2235
  let r = t[n], i = e.field[n];
2236
- if (!(Array.isArray(r) ? r.some((e) => R(i, e)) : R(i, r))) return !1;
2236
+ if (!(Array.isArray(r) ? r.some((e) => ar(i, e)) : ar(i, r))) return !1;
2237
2237
  }
2238
2238
  }
2239
2239
  return r;
2240
2240
  }
2241
- var sr = [...Gn.filter((e) => e.match)].sort((e, t) => Number("kind" in t.match) - Number("kind" in e.match));
2241
+ var sr = [...Wn.filter((e) => e.match)].sort((e, t) => Number("kind" in t.match) - Number("kind" in e.match));
2242
2242
  function cr(e) {
2243
2243
  if (e.type === "root") return null;
2244
2244
  if (e.type === "external") return e.kind === "web" ? "web" : "cloud";
@@ -2250,32 +2250,32 @@ function lr(e, t, n) {
2250
2250
  for (let r of e) if (or(r.match, t, n)) return r.key;
2251
2251
  return null;
2252
2252
  }
2253
- var ur = (e, t, n) => lr(e, t, n) || cr(t), dr = `${Jn.slice(0, 5).join(", ")}, …`, fr = (e) => {
2254
- let t = (Array.isArray(e) ? e : []).map((e) => I(e) && typeof e.key == "string" ? e.key : null).filter((e) => e && zn.test(e));
2255
- return `${Kn.slice(0, 3).join(", ")}, …${t.length ? `, ${t[t.length - 1]}` : ""}`;
2253
+ var ur = (e, t, n) => lr(e, t, n) || cr(t), dr = `${qn.slice(0, 5).join(", ")}, …`, fr = (e) => {
2254
+ let t = (Array.isArray(e) ? e : []).map((e) => L(e) && typeof e.key == "string" ? e.key : null).filter((e) => e && Rn.test(e));
2255
+ return `${Gn.slice(0, 3).join(", ")}, …${t.length ? `, ${t[t.length - 1]}` : ""}`;
2256
2256
  };
2257
2257
  function pr(e, t, n, r) {
2258
2258
  return Array.isArray(n) ? (n.length ? n.length > 20 && r.push(`${e}.${t} has ${n.length} values: at most 20.`) : r.push(`${e}.${t} is an empty list: give at least one value, or leave the key out.`), n.length <= 20 ? n : []) : [n];
2259
2259
  }
2260
2260
  function mr(e, t, n) {
2261
- if (!I(t)) n.push(`${e}.match is { type, kind, parent, field }: say at least one of them.`);
2261
+ if (!L(t)) n.push(`${e}.match is { type, kind, parent, field }: say at least one of them.`);
2262
2262
  else {
2263
- for (let r of Object.keys(t)) Vn.includes(r) || n.push(`${e}.match has unknown key "${r}": known: ${Vn.join(", ")}. A match is data: no pattern, no function.`);
2264
- if (!Object.keys(t).some((e) => Vn.includes(e))) Object.keys(t).length || n.push(`${e}.match is empty: say at least one of ${Vn.join(", ")}.`);
2263
+ for (let r of Object.keys(t)) Bn.includes(r) || n.push(`${e}.match has unknown key "${r}": known: ${Bn.join(", ")}. A match is data: no pattern, no function.`);
2264
+ if (!Object.keys(t).some((e) => Bn.includes(e))) Object.keys(t).length || n.push(`${e}.match is empty: say at least one of ${Bn.join(", ")}.`);
2265
2265
  else {
2266
- if ("type" in t) for (let r of pr(`${e}.match`, "type", t.type, n)) typeof r == "string" && Jn.includes(r) || n.push(`${e}.match.type ${L(r)} is not a node type (${dr}).`);
2267
- if ("kind" in t) for (let r of pr(`${e}.match`, "kind", t.kind, n)) (typeof r != "string" || !r || r.length > 80 || Yn.test(r)) && n.push(`${e}.match.kind ${L(r)}: a kind is text, one line, at most 80 characters.`);
2268
- if ("parent" in t) for (let r of pr(`${e}.match`, "parent", t.parent, n)) (typeof r != "string" || !r || r.length > 200 || Yn.test(r)) && n.push(`${e}.match.parent ${L(r)}: a parent is a node id (text), like "pkg-core".`);
2266
+ if ("type" in t) for (let r of pr(`${e}.match`, "type", t.type, n)) typeof r == "string" && qn.includes(r) || n.push(`${e}.match.type ${R(r)} is not a node type (${dr}).`);
2267
+ if ("kind" in t) for (let r of pr(`${e}.match`, "kind", t.kind, n)) (typeof r != "string" || !r || r.length > 80 || Jn.test(r)) && n.push(`${e}.match.kind ${R(r)}: a kind is text, one line, at most 80 characters.`);
2268
+ if ("parent" in t) for (let r of pr(`${e}.match`, "parent", t.parent, n)) (typeof r != "string" || !r || r.length > 200 || Jn.test(r)) && n.push(`${e}.match.parent ${R(r)}: a parent is a node id (text), like "pkg-core".`);
2269
2269
  if ("field" in t) {
2270
2270
  let r = t.field;
2271
- if (!I(r)) {
2271
+ if (!L(r)) {
2272
2272
  n.push(`${e}.match.field is { name: value }: a node field and the value (or list of values) it must have.`);
2273
2273
  return;
2274
2274
  }
2275
2275
  let i = Object.keys(r);
2276
2276
  i.length || n.push(`${e}.match.field is empty: name a field, like { audience: 'household' }.`), i.length > 4 && n.push(`${e}.match.field names ${i.length} fields: at most 4.`);
2277
2277
  for (let t of i.slice(0, 20)) {
2278
- if (!Un.test(t) || t.length > 40) {
2278
+ if (!Hn.test(t) || t.length > 40) {
2279
2279
  n.push(`${e}.match.field "${t.slice(0, 40)}": a field name is letters, digits and "_", starting with a letter.`);
2280
2280
  continue;
2281
2281
  }
@@ -2288,7 +2288,7 @@ function mr(e, t, n) {
2288
2288
  continue;
2289
2289
  }
2290
2290
  let i = Array.isArray(r[t]) ? r[t] : [r[t]];
2291
- Array.isArray(r[t]) && (!i.length || i.length > 20) ? n.push(`${e}.match.field.${t} is a list of ${i.length}: one to 20 values.`) : i.every(Xn) || n.push(`${e}.match.field.${t}: a value is text, a number, true or false, or a list of them.`);
2291
+ Array.isArray(r[t]) && (!i.length || i.length > 20) ? n.push(`${e}.match.field.${t} is a list of ${i.length}: one to 20 values.`) : i.every(Yn) || n.push(`${e}.match.field.${t}: a value is text, a number, true or false, or a list of them.`);
2292
2292
  }
2293
2293
  }
2294
2294
  }
@@ -2296,9 +2296,9 @@ function mr(e, t, n) {
2296
2296
  }
2297
2297
  function hr(e) {
2298
2298
  if (e === void 0) return [];
2299
- if (!I(e)) return ["\"layers\" is an object: { add: [{ key, label, match }], off: [keys], order: [keys] }."];
2299
+ if (!L(e)) return ["\"layers\" is an object: { add: [{ key, label, match }], off: [keys], order: [keys] }."];
2300
2300
  let t = [];
2301
- for (let n of Object.keys(e)) Hn.includes(n) || t.push(`layers has unknown key "${n}": known: ${Hn.join(", ")}.`);
2301
+ for (let n of Object.keys(e)) Vn.includes(n) || t.push(`layers has unknown key "${n}": known: ${Vn.join(", ")}.`);
2302
2302
  let n = e.add;
2303
2303
  n !== void 0 && !Array.isArray(n) && t.push("layers.add is a list of project layers: [{ key, label, desc?, match }].");
2304
2304
  let r = Array.isArray(n) ? n : [];
@@ -2306,24 +2306,24 @@ function hr(e) {
2306
2306
  let i = /* @__PURE__ */ new Map();
2307
2307
  r.slice(0, 100).forEach((e, n) => {
2308
2308
  let r = `layers.add[${n}]`;
2309
- if (!I(e)) {
2309
+ if (!L(e)) {
2310
2310
  t.push(`${r} is { key, label, desc?, match }.`);
2311
2311
  return;
2312
2312
  }
2313
2313
  for (let n of Object.keys(e)) {
2314
- if (Bn.includes(n)) continue;
2314
+ if (zn.includes(n)) continue;
2315
2315
  let e = /^colou?r$|^icon$|^fill$/i.test(n) ? " Colours and icons are the theme's." : n === "on" || n === "hide" ? " Whether a layer starts off is layers.off." : "";
2316
- t.push(`${r} has unknown key "${n}": known: ${Bn.join(", ")}.${e}`);
2316
+ t.push(`${r} has unknown key "${n}": known: ${zn.join(", ")}.${e}`);
2317
2317
  }
2318
2318
  let a = e.key;
2319
- typeof a == "string" ? qn.has(a) ? t.push(`${r}.key ${L(a)} is a starting layer: pick another key.`) : Wn.includes(a) ? t.push(`${r}.key ${L(a)} is reserved (a node type): pick another key.`) : !zn.test(a) || a.length > 32 ? t.push(`${r}.key ${L(a)}: lower-case words joined by "-", like "edge-stack"${a.length > 32 ? ", at most 32 characters" : ""}.`) : i.has(a) ? t.push(`${r}.key ${L(a)} is also layers.add[${i.get(a)}].key: a key is used once.`) : i.set(a, n) : t.push(`${r}.key is required: lower-case words joined by "-", like "edge-stack".`);
2319
+ typeof a == "string" ? Kn.has(a) ? t.push(`${r}.key ${R(a)} is a starting layer: pick another key.`) : Un.includes(a) ? t.push(`${r}.key ${R(a)} is reserved (a node type): pick another key.`) : !Rn.test(a) || a.length > 32 ? t.push(`${r}.key ${R(a)}: lower-case words joined by "-", like "edge-stack"${a.length > 32 ? ", at most 32 characters" : ""}.`) : i.has(a) ? t.push(`${r}.key ${R(a)} is also layers.add[${i.get(a)}].key: a key is used once.`) : i.set(a, n) : t.push(`${r}.key is required: lower-case words joined by "-", like "edge-stack".`);
2320
2320
  let o = (n, i, a) => {
2321
2321
  let o = e[n];
2322
- o === void 0 ? a && t.push(`${r}.${n} is required: plain text, one line, at most ${i} characters.`) : typeof o != "string" || !o.trim() ? t.push(`${r}.${n} ${L(o)}: plain text, one line, at most ${i} characters.`) : Yn.test(o) ? t.push(`${r}.${n}: one line of plain text (no line break or control character).`) : [...o].length > i && t.push(`${r}.${n} is ${[...o].length} characters: at most ${i}.`);
2322
+ o === void 0 ? a && t.push(`${r}.${n} is required: plain text, one line, at most ${i} characters.`) : typeof o != "string" || !o.trim() ? t.push(`${r}.${n} ${R(o)}: plain text, one line, at most ${i} characters.`) : Jn.test(o) ? t.push(`${r}.${n}: one line of plain text (no line break or control character).`) : [...o].length > i && t.push(`${r}.${n} is ${[...o].length} characters: at most ${i}.`);
2323
2323
  };
2324
- o("label", 40, !0), o("desc", 120, !1), e.match === void 0 ? t.push(`${r}.match is required: say at least one of ${Vn.join(", ")}.`) : mr(r, e.match, t);
2324
+ o("label", 40, !0), o("desc", 120, !1), e.match === void 0 ? t.push(`${r}.match is required: say at least one of ${Bn.join(", ")}.`) : mr(r, e.match, t);
2325
2325
  });
2326
- let a = /* @__PURE__ */ new Set([...Kn, ...r.map((e) => I(e) && typeof e.key == "string" ? e.key : null).filter(Boolean)]);
2326
+ let a = /* @__PURE__ */ new Set([...Gn, ...r.map((e) => L(e) && typeof e.key == "string" ? e.key : null).filter(Boolean)]);
2327
2327
  for (let r of ["off", "order"]) {
2328
2328
  let i = e[r];
2329
2329
  if (i === void 0) continue;
@@ -2333,7 +2333,7 @@ function hr(e) {
2333
2333
  }
2334
2334
  let o = /* @__PURE__ */ new Set();
2335
2335
  i.forEach((e) => {
2336
- typeof e != "string" || !a.has(e) ? t.push(`layers.${r} ${L(e)} is not a layer (${fr(n)}).`) : o.has(e) && t.push(`layers.${r} ${L(e)} is listed twice.`), o.add(e);
2336
+ typeof e != "string" || !a.has(e) ? t.push(`layers.${r} ${R(e)} is not a layer (${fr(n)}).`) : o.has(e) && t.push(`layers.${r} ${R(e)} is listed twice.`), o.add(e);
2337
2337
  });
2338
2338
  }
2339
2339
  return t;
@@ -2344,7 +2344,7 @@ function gr(e) {
2344
2344
  off: [],
2345
2345
  order: []
2346
2346
  };
2347
- if (!I(e) || hr(e).length) return t;
2347
+ if (!L(e) || hr(e).length) return t;
2348
2348
  let n = (e) => Array.isArray(e) ? e.slice(0, 20) : e;
2349
2349
  return {
2350
2350
  add: (e.add || []).map((e) => {
@@ -2383,7 +2383,7 @@ function vr(e) {
2383
2383
  return n;
2384
2384
  }
2385
2385
  // ../explorer/layer-model.js
2386
- var yr = (e) => (e.projectLayers || []).some((e) => e.match && e.match.parent !== void 0) ? (t) => ar(e.edges || []).get(t.id) : void 0;
2386
+ var yr = (e) => (e.projectLayers || []).some((e) => e.match && e.match.parent !== void 0) ? (t) => ir(e.edges || []).get(t.id) : void 0;
2387
2387
  function br(e, t) {
2388
2388
  let n = e.projectLayers;
2389
2389
  return !n || !n.length ? null : lr(n, t, yr(e));
@@ -2445,7 +2445,7 @@ function Mr(e) {
2445
2445
  rowOf: (t) => xr(e, t),
2446
2446
  flight: r
2447
2447
  }), o = /* @__PURE__ */ new Set([
2448
- ...Gn.map((e) => e.key),
2448
+ ...Wn.map((e) => e.key),
2449
2449
  ...(e.projectLayers || []).map((e) => e.key),
2450
2450
  ...t.map((t) => xr(e, t)).filter(Boolean)
2451
2451
  ]), s = {
@@ -2763,10 +2763,14 @@ function Yr(e, t) {
2763
2763
  2
2764
2764
  ].map((r) => Math.round(e[r] * n + t[r] * (1 - n))).concat(1);
2765
2765
  }
2766
- var Xr = (e) => {
2766
+ var Xr = ([e, t, n]) => `#${[
2767
+ e,
2768
+ t,
2769
+ n
2770
+ ].map((e) => Math.round(e).toString(16).padStart(2, "0")).join("")}`, Zr = (e) => {
2767
2771
  let t = e / 255;
2768
2772
  return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
2769
- }, V = ([e, t, n]) => .2126 * Xr(e) + .7152 * Xr(t) + .0722 * Xr(n), Zr = (e, t) => (Math.max(e, t) + .05) / (Math.min(e, t) + .05), Qr = (e, t) => Zr(V(B(e)), V(B(t))), H = Object.freeze({
2773
+ }, Qr = ([e, t, n]) => .2126 * Zr(e) + .7152 * Zr(t) + .0722 * Zr(n), $r = (e, t) => (Math.max(e, t) + .05) / (Math.min(e, t) + .05), ei = (e, t) => $r(Qr(B(e)), Qr(B(t))), V = Object.freeze({
2770
2774
  dark: Object.freeze({
2771
2775
  added: "#2dd4bf",
2772
2776
  changed: "#fbbf24",
@@ -2779,10 +2783,10 @@ var Xr = (e) => {
2779
2783
  removed: "#e20b0b",
2780
2784
  edit: "#6839f6"
2781
2785
  })
2782
- }), $r = .85, ei = .9, ti = .6, ni = .45, ri = Object.freeze({
2783
- light: ti,
2786
+ }), ti = .85, ni = .9, ri = .6, ii = .45, ai = Object.freeze({
2787
+ light: ri,
2784
2788
  dark: .5
2785
- }), ii = Object.freeze({
2789
+ }), oi = Object.freeze({
2786
2790
  added: Object.freeze({
2787
2791
  ringDash: Object.freeze([5, 4]),
2788
2792
  edgeDash: Object.freeze([7, 5]),
@@ -2803,14 +2807,14 @@ var Xr = (e) => {
2803
2807
  edgeDash: Object.freeze([12, 4]),
2804
2808
  strike: !1
2805
2809
  })
2806
- }), ai = "#f4f6fa", oi = "#090d16", si = {
2810
+ }), si = "#f4f6fa", ci = "#090d16", li = {
2807
2811
  mark: 3.2,
2808
2812
  text: 4.8
2809
- }, ci = .16, li = 1.35, ui = .11;
2810
- function di(e, t) {
2813
+ }, ui = .16, di = 1.35, fi = .11;
2814
+ function pi(e, t) {
2811
2815
  return e === "light" || e === "dark" ? e : t ? "light" : "dark";
2812
2816
  }
2813
- function fi([e, t, n]) {
2817
+ function mi([e, t, n]) {
2814
2818
  let r = e / 255, i = t / 255, a = n / 255, o = Math.max(r, i, a), s = Math.min(r, i, a), c = (o + s) / 2;
2815
2819
  if (o === s) return [
2816
2820
  0,
@@ -2824,7 +2828,7 @@ function fi([e, t, n]) {
2824
2828
  c
2825
2829
  ];
2826
2830
  }
2827
- function pi([e, t, n]) {
2831
+ function hi([e, t, n]) {
2828
2832
  let r = (t) => (t + e / 30) % 12, i = t * Math.min(n, 1 - n), a = (e) => n - i * Math.max(-1, Math.min(r(e) - 3, 9 - r(e), 1));
2829
2833
  return [
2830
2834
  a(0),
@@ -2832,122 +2836,129 @@ function pi([e, t, n]) {
2832
2836
  a(4)
2833
2837
  ].map((e) => Math.round(e * 255));
2834
2838
  }
2835
- var mi = (e) => `#${e.map((e) => e.toString(16).padStart(2, "0")).join("")}`, hi = (e, t) => t >= 1 ? mi(e) : `rgba(${e.join(", ")}, ${+t.toFixed(3)})`, gi = V(B(ai)), _i = /* @__PURE__ */ new Map();
2836
- function U(e, t = "mark") {
2837
- let n = `${t}|${e}`, r = _i.get(n);
2839
+ var gi = (e) => `#${e.map((e) => e.toString(16).padStart(2, "0")).join("")}`, _i = (e, t) => t >= 1 ? gi(e) : `rgba(${e.join(", ")}, ${+t.toFixed(3)})`, vi = Qr(B(si)), yi = /* @__PURE__ */ new Map();
2840
+ function H(e, t = "mark") {
2841
+ let n = `${t}|${e}`, r = yi.get(n);
2838
2842
  if (r !== void 0) return r;
2839
- let i = vi(e, t);
2840
- return _i.set(n, i), i;
2843
+ let i = bi(e, t);
2844
+ return yi.set(n, i), i;
2841
2845
  }
2842
- function vi(e, t) {
2846
+ function bi(e, t) {
2843
2847
  if (typeof e != "string") return e;
2844
2848
  let [n, r, i, a] = B(e);
2845
2849
  if (a === 0) return e;
2846
- let [o, s, c] = fi([
2850
+ let [o, s, c] = mi([
2847
2851
  n,
2848
2852
  r,
2849
2853
  i
2850
2854
  ]);
2851
- if ((Math.max(n, r, i) - Math.min(n, r, i)) / 255 < ci && c > .5) return hi(pi([
2855
+ if ((Math.max(n, r, i) - Math.min(n, r, i)) / 255 < ui && c > .5) return _i(hi([
2852
2856
  o,
2853
2857
  s,
2854
- Math.max(ui, 1 - c)
2858
+ Math.max(fi, 1 - c)
2855
2859
  ]), a);
2856
- let l = si[t] || si.mark;
2857
- if (Zr(V([
2860
+ let l = li[t] || li.mark;
2861
+ if ($r(Qr([
2858
2862
  n,
2859
2863
  r,
2860
2864
  i
2861
- ]), gi) >= l) return e;
2865
+ ]), vi) >= l) return e;
2862
2866
  let u = 0, d = c;
2863
2867
  for (let e = 0; e < 20; e++) {
2864
2868
  let e = (u + d) / 2;
2865
- Zr(V(pi([
2869
+ $r(Qr(hi([
2866
2870
  o,
2867
2871
  s,
2868
2872
  e
2869
- ])), gi) >= l ? u = e : d = e;
2873
+ ])), vi) >= l ? u = e : d = e;
2870
2874
  }
2871
- return hi(pi([
2875
+ return _i(hi([
2872
2876
  o,
2873
2877
  s,
2874
2878
  u
2875
2879
  ]), a);
2876
2880
  }
2877
- var yi = (e, t, n = "mark") => t === "light" ? U(e, n) : e, bi = (e) => {
2878
- e && (e.color = U(e.color, "text"));
2881
+ var xi = (e, t, n = "mark") => t === "light" ? H(e, n) : e, Si = (e) => {
2882
+ e && (e.color = H(e.color, "text"));
2879
2883
  };
2880
- function xi(e) {
2884
+ function Ci(e) {
2881
2885
  e.theme = "light";
2882
- for (let t of e.nodes) t.color = U(t.color), t.labelColor = U(t.labelColor, "text");
2886
+ for (let t of e.nodes) t.color = H(t.color), t.labelColor = H(t.labelColor, "text");
2883
2887
  for (let t of e.edges) {
2884
- if (t.mark && t.mark !== "none") t.color = H.dark[t.mark] === t.color ? H.light[t.mark] : U(t.color);
2888
+ if (t.mark && t.mark !== "none") t.color = V.dark[t.mark] === t.color ? V.light[t.mark] : H(t.color);
2885
2889
  else {
2886
- t.alpha < 1 && (t.alpha = Math.min(1, t.alpha * li)), t.color = U(t.color);
2890
+ t.alpha < 1 && (t.alpha = Math.min(1, t.alpha * di)), t.color = H(t.color);
2887
2891
  let [e, n, r, i] = B(t.color);
2888
- i > 0 && i < 1 && (t.color = hi([
2892
+ i > 0 && i < 1 && (t.color = _i([
2889
2893
  e,
2890
2894
  n,
2891
2895
  r
2892
- ], Math.min(1, i * li)));
2896
+ ], Math.min(1, i * di)));
2893
2897
  }
2894
- t.glowColor &&= U(t.glowColor), t.label &&= {
2898
+ t.glowColor &&= H(t.glowColor), t.label &&= {
2895
2899
  ...t.label,
2896
- color: U(t.label.color, "text")
2900
+ color: H(t.label.color, "text")
2897
2901
  }, t.packet &&= {
2898
2902
  ...t.packet,
2899
- color: U(t.packet.color),
2900
- glowColor: U(t.packet.glowColor)
2903
+ color: H(t.packet.color),
2904
+ glowColor: H(t.packet.glowColor)
2901
2905
  };
2902
2906
  }
2903
2907
  let { decor: t } = e;
2904
2908
  return t.grid &&= {
2905
2909
  ...t.grid,
2906
- color: U(t.grid.color)
2910
+ color: H(t.grid.color)
2907
2911
  }, t.rings = t.rings.map((e) => ({
2908
2912
  ...e,
2909
- color: U(e.color)
2913
+ color: H(e.color)
2910
2914
  })), t.lanes = t.lanes.map((e) => {
2911
2915
  let t = {
2912
2916
  ...e,
2913
- fill: U(e.fill),
2914
- stroke: U(e.stroke)
2917
+ fill: H(e.fill),
2918
+ stroke: H(e.stroke)
2915
2919
  };
2916
2920
  for (let e of [
2917
2921
  "title",
2918
2922
  "note",
2919
2923
  "arrow"
2920
- ]) t[e] && (t[e] = { ...t[e] }, bi(t[e]));
2924
+ ]) t[e] && (t[e] = { ...t[e] }, Si(t[e]));
2921
2925
  return t;
2922
2926
  }), e;
2923
2927
  }
2924
- var Si = 1.2, Ci = 96, wi = 24, Ti = "glyph:", Ei = "#ffffff", Di = "#0b1220";
2928
+ var wi = 1.2, U = 96, Ti = 24, Ei = "glyph:", Di = "#ffffff", Oi = "#0b1220";
2925
2929
  Object.freeze(Object.keys(P));
2926
- var Oi = (e) => typeof e == "string" && Object.hasOwn(P, e), ki = (e, t) => `${Ti}${e}|${t}`, Ai = (e) => typeof e == "string" && e.startsWith(Ti);
2927
- function ji(e) {
2930
+ var ki = (e) => typeof e == "string" && Object.hasOwn(P, e), Ai = (e, t) => `${Ei}${e}|${t}`, ji = (e) => typeof e == "string" && e.startsWith(Ei);
2931
+ function Mi(e) {
2928
2932
  let t = e.slice(6), n = t.indexOf("|");
2929
2933
  return {
2930
2934
  type: t.slice(0, n),
2931
2935
  ink: t.slice(n + 1)
2932
2936
  };
2933
2937
  }
2934
- var Mi = ([e, t, n]) => {
2938
+ var Ni = ([e, t, n]) => {
2935
2939
  let r = (e) => {
2936
2940
  let t = e / 255;
2937
2941
  return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
2938
2942
  };
2939
2943
  return .2126 * r(e) + .7152 * r(t) + .0722 * r(n);
2940
- }, Ni = (e, t) => {
2944
+ }, Pi = (e, t) => {
2941
2945
  let [n, r] = e > t ? [e, t] : [t, e];
2942
2946
  return (n + .05) / (r + .05);
2943
2947
  };
2944
- function Pi(e) {
2945
- let t = Mi(B(e));
2946
- return Ni(1, t) >= Ni(Mi(B("#0b1220")), t) ? Ei : Di;
2948
+ function Fi(e, t = ci) {
2949
+ let n = B(e);
2950
+ n[3] < 1 && (n = Yr(n, Yr(B(t), [
2951
+ 0,
2952
+ 0,
2953
+ 0,
2954
+ 1
2955
+ ])));
2956
+ let r = Ni(n);
2957
+ return Pi(1, r) >= Pi(Ni(B("#0b1220")), r) ? Di : Oi;
2947
2958
  }
2948
- var Fi = (e, t) => t && t.values && t.values["--corn-map-glyph"] || Pi(e.color), Ii = (e, t) => !!e.glyph && !e.icon && !e.letters && e.r * 2 * t >= 14, Li = {
2959
+ var Ii = (e, t) => e && e.ground || (t === "light" ? "#f4f6fa" : "#090d16"), Li = (e, t, n = "dark") => t && t.values && t.values["--corn-map-glyph"] || Fi(e.color, Ii(t, n)), Ri = (e, t) => !!e.glyph && !e.icon && !e.letters && e.r * 2 * t >= 14, zi = {
2949
2960
  root: (e) => {
2950
- Ri(e, 12, 12, 8), G(e, 12, 12, 3.2);
2961
+ Bi(e, 12, 12, 8), G(e, 12, 12, 3.2);
2951
2962
  },
2952
2963
  app: (e) => {
2953
2964
  e.beginPath(), e.rect(3.5, 5, 17, 14), e.stroke(), W(e, 3.5, 9.5, 20.5, 9.5);
@@ -2959,7 +2970,7 @@ var Fi = (e, t) => t && t.values && t.values["--corn-map-glyph"] || Pi(e.color),
2959
2970
  e.beginPath(), e.rect(4, 7, 16, 13), e.stroke(), W(e, 4, 12, 20, 12), W(e, 12, 7, 12, 12);
2960
2971
  },
2961
2972
  core: (e) => {
2962
- Ri(e, 12, 12, 8.2), G(e, 12, 12, 4);
2973
+ Bi(e, 12, 12, 8.2), G(e, 12, 12, 4);
2963
2974
  },
2964
2975
  token: (e) => {
2965
2976
  for (let [t, n] of [
@@ -3022,75 +3033,75 @@ var Fi = (e, t) => t && t.values && t.values["--corn-map-glyph"] || Pi(e.color),
3022
3033
  function W(e, t, n, r, i) {
3023
3034
  e.beginPath(), e.moveTo(t, n), e.lineTo(r, i), e.stroke();
3024
3035
  }
3025
- function Ri(e, t, n, r) {
3036
+ function Bi(e, t, n, r) {
3026
3037
  e.beginPath(), e.arc(t, n, r, 0, Math.PI * 2), e.stroke();
3027
3038
  }
3028
3039
  function G(e, t, n, r) {
3029
3040
  e.beginPath(), e.arc(t, n, r, 0, Math.PI * 2), e.fill();
3030
3041
  }
3031
- function zi(e, t, n, r) {
3032
- let i = Li[t];
3042
+ function Vi(e, t, n, r) {
3043
+ let i = zi[t];
3033
3044
  if (!i) return;
3034
- let a = n / wi;
3045
+ let a = n / Ti;
3035
3046
  e.save(), e.scale(a, a), e.lineWidth = 2.4, e.lineCap = "round", e.lineJoin = "round", e.strokeStyle = r, e.fillStyle = r, i(e), e.restore();
3036
3047
  }
3037
- var Bi = /* @__PURE__ */ new Map();
3038
- function Vi(e, t) {
3039
- if (!Oi(e) || typeof t != "string") return null;
3040
- let n = ki(e, t);
3041
- if (Bi.has(n)) return Bi.get(n);
3042
- if (Bi.size >= 64) return null;
3048
+ var Hi = /* @__PURE__ */ new Map();
3049
+ function Ui(e, t) {
3050
+ if (!ki(e) || typeof t != "string") return null;
3051
+ let n = Ai(e, t);
3052
+ if (Hi.has(n)) return Hi.get(n);
3053
+ if (Hi.size >= 64) return null;
3043
3054
  let r = null;
3044
3055
  try {
3045
- let n = typeof OffscreenCanvas < "u" ? new OffscreenCanvas(Ci, Ci) : typeof document < "u" ? Object.assign(document.createElement("canvas"), {
3046
- width: Ci,
3047
- height: Ci
3056
+ let n = typeof OffscreenCanvas < "u" ? new OffscreenCanvas(U, U) : typeof document < "u" ? Object.assign(document.createElement("canvas"), {
3057
+ width: U,
3058
+ height: U
3048
3059
  }) : null, i = n && n.getContext && n.getContext("2d");
3049
- i && i.stroke && (zi(i, e, Ci, t), r = n);
3060
+ i && i.stroke && (Vi(i, e, U, t), r = n);
3050
3061
  } catch {
3051
3062
  r = null;
3052
3063
  }
3053
- return Bi.set(n, r), r;
3064
+ return Hi.set(n, r), r;
3054
3065
  }
3055
3066
  // ../explorer/review-model.js
3056
- var Hi = 6e4, Ui = 60 * Hi, Wi = 24 * Ui, Gi = (e, t) => `${e} ${t}${e === 1 ? "" : "s"}`;
3057
- function Ki(e, t) {
3067
+ var Wi = 6e4, Gi = 60 * Wi, Ki = 24 * Gi, qi = (e, t) => `${e} ${t}${e === 1 ? "" : "s"}`;
3068
+ function Ji(e, t) {
3058
3069
  let n = typeof e == "string" ? Date.parse(e) : NaN;
3059
3070
  if (!Number.isFinite(n) || !Number.isFinite(t)) return "";
3060
3071
  let r = t - n;
3061
- return r < Hi ? "just now" : r < Ui ? `${Gi(Math.floor(r / Hi), "minute")} ago` : r < Wi ? `${Gi(Math.floor(r / Ui), "hour")} ago` : `${Gi(Math.floor(r / Wi), "day")} ago`;
3072
+ return r < Wi ? "just now" : r < Gi ? `${qi(Math.floor(r / Wi), "minute")} ago` : r < Ki ? `${qi(Math.floor(r / Gi), "hour")} ago` : `${qi(Math.floor(r / Ki), "day")} ago`;
3062
3073
  }
3063
- var qi = {
3074
+ var Yi = {
3064
3075
  approved: "Approved",
3065
3076
  notes: "Sent back"
3066
3077
  };
3067
- function Ji(e, t) {
3068
- let { verdict: n, when: r } = Yi(e, t);
3078
+ function Xi(e, t) {
3079
+ let { verdict: n, when: r } = Zi(e, t);
3069
3080
  return r ? `${n} ${r}` : n;
3070
3081
  }
3071
- function Yi(e, t) {
3072
- return !e || !qi[e.verdict] ? {
3082
+ function Zi(e, t) {
3083
+ return !e || !Yi[e.verdict] ? {
3073
3084
  verdict: "",
3074
3085
  when: ""
3075
3086
  } : {
3076
- verdict: qi[e.verdict],
3077
- when: Ki(e.at, t) || ""
3087
+ verdict: Yi[e.verdict],
3088
+ when: Ji(e.at, t) || ""
3078
3089
  };
3079
3090
  }
3080
- function Xi(e) {
3091
+ function Qi(e) {
3081
3092
  return typeof e == "string" && e.trim() ? null : "Say what should change before you send it back.";
3082
3093
  }
3083
- function Zi(e, t, n) {
3094
+ function $i(e, t, n) {
3084
3095
  return {
3085
3096
  verdict: e,
3086
3097
  note: typeof t == "string" ? t.trim() : "",
3087
3098
  edits: structuredClone(Array.isArray(n) ? n : [])
3088
3099
  };
3089
3100
  }
3090
- var Qi = (e) => typeof e == "string" && /^pull\/[1-9]\d{0,8}$/.test(e);
3091
- function $i(e, t) {
3101
+ var ea = (e) => typeof e == "string" && /^pull\/[1-9]\d{0,8}$/.test(e);
3102
+ function ta(e, t) {
3092
3103
  if (!t) return "";
3093
- let n = Gi(t, "edit");
3104
+ let n = qi(t, "edit");
3094
3105
  return e === "approved" ? `Your ${n} ${t === 1 ? "is" : "are"} in the review comment on the PR. The drafting agent will fold ${t === 1 ? "it" : "them"} into the proposal.` : `Sent with your ${n}. The drafting agent will fold ${t === 1 ? "it" : "them"} into the next draft.`;
3095
3106
  }
3096
3107
  Object.freeze([
@@ -3124,21 +3135,21 @@ Object.freeze([
3124
3135
  ["other", "Cancelled or skipped"]
3125
3136
  ]
3126
3137
  });
3127
- var ea = .2, ta = "#f87171";
3128
- function na(e, t) {
3138
+ var na = .2, ra = "#f87171";
3139
+ function ia(e, t) {
3129
3140
  if (!t || !t.changed.size && !t.failing.size) return;
3130
3141
  let n = (e) => t.changed.has(e) || t.failing.has(e);
3131
- for (let r of e.nodes) n(r.id) ? (r.alpha = 1, r.labelAlpha = 1, r.glow = Math.max(r.glow, 14), r.labelKeep = !0, r.halo !== "selected" && (r.halo = "match"), t.failing.has(r.id) && (r.color = ta)) : (r.alpha = Math.min(r.alpha, ea), r.labelAlpha = r.alpha, r.glow = 0);
3132
- for (let t of e.edges) !n(t.from) && !n(t.to) && (t.alpha = Math.min(t.alpha, ea / 2));
3142
+ for (let r of e.nodes) n(r.id) ? (r.alpha = 1, r.labelAlpha = 1, r.glow = Math.max(r.glow, 14), r.labelKeep = !0, r.halo !== "selected" && (r.halo = "match"), t.failing.has(r.id) && (r.color = ra)) : (r.alpha = Math.min(r.alpha, na), r.labelAlpha = r.alpha, r.glow = 0);
3143
+ for (let t of e.edges) !n(t.from) && !n(t.to) && (t.alpha = Math.min(t.alpha, na / 2));
3133
3144
  }
3134
3145
  // ../explorer/search-match.js
3135
- var ra = Object.freeze({
3146
+ var aa = Object.freeze({
3136
3147
  labelStart: 0,
3137
3148
  wordStart: 1,
3138
3149
  label: 2,
3139
3150
  idOrFile: 3,
3140
3151
  typeOrKind: 4
3141
- }), ia = Object.freeze({
3152
+ }), oa = Object.freeze({
3142
3153
  root: "Root",
3143
3154
  app: "Apps",
3144
3155
  pkg: "Packages",
@@ -3160,22 +3171,22 @@ var ra = Object.freeze({
3160
3171
  floor: "House",
3161
3172
  room: "House",
3162
3173
  persona: "People"
3163
- }), aa = (e) => e && e.charAt(0).toUpperCase() + e.slice(1), oa = (e) => ia[e.type] || aa(String(e.type || "")), K = (e) => typeof e == "string" ? e.toLowerCase() : "", sa = /[^\p{L}\p{N}]+/u;
3164
- function ca(e, t) {
3174
+ }), sa = (e) => e && e.charAt(0).toUpperCase() + e.slice(1), ca = (e) => oa[e.type] || sa(String(e.type || "")), K = (e) => typeof e == "string" ? e.toLowerCase() : "", la = /[^\p{L}\p{N}]+/u;
3175
+ function ua(e, t) {
3165
3176
  let n = String(t || "").toLowerCase();
3166
3177
  if (!n) return -1;
3167
3178
  let r = K(e.label);
3168
- return r.startsWith(n) ? ra.labelStart : r.split(sa).some((e) => e && e.startsWith(n)) ? ra.wordStart : r.includes(n) ? ra.label : K(e.id).includes(n) || K(e.file).includes(n) ? ra.idOrFile : K(e.type).includes(n) || K(oa(e)).includes(n) || K(e.kind).includes(n) ? ra.typeOrKind : -1;
3179
+ return r.startsWith(n) ? aa.labelStart : r.split(la).some((e) => e && e.startsWith(n)) ? aa.wordStart : r.includes(n) ? aa.label : K(e.id).includes(n) || K(e.file).includes(n) ? aa.idOrFile : K(e.type).includes(n) || K(ca(e)).includes(n) || K(e.kind).includes(n) ? aa.typeOrKind : -1;
3169
3180
  }
3170
- function la(e, t) {
3181
+ function da(e, t) {
3171
3182
  let n = String(t || "").trim().toLowerCase(), r = /* @__PURE__ */ new Set();
3172
3183
  if (!n) return r;
3173
- for (let t of e) ca(t, n) >= 0 && r.add(t.id);
3184
+ for (let t of e) ua(t, n) >= 0 && r.add(t.id);
3174
3185
  return r;
3175
3186
  }
3176
3187
  // ../explorer/css-color.js
3177
- var q, ua = /* @__PURE__ */ new Map();
3178
- function da() {
3188
+ var q, fa = /* @__PURE__ */ new Map();
3189
+ function pa() {
3179
3190
  if (q !== void 0) return q;
3180
3191
  q = null;
3181
3192
  try {
@@ -3185,30 +3196,30 @@ function da() {
3185
3196
  }
3186
3197
  return q;
3187
3198
  }
3188
- function fa(e) {
3199
+ function ma(e) {
3189
3200
  let t = typeof e == "string" ? e.trim() : "";
3190
3201
  if (!t || t.toLowerCase() === "auto") return null;
3191
- if (ma(t)) return t;
3202
+ if (ga(t)) return t;
3192
3203
  if (/^transparent$/i.test(t)) return "rgba(0, 0, 0, 0)";
3193
- if (ua.has(t)) return ua.get(t);
3194
- let n = null, r = pa(t) && !/currentcolor/i.test(t) ? da() : null;
3204
+ if (fa.has(t)) return fa.get(t);
3205
+ let n = null, r = ha(t) && !/currentcolor/i.test(t) ? pa() : null;
3195
3206
  if (r) try {
3196
3207
  let e = (e) => (r.fillStyle = e, r.fillStyle = t, String(r.fillStyle)), i = e("#010203"), a = i === "#010203" && e("#040506") === "#040506" ? null : i;
3197
- n = a === null ? null : ga(a) ? a : _a(r, t);
3208
+ n = a === null ? null : va(a) ? a : ya(r, t);
3198
3209
  } catch {
3199
3210
  n = null;
3200
3211
  }
3201
- return ua.set(t, n), n;
3212
+ return fa.set(t, n), n;
3202
3213
  }
3203
- function pa(e) {
3214
+ function ha(e) {
3204
3215
  try {
3205
3216
  return typeof CSS > "u" || typeof CSS.supports != "function" || CSS.supports("color", e);
3206
3217
  } catch {
3207
3218
  return !1;
3208
3219
  }
3209
3220
  }
3210
- function ma(e) {
3211
- if (!ga(e)) return !1;
3221
+ function ga(e) {
3222
+ if (!va(e)) return !1;
3212
3223
  let t = /^rgba?\(/i.test(e.trim()) ? e.slice(e.indexOf("(") + 1, e.lastIndexOf(")")).split(",").map(Number) : null;
3213
3224
  if (t && (t.slice(0, 3).some((e) => !(e >= 0 && e <= 255)) || t.length > 3 && !(t[3] > 0 && t[3] <= 1))) return !1;
3214
3225
  let [n, r, i, a] = B(e);
@@ -3218,21 +3229,21 @@ function ma(e) {
3218
3229
  i
3219
3230
  ].every((e) => Number.isFinite(e) && e >= 0 && e <= 255) && Number.isFinite(a) && a > 0 && a <= 1;
3220
3231
  }
3221
- var ha = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$|^rgba?\(\s*[\d.]+\s*,\s*[\d.]+\s*,\s*[\d.]+\s*(?:,\s*[\d.]+\s*)?\)$/i, ga = (e) => ha.test(e.trim());
3222
- function _a(e, t) {
3232
+ var _a = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$|^rgba?\(\s*[\d.]+\s*,\s*[\d.]+\s*,\s*[\d.]+\s*(?:,\s*[\d.]+\s*)?\)$/i, va = (e) => _a.test(e.trim());
3233
+ function ya(e, t) {
3223
3234
  if (!e.getImageData || !e.fillRect) return null;
3224
3235
  e.clearRect(0, 0, 1, 1), e.fillStyle = t, e.fillRect(0, 0, 1, 1);
3225
3236
  let [n, r, i, a] = e.getImageData(0, 0, 1, 1).data;
3226
- return va(n, r, i, a / 255);
3237
+ return ba(n, r, i, a / 255);
3227
3238
  }
3228
- var va = (e, t, n, r) => `rgba(${e}, ${t}, ${n}, ${+r.toFixed(3)})`;
3229
- function ya(e) {
3239
+ var ba = (e, t, n, r) => `rgba(${e}, ${t}, ${n}, ${+r.toFixed(3)})`;
3240
+ function xa(e) {
3230
3241
  if (typeof e != "string" || e.length > 200) return null;
3231
3242
  let t = e.trim();
3232
- return !t || /^(?:auto|currentcolor)$/i.test(t) ? null : fa(t) || (da() === null && qr(t) ? t : null);
3243
+ return !t || /^(?:auto|currentcolor)$/i.test(t) ? null : ma(t) || (pa() === null && qr(t) ? t : null);
3233
3244
  }
3234
3245
  // ../explorer/scene.js
3235
- var ba = [
3246
+ var Sa = [
3236
3247
  "root",
3237
3248
  "app",
3238
3249
  "pkg",
@@ -3240,7 +3251,7 @@ var ba = [
3240
3251
  "store",
3241
3252
  "rom",
3242
3253
  "floor"
3243
- ], xa = "\"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, sans-serif", Sa = "\"Segoe UI\", -apple-system, sans-serif", Ca = .32, wa = "#ffffff", Ta = .07, Ea = {
3254
+ ], Ca = "\"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, sans-serif", wa = "\"Segoe UI\", -apple-system, sans-serif", Ta = .32, Ea = "#ffffff", Da = .07, Oa = {
3244
3255
  node: {
3245
3256
  color: "rgba(9, 13, 22, 0.85)",
3246
3257
  width: 3.5
@@ -3249,10 +3260,10 @@ var ba = [
3249
3260
  color: "rgba(9, 13, 22, 0.9)",
3250
3261
  width: 3
3251
3262
  }
3252
- }, Da = {
3263
+ }, ka = {
3253
3264
  length: 9,
3254
3265
  spread: .45
3255
- }, Oa = Object.freeze({
3266
+ }, Aa = Object.freeze({
3256
3267
  flow: "chevron",
3257
3268
  reads: "chevron",
3258
3269
  writes: "chevron",
@@ -3262,7 +3273,7 @@ var ba = [
3262
3273
  "runs-on": "bar",
3263
3274
  uses: "diamond",
3264
3275
  extends: "diamond"
3265
- }), ka = Object.freeze({
3276
+ }), ja = Object.freeze({
3266
3277
  strokeWidth: 1.8,
3267
3278
  barHalf: 5,
3268
3279
  diamondHalf: 6,
@@ -3277,13 +3288,13 @@ var ba = [
3277
3288
  squareHalf: .86,
3278
3289
  squareCorner: .12,
3279
3290
  diamondHalf: 1.15
3280
- }), Aa = Object.freeze({
3291
+ }), Ma = Object.freeze({
3281
3292
  circle: 1,
3282
3293
  "rounded-square": (J.roundedHalf - J.roundedCorner) * Math.SQRT2 + J.roundedCorner,
3283
3294
  hexagon: J.hexInradius / Math.cos(Math.PI / 6),
3284
3295
  square: (J.squareHalf - J.squareCorner) * Math.SQRT2 + J.squareCorner,
3285
3296
  diamond: J.diamondHalf
3286
- }), ja = Object.freeze([7, 5]), Ma = Object.freeze([1.5, 4]), Na = {
3297
+ }), Na = Object.freeze([7, 5]), Pa = Object.freeze([1.5, 4]), Fa = {
3287
3298
  selected: {
3288
3299
  fill: "rgba(99, 102, 241, 0.55)",
3289
3300
  fillR: 8,
@@ -3305,71 +3316,71 @@ var ba = [
3305
3316
  ringR: 5,
3306
3317
  ringWidth: 1.2
3307
3318
  }
3308
- }, Pa = {
3319
+ }, Ia = {
3309
3320
  halfLength: 7,
3310
3321
  width: 2
3311
- }, Fa = {
3322
+ }, La = {
3312
3323
  color: "#ffffff",
3313
3324
  radius: 3.5,
3314
3325
  glow: 10,
3315
3326
  cycleMs: 2600
3316
3327
  }, Y = {
3317
3328
  added: {
3318
- ...ii.added,
3319
- color: H.dark.added,
3329
+ ...oi.added,
3330
+ color: V.dark.added,
3320
3331
  ringR: 9,
3321
3332
  ringWidth: 2,
3322
3333
  edgeWidth: 2.2,
3323
3334
  alpha: 1
3324
3335
  },
3325
3336
  changed: {
3326
- ...ii.changed,
3327
- color: H.dark.changed,
3337
+ ...oi.changed,
3338
+ color: V.dark.changed,
3328
3339
  ringR: 9,
3329
3340
  ringWidth: 2.5,
3330
3341
  edgeWidth: 2.4,
3331
3342
  alpha: 1
3332
3343
  },
3333
3344
  removed: {
3334
- ...ii.removed,
3335
- color: H.dark.removed,
3345
+ ...oi.removed,
3346
+ color: V.dark.removed,
3336
3347
  ringR: 9,
3337
3348
  ringWidth: 2,
3338
3349
  edgeWidth: 2,
3339
- alpha: $r
3350
+ alpha: ti
3340
3351
  },
3341
3352
  edit: {
3342
- ...ii.edit,
3343
- color: H.dark.edit,
3353
+ ...oi.edit,
3354
+ color: V.dark.edit,
3344
3355
  ringR: 9,
3345
3356
  ringWidth: 3,
3346
3357
  edgeWidth: 2.4,
3347
3358
  alpha: 1
3348
3359
  }
3349
3360
  };
3350
- function Ia(e) {
3351
- return e === "light" ? za : Ra;
3361
+ function Ra(e) {
3362
+ return e === "light" ? Va : Ba;
3352
3363
  }
3353
- var La = (e) => {
3364
+ var za = (e) => {
3354
3365
  let t = { ...e };
3355
3366
  for (let e of [
3356
3367
  "fill",
3357
3368
  "ring",
3358
3369
  "color"
3359
- ]) typeof t[e] == "string" && (t[e] = U(t[e]));
3370
+ ]) typeof t[e] == "string" && (t[e] = H(t[e]));
3360
3371
  return t;
3361
- }, Ra = Object.freeze({
3362
- halo: Na,
3372
+ }, Ba = Object.freeze({
3373
+ halo: Fa,
3363
3374
  mark: Y,
3364
- core: wa,
3365
- labelOutline: Ea
3366
- }), za = Object.freeze({
3367
- halo: Object.fromEntries(Object.entries(Na).map(([e, t]) => [e, La(t)])),
3375
+ core: Ea,
3376
+ labelOutline: Oa
3377
+ }), Va = Object.freeze({
3378
+ halo: Object.fromEntries(Object.entries(Fa).map(([e, t]) => [e, za(t)])),
3368
3379
  mark: Object.fromEntries(Object.entries(Y).map(([e, t]) => [e, {
3369
3380
  ...t,
3370
- color: H.light[e]
3381
+ color: V.light[e]
3371
3382
  }])),
3372
- core: wa,
3383
+ core: Ea,
3373
3384
  labelOutline: {
3374
3385
  node: {
3375
3386
  color: "rgba(244, 246, 250, 0.9)",
@@ -3380,28 +3391,28 @@ var La = (e) => {
3380
3391
  width: 3
3381
3392
  }
3382
3393
  }
3383
- }), Ba = {
3394
+ }), Ha = {
3384
3395
  ring: 1.8,
3385
3396
  edge: 1.6,
3386
3397
  gap: 4
3387
- }, Va = .28;
3398
+ }, Ua = .28;
3388
3399
  function X(e, t, { viewer: n = !1 } = {}) {
3389
- return e.proposal && !It(e.proposalView || "diff", t) ? !1 : e.view === "dataflow" ? !!e.flow && e.flow.ids.has(t.id) : e.view === "house" ? Cn(e, t) : t.type === "root" || Ha(e, t, n ? e.activeLayers : z(e)) || wr(e, t);
3400
+ return e.proposal && !It(e.proposalView || "diff", t) ? !1 : e.view === "dataflow" ? !!e.flow && e.flow.ids.has(t.id) : e.view === "house" ? Sn(e, t) : t.type === "root" || Wa(e, t, n ? e.activeLayers : z(e)) || wr(e, t);
3390
3401
  }
3391
- function Ha(e, t, n = z(e)) {
3402
+ function Wa(e, t, n = z(e)) {
3392
3403
  let r = br(e, t);
3393
3404
  return r ? n[r] !== !1 : t.type === "core" ? (n.pkg || n.atom) && n.core !== !1 : t.type === "store" ? n.flow !== !1 && n.store !== !1 : t.type === "rom" ? n.rom !== !1 && n.flow !== !1 : t.type === "floor" || t.type === "room" ? n.house !== !1 : t.type === "external" ? n[Mt(t)] !== !1 : n[t.type] !== !1;
3394
3405
  }
3395
- var Ua = (e) => e.view === "dataflow" && e.flow ? e.flow.edges : e.view === "house" ? Tn(e) : e.edges;
3396
- function Wa(e, t, n) {
3406
+ var Ga = (e) => e.view === "dataflow" && e.flow ? e.flow.edges : e.view === "house" ? wn(e) : e.edges;
3407
+ function Ka(e, t, n) {
3397
3408
  return Ae(e, t, n);
3398
3409
  }
3399
- function Ga(e) {
3410
+ function qa(e) {
3400
3411
  let t = e.scenario, n = new Set(t.visited.nodes), r = new Set(t.visited.edgeList.map(Z));
3401
3412
  t.linkNodes && e.edges.forEach((e) => {
3402
3413
  n.has(e.from) && n.has(e.to) && r.add(Z(e));
3403
3414
  });
3404
- let i = bn(t, e.nodes, e.edges);
3415
+ let i = yn(t, e.nodes, e.edges);
3405
3416
  i && (i.down.forEach((e) => n.add(e)), i.hits.forEach((e, t) => n.add(t)), i.edges.forEach((e, t) => r.add(t)));
3406
3417
  let { node: a, edge: o } = t.current, s = a === void 0 ? o ? o.kind === "writes" ? o.from : o.to : void 0 : a;
3407
3418
  return {
@@ -3411,7 +3422,7 @@ function Ga(e) {
3411
3422
  selectedId: s
3412
3423
  };
3413
3424
  }
3414
- function Ka(e, t, n) {
3425
+ function Ja(e, t, n) {
3415
3426
  let r = n.x - t.x, i = n.y - t.y, a = Math.hypot(r, i) || 1, o = e.bend === void 0 ? .18 : e.bend, s = {
3416
3427
  x: (t.x + n.x) / 2 + -i / a * a * o,
3417
3428
  y: (t.y + n.y) / 2 + r / a * a * o
@@ -3428,14 +3439,14 @@ function Ka(e, t, n) {
3428
3439
  c: s
3429
3440
  };
3430
3441
  }
3431
- function qa(e, t, n, r) {
3442
+ function Ya(e, t, n, r) {
3432
3443
  let i = 1 - r;
3433
3444
  return {
3434
3445
  x: i * i * e.x + 2 * i * r * t.x + r * r * n.x,
3435
3446
  y: i * i * e.y + 2 * i * r * t.y + r * r * n.y
3436
3447
  };
3437
3448
  }
3438
- function Ja(e, t) {
3449
+ function Xa(e, t) {
3439
3450
  let n = {
3440
3451
  x: e.x1,
3441
3452
  y: e.y1
@@ -3443,7 +3454,7 @@ function Ja(e, t) {
3443
3454
  x: e.x2,
3444
3455
  y: e.y2
3445
3456
  };
3446
- return qa(n, e.curve ? {
3457
+ return Ya(n, e.curve ? {
3447
3458
  x: e.curve.cx,
3448
3459
  y: e.curve.cy
3449
3460
  } : {
@@ -3451,14 +3462,14 @@ function Ja(e, t) {
3451
3462
  y: (n.y + r.y) / 2
3452
3463
  }, r, t);
3453
3464
  }
3454
- function Ya(e, t) {
3455
- return Ja(e, (t / 1e3 * e.packet.speed + e.packet.phase) % 1);
3465
+ function Za(e, t) {
3466
+ return Xa(e, (t / 1e3 * e.packet.speed + e.packet.phase) % 1);
3456
3467
  }
3457
- var Xa = (e) => e.kind || (e.dashed ? "usage" : "ownership"), Za = (e) => `${e.from}->${e.to}${e.kind ? `|${e.kind}` : e.dashed ? "|dashed" : ""}${e.kind === "flow" && e.flow ? `|${e.flow}` : ""}`, Z = (e) => `${e.from}->${e.to}`;
3458
- function Qa(e, t, n, r, i, a) {
3459
- let o = e.kind === "reads" || e.kind === "writes", s = Pt(e), c = !r || r.connectedEdgeKeys.has(Z(e)), l = e.status !== "live", { a: u, b: d, c: f } = Ka(e, t, n), p = !!r && c, m = Xa(e), h = null;
3468
+ var Qa = (e) => e.kind || (e.dashed ? "usage" : "ownership"), $a = (e) => `${e.from}->${e.to}${e.kind ? `|${e.kind}` : e.dashed ? "|dashed" : ""}${e.kind === "flow" && e.flow ? `|${e.flow}` : ""}`, Z = (e) => `${e.from}->${e.to}`;
3469
+ function eo(e, t, n, r, i, a) {
3470
+ let o = e.kind === "reads" || e.kind === "writes", s = Pt(e), c = !r || r.connectedEdgeKeys.has(Z(e)), l = e.status !== "live", { a: u, b: d, c: f } = Ja(e, t, n), p = !!r && c, m = Qa(e), h = null;
3460
3471
  if (r && c) {
3461
- let t = qa(u, f, d, .5);
3472
+ let t = Ya(u, f, d, .5);
3462
3473
  h = {
3463
3474
  text: e.count !== void 0 && e.label ? e.label : ke(m),
3464
3475
  x: t.x,
@@ -3471,19 +3482,19 @@ function Qa(e, t, n, r, i, a) {
3471
3482
  if ((r ? c : i) && !a) {
3472
3483
  let t = e.phase === void 0 ? (e.from.length * 7 + e.to.length * 13) % 10 / 10 : e.phase;
3473
3484
  g = {
3474
- color: Fa.color,
3485
+ color: La.color,
3475
3486
  glowColor: s.color,
3476
- radius: Fa.radius,
3477
- glow: Fa.glow,
3478
- speed: 1e3 / Fa.cycleMs,
3487
+ radius: La.radius,
3488
+ glow: La.glow,
3489
+ speed: 1e3 / La.cycleMs,
3479
3490
  phase: t
3480
3491
  };
3481
3492
  }
3482
3493
  return {
3483
- key: Za(e),
3494
+ key: $a(e),
3484
3495
  from: e.from,
3485
3496
  to: e.to,
3486
- kind: Xa(e),
3497
+ kind: Qa(e),
3487
3498
  x1: u.x,
3488
3499
  y1: u.y,
3489
3500
  x2: d.x,
@@ -3493,14 +3504,14 @@ function Qa(e, t, n, r, i, a) {
3493
3504
  color: s.color,
3494
3505
  width: p ? 2.4 : i && !o ? 2 : 1.6,
3495
3506
  alpha: r ? c ? 1 : .04 : i ? o ? .2 : .65 : o ? .12 : .45,
3496
- dash: l ? ja : null,
3507
+ dash: l ? Na : null,
3497
3508
  ticks: jt(e),
3498
3509
  curve: {
3499
3510
  cx: f.x,
3500
3511
  cy: f.y
3501
3512
  },
3502
3513
  arrow: !0,
3503
- end: Object.hasOwn(Oa, m) ? Oa[m] : "triangle",
3514
+ end: Object.hasOwn(Aa, m) ? Aa[m] : "triangle",
3504
3515
  glow: p ? 8 : 0,
3505
3516
  glowColor: p ? s.color : null,
3506
3517
  label: h,
@@ -3509,13 +3520,13 @@ function Qa(e, t, n, r, i, a) {
3509
3520
  live: !!e.live
3510
3521
  };
3511
3522
  }
3512
- function $a(e, t, n, r) {
3523
+ function to(e, t, n, r) {
3513
3524
  let i = !r || r.connectedEdgeKeys.has(Z(e)), a, o, s = null, c = 0, l = null;
3514
- return r ? i ? e.dashed ? (a = "#818cf8", o = 2, c = 8, l = "rgba(129, 140, 248, 0.7)", s = Ma) : (a = "#ffffff", o = 2.4, c = 10, l = "rgba(255, 255, 255, 0.8)") : (a = "rgba(255, 255, 255, 0.02)", o = .8, s = e.dashed ? Ma : null) : e.dashed ? (a = "rgba(129, 140, 248, 0.35)", o = 1.2, s = Ma) : (a = "rgba(255, 255, 255, 0.16)", o = 1.4), {
3515
- key: Za(e),
3525
+ return r ? i ? e.dashed ? (a = "#818cf8", o = 2, c = 8, l = "rgba(129, 140, 248, 0.7)", s = Pa) : (a = "#ffffff", o = 2.4, c = 10, l = "rgba(255, 255, 255, 0.8)") : (a = "rgba(255, 255, 255, 0.02)", o = .8, s = e.dashed ? Pa : null) : e.dashed ? (a = "rgba(129, 140, 248, 0.35)", o = 1.2, s = Pa) : (a = "rgba(255, 255, 255, 0.16)", o = 1.4), {
3526
+ key: $a(e),
3516
3527
  from: e.from,
3517
3528
  to: e.to,
3518
- kind: Xa(e),
3529
+ kind: Qa(e),
3519
3530
  x1: t.x,
3520
3531
  y1: t.y,
3521
3532
  x2: n.x,
@@ -3538,7 +3549,7 @@ function $a(e, t, n, r) {
3538
3549
  live: !!e.live
3539
3550
  };
3540
3551
  }
3541
- var eo = [
3552
+ var no = [
3542
3553
  "flow",
3543
3554
  "reads",
3544
3555
  "writes",
@@ -3548,62 +3559,62 @@ var eo = [
3548
3559
  "delivers",
3549
3560
  "uses",
3550
3561
  "extends"
3551
- ], to = (e) => e.proposal ? e.proposalView || "diff" : null;
3552
- function no(e, t, n, r = !1, i = !1) {
3562
+ ], ro = (e) => e.proposal ? e.proposalView || "diff" : null;
3563
+ function io(e, t, n, r = !1, i = !1) {
3553
3564
  if (e.mark = t, t === "none") {
3554
- (n === "diff" || i) && (e.alpha *= Va, e.glow = 0, e.packet = null), i && (e.greyed = !0);
3565
+ (n === "diff" || i) && (e.alpha *= Ua, e.glow = 0, e.packet = null), i && (e.greyed = !0);
3555
3566
  return;
3556
3567
  }
3557
3568
  let a = Y[t];
3558
- e.color = a.color, e.dash = r ? Y.removed.edgeDash : a.edgeDash, e.width = Math.max(e.width, a.edgeWidth), e.alpha >= .1 && (e.alpha = Math.max(e.alpha, ei) * (r ? Y.removed.alpha : a.alpha)), e.glow && (e.glowColor = a.color);
3569
+ e.color = a.color, e.dash = r ? Y.removed.edgeDash : a.edgeDash, e.width = Math.max(e.width, a.edgeWidth), e.alpha >= .1 && (e.alpha = Math.max(e.alpha, ni) * (r ? Y.removed.alpha : a.alpha)), e.glow && (e.glowColor = a.color);
3559
3570
  }
3560
- function ro(e, t, n) {
3561
- let { nodes: r } = e, i = z(e), a = Ir(e), o = new Map(r.map((e) => [e.id, e])), s = e.view === "dataflow", c = [], l = (e) => !!t && t.connectedEdgeKeys.has(Z(e)), u = (e, r, i) => c.push(Qa(e, r, i, t, s, n)), d = to(e), f = (n) => {
3571
+ function ao(e, t, n) {
3572
+ let { nodes: r } = e, i = z(e), a = Ir(e), o = new Map(r.map((e) => [e.id, e])), s = e.view === "dataflow", c = [], l = (e) => !!t && t.connectedEdgeKeys.has(Z(e)), u = (e, r, i) => c.push(eo(e, r, i, t, s, n)), d = ro(e), f = (n) => {
3562
3573
  let r = o.get(n.from), a = o.get(n.to);
3563
3574
  if (r && a && X(e, r) && X(e, a)) {
3564
3575
  if (s) return u(n, r, a);
3565
3576
  if (e.view === "house") {
3566
- let e = En(n, r, a);
3567
- e === "flow" ? u(n, r, a) : e === "link" && c.push($a(n, r, a, t));
3568
- } else n.kind === "flow" ? i.flow !== !1 && u(n, r, a) : n.kind === "reads" || n.kind === "writes" ? i.table !== !1 && u(n, r, a) : n.kind === "runs-on" ? (i.stack !== !1 || a.type === "machine") && u(n, r, a) : n.kind === "calls" || n.kind === "triggers" || n.kind === "delivers" ? (r.type !== "page" || n.kind !== "calls" || l(n)) && u(n, r, a) : n.kind === "uses" || n.kind === "extends" ? l(n) && u(n, r, a) : c.push($a(n, r, a, t));
3577
+ let e = Tn(n, r, a);
3578
+ e === "flow" ? u(n, r, a) : e === "link" && c.push(to(n, r, a, t));
3579
+ } else n.kind === "flow" ? i.flow !== !1 && u(n, r, a) : n.kind === "reads" || n.kind === "writes" ? i.table !== !1 && u(n, r, a) : n.kind === "runs-on" ? (i.stack !== !1 || a.type === "machine") && u(n, r, a) : n.kind === "calls" || n.kind === "triggers" || n.kind === "delivers" ? (r.type !== "page" || n.kind !== "calls" || l(n)) && u(n, r, a) : n.kind === "uses" || n.kind === "extends" ? l(n) && u(n, r, a) : c.push(to(n, r, a, t));
3569
3580
  }
3570
3581
  };
3571
- return Ua(e).forEach((n) => {
3582
+ return Ga(e).forEach((n) => {
3572
3583
  if (d && !Lt(d, n)) return;
3573
3584
  let r = d === "before" ? zt(n) : n, i = d ? Rt(d, n) : "none", l = c.length;
3574
3585
  if (i === "none") f(r);
3575
3586
  else {
3576
3587
  let n = o.get(r.from), i = o.get(r.to);
3577
3588
  if (!n || !i || !X(e, n) || !X(e, i)) return;
3578
- s || eo.includes(r.kind) ? u(r, n, i) : c.push($a(r, n, i, t));
3589
+ s || no.includes(r.kind) ? u(r, n, i) : c.push(to(r, n, i, t));
3579
3590
  }
3580
- for (let e = l; e < c.length; e++) no(c[e], i, d, i === "edit" && n.editOp === "removed", a);
3591
+ for (let e = l; e < c.length; e++) io(c[e], i, d, i === "edit" && n.editOp === "removed", a);
3581
3592
  }), c;
3582
3593
  }
3583
- var io = (e) => e.type === "floor" || e.type === "room" ? "house" : e.type === "external" ? Mt(e) : e.type, ao = (e) => ya(e.color) ?? (P[e.type] || P.external).color;
3584
- function oo(e, t) {
3585
- let { nodes: n, selectedNode: r, searchQuery: i } = e, a = i ? la(n, i) : null, o = !!a && n.some((t) => a.has(t.id) && X(e, t)), s = [], c = to(e), l = Ir(e), u = c === "diff" || c && l ? Bt(n, Ua(e)) : null;
3594
+ var oo = (e) => e.type === "floor" || e.type === "room" ? "house" : e.type === "external" ? Mt(e) : e.type, so = (e) => xa(e.color) ?? (P[e.type] || P.external).color;
3595
+ function co(e, t) {
3596
+ let { nodes: n, selectedNode: r, searchQuery: i } = e, a = i ? da(n, i) : null, o = !!a && n.some((t) => a.has(t.id) && X(e, t)), s = [], c = ro(e), l = Ir(e), u = c === "diff" || c && l ? Bt(n, Ga(e)) : null;
3586
3597
  return n.forEach((n) => {
3587
3598
  if (!X(e, n)) return;
3588
- let i = c === "before" ? zt(n) : n, d = !!a && a.has(n.id), f = d && e.searchCurrent === n.id, p = !!r && r.id === n.id, m = !t || t.connectedNodeIds.has(n.id), h = t && t.childIds ? t.childIds.has(n.id) : !1, g = c ? Rt(c, n) : "none", _ = Y[g], v = g === "edit" && n.editOp === "removed", y = t && !m && !(o && d) ? Ta : 1;
3589
- o && !d && !p && !(t && m) && (y = Ta);
3599
+ let i = c === "before" ? zt(n) : n, d = !!a && a.has(n.id), f = d && e.searchCurrent === n.id, p = !!r && r.id === n.id, m = !t || t.connectedNodeIds.has(n.id), h = t && t.childIds ? t.childIds.has(n.id) : !1, g = c ? Rt(c, n) : "none", _ = Y[g], v = g === "edit" && n.editOp === "removed", y = t && !m && !(o && d) ? Da : 1;
3600
+ o && !d && !p && !(t && m) && (y = Da);
3590
3601
  let b = l && !!u && !u.touched.has(n.id);
3591
- u && !u.touched.has(n.id) && (y = Math.min(y, b ? ni : Va)), _ && (y *= v ? Y.removed.alpha : _.alpha);
3602
+ u && !u.touched.has(n.id) && (y = Math.min(y, b ? ii : Ua)), _ && (y *= v ? Y.removed.alpha : _.alpha);
3592
3603
  let x = i.type === "root" || i.type === "app", S = Er(e, i), C = br(e, i);
3593
3604
  s.push({
3594
3605
  id: n.id,
3595
3606
  type: i.type,
3596
- group: io(i),
3607
+ group: oo(i),
3597
3608
  ...typeof i.kind == "string" && i.kind ? { kind: i.kind } : {},
3598
3609
  ...S ? { letters: S } : {},
3599
3610
  shape: Jt(i.type),
3600
- hitR: i.r * Aa[Jt(i.type)],
3601
- ...Oi(i.type) ? { glyph: i.type } : {},
3611
+ hitR: i.r * Ma[Jt(i.type)],
3612
+ ...ki(i.type) ? { glyph: i.type } : {},
3602
3613
  ...C ? { layer: C } : {},
3603
3614
  x: n.x,
3604
3615
  y: n.y,
3605
3616
  r: i.r,
3606
- color: ao(i),
3617
+ color: so(i),
3607
3618
  alpha: y,
3608
3619
  glow: m && y >= .5 ? x ? 15 : 9 : 0,
3609
3620
  halo: d ? "match" : p ? "selected" : h ? "child" : "none",
@@ -3617,16 +3628,16 @@ function oo(e, t) {
3617
3628
  label: i.label,
3618
3629
  labelSize: x && !b ? 12 : 11,
3619
3630
  labelBold: x && !b,
3620
- labelAlpha: b && (!t || m) ? ri[e.theme === "light" ? "light" : "dark"] : u && !u.touched.has(n.id) && (!t || m) ? Math.max(y, ti) : y,
3631
+ labelAlpha: b && (!t || m) ? ai[e.theme === "light" ? "light" : "dark"] : u && !u.touched.has(n.id) && (!t || m) ? Math.max(y, ri) : y,
3621
3632
  labelColor: m ? "#f8fafc" : "rgba(255, 255, 255, 0.3)",
3622
- labelKeep: ba.includes(i.type) && !b || p || d || g !== "none" || !!(t && m),
3633
+ labelKeep: Sa.includes(i.type) && !b || p || d || g !== "none" || !!(t && m),
3623
3634
  labelStrike: !!_ && (_.strike || v),
3624
3635
  live: !!n.live,
3625
3636
  box: n.box || null
3626
3637
  });
3627
3638
  }), s;
3628
3639
  }
3629
- function so(e) {
3640
+ function lo(e) {
3630
3641
  let { rings: t, selectedNode: n } = e, r = {
3631
3642
  color: n ? "rgba(66, 153, 225, 0.04)" : "rgba(66, 153, 225, 0.14)",
3632
3643
  width: 1,
@@ -3648,7 +3659,7 @@ function so(e) {
3648
3659
  ...i
3649
3660
  })))];
3650
3661
  }
3651
- function co(e) {
3662
+ function uo(e) {
3652
3663
  let t = -e.top + 40;
3653
3664
  return e.headers.map((n, r) => {
3654
3665
  let i = e.headers[r + 1];
@@ -3688,44 +3699,44 @@ function co(e) {
3688
3699
  };
3689
3700
  });
3690
3701
  }
3691
- var lo = .55, uo = .5, fo = {
3702
+ var fo = .55, po = .5, mo = {
3692
3703
  color: "#ffffff",
3693
3704
  radius: 4.5,
3694
3705
  glow: 12
3695
- }, po = {
3706
+ }, ho = {
3696
3707
  width: 3.6,
3697
3708
  glow: 14
3698
3709
  };
3699
- function mo(e, t) {
3710
+ function go(e, t) {
3700
3711
  return e.from !== t.from || e.to !== t.to ? !1 : t.kind ? e.kind === t.kind && (!t.flow || e.key.split("|")[2] === t.flow) : e.kind === "ownership" || e.kind === "usage";
3701
3712
  }
3702
- function ho(e, t, n = {}) {
3713
+ function _o(e, t, n = {}) {
3703
3714
  if (t.done) return;
3704
3715
  let { node: r, edge: i, at: a } = t.current, o = new Set(r === void 0 ? i ? [i.from, i.to] : [] : [r]);
3705
3716
  a !== void 0 && o.add(a), e.nodes.forEach((e) => {
3706
- e.connected && (o.has(e.id) ? (r !== void 0 || e.id === a) && e.halo !== "match" && (e.halo = "selected") : (e.alpha = lo, e.labelAlpha = lo));
3717
+ e.connected && (o.has(e.id) ? (r !== void 0 || e.id === a) && e.halo !== "match" && (e.halo = "selected") : (e.alpha = fo, e.labelAlpha = fo));
3707
3718
  });
3708
3719
  let s = new Set(t.visited.edgeList.map(Z)), c = (e) => s.has(Z(e)) || t.linkNodes && t.visited.nodes.has(e.from) && t.visited.nodes.has(e.to);
3709
3720
  e.edges.forEach((e) => {
3710
- if (i && mo(e, i)) {
3711
- e.alpha = 1, e.width = Math.max(e.width, po.width), e.glow = po.glow, e.glowColor = e.glowColor || e.color;
3721
+ if (i && go(e, i)) {
3722
+ e.alpha = 1, e.width = Math.max(e.width, ho.width), e.glow = ho.glow, e.glowColor = e.glowColor || e.color;
3712
3723
  let r = 1e3 / t.stepMs, i = t.stepStartMs == null ? 0 : (-t.stepStartMs / 1e3 * r % 1 + 1) % 1;
3713
3724
  e.packet = n.reduceMotion ? null : {
3714
- ...fo,
3725
+ ...mo,
3715
3726
  glowColor: e.color,
3716
3727
  speed: r,
3717
3728
  phase: i
3718
3729
  };
3719
- } else c(e) && (e.alpha = uo, e.packet = null);
3730
+ } else c(e) && (e.alpha = po, e.packet = null);
3720
3731
  });
3721
3732
  }
3722
- function go(e, t = {}) {
3723
- let n = e.view === "dataflow", r = e.scenario ? Ga(e) : e.selectedNode ? Wa(e.selectedNode, Ua(e), {
3733
+ function vo(e, t = {}) {
3734
+ let n = e.view === "dataflow", r = e.scenario ? qa(e) : e.selectedNode ? Ka(e.selectedNode, Ga(e), {
3724
3735
  throughChildren: !!e.throughChildren,
3725
3736
  kind: e.selectedKind || null
3726
- }) : null, i = n && e.flow ? co(e.flow) : [], a = !(n && e.flow) && !e.isFreeform ? so(e) : [], o = {
3727
- nodes: oo(e, r),
3728
- edges: ro(e, r, !!t.reduceMotion),
3737
+ }) : null, i = n && e.flow ? uo(e.flow) : [], a = !(n && e.flow) && !e.isFreeform ? lo(e) : [], o = {
3738
+ nodes: co(e, r),
3739
+ edges: ao(e, r, !!t.reduceMotion),
3729
3740
  decor: {
3730
3741
  grid: {
3731
3742
  size: 48,
@@ -3744,18 +3755,18 @@ function go(e, t = {}) {
3744
3755
  theme: "dark",
3745
3756
  version: e.sceneVersion || 0
3746
3757
  };
3747
- e.view === "house" && On(o, e), e.scenario && ho(o, e.scenario, t), o.greying = o.nodes.some((e) => e.greyed) || o.edges.some((e) => e.greyed);
3758
+ e.view === "house" && Dn(o, e), e.scenario && _o(o, e.scenario, t), o.greying = o.nodes.some((e) => e.greyed) || o.edges.some((e) => e.greyed);
3748
3759
  let s = {
3749
3760
  nodes: o.nodes.map((e) => e.color),
3750
3761
  edges: o.edges.map((e) => e.color)
3751
3762
  };
3752
- return e.scenario && xn(o, bn(e.scenario, e.nodes, e.edges)), e.scenario && Rn(o, e.scenario), e.forgeLit && na(o, e.forgeLit), o.nodes.forEach((e, t) => {
3763
+ return e.scenario && bn(o, yn(e.scenario, e.nodes, e.edges)), e.scenario && Ln(o, e.scenario), e.forgeLit && ia(o, e.forgeLit), o.nodes.forEach((e, t) => {
3753
3764
  s.nodes.length === o.nodes.length && e.color !== s.nodes[t] && o.painted.nodes.add(e.id);
3754
3765
  }), o.edges.forEach((e, t) => {
3755
3766
  s.edges.length === o.edges.length && e.color !== s.edges[t] && o.painted.edges.add(e.key);
3756
- }), e.theme === "light" && xi(o), o;
3767
+ }), e.theme === "light" && Ci(o), o;
3757
3768
  }
3758
- function _o(e = go) {
3769
+ function yo(e = vo) {
3759
3770
  let t = null, n, r = {
3760
3771
  builds: 0,
3761
3772
  get(i) {
@@ -3765,7 +3776,7 @@ function _o(e = go) {
3765
3776
  return r;
3766
3777
  }
3767
3778
  // ../explorer/engine/map-style.js
3768
- var vo = Object.freeze(Object.keys(P)), yo = Object.freeze([
3779
+ var bo = Object.freeze(Object.keys(P)), xo = Object.freeze([
3769
3780
  "app",
3770
3781
  "pkg",
3771
3782
  "page",
@@ -3784,7 +3795,7 @@ var vo = Object.freeze(Object.keys(P)), yo = Object.freeze([
3784
3795
  "device",
3785
3796
  "house",
3786
3797
  "persona"
3787
- ]), bo = Object.freeze([
3798
+ ]), So = Object.freeze([
3788
3799
  "ownership",
3789
3800
  "usage",
3790
3801
  "flow",
@@ -3796,33 +3807,33 @@ var vo = Object.freeze(Object.keys(P)), yo = Object.freeze([
3796
3807
  "runs-on",
3797
3808
  "uses",
3798
3809
  "extends"
3799
- ]), xo = Object.freeze([
3810
+ ]), Co = Object.freeze([
3800
3811
  "added",
3801
3812
  "changed",
3802
3813
  "removed",
3803
3814
  "edit"
3804
- ]), So = Object.freeze([
3815
+ ]), wo = Object.freeze([
3805
3816
  "selected",
3806
3817
  "match",
3807
3818
  "lit"
3808
- ]), Co = "--corn-map-stroke", wo = "--corn-map-label", To = "--corn-map-label-halo", Eo = "--corn-map-font", Do = "--corn-map-edge-width", Oo = "--corn-map-glow", ko = "--corn-map-label-min", Ao = "--corn-map-grey", jo = "--corn-map-grey-alpha", Mo = "--corn-map-glyph", No = 1.6, Po = 1.5, Fo = 1.2, Io = (e) => `--corn-map-node-${e}`, Lo = (e) => `--corn-map-group-${e}`, Ro = (e, t) => $n(e, t), zo = (e) => `--corn-map-edge-${e}`, Q = (e) => `--corn-map-${e}`, Bo = Object.freeze([
3809
- ...vo.map(Io),
3810
- ...yo.map(Lo),
3811
- Co,
3812
- wo,
3819
+ ]), To = "--corn-map-stroke", Eo = "--corn-map-label", Do = "--corn-map-label-halo", Oo = "--corn-map-font", ko = "--corn-map-edge-width", Ao = "--corn-map-glow", jo = "--corn-map-label-min", Mo = "--corn-map-grey", No = "--corn-map-grey-alpha", Po = "--corn-map-glyph", Fo = "--corn-ground", Io = 1.6, Lo = 1.5, Ro = 1.2, zo = (e) => `--corn-map-node-${e}`, Bo = (e) => `--corn-map-group-${e}`, Vo = (e, t) => Qn(e, t), Ho = (e) => `--corn-map-edge-${e}`, Q = (e) => `--corn-map-${e}`, Uo = Object.freeze([
3820
+ ...bo.map(zo),
3821
+ ...xo.map(Bo),
3813
3822
  To,
3823
+ Eo,
3824
+ Do,
3825
+ Po,
3814
3826
  Mo,
3815
- Ao,
3816
- ...bo.map(zo),
3817
- ...xo.map(Q),
3818
- ...So.map(Q)
3827
+ ...So.map(Ho),
3828
+ ...Co.map(Q),
3829
+ ...wo.map(Q)
3819
3830
  ]);
3820
3831
  function $(e, t) {
3821
3832
  let [n, r, i, a] = B(e), o = B(t)[3];
3822
- return o >= 1 ? e : va(n, r, i, a * o);
3833
+ return o >= 1 ? e : ba(n, r, i, a * o);
3823
3834
  }
3824
- var Vo = /^(?:serif|sans-serif|monospace|cursive|fantasy|system-ui|ui-serif|ui-sans-serif|ui-monospace|ui-rounded|emoji|math|fangsong)$/i, Ho = /^(?:-apple-system|BlinkMacSystemFont)$/;
3825
- function Uo(e) {
3835
+ var Wo = /^(?:serif|sans-serif|monospace|cursive|fantasy|system-ui|ui-serif|ui-sans-serif|ui-monospace|ui-rounded|emoji|math|fangsong)$/i, Go = /^(?:-apple-system|BlinkMacSystemFont)$/;
3836
+ function Ko(e) {
3826
3837
  let t = typeof e == "string" ? e.trim() : "";
3827
3838
  if (!t || t.length > 200 || t.toLowerCase() === "auto" || /[();:{}<>@\\/\u0000-\u001f\u007f]|\burl\b|\bvar\b|\bexpression\b|\bimport\b/i.test(t)) return null;
3828
3839
  let n = t.split(",").map((e) => e.trim());
@@ -3831,46 +3842,47 @@ function Uo(e) {
3831
3842
  for (let e of n) {
3832
3843
  let t = /^"([A-Za-z0-9 ._+-]{1,60})"$|^'([A-Za-z0-9 ._+-]{1,60})'$/.exec(e), n = t ? (t[1] ?? t[2]).trim() : /^-?[A-Za-z][A-Za-z0-9 _-]{0,59}$/.test(e) ? e.replace(/\s+/g, " ") : null;
3833
3844
  if (!n) return null;
3834
- r.push(Vo.test(n) ? n.toLowerCase() : Ho.test(n) ? n : `"${n}"`);
3845
+ r.push(Wo.test(n) ? n.toLowerCase() : Go.test(n) ? n : `"${n}"`);
3835
3846
  }
3836
3847
  return r.join(", ");
3837
3848
  }
3838
- function Wo(e, t) {
3849
+ function qo(e, t) {
3839
3850
  let n = /^\s*(\d*\.?\d+)(?:px)?\s*$/i.exec(String(e ?? "")), r = n ? parseFloat(n[1]) : NaN;
3840
3851
  return Number.isFinite(r) && r > 0 && r <= t ? r : null;
3841
3852
  }
3842
- function Go(e) {
3843
- let t = Wo(e, 24);
3853
+ function Jo(e) {
3854
+ let t = qo(e, 24);
3844
3855
  return t !== null && t >= 9 ? t : null;
3845
3856
  }
3846
- function Ko(e) {
3857
+ function Yo(e) {
3847
3858
  let t = /^\s*(\d*\.?\d+)(px)?\s*$/i.exec(String(e ?? ""));
3848
3859
  if (!t) return null;
3849
3860
  let n = parseFloat(t[1]);
3850
3861
  return t[2] && n !== 0 ? null : Number.isFinite(n) && n >= 0 && n <= 4 ? n : null;
3851
3862
  }
3852
- function qo(e) {
3863
+ function Xo(e) {
3853
3864
  let t = /^\s*(\d*\.?\d+)\s*$/.exec(String(e ?? "")), n = t ? parseFloat(t[1]) : NaN;
3854
3865
  return Number.isFinite(n) && n >= .1 && n <= 1 ? n : null;
3855
3866
  }
3856
- function Jo(e, t = []) {
3867
+ function Zo(e, t = []) {
3857
3868
  let n = {};
3858
- for (let r of [...Bo, ...t]) {
3859
- let t = fa(e(r));
3869
+ for (let r of [...Uo, ...t]) {
3870
+ let t = ma(e(r));
3860
3871
  t && (n[r] = t);
3861
3872
  }
3862
3873
  let r = parseFloat(String(e("--corn-map-stroke-width") ?? ""));
3863
3874
  return {
3864
3875
  values: n,
3865
- strokeWidth: Number.isFinite(r) && r >= 0 ? r : Po,
3866
- font: Uo(e(Eo)),
3867
- edgeWidth: Wo(e(Do), 12),
3868
- glow: Ko(e(Oo)),
3869
- labelMin: Go(e(ko)),
3870
- greyAlpha: qo(e(jo))
3876
+ strokeWidth: Number.isFinite(r) && r >= 0 ? r : Lo,
3877
+ font: Ko(e(Oo)),
3878
+ edgeWidth: qo(e(ko), 12),
3879
+ glow: Yo(e(Ao)),
3880
+ labelMin: Jo(e(jo)),
3881
+ greyAlpha: Xo(e(No)),
3882
+ ground: ma(e(Fo))
3871
3883
  };
3872
3884
  }
3873
- function Yo(e, t = "") {
3885
+ function Qo(e, t = "") {
3874
3886
  return new Promise((n, r) => {
3875
3887
  if (typeof Image > "u") {
3876
3888
  r(/* @__PURE__ */ Error("no Image"));
@@ -3880,10 +3892,10 @@ function Yo(e, t = "") {
3880
3892
  t && (i.crossOrigin = t), i.onload = () => i.naturalWidth > 0 && i.naturalHeight > 0 ? n(i) : r(/* @__PURE__ */ Error(`${e} has no size`)), i.onerror = () => r(/* @__PURE__ */ Error(`${e} did not load`)), i.src = e;
3881
3893
  });
3882
3894
  }
3883
- function Xo(e, { load: t = Yo, onChange: n = () => {}, warn: r = (e) => console.warn(e) } = {}) {
3895
+ function $o(e, { load: t = Qo, onChange: n = () => {}, warn: r = (e) => console.warn(e) } = {}) {
3884
3896
  let i = /* @__PURE__ */ new Map(), a = 0;
3885
3897
  for (let [o, s] of Object.entries(e || {})) {
3886
- if (!nr(o) || typeof s != "string" || !s.startsWith("/cornfield/theme/assets/") || s.includes("..")) continue;
3898
+ if (!tr(o) || typeof s != "string" || !s.startsWith("/cornfield/theme/assets/") || s.includes("..")) continue;
3887
3899
  let e = {
3888
3900
  status: "loading",
3889
3901
  image: null
@@ -3904,29 +3916,31 @@ function Xo(e, { load: t = Yo, onChange: n = () => {}, warn: r = (e) => console.
3904
3916
  anyReady: () => a > 0
3905
3917
  };
3906
3918
  }
3907
- var Zo = {
3919
+ var es = {
3908
3920
  values: {},
3909
- strokeWidth: Po,
3921
+ strokeWidth: Lo,
3910
3922
  font: null,
3911
3923
  edgeWidth: null,
3912
3924
  glow: null,
3913
3925
  labelMin: null,
3914
- greyAlpha: null
3915
- }, Qo = Object.freeze({
3926
+ greyAlpha: null,
3927
+ ground: null
3928
+ }, ts = Object.freeze({
3916
3929
  version: 0,
3917
3930
  values: Object.freeze({}),
3918
- strokeWidth: Po,
3931
+ strokeWidth: Lo,
3919
3932
  font: null,
3920
3933
  edgeWidth: null,
3921
3934
  glow: null,
3922
3935
  labelMin: null,
3923
3936
  greyAlpha: null,
3937
+ ground: null,
3924
3938
  icons: null,
3925
3939
  pixelated: !1,
3926
3940
  plain: !0
3927
- }), $o = 500;
3928
- function es(e) {
3929
- let t = Zo, n = null, r = !1, i = 0, a = [], o = /* @__PURE__ */ new Set(), s = () => {
3941
+ }), ns = 500;
3942
+ function rs(e) {
3943
+ let t = es, n = null, r = !1, i = 0, a = [], o = /* @__PURE__ */ new Set(), s = () => {
3930
3944
  let e = !Object.keys(t.values).length && !(n && n.anyReady()) && t.font === null && t.edgeWidth === null && t.glow === null && t.labelMin === null && t.greyAlpha === null;
3931
3945
  return Object.freeze({
3932
3946
  version: i,
@@ -3937,6 +3951,7 @@ function es(e) {
3937
3951
  glow: t.glow,
3938
3952
  labelMin: t.labelMin,
3939
3953
  greyAlpha: t.greyAlpha,
3954
+ ground: t.ground,
3940
3955
  icons: n,
3941
3956
  pixelated: r,
3942
3957
  plain: e
@@ -3953,13 +3968,13 @@ function es(e) {
3953
3968
  return o.add(e), () => o.delete(e);
3954
3969
  },
3955
3970
  setSubjects({ kinds: e = [], layers: t = [] } = {}) {
3956
- let n = [...new Set([...e.map(([e, t]) => $n(e, t)), ...t.map((e) => er(e))].filter(Boolean))].sort().slice(0, $o);
3971
+ let n = [...new Set([...e.map(([e, t]) => Qn(e, t)), ...t.map((e) => $n(e))].filter(Boolean))].sort().slice(0, ns);
3957
3972
  return n.length === a.length && n.every((e, t) => e === a[t]) ? !1 : (a = n, d.refresh());
3958
3973
  },
3959
3974
  refresh(n = e.tokenReader()) {
3960
3975
  if (!n) return !1;
3961
- let r = Jo(n, a);
3962
- if (r.strokeWidth === t.strokeWidth && r.font === t.font && r.edgeWidth === t.edgeWidth && r.glow === t.glow && r.labelMin === t.labelMin && Object.keys(r.values).length === Object.keys(t.values).length && Object.entries(r.values).every(([e, n]) => t.values[e] === n)) return !1;
3976
+ let r = Zo(n, a);
3977
+ if (r.strokeWidth === t.strokeWidth && r.font === t.font && r.edgeWidth === t.edgeWidth && r.glow === t.glow && r.labelMin === t.labelMin && r.ground === t.ground && Object.keys(r.values).length === Object.keys(t.values).length && Object.entries(r.values).every(([e, n]) => t.values[e] === n)) return !1;
3963
3978
  t = r, u();
3964
3979
  try {
3965
3980
  let t = e.doc && e.doc.fonts;
@@ -3970,8 +3985,8 @@ function es(e) {
3970
3985
  setIcons(t, i = {}) {
3971
3986
  let a = t && t.icons && typeof t.icons == "object" ? t.icons : {};
3972
3987
  r = !!(t && t.pixelated === !0);
3973
- let o = e.base ? "anonymous" : "", s = i.load || ((t) => Yo(e.url(t), o));
3974
- return n = Object.keys(a).length ? Xo(a, {
3988
+ let o = e.base ? "anonymous" : "", s = i.load || ((t) => Qo(e.url(t), o));
3989
+ return n = Object.keys(a).length ? $o(a, {
3975
3990
  ...i,
3976
3991
  load: s,
3977
3992
  onChange: () => {
@@ -3984,7 +3999,7 @@ function es(e) {
3984
3999
  return r && r.setAttribute && (t && t.pixelated === !0 ? r.setAttribute("data-pixelated", "") : r.removeAttribute("data-pixelated")), d.setIcons(t, n);
3985
4000
  },
3986
4001
  reset() {
3987
- t = Zo, n = null, r = !1, a = [], u();
4002
+ t = es, n = null, r = !1, a = [], u();
3988
4003
  },
3989
4004
  watch() {
3990
4005
  let n = () => {
@@ -4022,12 +4037,12 @@ function es(e) {
4022
4037
  };
4023
4038
  return d;
4024
4039
  }
4025
- var ts = (e) => e.slot("map-style", es), ns = (e, t) => {
4040
+ var is = (e) => e.slot("map-style", rs), as = (e, t) => {
4026
4041
  for (let n of t) if (e[n]) return e[n];
4027
4042
  return null;
4028
- }, rs = tr, is = (e, t) => ns(e, rs(t));
4029
- function as(e, t) {
4030
- let n = t.edgeWidth == null ? 1 : t.edgeWidth / No, r = t.glow == null ? 1 : t.glow;
4043
+ }, os = er, ss = (e, t) => as(e, os(t));
4044
+ function cs(e, t) {
4045
+ let n = t.edgeWidth == null ? 1 : t.edgeWidth / Io, r = t.glow == null ? 1 : t.glow;
4031
4046
  if (n === 1 && r === 1) return e;
4032
4047
  let i = {
4033
4048
  ...e,
@@ -4039,19 +4054,19 @@ function as(e, t) {
4039
4054
  glow: e.packet.glow * r
4040
4055
  }), i;
4041
4056
  }
4042
- function os(e, t, n) {
4057
+ function ls(e, t, n) {
4043
4058
  let { values: r } = t;
4044
4059
  if (e.mark && e.mark !== "none") {
4045
4060
  let n = r[Q(e.mark)];
4046
- return as(n ? {
4061
+ return cs(n ? {
4047
4062
  ...e,
4048
4063
  color: n,
4049
4064
  glowColor: e.glowColor ? n : e.glowColor
4050
4065
  } : e, t);
4051
4066
  }
4052
- if (n.has(e.key)) return as(e, t);
4053
- let i = !e.curve && e.glow > 0 && !e.arrow && r[Q("lit")] || r[zo(e.kind)];
4054
- if (!i) return as(e, t);
4067
+ if (n.has(e.key)) return cs(e, t);
4068
+ let i = !e.curve && e.glow > 0 && !e.arrow && r[Q("lit")] || r[Ho(e.kind)];
4069
+ if (!i) return cs(e, t);
4055
4070
  let a = {
4056
4071
  ...e,
4057
4072
  color: $(i, e.color)
@@ -4059,18 +4074,18 @@ function os(e, t, n) {
4059
4074
  return e.glowColor && (a.glowColor = $(i, e.glowColor)), e.packet && (a.packet = {
4060
4075
  ...e.packet,
4061
4076
  glowColor: $(i, e.packet.glowColor)
4062
- }), as(a, t);
4077
+ }), cs(a, t);
4063
4078
  }
4064
- function ss(e) {
4079
+ function us(e) {
4065
4080
  let [t, n, r, i] = B(e), a = Math.round(.2126 * t + .7152 * n + .0722 * r);
4066
- return i >= 1 ? `rgb(${a}, ${a}, ${a})` : va(a, a, a, i);
4081
+ return i >= 1 ? `rgb(${a}, ${a}, ${a})` : ba(a, a, a, i);
4067
4082
  }
4068
- function cs(e, t) {
4069
- let { values: n } = t, r = n[Ao], i = t.greyAlpha == null ? 1 : t.greyAlpha / ni, a = (e) => r ? $(r, e) : ss(e), o = n[wo], s = n[Co], c = e.painted || {
4083
+ function ds(e, t) {
4084
+ let { values: n } = t, r = n[Mo], i = t.greyAlpha == null ? 1 : t.greyAlpha / ii, a = (e) => r ? $(r, e) : us(e), o = n[Eo], s = n[To], c = e.painted || {
4070
4085
  nodes: /* @__PURE__ */ new Set(),
4071
4086
  edges: /* @__PURE__ */ new Set()
4072
4087
  }, l = e.nodes.map((e) => {
4073
- let r = !c.nodes.has(e.id) && is(n, e), l = t.icons && rr(e.type, e.kind, e.layer).find((e) => t.icons.get(e)) || null, u = t.glow != null && t.glow !== 1 && e.glow > 0, d = !!e.greyed && !c.nodes.has(e.id);
4088
+ let r = !c.nodes.has(e.id) && ss(n, e), l = t.icons && nr(e.type, e.kind, e.layer).find((e) => t.icons.get(e)) || null, u = t.glow != null && t.glow !== 1 && e.glow > 0, d = !!e.greyed && !c.nodes.has(e.id);
4074
4089
  if (!r && !o && !s && !l && !u && !d) return e;
4075
4090
  let f = { ...e };
4076
4091
  return u && (f.glow = e.glow * t.glow), r && (f.color = r), o && (f.labelColor = $(o, e.labelColor)), s && t.strokeWidth > 0 && (f.stroke = {
@@ -4078,7 +4093,7 @@ function cs(e, t) {
4078
4093
  width: t.strokeWidth
4079
4094
  }), l && !d && (f.icon = l), d && (f.color = a(f.color), f.alpha = Math.min(1, e.alpha * i)), f;
4080
4095
  }), u = e.edges.map((e) => {
4081
- let n = os(e, t, c.edges);
4096
+ let n = ls(e, t, c.edges);
4082
4097
  return !e.greyed || c.edges.has(e.key) ? n : {
4083
4098
  ...n,
4084
4099
  color: a(n.color),
@@ -4091,9 +4106,9 @@ function cs(e, t) {
4091
4106
  edges: u
4092
4107
  };
4093
4108
  t.font && (d.labelFont = t.font), t.labelMin != null && (d.labelMin = t.labelMin);
4094
- let f = n[To];
4109
+ let f = n[Do];
4095
4110
  if (f) {
4096
- let { node: t, edge: n } = Ia(e.theme).labelOutline;
4111
+ let { node: t, edge: n } = Ra(e.theme).labelOutline;
4097
4112
  d.labelOutline = {
4098
4113
  node: {
4099
4114
  ...t,
@@ -4107,21 +4122,21 @@ function cs(e, t) {
4107
4122
  }
4108
4123
  return d;
4109
4124
  }
4110
- var ls = /* @__PURE__ */ new WeakMap();
4111
- function us(e, t) {
4125
+ var fs = /* @__PURE__ */ new WeakMap();
4126
+ function ps(e, t) {
4112
4127
  if (!t || t.plain && !e.greying) return e;
4113
- let n = ls.get(e);
4128
+ let n = fs.get(e);
4114
4129
  if (n && n.style === t) return n.out;
4115
- let r = cs(e, t);
4116
- return ls.set(e, {
4130
+ let r = ds(e, t);
4131
+ return fs.set(e, {
4117
4132
  style: t,
4118
4133
  out: r
4119
4134
  }), r;
4120
4135
  }
4121
- var ds = /* @__PURE__ */ new WeakMap();
4122
- function fs(e, t) {
4136
+ var ms = /* @__PURE__ */ new WeakMap();
4137
+ function hs(e, t) {
4123
4138
  if (!t || t.plain) return e;
4124
- let n = ds.get(e);
4139
+ let n = ms.get(e);
4125
4140
  if (n && n.style === t) return n.out;
4126
4141
  let { values: r } = t, i = { ...e.halo };
4127
4142
  for (let e of ["selected", "match"]) {
@@ -4133,7 +4148,7 @@ function fs(e, t) {
4133
4148
  });
4134
4149
  }
4135
4150
  let a = { ...e.mark };
4136
- for (let e of xo) {
4151
+ for (let e of Co) {
4137
4152
  let t = r[Q(e)];
4138
4153
  t && (a[e] = {
4139
4154
  ...a[e],
@@ -4145,11 +4160,11 @@ function fs(e, t) {
4145
4160
  halo: i,
4146
4161
  mark: a
4147
4162
  };
4148
- return ds.set(e, {
4163
+ return ms.set(e, {
4149
4164
  style: t,
4150
4165
  out: o
4151
4166
  }), o;
4152
4167
  }
4153
4168
  // \0corn-default-tokens
4154
- var ps = "/* cornfield's default design tokens, generated from explorer/tokens.css by components/scripts/tokens.mjs: do not edit.\n Every selector is :where(...), at zero specificity: any ordinary rule of yours (on :root, or on one element) overrides it. */\n\n:where(:root) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-blur: 16px;\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-text-on-accent: #fff;\n --corn-mockup-ground: #fff;\n --corn-accent: #4f46e5;\n --corn-accent-hover: #6265f1;\n --corn-accent-text: #98a1fa;\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --corn-font-display: var(--corn-font);\n --corn-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace;\n --corn-font-num: var(--corn-font);\n --corn-text-2xs: 10px;\n --corn-text-xs: 11px;\n --corn-text-sm: 12px;\n --corn-text-md: 13px;\n --corn-text-base: 14px;\n --corn-text-lg: 15px;\n --corn-text-xl: 20px;\n --corn-radius-xs: 3px;\n --corn-radius-sm: 6px;\n --corn-radius: 10px;\n --corn-radius-lg: 14px;\n --corn-radius-pill: 999px;\n --corn-border: 1px;\n --corn-border-strong: 2px;\n --corn-focus-width: 2px;\n --corn-focus-offset: 2px;\n --corn-space: 4px;\n --corn-space-1: var(--corn-space);\n --corn-space-2: 6px;\n --corn-space-3: 8px;\n --corn-space-4: 12px;\n --corn-space-5: 16px;\n --corn-space-6: 24px;\n --corn-control-height: 32px;\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-map-stroke: auto;\n --corn-map-stroke-width: 1.5px;\n --corn-map-label: auto;\n --corn-map-label-halo: auto;\n --corn-map-collision: var(--corn-warn);\n --corn-map-font: auto;\n --corn-map-edge-width: auto;\n --corn-map-glow: auto;\n --corn-map-label-min: auto;\n --corn-map-glyph: auto;\n --corn-map-grey: auto;\n --corn-map-grey-alpha: auto;\n --corn-map-added: auto;\n --corn-map-changed: auto;\n --corn-map-removed: auto;\n --corn-map-edit: auto;\n --corn-map-selected: auto;\n --corn-map-match: auto;\n --corn-map-lit: auto;\n --corn-map-edge-ownership: auto;\n --corn-map-edge-usage: auto;\n --corn-map-edge-flow: auto;\n --corn-map-edge-reads: auto;\n --corn-map-edge-writes: auto;\n --corn-map-edge-calls: auto;\n --corn-map-edge-triggers: auto;\n --corn-map-edge-delivers: auto;\n --corn-map-edge-runs-on: auto;\n --corn-map-edge-uses: auto;\n --corn-map-edge-extends: auto;\n --corn-map-node-root: auto;\n --corn-map-node-app: auto;\n --corn-map-node-page: auto;\n --corn-map-node-pkg: auto;\n --corn-map-node-core: auto;\n --corn-map-node-token: auto;\n --corn-map-node-atom: auto;\n --corn-map-node-molecule: auto;\n --corn-map-node-tool: auto;\n --corn-map-node-store: auto;\n --corn-map-node-table: auto;\n --corn-map-node-rom: auto;\n --corn-map-node-service: auto;\n --corn-map-node-external: auto;\n --corn-map-node-stack: auto;\n --corn-map-node-machine: auto;\n --corn-map-node-container: auto;\n --corn-map-node-persona: auto;\n --corn-map-node-device: auto;\n --corn-map-node-floor: auto;\n --corn-map-node-room: auto;\n --corn-map-group-app: auto;\n --corn-map-group-pkg: auto;\n --corn-map-group-page: auto;\n --corn-map-group-atom: auto;\n --corn-map-group-molecule: auto;\n --corn-map-group-token: auto;\n --corn-map-group-tool: auto;\n --corn-map-group-table: auto;\n --corn-map-group-rom: auto;\n --corn-map-group-service: auto;\n --corn-map-group-cloud: auto;\n --corn-map-group-web: auto;\n --corn-map-group-stack: auto;\n --corn-map-group-machine: auto;\n --corn-map-group-container: auto;\n --corn-map-group-device: auto;\n --corn-map-group-house: auto;\n --corn-map-group-persona: auto;\n}\n\n@media (prefers-color-scheme: light) {\n :where(:root:not([data-theme=\"dark\"])) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n }\n}\n\n:where(:root[data-theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n}\n\n@media (max-width: 767px) {\n :where(:root) {\n --corn-control-height: 44px;\n }\n}\n\n@media (max-width: 639px) {\n :where(:root) {\n --corn-panel-pad: var(--corn-space-5);\n }\n}\n\n:where(:root) {\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"light\" on an element: this mode's tokens, on the element itself */\n:where(corn-layers[theme=\"light\"]),\n:where(corn-map[theme=\"light\"]),\n:where(corn-node-panel[theme=\"light\"]),\n:where(corn-review[theme=\"light\"]),\n:where(corn-scope[theme=\"light\"]),\n:where(corn-search[theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"dark\" on an element: this mode's tokens, on the element itself */\n:where(corn-layers[theme=\"dark\"]),\n:where(corn-map[theme=\"dark\"]),\n:where(corn-node-panel[theme=\"dark\"]),\n:where(corn-review[theme=\"dark\"]),\n:where(corn-scope[theme=\"dark\"]),\n:where(corn-search[theme=\"dark\"]) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-accent-text: #98a1fa;\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n";
4155
- export { di as $, nt as $t, Ia as A, n as An, Ut as At, Xi as B, Dt as Bt, _o as C, _ as Cn, qt as Ct, io as D, d as Dn, rn as Dt, Wa as E, p as En, an as Et, $i as F, M as Ft, Fi as G, j as Gt, Di as H, Ot as Ht, Qi as I, Mt as It, Pi as J, yt as Jt, ki as K, ht as Kt, Zi as L, At as Lt, fa as M, Ht as Mt, oa as N, Bt as Nt, X as O, c as On, Ft as Ot, ca as P, Nt as Pt, ai as Q, it as Qt, Yi as R, Et as Rt, go as S, E as Sn, P as St, ao as T, v as Tn, on as Tt, Ei as U, wt as Ut, Si as V, kt as Vt, Vi as W, xt as Wt, Ii as X, ze as Xt, Ai as Y, ft as Yt, oi as Z, et as Zt, ba as _, k as _n, en as _t, Co as a, De as an, z as at, J as b, ee as bn, Yt as bt, fs as c, ge as cn, xr as ct, Da as d, _e as dn, gr as dt, Re as en, yi as et, Ca as f, be as fn, vr as ft, xa as g, S as gn, hn as gt, Sa as h, C as hn, yn as ht, Qo as i, Ae as in, Pr as it, Ya as j, Gt as jt, Ha as k, l as kn, N as kt, ts as l, ye as ln, wr as lt, ka as m, me as mn, cr as mt, Mo as n, Fe as nn, Yr as nt, is as o, we as on, br as ot, Pa as p, Se as pn, _r as pt, ji as q, vt as qt, Fo as r, Ee as rn, B as rt, Ro as s, Te as sn, Fr as st, ps as t, Le as tn, Qr as tt, us as u, xe as un, Gn as ut, Ba as v, te as vn, $t as vt, Ja as w, y as wn, un as wt, Ma as x, D as xn, nn as xt, ja as y, A as yn, sn as yt, Ji as z, Tt as zt };
4169
+ var gs = "/* cornfield's default design tokens, generated from explorer/tokens.css by components/scripts/tokens.mjs: do not edit.\n Every selector is :where(...), at zero specificity: any ordinary rule of yours (on :root, or on one element) overrides it. */\n\n:where(:root) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-blur: 16px;\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-text-on-accent: #fff;\n --corn-mockup-ground: #fff;\n --corn-accent: #4f46e5;\n --corn-accent-hover: #6265f1;\n --corn-accent-text: #98a1fa;\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --corn-font-display: var(--corn-font);\n --corn-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace;\n --corn-font-num: var(--corn-font);\n --corn-text-2xs: 10px;\n --corn-text-xs: 11px;\n --corn-text-sm: 12px;\n --corn-text-md: 13px;\n --corn-text-base: 14px;\n --corn-text-lg: 15px;\n --corn-text-xl: 20px;\n --corn-radius-xs: 3px;\n --corn-radius-sm: 6px;\n --corn-radius: 10px;\n --corn-radius-lg: 14px;\n --corn-radius-pill: 999px;\n --corn-border: 1px;\n --corn-border-strong: 2px;\n --corn-focus-width: 2px;\n --corn-focus-offset: 2px;\n --corn-space: 4px;\n --corn-space-1: var(--corn-space);\n --corn-space-2: 6px;\n --corn-space-3: 8px;\n --corn-space-4: 12px;\n --corn-space-5: 16px;\n --corn-space-6: 24px;\n --corn-control-height: 32px;\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-map-stroke: auto;\n --corn-map-stroke-width: 1.5px;\n --corn-map-label: auto;\n --corn-map-label-halo: auto;\n --corn-map-collision: var(--corn-warn);\n --corn-map-font: auto;\n --corn-map-edge-width: auto;\n --corn-map-glow: auto;\n --corn-map-label-min: auto;\n --corn-map-glyph: auto;\n --corn-map-grey: auto;\n --corn-map-grey-alpha: auto;\n --corn-map-added: auto;\n --corn-map-changed: auto;\n --corn-map-removed: auto;\n --corn-map-edit: auto;\n --corn-map-selected: auto;\n --corn-map-match: auto;\n --corn-map-lit: auto;\n --corn-map-edge-ownership: auto;\n --corn-map-edge-usage: auto;\n --corn-map-edge-flow: auto;\n --corn-map-edge-reads: auto;\n --corn-map-edge-writes: auto;\n --corn-map-edge-calls: auto;\n --corn-map-edge-triggers: auto;\n --corn-map-edge-delivers: auto;\n --corn-map-edge-runs-on: auto;\n --corn-map-edge-uses: auto;\n --corn-map-edge-extends: auto;\n --corn-map-node-root: auto;\n --corn-map-node-app: auto;\n --corn-map-node-page: auto;\n --corn-map-node-pkg: auto;\n --corn-map-node-core: auto;\n --corn-map-node-token: auto;\n --corn-map-node-atom: auto;\n --corn-map-node-molecule: auto;\n --corn-map-node-tool: auto;\n --corn-map-node-store: auto;\n --corn-map-node-table: auto;\n --corn-map-node-rom: auto;\n --corn-map-node-service: auto;\n --corn-map-node-external: auto;\n --corn-map-node-stack: auto;\n --corn-map-node-machine: auto;\n --corn-map-node-container: auto;\n --corn-map-node-persona: auto;\n --corn-map-node-device: auto;\n --corn-map-node-floor: auto;\n --corn-map-node-room: auto;\n --corn-map-group-app: auto;\n --corn-map-group-pkg: auto;\n --corn-map-group-page: auto;\n --corn-map-group-atom: auto;\n --corn-map-group-molecule: auto;\n --corn-map-group-token: auto;\n --corn-map-group-tool: auto;\n --corn-map-group-table: auto;\n --corn-map-group-rom: auto;\n --corn-map-group-service: auto;\n --corn-map-group-cloud: auto;\n --corn-map-group-web: auto;\n --corn-map-group-stack: auto;\n --corn-map-group-machine: auto;\n --corn-map-group-container: auto;\n --corn-map-group-device: auto;\n --corn-map-group-house: auto;\n --corn-map-group-persona: auto;\n}\n\n@media (prefers-color-scheme: light) {\n :where(:root:not([data-theme=\"dark\"])) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n }\n}\n\n:where(:root[data-theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n}\n\n@media (max-width: 767px) {\n :where(:root) {\n --corn-control-height: 44px;\n }\n}\n\n@media (max-width: 639px) {\n :where(:root) {\n --corn-panel-pad: var(--corn-space-5);\n }\n}\n\n:where(:root) {\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"light\" on an element: this mode's tokens, on the element itself */\n:where(corn-layers[theme=\"light\"]),\n:where(corn-map[theme=\"light\"]),\n:where(corn-node-panel[theme=\"light\"]),\n:where(corn-review[theme=\"light\"]),\n:where(corn-scope[theme=\"light\"]),\n:where(corn-search[theme=\"light\"]) {\n --corn-ground: #f4f6fa;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.06) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.04) 0%, transparent 45%);\n --corn-surface-1: rgba(255, 255, 255, 0.8);\n --corn-surface-2: rgba(241, 245, 249, 0.92);\n --corn-surface-3: rgba(226, 232, 240, 0.95);\n --corn-line: rgba(15, 23, 42, 0.12);\n --corn-line-soft: rgba(15, 23, 42, 0.07);\n --corn-shadow: 0 8px 28px 0 rgba(15, 23, 42, 0.12);\n --corn-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.25);\n --corn-shadow-lg: 0 10px 30px -12px rgba(15, 23, 42, 0.18);\n --corn-shadow-color: rgba(15, 23, 42, 0.25);\n --corn-glow: 0px;\n --corn-scrim: rgba(15, 23, 42, 0.35);\n --corn-text: #0f172a;\n --corn-text-2: #334155;\n --corn-text-3: #475569;\n --corn-accent-text: #4f46e5;\n --corn-focus: #4f46e5;\n --corn-brand-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #dc2626 100%);\n --corn-ok: #046f51;\n --corn-warn: #854d0e;\n --corn-bad: #b91c1c;\n --corn-info: #03679e;\n --corn-added: #197c6f;\n --corn-changed: #8f6703;\n --corn-removed: #e20b0b;\n --corn-edit: #6839f6;\n --corn-hue-orange: #c2410c;\n --corn-hue-fuchsia: #a21caf;\n --corn-hue-pink: #be185d;\n --corn-hue-lime: #4c7b0f;\n --corn-hue-orange-text: #9a3412;\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 30%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 55%, transparent);\n --corn-glyph-mix: 45%;\n color-scheme: light;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n\n/* theme=\"dark\" on an element: this mode's tokens, on the element itself */\n:where(corn-layers[theme=\"dark\"]),\n:where(corn-map[theme=\"dark\"]),\n:where(corn-node-panel[theme=\"dark\"]),\n:where(corn-review[theme=\"dark\"]),\n:where(corn-scope[theme=\"dark\"]),\n:where(corn-search[theme=\"dark\"]) {\n --corn-ground: #090d16;\n --corn-ground-image: radial-gradient(circle at 14% 18%, rgba(66, 153, 225, 0.2) 0%, transparent 45%),\n radial-gradient(circle at 86% 82%, rgba(229, 62, 62, 0.16) 0%, transparent 45%),\n radial-gradient(circle at 50% 50%, rgba(66, 153, 225, 0.10) 0%, transparent 60%);\n --corn-surface-1: rgba(26, 34, 52, 0.72);\n --corn-surface-2: rgba(30, 41, 59, 0.8);\n --corn-surface-3: rgba(51, 65, 85, 0.8);\n --corn-line: rgba(255, 255, 255, 0.12);\n --corn-line-soft: rgba(255, 255, 255, 0.07);\n --corn-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);\n --corn-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.4);\n --corn-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n --corn-shadow-color: rgba(0, 0, 0, 0.5);\n --corn-glow: 8px;\n --corn-scrim: rgba(0, 0, 0, 0.6);\n --corn-text: #f8fafc;\n --corn-text-2: #cbd5e1;\n --corn-text-3: #9aa9bc;\n --corn-accent-text: #98a1fa;\n --corn-focus: #818cf8;\n --corn-brand-gradient: linear-gradient(135deg, #4299e1 0%, #818cf8 50%, #e53e3e 100%);\n --corn-ok: #34d399;\n --corn-warn: #fcd34d;\n --corn-bad: #fca5a5;\n --corn-info: #7dd3fc;\n --corn-added: #2dd4bf;\n --corn-changed: #fbbf24;\n --corn-removed: #fa9292;\n --corn-edit: #b49cfb;\n --corn-hue-orange: #fb923c;\n --corn-hue-fuchsia: #e879f9;\n --corn-hue-pink: #f472b6;\n --corn-hue-lime: #a3e635;\n --corn-hue-orange-text: var(--corn-hue-orange);\n --corn-house-line: color-mix(in srgb, var(--corn-hue-lime) 18%, transparent);\n --corn-house-room: color-mix(in srgb, var(--corn-hue-lime) 45%, transparent);\n --corn-glyph-mix: 100%;\n color-scheme: dark;\n --corn-shadow-sheet: 0 -8px 24px color-mix(in srgb, var(--corn-shadow-color) 70%, transparent);\n --corn-accent-soft: color-mix(in srgb, var(--corn-accent-hover) 20%, transparent);\n --corn-ok-soft: color-mix(in srgb, var(--corn-ok) 15%, transparent);\n --corn-run-requested: var(--corn-text-3);\n --corn-run-claimed: var(--corn-info);\n --corn-run-working: var(--corn-info);\n --corn-run-waiting: var(--corn-warn);\n --corn-run-waiting-ink: var(--corn-ground);\n --corn-run-done: var(--corn-ok);\n --corn-run-failed: var(--corn-bad);\n --corn-run-stopped: var(--corn-text-2);\n --corn-added-text: color-mix(in srgb, var(--corn-added) 60%, var(--corn-text));\n --corn-edit-text: color-mix(in srgb, var(--corn-edit) 60%, var(--corn-text));\n --corn-hue-orange-soft: color-mix(in srgb, var(--corn-hue-orange) 12%, transparent);\n --corn-font-display: var(--corn-font);\n --corn-font-num: var(--corn-font);\n --corn-space-1: var(--corn-space);\n --corn-panel-pad: calc(var(--corn-space-5) + var(--corn-space-1));\n --corn-panel-head-height: calc(var(--corn-control-height) + var(--corn-space-3));\n --corn-map-collision: var(--corn-warn);\n --hx-bg: var(--corn-ground);\n --hx-text: var(--corn-text);\n --hx-ink: var(--corn-text);\n --hx-text-1: var(--corn-text);\n --hx-text-2: var(--corn-text-2);\n --hx-slate-300: var(--corn-text-2);\n --hx-slate-400: var(--corn-text-3);\n --hx-slate-500: var(--corn-text-3);\n --hx-slate-600: var(--corn-text-3);\n --hx-slate-700: var(--corn-surface-3);\n --hx-slate-800: var(--corn-surface-2);\n --hx-slate-900: var(--corn-ground);\n --hx-slate-950: var(--corn-ground);\n --hx-indigo: var(--corn-accent-text);\n --hx-indigo-strong: var(--corn-accent);\n --hx-emerald: var(--corn-ok);\n --hx-amber: var(--corn-warn);\n --hx-sky: var(--corn-info);\n --hx-pink: var(--corn-hue-pink);\n --hx-fuchsia: var(--corn-hue-fuchsia);\n --hx-fuchsia-strong: var(--corn-hue-fuchsia);\n --hx-red: var(--corn-bad);\n --hx-code: var(--corn-warn);\n --hx-orange-text: var(--corn-hue-orange);\n --hx-orange-strong: var(--corn-hue-orange);\n --hx-teal-text: var(--corn-added-text);\n --hx-teal-strong: var(--corn-added-text);\n --hx-violet-text: var(--corn-edit-text);\n --hx-green-text: var(--corn-ok);\n --hx-lime-text: var(--corn-hue-lime);\n --hx-mark-added: var(--corn-added);\n --hx-mark-changed: var(--corn-changed);\n --hx-mark-removed: var(--corn-removed);\n --hx-mark-edit: var(--corn-edit);\n --hx-control: var(--corn-surface-2);\n --hx-control-hover: var(--corn-surface-3);\n --hx-control-off: color-mix(in srgb, var(--corn-ground) 40%, transparent);\n --hx-well: color-mix(in srgb, var(--corn-ground) 80%, transparent);\n --hx-well-soft: color-mix(in srgb, var(--corn-ground) 55%, transparent);\n --hx-line: var(--corn-line);\n --hx-line-soft: var(--corn-line-soft);\n --hx-scroll: color-mix(in srgb, var(--corn-text) 18%, transparent);\n --hx-scroll-hover: color-mix(in srgb, var(--corn-text) 28%, transparent);\n --hx-swatch-solid: color-mix(in srgb, var(--corn-text) 55%, transparent);\n --hx-backdrop: var(--corn-scrim);\n --hx-glyph-mix: var(--corn-glyph-mix);\n --surface-glass: var(--corn-surface-1);\n --surface-glass-header: color-mix(in srgb, var(--corn-ground) 88%, transparent);\n --border-glass: var(--corn-line);\n --border-subtle: var(--corn-line-soft);\n --glass-blur: blur(var(--corn-blur));\n --glass-shadow: var(--corn-shadow);\n --gradient-primary: var(--corn-brand-gradient);\n --bg-gradient: var(--corn-ground-image), var(--corn-ground);\n --pop-font-body: var(--corn-font);\n --pop-font-mono: var(--corn-mono);\n}\n";
4170
+ export { si as $, et as $t, Wa as A, c as An, Ft as At, Xi as B, Et as Bt, vo as C, D as Cn, nn as Ct, Ka as D, v as Dn, on as Dt, so as E, y as En, un as Et, ua as F, Bt as Ft, Ui as G, wt as Gt, wi as H, Dt as Ht, ta as I, Nt as It, Mi as J, ht as Jt, Li as K, xt as Kt, ea as L, M as Lt, Za as M, n as Mn, Ut as Mt, ma as N, Gt as Nt, oo as O, p as On, an as Ot, ca as P, Ht as Pt, ci as Q, ze as Qt, $i as R, Mt as Rt, Pa as S, ee as Sn, Yt as St, Xa as T, _ as Tn, qt as Tt, Oi as U, kt as Ut, Qi as V, Tt as Vt, Di as W, Ot as Wt, ji as X, yt as Xt, Fi as Y, vt as Yt, Ri as Z, ft as Zt, Sa as _, C as _n, vn as _t, To as a, Ee as an, Xr as at, Ma as b, te as bn, $t as bt, hs as c, we as cn, br as ct, ka as d, ye as dn, wr as dt, it as en, pi as et, Ta as f, xe as fn, Wn as ft, Ca as g, me as gn, cr as gt, wa as h, Se as hn, _r as ht, ts as i, Fe as in, B as it, Ra as j, l as jn, N as jt, X as k, d as kn, rn as kt, is as l, Te as ln, Fr as lt, ja as m, be as mn, vr as mt, Po as n, Re as nn, ei as nt, ss as o, Ae as on, Pr as ot, Ia as p, _e as pn, gr as pt, Ai as q, j as qt, Ro as r, Le as rn, Yr as rt, Vo as s, De as sn, z as st, gs as t, nt as tn, xi as tt, ps as u, ge as un, xr as ut, Ha as v, S as vn, mn as vt, yo as w, E as wn, P as wt, J as x, A as xn, sn as xt, Na as y, k as yn, en as yt, Zi as z, At as zt };