typed_form_fields 1.1.0
typed_form_fields: ^1.1.0 copied to clipboard
Type-safe, universal form field wrapper for Flutter with zero dependencies, high performance, and validation optimizations.
Changelog #
1.1.0 Major Architecture Refactor: Typed Prefix Migration #
π Breaking Changes #
-
Zero Dependencies Architecture: Moved from
flutter_blocdependency to zero external dependencies- Before: Required
BlocProviderandCoreFormCubitfromflutter_bloc - After: Uses
TypedFormProviderwith built-in state management (no external dependencies) - Migration: Replace
BlocProvider(create: (context) => CoreFormCubit(...))withTypedFormProvider(...)
- Before: Required
-
Renamed core classes to use "Typed" prefix for better clarity and consistency:
FieldWrapperβTypedFieldWrapperCoreFormCubitβTypedFormControllerCoreFormStateβTypedFormStateCommonValidatorsβTypedCommonValidatorsCrossFieldValidatorsβTypedCrossFieldValidatorsConditionalValidatorβTypedConditionalValidatorCompositeValidatorβTypedCompositeValidatorValidatorLocalizationsβTypedValidatorLocalizations
β¨ New Features #
- Enhanced Form State Management: Improved
TypedFormControllerwith better state handling and validation logic - Advanced Cross-Field Validation: New static helper methods in
TypedCrossFieldValidators:matches()- Field value matching validationdifferentFrom()- Field value difference validationrequiredWhen()- Conditional required field validationrequiredWhenNotEmpty()- Required when another field is not emptydateBefore()/dateAfter()- Date comparison validationsgreaterThan()/lessThan()- Numeric comparison validationssumCondition()- Sum-based validationatLeastOneRequired()- At least one field required validation
- Improved Form Reset:
resetForm()now resets to initial values instead of null - Enhanced Form Listener:
TypedFormListenerconverted to StatefulWidget for better lifecycle management
π§ Improvements #
- Better Test Coverage: Achieved 100% test coverage for core validation components
- Performance Optimizations: Enhanced form state management and validation performance
- Integration Testing: Added comprehensive integration tests for end-to-end form functionality
- Performance Benchmarking: Added benchmark tests for form operations
- Code Quality: Removed test-specific code from production files
- Documentation: Updated README.md with correct class names and examples
π Bug Fixes #
- Fixed form state initialization issues in
TypedFormProvider - Fixed cross-field validation triggering in tests
- Fixed form reset behavior to use initial values
- Fixed integration test compilation and runtime errors
- Fixed benchmark test compilation issues
- Fixed logical inconsistencies in test expectations
π Documentation #
- Updated all examples to use new "Typed" prefixed class names
- Enhanced README.md with corrected API references
- Improved code examples and usage patterns
- Updated package exports to include all Typed classes
π§ͺ Testing #
- Added comprehensive integration tests for dynamic form scenarios
- Added performance benchmark tests
- Improved test coverage for cross-field validators
- Enhanced test coverage for common validators
- Added fallback error message testing
- Fixed all test compilation and runtime issues
1.0.0 Initial Release #
- π First public release of
typed_form_fields! - Type-safe, universal form field wrapper (
FieldWrapper<T>) for any widget - Required
flutter_blocdependency for state management - Core form management:
CoreFormCubit,CoreFormState(BLoC-based) - Validation system:
CommonValidators,CrossFieldValidators,ConditionalValidator,CompositeValidator - Form field definition:
TypedFormField<T>(already "Typed" prefixed) - 7 pre-built widgets: TypedTextField, TypedCheckbox, TypedSwitch, TypedDropdown, TypedSlider, TypedDatePicker, TypedTimePicker
- Complete validation system: required, email, min/max, pattern, phone, credit card, URL, custom, and more
- Cross-field validation (e.g., password confirmation, field matching)
- Conditional validation (validate only when certain conditions are met)
- Composite and chainable validators
- BLoC integration for reactive state management
- Debouncing and performance optimizations
- Built-in localization for 11 languages
- Dynamic form updates: add/remove fields, update validation rules, update errors at runtime
- Full error handling and type safety
- Comprehensive documentation and examples