# DynamicForm v0.21.0 - Table of Contents

> Dynamic forms for Phoenix LiveView with built-in validation - defined declaratively in HEEx or as (SurveyJS-compatible) data

## Pages

- [DynamicForm](readme.md)
- [Changelog](changelog.md)
- [MIT License](license.md)

- Guides
  - [Usage](usage.md)
  - [Nested Forms](nested-forms.md)
  - [SurveyJS Compatibility](surveyjs.md)
  - [Lifecycle Events](lifecycle.md)
  - [Styling](styling.md)
  - [Reference](reference.md)
  - [Development](development.md)

## Modules

- [DynamicForm](DynamicForm.md): DynamicForm - A Phoenix LiveView library for creating dynamic forms with full
server-side validation using changesets. Also supports building forms
through a WYSIWYG interface.
- [DynamicForm.Changeset](DynamicForm.Changeset.md): Helper functions for creating dynamic changesets from DynamicForm.Instance configurations.
- [DynamicForm.Components](DynamicForm.Components.md): Resolution and dispatch for the pluggable components module.
- [DynamicForm.CoreComponents](DynamicForm.CoreComponents.md): Provides core UI components.
- [DynamicForm.DirectUpload](DynamicForm.DirectUpload.md): A LiveView component for handling direct-to-storage file uploads in dynamic forms.
- [DynamicForm.FieldTypes](DynamicForm.FieldTypes.md): Resolution for custom field types.
- [DynamicForm.Gettext](DynamicForm.Gettext.md): A module providing Internationalization with a gettext-based API.
- [DynamicForm.Instance](DynamicForm.Instance.md): Configuration struct that defines the complete form structure using SurveyJS-compatible format.
- [DynamicForm.Instance.Decoder](DynamicForm.Instance.Decoder.md): Decodes SurveyJS-compatible JSON data or maps into DynamicForm.Instance structs.
- [DynamicForm.Instance.Element](DynamicForm.Instance.Element.md): Represents a non-input element in a form using SurveyJS-compatible format.
- [DynamicForm.Instance.FromSlots](DynamicForm.Instance.FromSlots.md): Converts `<:field>`, `<:group>`, and `<:nested>` slot entries from
`DynamicForm.form/1` into a `DynamicForm.Instance` struct.
- [DynamicForm.Instance.Question](DynamicForm.Instance.Question.md): Represents a form question (input field) using SurveyJS-compatible format.
- [DynamicForm.Instance.Validator](DynamicForm.Instance.Validator.md): Represents a validation rule for a form question using SurveyJS-compatible format.
- [DynamicForm.NestedForms](DynamicForm.NestedForms.md): Nested/repeating child forms — the SurveyJS `paneldynamic` question type.
- [DynamicForm.Payload](DynamicForm.Payload.md): The value threaded through the form lifecycle.
- [DynamicForm.Renderer](DynamicForm.Renderer.md): A pure functional component that renders dynamic forms using SurveyJS-compatible format.
- [DynamicForm.RendererLive](DynamicForm.RendererLive.md): A LiveComponent version of the DynamicForm renderer with automatic state management.

