swiss_army_component 0.5.12
swiss_army_component: ^0.5.12 copied to clipboard
Swiss Army Component: a reusable Flutter component library with widgets, utilities, and theme support. Includes a CLI to help install and use the package in existing apps.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.12 - 2026-04-12 #
Fixed #
- AppTextField: Fixed input height inconsistency caused by wrapping
TextFormFieldin a fixed-heightSizedBox. Replaced withConstrainedBox(minHeight)so the input area stays consistent while validation errors and helper text expand naturally below. - AppDropdown: Applied the same
SizedBox→ConstrainedBox(minHeight)fix to prevent dropdown input area from shrinking when validation errors appear.
0.5.11 - 2026-03-20 #
Fixed #
- AppPhoneTextField: Fixed height collapse when validation errors appear. Default height is now
70.h. - Dependencies: Upgraded all packages (
google_fonts8.x,flutter_svg2.2.4,pinput6.0.2, and more).
0.5.10 - 2026-03-20 #
Fixed #
- AppTextField & AppPhoneTextField: Reverted vertical spacing and density changes that caused layout collapse.
0.5.9 - 2026-03-20 #
Fixed #
- AppPhoneTextField: Fixed cursor alignment and height issues by adding
textAlignVertical: centerand explicitcursorHeight. - AppTextField: Standardized internal spacing and enabled
isDense: truefor perfect centering at any height. - Granular Heights: Added
phoneFieldHeightanddropdownHeighttoSACThemeConfigfor independent component height control.
0.5.8 - 2026-03-20 #
Fixed #
- Phone Field UI: Standardized
AppPhoneTextFieldbackground to white in light mode and adjusted internal padding to fix cursor misalignment. - Dropdown UI: Standardized
AppDropdownbackground to white in light mode for consistency. - Theme Merging: Fixed
SACThemeConfig.mergeto include all granular properties (focused borders, granular component colors), ensuring complex theme overrides are preserved.
0.5.7 - 2026-03-20 #
Fixed #
- Phone Validation: Added
isValidPhoneNumbertoFormValidatorforPhoneNumbercompatibility. - AppPhoneTextField: Added
phoneValidatorparameter to support standard string-based validators.
0.5.6 - 2026-03-20 #
Fixed #
- Theme Consistency: Refactored
AppButtonvariants to correctly merge with global theme styles, ensuring primary color inheritance. - Granular Theming: Added separate color properties for Elevated, Outlined, and Filled buttons in
SACThemeConfig. - Field Backgrounds: Fixed
AppPhoneTextFieldandAppDropdownto have a white background in light mode (consistent with other fields). - Height Standardization: Standardized all buttons and inputs to a default height of 52.0 logical pixels.
- Visual Feedback: Added distinct disabled state background for
AppPhoneTextField.
0.5.5 - 2026-03-20 #
Fixed #
- AppPhoneTextField: Now accurately respects global
inputHeightfrom theme. - SocialButton: Now respects global
buttonHeightfrom theme and includes missing internal padding fixes. - Comprehensive Standardization: Applied height standardization to all remaining input and button variants including
OTPTextField,AppPasswordField,ConfigOutlinedButton,AppTextButton, andAppGradientButton. - Flexibility: Added
heightparameter toCountryDropdown,StateDropdown,CityDropdown, andAppPasswordFieldfor granular overrides.
0.5.4 - 2026-03-19 #
Added #
- Standardized Component Heights: Introduced global configuration for input and button heights through
SACThemeConfig. - SACThemeExtension: Added a custom theme extension to store and access Swiss Army component-specific properties.
- SACThemeContext Extension: Added a
BuildContextextension for easy access toinputHeightandbuttonHeightwith a responsive fallback ofcontext.height * 0.07.
Changed #
- AppTextField: Now respects global
inputHeightfrom theme or fallback. - AppDropdown: Now respects global
inputHeightfrom theme or fallback. - CustomSearchBar: Replaced hardcoded height with theme-aware
inputHeightand fallback. - AppButtons: Updated
AppElevatedButton,NormalElevatedButton,AppSecondaryElevatedButton,AppOutlinedButton, andConfigElevatedButtonto respect globalbuttonHeightfrom theme or fallback.
Added #
- Default Height Fallback: Added a standard default height of
52.htoAppTextField,AppPhoneTextField, andAppDropdownwhen no height is explicitly provided. This ensures visual consistency across all input types by default.
Changed #
- AppDropdown: Added
heightparameter support and updated default verticalcontentPaddingto14.hto match text fields.
0.5.2 - 2026-03-15 #
Fixed #
- TextField Border Color: Fixed an issue where the
focusedBordercolor was hardcoded toAppColors.primary, ignoring the theme'sfocusedBordercolor or explicitfocusedBorderColorproperty. - TextField Height: Fixed an issue where the
heightparameter passed toAppTextField(and derived widgets) was being ignored. - AppPhoneTextField Consistency: Added
heightandcontentPaddingparameters toAppPhoneTextFieldto ensure visual consistency with regular text fields. DefaultcontentPaddingnow matchesAppTextField.
0.5.1 - 2026-02-10 #
Fixed #
- Nigeria Data Accuracy: Replaced incomplete "City" data for Nigeria with a custom, comprehensive list of all 37 States (including FCT) and 774 official Local Government Areas (LGAs). Selecting "Nigeria" in
CountryDropdownnow automatically sources this corrected data forStateDropdownandCityDropdown.
0.5.0 - 2026-02-03 #
Added #
- SocialButton Enhancements:
- Added support for new providers: X (Twitter), LinkedIn, GitHub, Microsoft, and Discord.
- Added
styleparameter supportingSocialButtonStyle.filled(default),SocialButtonStyle.outlined, andSocialButtonStyle.elevated. - Providers now support theme-aware branding (e.g., Apple/GitHub adapt to light/dark mode).
Fixed #
- BigAppText Theme Inheritance:
BigAppTextnow simply usesAppTextStyle.largewhich inherits fromTheme.of(context).textTheme.bodyLarge, ensuring correct color inheritance. - Tests: Improved test robustness for
widget_test.dartandotp_security_test.dartby disabling noisy debug logs.
0.4.3 - 2026-02-02 #
Fixed #
- Theme Configuration: Fixed an issue where
SACThemeConfigspecific text style overrides (e.g.,bodyLarge,displaySmall) were being ignored and overridden by the default primary text color. Users can now confidently override specific text styles in their theme config.
0.4.2 - 2026-01-23 #
Fixed #
- SocialButton: Added adaptive branding for Facebook. In dark mode, it now switches to a white background with a blue logo, consistent with the Apple login button branding.
0.4.1 - 2026-01-23 #
Changed #
- SocialButton: Added full customization support. Users can now override
bgColor,textColor,iconWidget,iconSize,borderRadius,borderSide,padding,fontSize,fontWeight,elevation, andiconSpacing. Provider defaults are preserved when no overrides are specified.
0.4.0 - 2026-01-23 #
0.3.3 - 2026-01-23 #
Changed #
- Button Elevation: Changed default elevation for
AppElevatedButtonandNormalElevatedButtonfrom2.0to0.0for a flatter, more modern default look.
0.3.2 - 2026-01-23 #
Fixed #
- AppText Font Family Inheritance: Removed hardcoded Poppins font default.
AppTextnow properly inheritsfontFamilyfromTheme.of(context). Users can still use Poppins by setting it in their theme or via thefontFamilyproperty.
0.3.1 - 2026-01-23 #
Fixed #
- AppText Theme Color Inheritance: Removed hardcoded black color default from
AppTextand all derived widgets, allowing proper color inheritance from theme. - Style Merging:
AppTextnow correctly prioritizes explicit properties (likecolor,fontSize) over the providedtextStyle. - Custom Font Support: Added support for non-Google fonts. Providing a
fontFamilynow uses a standardTextStyle, enabling asset-based fonts.
Changed #
- Updated text widgets to behave more predictably when composing styles.
0.3.0 - 2026-01-23 #
Added #
- Comprehensive Theme System: Expanded
SACThemeConfigwith 50+ new properties for granular control over all Flutter Material components- Component-specific theming: Scaffold, AppBar, BottomNavigationBar, NavigationBar, NavigationRail, Drawer, FAB
- Button theming: ElevatedButton, OutlinedButton, TextButton, FilledButton, IconButton
- Surface theming: Cards, Dialogs, BottomSheet, Snackbar, PopupMenu
- Input theming: TextField decoration, Checkbox, Radio, Switch, Slider, ProgressIndicator
- Display theming: Tooltip, Divider, ListTile, TabBar, DataTable, Chip, Badge, SearchBar, SegmentedButton, ExpansionTile
- Typography: Full
TextThemecustomization withfontFamilyand individual text style overrides - Interaction states: splash, highlight, hover, focus, disabled colors
- Mode-specific overrides: Separate
...Lightand...Darkproperties for complete light/dark mode customization
Changed #
- Updated
README.mdwith advanced theming documentation and examples - Enhanced
example/example.dartto showcase new theme capabilities including typography configuration
Fixed #
- Lint issue in OTP widget: Added braces around if-statement return
- Removed unnecessary library declaration
- Removed duplicate import in test file
0.2.1 - 2026-01-23 #
0.1.0 - 2026-01-22 #
Added #
- Initial release of My Flutter Components package
- Pre-built widgets:
- Custom AppBar
- Themed AppButton
- AppText for text styling
- OTP input field
- SearchBar component
- Space utilities
- TextFields with validation
- General widget utilities
- Complete theme system:
- Color palette management
- Chip theme customization
- Responsive design support
- Utility functions:
- Form validators
- Text formatters
- Device utilities
- Application logging
- Helper functions
- Constants:
- API constants
- Image paths
- Size constants
- Text strings
- Documentation and examples
0.2.0 - 2026-01-22 #
Changed #
- Converted repository to a pure package by removing all app template files (
lib/main.dart,lib/app/**). - Updated README and Setup Guide to focus on package usage only.
- Renamed package from
my_flutter_componentstoswiss_army_component.
Added #
- CLI
sacwith commands:doctorto check Flutter environmentinstallto addswiss_army_componentto an app'spubspec.yamlexamplesto print usage snippets
- Pubspec updates: version bump to
0.2.0,executablesentry, and CLI dependencies.