Declarative Wizard Definitions
Define your wizards using simple, type-safe configurations. No imperative control flow to manage.
Build powerful multi-step forms with confidence

Install the core package:
npm install @gooonzick/wizard-coreFor React, Vue, Svelte or Solid integration:
npm install @gooonzick/wizard-react
# or
npm install @gooonzick/wizard-vue
# or
npm install @gooonzick/wizard-svelte
# or
npm install @gooonzick/wizard-solidimport { createWizard } from "@gooonzick/wizard-core";
type FormData = { name: string; email: string };
const wizard = createWizard<FormData>("signup")
.initialStep("personal-info")
.addStep({
id: "personal-info",
next: { type: "static", to: "contact-info" },
validate: (data) => ({
valid: Boolean(data.name),
errors: data.name ? undefined : { name: "Name is required" },
}),
})
.addStep({
id: "contact-info",
previous: { type: "static", to: "personal-info" },
validate: (data) => ({
valid: Boolean(data.email),
errors: data.email ? undefined : { email: "Email is required" },
}),
})
.build();