// Contact.jsx — Kontaktformular section (Dark Ink stage)
function Field({ label, type='text', value='', placeholder, required, error, success, disabled, onChange, name, autoComplete, id }) {
const reactId = React.useId ? React.useId() : null;
const fieldId = id || reactId || `field-${(name || label || 'x').replace(/\W+/g,'-').toLowerCase()}`;
const [focused, setFocused] = React.useState(false);
const lineColor = error ? 'var(--accent-trauerfall)' : success ? 'var(--color-success)' : focused ? 'var(--brand-accent)' : 'var(--line)';
return (
{type === 'textarea' ? (
);
}
function Button({ variant='primary', children, onClick, type='button' }) {
const [hover, setHover] = React.useState(false);
const base = {
display:'inline-flex', alignItems:'center', gap:10,
font:'500 11px/1 var(--f-body)', letterSpacing:'var(--ls-caps)', textTransform:'uppercase',
padding:'14px 26px', cursor:'pointer', border:0,
transition:'background .18s, color .18s, border-color .18s',
textDecoration:'none',
};
const styles = {
primary: { ...base, background: hover ? 'var(--brand-accent-ink)' : 'var(--brand-accent)', color:'var(--surface)', border: hover ? '2px solid var(--brand-accent-ink)' : '2px solid var(--brand-accent)', padding:'14px 26px' },
ghost: { ...base, background:'transparent', color:'var(--ink-900)', border: hover ? '1px solid var(--ink-900)' : '1px solid var(--ink-200)', padding:'13px 26px' },
link: { ...base, background:'transparent', color:'var(--brand-accent)', padding:'14px 0', borderBottom:'1px solid var(--brand-accent)' },
};
return (
);
}
function ContactSection() {
const [form, setForm] = React.useState({ name:'', tel:'', message:'' });
const [sent, setSent] = React.useState(false);
const upd = (k,v) => setForm(f => ({ ...f, [k]:v }));
const submit = e => {
e.preventDefault();
if (!form.name) return;
setSent(true);
};
return (
Kontakt
Sie haben Fragen?
Nehmen Sie Kontakt mit uns auf. Wir sind jederzeit für Sie da — Tag und Nacht.
— persönlich
kontakt@tschense-bestattungen.de
);
}
Object.assign(window, { Field, Button, ContactSection });