From fe20ceb516c2d65df53b220305c3203ea2d189ec Mon Sep 17 00:00:00 2001 From: Gabriel Terwesten Date: Mon, 29 May 2023 18:23:25 +0200 Subject: [PATCH] refactor!: use `Fleet` as the prefix for Flutter drop-in replacements (#48) --- packages/fleet/README.md | 22 ++-- packages/fleet/dartdoc_options.yaml | 6 +- ...dget.md => Flutter_drop-in_replacement.md} | 0 packages/fleet/example/lib/hike_graph.dart | 2 +- packages/fleet/lib/fleet.dart | 22 ++-- packages/fleet/lib/modifiers.dart | 26 ++-- packages/fleet/lib/src/animation/animate.dart | 28 ++--- .../src/widgets/basic_flutter_widgets.dart | 117 +++++++++--------- 8 files changed, 112 insertions(+), 111 deletions(-) rename packages/fleet/doc/{Animatable_Flutter_widget.md => Flutter_drop-in_replacement.md} (100%) diff --git a/packages/fleet/README.md b/packages/fleet/README.md index a38d06f..ed7728f 100644 --- a/packages/fleet/README.md +++ b/packages/fleet/README.md @@ -138,17 +138,17 @@ extensions on `int`, e.g `250.ms` is equivalent to The following drop-in replacements for Flutter framework widgets are provided for animating with Fleet: -- AAlign -- AColoredBox -- AContainer -- AOpacity -- APadding -- APositioned -- APositionedDirectional -- ASizedBox -- ASliverOpacity -- ASliverPadding -- ATransform +- FleetAlign +- FleetColoredBox +- FleetContainer +- FleetOpacity +- FleetPadding +- FleetPositioned +- FleetPositionedDirectional +- FleetSizedBox +- FleetSliverOpacity +- FleetSliverPadding +- FleetTransform The following provided widgets are specific to Fleet: diff --git a/packages/fleet/dartdoc_options.yaml b/packages/fleet/dartdoc_options.yaml index 54d0f8f..b260877 100644 --- a/packages/fleet/dartdoc_options.yaml +++ b/packages/fleet/dartdoc_options.yaml @@ -2,8 +2,8 @@ dartdoc: categories: 'Animation': markdown: doc/Animation.md - 'Animatable Flutter widget': - markdown: doc/Animatable_Flutter_widget.md + 'Flutter drop-in replacement': + markdown: doc/Flutter_drop-in_replacement.md categoryOrder: - 'Animation' - - 'Animatable Flutter widget' + - 'Flutter drop-in replacement' diff --git a/packages/fleet/doc/Animatable_Flutter_widget.md b/packages/fleet/doc/Flutter_drop-in_replacement.md similarity index 100% rename from packages/fleet/doc/Animatable_Flutter_widget.md rename to packages/fleet/doc/Flutter_drop-in_replacement.md diff --git a/packages/fleet/example/lib/hike_graph.dart b/packages/fleet/example/lib/hike_graph.dart index 972fa9f..80ed243 100644 --- a/packages/fleet/example/lib/hike_graph.dart +++ b/packages/fleet/example/lib/hike_graph.dart @@ -130,7 +130,7 @@ class GraphCapsule extends StatelessWidget { @override Widget build(BuildContext context) { final relativeRange = range.relativeTo(overallRange); - return AContainer( + return FleetContainer( height: height * relativeRange.magnitude, width: 24, decoration: ShapeDecoration( diff --git a/packages/fleet/lib/fleet.dart b/packages/fleet/lib/fleet.dart index a9eeab9..59a9d77 100644 --- a/packages/fleet/lib/fleet.dart +++ b/packages/fleet/lib/fleet.dart @@ -42,16 +42,16 @@ export 'src/common.dart' show Block; export 'src/environment.dart' show EnvironmentKey, EnvironmentValueModifiers; export 'src/widgets/basic_flutter_widgets.dart' show - AAlign, - AColoredBox, - AContainer, - AOpacity, - APadding, - APositioned, - APositionedDirectional, - ASizedBox, - ASliverOpacity, - ASliverPadding, - ATransform; + FleetAlign, + FleetColoredBox, + FleetContainer, + FleetOpacity, + FleetPadding, + FleetPositioned, + FleetPositionedDirectional, + FleetSizedBox, + FleetSliverOpacity, + FleetSliverPadding, + FleetTransform; export 'src/widgets/uniform_padding.dart' show Edge, Edges, UniformPadding, defaultUniformPadding; diff --git a/packages/fleet/lib/modifiers.dart b/packages/fleet/lib/modifiers.dart index 5475de1..c3fa26c 100644 --- a/packages/fleet/lib/modifiers.dart +++ b/packages/fleet/lib/modifiers.dart @@ -36,7 +36,7 @@ extension BasicModifiers on Widget { double? widthFactor, double? heightFactor, }) { - return AAlign( + return FleetAlign( alignment: alignment, widthFactor: widthFactor, heightFactor: heightFactor, @@ -50,7 +50,7 @@ extension BasicModifiers on Widget { double? widthFactor, double? heightFactor, }) { - return AAlign( + return FleetAlign( widthFactor: widthFactor, heightFactor: heightFactor, child: this, @@ -60,7 +60,7 @@ extension BasicModifiers on Widget { /// Sizes this widget to the given [width] and [height]. @widgetFactory Widget size({double? width, double? height}) { - return ASizedBox( + return FleetSizedBox( width: width, height: height, child: this, @@ -70,7 +70,7 @@ extension BasicModifiers on Widget { /// Sizes this widget to the given [Size]. @widgetFactory Widget sizeWith(Size size) { - return ASizedBox.fromSize( + return FleetSizedBox.fromSize( size: size, child: this, ); @@ -79,7 +79,7 @@ extension BasicModifiers on Widget { /// Sizes this widget to a square with the given [dimension]. @widgetFactory Widget square(double dimension) { - return ASizedBox.square( + return FleetSizedBox.square( dimension: dimension, child: this, ); @@ -88,7 +88,7 @@ extension BasicModifiers on Widget { /// Adds [padding] around this widget. @widgetFactory Widget padding(EdgeInsetsGeometry padding) { - return APadding( + return FleetPadding( padding: padding, child: this, ); @@ -97,7 +97,7 @@ extension BasicModifiers on Widget { /// Applies opacity to this widget. @widgetFactory Widget opacity(double opacity, {bool alwaysIncludeSemantics = false}) { - return AOpacity( + return FleetOpacity( opacity: opacity, alwaysIncludeSemantics: alwaysIncludeSemantics, child: this, @@ -107,7 +107,7 @@ extension BasicModifiers on Widget { /// Paints the area of this widget. @widgetFactory Widget boxColor(Color color) { - return AColoredBox( + return FleetColoredBox( color: color, child: this, ); @@ -122,7 +122,7 @@ extension BasicModifiers on Widget { bool transformHitTests = true, FilterQuality? filterQuality, }) { - return ATransform( + return FleetTransform( transform: transform, origin: origin, alignment: alignment, @@ -141,7 +141,7 @@ extension BasicModifiers on Widget { bool transformHitTests = true, FilterQuality? filterQuality, }) { - return ATransform.rotate( + return FleetTransform.rotate( angle: angle, origin: origin, alignment: alignment, @@ -158,7 +158,7 @@ extension BasicModifiers on Widget { bool transformHitTests = true, FilterQuality? filterQuality, }) { - return ATransform.translate( + return FleetTransform.translate( offset: offset, transformHitTests: transformHitTests, filterQuality: filterQuality, @@ -175,7 +175,7 @@ extension BasicModifiers on Widget { bool transformHitTests = true, FilterQuality? filterQuality, }) { - return ATransform.scale( + return FleetTransform.scale( scale: scale, origin: origin, alignment: alignment, @@ -195,7 +195,7 @@ extension BasicModifiers on Widget { bool transformHitTests = true, FilterQuality? filterQuality, }) { - return ATransform.scale( + return FleetTransform.scale( scaleX: x, scaleY: y, origin: origin, diff --git a/packages/fleet/lib/src/animation/animate.dart b/packages/fleet/lib/src/animation/animate.dart index dda3661..d0677dc 100644 --- a/packages/fleet/lib/src/animation/animate.dart +++ b/packages/fleet/lib/src/animation/animate.dart @@ -42,7 +42,7 @@ import 'transaction.dart'; /// child: ValueListenableBuilder( /// valueListenable: active, /// builder: (context, active, _) { -/// return AColoredBox(color: active ? Colors.blue : Colors.grey); +/// return FleetColoredBox(color: active ? Colors.blue : Colors.grey); /// }, /// ), /// ); @@ -117,7 +117,7 @@ mixin AnimatingStateMixin on State { /// _active = !_active; /// }); /// }, - /// child: AColoredBox(color: _active ? Colors.blue : Colors.grey), + /// child: FleetColoredBox(color: _active ? Colors.blue : Colors.grey), /// ); /// } /// } @@ -149,17 +149,17 @@ mixin AnimatingStateMixin on State { /// /// The following provided widgets support animating with Fleet: /// -/// - [AAlign] -/// - [AColoredBox] -/// - [AContainer] -/// - [AOpacity] -/// - [APadding] -/// - [APositioned] -/// - [APositionedDirectional] -/// - [ASizedBox] -/// - [ASliverOpacity] -/// - [ASliverPadding] -/// - [ATransform] +/// - [FleetAlign] +/// - [FleetColoredBox] +/// - [FleetContainer] +/// - [FleetOpacity] +/// - [FleetPadding] +/// - [FleetPositioned] +/// - [FleetPositionedDirectional] +/// - [FleetSizedBox] +/// - [FleetSliverOpacity] +/// - [FleetSliverPadding] +/// - [FleetTransform] /// /// The following provided widgets are specific to Fleet: /// @@ -200,7 +200,7 @@ mixin AnimatingStateMixin on State { /// child: Animated( /// animation: Curves.ease.animation(250.ms), /// value: _active, -/// child: AColoredBox(color: _active ? Colors.blue : Colors.grey), +/// child: FleetColoredBox(color: _active ? Colors.blue : Colors.grey), /// ), /// ); /// } diff --git a/packages/fleet/lib/src/widgets/basic_flutter_widgets.dart b/packages/fleet/lib/src/widgets/basic_flutter_widgets.dart index 7f04bcd..fa699d9 100644 --- a/packages/fleet/lib/src/widgets/basic_flutter_widgets.dart +++ b/packages/fleet/lib/src/widgets/basic_flutter_widgets.dart @@ -15,15 +15,15 @@ typedef _AlignAnimatableParameters = ({ OptionalAnimatableDouble heightFactor, }); -/// Animatable version of [Align]. +/// Fleet's drop-in replacement of [Align]. /// -/// {@category Animatable Flutter widget} -class AAlign extends Align +/// {@category Flutter drop-in replacement} +class FleetAlign extends Align with AnimatableSingleChildRenderObjectWidgetMixin< _AlignAnimatableParameters> { /// Creates an animatable version of [Align]. - const AAlign({ + const FleetAlign({ super.key, super.alignment, super.widthFactor, @@ -68,12 +68,12 @@ class AAlign extends Align } } -/// Animatable version of [ColoredBox]. +/// Fleet's drop-in replacement of [AnimatedAlign]. /// -/// {@category Animatable Flutter widget} -class AColoredBox extends AnimatableStatelessWidget { +/// {@category Flutter drop-in replacement} +class FleetColoredBox extends AnimatableStatelessWidget { /// Creates an animatable version of [ColoredBox]. - const AColoredBox({super.key, required this.color, this.child}); + const FleetColoredBox({super.key, required this.color, this.child}); /// See [ColoredBox.color]. final Color color; @@ -112,13 +112,13 @@ typedef _ContainerAnimatableParameters = ({ OptionalAnimatableAlignmentGeometry transformAlignment, }); -/// Animatable version of [Container]. +/// Fleet's drop-in replacement of [Container]. /// -/// {@category Animatable Flutter widget} -class AContainer +/// {@category Flutter drop-in replacement} +class FleetContainer extends AnimatableStatelessWidget<_ContainerAnimatableParameters> { /// Creates an animatable version of [Container]. - AContainer({ + FleetContainer({ super.key, this.alignment, this.padding, @@ -229,15 +229,15 @@ class AContainer typedef _OpacityAnimatableParameters = ({AnimatableDouble opacity}); -/// Animatable version of [Opacity]. +/// Fleet's drop-in replacement of [Opacity]. /// -/// {@category Animatable Flutter widget} -class AOpacity extends Opacity +/// {@category Flutter drop-in replacement} +class FleetOpacity extends Opacity with AnimatableSingleChildRenderObjectWidgetMixin< _OpacityAnimatableParameters> { /// Creates an animatable version of [Opacity]. - const AOpacity({ + const FleetOpacity({ super.key, required super.opacity, super.alwaysIncludeSemantics, @@ -273,15 +273,15 @@ class AOpacity extends Opacity typedef _PaddingAnimatableParameters = ({AnimatableEdgeInsetsGeometry padding}); -/// Animatable version of [Padding]. +/// Fleet's drop-in replacement of [Padding]. /// -/// {@category Animatable Flutter widget} -class APadding extends Padding +/// {@category Flutter drop-in replacement} +class FleetPadding extends Padding with AnimatableSingleChildRenderObjectWidgetMixin< _PaddingAnimatableParameters> { /// Creates an animatable version of [Padding]. - const APadding({super.key, required super.padding, super.child}); + const FleetPadding({super.key, required super.padding, super.child}); @override _PaddingAnimatableParameters createAnimatableParameters( @@ -319,13 +319,13 @@ typedef _PositionedAnimatableParameters = ({ OptionalAnimatableDouble height, }); -/// Animatable version of [Positioned]. +/// Fleet's drop-in replacement of [Positioned]. /// -/// {@category Animatable Flutter widget} -class APositioned +/// {@category Flutter drop-in replacement} +class FleetPositioned extends AnimatableStatelessWidget<_PositionedAnimatableParameters> { /// Creates an animatable version of [Positioned]. - const APositioned({ + const FleetPositioned({ super.key, this.left, this.top, @@ -338,7 +338,7 @@ class APositioned assert(top == null || bottom == null || height == null); /// See [Positioned.fromRect]. - APositioned.fromRect({ + FleetPositioned.fromRect({ super.key, required Rect rect, required this.child, @@ -350,7 +350,7 @@ class APositioned bottom = null; /// See [Positioned.fromRelativeRect]. - APositioned.fromRelativeRect({ + FleetPositioned.fromRelativeRect({ super.key, required RelativeRect rect, required this.child, @@ -362,7 +362,7 @@ class APositioned height = null; /// See [Positioned.fill]. - const APositioned.fill({ + const FleetPositioned.fill({ super.key, this.left = 0.0, this.top = 0.0, @@ -373,7 +373,7 @@ class APositioned height = null; /// See [Positioned.directional]. - factory APositioned.directional({ + factory FleetPositioned.directional({ Key? key, required TextDirection textDirection, double? start, @@ -396,7 +396,7 @@ class APositioned right = end; break; } - return APositioned( + return FleetPositioned( key: key, left: left, top: top, @@ -471,12 +471,12 @@ class APositioned } } -/// Animatable version of [PositionedDirectional]. +/// Fleet's drop-in replacement of [PositionedDirectional]. /// -/// {@category Animatable Flutter widget} -class APositionedDirectional extends StatelessWidget { +/// {@category Flutter drop-in replacement} +class FleetPositionedDirectional extends StatelessWidget { /// Creates an animatable version of [PositionedDirectional]. - const APositionedDirectional({ + const FleetPositionedDirectional({ super.key, this.start, this.top, @@ -510,7 +510,7 @@ class APositionedDirectional extends StatelessWidget { @override Widget build(BuildContext context) { - return APositioned.directional( + return FleetPositioned.directional( textDirection: Directionality.of(context), start: start, top: top, @@ -527,15 +527,15 @@ typedef _SizedBoxAnimatableParameters = ({ AnimatableBoxConstraints additionalConstraints }); -/// Animatable version of [SizedBox]. +/// Fleet's drop-in replacement of [SizedBox]. /// -/// {@category Animatable Flutter widget} -class ASizedBox extends SizedBox +/// {@category Flutter drop-in replacement} +class FleetSizedBox extends SizedBox with AnimatableSingleChildRenderObjectWidgetMixin< _SizedBoxAnimatableParameters> { /// Creates an animatable version of [SizedBox]. - const ASizedBox({ + const FleetSizedBox({ super.key, super.height, super.width, @@ -543,10 +543,11 @@ class ASizedBox extends SizedBox }); /// See [SizedBox.fromSize]. - ASizedBox.fromSize({super.key, super.child, super.size}) : super.fromSize(); + FleetSizedBox.fromSize({super.key, super.child, super.size}) + : super.fromSize(); /// See [SizedBox.square]. - const ASizedBox.square({super.key, super.child, super.dimension}) + const FleetSizedBox.square({super.key, super.child, super.dimension}) : super.square(); BoxConstraints get _additionalConstraints { @@ -587,15 +588,15 @@ class ASizedBox extends SizedBox typedef _SliverOpacityAnimatableParameters = ({AnimatableDouble opacity}); -/// Animatable version of [SliverOpacity]. +/// Fleet's drop-in replacement of [SliverOpacity]. /// -/// {@category Animatable Flutter widget} -class ASliverOpacity extends SliverOpacity +/// {@category Flutter drop-in replacement} +class FleetSliverOpacity extends SliverOpacity with AnimatableSingleChildRenderObjectWidgetMixin< _SliverOpacityAnimatableParameters> { /// Creates an animatable version of [SliverOpacity]. - const ASliverOpacity({ + const FleetSliverOpacity({ super.key, required super.opacity, super.alwaysIncludeSemantics, @@ -633,15 +634,15 @@ typedef _SliverPaddingAnimatableParameters = ({ AnimatableEdgeInsetsGeometry padding }); -/// Animatable version of [SliverPadding]. +/// Fleet's drop-in replacement of [SliverPadding]. /// -/// {@category Animatable Flutter widget} -class ASliverPadding extends SliverPadding +/// {@category Flutter drop-in replacement} +class FleetSliverPadding extends SliverPadding with AnimatableSingleChildRenderObjectWidgetMixin< _SliverPaddingAnimatableParameters> { /// Creates an animatable version of [SliverPadding]. - const ASliverPadding({super.key, required super.padding, super.sliver}); + const FleetSliverPadding({super.key, required super.padding, super.sliver}); @override _SliverPaddingAnimatableParameters createAnimatableParameters( @@ -670,12 +671,12 @@ class ASliverPadding extends SliverPadding } } -/// Animatable version of [Transform]. +/// Fleet's drop-in replacement of [Transform]. /// -/// {@category Animatable Flutter widget} -abstract class ATransform extends Transform { +/// {@category Flutter drop-in replacement} +abstract class FleetTransform extends Transform { /// Creates an animatable version of [Transform]. - const factory ATransform({ + const factory FleetTransform({ Key? key, required Matrix4 transform, Offset? origin, @@ -686,7 +687,7 @@ abstract class ATransform extends Transform { }) = _MatrixTransform; /// Creates an animatable version of [Transform.rotate]. - factory ATransform.rotate({ + factory FleetTransform.rotate({ Key? key, required double angle, Offset? origin, @@ -697,7 +698,7 @@ abstract class ATransform extends Transform { }) = _RotateTransform; /// Creates an animatable version of [Transform.translate]. - factory ATransform.translate({ + factory FleetTransform.translate({ Key? key, required Offset offset, bool transformHitTests, @@ -706,7 +707,7 @@ abstract class ATransform extends Transform { }) = _TranslateTransform; /// Creates an animatable version of [Transform.scale]. - factory ATransform.scale({ + factory FleetTransform.scale({ Key? key, double? scale, double? scaleX, @@ -718,7 +719,7 @@ abstract class ATransform extends Transform { Widget? child, }) = _ScaleTransform; - const ATransform._({ + const FleetTransform._({ super.key, required super.transform, super.origin, @@ -737,8 +738,8 @@ typedef _TransformAnimatableParameters = ({ /// Animatable version of [Transform]. /// -/// {@category Animatable Flutter widget} -abstract class _TransformBase extends ATransform +/// {@category Flutter drop-in replacement} +abstract class _TransformBase extends FleetTransform with AnimatableSingleChildRenderObjectWidgetMixin< _TransformAnimatableParameters> {