function Coverage() { const D = (window.SITE && window.SITE.coverage) || {}; const settings = (window.SITE && window.SITE.settings) || {}; const REGIONS = D.regions || []; const STATES_WITHOUT = D.statesWithout || []; const KPIS = D.kpis || []; const totalClients = REGIONS.reduce((s, r) => s + (r.states || []).reduce((s2, st) => s2 + (st.clients || 0), 0), 0) || 1; const maxClients = Math.max(1, ...REGIONS.flatMap(r => (r.states || []).map(s => s.clients || 0))); // Tamanho de bloco por UF: proporcional a sqrt(clients)/sqrt(max) → 32..88 const blockSize = (n) => { const min = 32, max = 88; const k = Math.sqrt(n) / Math.sqrt(maxClients); return Math.round(min + (max - min) * k); }; return (
{D.eyebrow}

{D.title} {D.titleAccent}

{D.subtitle}

{/* KPI strip */}
{KPIS.map((k, i) => (
{k.v}
{k.l}
{k.sub}
))}
{/* Visualização principal */}
{D.legendTitle || 'Distribuição por região · tamanho do bloco proporcional ao volume de clientes'}
sede com clientes cobertura remota
{REGIONS.map((region) => { const regionTotal = (region.states || []).reduce((s, st) => s + (st.clients || 0), 0); const regionPct = ((regionTotal / totalClients) * 100).toFixed(1); return (
{region.code}
{region.name}
{regionTotal.toLocaleString('pt-BR')} clientes · {regionPct}%
{(region.states || []).map((st) => { const size = blockSize(st.clients || 1); const isHQ = st.hq; return (
e.currentTarget.style.transform = 'translateY(-2px)'} onMouseLeave={(e) => e.currentTarget.style.transform = 'translateY(0)'}>
{st.uf}
{st.clients}{(st.clients || 0) < 100 ? '+' : ''}
{isHQ && (
SEDE
)}
{st.label}
); })}
); })}
{STATES_WITHOUT.length > 0 && (
{D.remoteLabel || 'Cobertura remota'}
{D.remoteSub || 'Atendemos também'}
{STATES_WITHOUT.length} UFs · sob demanda
{STATES_WITHOUT.map((uf) => ( {uf} ))}
)}
{/* Closing band */} {(D.ctaTitle || D.ctaText) && (
{D.ctaTitle}
{D.ctaText}
{D.ctaLabel || 'Falar com a SOSSEG'}
)}
); } window.Coverage = Coverage;