diff --git a/app/javascript/entrypoints/ui.js b/app/javascript/entrypoints/ui.js
index 28b126787..d18521326 100644
--- a/app/javascript/entrypoints/ui.js
+++ b/app/javascript/entrypoints/ui.js
@@ -1,34 +1,25 @@
-import { h, defineCustomElement } from 'vue';
+import { defineCustomElement } from 'vue';
-// Import dashboard styles
import '../dashboard/assets/scss/app.scss';
import 'vue-multiselect/dist/vue-multiselect.css';
-// Import floating-vue styles from dashboard.js
import 'floating-vue/dist/style.css';
-const ChatButton = {
- name: 'ChatButton',
- props: {
- label: {
- type: String,
- default: 'Click me',
- },
- },
- render() {
- return h(
- 'button',
- {
- class: 'cha-button',
- onClick: this.handleClick,
- },
- this.label
- );
- },
- methods: {
- handleClick() {
- // console.log('Button clicked');
- },
- },
-};
+import store from 'dashboard/store';
+import constants from 'dashboard/constants/globals';
+import axios from 'axios';
+import createAxios from 'dashboard/helper/APIHelper';
+import commonHelpers from 'dashboard/helper/commons';
+
+import ChatButton from '../ui/ChatButton.vue';
+
+commonHelpers();
+window.WootConstants = constants;
+window.axios = createAxios(axios);
export const buttonElement = defineCustomElement(ChatButton);
+
+// eslint-disable-next-line no-underscore-dangle
+window.__CHATWOOT_STORE__ = store;
+customElements.define('chat-button', buttonElement);
+
+export { store, ChatButton };
diff --git a/app/javascript/ui/ChatButton.vue b/app/javascript/ui/ChatButton.vue
new file mode 100644
index 000000000..c95670231
--- /dev/null
+++ b/app/javascript/ui/ChatButton.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/app/javascript/ui/usage.md b/app/javascript/ui/usage.md
new file mode 100644
index 000000000..2e19bf1d9
--- /dev/null
+++ b/app/javascript/ui/usage.md
@@ -0,0 +1,46 @@
+# Chatwoot UI Components Usage Guide
+
+This document explains how to use the Chatwoot UI components library, which can be used both as Web Components (Custom Elements) and as Vue components.
+
+## Installation
+
+```bash
+npm install @chatwoot/ui
+# or
+yarn add @chatwoot/ui
+# or
+pnpm add @chatwoot/ui
+```
+
+## Usage
+
+### As Web Components (Custom Elements)
+
+Web Components can be used in any HTML page or application, regardless of the framework.
+
+```html
+
+
+
+
+
+```
+
+When the script loads, it automatically registers all custom elements with the browser, making them immediately available for use.
+
+#### Accessing the Store in Web Components
+
+The components have access to a global store instance. When using Web Components, the store is available through `window.__CHATWOOT_STORE__`.
+
+You can interact with the store from your JavaScript:
+
+```javascript
+// Access the store
+const store = window.__CHATWOOT_STORE__;
+
+// Check store state
+console.log(store.state.someData);
+
+// Dispatch actions
+store.dispatch('someAction', { data: 'example' });
+```