diff --git a/src/components/asignaturas/wizard/PasoBasicosForm.tsx b/src/components/asignaturas/wizard/PasoBasicosForm.tsx new file mode 100644 index 0000000..4fdeacf --- /dev/null +++ b/src/components/asignaturas/wizard/PasoBasicosForm.tsx @@ -0,0 +1,155 @@ +import type { + NewSubjectWizardState, + TipoAsignatura, +} from '@/features/asignaturas/new/types' + +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' +import { + ESTRUCTURAS_SEP, + TIPOS_MATERIA, +} from '@/features/asignaturas/new/catalogs' + +export function PasoBasicosForm({ + wizard, + onChange, +}: { + wizard: NewSubjectWizardState + onChange: React.Dispatch> +}) { + return ( +
+
+ + + onChange((w) => ({ + ...w, + datosBasicos: { ...w.datosBasicos, nombre: e.target.value }, + })) + } + /> +
+ +
+ + + onChange((w) => ({ + ...w, + datosBasicos: { ...w.datosBasicos, clave: e.target.value }, + })) + } + /> +
+ +
+ + +
+ +
+ + + onChange((w) => ({ + ...w, + datosBasicos: { + ...w.datosBasicos, + creditos: Number(e.target.value || 0), + }, + })) + } + /> +
+ +
+ + + onChange((w) => ({ + ...w, + datosBasicos: { + ...w.datosBasicos, + horasSemana: Number(e.target.value || 0), + }, + })) + } + /> +
+ +
+ + +

+ Define los campos requeridos (ej. Objetivos, Temario, Evaluación). +

+
+
+ ) +} diff --git a/src/components/asignaturas/wizard/PasoConfiguracionPanel.tsx b/src/components/asignaturas/wizard/PasoConfiguracionPanel.tsx new file mode 100644 index 0000000..947869d --- /dev/null +++ b/src/components/asignaturas/wizard/PasoConfiguracionPanel.tsx @@ -0,0 +1,286 @@ +import * as Icons from 'lucide-react' + +import type { NewSubjectWizardState } from '@/features/asignaturas/new/types' + +import { Button } from '@/components/ui/button' +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' +import { Textarea } from '@/components/ui/textarea' +import { + ARCHIVOS_SISTEMA_MOCK, + FACULTADES, + MATERIAS_MOCK, + PLANES_MOCK, +} from '@/features/asignaturas/new/catalogs' + +export function PasoConfiguracionPanel({ + wizard, + onChange, + onGenerarIA, +}: { + wizard: NewSubjectWizardState + onChange: React.Dispatch> + onGenerarIA: () => void +}) { + if (wizard.modoCreacion === 'MANUAL') { + return ( + + + Configuración Manual + + La asignatura se creará vacía. Podrás editar el contenido detallado + en la siguiente pantalla. + + + + ) + } + + if (wizard.modoCreacion === 'IA') { + return ( +
+
+ +