// Differentiators: 3 comparison blocks (WideWired vs Tailscale vs ZeroTier) function Differentiators({ ctx }) { const { t } = ctx; const d = t.diff; const renderCell = (v, colIdx) => { const emphasized = colIdx === 1; // WideWired column const base = { fontFamily: v === true || v === false ? "var(--mono)" : "inherit", fontSize: 13, color: emphasized ? "var(--ink)" : "var(--ink-2)", fontWeight: emphasized ? 500 : 400, }; if (v === true) return ; if (v === false) return ; return {v}; }; return (
{d.blocks.map((b, i) => (
{/* left: intro */}
{b.num} § {b.kicker}

{b.title}

{b.desc}

{/* right: comparison table */}
{d.cmpHeader.map((h, j) => (
{h}
))}
{b.rows.map((row, ri) => (
{row[0]}
{[1, 2, 3].map(ci => (
{renderCell(row[ci], ci)}
))}
))}
))}
); } window.Differentiators = Differentiators;