// ───────────────────────────────────────────────────────────── // views.jsx — UI views for the diagnóstico // Inicio · Encuesta · Resultados · Gracias // ───────────────────────────────────────────────────────────── const { useState, useEffect, useRef, useMemo } = React; // ═════════ MINI RADAR (SVG, used in inicio preview) ═════════ function MiniRadar({ values, labels, color = "#009aba" }) { const cx = 240, cy = 190, r = 130; const n = values.length; const angle = (i) => -Math.PI/2 + i * (2*Math.PI/n); const ringPts = (v) => Array.from({length:n}, (_,i) => { const a = angle(i); const rr = (v/4)*r; return `${cx + Math.cos(a)*rr},${cy + Math.sin(a)*rr}`; }).join(' '); const valPts = values.map((v,i) => { const a = angle(i); const rr = (v/4)*r; return `${cx + Math.cos(a)*rr},${cy + Math.sin(a)*rr}`; }).join(' '); return ( {[1,2,3,4].map(v => ( ))} {labels.map((_,i) => { const a = angle(i); return ; })} {values.map((v,i) => { const a = angle(i); const rr = (v/4)*r; return ; })} {labels.map((lbl,i) => { const a = angle(i); const rr = r + 22; const x = cx + Math.cos(a)*rr, y = cy + Math.sin(a)*rr; const anchor = Math.abs(Math.cos(a)) < 0.2 ? 'middle' : Math.cos(a) > 0 ? 'start' : 'end'; return {lbl}; })} ); } window.MiniRadar = MiniRadar; // ═════════ INICIO ═════════ function Inicio({ onStart }) { const previewValues = [3.2, 2.6, 2.1, 2.4, 1.8, 2.9]; const previewLabels = AREAS.map(a => a.corto); return (
DIAGNÓSTICO · 36 AFIRMACIONES · 6 EJES

Madurez en Talento
Humano.

Un instrumento diseñado para que equipos directivos entiendan en qué nivel está la gestión de personas en su empresa y dónde priorizar los próximos 90 días.

8 minutos · Sin registro inicial
Tiempo
8min
Formato
PDF
Costo
Gratis
Vista previa del informe

Tu mapa de madurez por área

{previewLabels.map((l,i) => (
{l} {previewValues[i].toFixed(1)}/4.0
))}
{/* MÉTODO */}
01

Responde con honestidad

36 afirmaciones agrupadas en 6 ejes. Te toma 8 minutos. Califica cada una según cómo está la empresa hoy, no como te gustaría que fuera.

02

Recibe tu informe en PDF

Un análisis narrativo por cada área, tu nivel global de madurez y un set de acciones priorizadas para los próximos 90 días.

03

Conversa, si tiene sentido

Si quieres profundizar en alguno de los resultados, conversemos. Te acompañamos a convertir el diagnóstico en un plan real.

{/* ÁREAS EVALUADAS */}
Ejes que vamos a medir

Las 6 áreas que definen la madurez de la gestión humana.

{AREAS.map((a, i) => (
EJE {String(i+1).padStart(2,'0')} · 6 afirmaciones

{a.nombre}

{a.descripcion}

))}
¿Listo para empezar?

Descubre en qué nivel está tu gestión humana hoy.

8 minutos · 36 afirmaciones · Sin registro inicial
); } window.Inicio = Inicio; // ═════════ ENCUESTA ═════════ function Encuesta({ areaIdx, respuestas, onAnswer, onNext, onPrev }) { const area = AREAS[areaIdx]; const totalAreas = AREAS.length; const [showAlert, setShowAlert] = useState(false); // count answered in this area const answeredInArea = Array.from({length:6}).filter((_,i) => respuestas[`${areaIdx}_${i}`]).length; const allAnswered = answeredInArea === 6; function handleNext() { if (!allAnswered) { setShowAlert(true); return; } setShowAlert(false); onNext(); } function handleAnswer(qIdx, value) { setShowAlert(false); onAnswer(`${areaIdx}_${qIdx}`, value); } const isLast = areaIdx === totalAreas - 1; return (
EJE {String(areaIdx+1).padStart(2,'0')} DE {String(totalAreas).padStart(2,'0')}

{area.nombre}

{area.descripcion}
Progreso del eje
{answeredInArea}/6
{/* Scale legend */}
Califica cada afirmación según el estado real de tu empresa hoy
{OPCIONES.map(op => (
{op.codigo} {op.texto}
))}
{/* Afirmaciones */}
{area.afirmaciones.map((af, i) => { const key = `${areaIdx}_${i}`; const selected = respuestas[key]; return (
{String(areaIdx*6 + i + 1).padStart(2,'0')}
{af}
{OPCIONES.map(op => ( ))}
); })}
{areaIdx > 0 ? : }
{showAlert && (
Por favor responde las {6 - answeredInArea} afirmaciones restantes antes de continuar.
)}
); } window.Encuesta = Encuesta; // ═════════ RESULTADOS ═════════ // Chart.js radar rendered into a canvas via ref function ResultRadar({ values, labels }) { const canvasRef = useRef(null); const chartRef = useRef(null); useEffect(() => { if (!canvasRef.current) return; if (chartRef.current) chartRef.current.destroy(); chartRef.current = new Chart(canvasRef.current, { type: 'radar', data: { labels, datasets: [{ label: 'Tu empresa', data: values, backgroundColor: 'rgba(0,154,186,0.18)', borderColor: '#009aba', borderWidth: 2.5, pointBackgroundColor: '#009aba', pointBorderColor: '#0c3c5b', pointBorderWidth: 1.5, pointRadius: 5, pointHoverRadius: 7, }] }, options: { responsive: true, maintainAspectRatio: true, animation: { duration: 900, easing: 'easeOutCubic' }, scales: { r: { min: 0, max: 4, ticks: { stepSize: 1, display: false, backdropColor: 'transparent' }, pointLabels: { font: { size: 12, family: 'Be Vietnam Pro', weight: '500' }, color: 'rgba(255,255,255,0.85)', padding: 8, }, grid: { color: 'rgba(255,255,255,0.08)' }, angleLines: { color: 'rgba(255,255,255,0.08)' }, } }, plugins: { legend: { display: false }, tooltip: { enabled: false } } } }); return () => chartRef.current && chartRef.current.destroy(); }, [JSON.stringify(values), JSON.stringify(labels)]); return ; } function Resultados({ resultados, onSubmit, leadFormError, isSubmitting }) { const nivelGlobal = resultados.global; const nivelData = NIVELES[nivelGlobal - 1]; const radarValues = AREAS.map((_, i) => resultados[i+1].promedio); const radarLabels = AREAS.map(a => a.corto); const [form, setForm] = useState({ nombre: '', empresa: '', cargo: '', email: '' }); function handleSubmit(e) { e.preventDefault(); onSubmit(form); } // Ordered areas by score asc for prioritized recs (where to focus) const ordered = AREAS.map((a, i) => ({ ...a, ...resultados[i+1] })) .sort((a,b) => a.promedio - b.promedio); const focoArea = ordered[0]; // lowest return (
{/* HERO RESULT */}
Tu nivel global de madurez

{nivelData.nombre}.

{nivelData.mensaje}

Puntaje global
{resultados.globalProm.toFixed(2)} / 4.00
Foco prioritario
{focoArea.corto}
{/* AREAS RESULTS LIST */}
Resultados por eje

Cómo se distribuye la madurez en cada área.

{AREAS.map((a, i) => { const r = resultados[i+1]; const nivel = NIVELES[r.nivel - 1]; const fillPct = (r.promedio / 4) * 100; return (
{a.nombre} EJE {String(i+1).padStart(2,'0')}
{r.promedio.toFixed(2)}/4
{nivel.nombre}
); })}
{/* LOCKED PREVIEW + LEAD FORM */}
Próximo paso

Tu informe completo te está esperando.

Acabas de ver el resumen. El informe completo en PDF incluye el análisis detallado de cada uno de los 6 ejes con acciones priorizadas para empezar a actuar la próxima semana.

  • Diagnóstico narrativo personalizado para cada eje, escrito por consultoras de Alfa Psicología.
  • 4 acciones priorizadas por área, accionables en los próximos 90 días.
  • Mapa visual de madurez con tu posición en cada eje.
  • Plan de foco prioritario basado en tus resultados.
Recibe tu informe

Déjanos tus datos.

setForm({...form, nombre: e.target.value})} placeholder="Cómo te llamas"/>
setForm({...form, empresa: e.target.value})} placeholder="Tu organización"/>
setForm({...form, cargo: e.target.value})} placeholder="Tu rol"/>
setForm({...form, email: e.target.value})} placeholder="tu@empresa.com"/>
Confidencial. No compartimos tus datos.
{leadFormError && (
{leadFormError}
)}
); } window.Resultados = Resultados; // ═════════ GRACIAS ═════════ function Gracias({ onRedownload, lead }) { const waUrl = `https://wa.me/573013290047?text=Hola+Diana%2C+acabo+de+descargar+el+diagn%C3%B3stico+de+madurez+en+talento+humano+de+Alfa+Psicolog%C3%ADa+y+me+gustar%C3%ADa+conversar+sobre+los+resultados+de+mi+empresa.`; return (

Tu informe está listo, {lead?.nombre?.split(' ')[0] || ''}.

Si la descarga no comenzó automáticamente, haz clic en el botón. Te lo enviamos también al correo que registraste para que lo tengas a la mano.

Ya tengo mi informe
HABLEMOS

¿Quieres profundizar en tus resultados?

Soy Diana Carolina Villegas, directora comercial de Alfa Psicología. Si los resultados resonaron con lo que estás viviendo, agendemos una conversación. Sin venta dura: Escuchamos tu contexto y te decimos honestamente por dónde te conviene empezar.

WHATSAPP / MÓVIL
+57 301 329 0047
LÍNEA NACIONAL
01 8000 423 803
CORREO
hablemos@alfapsicologia.com
SITIO WEB
www.alfapsicologia.com
); } window.Gracias = Gracias;