Skip to content

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 pointPeer depsNotes
vue-form-schemavue ^3.3Core — headless, no UI
vue-form-schema/zodzod ^3Optional adapter
vue-form-schema/yupyup ^1Optional adapter
vue-form-schema/valibotvalibot ^1Optional adapter
vue-form-schema/openapinoneStandard JSON Schema / OpenAPI adapter — no peer deps
vue-form-schema/uivue ^3.3BEM-styled built-in components
vue-form-schema/ui/tailwindvue ^3.3, Tailwind CSSTailwind utility-class components
vue-form-schema/ui/shadcnvue ^3.3, Tailwind CSSshadcn/ui-styled Tailwind markup (see note above — not a shadcn-vue component wrapper)
vue-form-schema/ui/primevuevue ^3.3, primevue ^4 | ^5Real PrimeVue component wrappers
vue-form-schema/ui/naivevue ^3.3, naive-ui ^2.38Real Naive UI component wrappers
vue-form-schema/devtools@vue/devtools-api ^6 | ^7 | ^8Vue DevTools inspector + timeline, dev-only

All entry points are tree-shakeable ESM + CJS dual builds.

License

MIT