Custom Wizard From Headless Kit
Use this pattern when:
- built-in wizard visuals are not enough
- navigation must match an existing product shell
- steps need app-specific chrome
const view = createFormView({ transport, schema, layout: { kind: "wizard", steps: [ { title: "Profile", children: [{ kind: "field", field: "name" }] }, { title: "Review", children: [{ kind: "field", field: "email" }] }, ], },});
view.subscribe((snapshot) => render(snapshot));Host actions:
- previous button ->
view.prevStep() - next button ->
await view.nextStep() - final submit ->
await view.submit()
Keep the layout config the same if you later switch to mountWizardForm().