import React, { useState, useMemo } from ‘react’;
import {
RadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar, ResponsiveContainer, Tooltip
} from ‘recharts’;
import {
Settings, Users, TrendingUp, AlertTriangle, CheckCircle,
Brain, Zap, ShieldAlert, Monitor, BookOpen, Target, Database
} from ‘lucide-react’;
// — LÓGICA DEL SIMULADOR —
// Componentes del Proyecto (Características clicables)
const features = [
{ id: ‘hardware’, label: ‘Hardware Masivo’, icon: Monitor, sub: ‘Tablets para todos (1:1)’, cost: ‘Alto’ },
{ id: ‘software’, label: ‘Licencias IA’, icon: Brain, sub: ‘Tutoría Adaptativa’, cost: ‘Medio’ },
{ id: ‘training’, label: ‘Formación Docente’, icon: Users, sub: ‘Soberanía Metodológica’, cost: ‘Bajo’ },
{ id: ‘bureaucracy’, label: ‘Anti-Burocracia’, icon: Zap, sub: ‘Automatización Admin’, cost: ‘Nulo’ },
{ id: ‘rag’, label: ‘IA Soberana (RAG)’, icon: Database, sub: ‘Solo Currículo Oficial CV’, cost: ‘Bajo’ },
];
// Casos de Estudio Reales y Proyectados
const referenceCases = {
technocratic: {
name: “Modelo ‘Corea del Sur’ (2025)”,
status: ‘risk’,
matchCondition: (f: any) => f.hardware && f.software && !f.training,
description: “La tecnología masiva sin pedagogía generó rechazo social y huelgas. El rendimiento cayó por distracción digital.”,
stats: { pisa: 430, wellness: 20, equity: 40 }
},
balanced: {
name: “Modelo ‘Iowa / UK’ (Éxito)”,
status: ‘success’,
matchCondition: (f: any) => f.software && f.training && !f.rag,
description: “Soberanía Metodológica: IA para ‘fuerza bruta cognitiva’ + Docente como mentor humano. Buen cierre de brechas.”,
stats: { pisa: 520, wellness: 90, equity: 85 }
},
pioneer: {
name: “Modelo ‘Faro Europeo’ (Valenciano)”,
status: ‘pioneer’, // Nuevo estado superlativo
matchCondition: (f: any) => f.software && f.training && f.rag,
description: “INNOVACIÓN ÚNICA: La IA no ‘alucina’, consulta exclusivamente el currículo oficial valenciano (RAG). Máxima precisión PISA y seguridad.”,
stats: { pisa: 555, wellness: 95, equity: 99 }
},
minimal: {
name: “Tendencia ‘Laissez-faire’ (OCDE)”,
status: ‘warning’,
matchCondition: (f: any) => !f.training && !f.software,
description: “La inercia actual. El uso de pantallas para ocio en clase resta 0.75 años de aprendizaje. Estancamiento PISA.”,
stats: { pisa: 450, wellness: 50, equity: 50 }
}
};
const Dashboard = () => {
// Estado inicial
const [activeFeatures, setActiveFeatures] = useState({
hardware: true,
software: true,
training: true,
bureaucracy: true,
rag: false // Por defecto desactivado para que tú lo actives en la demo
});
// Cálculo Dinámico
const metrics = useMemo(() => {
let pisaScore = 450;
let teacherWellness = 50;
let equityGap = 50;
// Impacto Hardware
if (activeFeatures.hardware) {
if (!activeFeatures.training) { pisaScore -= 20; teacherWellness -= 25; }
else { pisaScore += 5; }
}
// Impacto Software IA
if (activeFeatures.software) {
if (activeFeatures.training) {
pisaScore += 45;
equityGap += 35;
} else {
pisaScore += 5;
teacherWellness -= 30;
equityGap -= 15;
}
}
// Impacto Formación
if (activeFeatures.training) {
pisaScore += 10;
teacherWellness += 35;
}
// Impacto Burocracia
if (activeFeatures.bureaucracy) {
teacherWellness += 25;
}
// IMPACTO DEL DIFERENCIADOR (RAG)
if (activeFeatures.rag) {
if (activeFeatures.software) {
pisaScore += 35; // Gran salto en precisión
equityGap += 15; // Alineación cultural total
teacherWellness += 10; // Confianza en que la IA no se equivoca
}
}
return {
pisa: Math.min(600, Math.max(300, pisaScore)), // Aumentamos el techo para el modelo Faro
wellness: Math.min(100, Math.max(0, teacherWellness)),
equity: Math.min(100, Math.max(0, equityGap))
};
}, [activeFeatures]);
// Determinar Caso
const currentCase = useMemo(() => {
if (referenceCases.pioneer.matchCondition(activeFeatures)) return referenceCases.pioneer;
if (referenceCases.technocratic.matchCondition(activeFeatures)) return referenceCases.technocratic;
if (referenceCases.balanced.matchCondition(activeFeatures)) return referenceCases.balanced;
return referenceCases.minimal;
}, [activeFeatures]);
// Datos Gráfico Radar
const radarData = [
{ subject: ‘Excelencia (PISA)’, A: metrics.pisa / 6, fullMark: 100 }, // Ajuste de escala
{ subject: ‘Bienestar Docente’, A: metrics.wellness, fullMark: 100 },
{ subject: ‘Soberanía/Equidad’, A: metrics.equity, fullMark: 100 },
];
const toggleFeature = (id: string) => {
setActiveFeatures((prev: any) => ({ …prev, [id]: !prev[id] }));
};
return (
{/* HEADER ULTRA COMPACTO */}
SIMULADOR ESTRATÉGICO CEFIRE
Escenario: Integración IA en C. Valenciana
OBJETIVO: PILOTO 2025
{/* GRID PRINCIPAL */}
{/* COL 1: PALANCAS DE DECISIÓN (INPUTS) */}
Configuración
))}
{activeFeatures.hardware ? ‘Alta (€€€)’ : activeFeatures.software ? ‘Media (€€)’ : ‘Baja (€)’}
{/* COL 2: VISUALIZACIÓN DE IMPACTO (CENTER) */}
540 ? ‘text-indigo-400’ : metrics.pisa > 480 ? ‘text-green-400’ : metrics.pisa < 440 ? 'text-red-400' : 'text-yellow-400'}`}>
{metrics.pisa.toFixed(0)}
Obj: 500+
60 ? ‘text-purple-400’ : ‘text-red-400’}`}>
{metrics.wellness.toFixed(0)}%
Clima Aula
90 ? ‘text-indigo-400’ : metrics.equity > 70 ? ‘text-blue-400’ : ‘text-orange-400’}`}>
{metrics.equity.toFixed(0)}
Brecha 0-100
{/* RADAR CHART – Grande */}
Proyección de Impacto
{/* COL 3: PREDICCIÓN Y EVIDENCIA (RIGHT) */}
Predicción Basada en Evidencia
{currentCase.status === ‘risk’ && ALERTA}
{currentCase.status === ‘success’ && ÓPTIMO}
{currentCase.status === ‘pioneer’ && VISIONARIO}
{currentCase.status === ‘pioneer’ ?
currentCase.status === ‘success’ ?
currentCase.status === ‘risk’ ?
{currentCase.name}
“{currentCase.description}”
);
};
export default Dashboard;