@bytebrain.ai/bytebrain-ui 0.0.7 → 0.0.9

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/dist/Bot.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ declare const Bot: () => React.JSX.Element;
18
+ export default Bot;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ interface ChatAppProps {
18
+ websocketHost?: string;
19
+ websocketPort?: string;
20
+ websocketEndpoint: string;
21
+ apikey: string;
22
+ }
23
+ declare const ChatApp: React.FC<ChatAppProps>;
24
+ export default ChatApp;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import "highlight.js/styles/github.css";
17
+ import React from 'react';
18
+ import { ReferenceItem } from "./References";
19
+ import Message from "./Message";
20
+ import UserTypes from "./UserTypes";
21
+ interface ChatMessageProps {
22
+ id: string;
23
+ chatHistory: Message[];
24
+ highlight: boolean;
25
+ userType: UserTypes;
26
+ text: string;
27
+ setQuestion: React.Dispatch<React.SetStateAction<string>>;
28
+ references: ReferenceItem[];
29
+ index: number;
30
+ }
31
+ declare const ChatMessage: React.FC<ChatMessageProps>;
32
+ export default ChatMessage;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ import './ChatPrompt.css';
18
+ interface ChatPromptProps {
19
+ title?: string;
20
+ defaultQuestion?: string;
21
+ websocketHost?: string;
22
+ websocketPort?: string;
23
+ websocketEndpoint: string;
24
+ apikey: string;
25
+ welcomeMessages: string[];
26
+ fullScreen?: boolean;
27
+ }
28
+ export declare const ChatPrompt: (props: ChatPromptProps) => React.JSX.Element;
29
+ export default ChatPrompt;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ReferenceItem } from './References';
17
+ import UserTypes from "./UserTypes";
18
+ export interface Message {
19
+ userType: UserTypes;
20
+ message: string;
21
+ completed: boolean;
22
+ references?: ReferenceItem[];
23
+ }
24
+ export default Message;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ interface PopupChatWindowProps {
18
+ visible: boolean;
19
+ onClose: () => void;
20
+ websocketHost?: string;
21
+ websocketPort?: string;
22
+ websocketEndpoint?: string;
23
+ apikey: string;
24
+ }
25
+ declare const PopupChatWindow: React.FC<PopupChatWindowProps>;
26
+ export default PopupChatWindow;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ export type ReferenceItem = {
18
+ page_url: string;
19
+ page_title: string;
20
+ };
21
+ interface ReferencesProps {
22
+ items?: ReferenceItem[];
23
+ }
24
+ export declare const References: React.FC<ReferencesProps>;
25
+ export default References;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ import './RelatedQuestions.css';
18
+ type QuestionItem = string;
19
+ interface RelatedQuestionsProps {
20
+ items?: QuestionItem[];
21
+ setQuestion: React.Dispatch<React.SetStateAction<string>>;
22
+ }
23
+ export declare const RelatedQuestions: React.FC<RelatedQuestionsProps>;
24
+ export default RelatedQuestions;
package/dist/User.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import React from 'react';
17
+ declare const User: () => React.JSX.Element;
18
+ export default User;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum UserTypes {
17
+ User = "user",
18
+ Bot = "bot"
19
+ }
20
+ export default UserTypes;
package/dist/index.d.ts CHANGED
@@ -1,10 +1,22 @@
1
- import FeedbackForm from "./FeedbackForm";
2
- import ThumbsDown from "./thumbs-down";
3
- import ThumbsUp from "./thumbs-up";
4
- import RelatedQuestions from "./ChatPrompt/RelatedQuestions";
5
- import References from "./ChatPrompt/References";
6
- import ChatMessage from "./ChatPrompt/ChatMessage";
7
- import ChatPrompt from "./ChatPrompt/ChatPrompt";
8
- import ChatApp from "./ChatPrompt/ChatApp";
9
- import PopupChatWindow from "./ChatPrompt/PopupChatWindow";
10
- export { FeedbackForm, ThumbsDown, ThumbsUp, RelatedQuestions, References, ChatMessage, ChatPrompt, ChatApp, PopupChatWindow };
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import RelatedQuestions from "./RelatedQuestions";
17
+ import References from "./References";
18
+ import ChatMessage from "./ChatMessage";
19
+ import ChatPrompt from "./ChatPrompt";
20
+ import ChatApp from "./ChatApp";
21
+ import PopupChatWindow from "./PopupChatWindow";
22
+ export { RelatedQuestions, References, ChatMessage, ChatPrompt, ChatApp, PopupChatWindow };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useState as t,useEffect as n,useRef as A}from"react";import r from"highlight.js";import o from"react-markdown";function a(e,t,n,A){return new(n||(n=Promise))((function(r,o){function a(e){try{s(A.next(e))}catch(e){o(e)}}function i(e){try{s(A.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,i)}s((A=A.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i=()=>e.createElement(e.Fragment,null,e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.2,stroke:"currentColor",className:"w-6 h-6"},e.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6.633 10.5c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75A2.25 2.25 0 0116.5 4.5c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23H5.904M14.25 9h2.25M5.904 18.75c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 01-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 10.203 4.167 9.75 5 9.75h1.053c.472 0 .745.556.5.96a8.958 8.958 0 00-1.302 4.665c0 1.194.232 2.333.654 3.375z"}))),s=()=>e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.2,stroke:"currentColor",className:"w-6 h-6"},e.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 15h2.25m8.024-9.75c.011.05.028.1.052.148.591 1.2.924 2.55.924 3.977a8.96 8.96 0 01-.999 4.125m.023-8.25c-.076-.365.183-.75.575-.75h.908c.889 0 1.713.518 1.972 1.368.339 1.11.521 2.287.521 3.507 0 1.553-.295 3.036-.831 4.398C20.613 14.547 19.833 15 19 15h-1.053c-.472 0-.745-.556-.5-.96a8.95 8.95 0 00.303-.54m.023-8.25H16.48a4.5 4.5 0 01-1.423-.23l-3.114-1.04a4.5 4.5 0 00-1.423-.23H6.504c-.618 0-1.217.247-1.605.729A11.95 11.95 0 002.25 12c0 .434.023.863.068 1.285C2.427 14.306 3.346 15 4.372 15h3.126c.618 0 .991.724.725 1.282A7.471 7.471 0 007.5 19.5a2.25 2.25 0 002.25 2.25.75.75 0 00.75-.75v-.633c0-.573.11-1.14.322-1.672.304-.76.93-1.33 1.653-1.715a9.04 9.04 0 002.86-2.4c.498-.634 1.226-1.08 2.032-1.08h.384"}));function l(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var A=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&A.firstChild?A.insertBefore(r,A.firstChild):A.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}l(".feedback-button {\n border-width: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 0;\n}\n");const g=A=>{const[r,o]=t(A.chatHistory),[l,g]=t(null),[c,d]=t(!1);n((()=>{o(A.chatHistory)}),[A]);const w=e=>a(void 0,void 0,void 0,(function*(){try{if(c)return;g(e);(yield fetch(A.baseHttpUrl+"/feedback/",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_history:r,is_useful:e})})).ok?(console.log("Feedback submitted successfully"),d(!0)):console.error("Failed to submit feedback")}catch(e){console.error("Error submitting feedback:",e)}}));return e.createElement("form",null,e.createElement("button",{type:"button",title:"It was helpful to me!",className:"feedback-button inline-block "+(c&&!l?"hidden":""),onClick:()=>w(!0),disabled:c},e.createElement(i,null)),e.createElement("button",{type:"button",title:"It didn't help me at all!",className:"feedback-button inline-block "+(c&&l?"hidden":""),onClick:()=>w(!1),disabled:c},e.createElement(s,null)))};l('*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-5 {\n bottom: 1.25rem;\n}\n.left-5 {\n left: 1.25rem;\n}\n.right-0 {\n right: 0px;\n}\n.right-5 {\n right: 1.25rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: flex;\n}\n.hidden {\n display: none;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-screen {\n height: 100vh;\n}\n.max-h-screen {\n max-height: 100vh;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-full {\n width: 100%;\n}\n.list-inside {\n list-style-position: inside;\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.justify-between {\n justify-content: space-between;\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.scroll-smooth {\n scroll-behavior: smooth;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-b-lg {\n border-bottom-right-radius: 0.5rem;\n border-bottom-left-radius: 0.5rem;\n}\n.rounded-t-lg {\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n.rounded-bl-none {\n border-bottom-left-radius: 0px;\n}\n.rounded-br-none {\n border-bottom-right-radius: 0px;\n}\n.rounded-tl-md {\n border-top-left-radius: 0.375rem;\n}\n.border-0 {\n border-width: 0px;\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity));\n}\n.bg-orange-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(251 146 60 / var(--tw-bg-opacity));\n}\n.p-5 {\n padding: 1.25rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-normal {\n font-weight: 400;\n}\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n.text-orange-600 {\n --tw-text-opacity: 1;\n color: rgb(234 88 12 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.underline {\n text-decoration-line: underline;\n}\n.placeholder-black::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(0 0 0 / var(--tw-placeholder-opacity));\n}\n.placeholder-gray-500::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(107 114 128 / var(--tw-placeholder-opacity));\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n#scroller * {\n overflow-anchor: none;\n}\n\n#anchor {\n overflow-anchor: auto;\n height: 1px;\n}\n\np code {\n border-radius: 3px;\n}\n\n.chat-message p {\n margin: 0;\n}\n\n.user-message p code {\n background-color: aliceblue;\n}\n\n.bot-message p code {\n background-color: cornflowerblue;\n}\n\n.bot-message li > code {\n background-color: cornflowerblue;\n}\n\nol {\n list-style-type: decimal;\n margin: 1.0em;\n}\n\nli {\n padding: 0.2em;\n}\n\n#ChatPrompt ::-webkit-scrollbar {\n display: none;\n}\n\npre {\n color: black;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.hover\\:scale-95:hover {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.hover\\:bg-gray-900:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity));\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:opacity-75:disabled {\n opacity: 0.75;\n}\n\n@media (min-width: 640px) {\n .sm\\:w-\\[100\\%\\] {\n width: 100%;\n }\n}\n\n@media (min-width: 768px) {\n .md\\:w-\\[100\\%\\] {\n width: 100%;\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:w-\\[50\\%\\] {\n width: 50%;\n }\n}\n\n@media (min-width: 1280px) {\n .xl\\:w-\\[40\\%\\] {\n width: 40%;\n }\n}\n\n@media (min-width: 1536px) {\n .\\32xl\\:w-\\[30\\%\\] {\n width: 30%;\n }\n}\n');function c(t){return e.createElement(e.Fragment,null," ",void 0!==t.items&&t.items.length>0?e.createElement("div",{className:"text-xs px-4 pt-2 rounded-br-none bg-blue-500 text-white"},e.createElement("h3",{className:"text-xs font-bold"},"Ask Related Questions:"),e.createElement("ol",{className:"list-inside custom-list"},t.items.map(((n,A)=>e.createElement("li",{key:A,className:"mr-2"},e.createElement("a",{className:"underline text-white text-sm",href:"#",onClick:e=>{t.setQuestion(e.target.textContent)}},n)))))):null)}function d(t){return e.createElement(e.Fragment,null,void 0!==t.items&&t.items.length>0?e.createElement("div",{className:"text-xs px-4 py-2 rounded-b-lg rounded-br-none bg-blue-500 text-white"},e.createElement("h3",{className:"text-xs font-bold"},"Discover Related Sources:"),e.createElement("ol",{className:"flex flex-wrap list-inside pl-0"},t.items.map(((t,n)=>e.createElement("li",{key:n,className:"mr-2"},e.createElement("a",{className:"underline text-white text-sm",href:t.page_url},t.page_title)))))):null)}l(".custom-list {\n\n\n padding-left: 0.5rem;\n\n\n margin: 0px\n}\n\n\n");l("pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em\n}\ncode.hljs {\n padding: 3px 5px\n}\n/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/\n.hljs {\n color: #24292e;\n background: #ffffff\n}\n.hljs-doctag,\n.hljs-keyword,\n.hljs-meta .hljs-keyword,\n.hljs-template-tag,\n.hljs-template-variable,\n.hljs-type,\n.hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #d73a49\n}\n.hljs-title,\n.hljs-title.class_,\n.hljs-title.class_.inherited__,\n.hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #6f42c1\n}\n.hljs-attr,\n.hljs-attribute,\n.hljs-literal,\n.hljs-meta,\n.hljs-number,\n.hljs-operator,\n.hljs-variable,\n.hljs-selector-attr,\n.hljs-selector-class,\n.hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #005cc5\n}\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #032f62\n}\n.hljs-built_in,\n.hljs-symbol {\n /* prettylights-syntax-variable */\n color: #e36209\n}\n.hljs-comment,\n.hljs-code,\n.hljs-formula {\n /* prettylights-syntax-comment */\n color: #6a737d\n}\n.hljs-name,\n.hljs-quote,\n.hljs-selector-tag,\n.hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #22863a\n}\n.hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #24292e\n}\n.hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #005cc5;\n font-weight: bold\n}\n.hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #735c0f\n}\n.hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #24292e;\n font-style: italic\n}\n.hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #24292e;\n font-weight: bold\n}\n.hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #22863a;\n background-color: #f0fff4\n}\n.hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #b31d28;\n background-color: #ffeef0\n}\n.hljs-char.escape_,\n.hljs-link,\n.hljs-params,\n.hljs-property,\n.hljs-punctuation,\n.hljs-tag {\n /* purposely ignored */\n \n}");var w="data:image/png;base64,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";function m(t){const[A,a]=e.useState(t.chatHistory);let i;if(n((()=>{t.highlight&&"bot"===t.userType&&document.querySelectorAll("#"+t.id+" pre code").forEach((e=>{r.highlightElement(e)}))})),n((()=>{a(t.chatHistory)}),[t]),"user"===t.userType)i=e.createElement("div",{className:"w-full chat-message user-message text-base flex flex-row space-x-2",id:t.id},e.createElement("img",{src:"data:image/png;base64,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",alt:"User Profile",className:"w-6 h-6 rounded-full"}),e.createElement(o,{className:"px-4 py-2 rounded-lg rounded-bl-none bg-gray-300 text-gray-600"},t.text));else if("bot"===t.userType)if(String(t.text).includes("Related Questions:")){let n=t.text.split("Related Questions:"),r=(s=n[1].trim(),s.split(/\n/).filter((e=>e.length>0)).map((e=>e.trim())).filter((e=>/\d+|[*-]/.test(e)))).map((e=>function(e){return e.replace(/^\d+\.|[*-]\s*/,"")}(e)));i=e.createElement("div",{className:"w-full chat-message bot-message text-base flex flex-row space-x-2",id:t.id},e.createElement("img",{src:w,alt:"Robot Profile",className:"w-6 h-6 rounded-full"}),e.createElement("div",{className:"w-full"},e.createElement(o,{className:"px-4 py-2 space-y-2 rounded-t-lg bg-blue-600 text-white"},n[0]),e.createElement(c,{items:r,setQuestion:t.setQuestion}),e.createElement(d,{items:t.references})),e.createElement(g,{chatHistory:A.slice(1,t.index+1),baseHttpUrl:t.baseHttpUrl}))}else i=e.createElement("div",{className:"w-full chat-message bot-message text-base flex flex-row space-x-2",id:t.id},e.createElement("img",{src:w,alt:"Robot Profile",className:"w-6 h-6 rounded-full"}),e.createElement("div",{className:"w-full"},e.createElement(o,{className:"px-4 py-2 space-y-2 rounded-t-lg bg-blue-600 text-white"},t.text),e.createElement(d,{items:t.references})),e.createElement(g,{chatHistory:A.slice(1,t.index+1),baseHttpUrl:t.baseHttpUrl}));var s;return i}const p=t=>{const{title:n="ByteBrain ChatBot",defaultQuestion:A="Send your message",websocketHost:r,websocketPort:o,websocketEndpoint:a,welcomeMessages:i,fullScreen:s}=t,l=i.map((e=>({userType:"bot",message:e,completed:!0}))),[g,c]=e.useState(A),[d,w]=e.useState([function(e){const t=Math.floor(Math.random()*e.length);return e.splice(t,1)[0]}(l)]),p=r||window.location.hostname,k="80"===o?"":":"+o,h="80"===o?"wss://":"ws://",u=("80"===o?"https://":"http://")+p+k;const B=()=>{const e=new WebSocket(h+p+k+a);e.onopen=t=>{w((e=>e.concat([{userType:"user",message:g,completed:!0}])));const n=d.map((e=>e.message)).slice(1),A={question:g,history:n};e.send(JSON.stringify(A))},e.onmessage=function(e){const t=JSON.parse(e.data),n=t.token,A=t.references,r=t.completed;w((e=>{if(0===e.length||"user"===e[e.length-1].userType)return[...e,{userType:"bot",message:n,completed:r}];{const t=[...e];return t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{message:t[t.length-1].message+n,references:A,completed:r}),t}}))}};return e.createElement("div",{id:"ChatPrompt",className:"justify-between flex flex-col p-5 rounded-md bg-gray-100 max-h-screen "+(s?"h-screen":"")},e.createElement("h1",{className:"text-orange-600 text-3xl font-bold mb-6"},n),e.createElement("div",{id:"scroller",className:"flex flex-col space-y-4 overflow-y-scroll scroll-smooth"},d.map(((t,n)=>e.createElement(m,{key:n,id:"chat"+n,index:n,userType:t.userType,text:t.message,references:t.references,highlight:t.completed,chatHistory:d,baseHttpUrl:u,setQuestion:c}))),e.createElement("div",{id:"anchor"})),e.createElement("form",{onSubmit:e=>{e.preventDefault(),B(),e.target.reset(),c(A)},className:"flex bottom-5 left-5 right-5 h-10 mt-4"},e.createElement("input",{type:"text",id:"promptInput",onChange:e=>{c(e.target.value)},className:`w-full px-4 py-2 \n border-0\n rounded-md\n text-base\n text-blac\n bg-gray-200\n focus:outline-none\n font-sans\n font-normal\n ${g===A?"placeholder-gray-500":"placeholder-black"}\n `,placeholder:g}),e.createElement("button",{disabled:0!==d.length&&("user"==d[d.length-1].userType||("bot"==d[d.length-1].userType?!d[d.length-1].completed:void 0)),id:"generateBtn",type:"submit",className:"px-6 rounded-md border-0 bg-black text-base text-white hover:bg-gray-900 focus:outline-none disabled:opacity-75 disabled:cursor-not-allowed font-sans font-normal"},"Send")))};function k({visible:t,onClose:r,websocketHost:o,websocketPort:a,websocketEndpoint:i}){const s=A();((e,t)=>{const A=n=>{if("chat-button"===n.target.id)return null;e.current&&!e.current.contains(n.target)&&t()};n((()=>(document.addEventListener("click",A),()=>{document.removeEventListener("click",A)})))})(s,r);return e.createElement("div",{ref:s,id:"container",className:`fixed 2xl:w-[30%] xl:w-[40%] lg:w-[50%] md:w-[100%] sm:w-[100%] bottom-0 right-0 ${t?"block":"hidden"} `},e.createElement(p,{title:"ZIO Chat",defaultQuestion:"Write a question about ZIO!",websocketHost:o||"localhost",websocketPort:a||"8081",websocketEndpoint:i||"/chat",welcomeMessages:["🌟 Greetings from ZIO Chat! 🌟 Have questions about ZIO? Look no further! I'm here to be your ZIO guru. Whether you're a seasoned pro or just starting out, I've got answers tailored just for you. Fire away with your ZIO queries, and I'll hit you back with the best insights I've got. Let's dive into the world of ZIO together!","🔥 Ignite your ZIO journey with ZIO Chat! 🔥 Ready to unravel the intricacies of ZIO? As your trusty sidekick, I'm here to light the way. No matter if you're wandering through functional forests or traversing effectful landscapes, I've got answers to keep you on track. Your ZIO adventure starts here – ask me anything and let's explore together!","Hello! 😊 I'm your ZIO Chat Bot, designed to be your go-to resource for all things ZIO! Whether you're new to this powerful functional effect system or a seasoned pro, I'm here to assist you. ZIO empowers you to build concurrent and resilient applications in Scala, offering referential transparency, composable data types, type-safety, and more. So, go ahead and ask me anything about ZIO – I'm here to provide the answers you need! 🤖","Hi there! 👋 I'm ZIO Chat, your friendly neighborhood ZIO expert. I'm here to help you navigate the world of ZIO. Whether you're a seasoned pro or just starting out, fire away with your ZIO questions. I will hit you back with the best insights I've got. Let's dive into the world of ZIO together!","🎉 Hey there, ZIO aficionado! 🎉 Step into the ZIO wonderland with me as your guide. Whether you're a functional fanatic or just dipping your toes into the ZIO ecosystem, I'm here to make your journey smooth. Got ZIO questions? I've got answers! Let's navigate the ZIO universe together and unlock its infinite possibilities!","Hi, fellow coder! 🌟 Welcome to your ZIO adventure with the ZIO Chat Bot. 🚀 Let's master functional Scala together. From referential transparency to concurrent prowess, I've got your back. Ready to dive in? Your questions, my insights – let's conquer ZIO! 💡🤖"],fullScreen:!1}))}const h=n=>{const[A,r]=t(!1);return e.createElement(e.Fragment,null,e.createElement("button",{id:"chat-button",className:"fixed border-0 font-sans text-xl bg-orange-400 rounded-tl-md text-black px-3 py-2 hover:scale-95 transition text-ms bottom-0 right-0",onClick:()=>r(!0)},"ZIO Chat!"),e.createElement(k,{onClose:()=>r(!1),visible:A,websocketHost:n.websocketHost,websocketPort:n.websocketPort,websocketEndpoint:n.websocketEndpoint}))};export{h as ChatApp,m as ChatMessage,p as ChatPrompt,g as FeedbackForm,k as PopupChatWindow,d as References,c as RelatedQuestions,s as ThumbsDown,i as ThumbsUp};
1
+ import e,{useState as t,useEffect as n,useRef as r}from"react";import o from"highlight.js";import a from"react-markdown";function s(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}s(".custom-list {\n\n padding-left: 0.5rem;\n\n margin: 0px\n}\n\n\n");const i=({items:t,setQuestion:n})=>e.createElement(e.Fragment,null,t&&t.length>0?e.createElement("div",{className:"text-xs px-4 pt-2 rounded-br-none bg-blue-500 text-white"},e.createElement("h3",{className:"text-xs font-bold"},"Ask Related Questions:"),e.createElement("ol",{className:"list-inside custom-list"},t.map(((t,r)=>e.createElement("li",{key:r,className:"mr-2"},e.createElement("a",{className:"underline text-white text-sm hover:text-black",href:"#",onClick:e=>n(e.target.textContent)},t)))))):null),l=({items:t})=>e.createElement(e.Fragment,null,t&&t.length>0?e.createElement("div",{className:"text-xs px-4 py-2 rounded-b-lg rounded-br-none bg-blue-500 text-white"},e.createElement("h3",{className:"text-xs font-bold"},"Discover Related Sources:"),e.createElement("ol",{className:"flex flex-wrap list-inside pl-0"},t.map(((t,n)=>e.createElement("li",{key:n,className:"mr-2"},e.createElement("a",{className:"underline text-white text-sm hover:text-black",href:t.page_url},t.page_title)))))):null);s("pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em\n}\ncode.hljs {\n padding: 3px 5px\n}\n/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/\n.hljs {\n color: #24292e;\n background: #ffffff\n}\n.hljs-doctag,\n.hljs-keyword,\n.hljs-meta .hljs-keyword,\n.hljs-template-tag,\n.hljs-template-variable,\n.hljs-type,\n.hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #d73a49\n}\n.hljs-title,\n.hljs-title.class_,\n.hljs-title.class_.inherited__,\n.hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #6f42c1\n}\n.hljs-attr,\n.hljs-attribute,\n.hljs-literal,\n.hljs-meta,\n.hljs-number,\n.hljs-operator,\n.hljs-variable,\n.hljs-selector-attr,\n.hljs-selector-class,\n.hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #005cc5\n}\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #032f62\n}\n.hljs-built_in,\n.hljs-symbol {\n /* prettylights-syntax-variable */\n color: #e36209\n}\n.hljs-comment,\n.hljs-code,\n.hljs-formula {\n /* prettylights-syntax-comment */\n color: #6a737d\n}\n.hljs-name,\n.hljs-quote,\n.hljs-selector-tag,\n.hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #22863a\n}\n.hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #24292e\n}\n.hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #005cc5;\n font-weight: bold\n}\n.hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #735c0f\n}\n.hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #24292e;\n font-style: italic\n}\n.hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #24292e;\n font-weight: bold\n}\n.hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #22863a;\n background-color: #f0fff4\n}\n.hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #b31d28;\n background-color: #ffeef0\n}\n.hljs-char.escape_,\n.hljs-link,\n.hljs-params,\n.hljs-property,\n.hljs-punctuation,\n.hljs-tag {\n /* purposely ignored */\n \n}");const c=()=>e.createElement("svg",{stroke:"currentColor",className:"dark:fill-white w-8 h-8",width:"512",height:"512",strokeWidth:1.2,version:"1.1",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"m251.5 465.47c-2.2-0.79382-4.0658-1.4501-4.1462-1.4584-0.0804-8e-3 -11.213-14.603-24.738-32.433-13.526-17.83-25.783-33.355-27.239-34.5-2.5677-2.0197-3.6988-2.0819-37.881-2.0819-26.502 0-37.311-0.36376-43.615-1.4678-41.84-7.3275-73.739-38.446-83.067-81.032-1.0295-4.7003-1.3141-24.846-1.3141-93 0-87 0-87 2.3606-95.933 4.8879-18.497 12.559-32.605 24.787-45.587 9.2497-9.82 17.894-16.206 29.853-22.055 12.164-5.9487 22.475-8.7238 37-9.9582 14.341-1.2188 250.66-1.2188 265 0 14.525 1.2344 24.836 4.0095 37 9.9582 27.681 13.537 46.498 36.883 54.694 67.859 2.3061 8.7158 2.3061 8.7158 2.3061 95.716 0 91.914 0.0591 90.587-4.7047 105.5-6.7536 21.141-21.967 41.003-40.805 53.271-10.293 6.7034-17.59 10.036-29.49 13.469-8.8282 2.5465-9.7661 2.6072-49.147 3.1783-38.3 0.55544-40.249 0.67425-42.37 2.5822-1.2225 1.1-12.734 15.789-25.581 32.643-22.432 29.428-27.972 35.857-30.897 35.857-0.73782 0-1.9408 0.20627-2.6733 0.45837-0.73249 0.25211-3.1318-0.19112-5.3318-0.98494zm23.537-59.973c10.012-13.2 19.611-25.489 21.333-27.309s6.0438-4.7447 9.605-6.5c6.4748-3.1914 6.4748-3.1914 47.5-3.7939 45.163-0.66322 46.206-0.7918 60.055-7.4041 22.518-10.752 38.146-32.47 41.471-57.628 0.75544-5.7172 0.99241-33.69 0.74856-88.365-0.32659-73.226-0.50777-80.505-2.1398-85.964-7.6316-25.527-24.675-43.653-49.109-52.228-8-2.8078-8-2.8078-148.5-2.8078s-140.5 0-148.5 2.8078c-24.041 8.4376-41.205 26.366-48.686 50.854-2.2293 7.2975-2.2438 7.7874-2.5808 87.339-0.23126 54.58 0.01227 82.658 0.76639 88.365 3.3308 25.208 18.878 46.839 41.391 57.59 13.937 6.655 14.937 6.7788 60.109 7.4426 41 0.60245 41 0.60245 46.5 3.1926 3.025 1.4246 6.9095 3.7825 8.6322 5.2398 1.7227 1.4573 11.848 14.126 22.5 28.154 10.652 14.027 19.668 25.394 20.035 25.26 0.36691-0.13406 8.8583-11.044 18.87-24.244zm-113.54-158.39c-8.0155-2.0869-15.285-7.9248-19.132-15.365-0.91824-1.7757-1.8816-6.1929-2.1409-9.8161-0.7674-10.725 4.3824-20.221 13.724-25.305 18.472-10.054 40.351 2.8809 40.386 23.877 0.0238 14.063-10.461 25.41-24.837 26.879-2.75 0.28104-6.35 0.15949-8-0.2701zm87.306-0.4596c-4.9404-1.3809-6.2234-2.1606-11.678-7.0974-8.3404-7.5483-10.677-21.444-5.3274-31.684 4.7261-9.0467 14.275-14.868 24.388-14.868 19.531 0 32.73 20.777 24.459 38.5-2.5529 5.4705-9.0324 11.927-14.09 14.04-4.9964 2.0876-12.56 2.5602-17.752 1.1091zm88.987-3e-3c-6.3455-1.7731-12.159-5.9747-15.733-11.371-12.497-18.867 2.493-44.045 25.008-42.003 15.041 1.3638 25.769 13.807 24.706 28.656-0.25923 3.6232-1.2226 8.0404-2.1409 9.8161-6.175 11.941-19.731 18.285-31.84 14.902z"})),d=()=>e.createElement("svg",{version:"1.1",stroke:"currentColor",className:"dark:fill-white w-8 h-8 pt-2",width:"546.1333",height:"546.1333",viewBox:"0 0 546.1333 546.1333",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M 248.18949,545.01565 C 140.78277,536.1654 43.347437,457.67748 12.625464,354.27462 -19.122727,256.23986 11.148578,141.59748 88.05005,72.75365 170.6778,-6.3870784 305.25108,-22.727519 404.55416,34.075212 c 90.71756,48.808052 148.5915,152.240698 140.72412,255.265468 -4.721,117.18135 -94.83362,223.7082 -209.03208,249.29175 -28.74608,6.97865 -58.63168,7.99917 -88.05671,6.38322 z m 59.01049,-33.47524 c 44.11214,-6.14054 85.94851,-25.33589 120.34908,-53.46875 -7.50443,-76.23751 -78.33803,-139.58196 -155.13069,-137.4082 -75.87947,-1.11955 -147.39136,61.9662 -153.18566,137.95022 51.92152,43.01255 121.21529,62.41741 187.96727,52.92673 z M 95.23624,417.23455 c 17.04457,-53.94473 60.52333,-97.03721 112.76027,-117.54871 -38.16232,-27.24165 -58.08238,-77.27541 -46.17288,-123.04103 13.97512,-63.62214 88.10784,-103.424302 148.92029,-80.419223 54.27562,17.927063 88.7395,80.021723 73.57777,135.512803 -6.24704,27.51678 -24.27076,50.99914 -46.18838,68.09848 55.60255,21.00409 99.9566,68.92585 115.77754,126.329 11.90975,-0.3504 25.78141,-30.94799 34.70002,-45.64418 C 534.17056,292.25875 516.88138,176.40132 446.32219,106.18998 376.66755,30.895815 256.59496,9.9644804 165.64534,57.566388 73.710219,101.90396 17.392768,209.22775 35.202048,310.08314 c 6.457967,44.14691 25.903239,86.34538 55.464613,119.76818 1.924099,-4.05191 3.127315,-8.38542 4.569579,-12.61677 z m 188.6392,-130.78572 c 51.57064,-4.49807 86.2598,-64.54174 66.52297,-111.81618 -17.42381,-48.17969 -82.7984,-69.2237 -124.13766,-38.07569 -43.14422,27.09101 -48.02204,94.62224 -9.98242,128.12649 17.76999,16.83784 43.29836,25.47902 67.59711,21.76538 z"}));var h;!function(e){e.User="user",e.Bot="bot"}(h||(h={}));var p=h;const m=r=>{const[s,h]=t(r.chatHistory);n((()=>{r.highlight&&r.userType===p.Bot&&document.querySelectorAll("#"+r.id+" pre code").forEach((e=>{o.highlightElement(e)}))}),[r.highlight,r.userType,r.id]),n((()=>{h(r.chatHistory)}),[r]);let m=null;if(r.userType===p.User)m=e.createElement("div",{className:"w-full chat-message user-message text-base flex flex-row space-x-2",id:r.id},e.createElement(d,null),e.createElement(a,{className:"px-4 py-2 rounded-lg rounded-bl-none bg-gray-300 text-gray-600"},r.text));else if(r.userType===p.Bot)if(String(r.text).includes("Related Questions:")){const t=r.text.split("Related Questions:"),n=(g=t[1].trim(),g.split(/\n/).filter((e=>e.length>0)).map((e=>e.trim())).filter((e=>/\d+|[*-]/.test(e)))).map((e=>function(e){return e.replace(/^\d+\.|[*-]\s*/,"")}(e)));m=e.createElement("div",{className:"w-full chat-message bot-message text-base flex flex-row space-x-2",id:r.id},e.createElement(c,null),e.createElement("div",{className:"w-full"},e.createElement(a,{className:"px-4 py-2 space-y-2 rounded-t-lg bg-blue-600 text-white"},t[0]),e.createElement(i,{items:n,setQuestion:r.setQuestion}),e.createElement(l,{items:r.references})))}else m=e.createElement("div",{className:"w-full chat-message bot-message text-base flex flex-row space-x-2",id:r.id},e.createElement(c,null),e.createElement("div",{className:"w-full"},e.createElement(a,{className:"px-4 py-2 space-y-2 rounded-t-lg bg-blue-600 text-white"},r.text),e.createElement(l,{items:r.references})));var g;return m};s('*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-5 {\n bottom: 1.25rem;\n}\n.left-5 {\n left: 1.25rem;\n}\n.right-0 {\n right: 0px;\n}\n.right-5 {\n right: 1.25rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.block {\n display: block;\n}\n.flex {\n display: flex;\n}\n.hidden {\n display: none;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-screen {\n height: 100vh;\n}\n.max-h-screen {\n max-height: 100vh;\n}\n.w-8 {\n width: 2rem;\n}\n.w-full {\n width: 100%;\n}\n.list-inside {\n list-style-position: inside;\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.justify-between {\n justify-content: space-between;\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.scroll-smooth {\n scroll-behavior: smooth;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-b-lg {\n border-bottom-right-radius: 0.5rem;\n border-bottom-left-radius: 0.5rem;\n}\n.rounded-t-lg {\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n.rounded-bl-none {\n border-bottom-left-radius: 0px;\n}\n.rounded-br-none {\n border-bottom-right-radius: 0px;\n}\n.rounded-tl-md {\n border-top-left-radius: 0.375rem;\n}\n.border-0 {\n border-width: 0px;\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity));\n}\n.bg-orange-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(251 146 60 / var(--tw-bg-opacity));\n}\n.p-5 {\n padding: 1.25rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-normal {\n font-weight: 400;\n}\n.text-\\[red\\] {\n --tw-text-opacity: 1;\n color: rgb(255 0 0 / var(--tw-text-opacity));\n}\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.underline {\n text-decoration-line: underline;\n}\n.placeholder-black::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(0 0 0 / var(--tw-placeholder-opacity));\n}\n.placeholder-gray-500::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(107 114 128 / var(--tw-placeholder-opacity));\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n#scroller * {\n overflow-anchor: none;\n}\n\n#anchor {\n overflow-anchor: auto;\n height: 1px;\n}\n\np code {\n border-radius: 3px;\n}\n\n.chat-message p {\n margin: 0;\n}\n\n.user-message p code {\n background-color: aliceblue;\n}\n\n.bot-message p code {\n background-color: cornflowerblue;\n}\n\n.bot-message li > code {\n background-color: cornflowerblue;\n}\n\nol {\n list-style-type: decimal;\n margin: 1.0em;\n}\n\nli {\n padding: 0.2em;\n}\n\n#ChatPrompt ::-webkit-scrollbar {\n display: none;\n}\n\npre {\n color: black;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.hover\\:scale-95:hover {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.hover\\:bg-gray-900:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity));\n}\n\n.hover\\:text-black:hover {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:opacity-75:disabled {\n opacity: 0.75;\n}\n\n:is([data-theme="dark"] .dark\\:bg-\\[\\#242526\\]) {\n --tw-bg-opacity: 1;\n background-color: rgb(36 37 38 / var(--tw-bg-opacity));\n}\n\n:is([data-theme="dark"] .dark\\:bg-\\[\\#2b2e30\\]) {\n --tw-bg-opacity: 1;\n background-color: rgb(43 46 48 / var(--tw-bg-opacity));\n}\n\n:is([data-theme="dark"] .dark\\:fill-white) {\n fill: #fff;\n}\n\n:is([data-theme="dark"] .dark\\:text-white) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n:is([data-theme="dark"] .dark\\:placeholder-white)::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(255 255 255 / var(--tw-placeholder-opacity));\n}\n\n@media (min-width: 640px) {\n .sm\\:w-\\[100\\%\\] {\n width: 100%;\n }\n}\n\n@media (min-width: 768px) {\n .md\\:w-\\[100\\%\\] {\n width: 100%;\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:w-\\[50\\%\\] {\n width: 50%;\n }\n}\n\n@media (min-width: 1280px) {\n .xl\\:w-\\[40\\%\\] {\n width: 40%;\n }\n}\n\n@media (min-width: 1536px) {\n .\\32xl\\:w-\\[30\\%\\] {\n width: 30%;\n }\n}\n');const g="bytebrain-session",w=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;let u;function b(){const e="undefined"!=typeof window?window.crypto:void 0;if(e&&"function"==typeof e.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Array.from(t,(e=>e.toString(16).padStart(2,"0")));return[n.slice(0,4),n.slice(4,6),n.slice(6,8),n.slice(8,10),n.slice(10)].map((e=>e.join(""))).join("-")}const y=t=>{const{title:n="ByteBrain ChatBot",defaultQuestion:r="Send your message",websocketHost:o,websocketPort:a,websocketEndpoint:s,apikey:i,welcomeMessages:l,fullScreen:c}=t,d=l.map((e=>({userType:p.Bot,message:e,completed:!0}))),[h,y]=e.useState(r),[f,x]=e.useState([function(e){const t=Math.floor(Math.random()*e.length);return e.splice(t,1)[0]}(d)]),k=o||window.location.hostname,v="80"===a?"":":"+a,j="80"===a?"wss://":"ws://";const E=e=>x((t=>t.concat([{userType:p.Bot,message:e,completed:!0}]))),I=()=>{const e=new WebSocket(j+k+v+s+"/"+i+"?session="+function(){try{const e=window.sessionStorage.getItem(g);if(e&&w.test(e))return e;const t=b();return window.sessionStorage.setItem(g,t),t}catch(e){return u=u||b(),u}}());let t=!1;e.onopen=t=>{x((e=>e.concat([{userType:p.User,message:h,completed:!0}])));const n=f.map((e=>e.message)).slice(1),r={question:h,history:n};e.send(JSON.stringify(r))},e.onmessage=function(e){const n=JSON.parse(e.data);if(n.error)return t=!0,void E(String(n.error));const r=n.token,o=n.references,a=n.completed;a&&(t=!0),x((e=>{if(0===e.length||e[e.length-1].userType===p.User)return[...e,{userType:p.Bot,message:r,completed:a}];{const t=[...e];return t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{message:t[t.length-1].message+r,references:o,completed:a}),t}}))},e.onclose=()=>{t||(t=!0,E("The connection was closed before an answer arrived. Please try again."))}};return e.createElement("div",{id:"ChatPrompt",className:"dark:bg-[#242526] justify-between flex flex-col p-5 rounded-md bg-gray-100 max-h-screen "+(c?"h-screen":"")},e.createElement("h1",{className:"text-[red] text-3xl font-bold mb-6"},n),e.createElement("div",{id:"scroller",className:"flex flex-col space-y-4 overflow-y-scroll scroll-smooth"},f.map(((t,n)=>e.createElement(m,{key:n,id:"chat"+n,index:n,userType:t.userType,text:t.message,references:t.references,highlight:t.completed,chatHistory:f,setQuestion:y}))),e.createElement("div",{id:"anchor"})),e.createElement("form",{onSubmit:e=>{e.preventDefault(),I(),e.target.reset(),y(r)},className:"flex bottom-5 left-5 right-5 h-10 mt-4"},e.createElement("input",{type:"text",id:"promptInput",onChange:e=>{y(e.target.value)},className:`w-full px-4 py-2 \n border-0\n rounded-md\n text-base\n text-black\n dark:text-white\n bg-gray-200\n dark:bg-[#2b2e30]\n focus:outline-none\n font-sans\n font-normal\n ${h===r?"placeholder-gray-500":"placeholder-black dark:placeholder-white"}\n `,placeholder:h}),e.createElement("button",{disabled:0!==f.length&&(f[f.length-1].userType==p.User||(f[f.length-1].userType==p.Bot?!f[f.length-1].completed:void 0)),id:"generateBtn",type:"submit",className:"px-6 rounded-md border-0 bg-black text-base text-white hover:bg-gray-900 focus:outline-none disabled:opacity-75 disabled:cursor-not-allowed font-sans font-normal"},"Send")))},f=({visible:t,onClose:o,websocketHost:a,websocketPort:s,websocketEndpoint:i,apikey:l})=>{const c=r(null);((e,t)=>{const r=n=>{var r;if("chat-button"===(null===(r=n.target)||void 0===r?void 0:r.id))return null;e.current&&!e.current.contains(n.target)&&t()};n((()=>(document.addEventListener("click",r),()=>{document.removeEventListener("click",r)})),[t,e])})(c,o);return e.createElement("div",{ref:c,id:"container",className:`fixed 2xl:w-[30%] xl:w-[40%] lg:w-[50%] md:w-[100%] sm:w-[100%] bottom-0 right-0 ${t?"block":"hidden"} `},e.createElement(y,{title:"ZIO Chat",defaultQuestion:"Write a question about ZIO!",websocketHost:a||"localhost",websocketPort:s||"8081",websocketEndpoint:i||"/chat",apikey:l,welcomeMessages:["🌟 Greetings from ZIO Chat! 🌟 Have questions about ZIO? Look no further! I'm here to be your ZIO guru. Whether you're a seasoned pro or just starting out, I've got answers tailored just for you. Fire away with your ZIO queries, and I'll hit you back with the best insights I've got. Let's dive into the world of ZIO together!","🔥 Ignite your ZIO journey with ZIO Chat! 🔥 Ready to unravel the intricacies of ZIO? As your trusty sidekick, I'm here to light the way. No matter if you're wandering through functional forests or traversing effectful landscapes, I've got answers to keep you on track. Your ZIO adventure starts here – ask me anything and let's explore together!","Hello! 😊 I'm your ZIO Chat Bot, designed to be your go-to resource for all things ZIO! Whether you're new to this powerful functional effect system or a seasoned pro, I'm here to assist you. ZIO empowers you to build concurrent and resilient applications in Scala, offering referential transparency, composable data types, type-safety, and more. So, go ahead and ask me anything about ZIO – I'm here to provide the answers you need! 🤖","Hi there! 👋 I'm ZIO Chat, your friendly neighborhood ZIO expert. I'm here to help you navigate the world of ZIO. Whether you're a seasoned pro or just starting out, fire away with your ZIO questions. I will hit you back with the best insights I've got. Let's dive into the world of ZIO together!","🎉 Hey there, ZIO aficionado! 🎉 Step into the ZIO wonderland with me as your guide. Whether you're a functional fanatic or just dipping your toes into the ZIO ecosystem, I'm here to make your journey smooth. Got ZIO questions? I've got answers! Let's navigate the ZIO universe together and unlock its infinite possibilities!","Hi, fellow coder! 🌟 Welcome to your ZIO adventure with the ZIO Chat Bot. 🚀 Let's master functional Scala together. From referential transparency to concurrent prowess, I've got your back. Ready to dive in? Your questions, my insights – let's conquer ZIO! 💡🤖"],fullScreen:!1}))},x=n=>{const[r,o]=t(!1);return e.createElement(e.Fragment,null,e.createElement("button",{id:"chat-button",className:"fixed border-0 font-sans text-xl bg-orange-400 rounded-tl-md text-black px-3 py-2 hover:scale-95 transition text-ms bottom-0 right-0",onClick:()=>o(!0)},"ZIO Chat!"),e.createElement(f,{onClose:()=>o(!1),visible:r,websocketHost:n.websocketHost,websocketPort:n.websocketPort,websocketEndpoint:n.websocketEndpoint,apikey:n.apikey}))};export{x as ChatApp,m as ChatMessage,y as ChatPrompt,f as PopupChatWindow,l as References,i as RelatedQuestions};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../src/src/stories/thumbs-up.tsx","../src/src/stories/thumbs-down.tsx","../node_modules/style-inject/dist/style-inject.es.js","../src/src/stories/FeedbackForm.tsx","../src/src/stories/ChatPrompt/RelatedQuestions.tsx","../src/src/stories/ChatPrompt/References.tsx","../src/stories/ChatPrompt/bot.png","../src/src/stories/ChatPrompt/ChatMessage.tsx","../src/stories/ChatPrompt/user.png","../src/src/stories/ChatPrompt/ChatPrompt.tsx","../src/src/stories/ChatPrompt/PopupChatWindow.tsx","../src/src/stories/ChatPrompt/ChatApp.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,"var img = \"data:image/png;base64,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\";\n export default img;",null,"var img = \"data:image/png;base64,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\";\n export default img;",null,null,null],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","SuppressedError","ThumbsUp","React","createElement","Fragment","xmlns","fill","viewBox","strokeWidth","stroke","className","strokeLinecap","strokeLinejoin","d","ThumbsDown","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","FeedbackForm","props","chatHistory","setChatHistory","useState","isUseful","setIsUseful","feedbackSubmitted","setFeedbackSubmitted","useEffect","handleSubmit","fetch","baseHttpUrl","method","headers","body","JSON","stringify","chat_history","is_useful","ok","console","log","error","title","onClick","disabled","RelatedQuestions","undefined","items","length","map","item","index","key","href","event","setQuestion","target","textContent","References","page_url","page_title","img","ChatMessage","chatMessage","highlight","userType","querySelectorAll","id","forEach","el","hljs","highlightElement","src","alt","ReactMarkdown","text","String","includes","response","split","related_questions","string","trim","filter","line","l","test","replace","remove_number_fromHead","bot","references","slice","ChatPrompt","defaultQuestion","websocketHost","websocketPort","websocketEndpoint","welcomeMessages","fullScreen","greetings","m","message","completed","question","messages","setMessages","arr","randomIndex","Math","floor","random","splice","getRandom","host","window","location","hostname","port","protocol","handleClick","ws","WebSocket","onopen","concat","history","data","send","onmessage","parse","word","token","updatedMessages","Object","assign","onSubmit","preventDefault","reset","onChange","placeholder","PopupChatWindow","visible","onClose","useRef","callback","current","contains","addEventListener","removeEventListener","useClickOutside","ChatApp","isOpen","setIsOpen"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/src/stories/RelatedQuestions.tsx","../src/src/stories/References.tsx","../src/src/stories/Bot.tsx","../src/src/stories/User.tsx","../src/src/stories/UserTypes.tsx","../src/src/stories/ChatMessage.tsx","../src/src/stories/session.ts","../src/src/stories/ChatPrompt.tsx","../src/src/stories/PopupChatWindow.tsx","../src/src/stories/ChatApp.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","RelatedQuestions","items","setQuestion","React","Fragment","length","className","map","item","index","key","href","onClick","event","target","textContent","References","page_url","page_title","Bot","stroke","width","height","strokeWidth","version","viewBox","xmlns","d","User","UserTypes","UserTypes$1","ChatMessage","props","chatHistory","setChatHistory","useState","useEffect","highlight","userType","querySelectorAll","id","forEach","el","hljs","highlightElement","chatMessage","ReactMarkdown","text","String","includes","response","split","related_questions","string","trim","filter","line","l","test","replace","remove_number_fromHead","references","STORAGE_KEY","UUID","memoryId","newId","c","window","crypto","undefined","randomUUID","bytes","Uint8Array","getRandomValues","i","Math","floor","random","hex","Array","from","b","toString","padStart","slice","part","join","ChatPrompt","title","defaultQuestion","websocketHost","websocketPort","websocketEndpoint","apikey","welcomeMessages","fullScreen","greetings","m","message","completed","question","messages","setMessages","arr","randomIndex","splice","getRandom","host","location","hostname","port","protocol","showBotMessage","concat","handleClick","ws","WebSocket","stored","sessionStorage","getItem","setItem","e","getSessionId","finished","onopen","history","data","send","JSON","stringify","onmessage","result","parse","error","word","token","updatedMessages","Object","assign","onclose","onSubmit","preventDefault","reset","onChange","value","placeholder","disabled","PopupChatWindow","visible","onClose","useRef","callback","_a","current","contains","addEventListener","removeEventListener","useClickOutside","ChatApp","isOpen","setIsOpen"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright 2023-2024 ByteBrain AI
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare function getSessionId(): string;
17
+ export declare function resetSessionForTests(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytebrain.ai/bytebrain-ui",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "engines": {
5
5
  "node": ">=16.x"
6
6
  },
@@ -104,6 +104,7 @@
104
104
  "rollup-plugin-terser": "^7.0.2",
105
105
  "storybook": "^7.5.2",
106
106
  "storybook-addon-themes": "^6.1.0",
107
+ "storybook-dark-mode": "^3.0.1",
107
108
  "storybook-tailwind-dark-mode": "^1.0.22",
108
109
  "tailwindcss": "^3.3.5",
109
110
  "typescript": "^4.9.5",
package/README.md DELETED
@@ -1,70 +0,0 @@
1
- # Getting Started with Create React App
2
-
3
- This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
4
-
5
- ## Available Scripts
6
-
7
- In the project directory, you can run:
8
-
9
- ### `npm start`
10
-
11
- Runs the app in the development mode.\
12
- Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
13
-
14
- The page will reload when you make changes.\
15
- You may also see any lint errors in the console.
16
-
17
- ### `npm test`
18
-
19
- Launches the test runner in the interactive watch mode.\
20
- See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
21
-
22
- ### `npm run build`
23
-
24
- Builds the app for production to the `build` folder.\
25
- It correctly bundles React in production mode and optimizes the build for the best performance.
26
-
27
- The build is minified and the filenames include the hashes.\
28
- Your app is ready to be deployed!
29
-
30
- See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
31
-
32
- ### `npm run eject`
33
-
34
- **Note: this is a one-way operation. Once you `eject`, you can't go back!**
35
-
36
- If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
37
-
38
- Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
39
-
40
- You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
41
-
42
- ## Learn More
43
-
44
- You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
45
-
46
- To learn React, check out the [React documentation](https://reactjs.org/).
47
-
48
- ### Code Splitting
49
-
50
- This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
51
-
52
- ### Analyzing the Bundle Size
53
-
54
- This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
55
-
56
- ### Making a Progressive Web App
57
-
58
- This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
59
-
60
- ### Advanced Configuration
61
-
62
- This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
63
-
64
- ### Deployment
65
-
66
- This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
67
-
68
- ### `npm run build` fails to minify
69
-
70
- This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare const ChatApp: (props: any) => React.JSX.Element;
3
- export default ChatApp;
@@ -1,3 +0,0 @@
1
- import "highlight.js/styles/github.css";
2
- declare function ChatMessage(props: any): any;
3
- export default ChatMessage;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import './ChatPrompt.css';
3
- export declare const ChatPrompt: (props: any) => React.JSX.Element;
4
- export default ChatPrompt;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- export default function PopupChatWindow({ visible, onClose, websocketHost, websocketPort, websocketEndpoint }: {
3
- visible: any;
4
- onClose: any;
5
- websocketHost: any;
6
- websocketPort: any;
7
- websocketEndpoint: any;
8
- }): React.JSX.Element;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare function References(props: any): React.JSX.Element;
3
- export default References;
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import './ChatPrompt.css';
3
- import './RelatedQuestions.css';
4
- declare function RelatedQuestions(props: any): React.JSX.Element;
5
- export default RelatedQuestions;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import './FeedbackForm.css';
3
- export declare const FeedbackForm: (props: any) => React.JSX.Element;
4
- export default FeedbackForm;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare const InsertLink: () => React.JSX.Element;
3
- export default InsertLink;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const ThumbsDown: () => React.JSX.Element;
3
- export default ThumbsDown;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const ThumbsUp: () => React.JSX.Element;
3
- export default ThumbsUp;