diff --git a/packages/wyatt_ui_layout/README.md b/packages/wyatt_ui_layout/README.md
index e8d1656d..af77bf5f 100644
--- a/packages/wyatt_ui_layout/README.md
+++ b/packages/wyatt_ui_layout/README.md
@@ -7,7 +7,7 @@
* 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,
+ * 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.
@@ -16,12 +16,10 @@
* along with this program. If not, see .
-->
-# Flutter - Wyatt Ui Layout
+# Wyatt UI Layout
-
-
-
+
@@ -31,19 +29,19 @@ Wyatt UI Layout is a Flutter package that provides pre-built layouts to make the
Structural layouts are used to structure the GUI, and there are currently four layouts provided by this package:
-- #### TopAppBarLayout
+* #### TopAppBarLayout
This layout is used to create a GUI with a classic app bar and a body.
-- #### TopNavigationBarLayout
+* #### TopNavigationBarLayout
This layout is used to create a GUI with an app bar that includes navigation options and a body.
-- #### BottomNavigationBarLayout
+* #### BottomNavigationBarLayout
This layout is used to create a GUI with a bottom bar that includes navigation options and a body.
-- #### FrameLayout
+* #### FrameLayout
This layout is used to create a GUI that includes a classic app bar, a bottom navigation bar, and a body.
@@ -51,19 +49,6 @@ This layout is used to create a GUI that includes a classic app bar, a bottom na
Content layouts are used to display dynamic data and content within the GUI. Currently, there is only one content layout provided by this package:
-- #### GridLayout
+* #### GridLayout
This layout is used to display data and content in a grid layout.
-
-### Installation
-
-To use Wyatt UI Layout in your Flutter project, add the following dependency to your pubspec.yaml file:
-
-```yaml
-wyatt_ui_layout:
- git:
- url: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
- path: packages/wyatt_ui_layout
-```
-
-That's it! You're now ready to use Wyatt UI Layout in your project.
diff --git a/packages/wyatt_ui_layout/analysis_options.yaml b/packages/wyatt_ui_layout/analysis_options.yaml
index f8bb612a..e66159fc 100644
--- a/packages/wyatt_ui_layout/analysis_options.yaml
+++ b/packages/wyatt_ui_layout/analysis_options.yaml
@@ -1,19 +1,2 @@
-# Copyright (C) 2022 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 .
-
-
include: package:wyatt_analysis/analysis_options.flutter.yaml
diff --git a/packages/wyatt_ui_layout/lib/src/presentation/layouts/content_layouts/grid_layout.dart b/packages/wyatt_ui_layout/lib/src/presentation/layouts/content_layouts/grid_layout.dart
index c06014c1..04c9a7a0 100644
--- a/packages/wyatt_ui_layout/lib/src/presentation/layouts/content_layouts/grid_layout.dart
+++ b/packages/wyatt_ui_layout/lib/src/presentation/layouts/content_layouts/grid_layout.dart
@@ -18,7 +18,12 @@ import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
+/// {@template grid_layout}
+/// A concrete implementation of the [ContentLayout] abstract class for a layout
+/// which defines a layout structure with a grid layout.
+/// {@endtemplate}
class GridLayout extends ContentLayout {
+ /// {@macro grid_layout}
const GridLayout({
required this.children,
this.verticalGap = 30,
@@ -26,8 +31,13 @@ class GridLayout extends ContentLayout {
super.key,
});
+ /// The children of the layout.
final List children;
+
+ /// The vertical gap between the children.
final double verticalGap;
+
+ /// The horizontal gap between the children.
final double horizontalGap;
@override
diff --git a/packages/wyatt_ui_layout/lib/src/presentation/layouts/layout.dart b/packages/wyatt_ui_layout/lib/src/presentation/layouts/layout.dart
index 41f839a8..28068913 100644
--- a/packages/wyatt_ui_layout/lib/src/presentation/layouts/layout.dart
+++ b/packages/wyatt_ui_layout/lib/src/presentation/layouts/layout.dart
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 WYATT GROUP
+// Copyright (C) 2023 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
@@ -14,28 +14,35 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-/// This file contains the [Layout] abstract class, which provides a base
-/// for creating custom layout widgets in Flutter.
-import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
+/// {@template layout}
/// An abstract class that provides a base for creating custom layout widgets.
///
/// This class can be used as a base for creating custom layout widgets in
/// Flutter. It extends the [StatelessWidget] class and adds support for
/// providing a custom key. Custom layout widgets that extend this class should
/// override the [build] method to define the layout.
+/// {@endtemplate}
abstract class Layout extends StatelessWidget {
- /// Creates a new [Layout] instance.
- ///
- /// [key] is an optional parameter that can be used to provide a custom key
- /// for the widget.
+ /// {@macro layout}
const Layout({super.key});
}
+/// {@template structural_layout}
+/// An abstract class that provides a base for creating custom structural layout
+/// widgets.
+/// {@endtemplate}
abstract class StructuralLayout extends Layout {
+ /// {@macro structural_layout}
const StructuralLayout({super.key});
}
+/// {@template content_layout}
+/// An abstract class that provides a base for creating custom content layout
+/// widgets.
+/// {@endtemplate}
abstract class ContentLayout extends Layout {
+ /// {@macro content_layout}
const ContentLayout({super.key});
}
diff --git a/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/bottom_navigation_bar_layout.dart b/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/bottom_navigation_bar_layout.dart
index 4ef676de..d8755e92 100644
--- a/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/bottom_navigation_bar_layout.dart
+++ b/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/bottom_navigation_bar_layout.dart
@@ -14,34 +14,27 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-/// This file contains the concrete class [BottomNavigationBarLayout].
-///
-/// The [BottomNavigationBarLayout] class is a concrete implementation of the
-/// [Layout] abstract class, which defines a layout structure with a bottom
-/// navigation bar component.
-///
-/// [BottomNavigationBarLayout] includes an optional
-/// [BottomNavigationBarLayout.custom]
-/// function for customizing the bottom navigation bar component.
import 'package:flutter/material.dart';
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
-/// A concrete implementation of the [Layout] abstract class for a layout with
-/// a bottom navigation bar component.
+/// {@template bottom_navigation_bar_layout}
+/// A concrete implementation of the [Layout] abstract class for a layout which
+/// defines a layout structure with a bottom navigation bar component.
+/// {@endtemplate}
class BottomNavigationBarLayout extends StructuralLayout {
- /// Creates a [BottomNavigationBarLayout] instance.
- ///
- /// [body] represents the main content of the layout.
- /// [custom] is an optional function that can be used to customize
- /// the bottom navigation bar component.
+ /// {@macro bottom_navigation_bar_layout}
const BottomNavigationBarLayout({
required this.body,
this.custom,
super.key,
});
+ /// The main content of the layout.
final Widget? body;
+
+ /// An optional function that can be used to customize the bottom navigation
+ /// bar component.
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
custom;
diff --git a/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/frame_layout.dart b/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/frame_layout.dart
index 79e28793..144ef867 100644
--- a/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/frame_layout.dart
+++ b/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/frame_layout.dart
@@ -18,6 +18,7 @@ import 'package:flutter/material.dart';
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
+/// {@template frame_layout}
/// A layout that contains a top app bar, a body and a bottom navigation bar.
///
/// This layout consists of a [TopAppBarComponent] at the top of the screen,
@@ -25,15 +26,9 @@ import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
/// You can customize the app bar and the bottom navigation bar by passing
/// a [customAppBar] and a [customBottomNavBar] functions that take
/// the corresponding components and return the customized ones.
+/// {@endtemplate}
class FrameLayout extends StructuralLayout {
- /// Creates a [FrameLayout] instance.
- ///
- /// [body] represents the main content of the layout.
- /// [customAppBar] is an optional function that can be used to customize
- /// the top app bar component.
- /// [customBottomNavBar] is an optional function that can be used to customize
- /// the bottom navigation bar component.
- /// [height] represents the height of the top app bar.
+ /// {@macro frame_layout}
const FrameLayout({
required this.body,
this.customAppBar,
@@ -42,10 +37,17 @@ class FrameLayout extends StructuralLayout {
super.key,
});
+ /// An optional function that can be used to customize the top app bar
final TopAppBarComponent? Function(TopAppBarComponent?)? customAppBar;
+
+ /// An optional function that can be used to customize the bottom navigation
final BottomNavigationBarComponent? Function(BottomNavigationBarComponent?)?
customBottomNavBar;
+
+ /// The main content of the layout.
final Widget body;
+
+ /// The height of the top app bar.
final double height;
@override
diff --git a/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/top_app_bar_layout.dart b/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/top_app_bar_layout.dart
index e69054bb..70f61b1e 100644
--- a/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/top_app_bar_layout.dart
+++ b/packages/wyatt_ui_layout/lib/src/presentation/layouts/structural_layouts/top_app_bar_layout.dart
@@ -14,16 +14,11 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-/// This file contains the abstract class [TopBarLayout] and two concrete
-/// classes [TopAppBarLayout] and [TopNavigationBarLayout].
-/// The [TopBarLayout] abstract class defines a layout structure with a top bar.
-/// The [TopAppBarLayout] and [TopNavigationBarLayout] classes are concrete
-/// implementations of the [TopBarLayout] class.
-
import 'package:flutter/material.dart';
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
+/// {@template top_bar_layout}
/// An abstract class for creating layouts with a top bar component.
///
/// This class provides a base for creating layouts that include a top bar
@@ -34,14 +29,10 @@ import 'package:wyatt_ui_layout/src/presentation/layouts/layout.dart';
/// given [BuildContext].
///
/// [T] represents the type of the top bar component.
+/// {@endtemplate}
abstract class TopBarLayout
extends StructuralLayout {
- /// Creates a [TopBarLayout] instance.
- ///
- /// [body] represents the main content of the layout.
- /// [custom] is an optional function that can be used to customize
- /// the top bar component.
- /// [height] represents the height of the top bar.
+ /// {@macro top_bar_layout}
const TopBarLayout({
required this.body,
this.custom,
@@ -49,9 +40,15 @@ abstract class TopBarLayout
super.key,
});
+ /// The main content of the layout.
final Widget body;
+ /// An optional function that can be used to customize the top bar component.
+ /// The function takes the top bar component as an argument and returns
+ /// a customized top bar component.
final T? Function(T?)? custom;
+
+ /// The height of the top bar.
final double height;
/// Returns the top bar component for the given [BuildContext].
diff --git a/packages/wyatt_ui_layout/lib/wyatt_ui_layout.dart b/packages/wyatt_ui_layout/lib/wyatt_ui_layout.dart
index 5ab915d4..ac5430dc 100644
--- a/packages/wyatt_ui_layout/lib/wyatt_ui_layout.dart
+++ b/packages/wyatt_ui_layout/lib/wyatt_ui_layout.dart
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-/// Wyatt Ui Layout
+/// Wyatt UI Layout
library wyatt_ui_layout;
export 'src/src.dart';
diff --git a/packages/wyatt_ui_layout/pubspec.yaml b/packages/wyatt_ui_layout/pubspec.yaml
index 7c8703ed..aaaf1130 100644
--- a/packages/wyatt_ui_layout/pubspec.yaml
+++ b/packages/wyatt_ui_layout/pubspec.yaml
@@ -3,27 +3,22 @@ description: Main layouts to help you build your application views.
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_layout
version: 0.0.1
-publish_to: "none"
+publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
environment:
sdk: ">=2.17.0 <3.0.0"
dependencies:
- flutter:
- sdk: flutter
+ flutter: { sdk: flutter }
gap: ^2.0.1
wyatt_ui_components:
- git:
- url: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
- path: packages/wyatt_ui_components
+ hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
+ version: ^0.0.1
dev_dependencies:
- flutter_test:
- sdk: flutter
+ flutter_test: { sdk: flutter }
wyatt_analysis:
- git:
- url: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
- ref: wyatt_analysis-v2.4.1
- path: packages/wyatt_analysis
+ hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
+ version: ^2.4.1