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
| Property | Type | Default | Description |
|---|---|---|---|
formInstance | FormInstance | -- | Current form being edited |
registry | FormEditorRegistry | -- | Type registry |
items | List<ItemInstance> | -- | All items in display order |
allFields | List<FieldInstance> | -- | All fields including nested |
selectedItem | ItemInstance? | -- | Currently selected item (single selection) |
selectedItems | List<ItemInstance> | -- | All selected items |
selectedField | FieldInstance? | -- | Selected field (single selection) |
isFormSelected | bool | -- | Whether the form itself is selected |
hasMultipleSelection | bool | -- | Multiple items selected |
formTitle | String | -- | Form title |
formDescription | String? | -- | Form description |
formHSpacing | double | -- | Horizontal spacing |
formVSpacing | double | -- | Vertical spacing |
isResizing | bool | -- | Resize drag in progress |
isDragging | bool | -- | Drag operation in progress |
isValid | bool | -- | No validation errors |
Methods
selectItemvoid selectItem(ItemInstance item)Select a single item
selectItemRangevoid selectItemRange(ItemInstance target)Shift-click range select
toggleItemSelectionvoid toggleItemSelection(ItemInstance item)Ctrl/Cmd-click toggle
selectFormvoid selectForm()Select the form (show form properties)
addBlockFuture<void> addBlock(ItemInstance block, {BlockContainer? container, int? at})Add any compatible block to a container
removeBlockFuture<void> removeBlock(ItemInstance block)Remove a block from its parent container
moveBlockWithinContainerFuture<void> moveBlockWithinContainer(ItemInstance block, int to)Reorder a block inside its current container
moveBlockToContainerFuture<void> moveBlockToContainer(ItemInstance block, {required BlockContainer targetContainer, int? at})Move a block between containers
addValidationCommandvoid addValidationCommand(FieldInstance field, ValidationInstance validation)Add validation
removeValidationCommandvoid removeValidationCommand(FieldInstance field, ValidationInstance validation)Remove validation
addRuleCommandvoid addRuleCommand(FieldInstance field, RuleInstance rule)Add rule
removeRuleCommandvoid removeRuleCommand(FieldInstance field, RuleInstance rule)Remove rule
clearAllFieldsCommandvoid clearAllFieldsCommand()Clear all fields
importFormCommandvoid importFormCommand(FormInstance formInstance)Import form
duplicateSelectedFieldvoid duplicateSelectedField()Duplicate selected
removeSelectedItemsvoid removeSelectedItems()Remove all selected
undovoid undo()Undo last action
redovoid redo()Redo last undone action
toJsonMap<String, dynamic> toJson()Export as Map<String, dynamic>
validateList<FormValidationError> validate()Returns list of validation errors
setFormInstancevoid 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
registerFieldTypevoid registerFieldType(FieldType fieldType)Register a single field type.
registerFieldTypesvoid registerFieldTypes(List<FieldType> fieldTypes)Register multiple field types in bulk.
registerValidationTypevoid registerValidationType(ValidationType validationType)Register a validation type.
registerConditionTypevoid registerConditionType(RuleConditionType conditionType)Register a rule condition type.
registerActionTypevoid registerActionType(RuleActionType actionType)Register a rule action type.
registerCustomPropertyEditorvoid registerCustomPropertyEditor<T>({required String key, required PropertyEditor<T> editor})Register a custom property editor for a key.
registerCustomPropertyConvertervoid registerCustomPropertyConverter<T>({String? key, required JsonConverter<T> converter})Register a custom JSON converter for a property.
getFieldTypesList<FieldType> getFieldTypes()List all registered field types.
getValidationTypesList<ValidationType> getValidationTypes()List all validation types.
getConditionalRuleConditionTypesList<RuleConditionType> getConditionalRuleConditionTypes()List all rule condition types.
getConditionalRuleActionTypesList<RuleActionType> getConditionalRuleActionTypes()List all rule action types.
getAllPaletteTypesList<ItemType> getAllPaletteTypes()List all palette item types.
getFieldTypeFieldType? getFieldType(String schemaType)Look up a field type by schema name.
getValidationTypeValidationType? getValidationType(String schemaType)Look up a validation type by schema name.
getConditionTypeRuleConditionType? getConditionType(String schemaType)Look up a condition type by schema name.
getActionTypeRuleActionType? getActionType(String schemaType)Look up an action type by schema name.
fieldFromVyuhFieldInstance? fieldFromVyuh(FormField vyuhField)Compose a field instance from a Vyuh FormField.
sectionFromVyuhSectionInstance sectionFromVyuh(FormSection vyuhSection)Compose a section instance from a Vyuh FormSection.
repeatingSectionFromVyuhRepeatingSectionInstance repeatingSectionFromVyuh(RepeatingSection vyuhSection)Compose a repeating-section instance.
ruleFromVyuhRuleInstance ruleFromVyuh(FormFieldRule vyuhRule)Compose a rule instance from a Vyuh FormFieldRule.
createRuleRuleInstance createRule()Create a new empty rule instance.
validateList<String> validate()Validate the registry and return any error messages.
registryStatsMap<String, int> get registryStatsCounts 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
abstractClass 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
- Glossary -- Term definitions
- Overview -- Quick reference
- Visual Editor -- Editor usage guide