flutter_form_builder_pro 1.0.0 copy "flutter_form_builder_pro: ^1.0.0" to clipboard
flutter_form_builder_pro: ^1.0.0 copied to clipboard

A schema-driven Flutter form engine with conditional fields, async validation, multi-step wizard support, and JSON/YAML schema loading.

Changelog #

All notable changes to flutter_form_builder_pro are documented here.

This project follows Semantic Versioning and Keep a Changelog conventions.


Unreleased #

Planned #

  • FormSchema.fromYaml() — YAML schema loading
  • FormSchema.fromUrl() — fetch and parse a remote JSON/YAML schema
  • FieldType.multiSelect chip-based widget
  • externalState parameter on SmartForm for fully external state ownership
  • Accessibility audit (screen reader labels, semantic hints)
  • RTL layout support
  • Full widget test suite

1.0.0 — 2026-06-26 #

Initial public release. Schema, engine, autosave, theme, and widget layers are all in place and pub.dev-ready.

Added #

Schema layer

  • FieldType — sealed enum with 20 built-in field types and FieldType.custom(key) for user-defined types
  • FieldCondition — sealed class with 9 composable operators: equals, notEquals, contains, notContains, greaterThan, lessThan, isEmpty, isNotEmpty, and, or, not — all support toJson() / fromJson() roundtrip
  • FieldValidator — sync + async base class with 10 built-in implementations: RequiredValidator, MinLengthValidator, MaxLengthValidator, EmailValidator, PhoneValidator, PatternValidator, MinValueValidator, MaxValueValidator, MatchFieldValidator, RemoteValidator, CustomValidator
  • Validators — static factory class for ergonomic validator construction
  • OptionsSourceOptionsSource.static(options) and OptionsSource.async(loader) with automatic caching of async results
  • FieldOption — value/label/description/disabled model for selectable options
  • FieldSchema — full field descriptor with named constructors for every type: .text(), .textarea(), .email(), .password(), .phone(), .number(), .dropdown(), .radio(), .checkbox(), .checkboxGroup(), .date(), .slider(), .heading(), .divider() — all support fromJson() / toJson()
  • FormSchema — root schema with flat (fields) and wizard (steps) modes, fromJson() / toJson(), allFields accessor
  • FormStep — wizard step with id, title, subtitle, fields, visibleWhen condition, and validateBeforeNext flag

Engine layer

  • FormStateNotifierChangeNotifier-based reactive state: field values, errors, dirty/touched tracking, submission state, parallel async validation via Future.wait, automatic value-clearing for fields that become invisible, visibleValues snapshot (excludes hidden fields)
  • StepController — wizard navigation with dynamic step skipping (steps whose visibleWhen evaluates to false are skipped automatically), progress (0.0–1.0), jumpTo() for completed steps
  • FieldRegistryMap<typeKey, FieldWidgetBuilder> with register(), unregister(), and has() for custom field types
  • SmartFormController — programmatic handle for a mounted SmartForm:
    • setValue() / setValues() — pre-fill one or many fields; both queue calls made before the form mounts and replay them automatically on attach
    • getValue(), values, visibleValues — read current state
    • submit() — returns Future<void>, completing once validation and onSubmit finish running
    • reset(), clearErrors(), isDirty, isSubmitting, hasErrors
    • Throws StateError if attached to a second mounted form at once, or if used after dispose()

Autosave layer

  • AutosaveConfig — opt-in draft persistence with configurable storage key, debounce interval, and onDraftRestored callback
  • AutosaveEngine — persists field values, restores drafts on mount, and clears the draft on successful submission

Theme layer

  • FormTheme — full visual configuration: inputDecoration, inputDecorationBuilder (per-field override), labelStyle, errorStyle, helperStyle, fieldPadding, formPadding, fieldSpacing, submitButtonBuilder, nextButtonBuilder, backButtonBuilder, stepIndicatorBuilder, showLinearProgress, activeStepColor, completedStepColor, inactiveStepColorcopyWith() support

Widget layer

  • SmartForm — main entry-point widget, handles both flat and wizard modes, AnimatedSwitcher + SlideTransition between wizard steps, onChanged per-field callback, scrollable toggle, registry override, optional controller and autosave config
  • SmartTextField — covers text, textarea, email, password (with reveal toggle), phone, number — keyboard type and input formatters auto-resolved from FieldType
  • SmartDropdownField — async options with loading indicator and retry on failure
  • SmartRadioField — radio group with optional per-option descriptions
  • SmartCheckboxField — single boolean checkbox
  • SmartCheckboxGroupField — multi-select checkbox group with maxSelections enforcement
  • SmartDateFieldshowDatePicker integration with min/max date bounds
  • SmartSliderField — labeled slider with animated value badge
  • SmartHeadingWidget / SmartDividerWidget — decorative layout fields
  • BaseFieldWrapper — shared label/error/helper layout used by all built-in widgets
  • SmartStepIndicator — animated numbered circles with connector lines and linear progress bar; completed steps are tappable (jump back)
  • WizardNavigationBar — Back / Next / Submit with loading state
  • buildDefaultRegistry() — wires all 14 built-in type mappings

Tests

  • 15 unit tests for all FieldCondition operators including nested and/or
  • 15 unit tests for all built-in validators including async RemoteValidator
  • Unit tests for SmartFormController covering pre-mount queueing, multi-value set, reset, validated submission, and lifecycle/dispose guards

Example app

  • RegistrationFormPage — conditional fields, async email uniqueness check, password confirm matching, nested country → state visibility
  • OnboardingWizardPage — 4-step wizard, skippable Flutter-specific step, checkbox group with max selections
  • JsonFormPage — form fully driven from an inline JSON string

1
likes
140
points
45
downloads

Documentation

API reference

Publisher

verified publisherv-nerdy.cloud

Weekly Downloads

A schema-driven Flutter form engine with conditional fields, async validation, multi-step wizard support, and JSON/YAML schema loading.

Homepage
Repository (GitHub)
View/report issues
Contributing

License

MIT (license)

Dependencies

cupertino_icons, file_picker, flutter, flutter_quill, hive, hive_flutter, http, yaml

More

Packages that depend on flutter_form_builder_pro