Skip to content

feat(apollo-vertex): multi-step form wizard and stepper [AGVSOL-4703]#906

Open
frankkluijtmans wants to merge 3 commits into
mainfrom
frankkluijtmans/wizard-forms-vertex
Open

feat(apollo-vertex): multi-step form wizard and stepper [AGVSOL-4703]#906
frankkluijtmans wants to merge 3 commits into
mainfrom
frankkluijtmans/wizard-forms-vertex

Conversation

@frankkluijtmans

@frankkluijtmans frankkluijtmans commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

⚠️ Important: Please check the component page on the preview deployment for more details. This is PR #1 in a 2 PR series. The second will expand a bit on using it in headless mode for more customizability.

Adds multi-step wizard forms to Apollo Vertex, built on the existing TanStack Form and Zod foundation. Each step is validated against a partial schema derived (via .pick()) from a single master schema, so validation rules live in one place and cannot drift between steps. The wizard supports conditional steps (hidden from navigation, the stepper, and submit validation) and optional localStorage persistence (via useLocalStorage from @mantine/hooks) that hydrates and clears automatically. A new composable, shadcn-native Stepper primitive backs the progress indicator and is independently installable. Includes a demo, docs page, nav entry, and i18n keys, with typecheck, lint, format, and registry build all passing.

👨 Generated with Kluijt Code

Copilot AI review requested due to automatic review settings July 13, 2026 14:55
@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-design 🟢 Ready Preview, Logs Jul 17, 2026, 08:17:04 AM
apollo-docs 🟢 Ready Preview, Logs Jul 17, 2026, 08:17:04 AM
apollo-landing 🟢 Ready Preview, Logs Jul 17, 2026, 08:17:04 AM
apollo-vertex 🟢 Ready Preview, Logs Jul 17, 2026, 08:17:04 AM

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

📊 Coverage + size by package

Per-package bundle size on this PR (no JS/TS source changes detected under packages/* or web-packages/*).

Package Coverage New-line coverage Packed (gzip) Unpacked vs main
@uipath/apollo-core 9.0% 43.82 MB 57.31 MB ±0
@uipath/apollo-react 37.2% 7.38 MB 28.15 MB ±0
@uipath/apollo-wind 40.3% 395.2 KB 2.57 MB +12 B
@uipath/ap-chat 85.8% 43.43 MB 55.92 MB ±0

"Coverage" is each package's own coverage.include scope (e.g. apollo-core instruments only scripts/). "Packed"/"Unpacked" come from npm pack --dry-run and only cover built packages — "—" means not measured this run (package not affected / not built). "vs main" is the packed (gzipped) delta against the last successful main build (the package-sizes artifact from the Release workflow); "—" there means no main baseline was available this run. The baseline is main's latest build, not this PR's exact merge-base, so it includes any drift since the branch diverged. Packages with no vitest config are omitted.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new multi-step form wizard feature to Apollo Vertex (the Vertex docs/demo app), building on the existing TanStack Form + Zod patterns and introducing a reusable Stepper primitive for progress indication.

Changes:

  • Introduces a composable Stepper UI primitive and registers it for installation.
  • Adds FormWizard components + useFormWizard hook with conditional steps, per-step schema picking, and optional local/session persistence.
  • Adds demo + docs page + navigation metadata + i18n keys, and wires required dependencies.

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
pnpm-lock.yaml Updates lockfile for new deps and re-resolution; currently includes GitHub Packages tarball URLs for @uipath/*.
apps/apollo-vertex/tsconfig.json Adds path aliases for the new form-wizard and stepper components.
apps/apollo-vertex/registry/stepper/stepper.tsx New Stepper primitive (orientation + states + composed subparts).
apps/apollo-vertex/registry/form-wizard/wizard-schema.ts Step definition types + visible-step filtering + per-step schema picking helpers.
apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts New wizard hook: navigation, per-step validation, conditional visibility, persistence.
apps/apollo-vertex/registry/form-wizard/index.ts Public exports for the form-wizard package.
apps/apollo-vertex/registry/form-wizard/form-wizard.tsx Wizard container + Stepper-backed steps rendering + step slot component.
apps/apollo-vertex/registry/form-wizard/form-wizard-nav.tsx Back/Next/Submit navigation controls with i18n labels.
apps/apollo-vertex/registry.json Registers stepper and form-wizard for the registry installer.
apps/apollo-vertex/package.json Adds @tanstack/react-store dependency.
apps/apollo-vertex/locales/en.json Adds wizard demo + navigation i18n strings.
apps/apollo-vertex/app/components/form-wizard/page.mdx New docs page describing installation and usage.
apps/apollo-vertex/app/components/form-wizard/form-wizard-demo.tsx New demo showing conditional step + session persistence + translated validation keys.
apps/apollo-vertex/app/components/_meta.ts Adds docs nav entry for the new Form Wizard page.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/stepper/stepper.tsx Outdated
Comment thread apps/apollo-vertex/registry.json Outdated
Comment thread pnpm-lock.yaml Outdated
Comment thread pnpm-lock.yaml Outdated
Comment thread apps/apollo-vertex/app/components/form-wizard/page.mdx
@frankkluijtmans frankkluijtmans changed the title feat(apollo-vertex): multi-step form wizard and stepper feat(apollo-vertex): multi-step form wizard and stepper [AGVSOL-4703] Jul 14, 2026
Copilot AI review requested due to automatic review settings July 14, 2026 12:25
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from 1ea8024 to c1170ac Compare July 14, 2026 12:25
@frankkluijtmans
frankkluijtmans marked this pull request as ready for review July 14, 2026 12:26
@frankkluijtmans
frankkluijtmans requested a review from a team as a code owner July 14, 2026 12:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 14 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts
Comment thread pnpm-lock.yaml Outdated
@frankkluijtmans
frankkluijtmans marked this pull request as draft July 14, 2026 12:31
Copilot AI review requested due to automatic review settings July 14, 2026 12:33
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from c1170ac to 54049f3 Compare July 14, 2026 12:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 14 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread pnpm-lock.yaml Outdated
Comment thread pnpm-lock.yaml Outdated
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Copilot AI review requested due to automatic review settings July 14, 2026 12:44
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from 54049f3 to 68467f4 Compare July 14, 2026 12:44
@github-actions github-actions Bot added size:XL 500-999 changed lines. and removed size:XXL 1,000+ changed lines. labels Jul 14, 2026
@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Dependency License Review

  • 1950 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 2 package(s) excluded (see details below)
License distribution
License Packages
MIT 1720
ISC 89
Apache-2.0 55
BSD-3-Clause 27
BSD-2-Clause 23
BlueOak-1.0.0 8
MPL-2.0 4
MIT-0 3
CC0-1.0 3
MIT OR Apache-2.0 2
(MIT OR Apache-2.0) 2
Unlicense 2
LGPL-3.0-or-later 1
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
Unknown 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json

@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from 68467f4 to 7d8a602 Compare July 14, 2026 12:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 14 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/app/components/form-wizard/page.mdx Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts
Comment thread apps/apollo-vertex/app/components/form-wizard/page.mdx
@frankkluijtmans
frankkluijtmans marked this pull request as ready for review July 14, 2026 13:48
Copilot AI review requested due to automatic review settings July 14, 2026 13:52
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from bb605f6 to 7b50908 Compare July 14, 2026 13:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/stepper/stepper-trigger.tsx Outdated
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts Outdated
Comment thread apps/apollo-vertex/registry/stepper/stepper.tsx Outdated
Copilot AI review requested due to automatic review settings July 17, 2026 13:12
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from 7b50908 to fa62b41 Compare July 17, 2026 13:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts
Comment thread apps/apollo-vertex/registry/stepper/stepper-trigger.tsx Outdated
Comment thread apps/apollo-vertex/app/components/form-wizard/page.mdx
Copilot AI review requested due to automatic review settings July 17, 2026 13:18
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from fa62b41 to 7a4bb5c Compare July 17, 2026 13:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts
Comment thread apps/apollo-vertex/registry/stepper/stepper-trigger.tsx
Comment thread apps/apollo-vertex/registry.json
Comment thread apps/apollo-vertex/app/components/form-wizard/page.mdx
Comment thread apps/apollo-vertex/locales/en.json
Copilot AI review requested due to automatic review settings July 17, 2026 14:38
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from 7a4bb5c to dc2c00f Compare July 17, 2026 14:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 4 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment thread apps/apollo-vertex/registry/stepper/stepper-trigger.tsx
Comment thread apps/apollo-vertex/registry/form-wizard/use-form-wizard.ts
Comment thread apps/apollo-vertex/app/components/form-wizard/page.mdx Outdated
Comment thread apps/apollo-vertex/registry.json Outdated
Copilot AI review requested due to automatic review settings July 17, 2026 15:05
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from dc2c00f to 656319e Compare July 17, 2026 15:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 21 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

Comment on lines +19 to +23
<button
// Spread first so component-controlled attributes below can't be overridden.
{...props}
{...(interactive ? { onClick } : { "aria-disabled": true, tabIndex: -1 })}
type="button"
Comment on lines +35 to +38
const persistKey = persist?.key ?? "";
const [persisted, setPersisted, removePersisted] = useLocalStorage<
PersistedState<TValues> | undefined
>({ key: persistKey, getInitialValueInEffect: false });

- **One form instance.** `useFormWizard` creates a single `useAppForm` from your `formOptions`, wires `revalidateLogic()` and a full-form `onDynamic` schema for the final submit, and owns step navigation, conditional visibility, and optional persistence.
- **Nested values per step.** `defaultValues` is grouped by step (`{ account: {...}, plan: {...} }`), so each step owns a slice of the form.
- **Per-step schemas via `FormGroup`.** Each step is a `withForm` component whose `form.FormGroup` validates only that step's slice with its own schema on advance. The full `schema` passed to `useFormWizard` is not sliced per step; it is only the final-submit backstop.
"name": "form-wizard",
"type": "registry:ui",
"title": "Form Wizard",
"description": "A multi-step wizard built on TanStack Form and Zod. Each step is a withForm component that validates its own slice through a FormGroup, with conditional steps and optional persistence.",
## Installation

```bash
npx shadcn@latest add @uipath/form-wizard
@frankkluijtmans
frankkluijtmans force-pushed the frankkluijtmans/wizard-forms-vertex branch from 656319e to 546c037 Compare July 17, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:apollo-vertex size:XXL 1,000+ changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants