feat(ui_component): add copyWith gen and make button style lerping
This commit is contained in:
		
							parent
							
								
									ed29f39673
								
							
						
					
					
						commit
						2806ac5923
					
				@ -30,25 +30,25 @@ abstract class ButtonComponent extends Component {
 | 
				
			|||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in disabled state
 | 
					  /// Style of this button in disabled state
 | 
				
			||||||
  final ButtonStyle? disabledStyle;
 | 
					  final ButtonStyle<dynamic>? disabledStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in normal state
 | 
					  /// Style of this button in normal state
 | 
				
			||||||
  final ButtonStyle? normalStyle;
 | 
					  final ButtonStyle<dynamic>? normalStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in hovered state
 | 
					  /// Style of this button in hovered state
 | 
				
			||||||
  final ButtonStyle? hoveredStyle;
 | 
					  final ButtonStyle<dynamic>? hoveredStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in focused state
 | 
					  /// Style of this button in focused state
 | 
				
			||||||
  final ButtonStyle? focusedStyle;
 | 
					  final ButtonStyle<dynamic>? focusedStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in tapped state
 | 
					  /// Style of this button in tapped state
 | 
				
			||||||
  final ButtonStyle? tappedStyle;
 | 
					  final ButtonStyle<dynamic>? tappedStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in selected state
 | 
					  /// Style of this button in selected state
 | 
				
			||||||
  final ButtonStyle? selectedStyle;
 | 
					  final ButtonStyle<dynamic>? selectedStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Style of this button in invalid state
 | 
					  /// Style of this button in invalid state
 | 
				
			||||||
  final ButtonStyle? invalidStyle;
 | 
					  final ButtonStyle<dynamic>? invalidStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Callback on button press
 | 
					  /// Callback on button press
 | 
				
			||||||
  final void Function(ControlState state)? onPressed;
 | 
					  final void Function(ControlState state)? onPressed;
 | 
				
			||||||
 | 
				
			|||||||
@ -17,41 +17,49 @@
 | 
				
			|||||||
import 'package:flutter/widgets.dart';
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
					import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abstract class ButtonStyle {
 | 
					abstract class ButtonStyle<T> {
 | 
				
			||||||
  const ButtonStyle({
 | 
					  const ButtonStyle({
 | 
				
			||||||
    this.radius = 15,
 | 
					    this.radius,
 | 
				
			||||||
    this.padding = 10,
 | 
					    this.padding,
 | 
				
			||||||
    this.foregroundColors,
 | 
					    this.foregroundColors,
 | 
				
			||||||
    this.backgroundColors,
 | 
					    this.backgroundColors,
 | 
				
			||||||
    this.borderColors,
 | 
					    this.borderColors,
 | 
				
			||||||
    this.stroke = 2,
 | 
					    this.stroke,
 | 
				
			||||||
    this.shadow = const BoxShadow(
 | 
					    this.shadow,
 | 
				
			||||||
      blurRadius: 30,
 | 
					 | 
				
			||||||
      offset: Offset(0, 5),
 | 
					 | 
				
			||||||
      color: Color.fromRGBO(0, 0, 0, 0.05),
 | 
					 | 
				
			||||||
    ),
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Button radius
 | 
					  /// Button radius
 | 
				
			||||||
  final double? radius;
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `BorderRadius.all(Radius.circular(4.0))`
 | 
				
			||||||
 | 
					  final BorderRadiusGeometry? radius;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Padding and gaps of this card
 | 
					  /// Padding and gaps of this button
 | 
				
			||||||
  final double? padding;
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `ButtonTheme.padding`
 | 
				
			||||||
 | 
					  final EdgeInsetsGeometry? padding;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Button foreground gradient colors (from left to right)
 | 
					  /// Button foreground gradient colors (from left to right)
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `Theme.colorScheme.onPrimary`
 | 
				
			||||||
  final MultiColor? foregroundColors;
 | 
					  final MultiColor? foregroundColors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Button background gradient colors (from left to right)
 | 
					  /// Button background gradient colors (from left to right)
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `Theme.colorScheme.primary`
 | 
				
			||||||
  final MultiColor? backgroundColors;
 | 
					  final MultiColor? backgroundColors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Border colors (from left to right).
 | 
					  /// Border colors (from left to right).
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `null`
 | 
				
			||||||
  final MultiColor? borderColors;
 | 
					  final MultiColor? borderColors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Stroke of the border
 | 
					  /// Stroke of the border
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `null`
 | 
				
			||||||
  final double? stroke;
 | 
					  final double? stroke;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Drop shadow
 | 
					  /// Drop shadow
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `null`
 | 
				
			||||||
  final BoxShadow? shadow;
 | 
					  final BoxShadow? shadow;
 | 
				
			||||||
 | 
					 | 
				
			||||||
  ButtonStyle copyWith();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -11,13 +11,15 @@ abstract class $FileSelectionButtonComponentCWProxy {
 | 
				
			|||||||
  FileSelectionButtonComponent leading(Widget? leading);
 | 
					  FileSelectionButtonComponent leading(Widget? leading);
 | 
				
			||||||
  FileSelectionButtonComponent title(TextWrapper? title);
 | 
					  FileSelectionButtonComponent title(TextWrapper? title);
 | 
				
			||||||
  FileSelectionButtonComponent subTitle(TextWrapper? subTitle);
 | 
					  FileSelectionButtonComponent subTitle(TextWrapper? subTitle);
 | 
				
			||||||
  FileSelectionButtonComponent disabledStyle(ButtonStyle? disabledStyle);
 | 
					  FileSelectionButtonComponent disabledStyle(
 | 
				
			||||||
  FileSelectionButtonComponent normalStyle(ButtonStyle? normalStyle);
 | 
					      ButtonStyle<dynamic>? disabledStyle);
 | 
				
			||||||
  FileSelectionButtonComponent hoveredStyle(ButtonStyle? hoveredStyle);
 | 
					  FileSelectionButtonComponent normalStyle(ButtonStyle<dynamic>? normalStyle);
 | 
				
			||||||
  FileSelectionButtonComponent focusedStyle(ButtonStyle? focusedStyle);
 | 
					  FileSelectionButtonComponent hoveredStyle(ButtonStyle<dynamic>? hoveredStyle);
 | 
				
			||||||
  FileSelectionButtonComponent tappedStyle(ButtonStyle? tappedStyle);
 | 
					  FileSelectionButtonComponent focusedStyle(ButtonStyle<dynamic>? focusedStyle);
 | 
				
			||||||
  FileSelectionButtonComponent selectedStyle(ButtonStyle? selectedStyle);
 | 
					  FileSelectionButtonComponent tappedStyle(ButtonStyle<dynamic>? tappedStyle);
 | 
				
			||||||
  FileSelectionButtonComponent invalidStyle(ButtonStyle? invalidStyle);
 | 
					  FileSelectionButtonComponent selectedStyle(
 | 
				
			||||||
 | 
					      ButtonStyle<dynamic>? selectedStyle);
 | 
				
			||||||
 | 
					  FileSelectionButtonComponent invalidStyle(ButtonStyle<dynamic>? invalidStyle);
 | 
				
			||||||
  FileSelectionButtonComponent onPressed(
 | 
					  FileSelectionButtonComponent onPressed(
 | 
				
			||||||
      void Function(ControlState)? onPressed);
 | 
					      void Function(ControlState)? onPressed);
 | 
				
			||||||
  FileSelectionButtonComponent key(Key? key);
 | 
					  FileSelectionButtonComponent key(Key? key);
 | 
				
			||||||
@ -26,13 +28,13 @@ abstract class $FileSelectionButtonComponentCWProxy {
 | 
				
			|||||||
    Widget? leading,
 | 
					    Widget? leading,
 | 
				
			||||||
    TextWrapper? title,
 | 
					    TextWrapper? title,
 | 
				
			||||||
    TextWrapper? subTitle,
 | 
					    TextWrapper? subTitle,
 | 
				
			||||||
    ButtonStyle? disabledStyle,
 | 
					    ButtonStyle<dynamic>? disabledStyle,
 | 
				
			||||||
    ButtonStyle? normalStyle,
 | 
					    ButtonStyle<dynamic>? normalStyle,
 | 
				
			||||||
    ButtonStyle? hoveredStyle,
 | 
					    ButtonStyle<dynamic>? hoveredStyle,
 | 
				
			||||||
    ButtonStyle? focusedStyle,
 | 
					    ButtonStyle<dynamic>? focusedStyle,
 | 
				
			||||||
    ButtonStyle? tappedStyle,
 | 
					    ButtonStyle<dynamic>? tappedStyle,
 | 
				
			||||||
    ButtonStyle? selectedStyle,
 | 
					    ButtonStyle<dynamic>? selectedStyle,
 | 
				
			||||||
    ButtonStyle? invalidStyle,
 | 
					    ButtonStyle<dynamic>? invalidStyle,
 | 
				
			||||||
    void Function(ControlState)? onPressed,
 | 
					    void Function(ControlState)? onPressed,
 | 
				
			||||||
    Key? key,
 | 
					    Key? key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
				
			|||||||
@ -14,42 +14,85 @@
 | 
				
			|||||||
// You should have received a copy of the GNU General Public License
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'dart:ui';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:copy_with_extension/copy_with_extension.dart';
 | 
				
			||||||
import 'package:flutter/widgets.dart';
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
 | 
					import 'package:wyatt_ui_components/src/core/extensions/build_context_extensions.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
					import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
					import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FileSelectionButtonStyle extends ButtonStyle {
 | 
					part 'file_selection_button_style.g.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@CopyWith()
 | 
				
			||||||
 | 
					class FileSelectionButtonStyle extends ButtonStyle<FileSelectionButtonStyle> {
 | 
				
			||||||
  const FileSelectionButtonStyle({
 | 
					  const FileSelectionButtonStyle({
 | 
				
			||||||
    super.radius = 12,
 | 
					    this.title,
 | 
				
			||||||
    super.padding = 13,
 | 
					    this.subTitle,
 | 
				
			||||||
 | 
					    super.radius,
 | 
				
			||||||
 | 
					    super.padding,
 | 
				
			||||||
    super.foregroundColors,
 | 
					    super.foregroundColors,
 | 
				
			||||||
    super.backgroundColors,
 | 
					    super.backgroundColors,
 | 
				
			||||||
    super.borderColors,
 | 
					    super.borderColors,
 | 
				
			||||||
    super.stroke = 2,
 | 
					    super.stroke,
 | 
				
			||||||
    super.shadow = const BoxShadow(
 | 
					    super.shadow,
 | 
				
			||||||
      blurRadius: 30,
 | 
					 | 
				
			||||||
      offset: Offset(0, 5),
 | 
					 | 
				
			||||||
      color: Color.fromRGBO(0, 0, 0, 0.05),
 | 
					 | 
				
			||||||
    ),
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  /// Used in negociation to build a style from Flutter default values.
 | 
				
			||||||
  FileSelectionButtonStyle copyWith({
 | 
					  factory FileSelectionButtonStyle.fromFlutter(BuildContext context) =>
 | 
				
			||||||
    double? radius,
 | 
					 | 
				
			||||||
    double? padding,
 | 
					 | 
				
			||||||
    MultiColor? foregroundColors,
 | 
					 | 
				
			||||||
    MultiColor? backgroundColors,
 | 
					 | 
				
			||||||
    MultiColor? borderColors,
 | 
					 | 
				
			||||||
    double? stroke,
 | 
					 | 
				
			||||||
    BoxShadow? shadow,
 | 
					 | 
				
			||||||
  }) =>
 | 
					 | 
				
			||||||
      FileSelectionButtonStyle(
 | 
					      FileSelectionButtonStyle(
 | 
				
			||||||
        radius: radius ?? this.radius,
 | 
					        title: context.textTheme.labelLarge,
 | 
				
			||||||
        padding: padding ?? this.padding,
 | 
					        subTitle: context.textTheme.labelSmall,
 | 
				
			||||||
        foregroundColors: foregroundColors ?? this.foregroundColors,
 | 
					        radius: (context.buttonTheme.shape is RoundedRectangleBorder)
 | 
				
			||||||
        backgroundColors: backgroundColors ?? this.backgroundColors,
 | 
					            ? (context.buttonTheme.shape as RoundedRectangleBorder).borderRadius
 | 
				
			||||||
        borderColors: borderColors ?? this.borderColors,
 | 
					            : null,
 | 
				
			||||||
        stroke: stroke ?? this.stroke,
 | 
					        padding: context.buttonTheme.padding,
 | 
				
			||||||
        shadow: shadow ?? this.shadow,
 | 
					        foregroundColors: MultiColor.single(context.colorScheme.onPrimary),
 | 
				
			||||||
 | 
					        backgroundColors: MultiColor.single(context.colorScheme.primary),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Used for interpolation.
 | 
				
			||||||
 | 
					  static FileSelectionButtonStyle? lerp(
 | 
				
			||||||
 | 
					    FileSelectionButtonStyle? a,
 | 
				
			||||||
 | 
					    FileSelectionButtonStyle? b,
 | 
				
			||||||
 | 
					    double t,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    if (a == null || b == null) {
 | 
				
			||||||
 | 
					      return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // b.copyWith to return b attributes even if they are not lerped
 | 
				
			||||||
 | 
					    return b.copyWith(
 | 
				
			||||||
 | 
					      title: TextStyle.lerp(a.title, b.title, t),
 | 
				
			||||||
 | 
					      subTitle: TextStyle.lerp(a.title, b.title, t),
 | 
				
			||||||
 | 
					      foregroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.foregroundColors,
 | 
				
			||||||
 | 
					        b.foregroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      backgroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.backgroundColors,
 | 
				
			||||||
 | 
					        b.backgroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      borderColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.borderColors,
 | 
				
			||||||
 | 
					        b.borderColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      radius: BorderRadiusGeometry.lerp(a.radius, b.radius, t),
 | 
				
			||||||
 | 
					      padding: EdgeInsetsGeometry.lerp(a.padding, b.padding, t),
 | 
				
			||||||
 | 
					      stroke: lerpDouble(a.stroke, b.stroke, t),
 | 
				
			||||||
 | 
					      shadow: BoxShadow.lerp(a.shadow, b.shadow, t),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Title text style
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `TextTheme.labelLarge`
 | 
				
			||||||
 | 
					  final TextStyle? title;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Sub title text style
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `TextTheme.labelSmall`
 | 
				
			||||||
 | 
					  final TextStyle? subTitle;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,152 @@
 | 
				
			|||||||
 | 
					// GENERATED CODE - DO NOT MODIFY BY HAND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part of 'file_selection_button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					// CopyWithGenerator
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract class _$FileSelectionButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle title(TextStyle? title);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle subTitle(TextStyle? subTitle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle radius(BorderRadiusGeometry? radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle padding(EdgeInsetsGeometry? padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle foregroundColors(MultiColor? foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle backgroundColors(MultiColor? backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle borderColors(MultiColor? borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle stroke(double? stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle shadow(BoxShadow? shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `FileSelectionButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// FileSelectionButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle call({
 | 
				
			||||||
 | 
					    TextStyle? title,
 | 
				
			||||||
 | 
					    TextStyle? subTitle,
 | 
				
			||||||
 | 
					    BorderRadiusGeometry? radius,
 | 
				
			||||||
 | 
					    EdgeInsetsGeometry? padding,
 | 
				
			||||||
 | 
					    MultiColor? foregroundColors,
 | 
				
			||||||
 | 
					    MultiColor? backgroundColors,
 | 
				
			||||||
 | 
					    MultiColor? borderColors,
 | 
				
			||||||
 | 
					    double? stroke,
 | 
				
			||||||
 | 
					    BoxShadow? shadow,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfFileSelectionButtonStyle.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfFileSelectionButtonStyle.copyWith.fieldName(...)`
 | 
				
			||||||
 | 
					class _$FileSelectionButtonStyleCWProxyImpl
 | 
				
			||||||
 | 
					    implements _$FileSelectionButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  const _$FileSelectionButtonStyleCWProxyImpl(this._value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final FileSelectionButtonStyle _value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle title(TextStyle? title) => this(title: title);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle subTitle(TextStyle? subTitle) =>
 | 
				
			||||||
 | 
					      this(subTitle: subTitle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle radius(BorderRadiusGeometry? radius) =>
 | 
				
			||||||
 | 
					      this(radius: radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle padding(EdgeInsetsGeometry? padding) =>
 | 
				
			||||||
 | 
					      this(padding: padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle foregroundColors(MultiColor? foregroundColors) =>
 | 
				
			||||||
 | 
					      this(foregroundColors: foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle backgroundColors(MultiColor? backgroundColors) =>
 | 
				
			||||||
 | 
					      this(backgroundColors: backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle borderColors(MultiColor? borderColors) =>
 | 
				
			||||||
 | 
					      this(borderColors: borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle stroke(double? stroke) => this(stroke: stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle shadow(BoxShadow? shadow) => this(shadow: shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `FileSelectionButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// FileSelectionButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  FileSelectionButtonStyle call({
 | 
				
			||||||
 | 
					    Object? title = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? subTitle = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? radius = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? padding = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? foregroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? backgroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? borderColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? stroke = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? shadow = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					  }) {
 | 
				
			||||||
 | 
					    return FileSelectionButtonStyle(
 | 
				
			||||||
 | 
					      title: title == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.title
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : title as TextStyle?,
 | 
				
			||||||
 | 
					      subTitle: subTitle == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.subTitle
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : subTitle as TextStyle?,
 | 
				
			||||||
 | 
					      radius: radius == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.radius
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : radius as BorderRadiusGeometry?,
 | 
				
			||||||
 | 
					      padding: padding == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.padding
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : padding as EdgeInsetsGeometry?,
 | 
				
			||||||
 | 
					      foregroundColors: foregroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.foregroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : foregroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      backgroundColors: backgroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.backgroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : backgroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      borderColors: borderColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.borderColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : borderColors as MultiColor?,
 | 
				
			||||||
 | 
					      stroke: stroke == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.stroke
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : stroke as double?,
 | 
				
			||||||
 | 
					      shadow: shadow == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.shadow
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : shadow as BoxShadow?,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extension $FileSelectionButtonStyleCopyWith on FileSelectionButtonStyle {
 | 
				
			||||||
 | 
					  /// Returns a callable class that can be used as follows: `instanceOfFileSelectionButtonStyle.copyWith(...)` or like so:`instanceOfFileSelectionButtonStyle.copyWith.fieldName(...)`.
 | 
				
			||||||
 | 
					  // ignore: library_private_types_in_public_api
 | 
				
			||||||
 | 
					  _$FileSelectionButtonStyleCWProxy get copyWith =>
 | 
				
			||||||
 | 
					      _$FileSelectionButtonStyleCWProxyImpl(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -24,7 +24,7 @@ part 'flat_button_component.g.dart';
 | 
				
			|||||||
abstract class FlatButtonComponent extends ButtonComponent
 | 
					abstract class FlatButtonComponent extends ButtonComponent
 | 
				
			||||||
    with CopyWithMixin<$FlatButtonComponentCWProxy> {
 | 
					    with CopyWithMixin<$FlatButtonComponentCWProxy> {
 | 
				
			||||||
  const FlatButtonComponent({
 | 
					  const FlatButtonComponent({
 | 
				
			||||||
    this.mainAxisSize = MainAxisSize.min,
 | 
					    this.mainAxisSize,
 | 
				
			||||||
    this.prefix,
 | 
					    this.prefix,
 | 
				
			||||||
    this.suffix,
 | 
					    this.suffix,
 | 
				
			||||||
    this.label,
 | 
					    this.label,
 | 
				
			||||||
 | 
				
			|||||||
@ -11,11 +11,11 @@ abstract class $FlatButtonComponentCWProxy {
 | 
				
			|||||||
  FlatButtonComponent prefix(Widget? prefix);
 | 
					  FlatButtonComponent prefix(Widget? prefix);
 | 
				
			||||||
  FlatButtonComponent suffix(Widget? suffix);
 | 
					  FlatButtonComponent suffix(Widget? suffix);
 | 
				
			||||||
  FlatButtonComponent label(TextWrapper? label);
 | 
					  FlatButtonComponent label(TextWrapper? label);
 | 
				
			||||||
  FlatButtonComponent disabledStyle(ButtonStyle? disabledStyle);
 | 
					  FlatButtonComponent disabledStyle(ButtonStyle<dynamic>? disabledStyle);
 | 
				
			||||||
  FlatButtonComponent normalStyle(ButtonStyle? normalStyle);
 | 
					  FlatButtonComponent normalStyle(ButtonStyle<dynamic>? normalStyle);
 | 
				
			||||||
  FlatButtonComponent hoveredStyle(ButtonStyle? hoveredStyle);
 | 
					  FlatButtonComponent hoveredStyle(ButtonStyle<dynamic>? hoveredStyle);
 | 
				
			||||||
  FlatButtonComponent focusedStyle(ButtonStyle? focusedStyle);
 | 
					  FlatButtonComponent focusedStyle(ButtonStyle<dynamic>? focusedStyle);
 | 
				
			||||||
  FlatButtonComponent tappedStyle(ButtonStyle? tappedStyle);
 | 
					  FlatButtonComponent tappedStyle(ButtonStyle<dynamic>? tappedStyle);
 | 
				
			||||||
  FlatButtonComponent onPressed(void Function(ControlState)? onPressed);
 | 
					  FlatButtonComponent onPressed(void Function(ControlState)? onPressed);
 | 
				
			||||||
  FlatButtonComponent key(Key? key);
 | 
					  FlatButtonComponent key(Key? key);
 | 
				
			||||||
  FlatButtonComponent call({
 | 
					  FlatButtonComponent call({
 | 
				
			||||||
@ -23,11 +23,11 @@ abstract class $FlatButtonComponentCWProxy {
 | 
				
			|||||||
    Widget? prefix,
 | 
					    Widget? prefix,
 | 
				
			||||||
    Widget? suffix,
 | 
					    Widget? suffix,
 | 
				
			||||||
    TextWrapper? label,
 | 
					    TextWrapper? label,
 | 
				
			||||||
    ButtonStyle? disabledStyle,
 | 
					    ButtonStyle<dynamic>? disabledStyle,
 | 
				
			||||||
    ButtonStyle? normalStyle,
 | 
					    ButtonStyle<dynamic>? normalStyle,
 | 
				
			||||||
    ButtonStyle? hoveredStyle,
 | 
					    ButtonStyle<dynamic>? hoveredStyle,
 | 
				
			||||||
    ButtonStyle? focusedStyle,
 | 
					    ButtonStyle<dynamic>? focusedStyle,
 | 
				
			||||||
    ButtonStyle? tappedStyle,
 | 
					    ButtonStyle<dynamic>? tappedStyle,
 | 
				
			||||||
    void Function(ControlState)? onPressed,
 | 
					    void Function(ControlState)? onPressed,
 | 
				
			||||||
    Key? key,
 | 
					    Key? key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
				
			|||||||
@ -14,42 +14,76 @@
 | 
				
			|||||||
// You should have received a copy of the GNU General Public License
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'dart:ui';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:copy_with_extension/copy_with_extension.dart';
 | 
				
			||||||
import 'package:flutter/widgets.dart';
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
 | 
					import 'package:wyatt_ui_components/src/core/extensions/build_context_extensions.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
					import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
					import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FlatButtonStyle extends ButtonStyle {
 | 
					part 'flat_button_style.g.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@CopyWith()
 | 
				
			||||||
 | 
					class FlatButtonStyle extends ButtonStyle<FlatButtonStyle> {
 | 
				
			||||||
  const FlatButtonStyle({
 | 
					  const FlatButtonStyle({
 | 
				
			||||||
    super.radius = 15,
 | 
					    this.label,
 | 
				
			||||||
    super.padding = 10,
 | 
					    super.radius,
 | 
				
			||||||
 | 
					    super.padding,
 | 
				
			||||||
    super.foregroundColors,
 | 
					    super.foregroundColors,
 | 
				
			||||||
    super.backgroundColors,
 | 
					    super.backgroundColors,
 | 
				
			||||||
    super.borderColors,
 | 
					    super.borderColors,
 | 
				
			||||||
    super.stroke = 2,
 | 
					    super.stroke,
 | 
				
			||||||
    super.shadow = const BoxShadow(
 | 
					    super.shadow,
 | 
				
			||||||
      blurRadius: 30,
 | 
					 | 
				
			||||||
      offset: Offset(0, 5),
 | 
					 | 
				
			||||||
      color: Color.fromRGBO(0, 0, 0, 0.05),
 | 
					 | 
				
			||||||
    ),
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  /// Used in negociation to build a style from Flutter default values.
 | 
				
			||||||
  FlatButtonStyle copyWith({
 | 
					  factory FlatButtonStyle.fromFlutter(BuildContext context) => FlatButtonStyle(
 | 
				
			||||||
    double? radius,
 | 
					        label: context.textTheme.labelLarge,
 | 
				
			||||||
    double? padding,
 | 
					        radius: (context.buttonTheme.shape is RoundedRectangleBorder)
 | 
				
			||||||
    MultiColor? foregroundColors,
 | 
					            ? (context.buttonTheme.shape as RoundedRectangleBorder).borderRadius
 | 
				
			||||||
    MultiColor? backgroundColors,
 | 
					            : null,
 | 
				
			||||||
    MultiColor? borderColors,
 | 
					        padding: context.buttonTheme.padding,
 | 
				
			||||||
    double? stroke,
 | 
					        foregroundColors: MultiColor.single(context.colorScheme.onPrimary),
 | 
				
			||||||
    BoxShadow? shadow,
 | 
					        backgroundColors: MultiColor.single(context.colorScheme.primary),
 | 
				
			||||||
  }) =>
 | 
					      );
 | 
				
			||||||
      FlatButtonStyle(
 | 
					
 | 
				
			||||||
        radius: radius ?? this.radius,
 | 
					  /// Used for interpolation.
 | 
				
			||||||
        padding: padding ?? this.padding,
 | 
					  static FlatButtonStyle? lerp(
 | 
				
			||||||
        foregroundColors: foregroundColors ?? this.foregroundColors,
 | 
					    FlatButtonStyle? a,
 | 
				
			||||||
        backgroundColors: backgroundColors ?? this.backgroundColors,
 | 
					    FlatButtonStyle? b,
 | 
				
			||||||
        borderColors: borderColors ?? this.borderColors,
 | 
					    double t,
 | 
				
			||||||
        stroke: stroke ?? this.stroke,
 | 
					  ) {
 | 
				
			||||||
        shadow: shadow ?? this.shadow,
 | 
					    if (a == null || b == null) {
 | 
				
			||||||
 | 
					      return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // b.copyWith to return b attributes even if they are not lerped
 | 
				
			||||||
 | 
					    return b.copyWith(
 | 
				
			||||||
 | 
					      label: TextStyle.lerp(a.label, b.label, t),
 | 
				
			||||||
 | 
					      foregroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.foregroundColors,
 | 
				
			||||||
 | 
					        b.foregroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      backgroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.backgroundColors,
 | 
				
			||||||
 | 
					        b.backgroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      borderColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.borderColors,
 | 
				
			||||||
 | 
					        b.borderColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      radius: BorderRadiusGeometry.lerp(a.radius, b.radius, t),
 | 
				
			||||||
 | 
					      padding: EdgeInsetsGeometry.lerp(a.padding, b.padding, t),
 | 
				
			||||||
 | 
					      stroke: lerpDouble(a.stroke, b.stroke, t),
 | 
				
			||||||
 | 
					      shadow: BoxShadow.lerp(a.shadow, b.shadow, t),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Label text style
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `TextTheme.labelLarge`
 | 
				
			||||||
 | 
					  final TextStyle? label;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,137 @@
 | 
				
			|||||||
 | 
					// GENERATED CODE - DO NOT MODIFY BY HAND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part of 'flat_button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					// CopyWithGenerator
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract class _$FlatButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  FlatButtonStyle label(TextStyle? label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle radius(BorderRadiusGeometry? radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle padding(EdgeInsetsGeometry? padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle foregroundColors(MultiColor? foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle backgroundColors(MultiColor? backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle borderColors(MultiColor? borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle stroke(double? stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlatButtonStyle shadow(BoxShadow? shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `FlatButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// FlatButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  FlatButtonStyle call({
 | 
				
			||||||
 | 
					    TextStyle? label,
 | 
				
			||||||
 | 
					    BorderRadiusGeometry? radius,
 | 
				
			||||||
 | 
					    EdgeInsetsGeometry? padding,
 | 
				
			||||||
 | 
					    MultiColor? foregroundColors,
 | 
				
			||||||
 | 
					    MultiColor? backgroundColors,
 | 
				
			||||||
 | 
					    MultiColor? borderColors,
 | 
				
			||||||
 | 
					    double? stroke,
 | 
				
			||||||
 | 
					    BoxShadow? shadow,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfFlatButtonStyle.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfFlatButtonStyle.copyWith.fieldName(...)`
 | 
				
			||||||
 | 
					class _$FlatButtonStyleCWProxyImpl implements _$FlatButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  const _$FlatButtonStyleCWProxyImpl(this._value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final FlatButtonStyle _value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle label(TextStyle? label) => this(label: label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle radius(BorderRadiusGeometry? radius) => this(radius: radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle padding(EdgeInsetsGeometry? padding) =>
 | 
				
			||||||
 | 
					      this(padding: padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle foregroundColors(MultiColor? foregroundColors) =>
 | 
				
			||||||
 | 
					      this(foregroundColors: foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle backgroundColors(MultiColor? backgroundColors) =>
 | 
				
			||||||
 | 
					      this(backgroundColors: backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle borderColors(MultiColor? borderColors) =>
 | 
				
			||||||
 | 
					      this(borderColors: borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle stroke(double? stroke) => this(stroke: stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  FlatButtonStyle shadow(BoxShadow? shadow) => this(shadow: shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `FlatButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// FlatButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  FlatButtonStyle call({
 | 
				
			||||||
 | 
					    Object? label = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? radius = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? padding = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? foregroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? backgroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? borderColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? stroke = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? shadow = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					  }) {
 | 
				
			||||||
 | 
					    return FlatButtonStyle(
 | 
				
			||||||
 | 
					      label: label == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.label
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : label as TextStyle?,
 | 
				
			||||||
 | 
					      radius: radius == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.radius
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : radius as BorderRadiusGeometry?,
 | 
				
			||||||
 | 
					      padding: padding == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.padding
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : padding as EdgeInsetsGeometry?,
 | 
				
			||||||
 | 
					      foregroundColors: foregroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.foregroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : foregroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      backgroundColors: backgroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.backgroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : backgroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      borderColors: borderColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.borderColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : borderColors as MultiColor?,
 | 
				
			||||||
 | 
					      stroke: stroke == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.stroke
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : stroke as double?,
 | 
				
			||||||
 | 
					      shadow: shadow == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.shadow
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : shadow as BoxShadow?,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extension $FlatButtonStyleCopyWith on FlatButtonStyle {
 | 
				
			||||||
 | 
					  /// Returns a callable class that can be used as follows: `instanceOfFlatButtonStyle.copyWith(...)` or like so:`instanceOfFlatButtonStyle.copyWith.fieldName(...)`.
 | 
				
			||||||
 | 
					  // ignore: library_private_types_in_public_api
 | 
				
			||||||
 | 
					  _$FlatButtonStyleCWProxy get copyWith => _$FlatButtonStyleCWProxyImpl(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -16,7 +16,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import 'package:flutter/widgets.dart';
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
 | 
					import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/domain/entities/buttons/simple_icon_button_style.dart';
 | 
					 | 
				
			||||||
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
					import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
part 'simple_icon_button_component.g.dart';
 | 
					part 'simple_icon_button_component.g.dart';
 | 
				
			||||||
@ -31,7 +30,6 @@ abstract class SimpleIconButtonComponent extends ButtonComponent
 | 
				
			|||||||
    super.hoveredStyle,
 | 
					    super.hoveredStyle,
 | 
				
			||||||
    super.focusedStyle,
 | 
					    super.focusedStyle,
 | 
				
			||||||
    super.tappedStyle,
 | 
					    super.tappedStyle,
 | 
				
			||||||
    super.selectedStyle,
 | 
					 | 
				
			||||||
    super.onPressed,
 | 
					    super.onPressed,
 | 
				
			||||||
    super.key,
 | 
					    super.key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
@ -51,8 +49,5 @@ abstract class SimpleIconButtonComponent extends ButtonComponent
 | 
				
			|||||||
  @override
 | 
					  @override
 | 
				
			||||||
  SimpleIconButtonStyle? get tappedStyle;
 | 
					  SimpleIconButtonStyle? get tappedStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  SimpleIconButtonStyle? get selectedStyle;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  final Icon? icon;
 | 
					  final Icon? icon;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -8,22 +8,20 @@ part of 'simple_icon_button_component.dart';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
abstract class $SimpleIconButtonComponentCWProxy {
 | 
					abstract class $SimpleIconButtonComponentCWProxy {
 | 
				
			||||||
  SimpleIconButtonComponent icon(Icon? icon);
 | 
					  SimpleIconButtonComponent icon(Icon? icon);
 | 
				
			||||||
  SimpleIconButtonComponent disabledStyle(ButtonStyle? disabledStyle);
 | 
					  SimpleIconButtonComponent disabledStyle(ButtonStyle<dynamic>? disabledStyle);
 | 
				
			||||||
  SimpleIconButtonComponent normalStyle(ButtonStyle? normalStyle);
 | 
					  SimpleIconButtonComponent normalStyle(ButtonStyle<dynamic>? normalStyle);
 | 
				
			||||||
  SimpleIconButtonComponent hoveredStyle(ButtonStyle? hoveredStyle);
 | 
					  SimpleIconButtonComponent hoveredStyle(ButtonStyle<dynamic>? hoveredStyle);
 | 
				
			||||||
  SimpleIconButtonComponent focusedStyle(ButtonStyle? focusedStyle);
 | 
					  SimpleIconButtonComponent focusedStyle(ButtonStyle<dynamic>? focusedStyle);
 | 
				
			||||||
  SimpleIconButtonComponent tappedStyle(ButtonStyle? tappedStyle);
 | 
					  SimpleIconButtonComponent tappedStyle(ButtonStyle<dynamic>? tappedStyle);
 | 
				
			||||||
  SimpleIconButtonComponent selectedStyle(ButtonStyle? selectedStyle);
 | 
					 | 
				
			||||||
  SimpleIconButtonComponent onPressed(void Function(ControlState)? onPressed);
 | 
					  SimpleIconButtonComponent onPressed(void Function(ControlState)? onPressed);
 | 
				
			||||||
  SimpleIconButtonComponent key(Key? key);
 | 
					  SimpleIconButtonComponent key(Key? key);
 | 
				
			||||||
  SimpleIconButtonComponent call({
 | 
					  SimpleIconButtonComponent call({
 | 
				
			||||||
    Icon? icon,
 | 
					    Icon? icon,
 | 
				
			||||||
    ButtonStyle? disabledStyle,
 | 
					    ButtonStyle<dynamic>? disabledStyle,
 | 
				
			||||||
    ButtonStyle? normalStyle,
 | 
					    ButtonStyle<dynamic>? normalStyle,
 | 
				
			||||||
    ButtonStyle? hoveredStyle,
 | 
					    ButtonStyle<dynamic>? hoveredStyle,
 | 
				
			||||||
    ButtonStyle? focusedStyle,
 | 
					    ButtonStyle<dynamic>? focusedStyle,
 | 
				
			||||||
    ButtonStyle? tappedStyle,
 | 
					    ButtonStyle<dynamic>? tappedStyle,
 | 
				
			||||||
    ButtonStyle? selectedStyle,
 | 
					 | 
				
			||||||
    void Function(ControlState)? onPressed,
 | 
					    void Function(ControlState)? onPressed,
 | 
				
			||||||
    Key? key,
 | 
					    Key? key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
				
			|||||||
@ -14,47 +14,77 @@
 | 
				
			|||||||
// You should have received a copy of the GNU General Public License
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'dart:ui';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:copy_with_extension/copy_with_extension.dart';
 | 
				
			||||||
import 'package:flutter/widgets.dart';
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
 | 
					import 'package:wyatt_ui_components/src/core/extensions/build_context_extensions.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
					import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
					import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SimpleIconButtonStyle extends ButtonStyle {
 | 
					part 'simple_icon_button_style.g.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@CopyWith()
 | 
				
			||||||
 | 
					class SimpleIconButtonStyle extends ButtonStyle<SimpleIconButtonStyle> {
 | 
				
			||||||
  const SimpleIconButtonStyle({
 | 
					  const SimpleIconButtonStyle({
 | 
				
			||||||
    this.dimension = 30,
 | 
					    this.dimension,
 | 
				
			||||||
    super.radius = 5,
 | 
					    super.radius,
 | 
				
			||||||
    super.padding = 5,
 | 
					    super.padding,
 | 
				
			||||||
    super.foregroundColors,
 | 
					    super.foregroundColors,
 | 
				
			||||||
    super.backgroundColors,
 | 
					    super.backgroundColors,
 | 
				
			||||||
    super.borderColors,
 | 
					    super.borderColors,
 | 
				
			||||||
    super.stroke = 2,
 | 
					    super.stroke,
 | 
				
			||||||
    super.shadow = const BoxShadow(
 | 
					    super.shadow,
 | 
				
			||||||
      blurRadius: 30,
 | 
					 | 
				
			||||||
      offset: Offset(0, 5),
 | 
					 | 
				
			||||||
      color: Color.fromRGBO(0, 0, 0, 0.05),
 | 
					 | 
				
			||||||
    ),
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  final double? dimension;
 | 
					  /// Used in negociation to build a style from Flutter default values.
 | 
				
			||||||
 | 
					  factory SimpleIconButtonStyle.fromFlutter(BuildContext context) =>
 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  SimpleIconButtonStyle copyWith({
 | 
					 | 
				
			||||||
    double? dimension,
 | 
					 | 
				
			||||||
    double? radius,
 | 
					 | 
				
			||||||
    double? padding,
 | 
					 | 
				
			||||||
    MultiColor? foregroundColors,
 | 
					 | 
				
			||||||
    MultiColor? backgroundColors,
 | 
					 | 
				
			||||||
    MultiColor? borderColors,
 | 
					 | 
				
			||||||
    double? stroke,
 | 
					 | 
				
			||||||
    BoxShadow? shadow,
 | 
					 | 
				
			||||||
  }) =>
 | 
					 | 
				
			||||||
      SimpleIconButtonStyle(
 | 
					      SimpleIconButtonStyle(
 | 
				
			||||||
        dimension: dimension ?? this.dimension,
 | 
					        dimension: context.buttonTheme.height,
 | 
				
			||||||
        radius: radius ?? radius,
 | 
					        radius: (context.buttonTheme.shape is RoundedRectangleBorder)
 | 
				
			||||||
        padding: padding ?? padding,
 | 
					            ? (context.buttonTheme.shape as RoundedRectangleBorder).borderRadius
 | 
				
			||||||
        foregroundColors: foregroundColors ?? foregroundColors,
 | 
					            : null,
 | 
				
			||||||
        backgroundColors: backgroundColors ?? backgroundColors,
 | 
					        padding: context.buttonTheme.padding,
 | 
				
			||||||
        borderColors: borderColors ?? borderColors,
 | 
					        foregroundColors: MultiColor.single(context.colorScheme.onPrimary),
 | 
				
			||||||
        stroke: stroke ?? stroke,
 | 
					        backgroundColors: MultiColor.single(context.colorScheme.primary),
 | 
				
			||||||
        shadow: shadow ?? shadow,
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Used for interpolation.
 | 
				
			||||||
 | 
					  static SimpleIconButtonStyle? lerp(
 | 
				
			||||||
 | 
					    SimpleIconButtonStyle? a,
 | 
				
			||||||
 | 
					    SimpleIconButtonStyle? b,
 | 
				
			||||||
 | 
					    double t,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    if (a == null || b == null) {
 | 
				
			||||||
 | 
					      return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // b.copyWith to return b attributes even if they are not lerped
 | 
				
			||||||
 | 
					    return b.copyWith(
 | 
				
			||||||
 | 
					      dimension: lerpDouble(a.dimension, b.dimension, t),
 | 
				
			||||||
 | 
					      foregroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.foregroundColors,
 | 
				
			||||||
 | 
					        b.foregroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      backgroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.backgroundColors,
 | 
				
			||||||
 | 
					        b.backgroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      borderColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.borderColors,
 | 
				
			||||||
 | 
					        b.borderColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      radius: BorderRadiusGeometry.lerp(a.radius, b.radius, t),
 | 
				
			||||||
 | 
					      padding: EdgeInsetsGeometry.lerp(a.padding, b.padding, t),
 | 
				
			||||||
 | 
					      stroke: lerpDouble(a.stroke, b.stroke, t),
 | 
				
			||||||
 | 
					      shadow: BoxShadow.lerp(a.shadow, b.shadow, t),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Dimension of this button (as a square)
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `context.buttonTheme.height`
 | 
				
			||||||
 | 
					  final double? dimension;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,141 @@
 | 
				
			|||||||
 | 
					// GENERATED CODE - DO NOT MODIFY BY HAND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part of 'simple_icon_button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					// CopyWithGenerator
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract class _$SimpleIconButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle dimension(double? dimension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle radius(BorderRadiusGeometry? radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle padding(EdgeInsetsGeometry? padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle foregroundColors(MultiColor? foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle backgroundColors(MultiColor? backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle borderColors(MultiColor? borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle stroke(double? stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle shadow(BoxShadow? shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `SimpleIconButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// SimpleIconButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle call({
 | 
				
			||||||
 | 
					    double? dimension,
 | 
				
			||||||
 | 
					    BorderRadiusGeometry? radius,
 | 
				
			||||||
 | 
					    EdgeInsetsGeometry? padding,
 | 
				
			||||||
 | 
					    MultiColor? foregroundColors,
 | 
				
			||||||
 | 
					    MultiColor? backgroundColors,
 | 
				
			||||||
 | 
					    MultiColor? borderColors,
 | 
				
			||||||
 | 
					    double? stroke,
 | 
				
			||||||
 | 
					    BoxShadow? shadow,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfSimpleIconButtonStyle.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfSimpleIconButtonStyle.copyWith.fieldName(...)`
 | 
				
			||||||
 | 
					class _$SimpleIconButtonStyleCWProxyImpl
 | 
				
			||||||
 | 
					    implements _$SimpleIconButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  const _$SimpleIconButtonStyleCWProxyImpl(this._value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final SimpleIconButtonStyle _value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle dimension(double? dimension) =>
 | 
				
			||||||
 | 
					      this(dimension: dimension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle radius(BorderRadiusGeometry? radius) =>
 | 
				
			||||||
 | 
					      this(radius: radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle padding(EdgeInsetsGeometry? padding) =>
 | 
				
			||||||
 | 
					      this(padding: padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle foregroundColors(MultiColor? foregroundColors) =>
 | 
				
			||||||
 | 
					      this(foregroundColors: foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle backgroundColors(MultiColor? backgroundColors) =>
 | 
				
			||||||
 | 
					      this(backgroundColors: backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle borderColors(MultiColor? borderColors) =>
 | 
				
			||||||
 | 
					      this(borderColors: borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle stroke(double? stroke) => this(stroke: stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle shadow(BoxShadow? shadow) => this(shadow: shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `SimpleIconButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// SimpleIconButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  SimpleIconButtonStyle call({
 | 
				
			||||||
 | 
					    Object? dimension = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? radius = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? padding = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? foregroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? backgroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? borderColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? stroke = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? shadow = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					  }) {
 | 
				
			||||||
 | 
					    return SimpleIconButtonStyle(
 | 
				
			||||||
 | 
					      dimension: dimension == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.dimension
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : dimension as double?,
 | 
				
			||||||
 | 
					      radius: radius == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.radius
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : radius as BorderRadiusGeometry?,
 | 
				
			||||||
 | 
					      padding: padding == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.padding
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : padding as EdgeInsetsGeometry?,
 | 
				
			||||||
 | 
					      foregroundColors: foregroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.foregroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : foregroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      backgroundColors: backgroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.backgroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : backgroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      borderColors: borderColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.borderColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : borderColors as MultiColor?,
 | 
				
			||||||
 | 
					      stroke: stroke == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.stroke
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : stroke as double?,
 | 
				
			||||||
 | 
					      shadow: shadow == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.shadow
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : shadow as BoxShadow?,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extension $SimpleIconButtonStyleCopyWith on SimpleIconButtonStyle {
 | 
				
			||||||
 | 
					  /// Returns a callable class that can be used as follows: `instanceOfSimpleIconButtonStyle.copyWith(...)` or like so:`instanceOfSimpleIconButtonStyle.copyWith.fieldName(...)`.
 | 
				
			||||||
 | 
					  // ignore: library_private_types_in_public_api
 | 
				
			||||||
 | 
					  _$SimpleIconButtonStyleCWProxy get copyWith =>
 | 
				
			||||||
 | 
					      _$SimpleIconButtonStyleCWProxyImpl(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -10,24 +10,24 @@ abstract class $SymbolButtonComponentCWProxy {
 | 
				
			|||||||
  SymbolButtonComponent mainAxisSize(MainAxisSize? mainAxisSize);
 | 
					  SymbolButtonComponent mainAxisSize(MainAxisSize? mainAxisSize);
 | 
				
			||||||
  SymbolButtonComponent label(TextWrapper? label);
 | 
					  SymbolButtonComponent label(TextWrapper? label);
 | 
				
			||||||
  SymbolButtonComponent icon(Widget? icon);
 | 
					  SymbolButtonComponent icon(Widget? icon);
 | 
				
			||||||
  SymbolButtonComponent disabledStyle(ButtonStyle? disabledStyle);
 | 
					  SymbolButtonComponent disabledStyle(ButtonStyle<dynamic>? disabledStyle);
 | 
				
			||||||
  SymbolButtonComponent normalStyle(ButtonStyle? normalStyle);
 | 
					  SymbolButtonComponent normalStyle(ButtonStyle<dynamic>? normalStyle);
 | 
				
			||||||
  SymbolButtonComponent hoveredStyle(ButtonStyle? hoveredStyle);
 | 
					  SymbolButtonComponent hoveredStyle(ButtonStyle<dynamic>? hoveredStyle);
 | 
				
			||||||
  SymbolButtonComponent focusedStyle(ButtonStyle? focusedStyle);
 | 
					  SymbolButtonComponent focusedStyle(ButtonStyle<dynamic>? focusedStyle);
 | 
				
			||||||
  SymbolButtonComponent tappedStyle(ButtonStyle? tappedStyle);
 | 
					  SymbolButtonComponent tappedStyle(ButtonStyle<dynamic>? tappedStyle);
 | 
				
			||||||
  SymbolButtonComponent selectedStyle(ButtonStyle? selectedStyle);
 | 
					  SymbolButtonComponent selectedStyle(ButtonStyle<dynamic>? selectedStyle);
 | 
				
			||||||
  SymbolButtonComponent onPressed(void Function(ControlState)? onPressed);
 | 
					  SymbolButtonComponent onPressed(void Function(ControlState)? onPressed);
 | 
				
			||||||
  SymbolButtonComponent key(Key? key);
 | 
					  SymbolButtonComponent key(Key? key);
 | 
				
			||||||
  SymbolButtonComponent call({
 | 
					  SymbolButtonComponent call({
 | 
				
			||||||
    MainAxisSize? mainAxisSize,
 | 
					    MainAxisSize? mainAxisSize,
 | 
				
			||||||
    TextWrapper? label,
 | 
					    TextWrapper? label,
 | 
				
			||||||
    Widget? icon,
 | 
					    Widget? icon,
 | 
				
			||||||
    ButtonStyle? disabledStyle,
 | 
					    ButtonStyle<dynamic>? disabledStyle,
 | 
				
			||||||
    ButtonStyle? normalStyle,
 | 
					    ButtonStyle<dynamic>? normalStyle,
 | 
				
			||||||
    ButtonStyle? hoveredStyle,
 | 
					    ButtonStyle<dynamic>? hoveredStyle,
 | 
				
			||||||
    ButtonStyle? focusedStyle,
 | 
					    ButtonStyle<dynamic>? focusedStyle,
 | 
				
			||||||
    ButtonStyle? tappedStyle,
 | 
					    ButtonStyle<dynamic>? tappedStyle,
 | 
				
			||||||
    ButtonStyle? selectedStyle,
 | 
					    ButtonStyle<dynamic>? selectedStyle,
 | 
				
			||||||
    void Function(ControlState)? onPressed,
 | 
					    void Function(ControlState)? onPressed,
 | 
				
			||||||
    Key? key,
 | 
					    Key? key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
				
			|||||||
@ -14,47 +14,85 @@
 | 
				
			|||||||
// You should have received a copy of the GNU General Public License
 | 
					// You should have received a copy of the GNU General Public License
 | 
				
			||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
					// along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'dart:ui';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:copy_with_extension/copy_with_extension.dart';
 | 
				
			||||||
import 'package:flutter/widgets.dart';
 | 
					import 'package:flutter/widgets.dart';
 | 
				
			||||||
 | 
					import 'package:wyatt_ui_components/src/core/extensions/build_context_extensions.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
					import 'package:wyatt_ui_components/src/core/utils/multi_color.dart';
 | 
				
			||||||
import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
					import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SymbolButtonStyle extends ButtonStyle {
 | 
					part 'symbol_button_style.g.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@CopyWith()
 | 
				
			||||||
 | 
					class SymbolButtonStyle extends ButtonStyle<SymbolButtonStyle> {
 | 
				
			||||||
  const SymbolButtonStyle({
 | 
					  const SymbolButtonStyle({
 | 
				
			||||||
    this.dimension = 60,
 | 
					    this.label,
 | 
				
			||||||
    super.radius = 15,
 | 
					    this.dimension,
 | 
				
			||||||
    super.padding = 10,
 | 
					    super.radius,
 | 
				
			||||||
 | 
					    super.padding,
 | 
				
			||||||
    super.foregroundColors,
 | 
					    super.foregroundColors,
 | 
				
			||||||
    super.backgroundColors,
 | 
					    super.backgroundColors,
 | 
				
			||||||
    super.borderColors,
 | 
					    super.borderColors,
 | 
				
			||||||
    super.stroke = 2,
 | 
					    super.stroke,
 | 
				
			||||||
    super.shadow = const BoxShadow(
 | 
					    super.shadow,
 | 
				
			||||||
      blurRadius: 30,
 | 
					 | 
				
			||||||
      offset: Offset(0, 5),
 | 
					 | 
				
			||||||
      color: Color.fromRGBO(0, 0, 0, 0.05),
 | 
					 | 
				
			||||||
    ),
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  final double? dimension;
 | 
					  /// Used in negociation to build a style from Flutter default values.
 | 
				
			||||||
 | 
					  factory SymbolButtonStyle.fromFlutter(BuildContext context) =>
 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  SymbolButtonStyle copyWith({
 | 
					 | 
				
			||||||
    double? dimension,
 | 
					 | 
				
			||||||
    double? radius,
 | 
					 | 
				
			||||||
    double? padding,
 | 
					 | 
				
			||||||
    MultiColor? foregroundColors,
 | 
					 | 
				
			||||||
    MultiColor? backgroundColors,
 | 
					 | 
				
			||||||
    MultiColor? borderColors,
 | 
					 | 
				
			||||||
    double? stroke,
 | 
					 | 
				
			||||||
    BoxShadow? shadow,
 | 
					 | 
				
			||||||
  }) =>
 | 
					 | 
				
			||||||
      SymbolButtonStyle(
 | 
					      SymbolButtonStyle(
 | 
				
			||||||
        dimension: dimension ?? this.dimension,
 | 
					        label: context.textTheme.labelLarge,
 | 
				
			||||||
        radius: radius ?? this.radius,
 | 
					        dimension: context.buttonTheme.height,
 | 
				
			||||||
        padding: padding ?? this.padding,
 | 
					        radius: (context.buttonTheme.shape is RoundedRectangleBorder)
 | 
				
			||||||
        foregroundColors: foregroundColors ?? this.foregroundColors,
 | 
					            ? (context.buttonTheme.shape as RoundedRectangleBorder).borderRadius
 | 
				
			||||||
        backgroundColors: backgroundColors ?? this.backgroundColors,
 | 
					            : null,
 | 
				
			||||||
        borderColors: borderColors ?? this.borderColors,
 | 
					        padding: context.buttonTheme.padding,
 | 
				
			||||||
        stroke: stroke ?? this.stroke,
 | 
					        foregroundColors: MultiColor.single(context.colorScheme.onPrimary),
 | 
				
			||||||
        shadow: shadow ?? this.shadow,
 | 
					        backgroundColors: MultiColor.single(context.colorScheme.primary),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Used for interpolation.
 | 
				
			||||||
 | 
					  static SymbolButtonStyle? lerp(
 | 
				
			||||||
 | 
					    SymbolButtonStyle? a,
 | 
				
			||||||
 | 
					    SymbolButtonStyle? b,
 | 
				
			||||||
 | 
					    double t,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    if (a == null || b == null) {
 | 
				
			||||||
 | 
					      return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // b.copyWith to return b attributes even if they are not lerped
 | 
				
			||||||
 | 
					    return b.copyWith(
 | 
				
			||||||
 | 
					      label: TextStyle.lerp(a.label, b.label, t),
 | 
				
			||||||
 | 
					      dimension: lerpDouble(a.dimension, b.dimension, t),
 | 
				
			||||||
 | 
					      foregroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.foregroundColors,
 | 
				
			||||||
 | 
					        b.foregroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      backgroundColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.backgroundColors,
 | 
				
			||||||
 | 
					        b.backgroundColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      borderColors: MultiColor.lerp(
 | 
				
			||||||
 | 
					        a.borderColors,
 | 
				
			||||||
 | 
					        b.borderColors,
 | 
				
			||||||
 | 
					        t,
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      radius: BorderRadiusGeometry.lerp(a.radius, b.radius, t),
 | 
				
			||||||
 | 
					      padding: EdgeInsetsGeometry.lerp(a.padding, b.padding, t),
 | 
				
			||||||
 | 
					      stroke: lerpDouble(a.stroke, b.stroke, t),
 | 
				
			||||||
 | 
					      shadow: BoxShadow.lerp(a.shadow, b.shadow, t),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Label text style
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `TextTheme.labelLarge`
 | 
				
			||||||
 | 
					  final TextStyle? label;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Dimension of this button (as a square)
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Default to `context.buttonTheme.height`
 | 
				
			||||||
 | 
					  final double? dimension;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,150 @@
 | 
				
			|||||||
 | 
					// GENERATED CODE - DO NOT MODIFY BY HAND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part of 'symbol_button_style.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					// CopyWithGenerator
 | 
				
			||||||
 | 
					// **************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract class _$SymbolButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  SymbolButtonStyle label(TextStyle? label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle dimension(double? dimension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle radius(BorderRadiusGeometry? radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle padding(EdgeInsetsGeometry? padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle foregroundColors(MultiColor? foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle backgroundColors(MultiColor? backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle borderColors(MultiColor? borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle stroke(double? stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  SymbolButtonStyle shadow(BoxShadow? shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `SymbolButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// SymbolButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  SymbolButtonStyle call({
 | 
				
			||||||
 | 
					    TextStyle? label,
 | 
				
			||||||
 | 
					    double? dimension,
 | 
				
			||||||
 | 
					    BorderRadiusGeometry? radius,
 | 
				
			||||||
 | 
					    EdgeInsetsGeometry? padding,
 | 
				
			||||||
 | 
					    MultiColor? foregroundColors,
 | 
				
			||||||
 | 
					    MultiColor? backgroundColors,
 | 
				
			||||||
 | 
					    MultiColor? borderColors,
 | 
				
			||||||
 | 
					    double? stroke,
 | 
				
			||||||
 | 
					    BoxShadow? shadow,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfSymbolButtonStyle.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfSymbolButtonStyle.copyWith.fieldName(...)`
 | 
				
			||||||
 | 
					class _$SymbolButtonStyleCWProxyImpl implements _$SymbolButtonStyleCWProxy {
 | 
				
			||||||
 | 
					  const _$SymbolButtonStyleCWProxyImpl(this._value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final SymbolButtonStyle _value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle label(TextStyle? label) => this(label: label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle dimension(double? dimension) => this(dimension: dimension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle radius(BorderRadiusGeometry? radius) =>
 | 
				
			||||||
 | 
					      this(radius: radius);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle padding(EdgeInsetsGeometry? padding) =>
 | 
				
			||||||
 | 
					      this(padding: padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle foregroundColors(MultiColor? foregroundColors) =>
 | 
				
			||||||
 | 
					      this(foregroundColors: foregroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle backgroundColors(MultiColor? backgroundColors) =>
 | 
				
			||||||
 | 
					      this(backgroundColors: backgroundColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle borderColors(MultiColor? borderColors) =>
 | 
				
			||||||
 | 
					      this(borderColors: borderColors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle stroke(double? stroke) => this(stroke: stroke);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  SymbolButtonStyle shadow(BoxShadow? shadow) => this(shadow: shadow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `SymbolButtonStyle(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Usage
 | 
				
			||||||
 | 
					  /// ```dart
 | 
				
			||||||
 | 
					  /// SymbolButtonStyle(...).copyWith(id: 12, name: "My name")
 | 
				
			||||||
 | 
					  /// ````
 | 
				
			||||||
 | 
					  SymbolButtonStyle call({
 | 
				
			||||||
 | 
					    Object? label = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? dimension = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? radius = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? padding = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? foregroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? backgroundColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? borderColors = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? stroke = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					    Object? shadow = const $CopyWithPlaceholder(),
 | 
				
			||||||
 | 
					  }) {
 | 
				
			||||||
 | 
					    return SymbolButtonStyle(
 | 
				
			||||||
 | 
					      label: label == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.label
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : label as TextStyle?,
 | 
				
			||||||
 | 
					      dimension: dimension == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.dimension
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : dimension as double?,
 | 
				
			||||||
 | 
					      radius: radius == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.radius
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : radius as BorderRadiusGeometry?,
 | 
				
			||||||
 | 
					      padding: padding == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.padding
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : padding as EdgeInsetsGeometry?,
 | 
				
			||||||
 | 
					      foregroundColors: foregroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.foregroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : foregroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      backgroundColors: backgroundColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.backgroundColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : backgroundColors as MultiColor?,
 | 
				
			||||||
 | 
					      borderColors: borderColors == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.borderColors
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : borderColors as MultiColor?,
 | 
				
			||||||
 | 
					      stroke: stroke == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.stroke
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : stroke as double?,
 | 
				
			||||||
 | 
					      shadow: shadow == const $CopyWithPlaceholder()
 | 
				
			||||||
 | 
					          ? _value.shadow
 | 
				
			||||||
 | 
					          // ignore: cast_nullable_to_non_nullable
 | 
				
			||||||
 | 
					          : shadow as BoxShadow?,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extension $SymbolButtonStyleCopyWith on SymbolButtonStyle {
 | 
				
			||||||
 | 
					  /// Returns a callable class that can be used as follows: `instanceOfSymbolButtonStyle.copyWith(...)` or like so:`instanceOfSymbolButtonStyle.copyWith.fieldName(...)`.
 | 
				
			||||||
 | 
					  // ignore: library_private_types_in_public_api
 | 
				
			||||||
 | 
					  _$SymbolButtonStyleCWProxy get copyWith =>
 | 
				
			||||||
 | 
					      _$SymbolButtonStyleCWProxyImpl(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -13,6 +13,8 @@ abstract class $SkillCardComponentCWProxy {
 | 
				
			|||||||
  SkillCardComponent description(TextWrapper? description);
 | 
					  SkillCardComponent description(TextWrapper? description);
 | 
				
			||||||
  SkillCardComponent skills(List<TextWrapper>? skills);
 | 
					  SkillCardComponent skills(List<TextWrapper>? skills);
 | 
				
			||||||
  SkillCardComponent leadingIcon(IconData? leadingIcon);
 | 
					  SkillCardComponent leadingIcon(IconData? leadingIcon);
 | 
				
			||||||
 | 
					  SkillCardComponent secondaryBackgroundColors(
 | 
				
			||||||
 | 
					      Color? secondaryBackgroundColors);
 | 
				
			||||||
  SkillCardComponent radius(double? radius);
 | 
					  SkillCardComponent radius(double? radius);
 | 
				
			||||||
  SkillCardComponent padding(double? padding);
 | 
					  SkillCardComponent padding(double? padding);
 | 
				
			||||||
  SkillCardComponent borderColors(List<Color>? borderColors);
 | 
					  SkillCardComponent borderColors(List<Color>? borderColors);
 | 
				
			||||||
@ -21,8 +23,6 @@ abstract class $SkillCardComponentCWProxy {
 | 
				
			|||||||
  SkillCardComponent maxSize(Size? maxSize);
 | 
					  SkillCardComponent maxSize(Size? maxSize);
 | 
				
			||||||
  SkillCardComponent shadow(BoxShadow? shadow);
 | 
					  SkillCardComponent shadow(BoxShadow? shadow);
 | 
				
			||||||
  SkillCardComponent background(Widget? background);
 | 
					  SkillCardComponent background(Widget? background);
 | 
				
			||||||
  SkillCardComponent secondaryBackgroundColors(
 | 
					 | 
				
			||||||
      Color? secondaryBackgroundColors);
 | 
					 | 
				
			||||||
  SkillCardComponent key(Key? key);
 | 
					  SkillCardComponent key(Key? key);
 | 
				
			||||||
  SkillCardComponent call({
 | 
					  SkillCardComponent call({
 | 
				
			||||||
    IconData? icon,
 | 
					    IconData? icon,
 | 
				
			||||||
@ -31,6 +31,7 @@ abstract class $SkillCardComponentCWProxy {
 | 
				
			|||||||
    TextWrapper? description,
 | 
					    TextWrapper? description,
 | 
				
			||||||
    List<TextWrapper>? skills,
 | 
					    List<TextWrapper>? skills,
 | 
				
			||||||
    IconData? leadingIcon,
 | 
					    IconData? leadingIcon,
 | 
				
			||||||
 | 
					    Color? secondaryBackgroundColors,
 | 
				
			||||||
    double? radius,
 | 
					    double? radius,
 | 
				
			||||||
    double? padding,
 | 
					    double? padding,
 | 
				
			||||||
    List<Color>? borderColors,
 | 
					    List<Color>? borderColors,
 | 
				
			||||||
@ -39,7 +40,6 @@ abstract class $SkillCardComponentCWProxy {
 | 
				
			|||||||
    Size? maxSize,
 | 
					    Size? maxSize,
 | 
				
			||||||
    BoxShadow? shadow,
 | 
					    BoxShadow? shadow,
 | 
				
			||||||
    Widget? background,
 | 
					    Widget? background,
 | 
				
			||||||
    Color? secondaryBackgroundColors,
 | 
					 | 
				
			||||||
    Key? key,
 | 
					    Key? key,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -9,25 +9,21 @@ environment:
 | 
				
			|||||||
  sdk: ">=2.17.0 <3.0.0"
 | 
					  sdk: ">=2.17.0 <3.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dependencies:
 | 
					dependencies:
 | 
				
			||||||
  flutter:
 | 
					  copy_with_extension: ^5.0.0
 | 
				
			||||||
    sdk: flutter
 | 
					  flutter: { sdk: flutter }
 | 
				
			||||||
  wyatt_component_copy_with_extension:
 | 
					  wyatt_component_copy_with_extension:
 | 
				
			||||||
    git:
 | 
					    git:
 | 
				
			||||||
      url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-packages.git
 | 
					      url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-packages.git
 | 
				
			||||||
      path: packages/wyatt_component_copy_with_extension
 | 
					      path: packages/wyatt_component_copy_with_extension
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
  flutter_test:
 | 
					 | 
				
			||||||
    sdk: flutter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  build_runner: ^2.3.3
 | 
					  build_runner: ^2.3.3
 | 
				
			||||||
 | 
					  copy_with_extension_gen: ^5.0.0
 | 
				
			||||||
 | 
					  flutter_test: { sdk: flutter }
 | 
				
			||||||
 | 
					  wyatt_analysis:
 | 
				
			||||||
 | 
					    hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
 | 
				
			||||||
 | 
					    version: ^2.4.0
 | 
				
			||||||
  wyatt_component_copy_with_gen:
 | 
					  wyatt_component_copy_with_gen:
 | 
				
			||||||
    git:
 | 
					    git:
 | 
				
			||||||
      url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-packages.git
 | 
					      url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-packages.git
 | 
				
			||||||
      path: packages/wyatt_component_copy_with_gen
 | 
					      path: packages/wyatt_component_copy_with_gen
 | 
				
			||||||
 | 
					 | 
				
			||||||
  wyatt_analysis:
 | 
					 | 
				
			||||||
    git:
 | 
					 | 
				
			||||||
      url: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
 | 
					 | 
				
			||||||
      ref: wyatt_analysis-v2.4.0
 | 
					 | 
				
			||||||
      path: packages/wyatt_analysis
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user