{
"version": "1",
"form": {
"name": "Registration",
"type": "form",
"props": {},
"components": [
{
"name": "wizard",
"type": "Wizard",
"props": {
"validateOnNext": true,
"validateOnFinish": true,
"showSteps": true,
"showStepsLabels": true,
"nextButtonLabel": "Next →",
"previousButtonLabel": "← Back",
"finishButtonLabel": "Create Account"
},
"components": [
{
"name": "step1",
"type": "WizardStep",
"props": { "label": "Personal Info" },
"components": [
{
"name": "firstName",
"type": "Input",
"props": {
"label": "First name",
"required": true
},
"validations": [
{ "type": "required", "message": "First name is required" }
]
},
{
"name": "lastName",
"type": "Input",
"props": {
"label": "Last name",
"required": true
},
"validations": [
{ "type": "required", "message": "Last name is required" }
]
},
{
"name": "accountType",
"type": "Dropdown",
"props": {
"label": "Account type",
"required": true,
"data": [
{ "label": "Personal", "value": "personal" },
{ "label": "Business", "value": "business" }
]
},
"validations": [
{ "type": "required", "message": "Select an account type" }
]
},
{
"name": "companyName",
"type": "Input",
"props": {
"label": "Company name",
"required": true
},
"renderWhen": "form.data.accountType === 'business'",
"validations": [
{ "type": "required", "message": "Company name is required for business accounts" }
]
}
]
},
{
"name": "step2",
"type": "WizardStep",
"props": { "label": "Account Setup" },
"components": [
{
"name": "email",
"type": "Input",
"props": {
"label": "Email address",
"required": true
},
"validations": [
{ "type": "required", "message": "Email is required" },
{ "type": "email", "message": "Enter a valid email address" }
]
},
{
"name": "password",
"type": "Input",
"props": {
"label": "Password",
"type": "password",
"required": true
},
"validations": [
{ "type": "required", "message": "Password is required" },
{ "type": "minLength", "value": 8, "message": "Password must be at least 8 characters" }
]
}
]
},
{
"name": "step3",
"type": "WizardStep",
"props": { "label": "Confirm" },
"components": [
{
"name": "confirmHeader",
"type": "Header",
"props": {
"text": "Review your details before creating your account."
}
},
{
"name": "termsCheckbox",
"type": "Checkbox",
"props": {
"label": "I agree to the Terms of Service",
"required": true
},
"validations": [
{ "type": "required", "message": "You must accept the terms to continue" }
]
}
]
}
]
}
]
}
}