// diagrams2-eli5.jsx — ELI5 comparison panel + ELI5 attestation flow
// ────────────────────────────────────────────────────────────────────────────
// ComparisonPanelELI5 — same viewBox (600x320). Picture-book metaphors:
// onprem → your house, your computer
// cloud → cloud (rented), full of peeking eyes
// tee → cloud (rented), with a sealed safe inside; eyes crossed out
// ────────────────────────────────────────────────────────────────────────────
function ComparisonPanelELI5({ L, mode, modeLabel }) {
const isOnPrem = mode === "onprem";
const isCloud = mode === "cloud";
const isTEE = mode === "tee";
return (
);
}
// ────────────────────────────────────────────────────────────────────────────
// AttestationFlowELI5 — same 4 steps, plain language, no vendor names.
// Same viewBox so the LvlStack swap is height-stable.
// ────────────────────────────────────────────────────────────────────────────
function AttestationFlowELI5({ L }) {
const [step, setStep] = React.useState(0);
const [auto, setAuto] = React.useState(true);
React.useEffect(() => {
if (!auto) return;
const t = setInterval(() => setStep(s => (s + 1) % 5), 2400);
return () => clearInterval(t);
}, [auto]);
const onPick = (i) => { setAuto(false); setStep(i); };
const isActive = (i) => step === i;
const isPast = (i) => step >= i;
return (
4 STEPS
{[1, 2, 3, 4].map(i => (
))}
);
}
window.ComparisonPanelELI5 = ComparisonPanelELI5;
window.AttestationFlowELI5 = AttestationFlowELI5;