const { useState, useEffect, useRef } = React;
// ── Costanti ──────────────────────────────────────────────────────────────────
const REFERRAL_OPT = ["Motore di ricerca","Instagram","Facebook","Passaparola","Rivista online","Fiera del turismo","Altro"];
const MESI_IT = ["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"];
const GG_IT = ["Lu","Ma","Me","Gi","Ve","Sa","Do"];
const TYPE_DEFS = [
{ id: "agente", n: "01", label: "Agente", sub: "di viaggio", desc: "Organizzo soggiorni per i miei clienti e cerco partner affidabili in Calabria." },
{ id: "cliente", n: "02", label: "Cliente", sub: "diretto", desc: "Sto pianificando un viaggio in Calabria e voglio informazioni e supporto personalizzato." },
{ id: "partner", n: "03", label: "Partner", sub: "editoriale", desc: "Ho un progetto o un'azienda e voglio collaborare con la rivista Calabria Svelata." },
{ id: "altro", n: "04", label: "Altro", sub: "", desc: "Ho una domanda o una proposta che non rientra nelle categorie precedenti." },
];
// ── Primitivi di form ─────────────────────────────────────────────────────────
function Field({ label, error, children }) {
return (
{label}
{children}
{error &&
{error}
}
);
}
function TextInput({ value, onChange, placeholder, type = "text", error }) {
const style = {
width: "100%", border: "none", outline: "none", background: "transparent",
borderBottom: `1px solid ${error ? "var(--ocra)" : "var(--line)"}`,
fontFamily: "var(--font-display)", fontSize: 17, color: "var(--ink)",
padding: "10px 0", boxSizing: "border-box", transition: "border-color .2s",
};
return (
onChange(e.target.value)}
onFocus={e => { e.target.style.borderBottomColor = "var(--ink)"; }}
onBlur={e => { e.target.style.borderBottomColor = error ? "var(--ocra)" : "var(--line)"; }}
/>
);
}
function SelectInput({ value, onChange, options, placeholder, error }) {
return (
);
}
function TextareaInput({ value, onChange, placeholder, rows = 5, error }) {
return (