master #81
BIN
packages/wyatt_ui_kit/example/assets/images/studio_logo.png
Normal file
BIN
packages/wyatt_ui_kit/example/assets/images/studio_logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
69
packages/wyatt_ui_kit/example/lib/bars/bars.dart
Normal file
69
packages/wyatt_ui_kit/example/lib/bars/bars.dart
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gap/gap.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
|
||||||
|
import 'package:wyatt_ui_kit/wyatt_ui_kit.dart';
|
||||||
|
import 'package:wyatt_ui_kit_example/demo_page.dart';
|
||||||
|
|
||||||
|
class Bars extends DemoPage {
|
||||||
|
const Bars({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) => ListView(
|
||||||
|
cacheExtent: 1000,
|
||||||
|
children: [
|
||||||
|
const Gap(20),
|
||||||
|
TopAppBar(
|
||||||
|
leading: Padding(
|
||||||
|
padding: const EdgeInsets.all(8),
|
||||||
|
child: Image.asset('assets/images/studio_logo.png'),
|
||||||
|
),
|
||||||
|
title: 'Wyatt Studio'.wrap(
|
||||||
|
gradientColors: const MultiColor(
|
||||||
|
[
|
||||||
|
Color.fromRGBO(57, 167, 254, 1),
|
||||||
|
Color.fromRGBO(71, 94, 241, 1),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
actions: [
|
||||||
|
IconButton(onPressed: () {}, icon: const Icon(Icons.menu))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const Gap(20),
|
||||||
|
TopAppBar(
|
||||||
|
leading: Padding(
|
||||||
|
padding: const EdgeInsets.all(8),
|
||||||
|
child: Image.asset('assets/images/studio_logo.png'),
|
||||||
|
),
|
||||||
|
title: 'Wyatt Studio'.wrap(
|
||||||
|
gradientColors: const MultiColor(
|
||||||
|
[
|
||||||
|
Color.fromRGBO(57, 167, 254, 1),
|
||||||
|
Color.fromRGBO(71, 94, 241, 1),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
expandedWidget: const [
|
||||||
|
ListTile(
|
||||||
|
title: Text('Votre programme'),
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
title: Text('Votre programme'),
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
title: Text('Votre programme'),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
actions: [
|
||||||
|
IconButton(
|
||||||
|
onPressed: () {},
|
||||||
|
icon: const Icon(Icons.clear),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get title => 'Bars';
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:adaptive_theme/adaptive_theme.dart';
|
import 'package:adaptive_theme/adaptive_theme.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
|
import 'package:wyatt_ui_kit_example/bars/bars.dart';
|
||||||
import 'package:wyatt_ui_kit_example/buttons/buttons.dart';
|
import 'package:wyatt_ui_kit_example/buttons/buttons.dart';
|
||||||
import 'package:wyatt_ui_kit_example/cards/cards.dart';
|
import 'package:wyatt_ui_kit_example/cards/cards.dart';
|
||||||
import 'package:wyatt_ui_kit_example/demo_page.dart';
|
import 'package:wyatt_ui_kit_example/demo_page.dart';
|
||||||
@ -28,6 +29,7 @@ class _HomeState extends State<Home> {
|
|||||||
Loaders(),
|
Loaders(),
|
||||||
RichTextBuilders(),
|
RichTextBuilders(),
|
||||||
TextInputs(),
|
TextInputs(),
|
||||||
|
Bars(),
|
||||||
];
|
];
|
||||||
|
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
|
@ -25,6 +25,7 @@ import 'package:wyatt_ui_kit_example/theme/rich_text_builder_theme.dart';
|
|||||||
import 'package:wyatt_ui_kit_example/theme/simple_icon_button_theme.dart';
|
import 'package:wyatt_ui_kit_example/theme/simple_icon_button_theme.dart';
|
||||||
import 'package:wyatt_ui_kit_example/theme/symbol_button_theme.dart';
|
import 'package:wyatt_ui_kit_example/theme/symbol_button_theme.dart';
|
||||||
import 'package:wyatt_ui_kit_example/theme/text_input_theme.dart';
|
import 'package:wyatt_ui_kit_example/theme/text_input_theme.dart';
|
||||||
|
import 'package:wyatt_ui_kit_example/theme/top_app_bar_theme.dart';
|
||||||
|
|
||||||
/// Easely switch between Material and Studio themes.
|
/// Easely switch between Material and Studio themes.
|
||||||
abstract class Themes {
|
abstract class Themes {
|
||||||
@ -92,6 +93,7 @@ abstract class Themes {
|
|||||||
// Rich Text
|
// Rich Text
|
||||||
RichTextBuilderTheme.light(),
|
RichTextBuilderTheme.light(),
|
||||||
TextInputTheme.light(),
|
TextInputTheme.light(),
|
||||||
|
TopAppBarTheme.light(),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -124,6 +126,7 @@ abstract class Themes {
|
|||||||
// Rich Text
|
// Rich Text
|
||||||
RichTextBuilderTheme.dark(),
|
RichTextBuilderTheme.dark(),
|
||||||
TextInputTheme.dark(),
|
TextInputTheme.dark(),
|
||||||
|
TopAppBarTheme.dark(),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,71 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
|
||||||
|
import 'package:wyatt_ui_kit/wyatt_ui_kit.dart';
|
||||||
|
|
||||||
|
class TopAppBarTheme extends TopAppBarThemeExtension {
|
||||||
|
const TopAppBarTheme({
|
||||||
|
super.iconTheme,
|
||||||
|
super.backgroundColors,
|
||||||
|
super.expandedDividerStyle,
|
||||||
|
super.titleStyle,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory TopAppBarTheme.light() => TopAppBarTheme(
|
||||||
|
backgroundColors: const MultiColor.single(
|
||||||
|
Color.fromRGBO(246, 246, 246, 1),
|
||||||
|
),
|
||||||
|
expandedDividerStyle: Colors.black.withOpacity(0.1),
|
||||||
|
titleStyle: GoogleFonts.montserrat(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 18,
|
||||||
|
),
|
||||||
|
iconTheme: const IconThemeData(color: Colors.black),
|
||||||
|
);
|
||||||
|
|
||||||
|
factory TopAppBarTheme.dark() => TopAppBarTheme(
|
||||||
|
backgroundColors: const MultiColor([
|
||||||
|
Color.fromRGBO(44, 50, 56, 1),
|
||||||
|
Color.fromRGBO(39, 47, 61, 1),
|
||||||
|
Color.fromRGBO(44, 50, 56, 1),
|
||||||
|
]),
|
||||||
|
expandedDividerStyle: Colors.white.withOpacity(0.1),
|
||||||
|
titleStyle: GoogleFonts.montserrat(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 18,
|
||||||
|
),
|
||||||
|
iconTheme: const IconThemeData(color: Colors.white),
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
ThemeExtension<TopAppBarThemeExtension> copyWith({
|
||||||
|
IconThemeData? iconTheme,
|
||||||
|
MultiColor? backgroundColors,
|
||||||
|
Color? expandedDividerStyle,
|
||||||
|
TextStyle? titleStyle,
|
||||||
|
}) =>
|
||||||
|
TopAppBarTheme(
|
||||||
|
iconTheme: iconTheme ?? this.iconTheme,
|
||||||
|
backgroundColors: backgroundColors ?? this.backgroundColors,
|
||||||
|
expandedDividerStyle: expandedDividerStyle ?? this.expandedDividerStyle,
|
||||||
|
titleStyle: titleStyle ?? this.titleStyle,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
ThemeExtension<TopAppBarThemeExtension> lerp(
|
||||||
|
covariant ThemeExtension<TopAppBarThemeExtension>? other,
|
||||||
|
double t,
|
||||||
|
) {
|
||||||
|
if (other is! TopAppBarTheme) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
return TopAppBarTheme(
|
||||||
|
iconTheme: IconThemeData.lerp(iconTheme, other.iconTheme, t),
|
||||||
|
backgroundColors:
|
||||||
|
MultiColor.lerp(backgroundColors, other.backgroundColors, t),
|
||||||
|
expandedDividerStyle:
|
||||||
|
Color.lerp(expandedDividerStyle, other.expandedDividerStyle, t),
|
||||||
|
titleStyle: TextStyle.lerp(titleStyle, other.titleStyle, t),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2023 WYATT GROUP
|
||||||
|
// Please see the AUTHORS file for details.
|
||||||
|
//
|
||||||
|
// super 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.
|
||||||
|
//
|
||||||
|
// super 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 super program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
export 'top_app_bar.dart';
|
@ -0,0 +1,139 @@
|
|||||||
|
// Copyright (C) 2023 WYATT GROUP
|
||||||
|
// Please see the AUTHORS file for details.
|
||||||
|
//
|
||||||
|
// super 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.
|
||||||
|
//
|
||||||
|
// super 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 super program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
|
||||||
|
import 'package:wyatt_ui_kit/wyatt_ui_kit.dart';
|
||||||
|
part 'top_app_bar.g.dart';
|
||||||
|
|
||||||
|
@ComponentCopyWithExtension()
|
||||||
|
class TopAppBar extends AppBarComponent with $TopAppBarCWMixin {
|
||||||
|
const TopAppBar({
|
||||||
|
super.systemOverlayStyle,
|
||||||
|
super.automaticallyImplyLeading,
|
||||||
|
super.flexibleSpace,
|
||||||
|
super.bottom,
|
||||||
|
super.elevation,
|
||||||
|
super.scrolledUnderElevation,
|
||||||
|
super.shadowColor,
|
||||||
|
super.surfaceTintColor,
|
||||||
|
super.backgroundColor,
|
||||||
|
super.iconTheme,
|
||||||
|
super.primary,
|
||||||
|
super.excludeHeaderSemantics,
|
||||||
|
super.toolbarHeight,
|
||||||
|
super.leadingWidth,
|
||||||
|
super.title,
|
||||||
|
super.leading,
|
||||||
|
super.actions,
|
||||||
|
super.centerTitle,
|
||||||
|
super.shape,
|
||||||
|
super.expandedWidget,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) => DecoratedBox(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
gradient: ThemeHelper.getThemeElement<MultiColor, Gradient>(
|
||||||
|
[
|
||||||
|
backgroundColor,
|
||||||
|
context
|
||||||
|
.themeExtension<TopAppBarThemeExtension>()
|
||||||
|
?.backgroundColors,
|
||||||
|
],
|
||||||
|
valueValidator: (value) => value?.isGradient,
|
||||||
|
transform: (value) =>
|
||||||
|
LinearGradientHelper.fromNullableColors(value?.colors),
|
||||||
|
defaultValue: null,
|
||||||
|
),
|
||||||
|
color: ThemeHelper.getThemeElement<MultiColor, Color>(
|
||||||
|
[
|
||||||
|
backgroundColor,
|
||||||
|
context
|
||||||
|
.themeExtension<TopAppBarThemeExtension>()
|
||||||
|
?.backgroundColors,
|
||||||
|
],
|
||||||
|
valueValidator: (value) => value?.isColor,
|
||||||
|
transform: (value) => value?.color,
|
||||||
|
defaultValue: Theme.of(context).appBarTheme.backgroundColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
AppBar(
|
||||||
|
titleSpacing: 0,
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
systemOverlayStyle: systemOverlayStyle,
|
||||||
|
automaticallyImplyLeading: automaticallyImplyLeading ?? true,
|
||||||
|
flexibleSpace: flexibleSpace,
|
||||||
|
bottom: bottom,
|
||||||
|
elevation: elevation ?? 0,
|
||||||
|
scrolledUnderElevation: scrolledUnderElevation,
|
||||||
|
shadowColor: shadowColor,
|
||||||
|
surfaceTintColor: surfaceTintColor,
|
||||||
|
iconTheme:
|
||||||
|
ThemeHelper.getThemeElement<IconThemeData, IconThemeData>(
|
||||||
|
[
|
||||||
|
iconTheme,
|
||||||
|
context.themeExtension<TopAppBarThemeExtension>()?.iconTheme,
|
||||||
|
],
|
||||||
|
valueValidator: (value) => value != null,
|
||||||
|
transform: (value) => value,
|
||||||
|
defaultValue: Theme.of(context).iconTheme,
|
||||||
|
),
|
||||||
|
primary: primary ?? true,
|
||||||
|
excludeHeaderSemantics: excludeHeaderSemantics ?? false,
|
||||||
|
leadingWidth: leadingWidth,
|
||||||
|
title: Text(
|
||||||
|
title?.data ?? '',
|
||||||
|
style: ThemeHelper.getThemeElement<TextStyle, TextStyle>(
|
||||||
|
[
|
||||||
|
title?.style,
|
||||||
|
context
|
||||||
|
.themeExtension<TopAppBarThemeExtension>()
|
||||||
|
?.titleStyle
|
||||||
|
],
|
||||||
|
valueValidator: (value) => value != null,
|
||||||
|
transform: (value) => value,
|
||||||
|
defaultValue: context.textTheme.titleLarge,
|
||||||
|
),
|
||||||
|
).toGradient(gradientColors: title?.gradientColors),
|
||||||
|
leading: leading,
|
||||||
|
actions: actions,
|
||||||
|
centerTitle: centerTitle ?? false,
|
||||||
|
),
|
||||||
|
if (expandedWidget != null)
|
||||||
|
...ListTile.divideTiles(
|
||||||
|
color: ThemeHelper.getThemeElement<Color, Color>(
|
||||||
|
[
|
||||||
|
context
|
||||||
|
.themeExtension<TopAppBarThemeExtension>()
|
||||||
|
?.expandedDividerStyle,
|
||||||
|
],
|
||||||
|
valueValidator: (value) => value != null,
|
||||||
|
transform: (value) => value,
|
||||||
|
defaultValue: Theme.of(context).dividerColor,
|
||||||
|
),
|
||||||
|
context: context,
|
||||||
|
tiles: expandedWidget!,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,119 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'top_app_bar.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// ComponentCopyWithGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
class $TopAppBarCWProxyImpl implements $AppBarComponentCWProxy {
|
||||||
|
const $TopAppBarCWProxyImpl(this._value);
|
||||||
|
final TopAppBar _value;
|
||||||
|
@override
|
||||||
|
TopAppBar shape(ShapeBorder? shape) => this(shape: shape);
|
||||||
|
@override
|
||||||
|
TopAppBar systemOverlayStyle(SystemUiOverlayStyle? systemOverlayStyle) =>
|
||||||
|
this(systemOverlayStyle: systemOverlayStyle);
|
||||||
|
@override
|
||||||
|
TopAppBar automaticallyImplyLeading(bool? automaticallyImplyLeading) =>
|
||||||
|
this(automaticallyImplyLeading: automaticallyImplyLeading);
|
||||||
|
@override
|
||||||
|
TopAppBar flexibleSpace(Widget? flexibleSpace) =>
|
||||||
|
this(flexibleSpace: flexibleSpace);
|
||||||
|
@override
|
||||||
|
TopAppBar bottom(PreferredSizeWidget? bottom) => this(bottom: bottom);
|
||||||
|
@override
|
||||||
|
TopAppBar elevation(double? elevation) => this(elevation: elevation);
|
||||||
|
@override
|
||||||
|
TopAppBar scrolledUnderElevation(double? scrolledUnderElevation) =>
|
||||||
|
this(scrolledUnderElevation: scrolledUnderElevation);
|
||||||
|
@override
|
||||||
|
TopAppBar shadowColor(Color? shadowColor) => this(shadowColor: shadowColor);
|
||||||
|
@override
|
||||||
|
TopAppBar surfaceTintColor(Color? surfaceTintColor) =>
|
||||||
|
this(surfaceTintColor: surfaceTintColor);
|
||||||
|
@override
|
||||||
|
TopAppBar backgroundColor(MultiColor? backgroundColor) =>
|
||||||
|
this(backgroundColor: backgroundColor);
|
||||||
|
@override
|
||||||
|
TopAppBar iconTheme(IconThemeData? iconTheme) => this(iconTheme: iconTheme);
|
||||||
|
@override
|
||||||
|
TopAppBar primary(bool? primary) => this(primary: primary);
|
||||||
|
@override
|
||||||
|
TopAppBar excludeHeaderSemantics(bool? excludeHeaderSemantics) =>
|
||||||
|
this(excludeHeaderSemantics: excludeHeaderSemantics);
|
||||||
|
@override
|
||||||
|
TopAppBar toolbarHeight(double? toolbarHeight) =>
|
||||||
|
this(toolbarHeight: toolbarHeight);
|
||||||
|
@override
|
||||||
|
TopAppBar leadingWidth(double? leadingWidth) =>
|
||||||
|
this(leadingWidth: leadingWidth);
|
||||||
|
@override
|
||||||
|
TopAppBar title(TextWrapper? title) => this(title: title);
|
||||||
|
@override
|
||||||
|
TopAppBar leading(Widget? leading) => this(leading: leading);
|
||||||
|
@override
|
||||||
|
TopAppBar actions(List<Widget>? actions) => this(actions: actions);
|
||||||
|
@override
|
||||||
|
TopAppBar centerTitle(bool? centerTitle) => this(centerTitle: centerTitle);
|
||||||
|
@override
|
||||||
|
TopAppBar expandedWidget(List<Widget>? expandedWidget) =>
|
||||||
|
this(expandedWidget: expandedWidget);
|
||||||
|
@override
|
||||||
|
TopAppBar key(Key? key) => this(key: key);
|
||||||
|
@override
|
||||||
|
TopAppBar call({
|
||||||
|
ShapeBorder? shape,
|
||||||
|
SystemUiOverlayStyle? systemOverlayStyle,
|
||||||
|
bool? automaticallyImplyLeading,
|
||||||
|
Widget? flexibleSpace,
|
||||||
|
PreferredSizeWidget? bottom,
|
||||||
|
double? elevation,
|
||||||
|
double? scrolledUnderElevation,
|
||||||
|
Color? shadowColor,
|
||||||
|
Color? surfaceTintColor,
|
||||||
|
MultiColor? backgroundColor,
|
||||||
|
IconThemeData? iconTheme,
|
||||||
|
bool? primary,
|
||||||
|
bool? excludeHeaderSemantics,
|
||||||
|
double? toolbarHeight,
|
||||||
|
double? leadingWidth,
|
||||||
|
TextWrapper? title,
|
||||||
|
Widget? leading,
|
||||||
|
List<Widget>? actions,
|
||||||
|
bool? centerTitle,
|
||||||
|
List<Widget>? expandedWidget,
|
||||||
|
Key? key,
|
||||||
|
}) =>
|
||||||
|
TopAppBar(
|
||||||
|
systemOverlayStyle: systemOverlayStyle ?? _value.systemOverlayStyle,
|
||||||
|
automaticallyImplyLeading:
|
||||||
|
automaticallyImplyLeading ?? _value.automaticallyImplyLeading,
|
||||||
|
flexibleSpace: flexibleSpace ?? _value.flexibleSpace,
|
||||||
|
bottom: bottom ?? _value.bottom,
|
||||||
|
elevation: elevation ?? _value.elevation,
|
||||||
|
scrolledUnderElevation:
|
||||||
|
scrolledUnderElevation ?? _value.scrolledUnderElevation,
|
||||||
|
shadowColor: shadowColor ?? _value.shadowColor,
|
||||||
|
surfaceTintColor: surfaceTintColor ?? _value.surfaceTintColor,
|
||||||
|
backgroundColor: backgroundColor ?? _value.backgroundColor,
|
||||||
|
iconTheme: iconTheme ?? _value.iconTheme,
|
||||||
|
primary: primary ?? _value.primary,
|
||||||
|
excludeHeaderSemantics:
|
||||||
|
excludeHeaderSemantics ?? _value.excludeHeaderSemantics,
|
||||||
|
toolbarHeight: toolbarHeight ?? _value.toolbarHeight,
|
||||||
|
leadingWidth: leadingWidth ?? _value.leadingWidth,
|
||||||
|
title: title ?? _value.title,
|
||||||
|
leading: leading ?? _value.leading,
|
||||||
|
actions: actions ?? _value.actions,
|
||||||
|
centerTitle: centerTitle ?? _value.centerTitle,
|
||||||
|
shape: shape ?? _value.shape,
|
||||||
|
expandedWidget: expandedWidget ?? _value.expandedWidget,
|
||||||
|
key: key ?? _value.key,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
mixin $TopAppBarCWMixin on Component {
|
||||||
|
$AppBarComponentCWProxy get copyWith =>
|
||||||
|
$TopAppBarCWProxyImpl(this as TopAppBar);
|
||||||
|
}
|
@ -14,6 +14,7 @@
|
|||||||
// 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/>.
|
||||||
|
|
||||||
|
export './app_bars/app_bars.dart';
|
||||||
export './buttons/buttons.dart';
|
export './buttons/buttons.dart';
|
||||||
export './cards/cards.dart';
|
export './cards/cards.dart';
|
||||||
export './gradients/gradients.dart';
|
export './gradients/gradients.dart';
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
// 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 <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
|
||||||
|
part 'top_navigation_bar.g.dart';
|
||||||
|
|
||||||
|
@ComponentCopyWithExtension()
|
||||||
|
class TopNavigationBar extends TopNavigationBarComponent
|
||||||
|
with $TopNavigationBarCWMixin {
|
||||||
|
const TopNavigationBar({
|
||||||
|
super.leading,
|
||||||
|
super.actions,
|
||||||
|
super.onTap,
|
||||||
|
super.currentIndex = 0,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) => const Placeholder();
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'top_navigation_bar.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// ComponentCopyWithGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
class $TopNavigationBarCWProxyImpl
|
||||||
|
implements $TopNavigationBarComponentCWProxy {
|
||||||
|
const $TopNavigationBarCWProxyImpl(this._value);
|
||||||
|
final TopNavigationBar _value;
|
||||||
|
@override
|
||||||
|
TopNavigationBar leading(Widget? leading) => this(leading: leading);
|
||||||
|
@override
|
||||||
|
TopNavigationBar actions(List<Widget>? actions) => this(actions: actions);
|
||||||
|
@override
|
||||||
|
TopNavigationBar onTap(void Function(BuildContext, int)? onTap) =>
|
||||||
|
this(onTap: onTap);
|
||||||
|
@override
|
||||||
|
TopNavigationBar currentIndex(int? currentIndex) =>
|
||||||
|
this(currentIndex: currentIndex);
|
||||||
|
@override
|
||||||
|
TopNavigationBar key(Key? key) => this(key: key);
|
||||||
|
@override
|
||||||
|
TopNavigationBar call({
|
||||||
|
Widget? leading,
|
||||||
|
List<Widget>? actions,
|
||||||
|
void Function(BuildContext, int)? onTap,
|
||||||
|
int? currentIndex,
|
||||||
|
Key? key,
|
||||||
|
}) =>
|
||||||
|
TopNavigationBar(
|
||||||
|
leading: leading ?? _value.leading,
|
||||||
|
actions: actions ?? _value.actions,
|
||||||
|
onTap: onTap ?? _value.onTap,
|
||||||
|
currentIndex: currentIndex ?? _value.currentIndex,
|
||||||
|
key: key ?? _value.key,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
mixin $TopNavigationBarCWMixin on Component {
|
||||||
|
$TopNavigationBarComponentCWProxy get copyWith =>
|
||||||
|
$TopNavigationBarCWProxyImpl(this as TopNavigationBar);
|
||||||
|
}
|
@ -19,3 +19,4 @@ export './card_theme_extension.dart';
|
|||||||
export './loader_theme_extension.dart';
|
export './loader_theme_extension.dart';
|
||||||
export './rich_text_builder_theme_extension.dart';
|
export './rich_text_builder_theme_extension.dart';
|
||||||
export './text_input_theme_extension.dart';
|
export './text_input_theme_extension.dart';
|
||||||
|
export './top_app_bar_extension.dart';
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
// 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 <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
|
||||||
|
|
||||||
|
abstract class TopAppBarThemeExtension
|
||||||
|
extends ThemeExtension<TopAppBarThemeExtension> {
|
||||||
|
const TopAppBarThemeExtension({
|
||||||
|
this.iconTheme,
|
||||||
|
this.backgroundColors,
|
||||||
|
this.expandedDividerStyle,
|
||||||
|
this.titleStyle,
|
||||||
|
});
|
||||||
|
|
||||||
|
final MultiColor? backgroundColors;
|
||||||
|
final IconThemeData? iconTheme;
|
||||||
|
final Color? expandedDividerStyle;
|
||||||
|
|
||||||
|
final TextStyle? titleStyle;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user