UNPKG

chat-assistant-dit

Version:

A lightweight, customizable chat assistant widget for web and React apps.

1 lines 7.36 kB
var n={56:(n,e,t)=>{n.exports=function(n){var e=t.nc;e&&n.setAttribute("nonce",e)}},72:n=>{var e=[];function t(n){for(var t=-1,o=0;o<e.length;o++)if(e[o].identifier===n){t=o;break}return t}function o(n,o){for(var a={},i=[],c=0;c<n.length;c++){var s=n[c],d=o.base?s[0]+o.base:s[0],u=a[d]||0,l="".concat(d," ").concat(u);a[d]=u+1;var p=t(l),f={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==p)e[p].references++,e[p].updater(f);else{var h=r(f,o);o.byIndex=c,e.splice(c,0,{identifier:l,updater:h,references:1})}i.push(l)}return i}function r(n,e){var t=e.domAPI(e);return t.update(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap&&e.supports===n.supports&&e.layer===n.layer)return;t.update(n=e)}else t.remove()}}n.exports=function(n,r){var a=o(n=n||[],r=r||{});return function(n){n=n||[];for(var i=0;i<a.length;i++){var c=t(a[i]);e[c].references--}for(var s=o(n,r),d=0;d<a.length;d++){var u=t(a[d]);0===e[u].references&&(e[u].updater(),e.splice(u,1))}a=s}}},113:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},314:n=>{n.exports=function(n){var e=[];return e.toString=function(){return this.map((function(e){var t="",o=void 0!==e[5];return e[4]&&(t+="@supports (".concat(e[4],") {")),e[2]&&(t+="@media ".concat(e[2]," {")),o&&(t+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),t+=n(e),o&&(t+="}"),e[2]&&(t+="}"),e[4]&&(t+="}"),t})).join("")},e.i=function(n,t,o,r,a){"string"==typeof n&&(n=[[null,n,void 0]]);var i={};if(o)for(var c=0;c<this.length;c++){var s=this[c][0];null!=s&&(i[s]=!0)}for(var d=0;d<n.length;d++){var u=[].concat(n[d]);o&&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),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),e.push(u))}},e}},365:(n,e,t)=>{t.d(e,{A:()=>c});var o=t(601),r=t.n(o),a=t(314),i=t.n(a)()(r());i.push([n.id,"#chat-widget-container {\n position: fixed;\n bottom: 20px;\n right: 20px;\n font-family: Arial, sans-serif;\n z-index: 10000;\n}\n\n/* Chat Bubble */\n.chat-button {\n background: #007bff;\n color: #fff;\n width: 56px;\n height: 56px;\n border-radius: 50%;\n font-size: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 4px 10px rgba(0,0,0,0.2);\n transition: background 0.3s ease;\n}\n\n.chat-button:hover {\n background: #0056b3;\n}\n\n/* Chat Window */\n.chat-box {\n position: absolute;\n bottom: 70px;\n right: 0;\n width: 320px;\n height: 420px;\n background: white;\n border-radius: 12px;\n box-shadow: 0 6px 18px rgba(0,0,0,0.3);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: all 0.3s ease;\n}\n\n.hidden {\n display: none;\n}\n\n.chat-header {\n background: #007bff;\n color: white;\n padding: 12px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.chat-messages {\n flex: 1;\n padding: 12px;\n overflow-y: auto;\n background: #f7f7f7;\n}\n\n.chat-message {\n margin-bottom: 10px;\n padding: 8px 10px;\n border-radius: 8px;\n max-width: 85%;\n}\n\n.chat-message.user {\n background: #d1e7ff;\n align-self: flex-end;\n}\n\n.chat-message.bot {\n background: #eaeaea;\n align-self: flex-start;\n}\n\n.chat-form {\n display: flex;\n border-top: 1px solid #ddd;\n}\n\n.chat-form input {\n flex: 1;\n padding: 10px;\n border: none;\n font-size: 14px;\n}\n\n.chat-form button {\n padding: 10px 16px;\n border: none;\n background: #007bff;\n color: white;\n cursor: pointer;\n}\n\n.chat-form button:hover {\n background: #0056b3;\n}\n",""]);const c=i},540:n=>{n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},601:n=>{n.exports=function(n){return n[1]}},659:n=>{var e={};n.exports=function(n,t){var o=function(n){if(void 0===e[n]){var t=document.querySelector(n);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}e[n]=t}return e[n]}(n);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}},825:n=>{n.exports=function(n){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=n.insertStyleElement(n);return{update:function(t){!function(n,e,t){var o="";t.supports&&(o+="@supports (".concat(t.supports,") {")),t.media&&(o+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(o+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),o+=t.css,r&&(o+="}"),t.media&&(o+="}"),t.supports&&(o+="}");var a=t.sourceMap;a&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),e.styleTagTransform(o,n,e.options)}(e,n,t)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}}},e={};function t(o){var r=e[o];if(void 0!==r)return r.exports;var a=e[o]={id:o,exports:{}};return n[o](a,a.exports,t),a.exports}t.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return t.d(e,{a:e}),e},t.d=(n,e)=>{for(var o in e)t.o(e,o)&&!t.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:e[o]})},t.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),t.nc=void 0;var o=t(72),r=t.n(o),a=t(825),i=t.n(a),c=t(659),s=t.n(c),d=t(56),u=t.n(d),l=t(540),p=t.n(l),f=t(113),h=t.n(f),m=t(365),v={};function b(){!function(n={}){if(document.getElementById("chat-widget-container"))return;const e=document.createElement("div");e.id="chat-widget-container",document.body.appendChild(e),e.innerHTML='\n <div class="chat-button" id="chat-toggle">&#128172;</div>\n\n <div class="chat-box hidden" id="chat-box">\n <div class="chat-header">\n <span>AI Assistant</span>\n <button id="chat-close">&times;</button>\n </div>\n <div class="chat-messages" id="chat-messages"></div>\n <form class="chat-form" id="chat-form">\n <input type="text" id="chat-input" placeholder="Type your message..." />\n <button type="submit">Send</button>\n </form>\n </div>\n ';const t=e.querySelector("#chat-toggle"),o=e.querySelector("#chat-box"),r=e.querySelector("#chat-close"),a=e.querySelector("#chat-form"),i=e.querySelector("#chat-input"),c=e.querySelector("#chat-messages");function s(n,e){const t=document.createElement("div");t.className="chat-message "+("You"===n?"user":"bot"),t.textContent=`${n}: ${e}`,c.appendChild(t),c.scrollTop=c.scrollHeight}t.addEventListener("click",(()=>{o.classList.remove("hidden"),c.dataset.welcomeShown||(s("Bot",n.welcomeMessage||"👋 Hello! How can I help you today?"),c.dataset.welcomeShown="true")})),r.addEventListener("click",(()=>o.classList.add("hidden"))),a.addEventListener("submit",(n=>{n.preventDefault();const e=i.value.trim();e&&(s("You",e),i.value="",setTimeout((()=>{s("Bot",`You said: "${e}"`)}),600))}))}()}v.styleTagTransform=h(),v.setAttributes=u(),v.insert=s().bind(null,"head"),v.domAPI=i(),v.insertStyleElement=p(),r()(m.A,v),m.A&&m.A.locals&&m.A.locals;export{b as initChatBot};