Skip to content

๐Ÿง™ WizardFormDeclarative, type-safe wizard framework for TypeScript

Build powerful multi-step forms with confidence

WizardForm Logo

Quick Start โ€‹

Install the core package:

bash
npm install @gooonzick/wizard-core

For React, Vue, Svelte or Solid integration:

bash
npm install @gooonzick/wizard-react
# or
npm install @gooonzick/wizard-vue
# or
npm install @gooonzick/wizard-svelte
# or
npm install @gooonzick/wizard-solid

Define Your First Wizard โ€‹

typescript
import { 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();

Next Steps โ€‹

Released under the MIT License.