<p align="center">
  <img src="https://raw.githubusercontent.com/ayoayco/astro-reactive-library/main/.github/assets/logo/min-banner.png" alt="Astro Reactive Library Logo">
  <br />
  <strong>Astro Reactive Library</strong>
  <br />
  Let your data build your UI with native <a href="https://astro.build">Astro</a> components and architecture.
  <br />
  <br />
  <a href="https://github.com/ayoayco/astro-reactive-library/actions/workflows/build-and-test.yml">
    <img src="https://github.com/ayoayco/astro-reactive-library/actions/workflows/build-and-test.yml/badge.svg?branch=main" alt="Build & Test Result" />
  </a>
  <a href="https://github.com/ayoayco/astro-reactive-library">
    <img alt="Last Commit" src="https://img.shields.io/github/last-commit/ayoayco/astro-reactive-library?logo=github" />
  </a>
  <a href="https://gitpod.io/#https://github.com/ayoayco/astro-reactive-library.git">
  <img
    src="https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod"
    alt="Contribute with Gitpod"
  />
  </a>

  <br />
  <br />
<p>

| Package | Release notes | Description |
| --- | --- | --- |
| [form](https://github.com/ayoayco/astro-reactive-library/blob/main/packages/form/README.md) | [![npm](https://img.shields.io/npm/v/@astro-reactive/form)](./packages/form/RELEASE.md) | a dynamic form which can be modified programmatically |
| [validator](https://github.com/ayoayco/astro-reactive-library/blob/main/packages/validator/README.md) | [![npm](https://img.shields.io/npm/v/@astro-reactive/validator)](./packages/validator/RELEASE.md) | validators for editable fields |
| data-grid | 🛠 | a dynamic data grid of values |
| themes | 🛠 | easy-to-use, accessible, consistent cross-browser styles |
| viz | 🛠 | data visualization that emits and responds to events |

# Running locally

We mainly use the `demo` app to see changes we make on the packages. Do the following to start hacking:

1. Fork the project then clone to your computer

```
git clone git@github.com:<your-user-name>/astro-reactive-library.git
```

2. Go into the project directory

```
cd astro-reactive-library
```

3. Install the node dependencies

```
npm i
```

4. Run the demo application

```
npm start
```

5. Open the demo application on your browser. Browse to the address:

```
https://localhost:3000
```

6. To run the tests:

```
npm test
```

## Other apps

We also maintain the docs website and the project landing page in this repository. Run the following to start the dev servers:

```
npm run docs
```

```
npm run landing-page
```

# Contributors

This project is only possible because of the support and contribution of our community ❤️

<a href="https://github.com/ayoayco/astro-reactive-library/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=ayoayco/astro-reactive-library" />
</a>

👉 _[Join our contributors!](https://github.com/ayoayco/astro-reactive-library/blob/main/CONTRIBUTING.md)_

## Play around examples:

  <a href="https://stackblitz.com/edit/github-ze9ebb-tthuka?file=package.json,src%2Fpages%2Findex.astro">
    <img
      src="https://developer.stackblitz.com/img/open_in_stackblitz_small.svg"
      alt="Play around in Stackblitz"
    />
  </a>
  <a href="https://codesandbox.io/s/astro-reactive-library-u72dgj?file=/src/pages/index.astro">
    <img
      src="https://img.shields.io/badge/Open%20in-CodeSandbox-040404?logo=codesandbox"
      alt="CodeSandbox"
    />
  </a>
