Skip to content

Community Edition

QForm Builder Community est la base gratuite et publiable du projet. Elle doit rester simple à installer, claire à documenter et suffisamment stable pour servir de socle à NFZ Studio ou à une application Nuxt 4 existante.

Objectif

L’édition Community fournit le nécessaire pour créer, sauvegarder et rendre des formulaires dynamiques côté Nuxt 4 :

txt
Nuxt 4 Layer
├── FormBuilder
├── FormViewer
├── multi-instance
├── import/export JSON
├── autosave local
├── conditions basiques
├── steps/pages basiques
└── documentation VitePress

Fonctionnalités incluses

FonctionnalitéStatut CommunityRemarque
Nuxt Layer npmInclusConsommation via extends
FormBuilderInclusComposant autonome
FormViewerInclusRendu runtime
Multi-instanceInclusIsolation par builder-id
Autosave localIncluslocalStorage, clé configurable
Import/export JSONInclusVia props/events/API publique
Catalogue de champsInclusBasé sur les composants existants
ArborescenceInclusePanneau gauche
ConditionsPartielBase disponible, avancé prévu Pro
Steps/pagesPartielBase disponible, UX avancée prévue Pro
Validation avancéeCible ProZod, async, cross-field
Theme BuilderCible ProTokens, presets, export thème
Génération NFZCible Studio/ProService NFZ → formulaire CRUD
IA / prompt → formulaireCible ProÀ isoler côté serveur

API publique recommandée

Dans une application hôte, privilégier :

vue
<FormBuilder
  builder-id="customer-form"
  v-model:schema="schema"
  v-model:values="values"
  autosave
  @save="saveForm"
/>

Puis :

vue
<FormViewer
  :form-fields="schema"
  v-model="values"
  @submit="submitValues"
/>

Types publics

ts
import type {
  FormBuilderSchema,
  FormBuilderValues,
  FormBuilderSavePayload,
  FormBuilderPublicApi,
} from '@vevedh/qform-builder-layer/types'

Ce qui reste interne

Les stores, les panneaux de configuration et les composants internes peuvent évoluer :

txt
app/stores/**
app/components/settings/**
app/components/builder/**
app/composables/form-builder/**

Pour une intégration stable, éviter de dépendre directement de ces fichiers depuis une application consommatrice.

Bonnes pratiques

Utilise toujours un builder-id stable :

vue
<FormBuilder :builder-id="`service-${serviceName}-builder`" />

Dans une application SSR, enveloppe le builder dans ClientOnly :

vue
<ClientOnly>
  <FormBuilder builder-id="admin-builder" />
</ClientOnly>

Le viewer peut être utilisé plus largement, mais il dépend également de FormKit/Quasar. Il reste donc préférable de le tester dans le contexte réel de l’application hôte.

QForm Builder — couche Nuxt 4 / Quasar / FormKit réutilisable.