save_points_extensions_utils 2.1.0
save_points_extensions_utils: ^2.1.0 copied to clipboard
Extensions and reusable widgets for Flutter. 100+ widget extensions, 40+ animated effects, pre-built UI components, data-type extensions, form validators, and spacing utilities. Zero dependencies, ful [...]
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.
2.1.0 - 2026-07-23 #
This release adds four new data-type extension families and rounds out the String API, plus a couple of correctness fixes. Fully backward compatible.
Added #
BoolExtensions/NullableBoolExtensions—toggled,toInt(),toYesNo(),ifTrue(),ifFalse(),fold(), and null-safeisTrue,isFalse,orDefault().SetExtensions— set algebra as non-mutating helpers:unionWith,intersectionWith,differenceWith,symmetricDifference,isSubsetOf,isSupersetOf,isDisjointWith, andtoggle.IterableExtensions—none,countWhere,partition,mapIndexed,forEachIndexed,zip,sumBy,sumByDouble, plusflatten(nested iterables) andwhereNotNull(nullable elements). Method names are kept distinct fromListExtensionsso both can be used together without ambiguity.FutureExtensions/FutureValueExtensions— fluent async helpersorElse,orElseGet,orNull,thenDelay,asFuture,futureDelayed.- String case conversion & parsing —
words(),toTitleCase(),toCamelCase(),toPascalCase(),toSnakeCase(),toKebabCase(),occurrencesOf(),toIntOrNull(),toDoubleOrNull(),toBoolOrNull(). - 39 new tests covering all of the above (221 total, all passing).
Fixed #
int.formatCurrency(decimals: 0)no longer throws aRangeErrorand no longer emits a trailing dot; the fractional logic was also simplified.- Removed dead/circular imports in
extensions/logics/extensions.dartthat imported symbols from the barrel itself and were never used.
2.0.0 - 2026-06-19 #
This release restructures the package into a clean, publishable library. All
runnable demo code now lives in example/, so consumers download only library
sources — no app scaffolding or native runners.
Breaking #
- Removed the demo app from the published package.
main.dart,app/,pages/, and the showcasesections/moved toexample/lib/. They were never part of the public API but were previously shipped with the package. - Removed
context.toggleTheme()fromContextExtensions. It reached into the demo app's private global theme state and never worked for real consumers. Manage theme mode in your own app (e.g. aValueNotifier<ThemeMode>). - Removed demo-only display cards from the public component API:
ClipCard,ColorCard,DataCard,TransformCard,GestureCard,ToggleCard,EmptyCard,ErrorCard, andHeroDetailPage. These were demo scaffolding and now live inexample/lib/cards/. The documented general-purpose components (buttons, cards, inputs, navigation, loaders, feedback, media) are unchanged.
Added #
- Real test suite — 180+ unit and widget tests covering string, number, list, map, color and duration extensions, all validators, and key components.
DurationExtensionsis now exported from the main barrel.repository,issue_tracker, anddocumentationlinks inpubspec.yaml.- Continuous integration workflow (format, analyze, test) and an
example/README.md.
Changed #
- Genuinely zero-dependency — removed the unused
cupertino_iconsdependency. - The
example/directory is now a standalone Flutter app with its own platform folders, runnable viacd example && flutter run.
Migration #
- Replace
context.toggleTheme()with your app's own theme-mode management. - If you depended on any of the removed demo cards, copy them from
example/lib/cards/into your project.
1.3.0 - 2026-02-01 #
Added #
-
40+ Widget Animation Effects: Easy-to-use animation extensions for any widget
- Fade Animations:
fadeIn(),fadeOut(),fade()- Control opacity with smooth transitions - Scale Animations:
scaleIn(),scaleOut(),animatedScale()- Scale widgets with various effects - Slide Animations:
slideInFromLeft(),slideInFromRight(),slideInFromTop(),slideInFromBottom(),slide()- Directional slide-in effects - Rotation Animations:
animatedRotate(),spinIn(),spin()- Rotation and continuous spinning - Bounce & Elastic:
bounceIn(),bounce(),elasticIn()- Elastic bounce effects - Shake Animations:
shake(),shakeHorizontal(),shakeVertical()- Error feedback effects - Pulse Animations:
pulse(),heartbeat()- Pulsing and heartbeat effects - Flip Animations:
flipHorizontal(),flipVertical(),flipIn()- Card flip effects - Shimmer:
shimmer()- Loading placeholder effect with customizable direction - Zoom Animations:
zoomIn(),zoomOut()- Zoom with fade effects - Special Effects:
swing(),wobble(),blurIn(),float(),glow()- Unique animation effects - Fun Animations:
jello(),rubberBand()- Playful animation effects - Hero Animation:
hero()- Easy hero transition wrapper - Utility Animations:
animatedSize(),crossFade(),animatedColor(),typing()- Utility animation wrappers
- Fade Animations:
-
Widget Animation Effects Demo Section: Interactive showcase in the demo app
- Each animation includes restart/toggle functionality
- Organized by animation category
- Hero animation demo with navigation
Changed #
- Renamed
WidgetAnimationExtensionstoAnimatedWidgetEffectsExtensionsto avoid conflicts - Renamed
rotate()toanimatedRotate()andscale()toanimatedScale()to avoid conflicts with transform extensions - Updated package description to highlight 40+ animated effects
- Enhanced exports in
extensions.dartto include all animation-related extensions
Documentation #
- Added comprehensive widget animation effects section in demo app
- All animation methods include inline documentation and examples
- Updated README with widget animation effects documentation
1.1.0 - 2026-02-01 #
Added #
- 40+ Pre-built UI Components: Production-ready reusable widgets
AvatarWidget- Customizable avatar with fallback and status indicatorBadgeWidget- Notification and status badgesBreadcrumbWidget- Navigation breadcrumbsCarouselWidget- Image/content carousel with indicatorsClipCard- Demonstration card for clip extensionsColorCard- Color manipulation demonstrationCopyButton- Copy-to-clipboard button widgetCustomBottomSheet- Styled bottom sheet componentCustomButton- Customizable button with loading statesCustomCard- Enhanced card with various stylesCustomChip- Stylized chip/tag componentCustomDialog- Customizable dialog with actionsCustomListTile- Enhanced list tile with more optionsCustomTextField- Styled text field with validationDataCard- Card for displaying data with labelsDividerWidget- Customizable divider with textDrawerWidget- Navigation drawer componentDropdownWidget- Custom dropdown selectorEmptyCard- Empty state card componentEmptyStateWidget- Full empty state with icon and messageErrorCard- Error display cardExpansionCard- Expandable card with contentFloatingActionButtonWidget- Custom FAB with extended optionsGestureCard- Demonstration card for gesture extensionsHeroDetailPage- Hero animation detail pageIconButtonWidget- Custom icon buttonInfoBanner- Information banner componentLoadingIndicator- Custom loading spinnerMenuWidget- Menu/popup menu componentNavigationBarWidget- Bottom navigation barNotificationCard- Notification display cardProgressBar- Linear and circular progress indicatorsRatingWidget- Star rating componentSearchBarWidget- Search input with filteringSectionWrapper- Section wrapper for organized layoutsSegmentedControl- iOS-style segmented controlShimmerLoading- Shimmer loading effectSkeletonLoader- Skeleton screen loaderSnackbarWidget- Custom snackbar componentStepperWidget- Step-by-step progress indicatorTabsWidget- Custom tabs componentTagWidget- Tag/label componentTimelineWidget- Timeline component for eventsToggleCard- Toggle demonstration cardTooltipWidget- Custom tooltip componentTransformCard- Transform extensions demonstration card
Changed #
- Updated package description to highlight 40+ pre-built components
- Enhanced component library with comprehensive widget collection
Documentation #
- Added components section in library structure
- All components include inline documentation and examples
1.0.2+1 - 2025-12-16 #
Added #
- Example directory with comprehensive demo app
- Example tab now visible on pub.dev package page
- Example demonstrates all major features: widget extensions, string/number/date extensions, validators, debounce/throttle
Documentation #
- Added working example that showcases package capabilities
- Example includes interactive demonstrations of all extension types
1.3.0+1 - 2025-12-16 #
Added #
- Live demo link in README (https://chipper-crisp-9bdfab.netlify.app/)
- Demo preview GIF in README
- Enhanced documentation with demo call-to-action buttons
Changed #
- Updated README installation instructions to use pub.dev version
- Improved README navigation with demo link
- Updated CHANGELOG with proper release date
Documentation #
- Added prominent demo links in multiple README sections
- Updated installation examples to reflect published package
1.0.0+1 - 2025-12-01 #
Added #
-
100+ Widget Extensions: Comprehensive widget chaining and modification methods
- Core extensions (padding, margin, center, container, opacity, visibility)
- Gesture extensions (onTap, onLongPress, onDoubleTap, inkWell)
- Clip extensions (clipRRect, clipOval, clipRect)
- Transform extensions (rotate, scale, translate)
- Layout extensions (align, positioned, aspectRatio)
- Material extensions (material, card)
- Animation extensions (hero, animatedSwitcher)
- Scroll extensions (scrollable, singleChildScrollView)
- Sizing extensions (sizedBox, constrained, expanded)
- Semantics extensions (tooltip, semanticsLabel)
- Text extensions (textStyle, textAlign)
- Icon extensions (iconSize, iconColor)
- Image extensions (imageFit, imageAlignment)
- List extensions (listView, gridView)
- Stack extensions (positioned, align)
- Column/Row extensions (withSpacing, withMainAxisAlignment)
-
Data Type Extensions: Enhanced functionality for built-in types
- String extensions (capitalize, validation, formatting)
- List extensions (chunk, firstOrNull, lastOrNull, safe operations)
- Map extensions (getOrDefault, filter, mapKeys, mapValues)
- Number extensions (formatCurrency, isBetween, clamp)
- DateTime extensions (isToday, isYesterday, format, timeAgo)
- Color extensions (darken, lighten, hexString, isDark)
- Context extensions (theme access, screen dimensions, navigation)
- Animation extensions (status checks, value mapping, controller utilities)
-
Form Validation: Comprehensive validators
- Basic validators (required, email, phone, URL, numeric, integer)
- Length validators (minLength, maxLength, rangeLength)
- Pattern validators (custom regex)
- Comparison validators (match, minValue, maxValue, range)
- Combined validators (combine multiple validators)
-
Utility Classes:
- Spacing utilities (constants and helpers)
- App constants (animation durations, delays, retries, pagination)
- Formatters (number, date, string)
- Helpers (retry, debounce, throttle)
- Color utilities (manipulation, conversion)
- URL utilities (parsing, validation)
-
Configuration Models: Immutable data classes with copyWith
- RetryConfig, PaginationConfig, FormatterConfig
- ValidatorConfig, UrlConfig, ColorConfig
- AnimationConfig, CacheConfig
-
Documentation:
- Comprehensive README with examples
- Best practices guide
- Conflict prevention guide
- Library declaration guide
- Publishing guide
Features #
- Zero dependencies (pure Flutter/Dart)
- Null-safe extensions
- Type-safe utilities
- Fully documented with examples
- Production-ready code
- Modular architecture
- Conflict prevention strategies
Documentation #
- Complete API documentation
- Usage examples for all extensions
- Best practices guide
- Conflict prevention strategies
- Publishing guide