wizard

Multi-step forms on validator + former

Three steps — account, profile, review (live)

Check the details, then Finish — former submits.

The rules

  • The route declares 'libs' => ['wizard'] (the lib is per-page, like charts). ONE form with validate wizard former + a former-endpoint; each step is a div[wizard-step] with step-title/step-icon. The lib renders the progress header and the navigation — you author only the fields.
  • Forward validates the CURRENT step (validator); Back is always free. On Finish, former submits — and a server field error belonging to an earlier step JUMPS back to it.
  • A wizard is for flows that genuinely have stages (onboarding, imports); 4–6 fields are just a form.
  • The review step is declarative too: dl[data-wizard-review] fills itself from the answered fields.
  • Docs: templates/app/docs/libs/wizard.md; the harness (vertical layout, events): /tests/wizard.