// EtapesScreen v3 — oval circuit layout const { useState, useEffect, useMemo, useRef } = React; // ── Panneau "Toutes les entreprises" (partagé avec StageDetail) ────────────── function AllCompaniesPanel({ entreprises, onClose, onPick }) { const [enter, setEnter] = useState(false); useEffect(() => { requestAnimationFrame(() => setEnter(true)); }, []); const unique = useMemo(() => { const seen = new Set(); return entreprises .filter(e => { if (seen.has(e.nom)) return false; seen.add(e.nom); return true; }) .sort((a, b) => a.nom.localeCompare(b.nom, 'fr')); }, [entreprises]); return ReactDOM.createPortal(