Skip to main content
FlowDrop generates configuration forms automatically from JSON Schema. The field registry system lets you add custom field components — for example a color picker, date picker, or rich text editor.

Quick start

1. Write a Svelte field component:
2. Register it:
3. Use it in a config schema:

How it works

When FormFieldLight renders a field, it:
  1. Calls resolveFieldComponent(schema) to check the registry
  2. If a registered matcher returns true, renders the registered component
  3. Otherwise falls back to built-in fields (text, number, toggle, select, etc.)
Registrations are priority-ordered — higher priority matchers are checked first.

Field component props

Your component receives these props:
Only the props listed above are guaranteed. Read any additional schema properties (like schema.minDate) directly from the schema via the form context — see Reading sibling field values below.

Matcher functions

A matcher decides whether your component handles a given schema:

Priority-based resolution

When multiple registrations match, the highest priority wins:
You can use this to override built-in fields by registering your own component with a higher priority.

Lazy registration

For heavy dependencies, use dynamic imports:

Built-in field types

These fields are always available without registration: These require explicit registration (heavy dependencies): Each installer takes the target field registry (fd.fields) as its first argument:

Field management

Field management is done through the instance’s fd.fields registry (a FieldComponentRegistry):

Reading sibling field values

Custom components registered for format: "autocomplete" fields receive the full schema object as a prop and can read the current values of other fields in the same form using the FORM_VALUES_KEY context. This is the building block for dependent autocomplete fields — for example a project field whose suggestions depend on the currently selected account. 1. Define the schema — use any custom property to declare the dependency:
2. Write the component — wrap FormAutocomplete and patch the URL:
3. Register it — match on the custom dependencies property:
The registered component is only activated when a schema has both format: "autocomplete" and a dependencies property. All other autocomplete fields continue to use FlowDrop’s built-in FormAutocomplete.
FormAutocomplete is a named export.Import it with import { FormAutocomplete } from '@flowdrop/flowdrop/form/autocomplete'.