diff --git a/example/lib/src/storybook/stories/modal.dart b/example/lib/src/storybook/stories/modal.dart index cd50df0b..708854df 100644 --- a/example/lib/src/storybook/stories/modal.dart +++ b/example/lib/src/storybook/stories/modal.dart @@ -42,11 +42,11 @@ class ModalStory extends Story { useRootNavigator: false, barrierColor: barrierColor, builder: (_) { - return MoonModal( - backgroundColor: backgroundColor, - borderRadius: borderRadiusKnob != null ? BorderRadius.circular(borderRadiusKnob.toDouble()) : null, - child: Directionality( - textDirection: Directionality.of(context), + return Directionality( + textDirection: Directionality.of(context), + child: MoonModal( + backgroundColor: backgroundColor, + borderRadius: borderRadiusKnob != null ? BorderRadius.circular(borderRadiusKnob.toDouble()) : null, child: SizedBox( width: 300, child: Column( diff --git a/lib/src/theme/accordion/accordion_item_properties.dart b/lib/src/theme/accordion/accordion_item_properties.dart index 16e43d58..c146f08b 100644 --- a/lib/src/theme/accordion/accordion_item_properties.dart +++ b/lib/src/theme/accordion/accordion_item_properties.dart @@ -12,7 +12,7 @@ class MoonAccordionItemProperties extends ThemeExtension("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DiagnosticsProperty("transitionDuration", transitionDuration)) ..add(DiagnosticsProperty("transitionCurve", transitionCurve)); } diff --git a/lib/src/theme/alert/alert_properties.dart b/lib/src/theme/alert/alert_properties.dart index 1719fc70..a8aa93c6 100644 --- a/lib/src/theme/alert/alert_properties.dart +++ b/lib/src/theme/alert/alert_properties.dart @@ -22,7 +22,7 @@ class MoonAlertProperties extends ThemeExtension with Diagn ); /// Border radius for alert. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Horizontal space between alert leading, trailing and title. final double horizontalGap; @@ -62,7 +62,7 @@ class MoonAlertProperties extends ThemeExtension with Diagn @override MoonAlertProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? horizontalGap, double? minimumHeight, double? verticalGap, @@ -90,7 +90,7 @@ class MoonAlertProperties extends ThemeExtension with Diagn if (other is! MoonAlertProperties) return this; return MoonAlertProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, horizontalGap: lerpDouble(horizontalGap, other.horizontalGap, t)!, minimumHeight: lerpDouble(minimumHeight, other.minimumHeight, t)!, verticalGap: lerpDouble(verticalGap, other.verticalGap, t)!, @@ -107,7 +107,7 @@ class MoonAlertProperties extends ThemeExtension with Diagn super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonAlertProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("horizontalGap", horizontalGap)) ..add(DoubleProperty("minimumHeight", minimumHeight)) ..add(DoubleProperty("verticalGap", verticalGap)) diff --git a/lib/src/theme/authcode/authcode_properties.dart b/lib/src/theme/authcode/authcode_properties.dart index 86dca9a6..d745b208 100644 --- a/lib/src/theme/authcode/authcode_properties.dart +++ b/lib/src/theme/authcode/authcode_properties.dart @@ -24,7 +24,7 @@ class MoonAuthCodeProperties extends ThemeExtension with ); /// Border radius of the auth input field. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Horizontal space between auth input fields. final double gap; @@ -72,7 +72,7 @@ class MoonAuthCodeProperties extends ThemeExtension with @override MoonAuthCodeProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? gap, double? height, double? width, @@ -104,7 +104,7 @@ class MoonAuthCodeProperties extends ThemeExtension with if (other is! MoonAuthCodeProperties) return this; return MoonAuthCodeProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, gap: lerpDouble(gap, other.gap, t)!, height: lerpDouble(height, other.height, t)!, width: lerpDouble(width, other.width, t)!, @@ -123,7 +123,7 @@ class MoonAuthCodeProperties extends ThemeExtension with super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonAuthCodeProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("gap", gap)) ..add(DoubleProperty("height", height)) ..add(DoubleProperty("width", width)) diff --git a/lib/src/theme/avatar/avatar_size_properties.dart b/lib/src/theme/avatar/avatar_size_properties.dart index e5b6cec9..2895b6a2 100644 --- a/lib/src/theme/avatar/avatar_size_properties.dart +++ b/lib/src/theme/avatar/avatar_size_properties.dart @@ -61,7 +61,7 @@ class MoonAvatarSizeProperties extends ThemeExtension ); /// Avatar border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Avatar size value. final double avatarSizeValue; @@ -85,7 +85,7 @@ class MoonAvatarSizeProperties extends ThemeExtension @override MoonAvatarSizeProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? avatarSizeValue, double? badgeMarginValue, double? badgeSizeValue, @@ -105,7 +105,7 @@ class MoonAvatarSizeProperties extends ThemeExtension if (other is! MoonAvatarSizeProperties) return this; return MoonAvatarSizeProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, avatarSizeValue: lerpDouble(avatarSizeValue, other.avatarSizeValue, t)!, badgeMarginValue: lerpDouble(badgeMarginValue, other.badgeMarginValue, t)!, badgeSizeValue: lerpDouble(badgeSizeValue, other.badgeSizeValue, t)!, @@ -118,7 +118,7 @@ class MoonAvatarSizeProperties extends ThemeExtension super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonAvatarSizeProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("avatarSizeValue", avatarSizeValue)) ..add(DoubleProperty("badgeMarginValue", badgeMarginValue)) ..add(DoubleProperty("badgeSizeValue", badgeSizeValue)) diff --git a/lib/src/theme/borders.dart b/lib/src/theme/borders.dart index 763163d6..cddd2d13 100644 --- a/lib/src/theme/borders.dart +++ b/lib/src/theme/borders.dart @@ -17,25 +17,25 @@ class MoonBorders extends ThemeExtension with DiagnosticableTreeMix ); /// Interactive radius XS. - final BorderRadius interactiveXs; + final BorderRadiusGeometry interactiveXs; /// Interactive radius SM. - final BorderRadius interactiveSm; + final BorderRadiusGeometry interactiveSm; /// Interactive radius MD. - final BorderRadius interactiveMd; + final BorderRadiusGeometry interactiveMd; /// Surface radius XS. - final BorderRadius surfaceXs; + final BorderRadiusGeometry surfaceXs; /// Surface radius SM. - final BorderRadius surfaceSm; + final BorderRadiusGeometry surfaceSm; /// Surface radius MD. - final BorderRadius surfaceMd; + final BorderRadiusGeometry surfaceMd; /// Surface radius LG. - final BorderRadius surfaceLg; + final BorderRadiusGeometry surfaceLg; /// Default border width. final double borderWidth; @@ -53,13 +53,13 @@ class MoonBorders extends ThemeExtension with DiagnosticableTreeMix @override MoonBorders copyWith({ - BorderRadius? interactiveXs, - BorderRadius? interactiveSm, - BorderRadius? interactiveMd, - BorderRadius? surfaceXs, - BorderRadius? surfaceSm, - BorderRadius? surfaceMd, - BorderRadius? surfaceLg, + BorderRadiusGeometry? interactiveXs, + BorderRadiusGeometry? interactiveSm, + BorderRadiusGeometry? interactiveMd, + BorderRadiusGeometry? surfaceXs, + BorderRadiusGeometry? surfaceSm, + BorderRadiusGeometry? surfaceMd, + BorderRadiusGeometry? surfaceLg, double? borderWidth, }) { return MoonBorders( @@ -79,13 +79,13 @@ class MoonBorders extends ThemeExtension with DiagnosticableTreeMix if (other is! MoonBorders) return this; return MoonBorders( - interactiveXs: BorderRadius.lerp(interactiveXs, other.interactiveXs, t)!, - interactiveSm: BorderRadius.lerp(interactiveSm, other.interactiveSm, t)!, - interactiveMd: BorderRadius.lerp(interactiveMd, other.interactiveMd, t)!, - surfaceXs: BorderRadius.lerp(surfaceXs, other.surfaceXs, t)!, - surfaceSm: BorderRadius.lerp(surfaceSm, other.surfaceSm, t)!, - surfaceMd: BorderRadius.lerp(surfaceMd, other.surfaceMd, t)!, - surfaceLg: BorderRadius.lerp(surfaceLg, other.surfaceLg, t)!, + interactiveXs: BorderRadiusGeometry.lerp(interactiveXs, other.interactiveXs, t)!, + interactiveSm: BorderRadiusGeometry.lerp(interactiveSm, other.interactiveSm, t)!, + interactiveMd: BorderRadiusGeometry.lerp(interactiveMd, other.interactiveMd, t)!, + surfaceXs: BorderRadiusGeometry.lerp(surfaceXs, other.surfaceXs, t)!, + surfaceSm: BorderRadiusGeometry.lerp(surfaceSm, other.surfaceSm, t)!, + surfaceMd: BorderRadiusGeometry.lerp(surfaceMd, other.surfaceMd, t)!, + surfaceLg: BorderRadiusGeometry.lerp(surfaceLg, other.surfaceLg, t)!, borderWidth: lerpDouble(borderWidth, other.borderWidth, t)!, ); } @@ -95,13 +95,13 @@ class MoonBorders extends ThemeExtension with DiagnosticableTreeMix super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonBorders")) - ..add(DiagnosticsProperty("interactiveXs", interactiveXs)) - ..add(DiagnosticsProperty("interactiveSm", interactiveSm)) - ..add(DiagnosticsProperty("interactiveMd", interactiveMd)) - ..add(DiagnosticsProperty("surfaceXs", surfaceXs)) - ..add(DiagnosticsProperty("surfaceSm", surfaceSm)) - ..add(DiagnosticsProperty("surfaceMd", surfaceMd)) - ..add(DiagnosticsProperty("surfaceLg", surfaceLg)) + ..add(DiagnosticsProperty("interactiveXs", interactiveXs)) + ..add(DiagnosticsProperty("interactiveSm", interactiveSm)) + ..add(DiagnosticsProperty("interactiveMd", interactiveMd)) + ..add(DiagnosticsProperty("surfaceXs", surfaceXs)) + ..add(DiagnosticsProperty("surfaceSm", surfaceSm)) + ..add(DiagnosticsProperty("surfaceMd", surfaceMd)) + ..add(DiagnosticsProperty("surfaceLg", surfaceLg)) ..add(DoubleProperty("borderWidth", borderWidth)); } } diff --git a/lib/src/theme/button/button_size_properties.dart b/lib/src/theme/button/button_size_properties.dart index 838a1eec..cf257408 100644 --- a/lib/src/theme/button/button_size_properties.dart +++ b/lib/src/theme/button/button_size_properties.dart @@ -55,7 +55,7 @@ class MoonButtonSizeProperties extends ThemeExtension ); /// Button border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Space between button children. final double gap; @@ -83,7 +83,7 @@ class MoonButtonSizeProperties extends ThemeExtension @override MoonButtonSizeProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? gap, double? height, double? iconSizeValue, @@ -105,7 +105,7 @@ class MoonButtonSizeProperties extends ThemeExtension if (other is! MoonButtonSizeProperties) return this; return MoonButtonSizeProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, gap: lerpDouble(gap, other.gap, t)!, height: lerpDouble(height, other.height, t)!, iconSizeValue: lerpDouble(iconSizeValue, other.iconSizeValue, t)!, @@ -119,7 +119,7 @@ class MoonButtonSizeProperties extends ThemeExtension super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonButtonSizeProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("gap", gap)) ..add(DoubleProperty("height", height)) ..add(DoubleProperty("iconSizeValue", iconSizeValue)) diff --git a/lib/src/theme/checkbox/checkbox_properties.dart b/lib/src/theme/checkbox/checkbox_properties.dart index 2c61476d..ca3a1960 100644 --- a/lib/src/theme/checkbox/checkbox_properties.dart +++ b/lib/src/theme/checkbox/checkbox_properties.dart @@ -10,7 +10,7 @@ class MoonCheckboxProperties extends ThemeExtension with ); /// Checkbox border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; const MoonCheckboxProperties({ required this.borderRadius, @@ -18,7 +18,7 @@ class MoonCheckboxProperties extends ThemeExtension with @override MoonCheckboxProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, }) { return MoonCheckboxProperties( borderRadius: borderRadius ?? this.borderRadius, @@ -30,7 +30,7 @@ class MoonCheckboxProperties extends ThemeExtension with if (other is! MoonCheckboxProperties) return this; return MoonCheckboxProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, ); } @@ -39,6 +39,6 @@ class MoonCheckboxProperties extends ThemeExtension with super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonCheckboxProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)); + ..add(DiagnosticsProperty("borderRadius", borderRadius)); } } diff --git a/lib/src/theme/chip/chip_size_properties.dart b/lib/src/theme/chip/chip_size_properties.dart index 02c933b9..4b516226 100644 --- a/lib/src/theme/chip/chip_size_properties.dart +++ b/lib/src/theme/chip/chip_size_properties.dart @@ -28,7 +28,7 @@ class MoonChipSizeProperties extends ThemeExtension with ); /// Chip border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Space between chip children. final double gap; @@ -56,7 +56,7 @@ class MoonChipSizeProperties extends ThemeExtension with @override MoonChipSizeProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? gap, double? height, double? iconSizeValue, @@ -78,7 +78,7 @@ class MoonChipSizeProperties extends ThemeExtension with if (other is! MoonChipSizeProperties) return this; return MoonChipSizeProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, gap: lerpDouble(gap, other.gap, t)!, height: lerpDouble(height, other.height, t)!, iconSizeValue: lerpDouble(iconSizeValue, other.iconSizeValue, t)!, @@ -92,7 +92,7 @@ class MoonChipSizeProperties extends ThemeExtension with super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonChipSizeProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("gap", gap)) ..add(DoubleProperty("height", height)) ..add(DoubleProperty("iconSizeValue", iconSizeValue)) diff --git a/lib/src/theme/loaders/linear_loader/linear_loader_size_properties.dart b/lib/src/theme/loaders/linear_loader/linear_loader_size_properties.dart index c0e0b537..06b62070 100644 --- a/lib/src/theme/loaders/linear_loader/linear_loader_size_properties.dart +++ b/lib/src/theme/loaders/linear_loader/linear_loader_size_properties.dart @@ -35,7 +35,7 @@ class MoonLinearLoaderSizeProperties extends ThemeExtension("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("loaderHeight", loaderHeight)); } } diff --git a/lib/src/theme/modal/modal_properties.dart b/lib/src/theme/modal/modal_properties.dart index db2a6293..b85098dd 100644 --- a/lib/src/theme/modal/modal_properties.dart +++ b/lib/src/theme/modal/modal_properties.dart @@ -12,7 +12,7 @@ class MoonModalProperties extends ThemeExtension with Diagn ); /// Modal border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Modal transition duration. final Duration transitionDuration; @@ -28,7 +28,7 @@ class MoonModalProperties extends ThemeExtension with Diagn @override MoonModalProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, Duration? transitionDuration, Curve? transitionCurve, }) { @@ -44,7 +44,7 @@ class MoonModalProperties extends ThemeExtension with Diagn if (other is! MoonModalProperties) return this; return MoonModalProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, transitionDuration: lerpDuration(transitionDuration, other.transitionDuration, t), transitionCurve: other.transitionCurve, ); @@ -55,7 +55,7 @@ class MoonModalProperties extends ThemeExtension with Diagn super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonModalProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DiagnosticsProperty("transitionDuration", transitionDuration)) ..add(DiagnosticsProperty("transitionCurve", transitionCurve)); } diff --git a/lib/src/theme/popover/popover_properties.dart b/lib/src/theme/popover/popover_properties.dart index 201dc6f0..51d59ffe 100644 --- a/lib/src/theme/popover/popover_properties.dart +++ b/lib/src/theme/popover/popover_properties.dart @@ -17,7 +17,7 @@ class MoonPopoverProperties extends ThemeExtension with D ); /// Popover border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Popover distance to target child widget. final double distanceToTarget; @@ -41,7 +41,7 @@ class MoonPopoverProperties extends ThemeExtension with D @override MoonPopoverProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? distanceToTarget, Duration? transitionDuration, Curve? transitionCurve, @@ -61,7 +61,7 @@ class MoonPopoverProperties extends ThemeExtension with D if (other is! MoonPopoverProperties) return this; return MoonPopoverProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, distanceToTarget: lerpDouble(distanceToTarget, other.distanceToTarget, t)!, transitionDuration: lerpDuration(transitionDuration, other.transitionDuration, t), transitionCurve: other.transitionCurve, @@ -74,7 +74,7 @@ class MoonPopoverProperties extends ThemeExtension with D super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonPopoverProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("distanceToTarget", distanceToTarget)) ..add(DiagnosticsProperty("transitionDuration", transitionDuration)) ..add(DiagnosticsProperty("transitionCurve", transitionCurve)) diff --git a/lib/src/theme/progress/linear_progress/linear_progress_size_properties.dart b/lib/src/theme/progress/linear_progress/linear_progress_size_properties.dart index 6681e0db..bc5bad87 100644 --- a/lib/src/theme/progress/linear_progress/linear_progress_size_properties.dart +++ b/lib/src/theme/progress/linear_progress/linear_progress_size_properties.dart @@ -35,7 +35,7 @@ class MoonLinearProgressSizeProperties extends ThemeExtension("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("progressHeight", progressHeight)); } } diff --git a/lib/src/theme/tag/tag_size_properties.dart b/lib/src/theme/tag/tag_size_properties.dart index 7f2ab4f6..2e790156 100644 --- a/lib/src/theme/tag/tag_size_properties.dart +++ b/lib/src/theme/tag/tag_size_properties.dart @@ -30,7 +30,7 @@ class MoonTagSizeProperties extends ThemeExtension with D ); /// Tag border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Space between tag children. final double gap; @@ -62,7 +62,7 @@ class MoonTagSizeProperties extends ThemeExtension with D @override MoonTagSizeProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? gap, double? height, double? iconSizeValue, @@ -86,7 +86,7 @@ class MoonTagSizeProperties extends ThemeExtension with D if (other is! MoonTagSizeProperties) return this; return MoonTagSizeProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, gap: lerpDouble(gap, other.gap, t)!, height: lerpDouble(height, other.height, t)!, iconSizeValue: lerpDouble(iconSizeValue, other.iconSizeValue, t)!, @@ -101,7 +101,7 @@ class MoonTagSizeProperties extends ThemeExtension with D super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonTagSizeProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("gap", gap)) ..add(DoubleProperty("height", height)) ..add(DoubleProperty("iconSizeValue", iconSizeValue)) diff --git a/lib/src/theme/textarea/textarea_properties.dart b/lib/src/theme/textarea/textarea_properties.dart index bcb1b983..af85016e 100644 --- a/lib/src/theme/textarea/textarea_properties.dart +++ b/lib/src/theme/textarea/textarea_properties.dart @@ -16,7 +16,7 @@ class MoonTextAreaProperties extends ThemeExtension with ); /// TextArea border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// TextArea transition duration. final Duration transitionDuration; @@ -44,7 +44,7 @@ class MoonTextAreaProperties extends ThemeExtension with @override MoonTextAreaProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, Duration? transitionDuration, Curve? transitionCurve, EdgeInsetsGeometry? textPadding, @@ -66,7 +66,7 @@ class MoonTextAreaProperties extends ThemeExtension with if (other is! MoonTextAreaProperties) return this; return MoonTextAreaProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, transitionDuration: lerpDuration(transitionDuration, other.transitionDuration, t), transitionCurve: other.transitionCurve, textPadding: EdgeInsetsGeometry.lerp(textPadding, other.textPadding, t)!, @@ -80,7 +80,7 @@ class MoonTextAreaProperties extends ThemeExtension with super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonTextAreaProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DiagnosticsProperty("transitionDuration", transitionDuration)) ..add(DiagnosticsProperty("transitionCurve", transitionCurve)) ..add(DiagnosticsProperty("textPadding", textPadding)) diff --git a/lib/src/theme/toast/toast_properties.dart b/lib/src/theme/toast/toast_properties.dart index 7b249fbe..db517d03 100644 --- a/lib/src/theme/toast/toast_properties.dart +++ b/lib/src/theme/toast/toast_properties.dart @@ -18,7 +18,7 @@ class MoonToastProperties extends ThemeExtension with Diagn ); /// Toast border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// Space between toast children. final double gap; @@ -46,7 +46,7 @@ class MoonToastProperties extends ThemeExtension with Diagn @override MoonToastProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? gap, Duration? displayDuration, Duration? transitionDuration, @@ -68,7 +68,7 @@ class MoonToastProperties extends ThemeExtension with Diagn if (other is! MoonToastProperties) return this; return MoonToastProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, gap: lerpDouble(gap, other.gap, t)!, displayDuration: lerpDuration(displayDuration, other.displayDuration, t), transitionDuration: lerpDuration(transitionDuration, other.transitionDuration, t), @@ -82,7 +82,7 @@ class MoonToastProperties extends ThemeExtension with Diagn super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonToastProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("gap", gap)) ..add(DiagnosticsProperty("displayDuration", displayDuration)) ..add(DiagnosticsProperty("transitionDuration", transitionDuration)) diff --git a/lib/src/theme/tooltip/tooltip_properties.dart b/lib/src/theme/tooltip/tooltip_properties.dart index 50415fad..b255fb32 100644 --- a/lib/src/theme/tooltip/tooltip_properties.dart +++ b/lib/src/theme/tooltip/tooltip_properties.dart @@ -21,7 +21,7 @@ class MoonTooltipProperties extends ThemeExtension with D ); /// Tooltip border radius. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// The tooltip arrows base width. final double arrowBaseWidth; @@ -57,7 +57,7 @@ class MoonTooltipProperties extends ThemeExtension with D @override MoonTooltipProperties copyWith({ - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, double? arrowBaseWidth, double? arrowLength, double? arrowTipDistance, @@ -83,7 +83,7 @@ class MoonTooltipProperties extends ThemeExtension with D if (other is! MoonTooltipProperties) return this; return MoonTooltipProperties( - borderRadius: BorderRadius.lerp(borderRadius, other.borderRadius, t)!, + borderRadius: BorderRadiusGeometry.lerp(borderRadius, other.borderRadius, t)!, arrowBaseWidth: lerpDouble(arrowBaseWidth, other.arrowBaseWidth, t)!, arrowLength: lerpDouble(arrowLength, other.arrowLength, t)!, arrowTipDistance: lerpDouble(arrowTipDistance, other.arrowTipDistance, t)!, @@ -99,7 +99,7 @@ class MoonTooltipProperties extends ThemeExtension with D super.debugFillProperties(properties); properties ..add(DiagnosticsProperty("type", "MoonTooltipProperties")) - ..add(DiagnosticsProperty("borderRadius", borderRadius)) + ..add(DiagnosticsProperty("borderRadius", borderRadius)) ..add(DoubleProperty("arrowBaseWidth", arrowBaseWidth)) ..add(DoubleProperty("arrowLength", arrowLength)) ..add(DoubleProperty("arrowTipDistance", arrowTipDistance)) diff --git a/lib/src/utils/extensions.dart b/lib/src/utils/extensions.dart index 92cc9f67..1142f99a 100644 --- a/lib/src/utils/extensions.dart +++ b/lib/src/utils/extensions.dart @@ -11,26 +11,28 @@ extension DarkModeX on BuildContext { } } -extension BorderRadiusX on BorderRadius { +extension BorderRadiusX on BorderRadiusGeometry { /// Returns SmoothBorderRadius. - SmoothBorderRadius get smoothBorderRadius { + SmoothBorderRadius smoothBorderRadius(BuildContext context) { // FIXME: CornerSmoothing of 1 creates null pointer dereference error with SmoothRectangleBorder on mobile web/PWA // for some reason. So we use 0.999 instead. + final borderRadius = resolve(Directionality.of(context)); + return SmoothBorderRadius.only( topLeft: SmoothRadius( - cornerRadius: topLeft.x, + cornerRadius: borderRadius.topLeft.x, cornerSmoothing: 0.999, ), topRight: SmoothRadius( - cornerRadius: topRight.x, + cornerRadius: borderRadius.topRight.x, cornerSmoothing: 0.999, ), bottomLeft: SmoothRadius( - cornerRadius: bottomLeft.x, + cornerRadius: borderRadius.bottomLeft.x, cornerSmoothing: 0.999, ), bottomRight: SmoothRadius( - cornerRadius: bottomRight.x, + cornerRadius: borderRadius.bottomRight.x, cornerSmoothing: 0.999, ), ); diff --git a/lib/src/widgets/accordion/accordion_item.dart b/lib/src/widgets/accordion/accordion_item.dart index c2cc3783..0b813942 100644 --- a/lib/src/widgets/accordion/accordion_item.dart +++ b/lib/src/widgets/accordion/accordion_item.dart @@ -75,7 +75,7 @@ class MoonAccordionItem extends StatefulWidget { final bool showDivider; /// The accordion's border radius. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// {@macro flutter.material.Material.clipBehavior} final Clip? clipBehavior; @@ -375,7 +375,7 @@ class _MoonAccordionItemState extends State> with Single } Widget _buildChildren(BuildContext context, Widget? child) { - final BorderRadius effectiveBorderRadius = widget.borderRadius ?? + final BorderRadiusGeometry effectiveBorderRadius = widget.borderRadius ?? context.moonTheme?.accordionTheme.itemProperties.borderRadius ?? MoonBorders.borders.interactiveSm; @@ -484,7 +484,7 @@ class _MoonAccordionItemState extends State> with Single shadows: effectiveShadows, shape: SmoothRectangleBorder( side: widget.showBorder ? BorderSide(color: effectiveBorderColor) : BorderSide.none, - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ) : null, @@ -503,7 +503,7 @@ class _MoonAccordionItemState extends State> with Single shape: SmoothRectangleBorder( side: widget.showBorder ? BorderSide(color: effectiveBorderColor) : BorderSide.none, - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ) : null, diff --git a/lib/src/widgets/alert/alert.dart b/lib/src/widgets/alert/alert.dart index 33bf6426..73183f05 100644 --- a/lib/src/widgets/alert/alert.dart +++ b/lib/src/widgets/alert/alert.dart @@ -17,7 +17,7 @@ class MoonAlert extends StatefulWidget { final bool showBorder; /// The border radius of the alert. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The background color of the alert. final Color? backgroundColor; @@ -187,7 +187,7 @@ class _MoonAlertState extends State with SingleTickerProviderStateMix @override Widget build(BuildContext context) { - final BorderRadius effectiveBorderRadius = widget.borderRadius ?? + final BorderRadiusGeometry effectiveBorderRadius = widget.borderRadius ?? context.moonTheme?.alertTheme.properties.borderRadius ?? MoonBorders.borders.interactiveSm; @@ -261,7 +261,7 @@ class _MoonAlertState extends State with SingleTickerProviderStateMix width: widget.showBorder ? effectiveBorderWidth : 0, style: widget.showBorder ? BorderStyle.solid : BorderStyle.none, ), - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ), child: AnimatedDefaultTextStyle( diff --git a/lib/src/widgets/alert/filled_alert.dart b/lib/src/widgets/alert/filled_alert.dart index a1488a23..32209bb8 100644 --- a/lib/src/widgets/alert/filled_alert.dart +++ b/lib/src/widgets/alert/filled_alert.dart @@ -9,7 +9,7 @@ class MoonFilledAlert extends StatelessWidget { final bool show; /// The border radius of the alert. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The color of the alert. final Color? color; diff --git a/lib/src/widgets/alert/outlined_alert.dart b/lib/src/widgets/alert/outlined_alert.dart index 5e1cef44..9eff6a8d 100644 --- a/lib/src/widgets/alert/outlined_alert.dart +++ b/lib/src/widgets/alert/outlined_alert.dart @@ -11,7 +11,7 @@ class MoonOutlinedAlert extends StatelessWidget { final bool show; /// The border radius of the alert. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The border color of the alert. final Color? color; diff --git a/lib/src/widgets/authcode/authcode.dart b/lib/src/widgets/authcode/authcode.dart index eb70c480..709deaf7 100644 --- a/lib/src/widgets/authcode/authcode.dart +++ b/lib/src/widgets/authcode/authcode.dart @@ -52,7 +52,7 @@ class MoonAuthCode extends StatefulWidget { final bool useHapticFeedback; /// Border radius of auth input field. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// Color of the auth input field cursor. final Color? authFieldCursorColor; @@ -264,7 +264,7 @@ class _MoonAuthCodeState extends State with TickerProviderStateMix late FocusNode _focusNode; late List _inputList; - late BorderRadius _effectiveBorderRadius; + late BorderRadiusGeometry _effectiveBorderRadius; late Color _effectiveSelectedBorderColor; late Color _effectiveActiveBorderColor; late Color _effectiveInactiveBorderColor; @@ -487,7 +487,7 @@ class _MoonAuthCodeState extends State with TickerProviderStateMix return Border(bottom: borderSide); default: return SmoothRectangleBorder( - borderRadius: _effectiveBorderRadius.smoothBorderRadius, + borderRadius: _effectiveBorderRadius.smoothBorderRadius(context), side: borderSide, ); } diff --git a/lib/src/widgets/avatar/avatar.dart b/lib/src/widgets/avatar/avatar.dart index bc1f970a..fc5c2101 100644 --- a/lib/src/widgets/avatar/avatar.dart +++ b/lib/src/widgets/avatar/avatar.dart @@ -28,7 +28,7 @@ class MoonAvatar extends StatelessWidget { final bool showBadge; /// The border radius of the avatar. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The background color of the avatar. final Color? backgroundColor; @@ -152,7 +152,9 @@ class MoonAvatar extends StatelessWidget { Widget build(BuildContext context) { final MoonAvatarSizeProperties effectiveMoonAvatarSize = _getMoonAvatarSize(context, avatarSize); - final BorderRadius effectiveBorderRadius = borderRadius ?? effectiveMoonAvatarSize.borderRadius; + final BorderRadiusGeometry effectiveBorderRadius = borderRadius ?? effectiveMoonAvatarSize.borderRadius; + + final resolvedBorderRadius = effectiveBorderRadius.resolve(Directionality.of(context)); final Color effectiveBackgroundColor = backgroundColor ?? context.moonTheme?.avatarTheme.colors.backgroundColor ?? MoonColors.light.gohan; @@ -191,7 +193,7 @@ class MoonAvatar extends StatelessWidget { showBadge: showBadge, width: effectiveAvatarWidth, height: effectiveAvatarHeight, - borderRadius: effectiveBorderRadius, + borderRadius: resolvedBorderRadius, badgeSize: effectiveBadgeSize, badgeMarginValue: effectiveBadgeMarginValue, badgeAlignment: badgeAlignment, @@ -201,7 +203,7 @@ class MoonAvatar extends StatelessWidget { style: effectiveMoonAvatarSize.textStyle.copyWith(color: effectiveTextColor), child: DecoratedBox( decoration: BoxDecoration( - borderRadius: effectiveBorderRadius, + borderRadius: resolvedBorderRadius, color: effectiveBackgroundColor, image: backgroundImage != null ? DecorationImage( diff --git a/lib/src/widgets/buttons/button.dart b/lib/src/widgets/buttons/button.dart index b49a5afe..2446d553 100644 --- a/lib/src/widgets/buttons/button.dart +++ b/lib/src/widgets/buttons/button.dart @@ -50,7 +50,7 @@ class MoonButton extends StatelessWidget { final bool showTooltip; /// The border radius of the button. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The background color of the button. final Color? backgroundColor; @@ -217,7 +217,7 @@ class MoonButton extends StatelessWidget { bool showPulseEffectJiggle = true, bool showScaleAnimation = true, bool showTooltip = false, - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, Color? backgroundColor, Color? borderColor, Color? focusEffectColor, @@ -333,7 +333,7 @@ class MoonButton extends StatelessWidget { Widget build(BuildContext context) { final MoonButtonSizeProperties effectiveMoonButtonSize = _getMoonButtonSize(context, buttonSize); - final BorderRadius effectiveBorderRadius = borderRadius ?? effectiveMoonButtonSize.borderRadius; + final BorderRadiusGeometry effectiveBorderRadius = borderRadius ?? effectiveMoonButtonSize.borderRadius; final Color effectiveBorderColor = borderColor ?? context.moonTheme?.buttonTheme.colors.borderColor ?? MoonColors.light.trunks; @@ -420,7 +420,7 @@ class MoonButton extends StatelessWidget { width: showBorder ? effectiveBorderWidth : 0, style: showBorder ? BorderStyle.solid : BorderStyle.none, ), - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ), child: Padding( diff --git a/lib/src/widgets/buttons/filled_button.dart b/lib/src/widgets/buttons/filled_button.dart index 01848cf6..17b87103 100644 --- a/lib/src/widgets/buttons/filled_button.dart +++ b/lib/src/widgets/buttons/filled_button.dart @@ -23,6 +23,9 @@ class MoonFilledButton extends StatelessWidget { /// Whether this button should show a tooltip. final bool showTooltip; + /// The border radius of the button. + final BorderRadiusGeometry? borderRadius; + /// The background color of the button. final Color? backgroundColor; @@ -76,6 +79,7 @@ class MoonFilledButton extends StatelessWidget { this.isFullWidth = false, this.showPulseEffect = false, this.showTooltip = false, + this.borderRadius, this.backgroundColor, this.height, this.width, @@ -104,6 +108,7 @@ class MoonFilledButton extends StatelessWidget { isFullWidth: isFullWidth, showPulseEffect: showPulseEffect, showTooltip: showTooltip, + borderRadius: borderRadius, backgroundColor: effectiveBackgroundColor, height: height, width: width, diff --git a/lib/src/widgets/buttons/outlined_button.dart b/lib/src/widgets/buttons/outlined_button.dart index d21c6f58..e1e60cbb 100644 --- a/lib/src/widgets/buttons/outlined_button.dart +++ b/lib/src/widgets/buttons/outlined_button.dart @@ -21,6 +21,9 @@ class MoonOutlinedButton extends StatelessWidget { /// Whether the button should show a tooltip. final bool showTooltip; + /// The border radius of the button. + final BorderRadiusGeometry? borderRadius; + /// The border color of the button. final Color? borderColor; @@ -74,6 +77,7 @@ class MoonOutlinedButton extends StatelessWidget { this.isFullWidth = false, this.showPulseEffect = false, this.showTooltip = false, + this.borderRadius, this.borderColor, this.height, this.width, @@ -99,6 +103,7 @@ class MoonOutlinedButton extends StatelessWidget { showPulseEffect: showPulseEffect, showTooltip: showTooltip, showBorder: true, + borderRadius: borderRadius, borderColor: borderColor, height: height, width: width, diff --git a/lib/src/widgets/checkbox/checkbox.dart b/lib/src/widgets/checkbox/checkbox.dart index 401cf32b..180a8819 100644 --- a/lib/src/widgets/checkbox/checkbox.dart +++ b/lib/src/widgets/checkbox/checkbox.dart @@ -199,7 +199,7 @@ class _MoonCheckboxState extends State with TickerProviderStateMix Widget build(BuildContext context) { const Size size = Size(16, 16); - final BorderRadius effectiveBorderRadius = + final BorderRadiusGeometry effectiveBorderRadius = context.moonTheme?.checkboxTheme.properties.borderRadius ?? MoonBorders.borders.interactiveXs; final Color effectiveActiveColor = @@ -262,7 +262,7 @@ class _MoonCheckboxState extends State with TickerProviderStateMix ..checkColor = effectiveCheckColor ..value = value ..previousValue = _previousValue - ..shape = SmoothRectangleBorder(borderRadius: effectiveBorderRadius.smoothBorderRadius) + ..shape = SmoothRectangleBorder(borderRadius: effectiveBorderRadius.smoothBorderRadius(context)) ..side = _resolveSide(BorderSide(color: effectiveBorderColor)), ), ), diff --git a/lib/src/widgets/chips/chip.dart b/lib/src/widgets/chips/chip.dart index 0e77d6d5..a96cd570 100644 --- a/lib/src/widgets/chips/chip.dart +++ b/lib/src/widgets/chips/chip.dart @@ -39,7 +39,7 @@ class MoonChip extends StatelessWidget { final bool showTooltip; /// The border radius of the chip. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The border and text color of the active/selected chip. final Color? activeColor; @@ -198,7 +198,7 @@ class MoonChip extends StatelessWidget { Widget build(BuildContext context) { final MoonChipSizeProperties effectiveMoonChipSize = _getMoonChipSize(context, chipSize); - final BorderRadius effectiveBorderRadius = borderRadius ?? effectiveMoonChipSize.borderRadius; + final BorderRadiusGeometry effectiveBorderRadius = borderRadius ?? effectiveMoonChipSize.borderRadius; final double effectiveBorderWidth = borderWidth ?? context.moonBorders?.borderWidth ?? MoonBorders.borders.borderWidth; @@ -285,7 +285,7 @@ class MoonChip extends StatelessWidget { width: showBorder ? effectiveBorderWidth : 0, style: showBorder ? BorderStyle.solid : BorderStyle.none, ), - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ), diff --git a/lib/src/widgets/chips/text_chip.dart b/lib/src/widgets/chips/text_chip.dart index 70a8193c..68089997 100644 --- a/lib/src/widgets/chips/text_chip.dart +++ b/lib/src/widgets/chips/text_chip.dart @@ -27,7 +27,7 @@ class MoonTextChip extends StatelessWidget { final bool showTooltip; /// The border radius of the chip. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The border and text color of the active/selected chip. final Color? activeColor; diff --git a/lib/src/widgets/common/base_control.dart b/lib/src/widgets/common/base_control.dart index d5049067..804923aa 100644 --- a/lib/src/widgets/common/base_control.dart +++ b/lib/src/widgets/common/base_control.dart @@ -47,7 +47,7 @@ class MoonBaseControl extends StatefulWidget { final bool showTooltip; /// The border radius of the control. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The background color of the control. final Color? backgroundColor; diff --git a/lib/src/widgets/common/effects/focus_effect.dart b/lib/src/widgets/common/effects/focus_effect.dart index 25121cb1..295c8172 100644 --- a/lib/src/widgets/common/effects/focus_effect.dart +++ b/lib/src/widgets/common/effects/focus_effect.dart @@ -4,7 +4,7 @@ import 'package:moon_design/src/widgets/common/effects/painters/focus_effect_pai class MoonFocusEffect extends StatefulWidget { final bool show; - final BorderRadius? childBorderRadius; + final BorderRadiusGeometry? childBorderRadius; final Color effectColor; final double effectExtent; final Duration effectDuration; @@ -58,6 +58,8 @@ class _MoonFocusEffectState extends State with SingleTickerProv @override Widget build(BuildContext context) { + final resolvedBorderRadius = widget.childBorderRadius?.resolve(Directionality.of(context)) ?? BorderRadius.zero; + return AnimatedBuilder( animation: _animationController, builder: (context, child) { @@ -67,7 +69,7 @@ class _MoonFocusEffectState extends State with SingleTickerProv painter: FocusEffectPainter( color: widget.effectColor, effectExtent: widget.effectExtent, - borderRadius: widget.childBorderRadius ?? BorderRadius.zero, + borderRadius: resolvedBorderRadius, animation: _focusAnimation, ), child: child, diff --git a/lib/src/widgets/common/effects/pulse_effect.dart b/lib/src/widgets/common/effects/pulse_effect.dart index 6d33fc56..9788f4a7 100644 --- a/lib/src/widgets/common/effects/pulse_effect.dart +++ b/lib/src/widgets/common/effects/pulse_effect.dart @@ -5,7 +5,7 @@ import 'package:moon_design/src/widgets/common/effects/painters/pulse_effect_pai class MoonPulseEffect extends StatefulWidget { final bool show; final bool showJiggle; - final BorderRadius? childBorderRadius; + final BorderRadiusGeometry? childBorderRadius; final Color effectColor; final double effectExtent; final Duration effectDuration; @@ -94,6 +94,8 @@ class _MoonPulseEffectState extends State with SingleTickerProv // TODO: Review at a later date (when Impeller is stable?) if CurvedAnimation with Interval can be used. Currently //interval has a bug where the curve parameters curve.transform(t) internal method causes uneven buggy animation. + final resolvedBorderRadius = widget.childBorderRadius?.resolve(Directionality.of(context)) ?? BorderRadius.zero; + return AnimatedBuilder( animation: _animationController, builder: (context, child) { @@ -106,7 +108,7 @@ class _MoonPulseEffectState extends State with SingleTickerProv painter: PulseEffectPainter( color: widget.effectColor, effectExtent: widget.effectExtent, - borderRadius: widget.childBorderRadius ?? BorderRadius.zero, + borderRadius: resolvedBorderRadius, animation: _pulseAnimation, ), child: child, diff --git a/lib/src/widgets/common/progress_indicators/linear_progress_indicator.dart b/lib/src/widgets/common/progress_indicators/linear_progress_indicator.dart index 259f9528..7d3bddad 100644 --- a/lib/src/widgets/common/progress_indicators/linear_progress_indicator.dart +++ b/lib/src/widgets/common/progress_indicators/linear_progress_indicator.dart @@ -5,7 +5,7 @@ import 'package:moon_design/src/widgets/common/progress_indicators/painters/line class MoonLinearProgressIndicator extends MoonBaseProgressIndicator { /// The border radius of the linear progress indicator. - final BorderRadius borderRadius; + final BorderRadiusGeometry borderRadius; /// The minimum height of the linear progress indicator. final double minHeight; @@ -65,6 +65,8 @@ class _MoonLinearProgressIndicatorState extends State with RouteAware, SingleTickerP Widget _createOverlayContent() { MoonPopoverPosition popoverPosition = widget.popoverPosition; - final BorderRadius effectiveBorderRadius = + final BorderRadiusGeometry effectiveBorderRadius = widget.borderRadius ?? context.moonTheme?.popoverTheme.properties.borderRadius ?? BorderRadius.circular(12); final Color effectiveBackgroundColor = @@ -463,7 +463,7 @@ class MoonPopoverState extends State with RouteAware, SingleTickerP color: effectiveBackgroundColor, shadows: effectivePopoverShadows, shape: SmoothRectangleBorder( - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), side: BorderSide(color: widget.borderColor), ), ), diff --git a/lib/src/widgets/progress/linear_progress.dart b/lib/src/widgets/progress/linear_progress.dart index 05d22296..39da16e8 100644 --- a/lib/src/widgets/progress/linear_progress.dart +++ b/lib/src/widgets/progress/linear_progress.dart @@ -15,7 +15,7 @@ enum MoonLinearProgressSize { class MoonLinearProgress extends StatelessWidget { /// Border radius value of the linear progress widget. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// Color of the linear progress widget. final Color? color; @@ -72,7 +72,7 @@ class MoonLinearProgress extends StatelessWidget { Widget build(BuildContext context) { final MoonLinearProgressSizeProperties effectiveProgressSize = _getMoonProgressSize(context, linearProgressSize); - final BorderRadius effectiveBorderRadius = borderRadius ?? effectiveProgressSize.borderRadius; + final BorderRadiusGeometry effectiveBorderRadius = borderRadius ?? effectiveProgressSize.borderRadius; final Color effectiveColor = color ?? context.moonTheme?.linearProgressTheme.colors.color ?? MoonColors.light.piccolo; diff --git a/lib/src/widgets/switch/switch.dart b/lib/src/widgets/switch/switch.dart index 2b5a2510..2a37c385 100644 --- a/lib/src/widgets/switch/switch.dart +++ b/lib/src/widgets/switch/switch.dart @@ -304,7 +304,7 @@ class _MoonSwitchState extends State with SingleTickerProviderStateM final EdgeInsets resolvedDirectionalPadding = effectivePadding.resolve(Directionality.of(context)); - final BorderRadius effectiveBorderRadius = BorderRadius.circular(effectiveThumbSizeValue / 2); + final BorderRadiusGeometry effectiveBorderRadius = BorderRadius.circular(effectiveThumbSizeValue / 2); final List effectiveThumbShadow = context.moonTheme?.switchTheme.shadows.thumbShadows ?? MoonShadows.light.sm; diff --git a/lib/src/widgets/tag/tag.dart b/lib/src/widgets/tag/tag.dart index 4f0eb75a..c2cee54a 100644 --- a/lib/src/widgets/tag/tag.dart +++ b/lib/src/widgets/tag/tag.dart @@ -16,7 +16,7 @@ class MoonTag extends StatelessWidget { final bool isUpperCase; /// The border radius of the tag. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The background color of the tag. final Color? backgroundColor; @@ -105,7 +105,7 @@ class MoonTag extends StatelessWidget { Widget build(BuildContext context) { final MoonTagSizeProperties effectiveMoonTagSize = _getMoonTagSize(context, tagSize); - final BorderRadius effectiveBorderRadius = borderRadius ?? effectiveMoonTagSize.borderRadius; + final BorderRadiusGeometry effectiveBorderRadius = borderRadius ?? effectiveMoonTagSize.borderRadius; final Color effectiveBackgroundColor = backgroundColor ?? context.moonTheme?.tagTheme.colors.backgroundColor ?? MoonColors.light.gohan; @@ -145,7 +145,7 @@ class MoonTag extends StatelessWidget { decoration: ShapeDecoration( color: effectiveBackgroundColor, shape: SmoothRectangleBorder( - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ), child: IconTheme( diff --git a/lib/src/widgets/textarea/textarea.dart b/lib/src/widgets/textarea/textarea.dart index d51ecc0b..0306481e 100644 --- a/lib/src/widgets/textarea/textarea.dart +++ b/lib/src/widgets/textarea/textarea.dart @@ -41,7 +41,7 @@ class MoonTextArea extends StatefulWidget { final bool? showCursor; /// The border radius of the text area. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The appearance of the keyboard. /// @@ -284,7 +284,7 @@ class _MoonTextAreaState extends State { @override Widget build(BuildContext context) { - final BorderRadius effectiveBorderRadius = + final BorderRadiusGeometry effectiveBorderRadius = widget.borderRadius ?? context.moonTheme?.textAreaTheme.properties.borderRadius ?? BorderRadius.circular(8); final Color effectiveBackgroundColor = @@ -328,7 +328,7 @@ class _MoonTextAreaState extends State { const TextStyle(fontSize: 12); final OutlineInputBorder defaultBorder = OutlineInputBorder( - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), borderSide: BorderSide(color: effectiveInactiveBorderColor), ); @@ -400,14 +400,14 @@ class _MoonTextAreaState extends State { enabledBorder: defaultBorder, disabledBorder: defaultBorder, errorBorder: OutlineInputBorder( - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), borderSide: BorderSide( color: effectiveErrorBorderColor, width: 2, ), ), focusedBorder: OutlineInputBorder( - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), borderSide: BorderSide( color: effectiveActiveBorderColor, width: 2, diff --git a/lib/src/widgets/toast/toast.dart b/lib/src/widgets/toast/toast.dart index 788af62a..c5482081 100644 --- a/lib/src/widgets/toast/toast.dart +++ b/lib/src/widgets/toast/toast.dart @@ -45,7 +45,7 @@ class MoonToast { bool isPersistent = true, /// The border radius of the toast. - BorderRadius? borderRadius, + BorderRadiusGeometry? borderRadius, /// The background color of the toast. Color? backgroundColor, @@ -100,7 +100,7 @@ class MoonToast { } } - final BorderRadius effectiveBorderRadius = + final BorderRadiusGeometry effectiveBorderRadius = borderRadius ?? context.moonTheme?.toastTheme.properties.borderRadius ?? MoonBorders.borders.surfaceSm; final Color effectiveBackgroundColor = backgroundColor ?? @@ -176,7 +176,7 @@ class MoonToast { color: effectiveBackgroundColor, shadows: effectiveToastShadows, shape: SmoothRectangleBorder( - borderRadius: effectiveBorderRadius.smoothBorderRadius, + borderRadius: effectiveBorderRadius.smoothBorderRadius(context), ), ), child: Row( diff --git a/lib/src/widgets/tooltip/tooltip.dart b/lib/src/widgets/tooltip/tooltip.dart index 3cc24e69..b7c1bf29 100644 --- a/lib/src/widgets/tooltip/tooltip.dart +++ b/lib/src/widgets/tooltip/tooltip.dart @@ -35,7 +35,7 @@ class MoonTooltip extends StatefulWidget { final bool show; /// The border radius of the tooltip. - final BorderRadius? borderRadius; + final BorderRadiusGeometry? borderRadius; /// The color of the tooltip background. final Color? backgroundColor; @@ -393,10 +393,12 @@ class _MoonTooltipState extends State with RouteAware, SingleTicker Widget _createOverlayContent() { MoonTooltipPosition tooltipPosition = widget.tooltipPosition; - final BorderRadius effectiveBorderRadius = widget.borderRadius ?? + final BorderRadiusGeometry effectiveBorderRadius = widget.borderRadius ?? context.moonTheme?.tooltipTheme.properties.borderRadius ?? MoonBorders.borders.interactiveXs; + final resolvedBorderRadius = effectiveBorderRadius.resolve(Directionality.of(context)); + final Color effectiveBackgroundColor = widget.backgroundColor ?? context.moonTheme?.tooltipTheme.colors.backgroundColor ?? MoonColors.light.gohan; @@ -512,7 +514,7 @@ class _MoonTooltipState extends State with RouteAware, SingleTicker arrowOffset: widget.arrowOffsetValue, arrowTipDistance: effectiveArrowTipDistance, borderColor: widget.borderColor, - borderRadius: effectiveBorderRadius, + borderRadius: resolvedBorderRadius, borderWidth: widget.borderWidth, childWidth: targetRenderBox.size.width, tooltipPosition: tooltipPosition,