Komponenter
Skjema
Nytt blessed skjemasystem øverst; primitivene under.
Submit-gate (useSubmitGate + SubmitGateBanner)
Erstatter «deaktivert knapp + ivrige feil». Knappen er alltid aktiv: valider på klikk, avslør problemene, og før brukeren til dem. Ingen feil vises før første klikk; deretter re-valideres det live når feltene rettes. To problemtyper: målrettet (har et DOM-anker — felt, avkrysning) avsløres på plass, og siden ruller + fokuserer det første uløste; samling (uten anker, «velg minst én øvelse») vises som en enkeltsetning i et Card variant="critical" øverst (role="alert") som siden ruller til. Feilene deler samme error-røde farge — kort, feltfeil og avkrysning — så de leser som én ting. Prøv: klikk «Fortsett» med tomt skjema. Rullingen kompenserer for navbaren (som glir inn ved oppoverscroll) via scrollOffset.
FormField + FormFieldGroup
16px semibold etikett, «– valgfritt»-markør, feilmelding og seksjonsrytme. Kontrollen sendes inn som children.
Ugyldig e-postadresse
Textarea
Flerlinjet tekstfelt. Full bredde, roomy, med in-field kryss (kryss øverst til høyre) når «clearable». Samme konvensjoner som blessed Input (rounded-xl, 16px tekst, fokusring). «Lagret» under feltet er wiring-nivå (ikke del av primitivet) — dukker opp rett etter du slutter å skrive og toner sakte ut. Reservert plass, så innholdet under hopper ikke.
ClearButton
Delt kryss-knapp (×) for å tømme/lukke. Ekte «button» med aria-label, cursor-pointer og fokusring. Brukes i Input, Textarea, combobox og arrangørkortet — endre effekten ett sted. Klikk gir en liten skalering (active:scale-90); combobox-varianten fyller en sirkel på hover.
Combobox v2
Ny isolert combobox (shadcn-API på Radix Popover + cmdk). Mobil-først: én forankret popover på alle skjermer, høyden krymper over tastaturet. Test på iPhone Safari.
Rå shadcn-kontroller. Wrap disse i FormField over tid.
Dette feltet er ugyldig