<!-- * 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/>. --> # Wyatt UI Kit <p align="left"> <a href="https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis"><img src="https://img.shields.io/badge/Style-Wyatt%20Analysis-blue.svg?style=flat-square" alt="Style: Wyatt Analysis" /></a> <img src="https://img.shields.io/badge/SDK-Flutter-blue?style=flat-square" alt="SDK: Flutter" /> </p> UIKit and Design System used in Wyatt Studio. This is a implementation of the components defined in [Wyatt UI Components](https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_ui_components) package. ## Usage The UIKit provides `WyattComponentThemeData` class that contains all the components used in Wyatt Studio. You can use it in your app by calling `WyattComponentTheme` widget and give your app as child. For example : This component theme is to be used with Wyatt UI Components. It provides a default theme for all the components defined in Wyatt UI Components package. ```dart void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) => ComponentTheme( // It is here that you can override the default theme ! componentThemeWidget: WyattComponentThemeData(), child: MaterialApp( title: 'Wyatt Ui Layout Example', theme: ThemeData( primarySwatch: Colors.blue, ), home: const .., ), ); } ``` ## Development > Common to this, and Wyatt UI Components packages. Add a new component : **Wyatt UI Components side** 1. Create a new file in `lib/src/domain/entities` folder. 2. Add your component class. 3. Add your component class to `ComponentThemeData` abstract class. 4. Run `flutter pub run build_runner build` to generate your component proxy properties. **Wyatt UI Kit side** 1. Create a new file in `lib/src/components` folder. 2. Add your component class, styles, (and logic if needed) 3. Run `flutter pub run build_runner build` to generate your component copy with method. 4. Add a theme extension to your component class in `lib/src/domain/` 5. Add your component class `wyattComponentThemeData` static property in `lib/src/features/wyatt_component_theme_data.dart`