Data & State
| Feature | Description | Docs |
|---|---|---|
| JSON-driven rendering | Define forms as JSON, render at runtime with <FormViewer> | Rendering forms |
| Two-way data binding | Form data flows in and out via initialData and onFormDataChange | Form data |
| One-way data binding | Read-only data flow from parent to form for derived displays | One-way binding |
| Form persistence | Save and restore draft state across sessions | Form persistence |
Validation
| Feature | Description | Docs |
|---|---|---|
| Zod-powered rules | Built-in required, email, min, max, pattern, custom — all Zod under the hood | Validation |
| Required fields | Automatic aria-required, CSS class, visual indicators | Required property |
| Async validation | Server-side checks (email uniqueness, API lookups) without blocking the UI | Async validation |
| Cross-field validation | Rules that depend on multiple fields (password confirm, date ranges) | Cross-field validation |
Logic & Behavior
| Feature | Description | Docs |
|---|---|---|
| Conditional rendering | Show/hide fields based on other field values, declaratively in JSON | Conditional logic |
| Actions & events | Attach handlers to any component event: click, change, focus, blur, submit | Actions & events |
| Computed properties | Derive field values, labels, or visibility from other form data | Computed properties |
| User-defined properties | Store custom metadata on any component for app-specific logic | User-defined properties |
Layout & Styling
| Feature | Description | Docs |
|---|---|---|
| Responsive layout | Adaptive grid system with breakpoints for mobile, tablet, desktop | Responsive layout |
| CSS & theme styling | JSON-based styles, className injection, CSS variables, theme integration | Styling |
| Disabled & read-only | Freeze entire forms or individual fields for view-only or edit states | Disabled & read-only |
| Tooltips | Contextual help on any field with aria-describedby wiring | Tooltips |
Forms Architecture
| Feature | Description | Docs |
|---|---|---|
| Modal forms | Pop-up forms in overlay dialogs, nested within parent forms | Modal forms |
| Embedded forms | Nest one form inside another, share data between them | Embedded forms |
| Field arrays (Repeater) | Dynamic lists of field groups — add/remove rows at runtime | Field arrays |
| Localization | Multi-language support for labels, errors, and component strings | Localization |