chatbot-test-william
Version:
A flexible and customizable React chat component that supports context-aware conversations and document processing
2 lines • 23.9 kB
JavaScript
/*! For license information please see chatbot-test-william.umd.js.LICENSE.txt */
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("React"),require("ReactDOM")):"function"==typeof define&&define.amd?define(["React","ReactDOM"],n):"object"==typeof exports?exports.ChatbotTest=n(require("React"),require("ReactDOM")):e.ChatbotTest=n(e.React,e.ReactDOM)}(this,((e,n)=>(()=>{"use strict";var t={20:(e,n,t)=>{var r=t(883),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,c=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function s(e,n,t){var r,a={},s=null,u=null;for(r in void 0!==t&&(s=""+t),void 0!==n.key&&(s=""+n.key),void 0!==n.ref&&(u=n.ref),n)i.call(n,r)&&!l.hasOwnProperty(r)&&(a[r]=n[r]);if(e&&e.defaultProps)for(r in n=e.defaultProps)void 0===a[r]&&(a[r]=n[r]);return{$$typeof:o,type:e,key:s,ref:u,props:a,_owner:c.current}}n.Fragment=a,n.jsx=s,n.jsxs=s},56:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},72:e=>{var n=[];function t(e){for(var t=-1,r=0;r<n.length;r++)if(n[r].identifier===e){t=r;break}return t}function r(e,r){for(var a={},i=[],c=0;c<e.length;c++){var l=e[c],s=r.base?l[0]+r.base:l[0],u=a[s]||0,p="".concat(s," ").concat(u);a[s]=u+1;var d=t(p),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)n[d].references++,n[d].updater(f);else{var h=o(f,r);r.byIndex=c,n.splice(c,0,{identifier:p,updater:h,references:1})}i.push(p)}return i}function o(e,n){var t=n.domAPI(n);return t.update(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap&&n.supports===e.supports&&n.layer===e.layer)return;t.update(e=n)}else t.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var c=t(a[i]);n[c].references--}for(var l=r(e,o),s=0;s<a.length;s++){var u=t(a[s]);0===n[u].references&&(n[u].updater(),n.splice(u,1))}a=l}}},113:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},314:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",r=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),r&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),r&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var c=0;c<this.length;c++){var l=this[c][0];null!=l&&(i[l]=!0)}for(var s=0;s<e.length;s++){var u=[].concat(e[s]);r&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),t&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=t):u[2]=t),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),n.push(u))}},n}},338:(e,n,t)=>{var r=t(845);n.createRoot=r.createRoot,n.hydrateRoot=r.hydrateRoot},540:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},601:e=>{e.exports=function(e){return e[1]}},626:(e,n,t)=>{t.d(n,{A:()=>c});var r=t(601),o=t.n(r),a=t(314),i=t.n(a)()(o());i.push([e.id,"@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap);"]),i.push([e.id,'body {\n font-family: "Poppins", sans-serif;\n}\n\n.App {\n text-align: center;\n display: flex;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n background-color: #282c34;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.message-bubble {\n display: flex;\n border-radius: 0.25rem;\n padding: 0.5rem 1rem;\n max-width: 80%;\n margin-bottom: 2rem;\n}\n\n.message-bubble-user {\n background-color: #033E7D;\n margin-left: auto;\n color: #f7f8fa;\n}\n\n.message-bubble-ai {\n background-color: white;\n margin-right: auto;\n color: #000;\n}\n\n.message-prefix {\n margin-right: 0.5rem;\n}\n\n.message-content {\n white-space: pre-wrap;\n display: flex;\n flex-direction: column;\n}\n\n.chat-window {\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n position: absolute;\n bottom: 80px;\n right: 20px;\n border-radius: 10px;\n width: 400px;\n}\n\n.chat-window.light-theme {\n background-color: #fff;\n color: #000;\n}\n\n.chat-window.dark-theme {\n background-color: #000;\n color: #fff;\n}\n\n.chat-button {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background-color: #033E7D;\n border-radius: 50%;\n margin: 10px;\n border: none;\n cursor: pointer;\n font-size: 48px;\n color: white;\n}\n\n.form-container {\n display: flex;\n flex-direction: column;\n background-color: #033E7D;\n}\n\n.input-field {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 14px;\n resize: none;\n height: 32px !important;\n min-height: 32px !important;\n max-height: 96px;\n overflow-y: auto;\n line-height: 1.5;\n width: 100%;\n margin: 0;\n}\n\n.input-field:focus {\n height: 32px !important;\n min-height: 32px !important;\n}\n\n.submit-button {\n flex-shrink: 0;\n padding: 0.5rem 2rem;\n border-radius: 0.25rem;\n border: none;\n font-weight: 600;\n background-color: white;\n height: fit-content;\n align-self: center;\n color: #033E7D;\n}\n\n.chat-input {\n display: flex;\n gap: 8px;\n padding: 10px;\n align-items: center;\n}\n\n.chat-container {\n height: 400px;\n overflow: auto;\n margin: 10px;\n display: flex;\n flex-direction: column-reverse;\n}\n\n.chat-container::-webkit-scrollbar {\n display: none;\n}\n\n.chat-header {\n background-color: #033E7D;\n padding: 10px 20px;\n color: #fff;\n font-weight: bold;\n margin-bottom: 20px;\n}\n\n.theme-toggle-button {\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n color: #033E7D;\n}\n\n.icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n padding: 5px;\n background-color: #f0f0f0;\n}\n\n.icon-wrapper.dark-mode {\n background-color: #000;\n color: white;\n}\n\n.upload-button {\n padding: 4px 8px !important;\n font-size: 12px !important;\n cursor: pointer;\n}\n\n.upload-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.uploaded-file-name {\n padding: 4px 8px;\n border-radius: 4px;\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.dark-theme .uploaded-file-name {\n background-color: #374151;\n color: #fff;\n}\n',""]);const c=i},659:e=>{var n={};e.exports=function(e,t){var r=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(t)}},825:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var r="";t.supports&&(r+="@supports (".concat(t.supports,") {")),t.media&&(r+="@media ".concat(t.media," {"));var o=void 0!==t.layer;o&&(r+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),r+=t.css,o&&(r+="}"),t.media&&(r+="}"),t.supports&&(r+="}");var a=t.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(r,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},845:e=>{e.exports=n},848:(e,n,t)=>{e.exports=t(20)},883:n=>{n.exports=e}},r={};function o(e){var n=r[e];if(void 0!==n)return n.exports;var a=r[e]={id:e,exports:{}};return t[e](a,a.exports,o),a.exports}o.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return o.d(n,{a:n}),n},o.d=(e,n)=>{for(var t in n)o.o(n,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nc=void 0;var a={};o.r(a),o.d(a,{mountApp:()=>J});var i=o(848),c=o(883),l=o.n(c),s=o(338),u=o(72),p=o.n(u),d=o(825),f=o.n(d),h=o(659),m=o.n(h),g=o(56),v=o.n(g),b=o(540),y=o.n(b),x=o(113),w=o.n(x),j=o(626),O={};O.styleTagTransform=w(),O.setAttributes=v(),O.insert=m().bind(null,"head"),O.domAPI=f(),O.insertStyleElement=y(),p()(j.A,O),j.A&&j.A.locals&&j.A.locals;var k={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},E=c.createContext&&c.createContext(k),S=["attr","size","title"];function I(){return I=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},I.apply(this,arguments)}function z(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function M(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?z(Object(t),!0).forEach((function(n){var r,o,a,i;r=e,o=n,a=t[n],(o="symbol"==typeof(i=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o))?i:i+"")in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function P(e){return e&&e.map(((e,n)=>c.createElement(e.tag,M({key:n},e.attr),P(e.child))))}function D(e){return n=>c.createElement(C,I({attr:M({},e.attr)},n),P(e.child))}function C(e){var n=n=>{var t,{attr:r,size:o,title:a}=e,i=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(n.indexOf(r)>=0)continue;t[r]=e[r]}return t}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,S),l=o||n.size||"1em";return n.className&&(t=n.className),e.className&&(t=(t?t+" ":"")+e.className),c.createElement("svg",I({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,i,{className:t,style:M(M({color:e.color||n.color},n.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),a&&c.createElement("title",null,a),e.children)};return void 0!==E?c.createElement(E.Consumer,null,(e=>n(e))):n(k)}function T(e){return D({tag:"svg",attr:{t:"1569682613478",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM300 328c0-33.1 26.9-60 60-60s60 26.9 60 60-26.9 60-60 60-60-26.9-60-60z m372 248c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-60c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v60z m-8-188c-33.1 0-60-26.9-60-60s26.9-60 60-60 60 26.9 60 60-26.9 60-60 60zM799 864H225c-13.8 0-25 14.3-25 32v56c0 4.4 2.8 8 6.2 8h611.5c3.4 0 6.2-3.6 6.2-8v-56c0.1-17.7-11.1-32-24.9-32z"},child:[]}]})(e)}function N(e){return D({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M332.64 64.58C313.18 43.57 286 32 256 32c-30.16 0-57.43 11.5-76.8 32.38-19.58 21.11-29.12 49.8-26.88 80.78C156.76 206.28 203.27 256 256 256s99.16-49.71 103.67-110.82c2.27-30.7-7.33-59.33-27.03-80.6zM432 480H80a31 31 0 0 1-24.2-11.13c-6.5-7.77-9.12-18.38-7.18-29.11C57.06 392.94 83.4 353.61 124.8 326c36.78-24.51 83.37-38 131.2-38s94.42 13.5 131.2 38c41.4 27.6 67.74 66.93 76.18 113.75 1.94 10.73-.68 21.34-7.18 29.11A31 31 0 0 1 432 480z"},child:[]}]})(e)}var A=function(){return A=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},A.apply(this,arguments)};function R(e){var n,t,r="user"===e.message.role,o="message-bubble ".concat(r?"message-bubble-user":"message-bubble-ai"),a=r?null!==(n=e.humanIcon)&&void 0!==n?n:(0,i.jsx)(N,{}):null!==(t=e.aiIcon)&&void 0!==t?t:(0,i.jsx)(T,{});return(0,i.jsxs)("div",A({className:o},{children:[(0,i.jsx)("div",A({className:"message-prefix"},{children:a})),(0,i.jsx)("div",A({className:"message-content"},{children:(0,i.jsx)("span",{children:e.message.content})}))]}))}function _(e){return D({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z"},child:[]}]})(e)}function U(e,n){return t=this,r=void 0,a=function(){var t,r;return function(e,n){var t,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(l){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=n.call(e,i)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}}(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:n})})];case 1:if(!(t=o.sent()).ok)throw new Error("Failed to fetch response from backend");return[4,t.json()];case 2:return[2,o.sent().response];case 3:return r=o.sent(),console.error("Error fetching chatbot response:",r),[2,"I'm having trouble responding right now. Please try again later."];case 4:return[2]}}))},new((o=Promise)||(o=Promise))((function(e,n){function i(e){try{l(a.next(e))}catch(e){n(e)}}function c(e){try{l(a.throw(e))}catch(e){n(e)}}function l(n){var t;n.done?e(n.value):(t=n.value,t instanceof o?t:new o((function(e){e(t)}))).then(i,c)}l((a=a.apply(t,r||[])).next())}));var t,r,o,a}function H(e){return D({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 0 1-4.4 2.26 5.403 5.403 0 0 1-3.14-9.8c-.44-.06-.9-.1-1.36-.1z"},child:[]}]})(e)}function L(e){return D({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58a.996.996 0 0 0-1.41 0 .996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37a.996.996 0 0 0-1.41 0 .996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0a.996.996 0 0 0 0-1.41l-1.06-1.06zm1.06-10.96a.996.996 0 0 0 0-1.41.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36a.996.996 0 0 0 0-1.41.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"},child:[]}]})(e)}var q=function(){return q=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},q.apply(this,arguments)},B=function(e,n,t){if(t||2===arguments.length)for(var r,o=0,a=n.length;o<a;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return e.concat(r||Array.prototype.slice.call(n))};function F(e){var n=(0,c.useRef)(null),t=(0,c.useState)(!1),r=t[0],o=t[1],a=(0,c.useState)("light"),l=a[0],s=a[1],u=(0,c.useState)([]),p=u[0],d=u[1],f=(0,c.useState)(""),h=f[0],m=f[1],g=(0,c.useState)(!1),v=g[0],b=g[1];(0,c.useEffect)((function(){var e=window.matchMedia("(prefers-color-scheme: dark)"),n=function(e){return s(e.matches?"dark":"light")};return e.addEventListener("change",n),s(e.matches?"dark":"light"),function(){return e.removeEventListener("change",n)}}),[]);var y=window.innerWidth<=768,x={flex:1,flexDirection:"column",overflow:"hidden",backgroundColor:"dark"===l?"#333333":"white",color:"dark"===l?"#fff":"#000",position:"fixed",bottom:y?"160px":"100px",right:y?"60px":"40px",borderRadius:"10px",width:y?"90%":"400px"},w=e.endpoint,j=e.placeholder,O=e.aiIcon,k=e.humanIcon,E=e.chatIcon,S=e.titleText,I=e.initialMessage,z=(0,c.useState)({});return z[0],z[1],(0,c.useEffect)((function(){p.length||p.push({id:"initial",content:I||"Hi, how may I help you?",createdAt:new Date(Date.now()),role:"assistant"})}),[]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",q({className:"chat-button",onClick:function(){return o(!r)}},{children:null!=E?E:(0,i.jsx)(_,{})})),(0,i.jsxs)("div",q({style:x},{children:[r&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",q({className:"chat-header",style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},{children:[(0,i.jsx)("div",{children:S}),(0,i.jsx)("div",q({style:{display:"flex",gap:"8px",alignItems:"center"}},{children:(0,i.jsx)("button",q({onClick:function(){s((function(e){return"light"===e?"dark":"light"}))},className:"theme-toggle-button"},{children:(0,i.jsx)("div",q({className:"dark"===l?"icon-wrapper":"icon-wrapper dark-mode"},{children:"dark"===l?(0,i.jsx)(L,{}):(0,i.jsx)(H,{})}))}))}))]})),(0,i.jsx)("div",q({className:"chat-container"},{children:(0,i.jsx)("div",q({ref:n},{children:p.length>0?B([],p,!0).map((function(e,n){return(0,i.jsx)(R,{message:e,aiIcon:O,humanIcon:k},e.id)})):""}))}))]}),r&&(0,i.jsx)("form",q({onSubmit:function(e){return n=this,t=void 0,o=function(){var n,t,r,o,a;return function(e,n){var t,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(l){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=n.call(e,i)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,l])}}}(this,(function(i){switch(i.label){case 0:if(e.preventDefault(),""===h.trim())return[2];n={id:crypto.randomUUID(),content:h,createdAt:new Date(Date.now()),role:"user"},d((function(e){return B(B([],e,!0),[n],!1)})),m(""),b(!0),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,U(w,n.content)];case 2:return(t=i.sent())&&(r={id:"bot"+crypto.randomUUID(),content:t,createdAt:new Date(Date.now()),role:"assistant"},d((function(e){return B(B([],e,!0),[r],!1)}))),[3,5];case 3:return o=i.sent(),console.error("Error fetching chatbot response:",o),a={id:"bot-error"+crypto.randomUUID(),content:"I'm having trouble responding right now. Please try again later.",createdAt:new Date(Date.now()),role:"assistant"},d((function(e){return B(B([],e,!0),[a],!1)})),[3,5];case 4:return b(!1),[7];case 5:return[2]}}))},new((r=void 0)||(r=Promise))((function(e,a){function i(e){try{l(o.next(e))}catch(e){a(e)}}function c(e){try{l(o.throw(e))}catch(e){a(e)}}function l(n){var t;n.done?e(n.value):(t=n.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}l((o=o.apply(n,t||[])).next())}));var n,t,r,o},className:"form-container"},{children:(0,i.jsxs)("div",q({className:"chat-input"},{children:[(0,i.jsx)("textarea",{className:"input-field",value:h,placeholder:null!=j?j:"Type your message here...",onChange:function(e){m(e.target.value);var n=parseInt(window.getComputedStyle(e.target).lineHeight),t=e.target.scrollHeight;if(t>n&&t>32){var r=Math.min(t,96);e.target.style.height="".concat(r,"px")}else e.target.style.height="32px"},onKeyDown:function(e){if("Enter"===e.key&&!e.shiftKey){e.preventDefault();var n=e.currentTarget.form;n&&n.requestSubmit()}},rows:1,style:{height:"32px"}}),(0,i.jsx)("button",q({type:"submit",className:"submit-button"},{children:v?(0,i.jsx)("div",q({role:"status",className:"flex justify-center"},{children:(0,i.jsx)("span",{children:"Loading..."})})):"Send"}))]}))}))]}))]})}const W=function(e){var n=e.endpoint,t=e.uploadEndpoint,r=e.showUpload,o=e.aiIcon,a=e.titleText,c=e.placeholder,l=e.humanIcon,s=e.chatIcon;return(0,i.jsx)(F,{endpoint:n||"http://localhost:8000/chatbot",uploadEndpoint:t,showUpload:r,aiIcon:o,humanIcon:l,chatIcon:s,placeholder:c||"Ask a question...",titleText:a||"Chatbot"})};var G=function(){return G=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},G.apply(this,arguments)};function J(e){var n=document.getElementById("root");if(n){var t=G(G({},window.chatConfig),e);s.createRoot(n).render((0,i.jsx)(l().StrictMode,{children:(0,i.jsx)(W,{endpoint:t.endpoint,uploadEndpoint:t.uploadEndpoint,showUpload:t.showUpload,aiIcon:t.aiIcon,titleText:t.titleText,placeholder:t.placeholder,humanIcon:t.humanIcon,chatIcon:t.chatIcon})}))}else console.error('No <div id="root"></div> in the HTML.')}return a})()));