unified_fields 0.1.6
unified_fields: ^0.1.6 copied to clipboard
Standalone unified form fields, pickers, and date/time UI for Flutter apps.
0.1.6 #
Features #
UnifiedInputThemeScope— global field chrome viaUnifiedInputThemeData: disabled/locked label and field colors, placeholder, required icon, validation, suffix/clear/loading colors, picker sheet background, default suffix icons per field type.UnifiedInputPickerHeaderStyle— settable picker sheet headerpadding,backgroundColor,titleStyle, andclearButtonColor(sharedUnifiedPickerSheetHeaderfor single and multi pickers).UnifiedInputMultiPickerCheckboxStyle— settable multi-picker checkboxsize,borderRadius,fillColor,checkColor, andborderColor.UnifiedSuffixIconChrome— 32×32 aligned suffix slot so date/time/duration icons line up with picker dropdown and lock/clear affordances.- Custom duration columns —
pickerColumnswith fixed wheel ranges (year0…999, month0…11, week0…4); presets onUnifiedFieldsDurationColumnPresets. - Time / duration wheel pickers, Persian digits (KookFaNum), Jalali calendar and field display improvements (see 0.1.4–0.1.5 notes below).
API #
UnifiedFieldsContextX— prefixed getters (unifiedFieldsScreenWidth,unifiedFieldsUseDialogLayout, …); legacywidth/isDesktopdeprecated.UnifiedFieldsDateWheelStyle.forPicker— namedoverrides:and optionalcontext:for themed sheet background.unifiedFormatDuration/unifiedTryParseDuration— namedgranularity:, optionalpickerColumns:/calendarKind:.
Fixes #
- Picker sheets use theme scope for background color instead of hard-coded values.
- Static-analysis cleanup (
dart analyze libclean).
0.1.5 #
Features #
UnifiedInputThemeData— optional scope viaUnifiedInputThemeScope(onlychildrequired): brightness/palette; disabled & locked label/field colors and opacities; placeholder; required icon; validation/suffix/loading colors;pickerSheetBackgroundColor;UnifiedInputPickerHeaderStyle(header padding and colors);UnifiedInputMultiPickerCheckboxStyle(radius and colors);UnifiedInputDefaultSuffixIcons.UnifiedInputThemeResolver— helpers used by [UnifiedBaseTextField] (disabledLabelColor,disabledFieldColor,requiredIcon,placeholderStyle,validationColor, etc.) plus picker sheet background and default suffix icons.- Picker sheets and wheel chrome use scope sheet background when set; otherwise
Theme.bottomSheetTheme.backgroundColorthen palettesheetBackground.
API #
UnifiedFieldsContextXgetters renamed to avoid app extension clashes:unifiedFieldsScreenWidth,unifiedFieldsScreenHeight,unifiedFieldsUseDialogLayout,unifiedFieldsPrimaryColor(old names kept as@Deprecated).UnifiedFieldsDateWheelStyle.forPicker— optionalcontext:for themed sheet background; positionaloverridesreplaced with namedoverrides:.
Fixes #
- Static analysis: removed unnecessary imports, fixed
use_build_context_synchronouslyin async pickers,use_key_in_widget_constructorsonUnifiedDurationPickerSheet. - Duration calendar columns: year
0…999, month0…11, week0…4on wheels (not squeezed by smallmax).
0.1.4 #
Features and fixes #
- Time/duration wheel pickers, custom duration columns, Persian digits (KookFaNum), Jalali calendar/display fixes, and related APIs (see git history for full 0.1.4 scope).
0.1.3 #
- Field states on
UnifiedBaseTextField:loadingshows a suffix spinner (no full-field overlay or muted disabled chrome);interactionBlockedblocks taps/focus without looking disabled (date, async pickers).isDisabled/disabledshow placeholder and value together when both are set. labelInRow: one outer rounded border around label + body with a straight vertical divider (no inner radius on the body side).- Field controllers:
UnifiedPickerFieldController,UnifiedMultiPickerFieldController, async/date/time/duration/number variants, andUnifiedFormControllerfor imperativeopenPicker/requestFocusthat match tapping the bound field when mounted (attachUnifiedFieldHandlesinfield_controller_sync.dart). - Form + binding sync:
UnifiedForm…picker/date/time/async fields listen tobindingsobinding.clear()updates theFormFieldUI;syncFormFieldFromExternalValuehelpers for external writes. - Date field: uses
interactionBlockedinstead ofdisabled: trueso the picker opens without disabled styling. - Async pickers: removed full-field loading overlay; loading uses the base field suffix spinner.
- Dartdoc: documented remaining public controller APIs and
UnifiedDurationPickerSheetfields;public_member_api_docsis clean forlib/.
0.1.2 #
- Hoisted
isRequiredandplaceholderto the root constructor of every field. Decoration values (UnifiedInputDecoration.requiredField/UnifiedInputDecoration.placeholder) are still honored as a fallback for backwards compatibility, but field-level parameters now win. - Added
Form-aware wrappers for the customizable pickers:UnifiedFormCustomizablePickerField,UnifiedFormCustomizableMultiPickerField,UnifiedFormCustomizableAsyncPickerField,UnifiedFormCustomizableAsyncMultiPickerField. - Added a runnable
example/Flutter project demonstrating the showcase page. - Renamed
AppColorstoUnifiedColorsto match the package naming style. - Dartdoc comments on every public member across the package
(palette, decoration, controllers, base text field, sheet helpers,
color tokens, all unified and form-aware fields, plus the vendored
utility extensions). The
public_member_api_docslint is now enforced inanalysis_options.yamlto keep coverage from regressing.
0.1.1 #
- Documentation pass on the public API and minor README polish.
0.1.0 #
- Initial release: unified text / number / picker / async picker / date / time / duration fields,
Gregorian–Jalali calendar sheet, vendored scrollable positioned list, and
Form-aware wrappers.