// marks.jsx — logo mark SVGs for MLOPS d.o.o.
// Each mark is a small inline SVG sized by `s` (height in px) and colored by
// `c` (primary) / `a` (accent). Exported to window for use in heroes + logo board.

// 1 — Pipeline ascent: four nodes stepping up, connected. The core business
//     model (Fund→Procure→Train→Deploy) drawn as a rising signal.
function MarkAscent({ s = 28, c = '#fff', a = '#4f8ff7' }) {
  const w = s * 1.18;
  return (
    <svg width={w} height={s} viewBox="0 0 38 32" fill="none" aria-hidden="true">
      <path d="M5 27 L14 20 L24 12 L33 5" stroke={c} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" opacity="0.5" />
      <circle cx="5" cy="27" r="3.2" fill={c} />
      <circle cx="14" cy="20" r="3.2" fill={c} />
      <circle cx="24" cy="12" r="3.2" fill={c} />
      <circle cx="33" cy="5" r="3.6" fill={a} />
    </svg>
  );
}

// 2 — Bracketed monospace: terminal-flavored [ ] enclosure.
function MarkBracket({ s = 28, c = '#fff', a = '#4f8ff7' }) {
  return (
    <svg width={s * 0.9} height={s} viewBox="0 0 28 32" fill="none" aria-hidden="true">
      <path d="M9 4 H4 V28 H9" stroke={a} strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round" />
      <path d="M19 4 H24 V28 H19" stroke={c} strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round" />
      <circle cx="14" cy="16" r="2.6" fill={a} />
    </svg>
  );
}

// 3 — Flow bars: four vertical bars of increasing height = stages of value.
function MarkBars({ s = 28, c = '#fff', a = '#4f8ff7' }) {
  return (
    <svg width={s * 1.1} height={s} viewBox="0 0 36 32" fill="none" aria-hidden="true">
      <rect x="2" y="20" width="6" height="10" rx="2" fill={c} opacity="0.55" />
      <rect x="11" y="14" width="6" height="16" rx="2" fill={c} opacity="0.7" />
      <rect x="20" y="8" width="6" height="22" rx="2" fill={c} opacity="0.85" />
      <rect x="29" y="2" width="6" height="28" rx="2" fill={a} />
    </svg>
  );
}

// 4 — M-node: an "M" formed by a connected node graph.
function MarkMNode({ s = 28, c = '#fff', a = '#4f8ff7' }) {
  return (
    <svg width={s} height={s} viewBox="0 0 32 32" fill="none" aria-hidden="true">
      <path d="M5 26 L5 8 L16 18 L27 8 L27 26" stroke={c} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round" />
      <circle cx="5" cy="8" r="3" fill={c} />
      <circle cx="16" cy="18" r="3.4" fill={a} />
      <circle cx="27" cy="8" r="3" fill={c} />
    </svg>
  );
}

// 5 — Star ring (EU motif) wrapping a node — European framing.
function MarkRing({ s = 30, c = '#0a2a6b', a = '#f4b400' }) {
  const stars = [];
  for (let i = 0; i < 12; i++) {
    const ang = (i / 12) * Math.PI * 2 - Math.PI / 2;
    stars.push(<circle key={i} cx={16 + Math.cos(ang) * 12} cy={16 + Math.sin(ang) * 12} r="1.5" fill={a} />);
  }
  return (
    <svg width={s} height={s} viewBox="0 0 32 32" fill="none" aria-hidden="true">
      {stars}
      <circle cx="16" cy="16" r="5" fill={c} />
    </svg>
  );
}

// 6 — Slash: ml/ops divider glyph, engineered + minimal.
function MarkSlash({ s = 28, c = '#fff', a = '#4f8ff7' }) {
  return (
    <svg width={s * 0.72} height={s} viewBox="0 0 22 32" fill="none" aria-hidden="true">
      <path d="M16 3 L6 29" stroke={a} strokeWidth="3" strokeLinecap="round" />
      <circle cx="5" cy="6" r="2.4" fill={c} />
      <circle cx="17" cy="26" r="2.4" fill={c} />
    </svg>
  );
}

Object.assign(window, { MarkAscent, MarkBracket, MarkBars, MarkMNode, MarkRing, MarkSlash });
