diff --git a/CHANGELOG.md b/CHANGELOG.md index 70eeec3..6fa16fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## [4.1.0] - May 29, 2023 + +- [New] VxAdaptive widget for responsive screen adaption and scaling. +- [New] VxFlip widget for flipping effect. +- [New] VxStat widget for common stats view. +- [New] New extension methods for context, color, duration, and function etc. +- [New] debounce() and throttle() extension methods added along with .foregroundColor(). +- [New] More boolean for device and OS checks. +- [Breaking] VxDiscList and VxDecimalList are now VxUnorderedList and VxOrderedList with more options. +- VStack, HStack, VxTimeline, VxUniversal etc improved. +- Demo updated. +- Many Bug Fixes. + ## [4.0.0] - May 22, 2023 - [New] VxFilter to support filters on your widgets. diff --git a/example/lib/new/test.dart b/example/lib/new/test.dart index e69de29..8b13789 100644 --- a/example/lib/new/test.dart +++ b/example/lib/new/test.dart @@ -0,0 +1 @@ + diff --git a/example/pubspec.lock b/example/pubspec.lock index f6b4507..b179b67 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -376,7 +376,7 @@ packages: path: ".." relative: true source: path - version: "4.0.0" + version: "4.1.0" vxstate: dependency: transitive description: diff --git a/lib/src/flutter/animated/animated_height.dart b/lib/src/flutter/animated/animated_height.dart index a261d64..db6fb70 100644 --- a/lib/src/flutter/animated/animated_height.dart +++ b/lib/src/flutter/animated/animated_height.dart @@ -14,7 +14,8 @@ class VxAnimatedHeightView extends StatefulWidget { final int? currentPageIndex; const VxAnimatedHeightView( - {super.key, required this.pageViewChild, + {super.key, + required this.pageViewChild, required this.computeAspectRadio, this.notifyScroll, required this.itemCount, diff --git a/lib/src/flutter/badge.dart b/lib/src/flutter/badge.dart index 7bd31f9..f487285 100644 --- a/lib/src/flutter/badge.dart +++ b/lib/src/flutter/badge.dart @@ -34,7 +34,8 @@ class VxBadge extends StatelessWidget { /// To provide an optional widget like an Icon final Widget? optionalWidget; - const VxBadge({super.key, + const VxBadge({ + super.key, required this.child, this.type = VxBadgeType.round, this.color, diff --git a/lib/src/flutter/common/velocity_round.dart b/lib/src/flutter/common/velocity_round.dart index 6d835bf..9defa6e 100644 --- a/lib/src/flutter/common/velocity_round.dart +++ b/lib/src/flutter/common/velocity_round.dart @@ -24,7 +24,8 @@ class VxRound extends StatelessWidget { final dynamic child; final TextStyle? textStyle; - const VxRound({super.key, + const VxRound({ + super.key, this.type = VxRoundType.point, this.size, this.color, diff --git a/lib/src/flutter/divider.dart b/lib/src/flutter/divider.dart index 8fcb758..b4bcdb3 100644 --- a/lib/src/flutter/divider.dart +++ b/lib/src/flutter/divider.dart @@ -12,7 +12,8 @@ class VxDivider extends StatelessWidget { final double? indent; final double? endIndent; - const VxDivider({super.key, + const VxDivider({ + super.key, this.type = VxDividerType.horizontal, this.color, this.width = 1, diff --git a/lib/src/flutter/marquee.dart b/lib/src/flutter/marquee.dart index 60688b7..3ec58a8 100644 --- a/lib/src/flutter/marquee.dart +++ b/lib/src/flutter/marquee.dart @@ -24,7 +24,8 @@ class VxMarquee extends StatefulWidget { final Axis scrollAxis; final double ratioOfBlankToScreen; - const VxMarquee({super.key, + const VxMarquee({ + super.key, required this.text, this.textStyle, this.scrollAxis = Axis.horizontal, diff --git a/lib/src/flutter/pinview.dart b/lib/src/flutter/pinview.dart index bd60a5c..2412c6f 100644 --- a/lib/src/flutter/pinview.dart +++ b/lib/src/flutter/pinview.dart @@ -71,7 +71,7 @@ class VxPinView extends StatefulWidget { this.onEditingComplete, this.onSubmitted, this.focusNode, - }) : assert(count > 0); + }) : assert(count > 0); @override VxPinViewState createState() => VxPinViewState(); diff --git a/lib/src/flutter/random.dart b/lib/src/flutter/random.dart index 51596e0..bc36fec 100644 --- a/lib/src/flutter/random.dart +++ b/lib/src/flutter/random.dart @@ -20,7 +20,11 @@ class VxRandomBox extends StatefulWidget { final bool changeOnRedraw; const VxRandomBox( - {super.key, this.width, this.height, this.child, this.changeOnRedraw = true}); + {super.key, + this.width, + this.height, + this.child, + this.changeOnRedraw = true}); @override VxRandomBoxState createState() => VxRandomBoxState(); diff --git a/lib/src/flutter/rating.dart b/lib/src/flutter/rating.dart index 068cf8c..57e00c9 100644 --- a/lib/src/flutter/rating.dart +++ b/lib/src/flutter/rating.dart @@ -51,7 +51,8 @@ class VxRating extends StatefulWidget { /// Use onRatingUpdate to get the selected value. final ValueChanged onRatingUpdate; - const VxRating({super.key, + const VxRating({ + super.key, this.maxRating = 10.0, this.count = 5, this.value = 10.0, diff --git a/pubspec.yaml b/pubspec.yaml index 94927f0..a0b3052 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: velocity_x description: A minimalist Flutter framework for rapidly building custom designs. -version: 4.0.0 +version: 4.1.0 homepage: https://velocityx.dev repository: https://github.com/iampawan/VelocityX documentation: https://velocityx.dev diff --git a/test/flutter/text_test.dart b/test/flutter/text_test.dart index 67b5bdb..a8da7d8 100644 --- a/test/flutter/text_test.dart +++ b/test/flutter/text_test.dart @@ -51,8 +51,7 @@ void main() { }); group("Group all text tests", () { - testWidgets('text used on String creates a Text Widget', - (tester) async { + testWidgets('text used on String creates a Text Widget', (tester) async { await tester.pumpWidget( getDirectionalityWidget( child: 'VelocityX'.text.make(), @@ -65,8 +64,7 @@ void main() { ); }); - testWidgets('Text widget responds to Font Scale', - (tester) async { + testWidgets('Text widget responds to Font Scale', (tester) async { await tester.pumpWidget( getDirectionalityWidget( child: 'VelocityX'.text.xs.make(), @@ -80,8 +78,7 @@ void main() { ); }); - testWidgets('Text widget responds to fontSize', - (tester) async { + testWidgets('Text widget responds to fontSize', (tester) async { await tester.pumpWidget( getDirectionalityWidget( child: "VelocityX".text.size(24).make(), @@ -94,8 +91,7 @@ void main() { ); }); - testWidgets('Text widget responds to FontWeight', - (tester) async { + testWidgets('Text widget responds to FontWeight', (tester) async { await tester.pumpWidget( getDirectionalityWidget( child: 'VelocityX'.text.medium.make(), @@ -112,8 +108,7 @@ void main() { ); }); - testWidgets('Text widget responds to FontStyle', - (tester) async { + testWidgets('Text widget responds to FontStyle', (tester) async { await tester.pumpWidget( getDirectionalityWidget(child: 'VelocityX'.text.italic.make())); @@ -123,8 +118,7 @@ void main() { ); }); - testWidgets('Text widget responds to alignment', - (tester) async { + testWidgets('Text widget responds to alignment', (tester) async { await tester.pumpWidget( getDirectionalityWidget(child: 'VelocityX'.text.start.make())); @@ -132,8 +126,7 @@ void main() { TextAlign.start); }); - testWidgets('Text widget responds to letter spacing', - (tester) async { + testWidgets('Text widget responds to letter spacing', (tester) async { await tester.pumpWidget( getDirectionalityWidget(child: 'VelocityX'.text.tightest.make())); @@ -158,8 +151,7 @@ void main() { 4.0); }); - testWidgets('Text widget responds to TextDecoration', - (tester) async { + testWidgets('Text widget responds to TextDecoration', (tester) async { await tester.pumpWidget( getDirectionalityWidget(child: 'VelocityX'.text.underline.make())); @@ -171,8 +163,7 @@ void main() { TextDecoration.underline); }); - testWidgets('Text widget responds to line height', - (tester) async { + testWidgets('Text widget responds to line height', (tester) async { await tester.pumpWidget( getDirectionalityWidget(child: 'VelocityX'.text.heightSnug.make())); @@ -182,8 +173,7 @@ void main() { 0.875); }); - testWidgets('Text widget responds to text utilities', - (tester) async { + testWidgets('Text widget responds to text utilities', (tester) async { await tester.pumpWidget( getDirectionalityWidget(child: 'VelocityX'.text.uppercase.make()));