diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/buttons.dart b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/buttons.dart index f645fbd3..8517b268 100644 --- a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/buttons.dart +++ b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/buttons.dart @@ -18,5 +18,7 @@ export './button_component.dart'; export './button_style.dart'; export './flat_button_component.dart'; export './flat_button_style.dart'; +export './simple_icon_button_component.dart'; +export './simple_icon_button_style.dart'; export './symbol_button_component.dart'; export './symbol_button_style.dart'; diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_component.dart b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_component.dart new file mode 100644 index 00000000..8080ce5a --- /dev/null +++ b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_component.dart @@ -0,0 +1,58 @@ +// Copyright (C) 2023 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'package:flutter/widgets.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'; + +part 'simple_icon_button_component.g.dart'; + +@ComponentProxyExtension() +abstract class SimpleIconButtonComponent extends ButtonComponent + with CopyWithMixin<$SimpleIconButtonComponentCWProxy> { + const SimpleIconButtonComponent({ + this.icon, + super.disabledStyle, + super.normalStyle, + super.hoveredStyle, + super.focusedStyle, + super.tappedStyle, + super.selectedStyle, + super.onPressed, + super.key, + }); + + @override + SimpleIconButtonStyle? get disabledStyle; + + @override + SimpleIconButtonStyle? get normalStyle; + + @override + SimpleIconButtonStyle? get hoveredStyle; + + @override + SimpleIconButtonStyle? get focusedStyle; + + @override + SimpleIconButtonStyle? get tappedStyle; + + @override + SimpleIconButtonStyle? get selectedStyle; + + final Icon? icon; +} diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_component.g.dart b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_component.g.dart new file mode 100644 index 00000000..017a62ff --- /dev/null +++ b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_component.g.dart @@ -0,0 +1,30 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'simple_icon_button_component.dart'; + +// ************************************************************************** +// ComponentProxyGenerator +// ************************************************************************** + +abstract class $SimpleIconButtonComponentCWProxy { + SimpleIconButtonComponent icon(Icon? icon); + SimpleIconButtonComponent disabledStyle(ButtonStyle? disabledStyle); + SimpleIconButtonComponent normalStyle(ButtonStyle? normalStyle); + SimpleIconButtonComponent hoveredStyle(ButtonStyle? hoveredStyle); + SimpleIconButtonComponent focusedStyle(ButtonStyle? focusedStyle); + SimpleIconButtonComponent tappedStyle(ButtonStyle? tappedStyle); + SimpleIconButtonComponent selectedStyle(ButtonStyle? selectedStyle); + SimpleIconButtonComponent onPressed(void Function(ControlState)? onPressed); + SimpleIconButtonComponent key(Key? key); + SimpleIconButtonComponent call({ + Icon? icon, + ButtonStyle? disabledStyle, + ButtonStyle? normalStyle, + ButtonStyle? hoveredStyle, + ButtonStyle? focusedStyle, + ButtonStyle? tappedStyle, + ButtonStyle? selectedStyle, + void Function(ControlState)? onPressed, + Key? key, + }); +} diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_style.dart b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_style.dart new file mode 100644 index 00000000..fc311faf --- /dev/null +++ b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/simple_icon_button_style.dart @@ -0,0 +1,60 @@ +// Copyright (C) 2023 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'package:flutter/widgets.dart'; +import 'package:wyatt_ui_components/src/core/utils/multi_color.dart'; +import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dart'; + +class SimpleIconButtonStyle extends ButtonStyle { + const SimpleIconButtonStyle({ + this.dimension = 30, + super.radius = 5, + super.padding = 5, + super.foregroundColors, + super.backgroundColors, + super.borderColors, + super.stroke = 2, + super.shadow = const BoxShadow( + blurRadius: 30, + offset: Offset(0, 5), + color: Color.fromRGBO(0, 0, 0, 0.05), + ), + }); + + final double? dimension; + + @override + SimpleIconButtonStyle copyWith({ + double? dimension, + double? radius, + double? padding, + MultiColor? foregroundColors, + MultiColor? backgroundColors, + MultiColor? borderColors, + double? stroke, + BoxShadow? shadow, + }) => + SimpleIconButtonStyle( + dimension: dimension ?? this.dimension, + radius: radius ?? radius, + padding: padding ?? padding, + foregroundColors: foregroundColors ?? foregroundColors, + backgroundColors: backgroundColors ?? backgroundColors, + borderColors: borderColors ?? borderColors, + stroke: stroke ?? stroke, + shadow: shadow ?? shadow, + ); +} diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_component.g.dart b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_component.g.dart index db10e4fb..6b2fda5c 100644 --- a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_component.g.dart +++ b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_component.g.dart @@ -7,6 +7,8 @@ part of 'symbol_button_component.dart'; // ************************************************************************** abstract class $SymbolButtonComponentCWProxy { + SymbolButtonComponent mainAxisSize(MainAxisSize? mainAxisSize); + SymbolButtonComponent label(TextWrapper? label); SymbolButtonComponent icon(Widget? icon); SymbolButtonComponent disabledStyle(ButtonStyle? disabledStyle); SymbolButtonComponent normalStyle(ButtonStyle? normalStyle); @@ -17,6 +19,8 @@ abstract class $SymbolButtonComponentCWProxy { SymbolButtonComponent onPressed(void Function(ControlState)? onPressed); SymbolButtonComponent key(Key? key); SymbolButtonComponent call({ + MainAxisSize? mainAxisSize, + TextWrapper? label, Widget? icon, ButtonStyle? disabledStyle, ButtonStyle? normalStyle, diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_style.dart b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_style.dart index 2885b0c5..2e94d3b3 100644 --- a/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_style.dart +++ b/packages/wyatt_ui_components/lib/src/domain/entities/buttons/symbol_button_style.dart @@ -20,6 +20,7 @@ import 'package:wyatt_ui_components/src/domain/entities/buttons/button_style.dar class SymbolButtonStyle extends ButtonStyle { const SymbolButtonStyle({ + this.dimension = 60, super.radius = 15, super.padding = 10, super.foregroundColors, @@ -33,8 +34,11 @@ class SymbolButtonStyle extends ButtonStyle { ), }); + final double? dimension; + @override SymbolButtonStyle copyWith({ + double? dimension, double? radius, double? padding, MultiColor? foregroundColors, @@ -44,6 +48,7 @@ class SymbolButtonStyle extends ButtonStyle { BoxShadow? shadow, }) => SymbolButtonStyle( + dimension: dimension ?? this.dimension, radius: radius ?? this.radius, padding: padding ?? this.padding, foregroundColors: foregroundColors ?? this.foregroundColors,