<!--
 * 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/>.
-->

# Component Copy With Gen

<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-Dart%20%7C%20Flutter-blue?style=flat-square" alt="SDK: Dart & Flutter" />
</p>

A Dart package for generating code from annotations to ease the use of a UIKit in Flutter applications. The generated code is based on the annotation classes present in the [ `wyatt_component_copy_with_extension` package](https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_component_copy_with_extension)

> This package does not contain Flutter specific code, but there is no sense in using it without Flutter.

## Features

* Supports the generation of abstract proxies in the `wyatt_ui_components` package.
* Supports direct use in Flutter applications.

## Usage

### In the 'wyatt_ui_components' package

* Add the appropriate annotation when adding a new component.
* Run the build runner command to generate the proxy.

### In Flutter applications (or UI Kit implementations)

* Add the following dependencies to your pubspec.yaml:

```yaml
dependencies:
  ...
  wyatt_component_copy_with_extension: ^0.0.1
dev_dependencies:
  ...
  wyatt_component_copy_with_gen: ^0.0.1
  build_runner: ^2.3.3
```

* In your UIKit, extend the desired component class and add the appropriate annotation.
* Run the code generation command via the build runner.

For further details and additional features on class annotation, see the 'wyatt_component_copy_with_extension' package's README.
