'use client'; import * as React from 'react'; import { FormState } from '../types'; import { Checkbox } from '../components/Checkbox'; import { RepeatableList } from '../components/RepeatableList'; import { motion, AnimatePresence } from 'framer-motion'; import { Minus, Plus, FileText, ListPlus, HelpCircle, ArrowRight } from 'lucide-react'; import { Input } from '../components/Input'; interface BaseStepProps { state: FormState; updateState: (updates: Partial) => void; toggleItem: (list: string[], id: string) => string[]; } export function BaseStep({ state, updateState, toggleItem }: BaseStepProps) { const toggleDontKnow = (id: string) => { const current = state.dontKnows || []; if (current.includes(id)) { updateState({ dontKnows: current.filter(i => i !== id) }); } else { updateState({ dontKnows: [...current, id] }); } }; return (
updateState({ websiteTopic: e.target.value })} />
Essenziell

Die Seitenstruktur

Essenziell
Wählen Sie die Bausteine Ihrer neuen Website.
toggleDontKnow('pages')} className={`px-6 py-3 rounded-full text-sm font-bold transition-all whitespace-nowrap shrink-0 ${ state.dontKnows?.includes('pages') ? 'bg-slate-900 text-white' : 'bg-slate-100 text-slate-500 hover:bg-slate-200' }`} > Ich weiß es nicht
{[ { id: 'Home', label: 'Startseite', desc: 'Der erste Eindruck Ihrer Marke.' }, { id: 'About', label: 'Über uns', desc: 'Ihre Geschichte und Ihr Team.' }, { id: 'Services', label: 'Leistungen', desc: 'Übersicht Ihres Angebots.' }, { id: 'Contact', label: 'Kontakt', desc: 'Anlaufstelle für Ihre Kunden.' }, { id: 'Landing', label: 'Landingpage', desc: 'Optimiert für Marketing-Kampagnen.' }, { id: 'Legal', label: 'Rechtliches', desc: 'Impressum & Datenschutz.' }, ].map((opt, index) => ( updateState({ selectedPages: toggleItem(state.selectedPages, opt.id) })} /> ))}

Weitere individuelle Seiten?

updateState({ otherPages: [...state.otherPages, v] })} onRemove={(i) => updateState({ otherPages: state.otherPages.filter((_, idx) => idx !== i) })} placeholder="z.B. Karriere, FAQ, Team-Detail..." />

Noch mehr Seiten?

Falls Sie die Namen noch nicht wissen, aber die Menge schätzen können.

updateState({ otherPagesCount: Math.max(0, state.otherPagesCount - 1) })} className="w-16 h-16 rounded-full bg-white/10 border border-white/10 flex items-center justify-center hover:bg-white/20 transition-colors focus:outline-none" > {state.otherPagesCount} updateState({ otherPagesCount: state.otherPagesCount + 1 })} className="w-16 h-16 rounded-full bg-white/10 border border-white/10 flex items-center justify-center hover:bg-white/20 transition-colors focus:outline-none" >
); }