# Introduction

There are a lot of awesome tree components. But always something is missing... This is another attempt to make something really cool.

This component provides many different options. But I do not see the point of adding a parameter for very specific desires. **There is no and will not be** a parameter to display the checkbox to the right of the text. U can use CSS for it. Let's have a fun!

### Features

* hackable & highly customizable
* rich options
* rich API
* simple & easy use
* keyboard navigation
* check boxes
* multi-selection
* async support

### Installation

Each library has such instruction. Still... You can skip in and open [npm ](https://npmjs.com/package/eyzy-tree)or [source code](https://github.com/eyzy/eyzy-tree) to start using.

#### Using **npm** or **yarn**

{% tabs %}
{% tab title="npm" %}

```bash
npm i eyzy-tree
```

{% endtab %}

{% tab title="yarn" %}

```bash
yarn add eyzy-tree
```

{% endtab %}
{% endtabs %}

This example shows how to integrate `eyzy-tree` component to your app.

```jsx
import React, { Component } from 'react'
import EyzyTree from 'eyzy-tree'
import 'eyzy-tree/style.css'
 
export default class Tree extends Component {
  constructor(props) {
    super(props);
 
    this.state = {
      data: [
        { text: 'Item 1' },
        { text: 'Item 2' },
        { text: 'Item 3' },
      ],
    };
  }
 
  render() {
    return (
      <div style={{ height: 400 }}>
        <EyzyTree
          data={this.state.data}
        />
      </div>
    );
  }
}
```

#### Import in Browser

If you just don't want to use webpack or other bundlers, you can also simply include the standalone UMD build in your page.

Add a `script` tag and **EyzyTree** will be registered as a global variable. Also styles has to be added as well.

More convenient way is use a CDN server.&#x20;

```markup
<script src="https://cdn.jsdelivr.net/npm/eyzy-tree/dist/eyzy-tree.js"></script>
<link href="https://cdn.jsdelivr.net/npm/eyzy-tree/dist/style.css" rel="stylesheet" type="text/css">
```

You can also simply include the standalone UMD build in your page.

```markup
<html>
  <head>
    <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
    <script src="https://unpkg.com/eyzy-tree/dist/eyzy-tree.js"></script>
    
    <link rel="stylesheet" href="https://unpkg.com/eyzy-tree/dist/style.css">
  </head>
  <body>
    <div id="example0"></div>

    <script>
      const props = {
        data: [
          'Item 1',
          'Item 2',
          'Item 3'
        ]
      }
      const element = React.createElement(EyzyTree, props)

      ReactDOM.render(
        element,
        document.getElementById('example0')
      )
    </script>
  </body>
</html>
```

Code above will import the latest version. You can specify version of the library:

```markup
<script src="https://cdn.jsdelivr.net/npm/eyzy-tree@0.0.18/dist/eyzy-tree.js"></script>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://eyzy.gitbook.io/tree/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
