npm package: @oktus/pixel
Description: User engagement and Analytics Suite for the Oktus Platform
Author: Oktus GmbH
Latest version: 0.3.8

<h1 align="center" style="border-bottom: none">
<br>
<a href="https://oktus.io" rel="noopener noreferrer" target="_blank">
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://app.oktus.io/logos/pixel_white.svg">
  <img height="75" alt="Oktus Pixel Logo" src="https://app.oktus.io/logos/pixel.svg">
</picture>
</a>
<br>
<br>
<a href="https://oktus.io"><img src="https://img.shields.io/static/v1?label=Oktus&message=Website&color=309ED6&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTI5cHgiIGhlaWdodD0iNTI5cHgiIHZpZXdCb3g9IjAgMCA1MjkgNTI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPm9rdHVzPC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJBcnRib2FyZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzNi4wMDAwMDAsIC0yMzUuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgPGcgaWQ9Im9rdHVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzYuMDAwMDAwLCAyMzUuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjYxMjc3OCwxMzMuMDk5MDU4IEwyNjUuOTg1MTQ5LDEzMy4wOTkwNTggQzE5My44NTMxMjMsMTMzLjA5OTA1OCAxMzQuMDUzOTM5LDE5MC42MTI0NDYgMTMzLjExNjAzOSwyNjIuNzQ0MDQ1IEMxMzIuNzk2MjI0LDI4My44MTc0ODQgMTM3LjU3ODU4NiwzMDQuNjU1NTg1IDE0Ny4wNTUxNjgsMzIzLjQ4MDc2OSBDMTQ3Ljg3Mzc1MSwzMjUuMTUxNDEgMTQ3Ljc3Mjk1NCwzMjcuMTI2MDc4IDE0Ni43ODg1MTIsMzI4LjcwNDY4NCBDMTQ1LjgwNDA3LDMzMC4yODMyOSAxNDQuMDc1MTYsMzMxLjI0MjY1MSAxNDIuMjE0NzQzLDMzMS4yNDI2NTEgTDEyLjY5ODM1NTYsMzMxLjI0MjY1MSBDMTAuMjI3NTM2NSwzMzEuMjQyNjUxIDguMDcyNzE0NjYsMzI5LjU2Mzc4OCA3LjQ2OTgzNDg1LDMyNy4xNjc2NjMgQzMuMjg4NDIzMDEsMzA5LjkxOTUyNSAwLjg1MDU3NzM3OSwyOTIuMjk0OTA4IDAuMTkzMDI3NjQ3LDI3NC41NTkzNTMgQy01LjU1Mjk1NDkzLDEyMC45MTcyMTYgMTE3LjcyMTU0OSwtMy44NDQyNTMyNCAyNzEuNDE4NDk4LDAuMDkwNTg5NjA4MSBDMzYwLjM3MDY5LDIuMzc1MTM4MjUgNDQyLjIwODAyNCw0OS4yNDkwMTcxIDQ4OS4xODM2OTEsMTI0LjgxOTcxOCBDNDkwLjIzOTYyMywxMjYuNDgyODA1IDQ5MC4zMDQxNywxMjguNTg5NDcgNDg5LjM1MjAzNSwxMzAuMzE0MDgyIEM0ODguMzk5ODk5LDEzMi4wMzg2OTQgNDg2LjU4Mjc2LDEzMy4xMDY1MTggNDg0LjYxMjc3OCwxMzMuMDk5MDU4IFogTTUxNi4zMDczMTYsMTk3Ljc4MTQwNiBMMzg2Ljc5MDkyOSwxOTcuNzgxNDA2IEMzODQuOTMwNTEyLDE5Ny43ODE0MDIgMzgzLjIwMTYwMiwxOTguNzQwNzY4IDM4Mi4yMTcxNiwyMDAuMzE5MzczIEMzODEuMjMyNzE4LDIwMS44OTc5NzkgMzgxLjEzMTkyMSwyMDMuODcyNjQ4IDM4MS45NTA1MDQsMjA1LjU0MzI4OCBDMzkxLjQyNTQ2OSwyMjQuMzY5MDU2IDM5Ni4yMDc3MzgsMjQ1LjIwNjc1NCAzOTUuODg5NjMzLDI2Ni4yODAwMTMgQzM5NC45NTE3MzMsMzM4LjQwMDgzMSAzMzUuMTUyNTQ5LDM5NS45MTQyMTkgMjYzLjAyMDUyMywzOTUuOTE0MjE5IEw0NC4zOTI4OTM2LDM5NS45MTQyMTkgQzQyLjQzODAxMTksMzk1LjkzMjcwNSA0MC42NDYzNzg4LDM5Ny4wMDgyMDYgMzkuNzEwODY1LDM5OC43MjQ3OTYgQzM4Ljc3NTM1MTIsNDAwLjQ0MTM4NyAzOC44NDI2MjI1LDQwMi41Mjk5NDggMzkuODg2NjYzNCw0MDQuMTgyNzc5IEM4Ni44NTk1Mjk0LDQ3OS43NTYzODQgMTY4LjY5ODU3Nyw1MjYuNjMxMjQ0IDI1Ny42NTE4NTcsNTI4LjkxMTkwNyBDNDA5Ljc0MjUxNyw1MzIuODE0NDA5IDUzNC41MDQ3MjUsNDA2LjUzMjkwNCA1MjguODEyNjQ0LDI1NC40MjE1ODIgQzUyOC4xNTUwOTQsMjM2LjY4NjAyOCA1MjUuNzE3MjQ5LDIxOS4wNjE0MTEgNTIxLjUzNTgzNywyMDEuODEzMjczIEM1MjAuOTI0NjI1LDE5OS40MjU3MDkgNTE4Ljc3MTg4NSwxOTcuNzU5ODQxIDUxNi4zMDczMTYsMTk3Ljc1OTg0MSBMNTE2LjMwNzMxNiwxOTcuNzgxNDA2IFogTTI2NC40OTc0NDYsMjE2LjI2OTc3NiBDMjQ0Ljk4NDE4LDIxNi4yNjk3NzYgMjI3LjM5MjUxOSwyMjguMDI0NzkyIDIxOS45MjYxMjMsMjQ2LjA1MzAwOSBDMjEyLjQ1OTcyNywyNjQuMDgxMjI3IDIxNi41ODkxMywyODQuODMxOTI0IDIzMC4zODg2MzQsMjk4LjYyODI2MyBDMjQ0LjE4ODEzOCwzMTIuNDI0NjAyIDI2NC45Mzk4ODEsMzE2LjU0OTM0MyAyODIuOTY2NTM2LDMwOS4wNzg5NjIgQzMwMC45OTMxOTEsMzAxLjYwODU4MiAzMTIuNzQ0MzQzLDI4NC4wMTQzOTggMzEyLjczOTk4NCwyNjQuNTAxMjQ4IEMzMTIuNzM5OTg0LDI1MS43MDc1OTkgMzA3LjY1Njk1NywyMzkuNDM4MTAxIDI5OC42MDk0MTcsMjMwLjM5MjYzNiBDMjg5LjU2MTg3NiwyMjEuMzQ3MTcxIDI3Ny4yOTExNzEsMjE2LjI2NjkxOCAyNjQuNDk3NDQ2LDIxNi4yNjk3NzYgTDI2NC40OTc0NDYsMjE2LjI2OTc3NiBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+&logoColor=%23fff"></a>
<a href="https://oktus.io/docs"><img src="https://img.shields.io/static/v1?label=Oktus&message=Documentation&color=309ED6&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTI5cHgiIGhlaWdodD0iNTI5cHgiIHZpZXdCb3g9IjAgMCA1MjkgNTI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPm9rdHVzPC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJBcnRib2FyZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzNi4wMDAwMDAsIC0yMzUuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgPGcgaWQ9Im9rdHVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzYuMDAwMDAwLCAyMzUuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjYxMjc3OCwxMzMuMDk5MDU4IEwyNjUuOTg1MTQ5LDEzMy4wOTkwNTggQzE5My44NTMxMjMsMTMzLjA5OTA1OCAxMzQuMDUzOTM5LDE5MC42MTI0NDYgMTMzLjExNjAzOSwyNjIuNzQ0MDQ1IEMxMzIuNzk2MjI0LDI4My44MTc0ODQgMTM3LjU3ODU4NiwzMDQuNjU1NTg1IDE0Ny4wNTUxNjgsMzIzLjQ4MDc2OSBDMTQ3Ljg3Mzc1MSwzMjUuMTUxNDEgMTQ3Ljc3Mjk1NCwzMjcuMTI2MDc4IDE0Ni43ODg1MTIsMzI4LjcwNDY4NCBDMTQ1LjgwNDA3LDMzMC4yODMyOSAxNDQuMDc1MTYsMzMxLjI0MjY1MSAxNDIuMjE0NzQzLDMzMS4yNDI2NTEgTDEyLjY5ODM1NTYsMzMxLjI0MjY1MSBDMTAuMjI3NTM2NSwzMzEuMjQyNjUxIDguMDcyNzE0NjYsMzI5LjU2Mzc4OCA3LjQ2OTgzNDg1LDMyNy4xNjc2NjMgQzMuMjg4NDIzMDEsMzA5LjkxOTUyNSAwLjg1MDU3NzM3OSwyOTIuMjk0OTA4IDAuMTkzMDI3NjQ3LDI3NC41NTkzNTMgQy01LjU1Mjk1NDkzLDEyMC45MTcyMTYgMTE3LjcyMTU0OSwtMy44NDQyNTMyNCAyNzEuNDE4NDk4LDAuMDkwNTg5NjA4MSBDMzYwLjM3MDY5LDIuMzc1MTM4MjUgNDQyLjIwODAyNCw0OS4yNDkwMTcxIDQ4OS4xODM2OTEsMTI0LjgxOTcxOCBDNDkwLjIzOTYyMywxMjYuNDgyODA1IDQ5MC4zMDQxNywxMjguNTg5NDcgNDg5LjM1MjAzNSwxMzAuMzE0MDgyIEM0ODguMzk5ODk5LDEzMi4wMzg2OTQgNDg2LjU4Mjc2LDEzMy4xMDY1MTggNDg0LjYxMjc3OCwxMzMuMDk5MDU4IFogTTUxNi4zMDczMTYsMTk3Ljc4MTQwNiBMMzg2Ljc5MDkyOSwxOTcuNzgxNDA2IEMzODQuOTMwNTEyLDE5Ny43ODE0MDIgMzgzLjIwMTYwMiwxOTguNzQwNzY4IDM4Mi4yMTcxNiwyMDAuMzE5MzczIEMzODEuMjMyNzE4LDIwMS44OTc5NzkgMzgxLjEzMTkyMSwyMDMuODcyNjQ4IDM4MS45NTA1MDQsMjA1LjU0MzI4OCBDMzkxLjQyNTQ2OSwyMjQuMzY5MDU2IDM5Ni4yMDc3MzgsMjQ1LjIwNjc1NCAzOTUuODg5NjMzLDI2Ni4yODAwMTMgQzM5NC45NTE3MzMsMzM4LjQwMDgzMSAzMzUuMTUyNTQ5LDM5NS45MTQyMTkgMjYzLjAyMDUyMywzOTUuOTE0MjE5IEw0NC4zOTI4OTM2LDM5NS45MTQyMTkgQzQyLjQzODAxMTksMzk1LjkzMjcwNSA0MC42NDYzNzg4LDM5Ny4wMDgyMDYgMzkuNzEwODY1LDM5OC43MjQ3OTYgQzM4Ljc3NTM1MTIsNDAwLjQ0MTM4NyAzOC44NDI2MjI1LDQwMi41Mjk5NDggMzkuODg2NjYzNCw0MDQuMTgyNzc5IEM4Ni44NTk1Mjk0LDQ3OS43NTYzODQgMTY4LjY5ODU3Nyw1MjYuNjMxMjQ0IDI1Ny42NTE4NTcsNTI4LjkxMTkwNyBDNDA5Ljc0MjUxNyw1MzIuODE0NDA5IDUzNC41MDQ3MjUsNDA2LjUzMjkwNCA1MjguODEyNjQ0LDI1NC40MjE1ODIgQzUyOC4xNTUwOTQsMjM2LjY4NjAyOCA1MjUuNzE3MjQ5LDIxOS4wNjE0MTEgNTIxLjUzNTgzNywyMDEuODEzMjczIEM1MjAuOTI0NjI1LDE5OS40MjU3MDkgNTE4Ljc3MTg4NSwxOTcuNzU5ODQxIDUxNi4zMDczMTYsMTk3Ljc1OTg0MSBMNTE2LjMwNzMxNiwxOTcuNzgxNDA2IFogTTI2NC40OTc0NDYsMjE2LjI2OTc3NiBDMjQ0Ljk4NDE4LDIxNi4yNjk3NzYgMjI3LjM5MjUxOSwyMjguMDI0NzkyIDIxOS45MjYxMjMsMjQ2LjA1MzAwOSBDMjEyLjQ1OTcyNywyNjQuMDgxMjI3IDIxNi41ODkxMywyODQuODMxOTI0IDIzMC4zODg2MzQsMjk4LjYyODI2MyBDMjQ0LjE4ODEzOCwzMTIuNDI0NjAyIDI2NC45Mzk4ODEsMzE2LjU0OTM0MyAyODIuOTY2NTM2LDMwOS4wNzg5NjIgQzMwMC45OTMxOTEsMzAxLjYwODU4MiAzMTIuNzQ0MzQzLDI4NC4wMTQzOTggMzEyLjczOTk4NCwyNjQuNTAxMjQ4IEMzMTIuNzM5OTg0LDI1MS43MDc1OTkgMzA3LjY1Njk1NywyMzkuNDM4MTAxIDI5OC42MDk0MTcsMjMwLjM5MjYzNiBDMjg5LjU2MTg3NiwyMjEuMzQ3MTcxIDI3Ny4yOTExNzEsMjE2LjI2NjkxOCAyNjQuNDk3NDQ2LDIxNi4yNjk3NzYgTDI2NC40OTc0NDYsMjE2LjI2OTc3NiBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+&logoColor=%23fff"></a>
</h1>

<p align="center">
  Pixel is the ultimate tool for website owners on the Oktus platform. With Pixel, you can effortlessly integrate webchat and powerful website analytics directly into your site. Stay connected with your visitors in real-time and gain valuable insights into their behavior.
</p>

<br>

<br>

## Install

#### Package

```bash
# npm
$ npm i @oktus/pixel

# yarn
$ yarn add @oktus/pixel

# pnpm
$ pnpm add @oktus/pixel

# bun
$ bun add @oktus/pixel
```

#### CDN

```html
<script src="https://docs.oktus.io/scripts/pixel.min.js" data-pixel="YOUR_PIXEL_ID"></script>
```

## Usage

```javascript
import { Pixel } from '@oktus/pixel'

const pixel = await Pixel.setup({
  pixelId: 'YOUR_PIXEL_ID'
})

// If you have included the package with a <script> tag, you can access your pixel instance via the global scope
// e.g. window.pixel.version
```

## Webchat

The webchat resource allows you to interact with your webchat programmatically.

### Examples

```javascript
// Toggle the webchat (open if closed, close if open)
pixel.webchat.toggle()

// Open the webchat
pixel.webchat.open()

// Close the webchat
pixel.webchat.close()

// Send a message
pixel.webchat.sendMessage({
  message: 'Hello, this is an outgoing message!'
})

// Update configuration dynamically
pixel.webchat.update({
  theme: 'dark',
  colors: {
    primary: '#FF5733',
    secondary: '#4287f5'
  },
  positioning: {
    position: 'bottom-right',
    offset: {
      x: 20,
      y: 20
    },
    toggle: {
      width: 60,
      height: 60,
      borderRadius: 30
    }
  }
})
```

## Triggers

The triggers resource allows you to define actions that execute based on specific events or conditions on your website.

### Available Triggers

- `timeout`: Execute an action after a specific time delay
- `onLoad`: Execute an action when the page loads
- `onClick`: Execute an action when a user clicks anywhere on the page
- `queryParam`: Execute an action when a specific query parameter is present in the URL

### Examples

```javascript
// Create a trigger that shows a popup after 5 seconds
pixel.triggers.trigger({
  type: 'timeout',
  delay: 5000,
  action: {
    type: 'openPopup',
    url: 'https://forms.oktus.io/contact',
    width: 500,
    height: 600
  }
})

// Create a trigger that redirects when a specific query parameter is present
pixel.triggers.trigger({
  type: 'queryParam',
  queryKey: 'campaign',
  queryValue: 'summer2025',
  action: {
    type: 'openUrl',
    url: 'https://example.com/special-offer'
  }
})

// Close all currently open popups
pixel.triggers.closeAllPopups()
```

## Interactions

The Interactions resource enables tracking user behavior and executing actions based on predefined events.

### Examples

```javascript
// Track a custom event
pixel.interactions.handleEvent(
  {
    type: 'userAction',
    pushUpdates: true
  },
  {
    actionType: 'buttonClick',
    elementId: 'signup-button',
    timestamp: Date.now()
  }
)

// Execute an action linked to an event
pixel.interactions.handleEvent(
  {
    type: 'userAction',
    executeRef: 'special-offer-popup'
  },
  {
    actionType: 'offerViewed',
    timestamp: Date.now()
  }
)
```

## Analytics

The analytics resource provides first-class session analytics tracking for page views and custom events.

### Examples

```javascript
// Track a page view
await pixel.analytics?.trackPageView()

// Track a page view with additional metadata
await pixel.analytics?.trackPageView({
  metadata: {
    app: 'hub',
    route: {
      name: 'app-hubAppId-page-pageId'
    }
  }
})

// Track a generic analytics event
await pixel.analytics?.track({
  name: 'checkout_started',
  type: 'business_event',
  metadata: {
    cartId: 'cart_123'
  }
})

// Track a click interaction
await pixel.analytics?.trackClick({
  action: 'sidebar.navigate',
  label: 'Spa',
  location: 'sidebar',
  target: '/app/abc/page/spa',
  targetType: 'internal'
})
```

## Contributing

[Instructions](../../CONTRIBUTING.md)

## Contact

If you'd like to get in touch or have any further questions, feel free to either join our [Discord](https://discord.gg/3NBnuVagNy) or start a new [discussion](https://github.com/oktus-io/oktus/discussions)!

[website-url]: https://oktus.io
[docs-url]: https://oktus.io/docs
[discord-url]: https://discord.gg/3NBnuVagNy
[website-badge]: https://img.shields.io/static/v1?label=Oktus&message=Website&color=309ED6&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTI5cHgiIGhlaWdodD0iNTI5cHgiIHZpZXdCb3g9IjAgMCA1MjkgNTI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPm9rdHVzPC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJBcnRib2FyZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzNi4wMDAwMDAsIC0yMzUuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgPGcgaWQ9Im9rdHVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzYuMDAwMDAwLCAyMzUuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjYxMjc3OCwxMzMuMDk5MDU4IEwyNjUuOTg1MTQ5LDEzMy4wOTkwNTggQzE5My44NTMxMjMsMTMzLjA5OTA1OCAxMzQuMDUzOTM5LDE5MC42MTI0NDYgMTMzLjExNjAzOSwyNjIuNzQ0MDQ1IEMxMzIuNzk2MjI0LDI4My44MTc0ODQgMTM3LjU3ODU4NiwzMDQuNjU1NTg1IDE0Ny4wNTUxNjgsMzIzLjQ4MDc2OSBDMTQ3Ljg3Mzc1MSwzMjUuMTUxNDEgMTQ3Ljc3Mjk1NCwzMjcuMTI2MDc4IDE0Ni43ODg1MTIsMzI4LjcwNDY4NCBDMTQ1LjgwNDA3LDMzMC4yODMyOSAxNDQuMDc1MTYsMzMxLjI0MjY1MSAxNDIuMjE0NzQzLDMzMS4yNDI2NTEgTDEyLjY5ODM1NTYsMzMxLjI0MjY1MSBDMTAuMjI3NTM2NSwzMzEuMjQyNjUxIDguMDcyNzE0NjYsMzI5LjU2Mzc4OCA3LjQ2OTgzNDg1LDMyNy4xNjc2NjMgQzMuMjg4NDIzMDEsMzA5LjkxOTUyNSAwLjg1MDU3NzM3OSwyOTIuMjk0OTA4IDAuMTkzMDI3NjQ3LDI3NC41NTkzNTMgQy01LjU1Mjk1NDkzLDEyMC45MTcyMTYgMTE3LjcyMTU0OSwtMy44NDQyNTMyNCAyNzEuNDE4NDk4LDAuMDkwNTg5NjA4MSBDMzYwLjM3MDY5LDIuMzc1MTM4MjUgNDQyLjIwODAyNCw0OS4yNDkwMTcxIDQ4OS4xODM2OTEsMTI0LjgxOTcxOCBDNDkwLjIzOTYyMywxMjYuNDgyODA1IDQ5MC4zMDQxNywxMjguNTg5NDcgNDg5LjM1MjAzNSwxMzAuMzE0MDgyIEM0ODguMzk5ODk5LDEzMi4wMzg2OTQgNDg2LjU4Mjc2LDEzMy4xMDY1MTggNDg0LjYxMjc3OCwxMzMuMDk5MDU4IFogTTUxNi4zMDczMTYsMTk3Ljc4MTQwNiBMMzg2Ljc5MDkyOSwxOTcuNzgxNDA2IEMzODQuOTMwNTEyLDE5Ny43ODE0MDIgMzgzLjIwMTYwMiwxOTguNzQwNzY4IDM4Mi4yMTcxNiwyMDAuMzE5MzczIEMzODEuMjMyNzE4LDIwMS44OTc5NzkgMzgxLjEzMTkyMSwyMDMuODcyNjQ4IDM4MS45NTA1MDQsMjA1LjU0MzI4OCBDMzkxLjQyNTQ2OSwyMjQuMzY5MDU2IDM5Ni4yMDc3MzgsMjQ1LjIwNjc1NCAzOTUuODg5NjMzLDI2Ni4yODAwMTMgQzM5NC45NTE3MzMsMzM4LjQwMDgzMSAzMzUuMTUyNTQ5LDM5NS45MTQyMTkgMjYzLjAyMDUyMywzOTUuOTE0MjE5IEw0NC4zOTI4OTM2LDM5NS45MTQyMTkgQzQyLjQzODAxMTksMzk1LjkzMjcwNSA0MC42NDYzNzg4LDM5Ny4wMDgyMDYgMzkuNzEwODY1LDM5OC43MjQ3OTYgQzM4Ljc3NTM1MTIsNDAwLjQ0MTM4NyAzOC44NDI2MjI1LDQwMi41Mjk5NDggMzkuODg2NjYzNCw0MDQuMTgyNzc5IEM4Ni44NTk1Mjk0LDQ3OS43NTYzODQgMTY4LjY5ODU3Nyw1MjYuNjMxMjQ0IDI1Ny42NTE4NTcsNTI4LjkxMTkwNyBDNDA5Ljc0MjUxNyw1MzIuODE0NDA5IDUzNC41MDQ3MjUsNDA2LjUzMjkwNCA1MjguODEyNjQ0LDI1NC40MjE1ODIgQzUyOC4xNTUwOTQsMjM2LjY4NjAyOCA1MjUuNzE3MjQ5LDIxOS4wNjE0MTEgNTIxLjUzNTgzNywyMDEuODEzMjczIEM1MjAuOTI0NjI1LDE5OS40MjU3MDkgNTE4Ljc3MTg4NSwxOTcuNzU5ODQxIDUxNi4zMDczMTYsMTk3Ljc1OTg0MSBMNTE2LjMwNzMxNiwxOTcuNzgxNDA2IFogTTI2NC40OTc0NDYsMjE2LjI2OTc3NiBDMjQ0Ljk4NDE4LDIxNi4yNjk3NzYgMjI3LjM5MjUxOSwyMjguMDI0NzkyIDIxOS45MjYxMjMsMjQ2LjA1MzAwOSBDMjEyLjQ1OTcyNywyNjQuMDgxMjI3IDIxNi41ODkxMywyODQuODMxOTI0IDIzMC4zODg2MzQsMjk4LjYyODI2MyBDMjQ0LjE4ODEzOCwzMTIuNDI0NjAyIDI2NC45Mzk4ODEsMzE2LjU0OTM0MyAyODIuOTY2NTM2LDMwOS4wNzg5NjIgQzMwMC45OTMxOTEsMzAxLjYwODU4MiAzMTIuNzQ0MzQzLDI4NC4wMTQzOTggMzEyLjczOTk4NCwyNjQuNTAxMjQ4IEMzMTIuNzM5OTg0LDI1MS43MDc1OTkgMzA3LjY1Njk1NywyMzkuNDM4MTAxIDI5OC42MDk0MTcsMjMwLjM5MjYzNiBDMjg5LjU2MTg3NiwyMjEuMzQ3MTcxIDI3Ny4yOTExNzEsMjE2LjI2NjkxOCAyNjQuNDk3NDQ2LDIxNi4yNjk3NzYgTDI2NC40OTc0NDYsMjE2LjI2OTc3NiBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+&logoColor=%23fff
[docs-badge]: https://img.shields.io/static/v1?label=Oktus&message=Documentation&color=309ED6&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTI5cHgiIGhlaWdodD0iNTI5cHgiIHZpZXdCb3g9IjAgMCA1MjkgNTI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPm9rdHVzPC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJBcnRib2FyZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzNi4wMDAwMDAsIC0yMzUuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgPGcgaWQ9Im9rdHVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzYuMDAwMDAwLCAyMzUuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjYxMjc3OCwxMzMuMDk5MDU4IEwyNjUuOTg1MTQ5LDEzMy4wOTkwNTggQzE5My44NTMxMjMsMTMzLjA5OTA1OCAxMzQuMDUzOTM5LDE5MC42MTI0NDYgMTMzLjExNjAzOSwyNjIuNzQ0MDQ1IEMxMzIuNzk2MjI0LDI4My44MTc0ODQgMTM3LjU3ODU4NiwzMDQuNjU1NTg1IDE0Ny4wNTUxNjgsMzIzLjQ4MDc2OSBDMTQ3Ljg3Mzc1MSwzMjUuMTUxNDEgMTQ3Ljc3Mjk1NCwzMjcuMTI2MDc4IDE0Ni43ODg1MTIsMzI4LjcwNDY4NCBDMTQ1LjgwNDA3LDMzMC4yODMyOSAxNDQuMDc1MTYsMzMxLjI0MjY1MSAxNDIuMjE0NzQzLDMzMS4yNDI2NTEgTDEyLjY5ODM1NTYsMzMxLjI0MjY1MSBDMTAuMjI3NTM2NSwzMzEuMjQyNjUxIDguMDcyNzE0NjYsMzI5LjU2Mzc4OCA3LjQ2OTgzNDg1LDMyNy4xNjc2NjMgQzMuMjg4NDIzMDEsMzA5LjkxOTUyNSAwLjg1MDU3NzM3OSwyOTIuMjk0OTA4IDAuMTkzMDI3NjQ3LDI3NC41NTkzNTMgQy01LjU1Mjk1NDkzLDEyMC45MTcyMTYgMTE3LjcyMTU0OSwtMy44NDQyNTMyNCAyNzEuNDE4NDk4LDAuMDkwNTg5NjA4MSBDMzYwLjM3MDY5LDIuMzc1MTM4MjUgNDQyLjIwODAyNCw0OS4yNDkwMTcxIDQ4OS4xODM2OTEsMTI0LjgxOTcxOCBDNDkwLjIzOTYyMywxMjYuNDgyODA1IDQ5MC4zMDQxNywxMjguNTg5NDcgNDg5LjM1MjAzNSwxMzAuMzE0MDgyIEM0ODguMzk5ODk5LDEzMi4wMzg2OTQgNDg2LjU4Mjc2LDEzMy4xMDY1MTggNDg0LjYxMjc3OCwxMzMuMDk5MDU4IFogTTUxNi4zMDczMTYsMTk3Ljc4MTQwNiBMMzg2Ljc5MDkyOSwxOTcuNzgxNDA2IEMzODQuOTMwNTEyLDE5Ny43ODE0MDIgMzgzLjIwMTYwMiwxOTguNzQwNzY4IDM4Mi4yMTcxNiwyMDAuMzE5MzczIEMzODEuMjMyNzE4LDIwMS44OTc5NzkgMzgxLjEzMTkyMSwyMDMuODcyNjQ4IDM4MS45NTA1MDQsMjA1LjU0MzI4OCBDMzkxLjQyNTQ2OSwyMjQuMzY5MDU2IDM5Ni4yMDc3MzgsMjQ1LjIwNjc1NCAzOTUuODg5NjMzLDI2Ni4yODAwMTMgQzM5NC45NTE3MzMsMzM4LjQwMDgzMSAzMzUuMTUyNTQ5LDM5NS45MTQyMTkgMjYzLjAyMDUyMywzOTUuOTE0MjE5IEw0NC4zOTI4OTM2LDM5NS45MTQyMTkgQzQyLjQzODAxMTksMzk1LjkzMjcwNSA0MC42NDYzNzg4LDM5Ny4wMDgyMDYgMzkuNzEwODY1LDM5OC43MjQ3OTYgQzM4Ljc3NTM1MTIsNDAwLjQ0MTM4NyAzOC44NDI2MjI1LDQwMi41Mjk5NDggMzkuODg2NjYzNCw0MDQuMTgyNzc5IEM4Ni44NTk1Mjk0LDQ3OS43NTYzODQgMTY4LjY5ODU3Nyw1MjYuNjMxMjQ0IDI1Ny42NTE4NTcsNTI4LjkxMTkwNyBDNDA5Ljc0MjUxNyw1MzIuODE0NDA5IDUzNC41MDQ3MjUsNDA2LjUzMjkwNCA1MjguODEyNjQ0LDI1NC40MjE1ODIgQzUyOC4xNTUwOTQsMjM2LjY4NjAyOCA1MjUuNzE3MjQ5LDIxOS4wNjE0MTEgNTIxLjUzNTgzNywyMDEuODEzMjczIEM1MjAuOTI0NjI1LDE5OS40MjU3MDkgNTE4Ljc3MTg4NSwxOTcuNzU5ODQxIDUxNi4zMDczMTYsMTk3Ljc1OTg0MSBMNTE2LjMwNzMxNiwxOTcuNzgxNDA2IFogTTI2NC40OTc0NDYsMjE2LjI2OTc3NiBDMjQ0Ljk4NDE4LDIxNi4yNjk3NzYgMjI3LjM5MjUxOSwyMjguMDI0NzkyIDIxOS45MjYxMjMsMjQ2LjA1MzAwOSBDMjEyLjQ1OTcyNywyNjQuMDgxMjI3IDIxNi41ODkxMywyODQuODMxOTI0IDIzMC4zODg2MzQsMjk4LjYyODI2MyBDMjQ0LjE4ODEzOCwzMTIuNDI0NjAyIDI2NC45Mzk4ODEsMzE2LjU0OTM0MyAyODIuOTY2NTM2LDMwOS4wNzg5NjIgQzMwMC45OTMxOTEsMzAxLjYwODU4MiAzMTIuNzQ0MzQzLDI4NC4wMTQzOTggMzEyLjczOTk4NCwyNjQuNTAxMjQ4IEMzMTIuNzM5OTg0LDI1MS43MDc1OTkgMzA3LjY1Njk1NywyMzkuNDM4MTAxIDI5OC42MDk0MTcsMjMwLjM5MjYzNiBDMjg5LjU2MTg3NiwyMjEuMzQ3MTcxIDI3Ny4yOTExNzEsMjE2LjI2NjkxOCAyNjQuNDk3NDQ2LDIxNi4yNjk3NzYgTDI2NC40OTc0NDYsMjE2LjI2OTc3NiBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+&logoColor=%23fff
[discord-badge]: https://img.shields.io/discord/994750204194607206?color=%235865F2&label=Discord&logo=discord&logoColor=%23fff