ondemand-react-chat-bot
Version:
OnDemandChatBot is a React library that provides an easy-to-use AI-powered chatbot component for your application. Built on top of the OnDemand platform, it allows full customization and seamless AI integration.
3 lines (2 loc) • 31.6 kB
JavaScript
;var e=require("react/jsx-runtime"),n=require("react");function r(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var t=r(n),o=function(){return o=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var o in n=arguments[r])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},o.apply(this,arguments)};function i(e,n,r,t){return new(r||(r=Promise))((function(o,i){function s(e){try{c(t.next(e))}catch(e){i(e)}}function a(e){try{c(t.throw(e))}catch(e){i(e)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof r?n:new r((function(e){e(n)}))).then(s,a)}c((t=t.apply(e,n||[])).next())}))}function s(e,n){var r,t,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(r=1,t&&(o=2&a[0]?t.return:a[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,a[1])).done)return o;switch(t=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,t=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=n.call(e,i)}catch(e){a=[6,e],t=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function a(e,n,r){if(r||2===arguments.length)for(var t,o=0,i=n.length;o<i;o++)!t&&o in n||(t||(t=Array.prototype.slice.call(n,0,o)),t[o]=n[o]);return e.concat(t||Array.prototype.slice.call(n))}"function"==typeof SuppressedError&&SuppressedError;var c=function(n){var r=n.color;return e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:r,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-send-horizontal",children:[e.jsx("path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z"}),e.jsx("path",{d:"M6 12h16"})]})},l=function(n){var r=n.color;return e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:r,"stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round",className:"lucide lucide-circle-x",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{d:"m15 9-6 6"}),e.jsx("path",{d:"m9 9 6 6"})]})},u=function(n){var r=n.color;return e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:r,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",className:"lucide lucide-bot",children:[e.jsx("path",{d:"M12 8V4H8"}),e.jsx("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),e.jsx("path",{d:"M2 14h2"}),e.jsx("path",{d:"M20 14h2"}),e.jsx("path",{d:"M15 13v2"}),e.jsx("path",{d:"M9 13v2"})]})},d={"Analyzing the prompt...":"We're carefully reviewing your request.","Re-analyzing the prompt...":"Checking again to ensure everything is accurate!","Analysis failed":"We couldn't process your request. Please try again with more details.","Execution plan created":"We've mapped out the next steps for you.","Retrieved the agents":"We've found the right tools to assist you.","Executing the agents...":"Processing your request now...","Agents execution completed":"All done! Here's what we found for you.","Agents execution failed":"We ran into an issue while working on your request. Please try again.","Execution log created":"Your request details have been recorded for reference.","Fulfilling the prompt...":"Almost there! We're putting everything together.","Fulfillment completed":"Success! Your request has been completed.","Fulfillment failed":"We hit a snag while finishing up. Please try again or reach out for help."},p=function(e,n){e((function(e){return a(a([],e,!0),[o({message:"",isFetching:!1,id:Date.now().toString(),author:"bot",status:"loading"},n)],!1)}))},f=function(e,n){e((function(e){return a(a([],e.slice(0,-1),!0),[o(o({},e[e.length-1]),"function"==typeof n?n(e[e.length-1]):n)],!1)}))},h=function(e){return"dev"===e?"https://gateway-dev.on-demand.io":"https://api.on-demand.io"};function m(e,n,r,t){return i(this,void 0,void 0,(function(){var o,i,a,c,l,u;return s(this,(function(s){switch(s.label){case 0:return s.trys.push([0,3,,4]),o={pluginIds:[],externalUserId:"1",contextMetadata:t},i=h(n),[4,fetch("".concat(i,"/chat/v1/sessions"),{method:"POST",headers:{"Content-Type":"application/json","x-bot-id":r,apikey:e},body:JSON.stringify(o)})];case 1:if(!(a=s.sent()).ok)throw new Error("HTTP error! status: ".concat(a.status));return[4,a.json()];case 2:return c=s.sent(),[2,null===(u=null==c?void 0:c.data)||void 0===u?void 0:u.id];case 3:throw l=s.sent(),console.error("Failed to generate session:",l),l;case 4:return[2]}}))}))}function g(e,n,r){return i(this,void 0,void 0,(function(){var t,o,i;return s(this,(function(s){switch(s.label){case 0:return s.trys.push([0,3,,4]),t=h(r),[4,fetch("".concat(t,"/config/v1/public/embedded/chatbot/").concat(n),{method:"GET",headers:{"Content-Type":"application/json","x-bot-id":n,apikey:e}})];case 1:if(!(o=s.sent()).ok)throw new Error("HTTP error! status: ".concat(o.status));return[4,o.json()];case 2:return[2,s.sent().data];case 3:throw i=s.sent(),console.error("Failed to get bot configuration:",i),i;case 4:return[2]}}))}))}var y=function(n){var r=n.input,t=n.setInput,o=n.isInputDisabled,i=n.botConfig,s=n.onSubmit;return e.jsx("div",{className:"chat-input-container",children:e.jsxs("form",{onSubmit:s,className:"chat-form",children:[e.jsx("input",{type:"text",value:r,disabled:o,onChange:function(e){return t(e.target.value)},placeholder:i.inputPlaceholder,className:"chat-input"}),e.jsx("button",{type:"submit",disabled:o||!r.trim(),className:"send-button",style:{background:i.primaryColor},children:e.jsx(c,{color:i.secondaryColor})})]})})};function b(){return b=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},b.apply(this,arguments)}const v=["children","options"],x="0",k="1",w="2",j="3",C="4",S="5",E="6",I="7",O="8",M="9",T="10",N="11",z="12",A="13",$="14",P="15",L="16",R="17",F="18",q="19",D="20",W="21",B="22",H="23",U="24",_="25",V="27",G="28",Z="29",J="30",X="31",Y="32",K="33";var Q;!function(e){e[e.MAX=0]="MAX",e[e.HIGH=1]="HIGH",e[e.MED=2]="MED",e[e.LOW=3]="LOW",e[e.MIN=4]="MIN"}(Q||(Q={}));const ee=["allowFullScreen","allowTransparency","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","charSet","classId","colSpan","contentEditable","contextMenu","crossOrigin","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","hrefLang","inputMode","keyParams","keyType","marginHeight","marginWidth","maxLength","mediaGroup","minLength","noValidate","radioGroup","readOnly","rowSpan","spellCheck","srcDoc","srcLang","srcSet","tabIndex","useMap"].reduce(((e,n)=>(e[n.toLowerCase()]=n,e)),{class:"className",for:"htmlFor"}),ne={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},re=["style","script"],te=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,oe=/mailto:/i,ie=/\n{2,}$/,se=/^(\s*>[\s\S]*?)(?=\n\n|$)/,ae=/^ *> ?/gm,ce=/^(?:\[!([^\]]*)\]\n)?([\s\S]*)/,le=/^ {2,}\n/,ue=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,de=/^(?: {1,3})?(`{3,}|~{3,}) *(\S+)? *([^\n]*?)?\n([\s\S]*?)(?:\1\n?|$)/,pe=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,fe=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,he=/^(?:\n *)*\n/,me=/\r\n?/g,ge=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,ye=/^\[\^([^\]]+)]/,be=/\f/g,ve=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,xe=/^\s*?\[(x|\s)\]/,ke=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,we=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,je=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,Ce=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,Se=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,Ee=/^<!--[\s\S]*?(?:-->)/,Ie=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,Oe=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,Me=/^\{.*\}$/,Te=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,Ne=/^<([^ >]+@[^ >]+)>/,ze=/^<([^ >]+:\/[^ >]+)>/,Ae=/-([a-z])?/gi,$e=/^(\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/,Pe=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,Le=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,Re=/^\[([^\]]*)\] ?\[([^\]]*)\]/,Fe=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,qe=/\t/g,De=/(^ *\||\| *$)/g,We=/^ *:-+: *$/,Be=/^ *:-+ *$/,He=/^ *-+: *$/,Ue="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~~.*?~~|==.*?==|.|\\n)*?)",_e=new RegExp(`^([*_])\\1${Ue}\\1\\1(?!\\1)`),Ve=new RegExp(`^([*_])${Ue}\\1(?!\\1|\\w)`),Ge=new RegExp(`^==${Ue}==`),Ze=new RegExp(`^~~${Ue}~~`),Je=/^\\([^0-9A-Za-z\s])/,Xe=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&#;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,Ye=/^\n+/,Ke=/^([ \t]*)/,Qe=/\\([^\\])/g,en=/ *\n+$/,nn=/(?:^|\n)( *)$/,rn="(?:\\d+\\.)",tn="(?:[*+-])";function on(e){return"( *)("+(1===e?rn:tn)+") +"}const sn=on(1),an=on(2);function cn(e){return new RegExp("^"+(1===e?sn:an))}const ln=cn(1),un=cn(2);function dn(e){return new RegExp("^"+(1===e?sn:an)+"[^\\n]*(?:\\n(?!\\1"+(1===e?rn:tn)+" )[^\\n]*)*(\\n|$)","gm")}const pn=dn(1),fn=dn(2);function hn(e){const n=1===e?rn:tn;return new RegExp("^( *)("+n+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+n+" (?!"+n+" ))\\n*|\\s*\\n*$)")}const mn=hn(1),gn=hn(2);function yn(e,n){const r=1===n,t=r?mn:gn,o=r?pn:fn,i=r?ln:un;return{match(e,n){const r=nn.exec(n.prevCapture);return r&&(n.list||!n.inline&&!n.simple)?t.exec(e=r[1]+e):null},order:1,parse(e,n,t){const s=r?+e[2]:void 0,a=e[0].replace(ie,"\n").match(o);let c=!1;return{items:a.map((function(e,r){const o=i.exec(e)[0].length,s=new RegExp("^ {1,"+o+"}","gm"),l=e.replace(s,"").replace(i,""),u=r===a.length-1,d=-1!==l.indexOf("\n\n")||u&&c;c=d;const p=t.inline,f=t.list;let h;t.list=!0,d?(t.inline=!1,h=l.replace(en,"\n\n")):(t.inline=!0,h=l.replace(en,""));const m=n(h,t);return t.inline=p,t.list=f,m})),ordered:r,start:s}},render:(n,r,t)=>e(n.ordered?"ol":"ul",{key:t.key,start:n.type===D?n.start:void 0},n.items.map((function(n,o){return e("li",{key:o},r(n,t))})))}}const bn=new RegExp("^\\[((?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*)\\]\\(\\s*<?((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),vn=/^!\[(.*?)\]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,xn=[se,de,pe,ke,je,we,Ee,$e,pn,mn,fn,gn],kn=[...xn,/^[^\n]+(?: \n|\n{2,})/,Ce,Oe];function wn(e){return e.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function jn(e){return He.test(e)?"right":We.test(e)?"center":Be.test(e)?"left":null}function Cn(e,n,r,t){const o=r.inTable;r.inTable=!0;let i=[[]],s="";function a(){if(!s)return;const e=i[i.length-1];e.push.apply(e,n(s,r)),s=""}return e.trim().split(/(`[^`]*`|\\\||\|)/).filter(Boolean).forEach(((e,n,r)=>{"|"===e.trim()&&(a(),t)?0!==n&&n!==r.length-1&&i.push([]):s+=e})),a(),r.inTable=o,i}function Sn(e,n,r){r.inline=!0;const t=e[2]?e[2].replace(De,"").split("|").map(jn):[],o=e[3]?function(e,n,r){return e.trim().split("\n").map((function(e){return Cn(e,n,r,!0)}))}(e[3],n,r):[],i=Cn(e[1],n,r,!!o.length);return r.inline=!1,o.length?{align:t,cells:o,header:i,type:_}:{children:i,type:W}}function En(e,n){return null==e.align[n]?{}:{textAlign:e.align[n]}}function In(e){return function(n,r){return r.inline?e.exec(n):null}}function On(e){return function(n,r){return r.inline||r.simple?e.exec(n):null}}function Mn(e){return function(n,r){return r.inline||r.simple?null:e.exec(n)}}function Tn(e){return function(n){return e.exec(n)}}function Nn(e,n){if(n.inline||n.simple)return null;let r="";e.split("\n").every((e=>(e+="\n",!xn.some((n=>n.test(e)))&&(r+=e,!!e.trim()))));const t=r.trimEnd();return""==t?null:[r,t]}function zn(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data(?!:image)):/i))return null}catch(e){return null}return e}function An(e){return e.replace(Qe,"$1")}function $n(e,n,r){const t=r.inline||!1,o=r.simple||!1;r.inline=!0,r.simple=!0;const i=e(n,r);return r.inline=t,r.simple=o,i}function Pn(e,n,r){const t=r.inline||!1,o=r.simple||!1;r.inline=!1,r.simple=!0;const i=e(n,r);return r.inline=t,r.simple=o,i}function Ln(e,n,r){const t=r.inline||!1;r.inline=!1;const o=e(n,r);return r.inline=t,o}const Rn=(e,n,r)=>({children:$n(n,e[1],r)});function Fn(){return{}}function qn(){return null}function Dn(...e){return e.filter(Boolean).join(" ")}function Wn(e,n,r){let t=e;const o=n.split(".");for(;o.length&&(t=t[o[0]],void 0!==t);)o.shift();return t||r}function Bn(e="",n={}){function r(e,r,...t){const o=Wn(n.overrides,`${e}.props`,{});return n.createElement(function(e,n){const r=Wn(n,e);return r?"function"==typeof r||"object"==typeof r&&"render"in r?r:Wn(n,`${e}.component`,e):e}(e,n.overrides),b({},r,o,{className:Dn(null==r?void 0:r.className,o.className)||void 0}),...t)}function o(e){e=e.replace(ve,"");let t=!1;n.forceInline?t=!0:n.forceBlock||(t=!1===Fe.test(e));const o=u(l(t?e:`${e.trimEnd().replace(Ye,"")}\n\n`,{inline:t}));for(;"string"==typeof o[o.length-1]&&!o[o.length-1].trim();)o.pop();if(null===n.wrapper)return o;const i=n.wrapper||(t?"span":"div");let s;if(o.length>1||n.forceWrapper)s=o;else{if(1===o.length)return s=o[0],"string"==typeof s?r("span",{key:"outer"},s):s;s=null}return n.createElement(i,{key:"outer"},s)}function i(e,r){const t=r.match(te);return t?t.reduce((function(r,t){const i=t.indexOf("=");if(-1!==i){const s=function(e){return-1!==e.indexOf("-")&&null===e.match(Ie)&&(e=e.replace(Ae,(function(e,n){return n.toUpperCase()}))),e}(t.slice(0,i)).trim(),a=function(e){const n=e[0];return('"'===n||"'"===n)&&e.length>=2&&e[e.length-1]===n?e.slice(1,-1):e}(t.slice(i+1).trim()),c=ee[s]||s;if("ref"===c)return r;const l=r[c]=function(e,n,r,t){return"style"===n?r.split(/;\s?/).reduce((function(e,n){const r=n.slice(0,n.indexOf(":"));return e[r.trim().replace(/(-[a-z])/g,(e=>e[1].toUpperCase()))]=n.slice(r.length+1).trim(),e}),{}):"href"===n||"src"===n?t(r,e,n):(r.match(Me)&&(r=r.slice(1,r.length-1)),"true"===r||"false"!==r&&r)}(e,s,a,n.sanitizer);"string"==typeof l&&(Ce.test(l)||Oe.test(l))&&(r[c]=o(l.trim()))}else"style"!==t&&(r[ee[t]||t]=!0);return r}),{}):null}n.overrides=n.overrides||{},n.sanitizer=n.sanitizer||zn,n.slugify=n.slugify||wn,n.namedCodesToUnicode=n.namedCodesToUnicode?b({},ne,n.namedCodesToUnicode):ne,n.createElement=n.createElement||t.createElement;const s=[],a={},c={[x]:{match:Mn(se),order:1,parse(e,n,r){const[,t,o]=e[0].replace(ae,"").match(ce);return{alert:t,children:n(o,r)}},render(e,t,o){const i={key:o.key};return e.alert&&(i.className="markdown-alert-"+n.slugify(e.alert.toLowerCase(),wn),e.children.unshift({attrs:{},children:[{type:V,text:e.alert}],noInnerParse:!0,type:N,tag:"header"})),r("blockquote",i,t(e.children,o))}},[k]:{match:Tn(le),order:1,parse:Fn,render:(e,n,t)=>r("br",{key:t.key})},[w]:{match:Mn(ue),order:1,parse:Fn,render:(e,n,t)=>r("hr",{key:t.key})},[j]:{match:Mn(pe),order:0,parse:e=>({lang:void 0,text:e[0].replace(/^ {4}/gm,"").replace(/\n+$/,"")}),render:(e,n,t)=>r("pre",{key:t.key},r("code",b({},e.attrs,{className:e.lang?`lang-${e.lang}`:""}),e.text))},[C]:{match:Mn(de),order:0,parse:e=>({attrs:i("code",e[3]||""),lang:e[2]||void 0,text:e[4],type:j})},[S]:{match:On(fe),order:3,parse:e=>({text:e[2]}),render:(e,n,t)=>r("code",{key:t.key},e.text)},[E]:{match:Mn(ge),order:0,parse:e=>(s.push({footnote:e[2],identifier:e[1]}),{}),render:qn},[I]:{match:In(ye),order:1,parse:e=>({target:`#${n.slugify(e[1],wn)}`,text:e[1]}),render:(e,t,o)=>r("a",{key:o.key,href:n.sanitizer(e.target,"a","href")},r("sup",{key:o.key},e.text))},[O]:{match:In(xe),order:1,parse:e=>({completed:"x"===e[1].toLowerCase()}),render:(e,n,t)=>r("input",{checked:e.completed,key:t.key,readOnly:!0,type:"checkbox"})},[M]:{match:Mn(n.enforceAtxHeadings?we:ke),order:1,parse:(e,r,t)=>({children:$n(r,e[2],t),id:n.slugify(e[2],wn),level:e[1].length}),render:(e,n,t)=>r(`h${e.level}`,{id:e.id,key:t.key},n(e.children,t))},[T]:{match:Mn(je),order:0,parse:(e,n,r)=>({children:$n(n,e[1],r),level:"="===e[2]?1:2,type:M})},[N]:{match:Tn(Ce),order:1,parse(e,n,r){const[,t]=e[3].match(Ke),o=new RegExp(`^${t}`,"gm"),s=e[3].replace(o,""),a=(c=s,kn.some((e=>e.test(c)))?Ln:$n);var c;const l=e[1].toLowerCase(),u=-1!==re.indexOf(l),d=(u?l:e[1]).trim(),p={attrs:i(d,e[2]),noInnerParse:u,tag:d};return r.inAnchor=r.inAnchor||"a"===l,u?p.text=e[3]:p.children=a(n,s,r),r.inAnchor=!1,p},render:(e,n,t)=>r(e.tag,b({key:t.key},e.attrs),e.text||(e.children?n(e.children,t):""))},[A]:{match:Tn(Oe),order:1,parse(e){const n=e[1].trim();return{attrs:i(n,e[2]||""),tag:n}},render:(e,n,t)=>r(e.tag,b({},e.attrs,{key:t.key}))},[z]:{match:Tn(Ee),order:1,parse:()=>({}),render:qn},[$]:{match:On(vn),order:1,parse:e=>({alt:e[1],target:An(e[2]),title:e[3]}),render:(e,t,o)=>r("img",{key:o.key,alt:e.alt||void 0,title:e.title||void 0,src:n.sanitizer(e.target,"img","src")})},[P]:{match:In(bn),order:3,parse:(e,n,r)=>({children:Pn(n,e[1],r),target:An(e[2]),title:e[3]}),render:(e,t,o)=>r("a",{key:o.key,href:n.sanitizer(e.target,"a","href"),title:e.title},t(e.children,o))},[L]:{match:In(ze),order:0,parse:e=>({children:[{text:e[1],type:V}],target:e[1],type:P})},[R]:{match:(e,r)=>r.inAnchor||n.disableAutoLink?null:In(Te)(e,r),order:0,parse:e=>({children:[{text:e[1],type:V}],target:e[1],title:void 0,type:P})},[F]:{match:In(Ne),order:0,parse(e){let n=e[1],r=e[1];return oe.test(r)||(r="mailto:"+r),{children:[{text:n.replace("mailto:",""),type:V}],target:r,type:P}}},[D]:yn(r,1),[K]:yn(r,2),[q]:{match:Mn(he),order:3,parse:Fn,render:()=>"\n"},[W]:{match:Nn,order:3,parse:Rn,render:(e,n,t)=>r("p",{key:t.key},n(e.children,t))},[B]:{match:In(Pe),order:0,parse:e=>(a[e[1]]={target:e[2],title:e[4]},{}),render:qn},[H]:{match:On(Le),order:0,parse:e=>({alt:e[1]||void 0,ref:e[2]}),render:(e,t,o)=>a[e.ref]?r("img",{key:o.key,alt:e.alt,src:n.sanitizer(a[e.ref].target,"img","src"),title:a[e.ref].title}):null},[U]:{match:In(Re),order:0,parse:(e,n,r)=>({children:n(e[1],r),fallbackChildren:e[0],ref:e[2]}),render:(e,t,o)=>a[e.ref]?r("a",{key:o.key,href:n.sanitizer(a[e.ref].target,"a","href"),title:a[e.ref].title},t(e.children,o)):r("span",{key:o.key},e.fallbackChildren)},[_]:{match:Mn($e),order:1,parse:Sn,render(e,n,t){const o=e;return r("table",{key:t.key},r("thead",null,r("tr",null,o.header.map((function(e,i){return r("th",{key:i,style:En(o,i)},n(e,t))})))),r("tbody",null,o.cells.map((function(e,i){return r("tr",{key:i},e.map((function(e,i){return r("td",{key:i,style:En(o,i)},n(e,t))})))}))))}},[V]:{match:Tn(Xe),order:4,parse:e=>({text:e[0].replace(Se,((e,r)=>n.namedCodesToUnicode[r]?n.namedCodesToUnicode[r]:e))}),render:e=>e.text},[G]:{match:On(_e),order:2,parse:(e,n,r)=>({children:n(e[2],r)}),render:(e,n,t)=>r("strong",{key:t.key},n(e.children,t))},[Z]:{match:On(Ve),order:3,parse:(e,n,r)=>({children:n(e[2],r)}),render:(e,n,t)=>r("em",{key:t.key},n(e.children,t))},[J]:{match:On(Je),order:1,parse:e=>({text:e[1],type:V})},[X]:{match:On(Ge),order:3,parse:Rn,render:(e,n,t)=>r("mark",{key:t.key},n(e.children,t))},[Y]:{match:On(Ze),order:3,parse:Rn,render:(e,n,t)=>r("del",{key:t.key},n(e.children,t))}};!0===n.disableParsingRawHTML&&(delete c[N],delete c[A]);const l=function(e){let n=Object.keys(e);function r(t,o){let i=[];for(o.prevCapture=o.prevCapture||"";t;){let s=0;for(;s<n.length;){const a=n[s],c=e[a],l=c.match(t,o);if(l){const e=l[0];o.prevCapture+=e,t=t.substring(e.length);const n=c.parse(l,r,o);null==n.type&&(n.type=a),i.push(n);break}s++}}return o.prevCapture="",i}return n.sort((function(n,r){let t=e[n].order,o=e[r].order;return t!==o?t-o:n<r?-1:1})),function(e,n){return r(function(e){return e.replace(me,"\n").replace(be,"").replace(qe," ")}(e),n)}}(c),u=(d=function(e,n){return function(r,t,o){const i=e[r.type].render;return n?n((()=>i(r,t,o)),r,t,o):i(r,t,o)}}(c,n.renderRule),function e(n,r={}){if(Array.isArray(n)){const t=r.key,o=[];let i=!1;for(let t=0;t<n.length;t++){r.key=t;const s=e(n[t],r),a="string"==typeof s;a&&i?o[o.length-1]+=s:null!==s&&o.push(s),i=a}return r.key=t,o}return d(n,e,r)});var d;const p=o(e);return s.length?r("div",null,p,r("footer",{key:"footer"},s.map((function(e){return r("div",{id:n.slugify(e.identifier,wn),key:e.identifier},e.identifier,u(l(e.footnote,{inline:!0})))})))):p}var Hn=e=>{let{children:n="",options:r}=e,o=function(e,n){if(null==e)return{};var r,t,o={},i=Object.keys(e);for(t=0;t<i.length;t++)n.indexOf(r=i[t])>=0||(o[r]=e[r]);return o}(e,v);return t.cloneElement(Bn(n,r),o)},Un=function(n){var r=n.message,t=n.botConfig,o=n.messageRef;return e.jsx("div",{ref:o,className:"message-wrapper ".concat("user"===r.author?"user":"ai"),children:e.jsxs("div",{className:"message ".concat("user"===r.author?"user":"ai"," "),style:{background:"user"===r.author?t.primaryColor:"primaryColor",color:"user"===r.author?t.secondaryColor:""},children:[r.isFetching&&e.jsx("div",{className:"loader"}),e.jsx(Hn,{className:"loading"===r.status?"shine":"",children:r.message})]})})};!function(e,n){void 0===n&&(n={});var r=n.insertAt;if("undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&t.firstChild?t.insertBefore(o,t.firstChild):t.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("* {\r\n font-family: sans-serif;\r\n}\r\n.ai-chat-container {\r\n position: fixed;\r\n bottom: 1rem;\r\n right: 1rem;\r\n z-index: 50;\r\n}\r\n\r\n.help-button {\r\n cursor: pointer;\r\n background-color: black;\r\n color: #000000;\r\n border-width: 0;\r\n padding: 0.8rem 0.8rem;\r\n color: white;\r\n border-radius: 9999px;\r\n transition: background-color 0.3s;\r\n}\r\n\r\n.chat-window {\r\n display: flex;\r\n flex-direction: column;\r\n height: 35rem;\r\n width: 25rem;\r\n background-color: white;\r\n border-radius: 0.5rem;\r\n box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.chat-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n background-color: black;\r\n height: 3.5rem;\r\n padding: 0 0.5rem;\r\n border-top-left-radius: 0.5rem;\r\n border-top-right-radius: 0.5rem;\r\n color: white;\r\n}\r\n\r\n.cancel {\r\n cursor: pointer;\r\n color: white;\r\n border-width: 0;\r\n background: transparent;\r\n}\r\n\r\n.messages-container {\r\n flex: 1;\r\n overflow-y: auto;\r\n padding: 1rem;\r\n scroll-behavior: smooth;\r\n}\r\n\r\n.messages-container::-webkit-scrollbar {\r\n width: 6px;\r\n}\r\n\r\n.messages-container::-webkit-scrollbar-track {\r\n background: transparent;\r\n}\r\n\r\n.messages-container::-webkit-scrollbar-thumb {\r\n background-color: rgba(0, 0, 0, 0.2);\r\n border-radius: 3px;\r\n}\r\n\r\n.message-wrapper {\r\n display: flex;\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.message-wrapper.user {\r\n justify-content: flex-end;\r\n}\r\n\r\n.message-wrapper.ai {\r\n justify-content: flex-start;\r\n}\r\n\r\n.message {\r\n max-width: 80%;\r\n padding: 0.75rem;\r\n border-radius: 0.5rem;\r\n font-size: 1rem;\r\n line-height: 1.4;\r\n letter-spacing: 0ch;\r\n}\r\n\r\n.message.user {\r\n background-color: #000000;\r\n color: white;\r\n}\r\n\r\n.message.ai {\r\n background-color: #f3f4f6;\r\n color: #1f2937;\r\n}\r\n\r\n.welcome-message {\r\n padding: 0.2rem 1rem;\r\n font-size: 1rem;\r\n font-weight: 500;\r\n color: #0d0d0d52;\r\n}\r\n\r\n.welcome-message span {\r\n font-weight: 600;\r\n color: #adedd5;\r\n}\r\n\r\n.chat-input-container {\r\n border-top: 1px solid #e5e7eb;\r\n padding: 1rem;\r\n}\r\n\r\n.chat-form {\r\n display: flex;\r\n gap: 0.5rem;\r\n}\r\n\r\n.chat-input {\r\n flex: 1;\r\n padding: 0.75rem;\r\n border: 1px solid #1e1e1e18;\r\n border-radius: 0.5rem;\r\n font-size: 0.875rem;\r\n transition: border-color 0.3s;\r\n}\r\n\r\n.chat-input:focus {\r\n outline: none;\r\n box-shadow: 0 0 0 2px rgba(173, 237, 213, 0.2);\r\n}\r\n\r\n.chat-input:disabled {\r\n background-color: #f3f4f6;\r\n cursor: not-allowed;\r\n}\r\n\r\n.send-button {\r\n border-width: 0;\r\n color: white;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 0.5rem;\r\n transition: background-color 0.3s;\r\n cursor: pointer;\r\n}\r\n\r\n.send-button:disabled {\r\n opacity: 0.7;\r\n cursor: not-allowed;\r\n}\r\n\r\n.loader {\r\n width: 20px;\r\n aspect-ratio: 2;\r\n --_g: no-repeat radial-gradient(circle closest-side, #000 90%, #0000);\r\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\r\n background-size: calc(100% / 3) 50%;\r\n animation: l3 1s infinite linear;\r\n}\r\n@keyframes l3 {\r\n 20% {\r\n background-position: 0% 0%, 50% 50%, 100% 50%;\r\n }\r\n 40% {\r\n background-position: 0% 100%, 50% 0%, 100% 50%;\r\n }\r\n 60% {\r\n background-position: 0% 50%, 50% 100%, 100% 0%;\r\n }\r\n 80% {\r\n background-position: 0% 50%, 50% 50%, 100% 100%;\r\n }\r\n}\r\n\r\n.shine {\r\n font-size: 0.8rem;\r\n animation: blink 2s linear infinite;\r\n}\r\n\r\n@keyframes blink {\r\n 0% {\r\n opacity: 0.4;\r\n }\r\n 50% {\r\n opacity: 0.8;\r\n }\r\n 100% {\r\n opacity: 0.4;\r\n }\r\n}\r\n");exports.OnDemandChatBot=function(r){var t=r.environment,o=void 0===t?"prod":t,a=r.apiKey,c=r.botId,b=r.contextVariables,v=n.useState(!1),x=v[0],k=v[1],w=n.useState([]),j=w[0],C=w[1],S=n.useState(!1),E=S[0],I=S[1],O=n.useState(""),M=O[0],T=O[1],N=n.useState(""),z=N[0],A=N[1],$=n.useState(),P=$[0],L=$[1],R=function(e){return{sendMessage:function(n){return i(void 0,[n],void 0,(function(n){var r,t,o,i,a,c,l,u,g,y,b,v,x,k,w,j,C,S,E,I,O,M,T=n.environment,N=n.modelEndpointId,z=n.input,A=n.setMessages,$=n.sessionId,P=n.setInput,L=n.setIsInputDisabled,R=n.setSessionId,F=n.moreAddedAgents,q=n.fulfillmentPrompt,D=n.contextVariables,W=n.botId,B=n.reasoningMode;return s(this,(function(n){switch(n.label){case 0:if(!z)return[2];p(A,{message:z,author:"user",isFetching:!1,id:Date.now().toString(),status:"complete"}),p(A,{author:"bot",isFetching:!0,status:"loading"}),L(!0),P(""),n.label=1;case 1:return n.trys.push([1,8,9,10]),(r=$)?[3,3]:[4,m(e,T,W,D)];case 2:t=n.sent(),R(r=t),n.label=3;case 3:return o={endpointId:N,query:z,pluginIds:F,responseMode:"stream",debugMode:"on",reasoningMode:B,modelConfigs:{frequencyPenalty:0,fulfillmentPrompt:q,presencePenalty:0,stopTokens:[],temperature:.3,topP:.9}},i=h(T),[4,fetch("".concat(i,"/chat/v1/sessions/").concat(r,"/query"),{method:"POST",headers:{"Content-Type":"application/json","x-bot-id":W,apikey:e},body:JSON.stringify(o)})];case 4:if(!(a=n.sent()).ok)throw new Error("Request failed with status ".concat(a.status));if(!(c=null===(E=a.body)||void 0===E?void 0:E.getReader()))throw new Error("Response stream is not available.");l=new TextDecoder("utf-8"),u="",g=!1,n.label=5;case 5:return g?[3,7]:[4,c.read()];case 6:if(y=n.sent(),b=y.done,v=y.value,b)return[3,7];for(u+=l.decode(v,{stream:!0}),x=u.split("\n\n"),u=null!==(I=x.pop())&&void 0!==I?I:"",k=function(e){var n=e.split("\n").map((function(e){return e.trim()})).filter(Boolean);if(!n.length)return"continue";var r,t=null!==(M=null===(O=n.find((function(e){return e.startsWith("event:")})))||void 0===O?void 0:O.replace("event:","").trim())&&void 0!==M?M:"message",o=n.filter((function(e){return e.startsWith("data:")})).map((function(e){return e.replace("data:","").trim()})).join("\n");if(!o)return"continue";if("[DONE]"===o)return g=!0,"break";try{r=JSON.parse(o)}catch(e){return"continue"}if("heartbeat"===t)return"continue";"statusLog"===r.eventType&&"Fulfillment completed"!==r.currentStatusLog.statusMessage?f(A,{message:d[r.currentStatusLog.statusMessage],isFetching:!1,status:"loading"}):"fulfillment"===r.eventType?f(A,(function(e){return{message:"loading"===(null==e?void 0:e.status)?r.answer:e.message+r.answer,status:"streaming",isFetching:!1}})):"statusLog"===r.eventType&&"Fulfillment completed"===r.currentStatusLog.statusMessage&&f(A,(function(e){var n,t;return{message:null!==(t=null!==(n=null==e?void 0:e.message)&&void 0!==n?n:r.currentStatusLog.answer)&&void 0!==t?t:"",status:"complete",isFetching:!1}}))},w=0,j=x;w<j.length&&(C=j[w],"break"!==k(C));w++);return[3,5];case 7:return[3,10];case 8:return S=n.sent(),console.error("Error sending message:",S),f(A,{message:"An error occurred while processing your request.",status:"error",isFetching:!1}),[3,10];case 9:return L(!1),[7];case 10:return[2]}}))}))}}}(a).sendMessage,F=n.useRef(null),q=n.useRef(null),D=function(e){F.current&&!F.current.contains(e.target)&&k(!1)};return n.useEffect((function(){i(void 0,void 0,void 0,(function(){var e;return s(this,(function(n){switch(n.label){case 0:return[4,g(a,c,o)];case 1:return e=n.sent(),L(e),0===j.length&&C([{message:e.introductoryMessage,author:"bot",isFetching:!1,id:Date.now().toString(),status:"complete"}]),[2]}}))}))}),[]),n.useEffect((function(){return x?(document.body.style.overflow="hidden",document.addEventListener("mousedown",D),function(){document.body.style.overflow="",document.removeEventListener("mousedown",D)}):(document.body.style.overflow="",void document.removeEventListener("mousedown",D))}),[x]),P?e.jsx("div",{className:"ai-chat-container",children:x?e.jsxs("div",{ref:F,className:"chat-window",children:[e.jsxs("div",{className:"chat-header",style:{background:P.primaryColor},children:[e.jsx("img",{src:P.logoUrl,style:{height:"2rem",paddingLeft:"0.5rem"},alt:"Bot Logo"}),e.jsx("button",{onClick:function(){return k(!1)},className:"cancel",children:e.jsx(l,{color:P.secondaryColor})})]}),e.jsx("div",{className:"messages-container",children:j.map((function(n){return e.jsx(Un,{message:n,botConfig:P,messageRef:q},n.id)}))}),e.jsx(y,{input:M,setInput:T,isInputDisabled:E,botConfig:P,onSubmit:function(e){return i(void 0,void 0,void 0,(function(){var n,r;return s(this,(function(t){switch(t.label){case 0:return e.preventDefault(),M.trim()?(null===(n=q.current)||void 0===n||n.scrollIntoView({behavior:"smooth"}),[4,R({input:M,sessionId:z,setMessages:C,messages:j,setInput:T,setIsInputDisabled:I,setSessionId:A,moreAddedAgents:null==P?void 0:P.chatPluginIds,fulfillmentPrompt:null==P?void 0:P.fulfillmentPrompt,modelEndpointId:null==P?void 0:P.modelEndpointId,reasoningMode:null!==(r=null==P?void 0:P.reasoningMode)&&void 0!==r?r:"low",environment:o,botId:c,contextVariables:b})]):[2];case 1:return t.sent(),T(""),[2]}}))}))}})]}):e.jsx("button",{onClick:function(){return k(!0)},className:"help-button",style:{background:P.primaryColor,color:P.secondaryColor},children:e.jsx(u,{color:P.secondaryColor})})}):null};
//# sourceMappingURL=index.js.map