biel-search 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/biel-search/biel-search.css +1 -0
- package/dist/biel-search/biel-search.esm.js +2 -0
- package/dist/biel-search/biel-search.esm.js.map +1 -0
- package/dist/biel-search/index.esm.js +2 -0
- package/dist/biel-search/index.esm.js.map +1 -0
- package/dist/biel-search/p-1b3c90ca.js +3 -0
- package/dist/biel-search/p-1b3c90ca.js.map +1 -0
- package/dist/biel-search/p-e1255160.js +2 -0
- package/dist/biel-search/p-e1255160.js.map +1 -0
- package/dist/biel-search/p-fe900c87.entry.js +3 -0
- package/dist/biel-search/p-fe900c87.entry.js.map +1 -0
- package/dist/cjs/app-globals-3a1e7e63.js +7 -0
- package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
- package/dist/cjs/biel-bot_8.cjs.entry.js +63952 -0
- package/dist/cjs/biel-bot_8.cjs.entry.js.map +1 -0
- package/dist/cjs/biel-search.cjs.js +27 -0
- package/dist/cjs/biel-search.cjs.js.map +1 -0
- package/dist/cjs/index-05fc01fd.js +1281 -0
- package/dist/cjs/index-05fc01fd.js.map +1 -0
- package/dist/cjs/index.cjs.js +11 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +17 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +19 -0
- package/dist/collection/components/biel-bot/biel-bot.css +189 -0
- package/dist/collection/components/biel-bot/biel-bot.js +338 -0
- package/dist/collection/components/biel-bot/biel-bot.js.map +1 -0
- package/dist/collection/components/biel-button/biel-button.css +63 -0
- package/dist/collection/components/biel-button/biel-button.js +301 -0
- package/dist/collection/components/biel-button/biel-button.js.map +1 -0
- package/dist/collection/components/biel-chat/biel-chat.css +75 -0
- package/dist/collection/components/biel-chat/biel-chat.js +119 -0
- package/dist/collection/components/biel-chat/biel-chat.js.map +1 -0
- package/dist/collection/components/biel-header/biel-header.css +49 -0
- package/dist/collection/components/biel-header/biel-header.js +165 -0
- package/dist/collection/components/biel-header/biel-header.js.map +1 -0
- package/dist/collection/components/biel-input/biel-input.css +55 -0
- package/dist/collection/components/biel-input/biel-input.js +164 -0
- package/dist/collection/components/biel-input/biel-input.js.map +1 -0
- package/dist/collection/components/biel-message/biel-message.css +38 -0
- package/dist/collection/components/biel-message/biel-message.js +98 -0
- package/dist/collection/components/biel-message/biel-message.js.map +1 -0
- package/dist/collection/components/biel-table/biel-table.css +37 -0
- package/dist/collection/components/biel-table/biel-table.js +43 -0
- package/dist/collection/components/biel-table/biel-table.js.map +1 -0
- package/dist/collection/components/code-snippet/code-snippet.css +162 -0
- package/dist/collection/components/code-snippet/code-snippet.js +101 -0
- package/dist/collection/components/code-snippet/code-snippet.js.map +1 -0
- package/dist/collection/index.js +11 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/services/biel-service.js +33 -0
- package/dist/collection/services/biel-service.js.map +1 -0
- package/dist/collection/services/biel-websocket-service.js +64 -0
- package/dist/collection/services/biel-websocket-service.js.map +1 -0
- package/dist/collection/utils/utils.js +4 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/components/biel-bot.d.ts +11 -0
- package/dist/components/biel-bot.js +8 -0
- package/dist/components/biel-bot.js.map +1 -0
- package/dist/components/biel-button.d.ts +11 -0
- package/dist/components/biel-button.js +152 -0
- package/dist/components/biel-button.js.map +1 -0
- package/dist/components/biel-chat.d.ts +11 -0
- package/dist/components/biel-chat.js +8 -0
- package/dist/components/biel-chat.js.map +1 -0
- package/dist/components/biel-header.d.ts +11 -0
- package/dist/components/biel-header.js +8 -0
- package/dist/components/biel-header.js.map +1 -0
- package/dist/components/biel-input.d.ts +11 -0
- package/dist/components/biel-input.js +8 -0
- package/dist/components/biel-input.js.map +1 -0
- package/dist/components/biel-message.d.ts +11 -0
- package/dist/components/biel-message.js +8 -0
- package/dist/components/biel-message.js.map +1 -0
- package/dist/components/biel-table.d.ts +11 -0
- package/dist/components/biel-table.js +8 -0
- package/dist/components/biel-table.js.map +1 -0
- package/dist/components/code-snippet.d.ts +11 -0
- package/dist/components/code-snippet.js +8 -0
- package/dist/components/code-snippet.js.map +1 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/p-09743aa7.js +88 -0
- package/dist/components/p-09743aa7.js.map +1 -0
- package/dist/components/p-5a2466bd.js +59456 -0
- package/dist/components/p-5a2466bd.js.map +1 -0
- package/dist/components/p-7b8b1ac3.js +1098 -0
- package/dist/components/p-7b8b1ac3.js.map +1 -0
- package/dist/components/p-8e08748d.js +4158 -0
- package/dist/components/p-8e08748d.js.map +1 -0
- package/dist/components/p-b920c67f.js +239 -0
- package/dist/components/p-b920c67f.js.map +1 -0
- package/dist/components/p-c94c3bd6.js +59 -0
- package/dist/components/p-c94c3bd6.js.map +1 -0
- package/dist/components/p-f4016e6d.js +37 -0
- package/dist/components/p-f4016e6d.js.map +1 -0
- package/dist/components/p-fe8bcdeb.js +86 -0
- package/dist/components/p-fe8bcdeb.js.map +1 -0
- package/dist/esm/app-globals-0f993ce5.js +5 -0
- package/dist/esm/app-globals-0f993ce5.js.map +1 -0
- package/dist/esm/biel-bot_8.entry.js +63941 -0
- package/dist/esm/biel-bot_8.entry.js.map +1 -0
- package/dist/esm/biel-search.js +22 -0
- package/dist/esm/biel-search.js.map +1 -0
- package/dist/esm/index-6ad604ca.js +1252 -0
- package/dist/esm/index-6ad604ca.js.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +13 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/components/biel-bot/biel-bot.d.ts +35 -0
- package/dist/types/components/biel-button/biel-button.d.ts +23 -0
- package/dist/types/components/biel-chat/biel-chat.d.ts +15 -0
- package/dist/types/components/biel-header/biel-header.d.ts +15 -0
- package/dist/types/components/biel-input/biel-input.d.ts +17 -0
- package/dist/types/components/biel-message/biel-message.d.ts +10 -0
- package/dist/types/components/biel-table/biel-table.d.ts +4 -0
- package/dist/types/components/code-snippet/code-snippet.d.ts +10 -0
- package/dist/types/components.d.ts +248 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/services/biel-service.d.ts +11 -0
- package/dist/types/services/biel-websocket-service.d.ts +17 -0
- package/dist/types/stencil-public-runtime.d.ts +1674 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/loader/package.json +11 -0
- package/package.json +55 -0
- package/readme.md +22 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-7b8b1ac3.js';
|
|
2
|
+
import { d as defineCustomElement$6 } from './p-fe8bcdeb.js';
|
|
3
|
+
import { d as defineCustomElement$5 } from './p-c94c3bd6.js';
|
|
4
|
+
import { d as defineCustomElement$4 } from './p-09743aa7.js';
|
|
5
|
+
import { d as defineCustomElement$3 } from './p-8e08748d.js';
|
|
6
|
+
import { d as defineCustomElement$2 } from './p-f4016e6d.js';
|
|
7
|
+
import { d as defineCustomElement$1 } from './p-5a2466bd.js';
|
|
8
|
+
|
|
9
|
+
const WS_URL = 'ws://app.biel.ai/ws/messages';
|
|
10
|
+
class BielWebSocketService {
|
|
11
|
+
constructor(projectId, errorMessage) {
|
|
12
|
+
this.messageHandlers = [];
|
|
13
|
+
this.isConnected = false;
|
|
14
|
+
this.chatId = '';
|
|
15
|
+
this.projectId = projectId;
|
|
16
|
+
this.errorMessage = errorMessage;
|
|
17
|
+
this.connect();
|
|
18
|
+
}
|
|
19
|
+
connect() {
|
|
20
|
+
this.ws = new WebSocket(`${WS_URL}/${this.projectId}/`);
|
|
21
|
+
this.ws.onopen = () => {
|
|
22
|
+
this.isConnected = true;
|
|
23
|
+
};
|
|
24
|
+
this.ws.onmessage = (event) => {
|
|
25
|
+
const message = JSON.parse(event.data);
|
|
26
|
+
if (!this.chatId && message.chatId) {
|
|
27
|
+
this.chatId = message.chatId;
|
|
28
|
+
}
|
|
29
|
+
if (message.from) {
|
|
30
|
+
this.loadingEndHandler();
|
|
31
|
+
this.messageHandlers.forEach(handler => handler(message));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
this.ws.onclose = () => {
|
|
35
|
+
this.isConnected = false;
|
|
36
|
+
};
|
|
37
|
+
this.ws.onerror = (error) => {
|
|
38
|
+
console.error('WebSocket error:', error);
|
|
39
|
+
this.isConnected = false;
|
|
40
|
+
this.loadingEndHandler();
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
sendMessage(message) {
|
|
44
|
+
const payload = {
|
|
45
|
+
projectId: this.projectId,
|
|
46
|
+
chatId: this.chatId,
|
|
47
|
+
url: window.location.href,
|
|
48
|
+
from: 'user',
|
|
49
|
+
message: message,
|
|
50
|
+
};
|
|
51
|
+
if (this.isConnected) {
|
|
52
|
+
this.ws.send(JSON.stringify(payload));
|
|
53
|
+
this.loadingStartHandler();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.messageHandlers.forEach(handler => handler({ message: this.errorMessage, from: 'ai' }));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
closeSocket() {
|
|
60
|
+
this.ws.close();
|
|
61
|
+
}
|
|
62
|
+
onMessage(handler) {
|
|
63
|
+
this.messageHandlers.push(handler);
|
|
64
|
+
}
|
|
65
|
+
onLoadingStart(handler) {
|
|
66
|
+
this.loadingStartHandler = handler;
|
|
67
|
+
}
|
|
68
|
+
onLoadingEnd(handler) {
|
|
69
|
+
this.loadingEndHandler = handler;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const BASE_URL = "https://app.biel.ai/api/v1";
|
|
74
|
+
class BielService {
|
|
75
|
+
constructor(project, errorMessage404, errorMessage403, errorMessageDefault) {
|
|
76
|
+
this.project = project;
|
|
77
|
+
this.errorMessage404 = errorMessage404;
|
|
78
|
+
this.errorMessage403 = errorMessage403;
|
|
79
|
+
this.errorMessageDefault = errorMessageDefault;
|
|
80
|
+
}
|
|
81
|
+
async getProjectDetails() {
|
|
82
|
+
try {
|
|
83
|
+
const response = await fetch(`${BASE_URL}/projects/${this.project}`);
|
|
84
|
+
if (response.status === 404) {
|
|
85
|
+
return this.errorMessage404;
|
|
86
|
+
}
|
|
87
|
+
if (response.status === 403) {
|
|
88
|
+
return this.errorMessage403;
|
|
89
|
+
}
|
|
90
|
+
if (!response.ok) {
|
|
91
|
+
return this.errorMessageDefault;
|
|
92
|
+
}
|
|
93
|
+
const data = await response.json();
|
|
94
|
+
return {
|
|
95
|
+
whitelabel: data.whitelabel,
|
|
96
|
+
initialMessage: data.initial_message
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.error('Error fetching project details:', error);
|
|
101
|
+
return this.errorMessageDefault;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const bielBotCss = ".text-center{flex-grow:1;text-align:center}.biel-bot-wrapper{position:absolute;z-index:var(--biel-bot-wrapper-z-index)}.biel-overlay{background-color:var(--biel-bot-screenshot-bg-color);height:100%;left:0;position:fixed;top:0;width:100%;z-index:var(--biel-bot-screnshot-z-index)}.biel-bot{display:inline-block;position:relative}.biel-bot-content{background-color:var(--biel-bot-content-bg-color);border:1px solid var(--biel-bot-header-text-color);border-radius:var(--biel-bot-content-border-radius);box-shadow:0px 1px 2px 0px rgba(60, 64, 67, .30), 0px 2px 6px 2px rgba(60, 64, 67, .15);box-sizing:border-box;color:var(--biel-bot-content-text-color);display:flex;flex-direction:column;font-family:var(--biel-bot-content-font-family);left:50%;max-width:90%;max-height:80vh;overflow:hidden;padding:20px;position:fixed;top:50%;transform:translate(-50%, -50%);width:100%;z-index:var(--biel-bot-content-z-index)}.biel-bot-header{margin-bottom:20px}.biel-bot-footer{font-size:var(--biel-footer-font-size);text-align:center}.biel-bot-footer a{color:var(--biel-bot-footer-link);font-weight:500;text-decoration:none}.biel-logo{align-items:center;display:flex;justify-content:center;margin-top:5px}.biel-logo a{margin-left:3px}.biel-bot-close{background-color:var(--biel-bot-close-bg-color);border:0;border-radius:50%;cursor:pointer;height:22px;margin-left:auto;padding:0;width:22px}.biel-bot-close svg{stroke:var(--biel-bot-close-color)}.biel-bot-content.fullscreen{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;padding:20px 5vw;left:50%;top:50%;max-width:100vw;transform:translate(-50%, -50%)}@media screen and (min-width: 768px){.biel-bot-content{max-width:600px;max-height:82vh}.biel-bot-content.biel-bot-content--bottom-right{bottom:var(--biel-bot-content-position-bottom);left:initial;right:var(--biel-bot-content-position-right);top:initial;transform:initial}.biel-bot-content.biel-bot-content--bottom-left{bottom:var(--biel-bot-content-position-bottom);left:var(--biel-bot-content-position-left);top:initial;transform:initial}.biel-bot-content.biel-bot-content--top-right{right:var(--biel-bot-content-position-right);top:var(--biel-bot-content-position-top);transform:initial}.biel-bot-content.biel-bot-content--top-left{left:var(--biel-bot-content-position-left);top:var(--biel-bot-content-position-top);transform:initial}.biel-bot-content.biel-bot-content--center-left{left:5px;right:auto;top:50%;transform:translateY(-50%)}.biel-bot-content.biel-bot-content--center-right{left:auto;right:5px;top:50%;transform:translateY(-50%)}.biel-bot-content.biel-bot-content--sidebar-left.biel-bot-content--open,.biel-bot-content.biel-bot-content--sidebar-right.biel-bot-content--open{transform:translateX(0)}.biel-bot-content.biel-bot-content--sidebar-left{max-width:300px;left:0;right:auto;height:100vh;top:0;transform:translateX(-100%);transition:transform 0.5s ease-in-out;border-radius:0}.biel-bot-content.biel-bot-content--sidebar-right{max-width:300px;left:auto;right:0;height:100vh;top:0;transform:translateX(100%);transition:transform 0.5s ease-in-out;border-radius:0}.biel-bot-content.fullscreen{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;padding:20px 25vw;left:50%;top:50%;max-width:100vw;transform:translate(-50%, -50%)}}";
|
|
107
|
+
const BielBotStyle0 = bielBotCss;
|
|
108
|
+
|
|
109
|
+
const BielBot = /*@__PURE__*/ proxyCustomElement(class BielBot extends H {
|
|
110
|
+
handleClose() {
|
|
111
|
+
this.showModal = false;
|
|
112
|
+
document.body.style.overflow = '';
|
|
113
|
+
}
|
|
114
|
+
handleFullscreenClicked() {
|
|
115
|
+
this.isFullscreen = !this.isFullscreen;
|
|
116
|
+
document.body.style.overflow = this.isFullscreen ? 'hidden' : '';
|
|
117
|
+
}
|
|
118
|
+
constructor() {
|
|
119
|
+
super();
|
|
120
|
+
this.__registerHost();
|
|
121
|
+
this.__attachShadow();
|
|
122
|
+
this.modalPosition = 'center';
|
|
123
|
+
this.project = '';
|
|
124
|
+
this.showModal = false;
|
|
125
|
+
this.fetchData = true;
|
|
126
|
+
this.headerTitle = 'Company Name AI';
|
|
127
|
+
this.inputPlaceholderText = 'Type your message';
|
|
128
|
+
this.sendButtonText = 'Send';
|
|
129
|
+
this.hideExpandButton = false;
|
|
130
|
+
this.expandModal = false;
|
|
131
|
+
this.errorMessage404 = "Oops! We could not find the provided project ID.";
|
|
132
|
+
this.errorMessage403 = "Oops! The request URL does not match the one defined for this project.";
|
|
133
|
+
this.errorMessageDefault = "Oops! Please try again later.";
|
|
134
|
+
this.footerText = "AI generated answers. Always verify the sources before using them.";
|
|
135
|
+
this.isFullscreen = this.expandModal;
|
|
136
|
+
this.isLoading = false;
|
|
137
|
+
this.showPoweredBy = true;
|
|
138
|
+
this.welcomeMessage = undefined;
|
|
139
|
+
this.messages = [];
|
|
140
|
+
this.webSocketService = new BielWebSocketService(this.project, this.errorMessageDefault);
|
|
141
|
+
this.webSocketService.onMessage(this.handleIncomingMessage.bind(this));
|
|
142
|
+
this.webSocketService.onLoadingStart(() => this.isLoading = true);
|
|
143
|
+
this.webSocketService.onLoadingEnd(() => this.isLoading = false);
|
|
144
|
+
}
|
|
145
|
+
handleIncomingMessage(message) {
|
|
146
|
+
this.messages = [...this.messages, { sender: message.from, text: message.message }];
|
|
147
|
+
}
|
|
148
|
+
async componentWillLoad() {
|
|
149
|
+
if (this.fetchData) {
|
|
150
|
+
this.bielService = new BielService(this.project, this.errorMessage404, this.errorMessage403, this.errorMessageDefault);
|
|
151
|
+
const result = await this.bielService.getProjectDetails();
|
|
152
|
+
if (typeof result === 'string') {
|
|
153
|
+
this.welcomeMessage = result;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.showPoweredBy = result.whitelabel;
|
|
157
|
+
this.welcomeMessage = result.initialMessage;
|
|
158
|
+
}
|
|
159
|
+
if (this.welcomeMessage) {
|
|
160
|
+
this.messages = [{ text: this.welcomeMessage, sender: 'ai' }];
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
handleMessageSent(event) {
|
|
165
|
+
this.messages = [...this.messages, { text: event.detail, sender: 'user' }];
|
|
166
|
+
this.webSocketService.sendMessage(event.detail);
|
|
167
|
+
}
|
|
168
|
+
render() {
|
|
169
|
+
return (h("div", { key: '0779ac463e2d1daf5e7d1f6d92ed9592776972bf', class: 'biel-bot-wrapper' }, this.showModal && (h("div", { key: '39c72fbe3b17de2b2b881d8a39bd8bec270cac13', class: "feedback-overlay" })), this.showModal && (h("div", { key: '692eccc43cd4dbc39ba510f8422ab13c083aa782', class: `biel-bot-content biel-bot-content--${this.modalPosition} ${this.showModal ? 'biel-bot-content--open' : ''} ${this.isFullscreen ? 'fullscreen' : ''}`, ref: el => (this.modalContent = el) }, h("div", { key: '01240aab4b14cd6a24bc59c1d951ed679ce8a53c', class: "biel-bot-header" }, h("biel-header", { key: 'c4624af08036041b033cc70c02b508e76787dd0b', headerTitle: this.headerTitle, project: this.project, showPoweredBy: this.showPoweredBy, hideExpandButton: this.hideExpandButton, fullscreen: this.isFullscreen })), h("div", { key: '54d8b6290f60c5b9427b92f89770cda198b06be5', class: "biel-bot-body" }, h("biel-chat", { key: 'd811b46f4dfdd5b41087839f60915f452272ebbf', messages: this.messages, isFullscreen: this.isFullscreen, isLoading: this.isLoading }), h("biel-input", { key: 'fa83a2a460f30367062ecebe5c8f2d36964f8758', placeholderText: this.inputPlaceholderText, sendButtonText: this.sendButtonText, onMessageSent: (event) => this.handleMessageSent(event), isDisabled: this.isLoading })), h("div", { key: '25b1bfa2642d542c621821f5502db5467ab33d8c', class: "biel-bot-footer" }, this.footerText)))));
|
|
170
|
+
}
|
|
171
|
+
static get style() { return BielBotStyle0; }
|
|
172
|
+
}, [1, "biel-bot", {
|
|
173
|
+
"modalPosition": [1, "modal-position"],
|
|
174
|
+
"project": [1],
|
|
175
|
+
"showModal": [1540, "show-modal"],
|
|
176
|
+
"fetchData": [4, "fetch-data"],
|
|
177
|
+
"headerTitle": [1, "header-title"],
|
|
178
|
+
"inputPlaceholderText": [1, "input-placeholder-text"],
|
|
179
|
+
"sendButtonText": [1, "send-button-text"],
|
|
180
|
+
"hideExpandButton": [4, "hide-expand-button"],
|
|
181
|
+
"expandModal": [4, "expand-modal"],
|
|
182
|
+
"errorMessage404": [1, "error-message-4-0-4"],
|
|
183
|
+
"errorMessage403": [1, "error-message-4-0-3"],
|
|
184
|
+
"errorMessageDefault": [1, "error-message-default"],
|
|
185
|
+
"footerText": [1, "footer-text"],
|
|
186
|
+
"isFullscreen": [32],
|
|
187
|
+
"isLoading": [32],
|
|
188
|
+
"showPoweredBy": [32],
|
|
189
|
+
"welcomeMessage": [32],
|
|
190
|
+
"messages": [32]
|
|
191
|
+
}, [[16, "closeClicked", "handleClose"], [16, "fullscreenClicked", "handleFullscreenClicked"]]]);
|
|
192
|
+
function defineCustomElement() {
|
|
193
|
+
if (typeof customElements === "undefined") {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const components = ["biel-bot", "biel-chat", "biel-header", "biel-input", "biel-message", "biel-table", "code-snippet"];
|
|
197
|
+
components.forEach(tagName => { switch (tagName) {
|
|
198
|
+
case "biel-bot":
|
|
199
|
+
if (!customElements.get(tagName)) {
|
|
200
|
+
customElements.define(tagName, BielBot);
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
case "biel-chat":
|
|
204
|
+
if (!customElements.get(tagName)) {
|
|
205
|
+
defineCustomElement$6();
|
|
206
|
+
}
|
|
207
|
+
break;
|
|
208
|
+
case "biel-header":
|
|
209
|
+
if (!customElements.get(tagName)) {
|
|
210
|
+
defineCustomElement$5();
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
case "biel-input":
|
|
214
|
+
if (!customElements.get(tagName)) {
|
|
215
|
+
defineCustomElement$4();
|
|
216
|
+
}
|
|
217
|
+
break;
|
|
218
|
+
case "biel-message":
|
|
219
|
+
if (!customElements.get(tagName)) {
|
|
220
|
+
defineCustomElement$3();
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
case "biel-table":
|
|
224
|
+
if (!customElements.get(tagName)) {
|
|
225
|
+
defineCustomElement$2();
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
case "code-snippet":
|
|
229
|
+
if (!customElements.get(tagName)) {
|
|
230
|
+
defineCustomElement$1();
|
|
231
|
+
}
|
|
232
|
+
break;
|
|
233
|
+
} });
|
|
234
|
+
}
|
|
235
|
+
defineCustomElement();
|
|
236
|
+
|
|
237
|
+
export { BielBot as B, defineCustomElement as d };
|
|
238
|
+
|
|
239
|
+
//# sourceMappingURL=p-b920c67f.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-b920c67f.js","mappings":"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","names":[],"sources":["src/services/biel-websocket-service.ts","src/services/biel-service.ts","src/components/biel-bot/biel-bot.css?tag=biel-bot&encapsulation=shadow","src/components/biel-bot/biel-bot.tsx"],"sourcesContent":["const WS_URL = 'ws://app.biel.ai/ws/messages';\n\nexport class BielWebSocketService {\n private ws: WebSocket;\n private messageHandlers: ((message: any) => void)[] = [];\n private isConnected: boolean = false;\n private projectId: string;\n private chatId: string = '';\n private errorMessage: string;\n private loadingStartHandler: () => void;\n private loadingEndHandler: () => void;\n\n constructor(projectId: string, errorMessage: string) {\n this.projectId = projectId;\n this.errorMessage = errorMessage;\n this.connect();\n }\n\n private connect(): void {\n this.ws = new WebSocket(`${WS_URL}/${this.projectId}/`);\n\n this.ws.onopen = () => {\n this.isConnected = true;\n };\n\n this.ws.onmessage = (event) => {\n const message = JSON.parse(event.data);\n if (!this.chatId && message.chatId) {\n this.chatId = message.chatId;\n }\n if (message.from) {\n this.loadingEndHandler();\n this.messageHandlers.forEach(handler => handler(message));\n }\n };\n\n this.ws.onclose = () => {\n this.isConnected = false;\n };\n\n this.ws.onerror = (error) => {\n console.error('WebSocket error:', error);\n this.isConnected = false;\n this.loadingEndHandler();\n };\n }\n\n public sendMessage(message: string): void {\n const payload = {\n projectId: this.projectId,\n chatId: this.chatId,\n url: window.location.href,\n from: 'user',\n message: message,\n };\n if (this.isConnected) {\n this.ws.send(JSON.stringify(payload));\n this.loadingStartHandler();\n } else {\n this.messageHandlers.forEach(handler => handler({ message: this.errorMessage, from: 'ai' }));\n }\n }\n\n public closeSocket(): void {\n this.ws.close();\n }\n\n public onMessage(handler: (message: any) => void): void {\n this.messageHandlers.push(handler);\n }\n\n public onLoadingStart(handler: () => void): void {\n this.loadingStartHandler = handler;\n }\n\n public onLoadingEnd(handler: () => void): void {\n this.loadingEndHandler = handler;\n }\n}\n","const BASE_URL = \"https://app.biel.ai/api/v1\";\n\nexport class BielService {\n private project: string;\n private errorMessage404: string;\n private errorMessage403: string;\n private errorMessageDefault: string;\n\n constructor(project: string, errorMessage404: string, errorMessage403: string, errorMessageDefault: string) {\n this.project = project;\n this.errorMessage404 = errorMessage404;\n this.errorMessage403 = errorMessage403;\n this.errorMessageDefault = errorMessageDefault;\n }\n\n async getProjectDetails(): Promise<{ whitelabel: boolean, initialMessage: string } | string> {\n try {\n const response = await fetch(`${BASE_URL}/projects/${this.project}`);\n\n if (response.status === 404) {\n return this.errorMessage404;\n }\n\n if (response.status === 403) {\n return this.errorMessage403;\n }\n\n if (!response.ok) {\n return this.errorMessageDefault;\n }\n\n const data = await response.json();\n return {\n whitelabel: data.whitelabel,\n initialMessage: data.initial_message\n };\n } catch (error) {\n console.error('Error fetching project details:', error);\n return this.errorMessageDefault;\n }\n }\n}\n",".text-center {\n flex-grow: 1;\n text-align: center;\n}\n\n.biel-bot-wrapper {\n position: absolute;\n z-index: var(--biel-bot-wrapper-z-index);\n}\n\n.biel-overlay {\n background-color: var(--biel-bot-screenshot-bg-color);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: var(--biel-bot-screnshot-z-index);\n}\n\n.biel-bot {\n display: inline-block;\n position: relative;\n}\n\n.biel-bot-content {\n background-color: var(--biel-bot-content-bg-color);\n border: 1px solid var(--biel-bot-header-text-color);\n border-radius: var(--biel-bot-content-border-radius);\n box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .30), 0px 2px 6px 2px rgba(60, 64, 67, .15);\n box-sizing: border-box;\n color: var(--biel-bot-content-text-color);\n display: flex;\n flex-direction: column;\n font-family: var(--biel-bot-content-font-family);\n left: 50%;\n max-width: 90%;\n max-height: 80vh;\n overflow: hidden;\n padding: 20px;\n position: fixed;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n z-index: var(--biel-bot-content-z-index);\n}\n\n.biel-bot-header {\n margin-bottom: 20px;\n}\n\n.biel-bot-footer {\n font-size: var(--biel-footer-font-size);\n text-align: center;\n}\n\n.biel-bot-footer a {\n color: var(--biel-bot-footer-link);\n font-weight: 500;\n text-decoration: none;\n}\n\n.biel-logo {\n align-items: center;\n display: flex;\n justify-content: center;\n margin-top: 5px;\n}\n\n.biel-logo a {\n margin-left: 3px;\n}\n\n.biel-bot-close {\n background-color: var(--biel-bot-close-bg-color);\n border: 0;\n border-radius: 50%;\n cursor: pointer;\n height: 22px;\n margin-left: auto;\n padding: 0;\n width: 22px;\n}\n\n.biel-bot-close svg {\n stroke: var(--biel-bot-close-color);\n}\n\n.biel-bot-content.fullscreen {\n width: 100vw;\n max-width: 100vw;\n height: 100vh;\n max-height: 100vh;\n border-radius: 0;\n padding: 20px 5vw;\n left: 50%;\n top: 50%;\n max-width: 100vw;\n transform: translate(-50%, -50%);\n}\n\n@media screen and (min-width: 768px) {\n\n .biel-bot-content {\n max-width: 600px;\n max-height: 82vh;\n }\n\n .biel-bot-content.biel-bot-content--bottom-right {\n bottom: var(--biel-bot-content-position-bottom);\n left: initial;\n right: var(--biel-bot-content-position-right);\n top: initial;\n transform: initial;\n }\n\n .biel-bot-content.biel-bot-content--bottom-left {\n bottom: var(--biel-bot-content-position-bottom);\n left: var(--biel-bot-content-position-left);\n top: initial;\n transform: initial;\n }\n\n .biel-bot-content.biel-bot-content--top-right {\n right: var(--biel-bot-content-position-right);\n top: var(--biel-bot-content-position-top);\n transform: initial;\n }\n\n .biel-bot-content.biel-bot-content--top-left {\n left: var(--biel-bot-content-position-left);\n top: var(--biel-bot-content-position-top);\n transform: initial;\n }\n\n .biel-bot-content.biel-bot-content--center-left {\n left: 5px;\n right: auto;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .biel-bot-content.biel-bot-content--center-right {\n left: auto;\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .biel-bot-content.biel-bot-content--sidebar-left.biel-bot-content--open,\n .biel-bot-content.biel-bot-content--sidebar-right.biel-bot-content--open {\n transform: translateX(0);\n }\n\n .biel-bot-content.biel-bot-content--sidebar-left {\n max-width: 300px;\n left: 0;\n right: auto;\n height: 100vh;\n top: 0;\n transform: translateX(-100%);\n transition: transform 0.5s ease-in-out;\n border-radius: 0;\n }\n\n .biel-bot-content.biel-bot-content--sidebar-right {\n max-width: 300px;\n left: auto;\n right: 0;\n height: 100vh;\n top: 0;\n transform: translateX(100%);\n transition: transform 0.5s ease-in-out;\n border-radius: 0;\n }\n\n .biel-bot-content.fullscreen {\n width: 100vw;\n max-width: 100vw;\n height: 100vh;\n max-height: 100vh;\n border-radius: 0;\n padding: 20px 25vw;\n left: 50%;\n top: 50%;\n max-width: 100vw;\n transform: translate(-50%, -50%);\n }\n}","import { Component, h, Listen, Prop, State } from '@stencil/core';\nimport { BielWebSocketService } from '../../services/biel-websocket-service';\nimport { BielService } from '../../services/biel-service';\n\n@Component({\n tag: 'biel-bot',\n styleUrl: 'biel-bot.css',\n shadow: true\n})\nexport class BielBot {\n\n // Define the component properties\n @Prop() modalPosition: string = 'center';\n @Prop() project: string = '';\n @Prop({ mutable: true, reflect: true }) showModal: boolean = false;\n @Prop() fetchData: boolean = true;\n @Prop() headerTitle: string = 'Company Name AI';\n @Prop() inputPlaceholderText: string = 'Type your message';\n @Prop() sendButtonText: string = 'Send';\n @Prop() hideExpandButton: boolean = false;\n @Prop() expandModal: boolean = false;\n @Prop() errorMessage404: string = \"Oops! We could not find the provided project ID.\";\n @Prop() errorMessage403: string = \"Oops! The request URL does not match the one defined for this project.\";\n @Prop() errorMessageDefault: string = \"Oops! Please try again later.\";\n @Prop() footerText: string = \"AI generated answers. Always verify the sources before using them.\";\n\n @State() isFullscreen: boolean = this.expandModal;\n @State() isLoading: boolean = false;\n @State() showPoweredBy: boolean = true;\n @State() welcomeMessage: string;\n @State() messages: { text: string, sender: 'user' | 'ai' }[] = [];\n\n @Listen('closeClicked', { target: 'body' })\n handleClose() {\n this.showModal = false;\n document.body.style.overflow = '';\n }\n @Listen('fullscreenClicked', { target: 'body' })\n handleFullscreenClicked() {\n this.isFullscreen = !this.isFullscreen;\n document.body.style.overflow = this.isFullscreen ? 'hidden' : '';\n }\n\n // Define the accesible and modificable divs in the screenshot\n modalContent: HTMLElement;\n webSocketService: BielWebSocketService;\n bielService: BielService;\n\n constructor() {\n this.webSocketService = new BielWebSocketService(this.project, this.errorMessageDefault);\n this.webSocketService.onMessage(this.handleIncomingMessage.bind(this));\n this.webSocketService.onLoadingStart(() => this.isLoading = true);\n this.webSocketService.onLoadingEnd(() => this.isLoading = false);\n }\n\n handleIncomingMessage(message: any) {\n this.messages = [...this.messages, { sender: message.from, text: message.message }];\n }\n\n async componentWillLoad() {\n if (this.fetchData) {\n this.bielService = new BielService(\n this.project,\n this.errorMessage404,\n this.errorMessage403,\n this.errorMessageDefault\n );\n const result = await this.bielService.getProjectDetails();\n\n if (typeof result === 'string') {\n this.welcomeMessage = result;\n } else {\n this.showPoweredBy = result.whitelabel;\n this.welcomeMessage = result.initialMessage;\n }\n if (this.welcomeMessage) {\n this.messages = [{ text: this.welcomeMessage, sender: 'ai' }];\n }\n }\n }\n\n handleMessageSent(event: CustomEvent<string>) {\n this.messages = [...this.messages, { text: event.detail, sender: 'user' }];\n this.webSocketService.sendMessage(event.detail);\n }\n\n render() {\n return (\n <div class='biel-bot-wrapper'>\n {this.showModal && (<div class=\"feedback-overlay\"></div>)}\n {this.showModal && (\n <div class={`biel-bot-content biel-bot-content--${this.modalPosition} ${this.showModal ? 'biel-bot-content--open' : ''} ${this.isFullscreen ? 'fullscreen' : ''}`} ref={el => (this.modalContent = el)}>\n <div class=\"biel-bot-header\">\n <biel-header headerTitle={this.headerTitle} project={this.project} showPoweredBy={this.showPoweredBy} hideExpandButton={this.hideExpandButton} fullscreen={this.isFullscreen}></biel-header>\n </div>\n <div class=\"biel-bot-body\">\n <biel-chat messages={this.messages} isFullscreen={this.isFullscreen} isLoading={this.isLoading}></biel-chat>\n <biel-input\n placeholderText={this.inputPlaceholderText}\n sendButtonText={this.sendButtonText}\n onMessageSent={(event) => this.handleMessageSent(event)}\n isDisabled={this.isLoading}>\n </biel-input>\n </div>\n <div class=\"biel-bot-footer\">\n {this.footerText}\n </div>\n </div>\n )}\n </div>\n );\n }\n}"],"version":3}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './p-7b8b1ac3.js';
|
|
2
|
+
|
|
3
|
+
const bielHeaderCss = ".biel-header{display:flex;padding-bottom:10px;color:var(--biel-header-text-color);border-bottom:1px solid var(--biel-header-border-color);flex-direction:column;text-align:center}.biel-header__title-container{display:flex;flex-direction:column;align-items:center;flex-grow:1}.biel-header__title{font-size:var(--biel-header-font-size);font-weight:var(--biel-header-font-weight)}.biel-header__powered-by{color:var(--biel-header-powered-by-text-color);padding-top:5px;font-size:12px;height:12px}.biel-header__powered-by a{color:var(--biel-header-powered-by-link-color);font-weight:500;text-decoration:none}.biel-header__icons{display:flex;justify-content:flex-end}.biel-header__icon{color:var(--biel-header-text-color);background:none;border:none;cursor:pointer;display:flex;padding:3px;padding-top:0;margin-left:5px}";
|
|
4
|
+
const BielHeaderStyle0 = bielHeaderCss;
|
|
5
|
+
|
|
6
|
+
const BielHeader = /*@__PURE__*/ proxyCustomElement(class BielHeader extends H {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.closeClicked = createEvent(this, "closeClicked", 7);
|
|
12
|
+
this.fullscreenClicked = createEvent(this, "fullscreenClicked", 7);
|
|
13
|
+
this.headerTitle = undefined;
|
|
14
|
+
this.project = undefined;
|
|
15
|
+
this.hideExpandButton = undefined;
|
|
16
|
+
this.showPoweredBy = true;
|
|
17
|
+
this.fullscreen = undefined;
|
|
18
|
+
this.isFullscreen = undefined;
|
|
19
|
+
}
|
|
20
|
+
componentWillLoad() {
|
|
21
|
+
this.isFullscreen = this.fullscreen;
|
|
22
|
+
}
|
|
23
|
+
handleCloseClick() {
|
|
24
|
+
this.closeClicked.emit();
|
|
25
|
+
}
|
|
26
|
+
handleFullscreenClick() {
|
|
27
|
+
this.isFullscreen = !this.isFullscreen;
|
|
28
|
+
this.fullscreenClicked.emit();
|
|
29
|
+
}
|
|
30
|
+
render() {
|
|
31
|
+
return (h("header", { key: 'fc462fd7a8aa72181e535f4569342a423e481df4', class: "biel-header" }, h("div", { key: 'bf12e4fa2b9f99b647fbcbe6441a53b3cee569e3', class: "biel-header__icons" }, !this.hideExpandButton && (h("button", { key: 'b44aee795fb5efbd169a01d225d5b61a6a8479c6', class: "biel-header__icon", onClick: () => this.handleFullscreenClick() }, this.isFullscreen ? (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-minimize-2" }, h("polyline", { points: "4 14 10 14 10 20" }), h("polyline", { points: "20 10 14 10 14 4" }), h("line", { x1: "14", y1: "10", x2: "21", y2: "3" }), h("line", { x1: "3", y1: "21", x2: "10", y2: "14" }))) : (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-maximize-2" }, h("polyline", { points: "15 3 21 3 21 9" }), h("polyline", { points: "9 21 3 21 3 15" }), h("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), h("line", { x1: "3", y1: "21", x2: "10", y2: "14" }))))), h("button", { key: 'd28e4abcc8f59fb6aa68e3cd9e969dff0657d2c7', class: "biel-header__icon", onClick: () => this.handleCloseClick() }, h("svg", { key: '4be80a2be30cff0a3471cb30e7be8fba533299e2', xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-x" }, h("line", { key: '8a772eb8e271d28ecde92fb28e72493eaad40a72', x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { key: 'df432a2d7722fe4b9d472bad197a3bf6bf76e529', x1: "6", y1: "6", x2: "18", y2: "18" })))), h("div", { key: '66d17239178ca6f6eb015e0db2b4d46101736e94', class: "biel-header__title-container" }, h("div", { key: '051e8fff6205f423a568e6ea10f800f069494ead', class: "biel-header__title" }, this.headerTitle), h("div", { key: '5a701624cf8c81e3747ecd577d00a3d927013311', class: "biel-header__powered-by" }, this.showPoweredBy && (h("span", { key: '5e52419e22f00f8d787414ec16aa2f0fa44388ab' }, "Powered by ", h("a", { key: '5af1a69e17666c3b8f3cfbba11b92dc9118d2fba', target: "_blank", href: "https://biel.ai" }, "biel.ai")))))));
|
|
32
|
+
}
|
|
33
|
+
static get style() { return BielHeaderStyle0; }
|
|
34
|
+
}, [1, "biel-header", {
|
|
35
|
+
"headerTitle": [1, "header-title"],
|
|
36
|
+
"project": [1],
|
|
37
|
+
"hideExpandButton": [4, "hide-expand-button"],
|
|
38
|
+
"showPoweredBy": [4, "show-powered-by"],
|
|
39
|
+
"fullscreen": [4],
|
|
40
|
+
"isFullscreen": [32]
|
|
41
|
+
}]);
|
|
42
|
+
function defineCustomElement() {
|
|
43
|
+
if (typeof customElements === "undefined") {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const components = ["biel-header"];
|
|
47
|
+
components.forEach(tagName => { switch (tagName) {
|
|
48
|
+
case "biel-header":
|
|
49
|
+
if (!customElements.get(tagName)) {
|
|
50
|
+
customElements.define(tagName, BielHeader);
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
} });
|
|
54
|
+
}
|
|
55
|
+
defineCustomElement();
|
|
56
|
+
|
|
57
|
+
export { BielHeader as B, defineCustomElement as d };
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=p-c94c3bd6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-c94c3bd6.js","mappings":"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","names":[],"sources":["src/components/biel-header/biel-header.css?tag=biel-header&encapsulation=shadow","src/components/biel-header/biel-header.tsx"],"sourcesContent":[".biel-header {\n display: flex;\n padding-bottom: 10px;\n color: var(--biel-header-text-color);\n border-bottom: 1px solid var(--biel-header-border-color);\n flex-direction: column;\n text-align: center;\n}\n\n.biel-header__title-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n}\n\n.biel-header__title {\n font-size: var(--biel-header-font-size);\n font-weight: var(--biel-header-font-weight);\n}\n\n.biel-header__powered-by {\n color: var(--biel-header-powered-by-text-color);\n padding-top: 5px;\n font-size: 12px;\n height: 12px;\n}\n\n.biel-header__powered-by a {\n color: var(--biel-header-powered-by-link-color);\n font-weight: 500;\n text-decoration: none;\n}\n\n.biel-header__icons {\n display: flex;\n justify-content: flex-end;\n}\n\n.biel-header__icon {\n color: var(--biel-header-text-color);\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n padding: 3px;\n padding-top: 0;\n margin-left: 5px;\n}\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'biel-header',\n styleUrl: 'biel-header.css',\n shadow: true\n})\nexport class BielHeader {\n @Prop() headerTitle: string;\n @Prop() project: string;\n @Prop() hideExpandButton: boolean;\n @Prop() showPoweredBy: boolean = true;\n @Prop() fullscreen: boolean;\n\n @State() isFullscreen: boolean;\n\n @Event() closeClicked: EventEmitter<void>;\n @Event() fullscreenClicked: EventEmitter<void>;\n\n componentWillLoad() {\n this.isFullscreen = this.fullscreen;\n }\n\n handleCloseClick() {\n this.closeClicked.emit();\n }\n\n handleFullscreenClick() {\n this.isFullscreen = !this.isFullscreen;\n this.fullscreenClicked.emit();\n }\n\n render() {\n return (\n <header class=\"biel-header\">\n <div class=\"biel-header__icons\">\n {!this.hideExpandButton && (\n <button class=\"biel-header__icon\" onClick={() => this.handleFullscreenClick()}>\n {this.isFullscreen ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-minimize-2\"><polyline points=\"4 14 10 14 10 20\"></polyline><polyline points=\"20 10 14 10 14 4\"></polyline><line x1=\"14\" y1=\"10\" x2=\"21\" y2=\"3\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line></svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-maximize-2\"><polyline points=\"15 3 21 3 21 9\"></polyline><polyline points=\"9 21 3 21 3 15\"></polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line></svg>\n )}\n </button>\n )}\n <button class=\"biel-header__icon\" onClick={() => this.handleCloseClick()}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-x\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg>\n </button>\n </div>\n <div class=\"biel-header__title-container\">\n <div class=\"biel-header__title\">{this.headerTitle}</div>\n <div class=\"biel-header__powered-by\">\n {this.showPoweredBy && (\n <span>Powered by <a target=\"_blank\" href=\"https://biel.ai\">biel.ai</a></span>\n )}\n </div>\n </div>\n </header>\n );\n }\n}"],"version":3}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-7b8b1ac3.js';
|
|
2
|
+
|
|
3
|
+
const bielTableCss = ".biel-table-container{margin:20px 0;overflow-x:auto;background-color:var(--biel-table-bg-color);border-radius:6px}.biel-table-container table{width:100%;border-collapse:collapse;overflow:hidden;color:var(--biel-table-content-text-color)}.biel-table-container th,.biel-table-container td{padding:8px;border:1px solid #303030}.biel-table-container th{background-color:var(--biel-table-th-bg-color)}.biel-table-container::-webkit-scrollbar{height:8px}.biel-table-container::-webkit-scrollbar-thumb:horizontal{background-color:var(--biel-chat-scrollbar-color);border-radius:10px;border:3px solid transparent}.biel-table-container::-webkit-scrollbar-thumb:hover{background-color:var(--biel-chat-scrollbar-hover-color)}";
|
|
4
|
+
const BielTableStyle0 = bielTableCss;
|
|
5
|
+
|
|
6
|
+
const BielTable = /*@__PURE__*/ proxyCustomElement(class BielTable extends H {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.tableData = undefined;
|
|
12
|
+
}
|
|
13
|
+
render() {
|
|
14
|
+
return (h("div", { key: '15cbaba67350b4cce43f122cbce944a8662792d7', class: "biel-table-container", innerHTML: this.tableData }));
|
|
15
|
+
}
|
|
16
|
+
static get style() { return BielTableStyle0; }
|
|
17
|
+
}, [1, "biel-table", {
|
|
18
|
+
"tableData": [1, "table-data"]
|
|
19
|
+
}]);
|
|
20
|
+
function defineCustomElement() {
|
|
21
|
+
if (typeof customElements === "undefined") {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const components = ["biel-table"];
|
|
25
|
+
components.forEach(tagName => { switch (tagName) {
|
|
26
|
+
case "biel-table":
|
|
27
|
+
if (!customElements.get(tagName)) {
|
|
28
|
+
customElements.define(tagName, BielTable);
|
|
29
|
+
}
|
|
30
|
+
break;
|
|
31
|
+
} });
|
|
32
|
+
}
|
|
33
|
+
defineCustomElement();
|
|
34
|
+
|
|
35
|
+
export { BielTable as B, defineCustomElement as d };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=p-f4016e6d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-f4016e6d.js","mappings":";;AAAA,MAAM,YAAY,GAAG,2sBAA2sB,CAAC;AACjuB,wBAAe,YAAY;;MCMd,SAAS;;;;;;;IAIpB,MAAM;QACJ,QACE,4DAAK,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAQ,EACnE;KACH;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/biel-table/biel-table.css?tag=biel-table&encapsulation=shadow","src/components/biel-table/biel-table.tsx"],"sourcesContent":[".biel-table-container {\n margin: 20px 0;\n overflow-x: auto;\n background-color: var(--biel-table-bg-color);\n border-radius: 6px;\n}\n\n.biel-table-container table {\n width: 100%;\n border-collapse: collapse;\n overflow: hidden;\n color: var(--biel-table-content-text-color);\n}\n\n.biel-table-container th,\n.biel-table-container td {\n padding: 8px;\n border: 1px solid #303030;\n}\n\n.biel-table-container th {\n background-color: var(--biel-table-th-bg-color);\n}\n\n.biel-table-container::-webkit-scrollbar {\n height: 8px;\n}\n\n.biel-table-container::-webkit-scrollbar-thumb:horizontal {\n background-color: var(--biel-chat-scrollbar-color);\n border-radius: 10px;\n border: 3px solid transparent;\n}\n\n.biel-table-container::-webkit-scrollbar-thumb:hover {\n background-color: var(--biel-chat-scrollbar-hover-color);\n}","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'biel-table',\n styleUrl: 'biel-table.css',\n shadow: true,\n})\nexport class BielTable {\n\n @Prop() tableData: string;\n\n render() {\n return (\n <div class=\"biel-table-container\" innerHTML={this.tableData}></div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-7b8b1ac3.js';
|
|
2
|
+
import { d as defineCustomElement$3 } from './p-8e08748d.js';
|
|
3
|
+
import { d as defineCustomElement$2 } from './p-f4016e6d.js';
|
|
4
|
+
import { d as defineCustomElement$1 } from './p-5a2466bd.js';
|
|
5
|
+
|
|
6
|
+
const bielChatCss = ".biel-chat-container{display:flex;flex-direction:column;max-height:50vh;overflow-y:auto;padding:10px}.biel-chat-container.fullscreen{height:calc(100vh - (200px + var(--biel-footer-font-size) + 12px));max-height:calc(100vh - (200px + var(--biel-footer-font-size) + 12px))}.biel-chat-container::-webkit-scrollbar{width:6px}.biel-chat-container::-webkit-scrollbar-thumb{background-color:var(--biel-chat-scrollbar-color);border-radius:10px;border:3px solid transparent}.biel-chat-container::-webkit-scrollbar-thumb:hover{background-color:var(--biel-chat-scrollbar-hover-color)}.loading-animation{display:flex;align-items:center;justify-content:center;height:40px;margin-top:10px}.loading-animation .dot{width:8px;height:8px;margin:0 5px;background-color:var(--biel-text-color);border-radius:50%;animation:bounce 1.2s infinite ease-in-out}.loading-animation .dot:nth-child(1){animation-delay:-0.32s}.loading-animation .dot:nth-child(2){animation-delay:-0.16s}.loading-animation .dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}@media screen and (min-width: 768px){.biel-chat-container.fullscreen{height:calc(100vh - (200px + 12px));max-height:calc(100vh - (200px + 12px))}}";
|
|
7
|
+
const BielChatStyle0 = bielChatCss;
|
|
8
|
+
|
|
9
|
+
const BielChat = /*@__PURE__*/ proxyCustomElement(class BielChat extends H {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.__registerHost();
|
|
13
|
+
this.__attachShadow();
|
|
14
|
+
this.offset = 0;
|
|
15
|
+
this.messages = [];
|
|
16
|
+
this.isFullscreen = undefined;
|
|
17
|
+
this.isLoading = false;
|
|
18
|
+
}
|
|
19
|
+
handleTextareaHeightChanged(event) {
|
|
20
|
+
this.offset += event.detail;
|
|
21
|
+
if (this.isFullscreen) {
|
|
22
|
+
this.adjustChatHeight();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
adjustChatHeight() {
|
|
26
|
+
const chatContainer = this.el.shadowRoot.querySelector('.biel-chat-container');
|
|
27
|
+
chatContainer.style.height = '';
|
|
28
|
+
if (this.isFullscreen) {
|
|
29
|
+
const previousHeight = parseInt(getComputedStyle(chatContainer).getPropertyValue('height'));
|
|
30
|
+
chatContainer.style.height = `${previousHeight - this.offset}px`;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
componentDidUpdate() {
|
|
34
|
+
this.scrollToBottom();
|
|
35
|
+
this.adjustChatHeight();
|
|
36
|
+
}
|
|
37
|
+
scrollToBottom() {
|
|
38
|
+
const container = this.el.shadowRoot.querySelector('.biel-chat-container');
|
|
39
|
+
if (container) {
|
|
40
|
+
container.scrollTop = container.scrollHeight;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
render() {
|
|
44
|
+
return (h("div", { key: '4bdea230464e58db6f7fb8726bdd5451be57d19c', class: `biel-chat-container ${this.isFullscreen ? 'fullscreen' : ''}` }, this.messages.map((message) => (h("biel-message", { text: message.text, sender: message.sender }))), this.isLoading && (h("div", { key: '148478d5d3dfbd23fa1f18599270bc8d501d3444', class: "loading-animation" }, h("div", { key: '1c95aeff506a63f5f47e7c89f62f032af60d63c9', class: "dot" }), h("div", { key: '505b689618bde42bfeaa362211086af52481d410', class: "dot" }), h("div", { key: '7f53dd97cdc665bb9747a39f128ede88838b7a6a', class: "dot" })))));
|
|
45
|
+
}
|
|
46
|
+
get el() { return this; }
|
|
47
|
+
static get style() { return BielChatStyle0; }
|
|
48
|
+
}, [1, "biel-chat", {
|
|
49
|
+
"messages": [16],
|
|
50
|
+
"isFullscreen": [4, "is-fullscreen"],
|
|
51
|
+
"isLoading": [4, "is-loading"],
|
|
52
|
+
"offset": [32]
|
|
53
|
+
}, [[16, "textareaHeightChanged", "handleTextareaHeightChanged"]]]);
|
|
54
|
+
function defineCustomElement() {
|
|
55
|
+
if (typeof customElements === "undefined") {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const components = ["biel-chat", "biel-message", "biel-table", "code-snippet"];
|
|
59
|
+
components.forEach(tagName => { switch (tagName) {
|
|
60
|
+
case "biel-chat":
|
|
61
|
+
if (!customElements.get(tagName)) {
|
|
62
|
+
customElements.define(tagName, BielChat);
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
case "biel-message":
|
|
66
|
+
if (!customElements.get(tagName)) {
|
|
67
|
+
defineCustomElement$3();
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
case "biel-table":
|
|
71
|
+
if (!customElements.get(tagName)) {
|
|
72
|
+
defineCustomElement$2();
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
case "code-snippet":
|
|
76
|
+
if (!customElements.get(tagName)) {
|
|
77
|
+
defineCustomElement$1();
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
} });
|
|
81
|
+
}
|
|
82
|
+
defineCustomElement();
|
|
83
|
+
|
|
84
|
+
export { BielChat as B, defineCustomElement as d };
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=p-fe8bcdeb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-fe8bcdeb.js","mappings":";;;;;AAAA,MAAM,WAAW,GAAG,+sCAA+sC,CAAC;AACpuC,uBAAe,WAAW;;MCMb,QAAQ;;;;;sBAEO,CAAC;wBAEmC,EAAE;;yBAEnC,KAAK;;IAKlC,2BAA2B,CAAC,KAA0B;QACpD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;IAED,gBAAgB;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAc,sBAAsB,CAAC,CAAC;QAC5F,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5F,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;SAClE;KACF;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,cAAc;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC3E,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;SAC9C;KACF;IAED,MAAM;QACJ,QACE,4DAAK,KAAK,EAAE,uBAAuB,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,EAAE,EAAE,IACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MACzB,oBAAc,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAiB,CAC1E,CAAC,EACD,IAAI,CAAC,SAAS,KACb,4DAAK,KAAK,EAAC,mBAAmB,IAC5B,4DAAK,KAAK,EAAC,KAAK,GAAO,EACvB,4DAAK,KAAK,EAAC,KAAK,GAAO,EACvB,4DAAK,KAAK,EAAC,KAAK,GAAO,CACnB,CACP,CACG,EACN;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/biel-chat/biel-chat.css?tag=biel-chat&encapsulation=shadow","src/components/biel-chat/biel-chat.tsx"],"sourcesContent":[".biel-chat-container {\n display: flex;\n flex-direction: column;\n max-height: 50vh;\n overflow-y: auto;\n padding: 10px;\n}\n\n.biel-chat-container.fullscreen {\n height: calc(100vh - (200px + var(--biel-footer-font-size) + 12px));\n max-height: calc(100vh - (200px + var(--biel-footer-font-size) + 12px));\n}\n\n.biel-chat-container::-webkit-scrollbar {\n width: 6px;\n}\n\n.biel-chat-container::-webkit-scrollbar-thumb {\n background-color: var(--biel-chat-scrollbar-color);\n border-radius: 10px;\n border: 3px solid transparent;\n}\n\n.biel-chat-container::-webkit-scrollbar-thumb:hover {\n background-color: var(--biel-chat-scrollbar-hover-color);\n}\n\n.loading-animation {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 40px;\n margin-top: 10px;\n}\n\n.loading-animation .dot {\n width: 8px;\n height: 8px;\n margin: 0 5px;\n background-color: var(--biel-text-color);\n border-radius: 50%;\n animation: bounce 1.2s infinite ease-in-out;\n}\n\n.loading-animation .dot:nth-child(1) {\n animation-delay: -0.32s;\n}\n\n.loading-animation .dot:nth-child(2) {\n animation-delay: -0.16s;\n}\n\n.loading-animation .dot:nth-child(3) {\n animation-delay: 0s;\n}\n\n@keyframes bounce {\n\n 0%,\n 80%,\n 100% {\n transform: scale(0);\n }\n\n 40% {\n transform: scale(1);\n }\n}\n\n@media screen and (min-width: 768px) {\n .biel-chat-container.fullscreen {\n height: calc(100vh - (200px + 12px));\n max-height: calc(100vh - (200px + 12px));\n }\n}","import { Component, Element, Prop, h, Listen, State } from '@stencil/core';\n\n@Component({\n tag: 'biel-chat',\n styleUrl: 'biel-chat.css',\n shadow: true,\n})\nexport class BielChat {\n\n @State() offset: number = 0;\n\n @Prop() messages: { text: string, sender: 'user' | 'ai' }[] = [];\n @Prop() isFullscreen: boolean;\n @Prop() isLoading: boolean = false;\n\n @Element() el: HTMLElement;\n\n @Listen('textareaHeightChanged', { target: 'body' })\n handleTextareaHeightChanged(event: CustomEvent<number>) {\n this.offset += event.detail;\n if (this.isFullscreen) {\n this.adjustChatHeight();\n }\n }\n\n adjustChatHeight() {\n const chatContainer = this.el.shadowRoot.querySelector<HTMLElement>('.biel-chat-container');\n chatContainer.style.height = '';\n if (this.isFullscreen) {\n const previousHeight = parseInt(getComputedStyle(chatContainer).getPropertyValue('height'));\n chatContainer.style.height = `${previousHeight - this.offset}px`;\n }\n }\n\n componentDidUpdate() {\n this.scrollToBottom();\n this.adjustChatHeight();\n }\n\n scrollToBottom() {\n const container = this.el.shadowRoot.querySelector('.biel-chat-container');\n if (container) {\n container.scrollTop = container.scrollHeight;\n }\n }\n\n render() {\n return (\n <div class={`biel-chat-container ${this.isFullscreen ? 'fullscreen' : ''}`}>\n {this.messages.map((message) => (\n <biel-message text={message.text} sender={message.sender}></biel-message>\n ))}\n {this.isLoading && (\n <div class=\"loading-animation\">\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"app-globals-0f993ce5.js","mappings":"AAAY,MAAC,aAAa,GAAG,MAAM;;;;","names":[],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["export const globalScripts = () => {};\n"],"version":3}
|