import { RefreshCw, Sparkles } from 'lucide-react' import type { NewSubjectWizardState } from '@/features/asignaturas/nueva/types' import type { Dispatch, SetStateAction } from 'react' import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/checkbox' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { cn } from '@/lib/utils' // Interfaces interface Suggestion { id: string nombre: string tipo: 'Obligatoria' | 'Optativa' creditos: number horasAcademicas: number horasIndependientes: number descripcion: string } // Datos Mock basados en tu imagen const MOCK_SUGGESTIONS: Array = [ { id: '1', nombre: 'Propiedad Intelectual en Entornos Digitales', tipo: 'Optativa', creditos: 4, horasAcademicas: 32, horasIndependientes: 16, descripcion: 'Derechos de autor, patentes de software y marcas en el ecosistema digital.', }, { id: '2', nombre: 'Derecho Constitucional Digital', tipo: 'Obligatoria', creditos: 8, horasAcademicas: 64, horasIndependientes: 32, descripcion: 'Marco constitucional aplicado al entorno digital y derechos fundamentales en línea.', }, { id: '3', nombre: 'Gobernanza de Internet', tipo: 'Optativa', creditos: 4, horasAcademicas: 32, horasIndependientes: 16, descripcion: 'Políticas públicas, regulación internacional y gobernanza del ecosistema digital.', }, { id: '4', nombre: 'Protección de Datos Personales', tipo: 'Obligatoria', creditos: 6, horasAcademicas: 48, horasIndependientes: 24, descripcion: 'Regulación y cumplimiento de leyes de protección de datos (GDPR, LFPDPPP).', }, { id: '5', nombre: 'Inteligencia Artificial y Ética Jurídica', tipo: 'Optativa', creditos: 4, horasAcademicas: 32, horasIndependientes: 16, descripcion: 'Implicaciones legales y éticas del uso de IA en la práctica jurídica.', }, { id: '6', nombre: 'Ciberseguridad y Derecho Penal', tipo: 'Obligatoria', creditos: 6, horasAcademicas: 48, horasIndependientes: 24, descripcion: 'Delitos informáticos, evidencia digital y marco penal en el ciberespacio.', }, ] export default function PasoSugerenciasForm({ wizard, onChange, }: { wizard: NewSubjectWizardState onChange: Dispatch> }) { const selectedIds = wizard.iaMultiple?.selectedIds ?? [] const ciclo = wizard.iaMultiple?.ciclo ?? '' const enfoque = wizard.iaMultiple?.enfoque ?? '' const setIaMultiple = ( patch: Partial>, ) => onChange((w) => ({ ...w, iaMultiple: { ciclo: w.iaMultiple?.ciclo ?? '', enfoque: w.iaMultiple?.enfoque ?? '', selectedIds: w.iaMultiple?.selectedIds ?? [], ...patch, }, })) const toggleAsignatura = (id: string, checked: boolean) => { const prev = selectedIds const next = checked ? [...prev, id] : prev.filter((x) => x !== id) setIaMultiple({ selectedIds: next }) } return (
{/* --- BLOQUE SUPERIOR: PARÁMETROS --- */}
Parámetros de sugerencia
{/* Input Ciclo */}
setIaMultiple({ ciclo: e.target.value })} />
{/* Input Enfoque */}
setIaMultiple({ enfoque: e.target.value })} />
{/* Botón Refrescar */}
{/* --- HEADER LISTA --- */}

Asignaturas sugeridas

Basadas en el plan "Licenciatura en Derecho Digital"

{selectedIds.length} seleccionadas
{/* --- LISTA DE ASIGNATURAS (CON EL ESTILO PEDIDO) --- */}
{MOCK_SUGGESTIONS.map((asignatura) => { const isSelected = selectedIds.includes(asignatura.id) return ( ) })}
) }