Reference
Architecture
useForm
│
├── Schema normalisation (json / zod / yup / valibot / openapi)
│ └── FieldDefinition[]
│
├── ConditionEvaluator
│ watchEffect → resolves visible / disabled / options per field
│
├── ValidationEngine
│ sync validators → errors Record<path, string[]>
│ async validators → debounced 300ms
│
├── MaskEngine (standalone)
│ applyMask / removeMask / bindMask
│
└── (optional) UI subpackages
FormRenderer [/ui]
TailwindFormRenderer [/ui/tailwind]
ShadcnFormRenderer [/ui/shadcn]
PrimeVueFormRenderer [/ui/primevue]
NaiveFormRenderer [/ui/naive]
useFieldArray [core]
useMultiStepForm [core]
useFormDebug [core]
installFormDevtools [/devtools]Bundle size & peer dependencies
| Entry point | Peer deps | Notes |
|---|---|---|
vue-form-schema | vue ^3.3 | Core — headless, no UI |
vue-form-schema/zod | zod ^3 | Optional adapter |
vue-form-schema/yup | yup ^1 | Optional adapter |
vue-form-schema/valibot | valibot ^1 | Optional adapter |
vue-form-schema/openapi | none | Standard JSON Schema / OpenAPI adapter — no peer deps |
vue-form-schema/ui | vue ^3.3 | BEM-styled built-in components |
vue-form-schema/ui/tailwind | vue ^3.3, Tailwind CSS | Tailwind utility-class components |
vue-form-schema/ui/shadcn | vue ^3.3, Tailwind CSS | shadcn/ui-styled Tailwind markup (see note above — not a shadcn-vue component wrapper) |
vue-form-schema/ui/primevue | vue ^3.3, primevue ^4 | ^5 | Real PrimeVue component wrappers |
vue-form-schema/ui/naive | vue ^3.3, naive-ui ^2.38 | Real Naive UI component wrappers |
vue-form-schema/devtools | @vue/devtools-api ^6 | ^7 | ^8 | Vue DevTools inspector + timeline, dev-only |
All entry points are tree-shakeable ESM + CJS dual builds.
License
MIT