API Reference DynamicForm v#1.0.0

Copy Markdown View Source

Modules

DynamicForm - A Phoenix LiveView library for creating dynamic forms with full server-side validation using changesets. Also supports building forms through a WYSIWYG interface.

SurveyJS "carry forward": a question whose choices come from another question — one choice per entry of a nested form, or another choice question's own choices, optionally narrowed by choicesFromQuestionMode.

Helper functions for creating dynamic changesets from DynamicForm.Instance configurations.

Resolution and dispatch for the pluggable components module.

Provides core UI components.

A LiveView component for handling direct-to-storage file uploads in dynamic forms.

Resolution for custom field types.

A module providing Internationalization with a gettext-based API.

Plumbing for the Phoenix.HTML.Form structs the library renders against.

Generic map utilities shared across the library.

Configuration struct that defines the complete form structure using SurveyJS-compatible format.

Represents a non-input element in a form using SurveyJS-compatible format.

Queries over a form definition's element tree.

Represents a form question (input field) using SurveyJS-compatible format.

Represents a validation rule for a form question using SurveyJS-compatible format.

Timer and token mechanics for debouncing DynamicForm.Renderer.LiveComponent's change pass (change_debounce_in_ms).

LiveView upload wiring for file questions using direct-to-cloud uploads.

Nested/repeating child forms — the SurveyJS paneldynamic question type.

Parses <:field>, <:group>, and <:nested> slot entries from DynamicForm.form/1 into a DynamicForm.Instance struct.

Validates the slot declarations handed to DynamicForm.form/1 before DynamicForm.Parser.FromComponent builds an Instance from them, raising ArgumentError with a specific message for each definition mistake.

Decodes SurveyJS-compatible JSON data or maps into DynamicForm.Instance structs.

The value threaded through the form lifecycle.

A pure functional form component

Rendering for non-question elements: html and image content blocks, fully custom slot elements, and panel containers (whose members render back through DynamicForm.Renderer.Component).

Rendering for paneldynamic questions: the repeating nested-form section — its header and add button, one namespaced child form per entry with its remove button, and the section-level errors.

A summary of a changeset's validation errors, rendered above the form when the validation_summary attribute of DynamicForm.form/1 is set.

A LiveComponent version of the DynamicForm renderer with automatic state management.