Skip to content

API: Editor

The vyuh_form_editor package provides a visual form designer. These are its main public types.

FormEditor

Class Signature

Main widget that arranges the field palette, canvas, and properties panel.


FormEditorStore

Class Signature

Properties

PropertyTypeDefaultDescription
formInstanceFormInstance--Current form being edited
registryFormEditorRegistry--Type registry
itemsList<ItemInstance>--All items in display order
allFieldsList<FieldInstance>--All fields including nested
selectedItemItemInstance?--Currently selected item (single selection)
selectedItemsList<ItemInstance>--All selected items
selectedFieldFieldInstance?--Selected field (single selection)
isFormSelectedbool--Whether the form itself is selected
hasMultipleSelectionbool--Multiple items selected
formTitleString--Form title
formDescriptionString?--Form description
formHSpacingdouble--Horizontal spacing
formVSpacingdouble--Vertical spacing
isResizingbool--Resize drag in progress
isDraggingbool--Drag operation in progress
isValidbool--No validation errors

Methods

  • selectItem
    void selectItem(ItemInstance item)

    Select a single item

  • selectItemRange
    void selectItemRange(ItemInstance target)

    Shift-click range select

  • toggleItemSelection
    void toggleItemSelection(ItemInstance item)

    Ctrl/Cmd-click toggle

  • selectForm
    void selectForm()

    Select the form (show form properties)

  • addBlock
    Future<void> addBlock(ItemInstance block, {BlockContainer? container, int? at})

    Add any compatible block to a container

  • removeBlock
    Future<void> removeBlock(ItemInstance block)

    Remove a block from its parent container

  • moveBlockWithinContainer
    Future<void> moveBlockWithinContainer(ItemInstance block, int to)

    Reorder a block inside its current container

  • moveBlockToContainer
    Future<void> moveBlockToContainer(ItemInstance block, {required BlockContainer targetContainer, int? at})

    Move a block between containers

  • addValidationCommand
    void addValidationCommand(FieldInstance field, ValidationInstance validation)

    Add validation

  • removeValidationCommand
    void removeValidationCommand(FieldInstance field, ValidationInstance validation)

    Remove validation

  • addRuleCommand
    void addRuleCommand(FieldInstance field, RuleInstance rule)

    Add rule

  • removeRuleCommand
    void removeRuleCommand(FieldInstance field, RuleInstance rule)

    Remove rule

  • clearAllFieldsCommand
    void clearAllFieldsCommand()

    Clear all fields

  • importFormCommand
    void importFormCommand(FormInstance formInstance)

    Import form

  • duplicateSelectedField
    void duplicateSelectedField()

    Duplicate selected

  • removeSelectedItems
    void removeSelectedItems()

    Remove all selected

  • undo
    void undo()

    Undo last action

  • redo
    void redo()

    Redo last undone action

  • toJson
    Map<String, dynamic> toJson()

    Export as Map<String, dynamic>

  • validate
    List<FormValidationError> validate()

    Returns list of validation errors

  • setFormInstance
    void setFormInstance(FormInstance instance)

    Replace form instance

MobX store managing all editor state. The signature lists its three factory constructors. Methods include selection, undo/redo command operations, and import/export.


FormEditorRegistry

Class Signature

Methods

  • registerFieldType
    void registerFieldType(FieldType fieldType)

    Register a single field type.

  • registerFieldTypes
    void registerFieldTypes(List<FieldType> fieldTypes)

    Register multiple field types in bulk.

  • registerValidationType
    void registerValidationType(ValidationType validationType)

    Register a validation type.

  • registerConditionType
    void registerConditionType(RuleConditionType conditionType)

    Register a rule condition type.

  • registerActionType
    void registerActionType(RuleActionType actionType)

    Register a rule action type.

  • registerCustomPropertyEditor
    void registerCustomPropertyEditor<T>({required String key, required PropertyEditor<T> editor})

    Register a custom property editor for a key.

  • registerCustomPropertyConverter
    void registerCustomPropertyConverter<T>({String? key, required JsonConverter<T> converter})

    Register a custom JSON converter for a property.

  • getFieldTypes
    List<FieldType> getFieldTypes()

    List all registered field types.

  • getValidationTypes
    List<ValidationType> getValidationTypes()

    List all validation types.

  • getConditionalRuleConditionTypes
    List<RuleConditionType> getConditionalRuleConditionTypes()

    List all rule condition types.

  • getConditionalRuleActionTypes
    List<RuleActionType> getConditionalRuleActionTypes()

    List all rule action types.

  • getAllPaletteTypes
    List<ItemType> getAllPaletteTypes()

    List all palette item types.

  • getFieldType
    FieldType? getFieldType(String schemaType)

    Look up a field type by schema name.

  • getValidationType
    ValidationType? getValidationType(String schemaType)

    Look up a validation type by schema name.

  • getConditionType
    RuleConditionType? getConditionType(String schemaType)

    Look up a condition type by schema name.

  • getActionType
    RuleActionType? getActionType(String schemaType)

    Look up an action type by schema name.

  • fieldFromVyuh
    FieldInstance? fieldFromVyuh(FormField vyuhField)

    Compose a field instance from a Vyuh FormField.

  • sectionFromVyuh
    SectionInstance sectionFromVyuh(FormSection vyuhSection)

    Compose a section instance from a Vyuh FormSection.

  • repeatingSectionFromVyuh
    RepeatingSectionInstance repeatingSectionFromVyuh(RepeatingSection vyuhSection)

    Compose a repeating-section instance.

  • ruleFromVyuh
    RuleInstance ruleFromVyuh(FormFieldRule vyuhRule)

    Compose a rule instance from a Vyuh FormFieldRule.

  • createRule
    RuleInstance createRule()

    Create a new empty rule instance.

  • validate
    List<String> validate()

    Validate the registry and return any error messages.

  • registryStats
    Map<String, int> get registryStats

    Counts of registered types by category.

Consolidated registry and sole compositor for all types. The signature lists its primary and convenience factory constructors.


FormEditorDescriptor

Class Signature

Declarative configuration for the editor.


FieldType

abstract

Class Signature

Abstract base for defining field types in the editor.


FieldInstance

Class Signature

A configured field instance in the editor.


BlockContainer

Class Signature

Shared editor-side container behavior for FormInstance, RowInstance, SectionInstance, and RepeatingSectionInstance. Containers declare the block types they accept and all drag/drop, import, and command operations use that compatibility check.

Next Steps