voo_forms library

Classes

CaseFormatter
Text input formatter for converting text case
CompoundValidation<T>
Validation rule for combining multiple validation rules
CreditCardFormatter
Credit card number formatter (XXXX XXXX XXXX XXXX)
CurrencyFormatter
Text input formatter for currency fields with automatic formatting
CustomValidation<T>
Validation rule for custom validation logic
DateFormatter
Text input formatter for date fields with customizable format
DateRangeValidation
Validation rule for date range
EmailValidation
Validation rule for email format
FormFieldConfig
Configuration for a form field used by the controller
InternationalPhoneFormatter
Text input formatter for international phone numbers
MaskFormatter
Text input formatter that applies a mask pattern to user input
MaxLengthValidation
Validation rule for maximum string length
MaxValueValidation<T extends num>
Validation rule for maximum numeric value
MinLengthValidation
Validation rule for minimum string length
MinValueValidation<T extends num>
Validation rule for minimum numeric value
PatternFormatter
Text input formatter that applies custom patterns using regex mappings
PatternValidation
Validation rule for custom pattern matching
PercentageFormatter
Text input formatter for percentage values
PhoneNumberFormatter
Phone number formatter (US format: (XXX) XXX-XXXX)
PhoneValidation
Validation rule for phone number format
PositiveNumberFormatter
Positive number formatter
RangeValidation<T extends num>
Validation rule for numeric value range
RequiredValidation<T>
Validation rule for required fields
SimpleCurrencyFormatter
Simple currency formatter that follows Flutter's default text field behavior Uses intl package for proper locale-aware currency formatting
SSNFormatter
Text input formatter for US Social Security Numbers (SSN)
StrictCurrencyFormatter
Strict currency formatter
StrictIntegerFormatter
Integer-only formatter
StrictNumberFormatter
Strict number formatter that only allows valid numeric input Prevents users from typing invalid characters in number fields
StrictPercentageFormatter
Strict percentage formatter (0-100)
UrlValidation
Validation rule for URL format
VooAsyncDropdownField<T>
Async dropdown field that loads options asynchronously Extends VooFieldBase to inherit all common field functionality
VooAsyncMultiSelectField<T>
Async multi-select field that loads options asynchronously Extends VooFieldBase to inherit all common field functionality
VooBooleanField
Boolean field molecule that composes atoms to create a complete switch field Uses VooSwitchInput atom for the actual switch control
VooCheckboxField
Checkbox field molecule that composes atoms to create a complete checkbox field Uses VooCheckboxInput atom for the actual checkbox control
VooCurrencyField
Currency field molecule with proper currency formatting Displays values with currency symbols, thousand separators, and decimal places Supports multiple currency formats (USD, EUR, GBP, JPY)
VooDateField
Date field molecule that composes atoms to create a complete date picker field Extends VooFieldBase to inherit all common field functionality
VooDateFieldButton
Date field button molecule that provides date selection via a button press Shows selected date or placeholder text on the button Extends VooFieldBase to inherit all common field functionality
VooDecimalField
Decimal field molecule - extends VooNumberField with decimal-specific defaults Allows configurable number of decimal places
VooDropdownField<T>
Dropdown field molecule that provides a searchable dropdown selection widget Extends VooFieldBase to inherit all common field functionality
VooEmailField
Email field molecule - extends VooTextField with email-specific defaults Automatically sets email keyboard type and adds email icon
VooFieldColumn
Column container for form fields - arranges fields vertically Implements VooFormFieldWidget so it can be used in VooForm fields list Allows nesting and grouping of fields with column layout Follows atomic design and KISS principle
VooFieldLayout
Configuration for how a field should be displayed in form layouts
VooFieldOption<T>
VooFieldOptions
Field options that can be applied to form fields Uses VooDesignSystemData from voo_ui_core for sizing and spacing
VooFieldRow
Row container for form fields - arranges fields horizontally Implements VooFormFieldWidget so it can be used in VooForm fields list Allows nesting and grouping of fields with row layout Follows atomic design and KISS principle
VooFile
Entity representing a file that can be either from a URL or uploaded Supports both existing files (from URL) and newly uploaded files (PlatformFile)
VooFileField
File field molecule that handles file selection Supports mobile and web platforms via file_picker Supports both URL-based files and newly uploaded files Supports drag and drop on web and desktop platforms Follows atomic design and KISS principle
VooForm
Simple, atomic form widget that manages field collection and validation Layout, actions, and callbacks are handled by VooFormPageBuilder Follows KISS principle and atomic design
VooFormatters
Collection of commonly used text input formatters
VooFormButton
Atomic form button widget that provides consistent button styling Follows atomic design and KISS principle
VooFormConfig
Configuration for form styling and behavior
VooFormController
Form controller that manages form state without depending on domain entities
VooFormField<T>
VooFormFieldAction
Atomic form field action button that opens a form in different ways based on screen size
VooFormFieldWidget
Base interface for all form field widgets This allows VooForm and VooFormBuilder to accept any field widget without needing factories or complex type hierarchies
VooFormPageBuilder
Page builder for VooForm that handles layout, actions, and callbacks This is a higher-level organism that composes VooForm with additional UI elements
VooFormScope
InheritedWidget to provide form-level configuration to all fields
VooFormSection
A container widget for organizing form fields into logical sections Provides visual grouping with optional title, description, and styling
VooFormSectionDivider
Section divider for forms - provides visual separation between form sections Implements VooFormFieldWidget so it can be used in VooForm fields list Follows atomic design and KISS principle
VooFormTheme
Provides Material 3 theming utilities for forms Integrates with voo_ui_core design system
VooIntegerField
Integer field molecule - extends VooNumberField with integer-only constraints Does not allow decimal input
VooListField<T>
List field molecule that displays a list of items IMPORTANT: This widget does NOT manage state internally The developer is responsible for managing items via callbacks
VooListFieldItem
Optional item wrapper for VooListField that provides consistent item styling Developers can use this or create their own widget Following atomic design and KISS principle
VooMultilineField
Multiline text field molecule - extends VooTextField with multiline defaults Automatically configures for multiline text input
VooMultiSelectField<T>
Multi-select dropdown field that allows selecting multiple options Extends VooFieldBase to inherit all common field functionality
VooNumberField
Number field molecule that composes atoms to create a complete numeric input field Supports both integer and decimal numbers with configurable constraints
VooOption
A standardized option widget for dropdowns and multi-selects Provides a consistent design system for list options
VooPasswordField
Password field molecule - extends VooTextField with password-specific defaults Automatically obscures text and adds lock icon
VooPercentageField
Percentage field molecule - extends VooNumberField with percentage-specific defaults Automatically constrains values between 0 and 100 with percent icon
VooPhoneField
Enhanced phone field with country code selection and formatting
VooSidePanelRoute<T>
Custom route that displays content as a side panel on XL screens Follows atomic design and KISS principle
VooSimpleOption
Simplified option for basic use cases
VooTextField
Text field molecule that composes atoms to create a complete text input field Extends VooFieldBase to inherit all common field functionality
VooValidationRule<T>
Base class for all validation rules
VooValidator
Simple validation API with commonly used validators
ZipCodeFormatter
Text input formatter for US ZIP codes

Enums

ButtonPosition
Submit button position
ButtonType
Button type enum for form actions
ErrorDisplayMode
Error display modes
FieldVariant
Field visual variants
FocusBehavior
Focus behavior for fields
FormLayout
FormValidationMode
LabelPosition
Label position relative to field
LabelStyle
Label style variants for form fields
ValidationTrigger
When to trigger validation
VooFieldType
VooFormErrorDisplayMode
When to display form validation errors

Extensions

FormLayoutExtension on FormLayout
VooFieldTypeExtension on VooFieldType
VooFormSectionDividerStyles on VooFormSectionDivider
Convenience constructors for common divider styles

Functions

useVooFormController({VooFormErrorDisplayMode errorDisplayMode = VooFormErrorDisplayMode.onTyping, FormValidationMode validationMode = FormValidationMode.onSubmit, Map<String, FormFieldConfig>? fields}) VooFormController
Hook for easy form controller usage

Typedefs

VooDropdownChild<T> = VooFieldOption<T>
Type alias for dropdown children items