import * as Icons from 'lucide-react' import type { NewSubjectWizardState } from '@/features/asignaturas/nueva/types' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' export function PasoMetodoCardGroup({ wizard, onChange, }: { wizard: NewSubjectWizardState onChange: React.Dispatch> }) { const isSelected = (modo: NewSubjectWizardState['tipoOrigen']) => wizard.tipoOrigen === modo const handleKeyActivate = (e: React.KeyboardEvent, cb: () => void) => { const key = e.key if ( key === 'Enter' || key === ' ' || key === 'Spacebar' || key === 'Space' ) { e.preventDefault() e.stopPropagation() cb() } } return (
onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'MANUAL', }), ) } role="button" tabIndex={0} > Manual Asignatura vacía con estructura base. onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'IA', }), ) } role="button" tabIndex={0} > Con IA Generar contenido automático. {(wizard.tipoOrigen === 'IA' || wizard.tipoOrigen === 'IA_SIMPLE' || wizard.tipoOrigen === 'IA_MULTIPLE') && (
{ e.stopPropagation() onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'IA_SIMPLE', }), ) }} onKeyDown={(e: React.KeyboardEvent) => handleKeyActivate(e, () => onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'IA_SIMPLE', }), ), ) } className={`hover:border-primary/50 hover:bg-accent flex cursor-pointer items-center gap-4 rounded-lg border p-4 text-left transition-all ${ isSelected('IA_SIMPLE') ? 'bg-primary/5 text-primary ring-primary border-primary ring-1' : 'border-border text-muted-foreground' }`} >
Una asignatura Crear una asignatura con control detallado de metadatos.
{ e.stopPropagation() onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'IA_MULTIPLE', }), ) }} onKeyDown={(e: React.KeyboardEvent) => handleKeyActivate(e, () => onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'IA_MULTIPLE', }), ), ) } className={`hover:border-primary/50 hover:bg-accent flex cursor-pointer items-center gap-4 rounded-lg border p-4 text-left transition-all ${ isSelected('IA_MULTIPLE') ? 'bg-primary/5 text-primary ring-primary border-primary ring-1' : 'border-border text-muted-foreground' }`} >
Varias asignaturas Generar varias asignaturas a partir de sugerencias de la IA.
)}
onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'CLONADO' }), ) } role="button" tabIndex={0} > Clonado De otra asignatura o archivo Word. {(wizard.tipoOrigen === 'CLONADO' || wizard.tipoOrigen === 'CLONADO_INTERNO' || wizard.tipoOrigen === 'CLONADO_TRADICIONAL') && (
{ e.stopPropagation() onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'CLONADO_INTERNO', }), ) }} onKeyDown={(e: React.KeyboardEvent) => handleKeyActivate(e, () => onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'CLONADO_INTERNO', }), ), ) } className={`hover:border-primary/50 hover:bg-accent flex cursor-pointer items-center gap-4 rounded-lg border p-4 text-left transition-all ${ isSelected('CLONADO_INTERNO') ? 'bg-primary/5 text-primary ring-primary border-primary ring-1' : 'border-border text-muted-foreground' }`} >
Del sistema Buscar en otros planes
{ e.stopPropagation() onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'CLONADO_TRADICIONAL', }), ) }} onKeyDown={(e: React.KeyboardEvent) => handleKeyActivate(e, () => onChange( (w): NewSubjectWizardState => ({ ...w, tipoOrigen: 'CLONADO_TRADICIONAL', }), ), ) } className={`hover:border-primary/50 hover:bg-accent flex cursor-pointer items-center gap-4 rounded-lg border p-4 text-left transition-all ${ isSelected('CLONADO_TRADICIONAL') ? 'bg-primary/5 text-primary ring-primary border-primary ring-1' : 'border-border text-muted-foreground' }`} >
Desde archivos Subir Word existente
)}
) }