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 (