![Logo Ignite UI Web Components)](https://user-images.githubusercontent.com/52001020/173785249-7ec6ad64-ebfe-402b-9a32-d40e50182b13.png)

<h1 align="center">
  Ignite UI for Web Components - from Infragistics
</h1>

[![Node.js CI](https://github.com/IgniteUI/igniteui-webcomponents/workflows/Node.js%20CI/badge.svg)](https://github.com/IgniteUI/igniteui-webcomponents/actions/workflows/node.js.yml)
[![Coverage Status](https://coveralls.io/repos/github/IgniteUI/igniteui-webcomponents/badge.svg)](https://coveralls.io/github/IgniteUI/igniteui-webcomponents)
[![npm version](https://badge.fury.io/js/igniteui-webcomponents.svg)](https://badge.fury.io/js/igniteui-webcomponents)
[![Discord](https://img.shields.io/discord/836634487483269200?logo=discord&logoColor=ffffff)](https://discord.gg/39MjrTRqds)

[Ignite UI for Web Components] is a comprehensive library that includes the fastest [Data Grid] on the market, a high-performing [Hierarchical Grid], Pivot Grid, 60+ data [Charts], [Dock Manager], and more. Plus maps, gauges and other reusable feature-rich components to help you create better web apps and modern-day UX experiences.

See the [Storybook Here](https://igniteui.github.io/igniteui-webcomponents)

## Browser Support

| ![chrome_48x48] | ![firefox_48x48] | ![edge_48x48] | ![opera_48x48] | ![safari_48x48] |
| --------------- | ---------------- | ------------- | -------------- | --------------- |
| Latest ✔️       | Latest ✔️        | Latest ✔️     | Latest ✔️      | Latest ✔️       |

## Overview

<details open>
<summary>Components</summary>

| Components              | Status |         Documentation          | Released Version |
| :---------------------- | :----: | :----------------------------: | :--------------: |
| Chat                    |   ✅   | [Docs][Chat Docs]              |     [6.3.0]      |
| Date Range Picker       |   ✅   | [Docs][Date Range Picker Docs] |     [6.1.0]      |
| Tooltip                 |   ✅   |      [Docs][Tooltip Docs]      |     [5.4.0]      |
| File Input              |   ✅   |    [Docs][File Input Docs]     |     [5.4.0]      |
| Tile Manager            |   ✅   |   [Docs][Tile Manager Docs]    |     [5.3.0]      |
| Carousel                |   ✅   |     [Docs][Carousel Docs]      |     [5.1.0]      |
| Date picker             |   ✅   |    [Docs][Date Picker Docs]    |     [4.10.0]     |
| Divider                 |   ✅   |      [Docs][Divider Docs]      |     [4.10.0]     |
| Banner                  |   ✅   |      [Docs][Banner Docs]       |     [4.10.0]     |
| Button group            |   ✅   |   [Docs][Button Group Docs]    |     [4.5.0]      |
| Textarea                |   ✅   |     [Docs][Textarea Docs]      |     [4.5.0]      |
| Combo                   |   ✅   |       [Docs][Combo Docs]       |     [4.1.0]      |
| Stepper                 |   ✅   |      [Docs][Stepper Docs]      |     [4.1.0]      |
| Select                  |   ✅   |      [Docs][Select Docs]       |     [3.4.0]      |
| Dialog                  |   ✅   |      [Docs][Dialog Docs]       |     [3.4.0]      |
| Date Time Input         |   ✅   |  [Docs][Date Time Input Docs]  |     [3.3.0]      |
| Tabs                    |   ✅   |       [Docs][Tabs Docs]        |     [3.3.0]      |
| Accordion               |   ✅   |     [Docs][Accordion Docs]     |     [3.3.0]      |
| Mask Input              |   ✅   |   [Docs][Masked Input Docs]    |     [3.2.0]      |
| Expansion Panel         |   ✅   |  [Docs][Expansion Panel Docs]  |     [3.2.0]      |
| Tree                    |   ✅   |       [Docs][Tree Docs]        |     [3.2.0]      |
| Drop Down               |   ✅   |     [Docs][Dropdown Docs]      |     [2.2.0]      |
| Linear Progress         |   ✅   |  [Docs][Linear Progress Docs]  |     [2.1.0]      |
| Circular Progress       |   ✅   | [Docs][Circular Progress Docs] |     [2.1.0]      |
| Chip                    |   ✅   |       [Docs][Chip Docs]        |     [2.1.0]      |
| Snackbar                |   ✅   |     [Docs][Snackbar Docs]      |     [2.1.0]      |
| Toast                   |   ✅   |       [Docs][Toast Docs]       |     [2.1.0]      |
| Rating                  |   ✅   |      [Docs][Rating Docs]       |     [2.1.0]      |
| Slider                  |   ✅   |      [Docs][Slider Docs]       |     [2.0.0]      |
| Range Slider            |   ✅   |      [Docs][Slider Docs]       |     [2.0.0]      |
| Avatar                  |   ✅   |      [Docs][Avatar Docs]       |     [1.0.0]      |
| Badge                   |   ✅   |       [Docs][Badge Docs]       |     [1.0.0]      |
| Button                  |   ✅   |      [Docs][Button Docs]       |     [1.0.0]      |
| Calendar                |   ✅   |     [Docs][Calendar Docs]      |     [1.0.0]      |
| Card                    |   ✅   |       [Docs][Card Docs]        |     [1.0.0]      |
| Checkbox                |   ✅   |     [Docs][Checkbox Docs]      |     [1.0.0]      |
| Form                    |   ✅   |       [Docs][Form Docs]        |     [1.0.0]      |
| Icon                    |   ✅   |       [Docs][Icon Docs]        |     [1.0.0]      |
| Icon Button             |   ✅   |    [Docs][Icon Button Docs]    |     [1.0.0]      |
| Input                   |   ✅   |       [Docs][Input Docs]       |     [1.0.0]      |
| List                    |   ✅   |       [Docs][List Docs]        |     [1.0.0]      |
| Navigation Bar (Navbar) |   ✅   |  [Docs][Navigation Bar Docs]   |     [1.0.0]      |
| Navigation Drawer       |   ✅   | [Docs][Navigation Drawer Docs] |     [1.0.0]      |
| Radio                   |   ✅   |       [Docs][Radio Docs]       |     [1.0.0]      |
| Radio Group             |   ✅   |       [Docs][Radio Docs]       |     [1.0.0]      |
| Ripple                  |   ✅   |      [Docs][Ripple Docs]       |     [1.0.0]      |
| Switch                  |   ✅   |      [Docs][Switch Docs]       |     [1.0.0]      |

</details>

## Components available in [Ignite UI for WebComponents Grids]

| Components        | Status |         Documentation          |
| :---------------- | :----: | :----------------------------: |
| Pivot Grid        |   ✅   |    [Docs][Pivot Grid Docs]     |
| Data Grid         |   ✅   |     [Docs][Data Grid Docs]     |
| Tree Grid         |   ✅   |     [Docs][Tree Grid Docs]     |
| Hierarchical Grid |   ✅   | [Docs][Hierarchical Grid Docs] |

### The Lightweight Web Components Data Grid and Data Table

The Ignite UI for Web Components Data Grid and Table are both lightweight and developed to handle high data volumes. The Web Components Grid offers powerful data visualization capabilities and superior performance on any device. With interactive features that users expect. Fast rendering. Unbeatable interactions. And the best possible user experience that you wouldn’t otherwise be able to achieve with so little code on your own.

### Dock Manager - EXCLUSIVE FEATURE

![Dock Manager Picture]

Provide a complete windowing experience, splitting complex layouts into smaller, easier-to-manage panes.

## Usage

In order to use the Ignite UI Web Components in your application you should install the `igniteui-webcomponents` package:

```sh
npm install igniteui-webcomponents
```

Next you will need to import the components that you want to use. You could import one or more components using the `defineComponents` function like this:

```ts
import {
  defineComponents,
  IgcAvatarComponent,
  IgcBadgeComponent,
} from 'igniteui-webcomponents';

defineComponents(IgcAvatarComponent, IgcBadgeComponent);
```

You could also import all of the components using the `defineAllComponents` function:

```ts
import { defineAllComponents } from 'igniteui-webcomponents';

defineAllComponents();
```

Please note that importing all of the components will increase the bundle size of your application. That's why we recommend you to import only the components that you are actually using.

After the components are imported you could use them in your html:

```html
<igc-avatar initials="AZ"></igc-avatar><igc-badge></igc-badge>
```

### Additional tooling

The package comes with its own [Custom Elements Manifest], [VSCode Custom Data Format] for VSCode and [Web Types] for JetBrains IDEs.
Refer to the documentation of your editor of choice to see if you can take advantage of this metadata for linting, intellisense and documentation.

| Package path                                                 | Description                        |
| ------------------------------------------------------------ | ---------------------------------- |
| igniteui-webcomponents/custom-elements.json                  | Custom Elements Manifest           |
| igniteui-webcomponents/web-types.json                        | Web Types for JetBrains based IDEs |
| igniteui-webcomponents/igniteui-webcomponents.css-data.json  | VSCode CSS custom data             |
| igniteui-webcomponents/igniteui-webcomponents.html-data.json | VSCode HTML custom data            |

## Contributing

Follow the [Contribution Guidelines] to setup a development
environment.

### Linting and Formatting

To scan the project for linting errors, run:

```sh
npm run lint
```

To automatically fix most linting and formatting errors, run:

```sh
npm run format
```

Linting and formatting are also set to run in a pre-commit hook in the project.

### Testing with Web Test Runner

To run the suite of Web Test Runner tests, run:

```sh
npm run test
```

To run the tests in watch mode, run:

```sh
npm run test:watch
```

### Demoing with Storybook

To start a local instance of Storybook for your component, run:

```sh
npm run storybook
```

To build a production version of Storybook, run:

```sh
npm run storybook:build
```

[Ignite UI for Web Components]: https://www.infragistics.com/products/ignite-ui-web-components
[Indigo.Design Design System]: https://www.infragistics.com/products/appbuilder/ui-toolkit
[Ignite UI for WebComponents Grids]: https://www.npmjs.com/package/igniteui-webcomponents-grids
[Dock Manager Picture]: https://github.com/IgniteUI/igniteui-webcomponents/assets/52001020/a9643f17-f1c2-4554-87aa-96c9daea13b0
[Custom Elements Manifest]: https://github.com/webcomponents/custom-elements-manifest
[VSCode Custom Data Format]: https://github.com/microsoft/vscode-custom-data
[Web Types]: https://plugins.jetbrains.com/docs/intellij/websymbols-web-types.html
[chrome_48x48]: https://user-images.githubusercontent.com/2188411/168109445-fbd7b217-35f9-44d1-8002-1eb97e39cdc6.png
[firefox_48x48]: https://user-images.githubusercontent.com/2188411/168109465-e46305ee-f69f-4fa5-8f4a-14876f7fd3ca.png
[edge_48x48]: https://user-images.githubusercontent.com/2188411/168109472-a730f8c0-3822-4ae6-9f54-785a66695245.png
[opera_48x48]: https://user-images.githubusercontent.com/2188411/168109520-b6865a6c-b69f-44a4-9948-748d8afd687c.png
[safari_48x48]: https://user-images.githubusercontent.com/2188411/168109527-6c58f2cf-7386-4b97-98b1-cfe0ab4e8626.png
[Contribution Guidelines]: https://github.com/IgniteUI/igniteui-webcomponents/blob/master/.github/CONTRIBUTING.md
[Data Grid]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/data-grid
[Hierarchical Grid]: https://www.infragistics.com/webcomponentssite/components/grids/hierarchical-grid/overview
[Charts]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/charts/chart-overview
[Dock Manager]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/dock-manager
[Pivot Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/pivot-grid/overview
[Data Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/grid/overview
[Tree Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree-grid/overview
[Hierarchical Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/hierarchical-grid/overview
[Switch Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/switch
[Ripple Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/ripple
[Radio Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/radio
[Navigation Drawer Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navigation-drawer
[Navigation Bar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navbar
[List Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/list
[Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input
[Icon Button Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/icon-button
[Icon Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/icon
[Form Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/form
[Checkbox Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/checkbox
[Card Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/card
[Calendar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/calendar
[Button Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button
[Badge Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/badge
[Avatar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/avatar
[Slider Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/slider
[Rating Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/rating
[Toast Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast
[Snackbar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/snackbar
[Chip Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/chip
[Circular Progress Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/circular-progress
[Linear Progress Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/linear-progress
[Dropdown Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast
[Tree Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree
[Expansion Panel Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/expansion-panel
[Masked Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input
[Accordion Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/accordion
[Tabs Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/tabs
[Date Time Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/date-time-input
[Dialog Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/dialog
[Select Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/select
[Stepper Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/stepper
[Combo Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/combo/overview
[Textarea Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/text-area
[Button Group Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button-group
[Banner Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/banner
[Divider Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/divider
[Date Picker Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/date-picker
[Carousel Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/carousel
[Tile Manager Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/tile-manager
[File Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/file-input
[Tooltip Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/tooltip
[Date Range Picker Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/date-range-picker
[Chat Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/interactivity/chat
[1.0.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0
[2.0.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.0.0
[2.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0
[2.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.2.0
[3.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.2.0
[3.3.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.3.0
[3.4.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.4.0
[4.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.1.0
[4.5.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.5.0
[4.10.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.10.0
[5.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/5.1.0
[5.3.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/5.3.0
[5.4.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/5.4.0
[6.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/6.1.0
[6.3.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/6.3.0
