// diag-steps.jsx — Pantallas del flujo: Intro, EjeStep, MetasStep, DatosStep. const CheckIcon = () => ( ); function EjeFloaters({ ejeKey }) { const inner = window.DIAG_EJE_ICONS[ejeKey] || ''; const spots = [ { top: '4%', left: '6%', size: 30, dur: '7s', delay: '0s', op: 0.10 }, { top: '20%', left: '90%', size: 22, dur: '9s', delay: '-2s', op: 0.08 }, { top: '64%', left: '3%', size: 26, dur: '8s', delay: '-4s', op: 0.07 }, { top: '82%', left: '84%', size: 34, dur: '10s', delay: '-1s', op: 0.09 }, { top: '46%', left: '50%', size: 18, dur: '11s', delay: '-3s', op: 0.05 }, ]; return ( ); } function ejeBgSrc(key) { const map = { enfoque: window.NL_ENFOQUE_BG || 'assets/enfoque-bg-web.jpg', integracion: window.NL_INTEGRACION_BG || 'assets/integracion-bg-web.jpg', }; return map[key] || ''; } /* ------------------------------------------------------------------ INTRO */ function Intro({ onStart }) { return (
Diagnóstico · The Next Level 360

¿En qué nivel
estás hoy ?

Un diagnóstico honesto de los 8 ejes de The Next Level 360. Responde 40 afirmaciones, define a dónde quieres llegar y recibe tu mapa de partida con el curso recomendado para tu siguiente nivel.

8
Ejes
40
Afirmaciones
±6
Minutos
); } /* --------------------------------------------------------------- EJE STEP */ function EjeStep({ eje, idx, total, answers, onAnswer, onPrev, onNext, hintMissing }) { const vals = answers[eje.key] || []; const done = vals.filter(v => typeof v === 'number').length; const allDone = done === eje.q.length; return (
{eje.bg && (
); } /* ----------------------------------------------------------------- METAS */ function MetaSlider({ score, value, onChange }) { const curPct = (score.current / 5) * 100; const tgtPct = (value / 5) * 100; return (
{score.n} {score.name} Hoy estás en {score.current.toFixed(1)}
{value}
onChange(score.key, Number(e.target.value))} />
1 · Punto de partida2345 · Imparable
); } function MetasStep({ scores, targets, onChange, onPrev, onNext }) { return (
Paso final · Tu siguiente nivel

¿Cuál es tu
siguiente nivel?

Esta es la otra mitad del mapa. Mueve cada control hasta el nivel al que quieres llegar en los próximos meses. La marca clara muestra dónde estás hoy.

{scores.map(s => ( ))}
); } /* ----------------------------------------------------------------- DATOS */ function DatosStep({ data, set, onPrev, onSubmit }) { const [touched, setTouched] = React.useState(false); const emailOk = /^\S+@\S+\.\S+$/.test(data.email); const phoneOk = data.telefono.replace(/\D/g, '').length >= 8; const nameOk = data.nombre.trim().length > 1; const errs = { nombre: touched && !nameOk, email: touched && !emailOk, telefono: touched && !phoneOk, }; const go = () => { setTouched(true); if (nameOk && emailOk && phoneOk) onSubmit(); else { const el = document.querySelector('.dfield.err input'); if (el) el.focus(); } }; return (
Casi listo

¿A dónde te
enviamos tu diagnóstico?

Recibirás tu mapa de los 8 ejes y tu curso recomendado por WhatsApp y correo.

set('nombre', e.target.value)} /> {errs.nombre ? 'Escribe tu nombre' : ''}
set('telefono', e.target.value)} /> {errs.telefono ? 'Incluye lada + número' : ''}
set('email', e.target.value)} /> {errs.email ? 'Correo inválido' : ''}
Tus datos son confidenciales · solo se usan para enviarte tu resultado.
); } Object.assign(window, { Intro, EjeStep, MetasStep, DatosStep });