Roadmap
This page describes planned work as intent. None of it is API yet: names, shapes and order may change during implementation. For what exists today, see the concept and guide pages.
Done
Signatures, barcode scanning and real attachments. An e-signature field the host's FormSignatureService signs after checking credentials, with a value that carries no secret; a Scan with camera setting on the reference field, resolved to a record by the host; attachments with a SHA-256, thumbnails, an image preview and a host viewer hook; and vyuh_form_kit_capture, which holds the camera, file and image plugins. The definition format is version 4. See Host services.
One registration per type (0.9.0). A field or content type is one descriptor: id, title, defaults, the settings the designer edits, its JSON, its minimum size, how rules and formulas read it, and the validators it accepts. Built-in types are described the same way; an app adds a renderer and a palette entry. See Custom fields.
Presentations and app setting editors (0.10.0). A choice shows as a dropdown, a list of radio buttons (checkboxes for several) or chips, and a toggle as a switch or a checkbox; a list or chips raise the field's minimum size. An app's setting can use an editor it registers with the designer (CustomSetting, and a ViewPart<SettingEditorInput> aimed at its editor id).
Reactive filling (0.9.0). FormKitForm holds a form being filled in reactive controls, with sync and async validation and fine-grained rebuilds. See Filling forms.
One setup (API clean-up, phase 1). The kit owns its codec (kit.encode, kit.decode); a KitScope<FormKit> gives the forms and the designer their kit and FormHostServices once; Cancel, Save draft and Submit belong to every form's definition, and the action bar is drawn for any form whose host gives it something to do; the designer's controller knows isDirty, markSaved() and changes; and reactive_forms is no longer part of the public API. See Quick Start and The kit.
One kit (0.7.0). Validator kinds, rule kinds, custom codecs and the palette are registered in ordered extensions of one kit, which the designer, the forms, the kit's own codec and a server share; the editor's actions are one ordered list the host composes. See The kit.
Rules (0.5.0). Conditions and effects are kinds in a registry that apps extend; comparisons with operators from each field's type, formula conditions, effects on any node, required and computed values, per-entry evaluation, and a Rules tab in the designer. See Rules and formulas.
In review
Validator registry (0.2.0). Every built-in validation is checked, fields in repeating groups are checked per entry, warnings show as warnings, and apps register typed validators that the designer offers under their own category. See Custom validators.
Planned
V: Validations on containers
Validations attach to groups, repeating groups and the form, not only fields. A repeating group can check each entry and the entries together: an entry count, uniqueness across entries, or a sum or formula check. These go through the same kit's validator kinds, with each kind declaring the targets it applies to (field, group, repeating group, form). Authors edit them on the container's Validation tab, and FormView reports them under the container.
G: More field types
- Text formats (email, phone, URL) that set the keyboard and add their format validation.
- Input masks and line counts for multiline text.
- Slider and range-slider fields.
P: More presentations
Toggle as checkbox and choice as list or chips are done (0.10.0). Still to come: a searchable dialog for long choice lists, date pattern and minute step, reference autocomplete settings and create-new through host callbacks.
M: Multi-select editing
Shift-click selects siblings and ⌘-click toggles. The inspector edits the properties the selection shares and shows "Mixed" where values differ. Delete, Wrap in row and Group act on the whole selection as one undo step.
Also planned
- Design check: a collected list of design issues instead of the first exception, so a JSON import reports every problem at once; an issues list in the editor header; and a dirty flag for save and publish gating.
- Canvas: grid item drag and eight-handle resize, and row boundary handles.