@snf/access-qa-bot 3.0.2 → 3.0.4
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/access-qa-bot.js +94 -94
- package/dist/access-qa-bot.js.map +1 -1
- package/dist/access-qa-bot.standalone.js +14 -14
- package/dist/access-qa-bot.standalone.js.map +1 -1
- package/dist/access-qa-bot.umd.cjs +1 -1
- package/dist/access-qa-bot.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
|
@@ -139,7 +139,7 @@ Error generating stack: `+s.message+`
|
|
|
139
139
|
background-color: #0000001a !important;
|
|
140
140
|
opacity: 1 !important;
|
|
141
141
|
}
|
|
142
|
-
`),R.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"qa-bot-login-button ".concat(o?"qa-bot-header-login-button":""," ").concat(a),style:Object.assign(Object.assign({},c),i)},"Log In"))},Ug=()=>R.createElement("div",{className:"user-login-icon",style:{alignItems:"center",justifyContent:"center",width:"30px",height:"30px",borderRadius:"50%",backgroundColor:"var(--primaryColor, #1a5b6e)",marginRight:"5px",display:"flex"},role:"img","aria-label":"User logged in",title:"User logged in"},R.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false"},R.createElement("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),R.createElement("circle",{cx:"12",cy:"7",r:"4"})));function Rc(){return Rc=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var i in a)({}).hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},Rc.apply(null,arguments)}const Gd=({width:e=24,height:n=24,color:a="currentColor",children:i,...o})=>R.createElement("svg",Rc({xmlns:"http://www.w3.org/2000/svg",width:e,height:n,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false"},o),i),zg=e=>R.createElement(Gd,e,R.createElement("path",{d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})),Vd=R.createContext(void 0),jg=e=>{let{children:n,resetSession:a,clearResettingFlag:i}=e;return R.createElement(Vd.Provider,{value:{resetSession:a,clearResettingFlag:i}},n)},Wg=()=>{const{restartFlow:e}=Qs(),{setTextAreaValue:n}=(()=>{const{textAreaDisabled:o,toggleTextAreaDisabled:c,textAreaSensitiveMode:u,toggleTextAreaSensitiveMode:d,getTextAreaValue:A,setTextAreaValue:p,focusTextArea:h,blurTextArea:m}=Fo();return{textAreaDisabled:o,toggleTextAreaDisabled:c,textAreaSensitiveMode:u,toggleTextAreaSensitiveMode:d,getTextAreaValue:A,setTextAreaValue:p,focusTextArea:h,blurTextArea:m}})(),{resetSession:a,clearResettingFlag:i}=(()=>{const o=R.useContext(Vd);if(!o)throw new Error("useSession must be used within a SessionProvider");return o})();return R.createElement("button",{onClick:async()=>{a(),await n(""),await e(),setTimeout(()=>{i()},100)},tabIndex:0,"aria-label":"New chat conversation",style:{backgroundColor:"var(--primaryColor, #107180)",border:"none",color:"#ffffff",fontSize:"14px",cursor:"pointer",padding:"8px 12px",borderRadius:"4px",transition:"all 0.2s ease",display:"flex",alignItems:"center",gap:"6px",fontWeight:"500"},onMouseEnter:o=>{o.target.style.backgroundColor="var(--secondaryColor, #0d5f6b)"},onMouseLeave:o=>{o.target.style.backgroundColor="var(--primaryColor, #107180)"}},R.createElement(zg,{width:16,height:16}),"New Chat")},Yg=()=>(R.useEffect(()=>{const e=c=>{if(!["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Enter"," ","Home","End"].includes(c.key))return;const u=document.activeElement;if(u&&(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.contentEditable==="true"||u.classList.contains("rcb-chat-input-textarea")))return;const d=document.querySelector(".rcb-chat-window");if(!d)return;const A=Array.from(d.querySelectorAll(".rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container")).filter(m=>m.offsetParent!==null);if(A.length>0){const m=A[A.length-1].querySelector(".rcb-checkbox-container");if(m&&m.offsetParent!==null){const y=Array.from(m.querySelectorAll(".rcb-checkbox-row-container")),C=m.querySelector(".rcb-checkbox-next-button");if(y.length>0){const D=[...y];return C&&D.push(C),void((Q,E)=>{Q.preventDefault();let I=-1;for(let B=0;B<E.length;B++)if(E[B]===document.activeElement||E[B].contains(document.activeElement)){I=B;break}I===-1&&(I=0);let _=I;switch(Q.key){case"ArrowDown":case"ArrowRight":_=I<E.length-1?I+1:0;break;case"ArrowUp":case"ArrowLeft":_=I>0?I-1:E.length-1;break;case"Home":_=0;break;case"End":_=E.length-1;break;case"Enter":case" ":{const B=E[I],U=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});return void B.dispatchEvent(U)}default:return}E[_].focus(),E[_].setAttribute("tabindex","0"),E[_].classList.add("keyboard-focused"),E.forEach((B,U)=>{U!==_&&(B.setAttribute("tabindex","-1"),B.classList.remove("keyboard-focused"))})})(c,D)}}}let p=[];if(A.length>0){const m=A[A.length-1],y=Array.from(m.querySelectorAll(".rcb-options-container")).filter(C=>C.offsetParent!==null);if(y.length>0){const C=y[y.length-1];p=Array.from(C.querySelectorAll(".rcb-options"))}}if(p.length===0)return;const h=p.findIndex(m=>m===document.activeElement);switch(c.key){case"ArrowDown":case"ArrowRight":{let m;c.preventDefault(),m=h<p.length-1?h+1:0,p[m].setAttribute("tabindex","0"),p.forEach((y,C)=>{C!==m&&(y.setAttribute("tabindex","-1"),y.classList.remove("keyboard-focused"))}),p[m].classList.add("keyboard-focused"),p[m].focus();break}case"ArrowUp":case"ArrowLeft":{let m;c.preventDefault(),m=h>0?h-1:p.length-1,p[m].setAttribute("tabindex","0"),p.forEach((y,C)=>{C!==m&&(y.setAttribute("tabindex","-1"),y.classList.remove("keyboard-focused"))}),p[m].classList.add("keyboard-focused"),p[m].focus();break}case"Enter":case" ":if(c.preventDefault(),document.activeElement&&p.includes(document.activeElement)){const m=document.activeElement;if(m.classList.contains("rcb-checkbox-row-container")||m.closest(".rcb-checkbox-row-container")){const y=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});m.dispatchEvent(y);const C=m.querySelector(".rcb-checkbox-label"),D=C?C.textContent:m.textContent||"checkbox",Q=m.querySelector(".rcb-checkbox-mark"),E=Q&&Q.style.backgroundColor?"checked":"unchecked";n(`${D} ${E}`)}else{const y=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});m.dispatchEvent(y);const C=m.textContent||m.innerText;n(`Selected: ${C}`)}}break;case"Home":c.preventDefault(),p.length>0&&(p[0].setAttribute("tabindex","0"),p.forEach((m,y)=>{y!==0&&(m.setAttribute("tabindex","-1"),m.classList.remove("keyboard-focused"))}),p[0].classList.add("keyboard-focused"),p[0].focus());break;case"End":if(c.preventDefault(),p.length>0){const m=p.length-1;p[m].setAttribute("tabindex","0"),p.forEach((y,C)=>{C!==m&&(y.setAttribute("tabindex","-1"),y.classList.remove("keyboard-focused"))}),p[m].classList.add("keyboard-focused"),p[m].focus()}}},n=c=>{const u=document.createElement("div");u.setAttribute("aria-live","assertive"),u.setAttribute("aria-atomic","true"),u.className="sr-only",u.textContent=c,document.body.appendChild(u),setTimeout(()=>{document.body.contains(u)&&document.body.removeChild(u)},1e3)},a=(c=null)=>{let u=c;if(u||(u=document.querySelector(".rcb-chat-window"),u||(u=document.querySelector('[class*="rcb-chat"]')),u||(u=document.querySelector(".qa-bot"))),!u)return;const d=u.closest(".embedded-qa-bot")!==null,A=Array.from(u.querySelectorAll(".rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container")).filter(y=>y.offsetParent!==null);if(A.length===0)return;const p=A[A.length-1],h=Array.from(p.querySelectorAll(".rcb-options-container")).filter(y=>y.offsetParent!==null);let m=[];if(h.length>0){const y=h[h.length-1];m=Array.from(y.querySelectorAll(".rcb-options"))}if(m.length===0){let y=p.querySelector(".rcb-checkbox-container");if(!y&&u&&(y=u.querySelector(".rcb-checkbox-container")),y&&y.offsetParent!==null){const C=Array.from(y.querySelectorAll(".rcb-checkbox-row-container")).filter(D=>D.offsetParent!==null&&D.style.display!=="none");if(C.length>0){const D=y.querySelector(".rcb-checkbox-next-button"),Q=[...C];if(D&&D.offsetParent!==null&&Q.push(D),Q.forEach((E,I)=>{E.setAttribute("tabindex",I===0?"0":"-1"),I===0?E.classList.add("keyboard-focused"):E.classList.remove("keyboard-focused")}),C.length>1){y.querySelectorAll(".keyboard-nav-hint").forEach(I=>I.remove());const E=document.createElement("div");E.className="keyboard-nav-hint",E.textContent="Use arrow keys ↕ to navigate, Enter to select/deselect, or click any option",E.style.cssText="font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;",y.insertBefore(E,y.firstChild)}return void setTimeout(()=>{Q[0]&&Q[0].offsetParent!==null&&!d&&Q[0].focus()},150)}}}if(m.length>0){if(m.forEach((y,C)=>{const D=C===0?"0":"-1";y.setAttribute("tabindex",D),y.setAttribute("role","option"),y.setAttribute("aria-posinset",C+1),y.setAttribute("aria-setsize",m.length),C===0?y.classList.add("keyboard-focused"):y.classList.remove("keyboard-focused")}),m.length>1){const y=h.length>0?h[h.length-1]:null;if(y){y.querySelectorAll(".keyboard-nav-hint").forEach(D=>D.remove());const C=document.createElement("div");C.className="keyboard-nav-hint",C.textContent="Use arrow keys ↕ to navigate, Enter to select, or click any option",C.style.cssText="font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;",y.insertBefore(C,y.firstChild)}}else{const y=h.length>0?h[h.length-1]:null;y&&y.querySelectorAll(".keyboard-nav-hint").forEach(C=>C.remove())}setTimeout(()=>{m[0]&&m[0].offsetParent!==null&&!d&&(m[0].focus(),m.length>1&&n(`${m.length} options available. Use arrow keys to navigate.`))},200)}},i=new MutationObserver(c=>{c.forEach(u=>{var d,A;if(u.type==="childList"){const p=Array.from(u.addedNodes),h=p.some(y=>{var C,D,Q,E;return y.nodeType===Node.ELEMENT_NODE&&(((C=y.classList)==null?void 0:C.contains("rcb-options-container"))||((D=y.classList)==null?void 0:D.contains("rcb-options"))||((Q=y.querySelector)==null?void 0:Q.call(y,".rcb-options-container"))||((E=y.querySelector)==null?void 0:E.call(y,".rcb-options")))}),m=p.some(y=>{var C,D;return y.nodeType===Node.ELEMENT_NODE&&(((C=y.classList)==null?void 0:C.contains("rcb-checkbox-container"))||((D=y.querySelector)==null?void 0:D.call(y,".rcb-checkbox-container")))});if(h||m){let y=u.target;for(;y&&!((d=y.classList)!=null&&d.contains("qa-bot"))&&!((A=y.classList)!=null&&A.contains("rcb-chat-window"));)y=y.parentElement;(y||document).querySelectorAll(".rcb-options[tabindex], .rcb-checkbox-row-container[tabindex], .rcb-checkbox-next-button[tabindex]").forEach(C=>{C.setAttribute("tabindex","-1"),C.classList.remove("keyboard-focused")}),setTimeout(()=>a(y),100)}}})});i.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("keydown",e),a();const o=setInterval(()=>{document.querySelectorAll(".qa-bot").forEach(c=>{const u=c.querySelectorAll(".rcb-options-container .rcb-options").length>0,d=c.querySelectorAll(".rcb-checkbox-row-container").length>0;if(u){const A=c.querySelectorAll(".rcb-options[tabindex]").length;c.querySelectorAll(".rcb-options").length>A&&a(c)}if(d){const A=c.querySelectorAll(".rcb-checkbox-row-container[tabindex]").length;c.querySelectorAll(".rcb-checkbox-row-container").length>A&&a(c)}})},1e3);return()=>{document.removeEventListener("keydown",e),i.disconnect(),clearInterval(o)}},[]),null),Mt=[];for(let e=0;e<256;++e)Mt.push((e+256).toString(16).slice(1));let Oc;const Gg=new Uint8Array(16);var Xd={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Jd(e,n,a){var o;if(Xd.randomUUID&&!e)return Xd.randomUUID();const i=(e=e||{}).random??((o=e.rng)==null?void 0:o.call(e))??function(){if(!Oc){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Oc=crypto.getRandomValues.bind(crypto)}return Oc(Gg)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(c,u=0){return(Mt[c[u+0]]+Mt[c[u+1]]+Mt[c[u+2]]+Mt[c[u+3]]+"-"+Mt[c[u+4]]+Mt[c[u+5]]+"-"+Mt[c[u+6]]+Mt[c[u+7]]+"-"+Mt[c[u+8]]+Mt[c[u+9]]+"-"+Mt[c[u+10]]+Mt[c[u+11]]+Mt[c[u+12]]+Mt[c[u+13]]+Mt[c[u+14]]+Mt[c[u+15]]).toLowerCase()}(i)}const Kd=()=>"qa_bot_session_".concat(Jd()),Vg="#1a5b6e",Xg="#107180",Jg="Arial, sans-serif",$d="Q&A Bot",Kg="/chat-icon.svg",$g="Type your question here...",Zg="Select an option to continue",qg=!1,em="Ask me a question!",Zd="/login",tm={general:{showHeader:!0,showFooter:!0},tooltip:{mode:"CLOSE"},chatInput:{disabled:!1,characterLimit:1e3,showCharacterCount:!1,allowNewline:!0,blockSpam:!1},chatWindow:{defaultOpen:!1,showScrollbar:!1},botBubble:{simulateStream:!0,streamSpeed:10,showAvatar:!1},userBubble:{showAvatar:!1},notification:{disabled:!0,showCount:!1},audio:{disabled:!0},emoji:{disabled:!0},fileAttachment:{disabled:!0}},Fc=R.forwardRef((e,n)=>{var a,i;const{apiKey:o,qaEndpoint:c,ratingEndpoint:u,welcomeMessage:d,open:A,onOpenChange:p,isLoggedIn:h,allowAnonAccess:m=!1,primaryColor:y,secondaryColor:C,botName:D,logo:Q,placeholder:E,errorMessage:I,embedded:_,footerText:B,footerLink:U,tooltipText:j,loginUrl:z,customFlow:W}=e,te=R.useRef("bot_".concat(Math.random().toString(36).substr(2,9))),J=R.useRef(Kd()),Y=R.useRef(!1),ee=R.useRef({getSessionId:()=>J.current,isResetting:()=>Y.current}),[Z,ie]=R.useState(h);R.useEffect(()=>{ie(h)},[h]);const ue=R.useMemo(()=>{const M=Object.assign({},tm);M.general=Object.assign(Object.assign({},M.general),{primaryColor:y||Vg,secondaryColor:C||Xg,fontFamily:Jg,embedded:_!==void 0?_:qg});const fe=Z===!1?R.createElement(Yd,{key:"login-button",loginUrl:z||Zd,isHeaderButton:!0}):R.createElement(Ug,{key:"user-icon"});M.header={title:D||$d,showAvatar:!0,avatar:Q||Kg,buttons:[fe,dt.CLOSE_CHAT_BUTTON]},M.chatInput=Object.assign(Object.assign({},M.chatInput),{disabled:!1,enabledPlaceholderText:E||$g,disabledPlaceholderText:I||Zg}),M.tooltip=Object.assign(Object.assign({},M.tooltip),{text:j||em});const O=B?U?R.createElement("a",{href:U,target:"_blank",rel:"noopener noreferrer",key:"footer-link"},B):R.createElement("span",{key:"footer-text"},B):null;return M.footer={text:O,buttons:[R.createElement(Wg,{key:"new-chat-button"})]},M},[y,C,D,Q,E,I,_,j,Z,z,B,U]),se=R.useRef(null),xe=function(M){let fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return R.useMemo(()=>{const O=(de,Ee)=>{if(M.current){const he=getComputedStyle(M.current).getPropertyValue(de);if(he&&he.trim()!=="")return he.trim();if(M.current.parentElement){const ve=getComputedStyle(M.current.parentElement).getPropertyValue(de);if(ve&&ve.trim()!=="")return ve.trim()}}return Ee};return{primaryColor:O("--primaryColor",fe.primaryColor),secondaryColor:O("--secondaryColor",fe.secondaryColor),fontFamily:O("--fontFamily",fe.fontFamily)}},[M,fe])}(se,ue.general);((M,fe)=>{R.useEffect(()=>{fe.current&&(M?fe.current.classList.add("bot-logged-in"):fe.current.classList.remove("bot-logged-in"))},[M,fe])})(Z!==!1,se),(M=>{let{settings:fe,themeColors:O}=M;R.useEffect(()=>{O&&(Object.entries(O).forEach(de=>{let[Ee,he]=de;he&&document.documentElement.style.setProperty("--".concat(Ee),he)}),O.primaryColor&&document.documentElement.style.setProperty("--rcb-header-background",O.primaryColor),O.secondaryColor&&document.documentElement.style.setProperty("--rcb-header-background-hover",O.secondaryColor))},[O]),R.useEffect(()=>{var de,Ee,he;!((de=fe.header)===null||de===void 0)&&de.title&&typeof fe.header.title=="string"&&(fe.header.title=R.createElement("div",{key:"header-title"},R.createElement("h1",{className:"sr-only"},fe.header.title),R.createElement("span",{"aria-hidden":"true"},fe.header.title))),!((Ee=fe.general)===null||Ee===void 0)&&Ee.embedded&&fe.chatWindow&&(fe.chatWindow.defaultOpen=!0),fe.device={desktopEnabled:!0,mobileEnabled:!0,applyMobileOptimizations:!1},fe.chatHistory={disabled:!1},fe.chatButton=Object.assign(Object.assign({},fe.chatButton),{icon:(he=fe.header)===null||he===void 0?void 0:he.avatar}),fe.event={rcbToggleChatWindow:!0}},[fe])})({settings:ue,themeColors:xe});const ge=R.useMemo(()=>{const M=(O=>{let{endpoint:de,ratingEndpoint:Ee,apiKey:he,sessionId:ve,isResetting:Te=()=>!1,isLoggedIn:Qe,allowAnonAccess:tt=!1,loginUrl:Le="/login"}=O;if(Qe===!1&&!tt)return{qa_loop:{message:"To ask questions, please log in first.",component:R.createElement(Yd,{loginUrl:Le}),chatDisabled:!0,path:"qa_loop"}};let Je=null,qe=!1;if(!de)throw new Error("Q&A endpoint is required");return{qa_loop:{message:async ft=>{const{userInput:Ne}=ft;if(Te&&Te()||!Ne||Ne.trim()==="")return null;if(Ne==="👍 Helpful"||Ne==="👎 Not helpful"){if(Ee&&Je)try{const We=Ne==="👍 Helpful",ct={"Content-Type":"application/json"};he&&(ct["X-API-KEY"]=he);const ht=ve();ht&&(ct["X-Session-ID"]=ht,ct["X-Query-ID"]=Je),await fetch(Ee,{method:"POST",headers:ct,body:JSON.stringify({sessionId:ht,queryId:Je,rating:We?1:0})})}catch(We){console.error("Error sending feedback:",We)}return"Thanks for the feedback! Feel free to ask another question."}try{const We=Jd();Je=We;const ct={"Content-Type":"application/json"};he&&(ct["X-API-KEY"]=he);const ht=ve();ht&&(ct["X-Session-ID"]=ht,ct["X-Query-ID"]=We);const ln=await fetch(de,{method:"POST",headers:ct,body:JSON.stringify({query:Ne})});if(!ln.ok)throw new Error("API returned ".concat(ln.status));const pt=await ln.json(),Ft=pt.response||pt.answer||pt.text||pt.message;if(!Ft)throw new Error("Invalid response format from API");const jt=(Gt=>{if(!Gt||typeof Gt!="string")return Gt;let gt=Gt.replace(/\[(https?:\/\/[^\s]+?)\]/gi,"[$1]($1)");return gt=gt.replace(new RegExp(`(?<!\\]\\(|href=["']|\\[)https?:\\/\\/[^\\s[\\]()]+`,"gi"),st=>{let Xe=st,Vt="";const cn=Xe.match(/([.,;:!?]+)$/);return cn&&(Vt=cn[1],Xe=Xe.slice(0,-Vt.length)),"[".concat(Xe,"](").concat(Xe,")").concat(Vt)}),gt})(Ft);return await ft.injectMessage(jt),qe=!0,setTimeout(async()=>{await ft.injectMessage("Feel free to ask another question.")},100),null}catch(We){return console.error("Error in Q&A flow:",We),"I apologize, but I'm having trouble processing your question. Please try again later."}},options:ft=>Te&&Te()||ft.userInput==="👍 Helpful"||ft.userInput==="👎 Not helpful"?[]:Ee&&qe?["👍 Helpful","👎 Not helpful"]:[],renderMarkdown:["BOT"],chatDisabled:!1,path:"qa_loop"}}})({endpoint:c,ratingEndpoint:u,apiKey:o,sessionId:ee.current.getSessionId,isResetting:ee.current.isResetting,isLoggedIn:Z,allowAnonAccess:m,loginUrl:z||Zd});return Object.assign(Object.assign({start:{message:d,transition:{duration:0},path:"qa_loop"}},M),W||{})},[o,c,u,d,Z,m,z,W]),me=R.useMemo(()=>{return[()=>Hp(fe),Hg(),()=>Ng(M)];var M,fe},[]);return R.useEffect(()=>{const M=()=>{const O=document.querySelector(".rcb-chat-window");if(!O)return;const de=O.querySelector(".rcb-send-button");de&&(de.hasAttribute("tabindex")||de.setAttribute("tabindex","0"),de.hasAttribute("data-keyboard-enabled")||(de.setAttribute("data-keyboard-enabled","true"),de.addEventListener("keydown",Ee=>{if(Ee.key==="Enter"||Ee.key===" "){Ee.preventDefault();const he=de&&Object.keys(de).find(Te=>Te.startsWith("__reactProps"));if(he){const Te=de[he],Qe=Te==null?void 0:Te.onMouseDown;if(Qe&&typeof Qe=="function")return void Qe(Ee)}const ve=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});de.dispatchEvent(ve)}})))},fe=setInterval(M,1e3);return M(),()=>clearInterval(fe)},[]),Yg(),R.useEffect(()=>{if(!_&&p){const M=fe=>{const O=fe.data.newState;p(O)};return window.addEventListener("rcb-toggle-chat-window",M),()=>{window.removeEventListener("rcb-toggle-chat-window",M)}}},[_,p]),R.createElement("div",{className:"qa-bot ".concat(!((a=ue.general)===null||a===void 0)&&a.embedded?"embedded-qa-bot":""),ref:se,role:"region","aria-label":D||$d},R.createElement(jg,{resetSession:()=>{Y.current=!0,J.current=Kd()},clearResettingFlag:()=>{Y.current=!1}},R.createElement(yA,null,R.createElement("div",null,R.createElement(Wd,{ref:n,embedded:((i=ue.general)===null||i===void 0?void 0:i.embedded)||!1,currentOpen:A||!1,enabled:Z!==!1,onSetEnabled:M=>ie(!!M&&void 0)}),R.createElement(bp,{key:"chatbot-".concat(te.current,"-").concat(Z),settings:ue,flow:ge,plugins:me}),R.createElement("div",{role:"status","aria-live":"polite","aria-label":"Bot response updates",className:"sr-only",id:"bot-live-region"}),R.createElement("div",{id:"chat-input-help",className:"sr-only"},"Type your message and press Enter to send. Use arrow keys to navigate through response options.")))))});Fc.displayName="QABot",zu('.rcb-chat-window{height:800px!important;max-height:80vh!important;max-width:100%;width:550px!important}.rcb-chat-window .rcb-chat-header{align-items:center;display:flex;flex-direction:row;font-weight:700}.rcb-chat-window a{color:#000;font-weight:700;text-decoration:underline}.rcb-chat-window a:hover{color:var(--primaryColor,#107180)}.rcb-chat-window .rcb-bot-message a{color:#fff;text-decoration:none}.rcb-chat-window .rcb-bot-message a:hover{text-decoration:underline}.rcb-chat-window .rcb-chat-input-textarea{overflow-y:auto}.rcb-chat-window .rcb-chat-footer-container{font-size:10px}.qa-bot .user-login-icon{display:none!important}.qa-bot.bot-logged-in .user-login-icon{display:flex!important;transform:scale(1.3) translateY(-2px)}.embedded-qa-bot .rcb-chat-window{max-width:100%;width:100%!important}.qa-bot.hidden{display:none}.embedded-qa-bot .rcb-bot-message,.embedded-qa-bot .rcb-user-message{max-width:90%!important;word-break:break-word}.embedded-qa-bot .rcb-chat-input-textarea{width:100%!important}.qa-bot-container{max-width:100%;width:100%}@keyframes phone-ring{0%{transform:translateX(0) translateY(0) rotate(0deg)}2%{transform:translateX(0) translateY(-8px) rotate(-2deg)}4%{transform:translateX(0) translateY(-6px) rotate(2deg)}6%{transform:translateX(0) translateY(-8px) rotate(-1deg)}8%{transform:translateX(0) translateY(-6px) rotate(1deg)}10%{transform:translateX(0) translateY(-8px) rotate(-2deg)}12%{transform:translateX(0) translateY(-6px) rotate(2deg)}20%{transform:translateX(0) translateY(0) rotate(0deg)}30%{transform:translateX(0) translateY(0) rotate(0deg)}40%{transform:translateX(0) translateY(0) rotate(0deg)}49%{transform:translateX(0) translateY(0) rotate(0deg)}50%{transform:translateX(0) translateY(-8px) rotate(-2deg)}52%{transform:translateX(0) translateY(-6px) rotate(2deg)}54%{transform:translateX(0) translateY(-8px) rotate(-1deg)}56%{transform:translateX(0) translateY(-6px) rotate(1deg)}58%{transform:translateX(0) translateY(-8px) rotate(-2deg)}60%{transform:translateX(0) translateY(-6px) rotate(2deg)}70%{transform:translateX(0) translateY(0) rotate(0deg)}to{transform:translateX(0) translateY(0) rotate(0deg)}}@media (max-width:768px){.rcb-chat-window{max-height:calc(100vh - 100px)!important;max-width:calc(100vw - 40px)!important;width:550px!important}.embedded-chat-container.open{height:400px}.embedded-chat-closed{font-size:14px;height:40px}.embedded-chat-open-btn{font-size:12px;padding:3px 10px}.rcb-bot-message,.rcb-user-message{max-width:85%!important}.rcb-chat-input-textarea{font-size:16px!important;min-height:44px!important}.rcb-chat-header{padding:12px 16px!important}}@media (max-width:480px){.rcb-chat-window{bottom:10px!important;left:10px!important;max-height:calc(100vh - 80px)!important;max-width:calc(100vw - 20px)!important;right:10px!important;width:calc(100vw - 20px)!important}.embedded-chat-container.open{height:350px}.rcb-bot-message,.rcb-user-message{margin-bottom:8px!important;max-width:90%!important}.rcb-chat-header{font-size:14px!important;padding:8px 12px!important}.rcb-chat-button{bottom:20px!important;height:50px!important;right:20px!important;width:50px!important}.rcb-chat-footer-container{font-size:9px!important;padding:8px 12px!important}}@media (max-width:360px){.rcb-chat-window{left:5px!important;max-width:calc(100vw - 10px)!important;right:5px!important;width:calc(100vw - 10px)!important}.rcb-chat-header{font-size:13px!important;padding:6px 8px!important}}.rcb-checkbox-container{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-left:16px!important;max-width:100%!important;padding-top:12px!important}.rcb-checkbox-row-container{align-items:center!important;background-color:#fff!important;border:1px solid #d0d0d0!important;border-radius:6px!important;box-sizing:border-box!important;color:var(--primaryColor,#107180)!important;cursor:pointer!important;display:flex!important;flex:0 0 auto!important;font-size:14px!important;font-weight:400!important;margin:0!important;max-height:auto!important;min-height:auto!important;padding:8px 12px!important;text-align:center!important;transition:all .2s ease!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto!important}.rcb-checkbox-row-container:hover{background-color:#e8f4f8!important;border-color:var(--primaryColor,#107180)!important;box-shadow:0 2px 4px #10718033!important;transform:translateY(-1px)!important}.rcb-checkbox-row-container[data-checked=true]{background-color:var(--primaryColor,#107180)!important;border-color:var(--primaryColor,#107180)!important;color:#fff!important}.rcb-checkbox-row{margin-left:0!important}.rcb-checkbox-mark{height:14px!important;margin-right:6px!important;width:14px!important}.rcb-checkbox-label{font-size:13px!important;margin:0!important;white-space:nowrap!important}.rcb-checkbox-next-button{align-items:center!important;background-color:#fff!important;border:1px solid #d0d0d0!important;border-radius:6px!important;box-sizing:border-box!important;color:var(--secondaryColor,#107180)!important;cursor:pointer!important;display:flex!important;flex:0 0 auto!important;font-size:14px!important;font-weight:400!important;justify-content:center!important;line-height:24px!important;margin:0!important;max-height:auto!important;min-height:auto!important;padding:8px 12px!important;text-align:center!important;transition:all .2s ease!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto!important}.rcb-checkbox-next-button:hover{background-color:#e8f4f8!important;border-color:var(--secondaryColor,#107180)!important;box-shadow:0 2px 4px #10718033!important;transform:translateY(-1px)!important}.sr-only{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.rcb-chat-input-send-button:focus,.rcb-chat-input-textarea:focus{outline:2px solid var(--primaryColor,#107180)!important;outline-offset:2px!important}.rcb-user-message{word-wrap:break-word!important;overflow:hidden!important;word-break:break-word!important}:focus-visible{outline:2px solid var(--primaryColor,#107180)!important;outline-offset:2px!important}.rcb-options-container{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:8px!important;margin:16px!important;padding:0!important}.rcb-options{background-color:#fff!important;border:1px solid #d0d0d0!important;border-radius:6px!important;box-sizing:border-box!important;color:var(--secondaryColor,#107180)!important;cursor:pointer!important;flex:0 0 auto!important;font-size:14px!important;font-weight:400!important;outline:none!important;padding:8px 12px!important;text-align:center!important;transition:all .2s ease!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto!important}.rcb-options:hover{background-color:#e8f4f8!important;border-color:var(--secondaryColor,#107180)!important;box-shadow:0 2px 4px #10718033!important;transform:translateY(-1px)!important}.rcb-checkbox-next-button.keyboard-focused,.rcb-checkbox-next-button:focus,.rcb-checkbox-next-button:focus-visible,.rcb-checkbox-row-container.keyboard-focused,.rcb-checkbox-row-container:focus,.rcb-checkbox-row-container:focus-visible,.rcb-options.keyboard-focused,.rcb-options:focus,.rcb-options:focus-visible{background-color:#e8f4f8!important;border-color:var(--secondaryColor,#107180)!important;outline:none!important}.rcb-options:active{background-color:var(--secondaryColor,#107180)!important;border-color:var(--secondaryColor,#107180)!important;color:#fff!important;transform:translateY(0)!important}.keyboard-nav-hint{color:#666!important;font-size:12px!important;font-style:italic!important;margin-bottom:8px!important}@media (prefers-reduced-motion:reduce){.keyboard-nav-hint{display:none!important}}.rcb-options-container [role=button][tabindex="0"],.rcb-options-container button[tabindex="0"]{position:relative!important}.rcb-options-container [role=button][tabindex="0"]:after,.rcb-options-container button[tabindex="0"]:after{color:var(--secondaryColor,#107180)!important;content:"←"!important;font-size:16px!important;opacity:0!important;position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;transition:opacity .2s ease!important}.rcb-options-container [role=button][tabindex="0"]:focus:after,.rcb-options-container button[tabindex="0"]:focus:after{opacity:1!important}.rcb-chat-input-send-button{cursor:pointer!important;opacity:1!important;pointer-events:auto!important;visibility:visible!important}.rcb-chat-input-send-button:not([tabindex]){-webkit-user-select:none;-moz-user-select:none;user-select:none}.rcb-chat-input-container [onclick],.rcb-chat-input-container [role=button],.rcb-chat-input-container div[style*=cursor],.rcb-chat-input-container svg:last-child,.rcb-chat-input-container>div:last-child{tabindex:0!important;cursor:pointer!important}.rcb-chat-footer{margin-top:4px!important;padding-top:0!important}.rcb-chat-footer-container{align-items:center!important;display:flex!important;margin-top:4px!important;padding-top:4px!important}.rcb-chat-footer-container button{order:1!important}.rcb-chat-footer-container a[href*=qa-bot-core]{tab-index:0!important;order:2!important}.rcb-chat-footer-container a[href*=feedback]{tab-index:0!important;order:3!important}@media (prefers-contrast:high){.rcb-chat-window a{background-color:#fff!important;border:1px solid #000!important;color:#000!important}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.rcb-chat-input-textarea{user-select:text!important}.rcb-chat-body-container,.rcb-chat-input-textarea,.rcb-chat-window{touch-action:pan-y!important}.embedded-qa-bot,.rcb-chat-window{-webkit-overflow-scrolling:touch!important}.embedded-qa-bot .rcb-chat-input-textarea{touch-action:pan-y!important;user-select:text!important}.embedded-qa-bot .rcb-chat-body-container,.embedded-qa-bot .rcb-chat-window{touch-action:pan-y!important}.rcb-chat-header-container{background:var(--primaryColor,#1a5b6e)!important;background:linear-gradient(135deg,var(--primaryColor,#1a5b6e) 0,var(--secondaryColor,#107180) 100%)!important}.rcb-toggle-button{align-items:center!important;background:var(--primaryColor,#1a5b6e)!important;display:flex!important;justify-content:center!important}.rcb-toggle-button svg{stroke:#fff!important;color:#fff!important}.rcb-toggle-button *,.rcb-toggle-button img,.rcb-toggle-button svg,.rcb-toggle-button>*{box-sizing:border-box!important;height:50px!important;left:0!important;margin:0 auto!important;max-height:50px!important;max-width:50px!important;min-height:50px!important;min-width:50px!important;padding:2px!important;position:relative!important;top:0!important;width:50px!important}.rcb-send-button{background-color:var(--primaryColor,#1a5b6e)!important}',{insertAt:"top"});const nm=()=>{const[e,n]=R.useState(!1),a=()=>typeof navigator<"u"&&navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getDisplayMedia=="function";return{captureScreenshot:async()=>{if(!a())throw new Error("Screen capture is not available in this environment");try{n(!0);const i=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser",cursor:"always",width:{ideal:1920},height:{ideal:1080}},audio:!1}),o=document.createElement("video");o.srcObject=i,await new Promise(h=>{o.onloadedmetadata=()=>{o.play(),h()}});const c=document.createElement("canvas");c.width=o.videoWidth,c.height=o.videoHeight;const u=c.getContext("2d");if(!u)throw new Error("Could not get canvas context");u.drawImage(o,0,0,c.width,c.height);const d=await new Promise(h=>c.toBlob(h,"image/png"));if(!d)throw new Error("Could not create image blob");const A=new Date().toISOString().replace(/[:.]/g,"-"),p=new File([d],"screenshot-".concat(A,".png"),{type:"image/png"});return i.getTracks().forEach(h=>h.stop()),n(!1),p}catch(i){throw console.error("Error capturing screenshot:",i),n(!1),i}},isCapturing:e,isScreenCaptureAvailable:a()}},rm=e=>R.createElement(Gd,e,R.createElement("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),R.createElement("polyline",{points:"17 8 12 3 7 8"}),R.createElement("line",{x1:"12",y1:"3",x2:"12",y2:"15"})),om=e=>new Promise((n,a)=>{const i=new FileReader;i.onload=()=>{if(typeof i.result!="string")return void a(new Error("Failed to read file ".concat(e.name)));const o=i.result.split(",")[1];n({fileName:e.name,contentType:e.type,size:e.size,fileData:o})},i.onerror=()=>a(new Error("Failed to read file ".concat(e.name))),i.readAsDataURL(e)}),am=e=>Promise.all(e.map(om)),im=e=>e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB"),Xs=e=>{let{onFileUpload:n,maxSizeMB:a=10,acceptedTypes:i="image/*,application/pdf,text/*,.doc,.docx",enableScreenshot:o=!1,className:c}=e;const[u,d]=R.useState(!1),[A,p]=R.useState([]),[h,m]=R.useState(null),y=R.useRef(null),{captureScreenshot:C,isCapturing:D,isScreenCaptureAvailable:Q}=nm(),E=z=>{const W=document.createElement("div");W.setAttribute("aria-live","assertive"),W.setAttribute("aria-atomic","true"),W.className="sr-only",W.textContent=z,document.body.appendChild(W),setTimeout(()=>document.body.removeChild(W),1e3)},I=z=>{if(!z||z.length===0)return void console.warn("FileUploadComponent: No valid files provided to handleFiles");let W;try{W=Array.from(z)}catch(ee){return console.error("FileUploadComponent: Error converting files to array:",ee),void E("Error processing selected files. Please try again.")}const te=[...A,...W];p(te);const J=W.length,Y=W.map(ee=>ee.name).join(", ");E("".concat(J," file").concat(J>1?"s":""," selected: ").concat(Y)),setTimeout(()=>{const ee=document.querySelector(".rcb-chat-content");ee&&(ee.scrollTop=ee.scrollHeight)},100),n&&n(te)},_=z=>{z.preventDefault(),z.stopPropagation(),z.type==="dragenter"||z.type==="dragover"?d(!0):z.type==="dragleave"&&d(!1)},B=()=>{try{y.current&&y.current.click()}catch(z){console.error("FileUploadComponent: Error in handleButtonClick:",z),E("Error opening file selection dialog. Please try again.")}},U=()=>{m(null)},j=o&&Q;return R.createElement("div",{className:"file-upload-container ".concat(c||""),style:{padding:"16px",margin:"8px 0"}},j&&R.createElement("div",{style:{display:"flex",justifyContent:"center",marginBottom:"10px"}},R.createElement("button",{onClick:z=>{z.preventDefault(),(async()=>{try{const W=await C();I([W]),E("Screenshot captured successfully")}catch{E("Error capturing screenshot. Please try again.")}})()},disabled:D,"aria-describedby":"screenshot-help","aria-label":D?"Taking screenshot, please wait":"Take a screenshot to attach",style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:"#107180",color:"white",border:"none",borderRadius:"5px",padding:"8px 12px",cursor:D?"not-allowed":"pointer",fontSize:"14px",fontWeight:"500",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}},R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},R.createElement("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),R.createElement("circle",{cx:"12",cy:"13",r:"4"})),D?"Taking screenshot...":"Take screenshot..."),R.createElement("span",{id:"screenshot-help",className:"sr-only"},"Captures the current screen and adds it as an attachment")),R.createElement("div",{className:"file-upload-dropzone ".concat(u?"active":""),onDragEnter:_,onDragLeave:_,onDragOver:_,onDrop:z=>{var W;z.preventDefault(),z.stopPropagation(),d(!1);try{!((W=z.dataTransfer)===null||W===void 0)&&W.files&&z.dataTransfer.files.length>0&&I(z.dataTransfer.files)}catch(te){console.error("FileUploadComponent: Error in handleDrop:",te),E("Error processing dropped files. Please try again.")}},role:"button",tabIndex:0,"aria-label":"File upload area. Click to select files or drag and drop files here.","aria-describedby":"upload-instructions",onKeyDown:z=>{z.key!=="Enter"&&z.key!==" "||(z.preventDefault(),B())},style:{padding:"20px",border:"2px dashed #ccc",borderRadius:"8px",backgroundColor:u?"#f0f8ff":"#fafafa",transition:"all 0.3s ease"}},R.createElement("input",{ref:y,type:"file",className:"file-input",onChange:z=>{var W;try{!((W=z.target)===null||W===void 0)&&W.files&&z.target.files.length>0&&I(z.target.files)}catch(te){console.error("FileUploadComponent: Error in handleFileSelect:",te),E("Error processing selected files. Please try again.")}},multiple:!0,style:{display:"none"},"aria-label":"Select files to upload",accept:i}),R.createElement("div",{className:"upload-content",onClick:B,style:{cursor:"pointer",flexDirection:"column",alignItems:"center",display:"flex",textAlign:"center",padding:"12px"}},R.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"8px"}},R.createElement("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"10px"}},R.createElement(rm,null),R.createElement("p",{style:{margin:0,fontWeight:"bold"}},"Upload Files")),R.createElement("p",{id:"upload-instructions",style:{margin:0,fontSize:"14px",color:"#666"}},"Drag and drop files here or click to select. (Max ",a,"MB each)")),A.length>0&&R.createElement("div",{className:"selected-files",style:{display:"flex",flexWrap:"wrap",gap:"8px",marginTop:"12px",alignItems:"center"}},R.createElement("span",{style:{fontWeight:400,color:"#888",fontSize:"13px",marginRight:"8px",alignSelf:"center"}},"Selected files:"),A.map((z,W)=>R.createElement("span",{key:W,style:{background:"#fff",color:"#107180",borderRadius:"5px",padding:"4px 12px",fontSize:"14px",marginRight:"4px",marginBottom:"4px",border:"1px solid #ccc",display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},onClick:te=>{te.stopPropagation(),(J=>{m(J)})(z)}},R.createElement("span",{onClick:te=>{te.stopPropagation(),(J=>{const Y=A.filter((ee,Z)=>Z!==J);p(Y),n&&n(Y)})(W)},style:{cursor:"pointer",color:"#888",fontWeight:"bold",fontSize:"15px",marginRight:"4px",userSelect:"none",lineHeight:1},title:"Remove file","aria-label":"Remove ".concat(z.name)},"×"),z.name," (",im(z.size),")"))))),(()=>{if(!h)return null;const z=h.type.startsWith("image/"),W=h.type.startsWith("text/"),te=h.type==="application/pdf";return R.createElement("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",justifyContent:"center",alignItems:"center",zIndex:1e3},onClick:U},R.createElement("div",{style:{backgroundColor:"white",padding:"20px",borderRadius:"8px",maxWidth:"90%",maxHeight:"90%",overflow:"auto",position:"relative"},onClick:J=>J.stopPropagation()},R.createElement("button",{onClick:U,style:{position:"absolute",top:"10px",right:"10px",background:"none",border:"none",fontSize:"24px",cursor:"pointer",color:"#666"}},"×"),R.createElement("h3",{style:{marginTop:0,marginBottom:"16px"}},h.name),z&&R.createElement("img",{src:URL.createObjectURL(h),alt:h.name,style:{maxWidth:"100%",maxHeight:"70vh"}}),W&&R.createElement("pre",{style:{whiteSpace:"pre-wrap",wordWrap:"break-word",maxHeight:"70vh",overflow:"auto",padding:"16px",backgroundColor:"#f5f5f5",borderRadius:"4px"}},URL.createObjectURL(h)),te&&R.createElement("iframe",{src:URL.createObjectURL(h),style:{width:"100%",height:"70vh",border:"none"},title:h.name}),!z&&!W&&!te&&R.createElement("div",{style:{padding:"20px",textAlign:"center"}},"Preview not available for this file type")))})())};function sm(e,n){if(!n||Object.keys(n).length===0)return e;const a={};for(const[i,o]of Object.entries(e)){let c=Object.assign({},o);if(c.chatDisabled===void 0){const u=!(!c.options&&!c.checkboxes);c.chatDisabled=u}a[i]=c}return a}const lm=R.forwardRef((e,n)=>{const[a,i]=R.useState(e.defaultOpen||!1),o=R.useRef(null);return R.useImperativeHandle(n,()=>({addMessage:c=>{var u;(u=o.current)===null||u===void 0||u.addMessage(c)},setBotEnabled:c=>{var u;(u=o.current)===null||u===void 0||u.setBotEnabled(c)},openChat:()=>{var c;i(!0),(c=o.current)===null||c===void 0||c.openChat()},closeChat:()=>{var c;i(!1),(c=o.current)===null||c===void 0||c.closeChat()},toggleChat:()=>{var c;i(u=>!u),(c=o.current)===null||c===void 0||c.toggleChat()}}),[]),R.createElement(Fc,{ref:o,apiKey:e.apiKey,qaEndpoint:e.qaEndpoint,ratingEndpoint:e.ratingEndpoint,welcomeMessage:e.welcomeMessage,primaryColor:e.primaryColor,secondaryColor:e.secondaryColor,botName:e.botName,logo:e.logo,placeholder:e.placeholder,errorMessage:e.errorMessage,embedded:e.embedded,isLoggedIn:e.isLoggedIn,allowAnonAccess:e.allowAnonAccess,open:a,onOpenChange:i,footerText:e.footerText,footerLink:e.footerLink,tooltipText:e.tooltipText})});lm.displayName="ProgrammaticQABot";const eo={QA_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/chat/api/",RATING_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/chat/rating/",METRICS_API_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/xdmod/chat/api/",METRICS_RATING_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/xdmod/chat/rating/",METRICS_QUESTIONS_URL:"https://metrics.access-ci.org/qa_bot_faq",NETLIFY_BASE_URL:"https://access-jsm-api.netlify.app",DEFAULT_API_KEY:"4nn5l4T4TnkMdzsK0AwAtnGRcheBDnjawuAT42LaOLc"},Dr={BOT_NAME:"ACCESS Q&A",LOGO:"https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg",WELCOME_MESSAGE:"Hello! What can I help you with?",WELCOME_MESSAGE_LOGGED_OUT:"To ask questions, please log in.",LOGIN_URL:"/login",PRIMARY_COLOR:"#1a5b6e",SECONDARY_COLOR:"#107180",TOOLTIP:"Ask me about ACCESS! 😊"},qd={SESSION_ID:"access-qa-bot-session-id"};function cm({welcome:e,setTicketForm:n,isLoggedIn:a}){return{start:{message:e,options:["Ask a question about ACCESS","Open a Help Ticket","Usage and performance of ACCESS resources (XDMoD)","Report a security issue"],path:i=>i.userInput==="Ask a question about ACCESS"?a?"go_ahead_and_ask":"qa_loop":i.userInput==="Open a Help Ticket"?(n({}),"help_ticket"):i.userInput==="Usage and performance of ACCESS resources (XDMoD)"?"metrics_intro":i.userInput==="Report a security issue"?(n({}),"security_incident"):"start"},go_ahead_and_ask:{message:"Go ahead and ask your question! I'll do my best to help.",path:"qa_loop"}}}let Lc=null;function um(e){Lc=e}function Ie(){return Lc?Lc.ticketForm||{}:(console.warn("Form context not available, returning empty form"),{})}function Rt(e={}){const n=Ie();return{...n,email:e.email||n.email,name:e.name||n.name,accessId:e.accessId||n.accessId}}function Qc(e){return e&&e.length>0?`
|
|
142
|
+
`),R.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"qa-bot-login-button ".concat(o?"qa-bot-header-login-button":""," ").concat(a),style:Object.assign(Object.assign({},c),i)},"Log In"))},Ug=()=>R.createElement("div",{className:"user-login-icon",style:{alignItems:"center",justifyContent:"center",width:"30px",height:"30px",borderRadius:"50%",backgroundColor:"var(--primaryColor, #1a5b6e)",marginRight:"5px",display:"flex"},role:"img","aria-label":"User logged in",title:"User logged in"},R.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false"},R.createElement("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),R.createElement("circle",{cx:"12",cy:"7",r:"4"})));function Rc(){return Rc=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var i in a)({}).hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},Rc.apply(null,arguments)}const Gd=({width:e=24,height:n=24,color:a="currentColor",children:i,...o})=>R.createElement("svg",Rc({xmlns:"http://www.w3.org/2000/svg",width:e,height:n,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false"},o),i),zg=e=>R.createElement(Gd,e,R.createElement("path",{d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})),Vd=R.createContext(void 0),jg=e=>{let{children:n,resetSession:a,clearResettingFlag:i}=e;return R.createElement(Vd.Provider,{value:{resetSession:a,clearResettingFlag:i}},n)},Wg=()=>{const{restartFlow:e}=Qs(),{setTextAreaValue:n}=(()=>{const{textAreaDisabled:o,toggleTextAreaDisabled:c,textAreaSensitiveMode:u,toggleTextAreaSensitiveMode:d,getTextAreaValue:A,setTextAreaValue:p,focusTextArea:h,blurTextArea:m}=Fo();return{textAreaDisabled:o,toggleTextAreaDisabled:c,textAreaSensitiveMode:u,toggleTextAreaSensitiveMode:d,getTextAreaValue:A,setTextAreaValue:p,focusTextArea:h,blurTextArea:m}})(),{resetSession:a,clearResettingFlag:i}=(()=>{const o=R.useContext(Vd);if(!o)throw new Error("useSession must be used within a SessionProvider");return o})();return R.createElement("button",{onClick:async()=>{a(),await n(""),await e(),setTimeout(()=>{i()},100)},tabIndex:0,"aria-label":"New chat conversation",style:{backgroundColor:"var(--primaryColor, #107180)",border:"none",color:"#ffffff",fontSize:"14px",cursor:"pointer",padding:"8px 12px",borderRadius:"4px",transition:"all 0.2s ease",display:"flex",alignItems:"center",gap:"6px",fontWeight:"500"},onMouseEnter:o=>{o.target.style.backgroundColor="var(--secondaryColor, #0d5f6b)"},onMouseLeave:o=>{o.target.style.backgroundColor="var(--primaryColor, #107180)"}},R.createElement(zg,{width:16,height:16}),"New Chat")},Yg=()=>(R.useEffect(()=>{const e=c=>{if(!["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Enter"," ","Home","End"].includes(c.key))return;const u=document.activeElement;if(u&&(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.contentEditable==="true"||u.classList.contains("rcb-chat-input-textarea")))return;const d=document.querySelector(".rcb-chat-window");if(!d)return;const A=Array.from(d.querySelectorAll(".rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container")).filter(m=>m.offsetParent!==null);if(A.length>0){const m=A[A.length-1].querySelector(".rcb-checkbox-container");if(m&&m.offsetParent!==null){const y=Array.from(m.querySelectorAll(".rcb-checkbox-row-container")),C=m.querySelector(".rcb-checkbox-next-button");if(y.length>0){const D=[...y];return C&&D.push(C),void((Q,E)=>{Q.preventDefault();let I=-1;for(let B=0;B<E.length;B++)if(E[B]===document.activeElement||E[B].contains(document.activeElement)){I=B;break}I===-1&&(I=0);let _=I;switch(Q.key){case"ArrowDown":case"ArrowRight":_=I<E.length-1?I+1:0;break;case"ArrowUp":case"ArrowLeft":_=I>0?I-1:E.length-1;break;case"Home":_=0;break;case"End":_=E.length-1;break;case"Enter":case" ":{const B=E[I],U=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});return void B.dispatchEvent(U)}default:return}E[_].focus(),E[_].setAttribute("tabindex","0"),E[_].classList.add("keyboard-focused"),E.forEach((B,U)=>{U!==_&&(B.setAttribute("tabindex","-1"),B.classList.remove("keyboard-focused"))})})(c,D)}}}let p=[];if(A.length>0){const m=A[A.length-1],y=Array.from(m.querySelectorAll(".rcb-options-container")).filter(C=>C.offsetParent!==null);if(y.length>0){const C=y[y.length-1];p=Array.from(C.querySelectorAll(".rcb-options"))}}if(p.length===0)return;const h=p.findIndex(m=>m===document.activeElement);switch(c.key){case"ArrowDown":case"ArrowRight":{let m;c.preventDefault(),m=h<p.length-1?h+1:0,p[m].setAttribute("tabindex","0"),p.forEach((y,C)=>{C!==m&&(y.setAttribute("tabindex","-1"),y.classList.remove("keyboard-focused"))}),p[m].classList.add("keyboard-focused"),p[m].focus();break}case"ArrowUp":case"ArrowLeft":{let m;c.preventDefault(),m=h>0?h-1:p.length-1,p[m].setAttribute("tabindex","0"),p.forEach((y,C)=>{C!==m&&(y.setAttribute("tabindex","-1"),y.classList.remove("keyboard-focused"))}),p[m].classList.add("keyboard-focused"),p[m].focus();break}case"Enter":case" ":if(c.preventDefault(),document.activeElement&&p.includes(document.activeElement)){const m=document.activeElement;if(m.classList.contains("rcb-checkbox-row-container")||m.closest(".rcb-checkbox-row-container")){const y=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});m.dispatchEvent(y);const C=m.querySelector(".rcb-checkbox-label"),D=C?C.textContent:m.textContent||"checkbox",Q=m.querySelector(".rcb-checkbox-mark"),E=Q&&Q.style.backgroundColor?"checked":"unchecked";n(`${D} ${E}`)}else{const y=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});m.dispatchEvent(y);const C=m.textContent||m.innerText;n(`Selected: ${C}`)}}break;case"Home":c.preventDefault(),p.length>0&&(p[0].setAttribute("tabindex","0"),p.forEach((m,y)=>{y!==0&&(m.setAttribute("tabindex","-1"),m.classList.remove("keyboard-focused"))}),p[0].classList.add("keyboard-focused"),p[0].focus());break;case"End":if(c.preventDefault(),p.length>0){const m=p.length-1;p[m].setAttribute("tabindex","0"),p.forEach((y,C)=>{C!==m&&(y.setAttribute("tabindex","-1"),y.classList.remove("keyboard-focused"))}),p[m].classList.add("keyboard-focused"),p[m].focus()}}},n=c=>{const u=document.createElement("div");u.setAttribute("aria-live","assertive"),u.setAttribute("aria-atomic","true"),u.className="sr-only",u.textContent=c,document.body.appendChild(u),setTimeout(()=>{document.body.contains(u)&&document.body.removeChild(u)},1e3)},a=(c=null)=>{let u=c;if(u||(u=document.querySelector(".rcb-chat-window"),u||(u=document.querySelector('[class*="rcb-chat"]')),u||(u=document.querySelector(".qa-bot"))),!u)return;const d=u.closest(".embedded-qa-bot")!==null,A=Array.from(u.querySelectorAll(".rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container")).filter(y=>y.offsetParent!==null);if(A.length===0)return;const p=A[A.length-1],h=Array.from(p.querySelectorAll(".rcb-options-container")).filter(y=>y.offsetParent!==null);let m=[];if(h.length>0){const y=h[h.length-1];m=Array.from(y.querySelectorAll(".rcb-options"))}if(m.length===0){let y=p.querySelector(".rcb-checkbox-container");if(!y&&u&&(y=u.querySelector(".rcb-checkbox-container")),y&&y.offsetParent!==null){const C=Array.from(y.querySelectorAll(".rcb-checkbox-row-container")).filter(D=>D.offsetParent!==null&&D.style.display!=="none");if(C.length>0){const D=y.querySelector(".rcb-checkbox-next-button"),Q=[...C];if(D&&D.offsetParent!==null&&Q.push(D),Q.forEach((E,I)=>{E.setAttribute("tabindex",I===0?"0":"-1"),I===0?E.classList.add("keyboard-focused"):E.classList.remove("keyboard-focused")}),C.length>1){y.querySelectorAll(".keyboard-nav-hint").forEach(I=>I.remove());const E=document.createElement("div");E.className="keyboard-nav-hint",E.textContent="Use arrow keys ↕ to navigate, Enter to select/deselect, or click any option",E.style.cssText="font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;",y.insertBefore(E,y.firstChild)}return void setTimeout(()=>{Q[0]&&Q[0].offsetParent!==null&&!d&&Q[0].focus()},150)}}}if(m.length>0){if(m.forEach((y,C)=>{const D=C===0?"0":"-1";y.setAttribute("tabindex",D),y.setAttribute("role","option"),y.setAttribute("aria-posinset",C+1),y.setAttribute("aria-setsize",m.length),C===0?y.classList.add("keyboard-focused"):y.classList.remove("keyboard-focused")}),m.length>1){const y=h.length>0?h[h.length-1]:null;if(y){y.querySelectorAll(".keyboard-nav-hint").forEach(D=>D.remove());const C=document.createElement("div");C.className="keyboard-nav-hint",C.textContent="Use arrow keys ↕ to navigate, Enter to select, or click any option",C.style.cssText="font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;",y.insertBefore(C,y.firstChild)}}else{const y=h.length>0?h[h.length-1]:null;y&&y.querySelectorAll(".keyboard-nav-hint").forEach(C=>C.remove())}setTimeout(()=>{m[0]&&m[0].offsetParent!==null&&!d&&(m[0].focus(),m.length>1&&n(`${m.length} options available. Use arrow keys to navigate.`))},200)}},i=new MutationObserver(c=>{c.forEach(u=>{var d,A;if(u.type==="childList"){const p=Array.from(u.addedNodes),h=p.some(y=>{var C,D,Q,E;return y.nodeType===Node.ELEMENT_NODE&&(((C=y.classList)==null?void 0:C.contains("rcb-options-container"))||((D=y.classList)==null?void 0:D.contains("rcb-options"))||((Q=y.querySelector)==null?void 0:Q.call(y,".rcb-options-container"))||((E=y.querySelector)==null?void 0:E.call(y,".rcb-options")))}),m=p.some(y=>{var C,D;return y.nodeType===Node.ELEMENT_NODE&&(((C=y.classList)==null?void 0:C.contains("rcb-checkbox-container"))||((D=y.querySelector)==null?void 0:D.call(y,".rcb-checkbox-container")))});if(h||m){let y=u.target;for(;y&&!((d=y.classList)!=null&&d.contains("qa-bot"))&&!((A=y.classList)!=null&&A.contains("rcb-chat-window"));)y=y.parentElement;(y||document).querySelectorAll(".rcb-options[tabindex], .rcb-checkbox-row-container[tabindex], .rcb-checkbox-next-button[tabindex]").forEach(C=>{C.setAttribute("tabindex","-1"),C.classList.remove("keyboard-focused")}),setTimeout(()=>a(y),100)}}})});i.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("keydown",e),a();const o=setInterval(()=>{document.querySelectorAll(".qa-bot").forEach(c=>{const u=c.querySelectorAll(".rcb-options-container .rcb-options").length>0,d=c.querySelectorAll(".rcb-checkbox-row-container").length>0;if(u){const A=c.querySelectorAll(".rcb-options[tabindex]").length;c.querySelectorAll(".rcb-options").length>A&&a(c)}if(d){const A=c.querySelectorAll(".rcb-checkbox-row-container[tabindex]").length;c.querySelectorAll(".rcb-checkbox-row-container").length>A&&a(c)}})},1e3);return()=>{document.removeEventListener("keydown",e),i.disconnect(),clearInterval(o)}},[]),null),Mt=[];for(let e=0;e<256;++e)Mt.push((e+256).toString(16).slice(1));let Oc;const Gg=new Uint8Array(16);var Xd={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Jd(e,n,a){var o;if(Xd.randomUUID&&!e)return Xd.randomUUID();const i=(e=e||{}).random??((o=e.rng)==null?void 0:o.call(e))??function(){if(!Oc){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Oc=crypto.getRandomValues.bind(crypto)}return Oc(Gg)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(c,u=0){return(Mt[c[u+0]]+Mt[c[u+1]]+Mt[c[u+2]]+Mt[c[u+3]]+"-"+Mt[c[u+4]]+Mt[c[u+5]]+"-"+Mt[c[u+6]]+Mt[c[u+7]]+"-"+Mt[c[u+8]]+Mt[c[u+9]]+"-"+Mt[c[u+10]]+Mt[c[u+11]]+Mt[c[u+12]]+Mt[c[u+13]]+Mt[c[u+14]]+Mt[c[u+15]]).toLowerCase()}(i)}const Kd=()=>"qa_bot_session_".concat(Jd()),Vg="#1a5b6e",Xg="#107180",Jg="Arial, sans-serif",$d="Q&A Bot",Kg="/chat-icon.svg",$g="Type your question here...",Zg="Select an option to continue",qg=!1,em="Ask me a question!",Zd="/login",tm={general:{showHeader:!0,showFooter:!0},tooltip:{mode:"CLOSE"},chatInput:{disabled:!1,characterLimit:1e3,showCharacterCount:!1,allowNewline:!0,blockSpam:!1},chatWindow:{defaultOpen:!1,showScrollbar:!1},botBubble:{simulateStream:!0,streamSpeed:10,showAvatar:!1},userBubble:{showAvatar:!1},notification:{disabled:!0,showCount:!1},audio:{disabled:!0},emoji:{disabled:!0},fileAttachment:{disabled:!0}},Fc=R.forwardRef((e,n)=>{var a,i;const{apiKey:o,qaEndpoint:c,ratingEndpoint:u,welcomeMessage:d,open:A,onOpenChange:p,isLoggedIn:h,allowAnonAccess:m=!1,primaryColor:y,secondaryColor:C,botName:D,logo:Q,placeholder:E,errorMessage:I,embedded:_,footerText:B,footerLink:U,tooltipText:j,loginUrl:z,customFlow:W}=e,te=R.useRef("bot_".concat(Math.random().toString(36).substr(2,9))),J=R.useRef(Kd()),Y=R.useRef(!1),ee=R.useRef({getSessionId:()=>J.current,isResetting:()=>Y.current}),[Z,ie]=R.useState(h);R.useEffect(()=>{ie(h)},[h]);const ue=R.useMemo(()=>{const M=Object.assign({},tm);M.general=Object.assign(Object.assign({},M.general),{primaryColor:y||Vg,secondaryColor:C||Xg,fontFamily:Jg,embedded:_!==void 0?_:qg});const fe=Z===!1?R.createElement(Yd,{key:"login-button",loginUrl:z||Zd,isHeaderButton:!0}):R.createElement(Ug,{key:"user-icon"});M.header={title:R.createElement("span",{style:{fontSize:14,fontWeight:500}},D||$d),showAvatar:!0,avatar:Q||Kg,buttons:[fe,dt.CLOSE_CHAT_BUTTON]},M.chatInput=Object.assign(Object.assign({},M.chatInput),{disabled:!1,enabledPlaceholderText:E||$g,disabledPlaceholderText:I||Zg}),M.tooltip=Object.assign(Object.assign({},M.tooltip),{text:j||em});const O=B?U?R.createElement("a",{href:U,target:"_blank",rel:"noopener noreferrer",key:"footer-link"},B):R.createElement("span",{key:"footer-text"},B):null;return M.footer={text:O,buttons:[R.createElement(Wg,{key:"new-chat-button"})]},M},[y,C,D,Q,E,I,_,j,Z,z,B,U]),se=R.useRef(null),xe=function(M){let fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return R.useMemo(()=>{const O=(de,Ee)=>{if(M.current){const he=getComputedStyle(M.current).getPropertyValue(de);if(he&&he.trim()!=="")return he.trim();if(M.current.parentElement){const ve=getComputedStyle(M.current.parentElement).getPropertyValue(de);if(ve&&ve.trim()!=="")return ve.trim()}}return Ee};return{primaryColor:O("--primaryColor",fe.primaryColor),secondaryColor:O("--secondaryColor",fe.secondaryColor),fontFamily:O("--fontFamily",fe.fontFamily)}},[M,fe])}(se,ue.general);((M,fe)=>{R.useEffect(()=>{fe.current&&(M?fe.current.classList.add("bot-logged-in"):fe.current.classList.remove("bot-logged-in"))},[M,fe])})(Z!==!1,se),(M=>{let{settings:fe,themeColors:O}=M;R.useEffect(()=>{O&&(Object.entries(O).forEach(de=>{let[Ee,he]=de;he&&document.documentElement.style.setProperty("--".concat(Ee),he)}),O.primaryColor&&document.documentElement.style.setProperty("--rcb-header-background",O.primaryColor),O.secondaryColor&&document.documentElement.style.setProperty("--rcb-header-background-hover",O.secondaryColor))},[O]),R.useEffect(()=>{var de,Ee,he;!((de=fe.header)===null||de===void 0)&&de.title&&typeof fe.header.title=="string"&&(fe.header.title=R.createElement("div",{key:"header-title"},R.createElement("h1",{className:"sr-only"},fe.header.title),R.createElement("span",{"aria-hidden":"true"},fe.header.title))),!((Ee=fe.general)===null||Ee===void 0)&&Ee.embedded&&fe.chatWindow&&(fe.chatWindow.defaultOpen=!0),fe.device={desktopEnabled:!0,mobileEnabled:!0,applyMobileOptimizations:!1},fe.chatHistory={disabled:!1},fe.chatButton=Object.assign(Object.assign({},fe.chatButton),{icon:(he=fe.header)===null||he===void 0?void 0:he.avatar}),fe.event={rcbToggleChatWindow:!0}},[fe])})({settings:ue,themeColors:xe});const ge=R.useMemo(()=>{const M=(O=>{let{endpoint:de,ratingEndpoint:Ee,apiKey:he,sessionId:ve,isResetting:Te=()=>!1,isLoggedIn:Qe,allowAnonAccess:tt=!1,loginUrl:Le="/login"}=O;if(Qe===!1&&!tt)return{qa_loop:{message:"To ask questions, please log in first.",component:R.createElement(Yd,{loginUrl:Le}),chatDisabled:!0,path:"qa_loop"}};let Je=null,qe=!1;if(!de)throw new Error("Q&A endpoint is required");return{qa_loop:{message:async ft=>{const{userInput:Ne}=ft;if(Te&&Te()||!Ne||Ne.trim()==="")return null;if(Ne==="👍 Helpful"||Ne==="👎 Not helpful"){if(Ee&&Je)try{const We=Ne==="👍 Helpful",ct={"Content-Type":"application/json"};he&&(ct["X-API-KEY"]=he);const ht=ve();ht&&(ct["X-Session-ID"]=ht,ct["X-Query-ID"]=Je),await fetch(Ee,{method:"POST",headers:ct,body:JSON.stringify({sessionId:ht,queryId:Je,rating:We?1:0})})}catch(We){console.error("Error sending feedback:",We)}return"Thanks for the feedback! Feel free to ask another question."}try{const We=Jd();Je=We;const ct={"Content-Type":"application/json"};he&&(ct["X-API-KEY"]=he);const ht=ve();ht&&(ct["X-Session-ID"]=ht,ct["X-Query-ID"]=We);const ln=await fetch(de,{method:"POST",headers:ct,body:JSON.stringify({query:Ne})});if(!ln.ok)throw new Error("API returned ".concat(ln.status));const pt=await ln.json(),Ft=pt.response||pt.answer||pt.text||pt.message;if(!Ft)throw new Error("Invalid response format from API");const jt=(Gt=>{if(!Gt||typeof Gt!="string")return Gt;let gt=Gt.replace(/\[(https?:\/\/[^\s]+?)\]/gi,"[$1]($1)");return gt=gt.replace(new RegExp(`(?<!\\]\\(|href=["']|\\[)https?:\\/\\/[^\\s[\\]()]+`,"gi"),st=>{let Xe=st,Vt="";const cn=Xe.match(/([.,;:!?]+)$/);return cn&&(Vt=cn[1],Xe=Xe.slice(0,-Vt.length)),"[".concat(Xe,"](").concat(Xe,")").concat(Vt)}),gt})(Ft);return await ft.injectMessage(jt),qe=!0,setTimeout(async()=>{await ft.injectMessage("Feel free to ask another question.")},100),null}catch(We){return console.error("Error in Q&A flow:",We),"I apologize, but I'm having trouble processing your question. Please try again later."}},options:ft=>Te&&Te()||ft.userInput==="👍 Helpful"||ft.userInput==="👎 Not helpful"?[]:Ee&&qe?["👍 Helpful","👎 Not helpful"]:[],renderMarkdown:["BOT"],chatDisabled:!1,path:"qa_loop"}}})({endpoint:c,ratingEndpoint:u,apiKey:o,sessionId:ee.current.getSessionId,isResetting:ee.current.isResetting,isLoggedIn:Z,allowAnonAccess:m,loginUrl:z||Zd});return Object.assign(Object.assign({start:{message:d,transition:{duration:0},path:"qa_loop"}},M),W||{})},[o,c,u,d,Z,m,z,W]),me=R.useMemo(()=>{return[()=>Hp(fe),Hg(),()=>Ng(M)];var M,fe},[]);return R.useEffect(()=>{const M=()=>{const O=document.querySelector(".rcb-chat-window");if(!O)return;const de=O.querySelector(".rcb-send-button");de&&(de.hasAttribute("tabindex")||de.setAttribute("tabindex","0"),de.hasAttribute("data-keyboard-enabled")||(de.setAttribute("data-keyboard-enabled","true"),de.addEventListener("keydown",Ee=>{if(Ee.key==="Enter"||Ee.key===" "){Ee.preventDefault();const he=de&&Object.keys(de).find(Te=>Te.startsWith("__reactProps"));if(he){const Te=de[he],Qe=Te==null?void 0:Te.onMouseDown;if(Qe&&typeof Qe=="function")return void Qe(Ee)}const ve=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});de.dispatchEvent(ve)}})))},fe=setInterval(M,1e3);return M(),()=>clearInterval(fe)},[]),Yg(),R.useEffect(()=>{if(!_&&p){const M=fe=>{const O=fe.data.newState;p(O)};return window.addEventListener("rcb-toggle-chat-window",M),()=>{window.removeEventListener("rcb-toggle-chat-window",M)}}},[_,p]),R.createElement("div",{className:"qa-bot ".concat(!((a=ue.general)===null||a===void 0)&&a.embedded?"embedded-qa-bot":""),ref:se,role:"region","aria-label":D||$d},R.createElement(jg,{resetSession:()=>{Y.current=!0,J.current=Kd()},clearResettingFlag:()=>{Y.current=!1}},R.createElement(yA,null,R.createElement("div",null,R.createElement(Wd,{ref:n,embedded:((i=ue.general)===null||i===void 0?void 0:i.embedded)||!1,currentOpen:A||!1,enabled:Z!==!1,onSetEnabled:M=>ie(!!M&&void 0)}),R.createElement(bp,{key:"chatbot-".concat(te.current,"-").concat(Z),settings:ue,flow:ge,plugins:me}),R.createElement("div",{role:"status","aria-live":"polite","aria-label":"Bot response updates",className:"sr-only",id:"bot-live-region"}),R.createElement("div",{id:"chat-input-help",className:"sr-only"},"Type your message and press Enter to send. Use arrow keys to navigate through response options.")))))});Fc.displayName="QABot",zu('.rcb-chat-window{height:800px!important;max-height:80vh!important;max-width:100%;width:550px!important}.rcb-chat-window .rcb-chat-header{align-items:center;display:flex;flex-direction:row;font-weight:700}.rcb-chat-window a{color:#000;font-weight:700;text-decoration:underline}.rcb-chat-window a:hover{color:var(--primaryColor,#107180)}.rcb-chat-window .rcb-bot-message a{color:#fff;text-decoration:none}.rcb-chat-window .rcb-bot-message a:hover{text-decoration:underline}.rcb-chat-window .rcb-chat-input-textarea{overflow-y:auto}.rcb-chat-window .rcb-chat-footer-container{font-size:10px}.qa-bot .user-login-icon{display:none!important}.qa-bot.bot-logged-in .user-login-icon{display:flex!important;transform:scale(1.3) translateY(-2px)}.embedded-qa-bot .rcb-chat-window{max-width:100%;width:100%!important}.qa-bot.hidden{display:none}.embedded-qa-bot .rcb-bot-message,.embedded-qa-bot .rcb-user-message{max-width:90%!important;word-break:break-word}.embedded-qa-bot .rcb-chat-input-textarea{width:100%!important}.qa-bot-container{max-width:100%;width:100%}@keyframes phone-ring{0%{transform:translateX(0) translateY(0) rotate(0deg)}2%{transform:translateX(0) translateY(-8px) rotate(-2deg)}4%{transform:translateX(0) translateY(-6px) rotate(2deg)}6%{transform:translateX(0) translateY(-8px) rotate(-1deg)}8%{transform:translateX(0) translateY(-6px) rotate(1deg)}10%{transform:translateX(0) translateY(-8px) rotate(-2deg)}12%{transform:translateX(0) translateY(-6px) rotate(2deg)}20%{transform:translateX(0) translateY(0) rotate(0deg)}30%{transform:translateX(0) translateY(0) rotate(0deg)}40%{transform:translateX(0) translateY(0) rotate(0deg)}49%{transform:translateX(0) translateY(0) rotate(0deg)}50%{transform:translateX(0) translateY(-8px) rotate(-2deg)}52%{transform:translateX(0) translateY(-6px) rotate(2deg)}54%{transform:translateX(0) translateY(-8px) rotate(-1deg)}56%{transform:translateX(0) translateY(-6px) rotate(1deg)}58%{transform:translateX(0) translateY(-8px) rotate(-2deg)}60%{transform:translateX(0) translateY(-6px) rotate(2deg)}70%{transform:translateX(0) translateY(0) rotate(0deg)}to{transform:translateX(0) translateY(0) rotate(0deg)}}@media (max-width:768px){.rcb-chat-window{max-height:calc(100vh - 100px)!important;max-width:calc(100vw - 40px)!important;width:550px!important}.embedded-chat-container.open{height:400px}.embedded-chat-closed{font-size:14px;height:40px}.embedded-chat-open-btn{font-size:12px;padding:3px 10px}.rcb-bot-message,.rcb-user-message{max-width:85%!important}.rcb-chat-input-textarea{font-size:16px!important;min-height:44px!important}.rcb-chat-header{padding:12px 16px!important}}@media (max-width:480px){.rcb-chat-window{bottom:10px!important;left:10px!important;max-height:calc(100vh - 80px)!important;max-width:calc(100vw - 20px)!important;right:10px!important;width:calc(100vw - 20px)!important}.embedded-chat-container.open{height:350px}.rcb-bot-message,.rcb-user-message{margin-bottom:8px!important;max-width:90%!important}.rcb-chat-header{font-size:14px!important;padding:8px 12px!important}.rcb-chat-button{bottom:20px!important;height:50px!important;right:20px!important;width:50px!important}.rcb-chat-footer-container{font-size:9px!important;padding:8px 12px!important}}@media (max-width:360px){.rcb-chat-window{left:5px!important;max-width:calc(100vw - 10px)!important;right:5px!important;width:calc(100vw - 10px)!important}.rcb-chat-header{font-size:13px!important;padding:6px 8px!important}}.rcb-checkbox-container{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-left:16px!important;max-width:100%!important;padding-top:12px!important}.rcb-checkbox-row-container{align-items:center!important;background-color:#fff!important;border:1px solid #d0d0d0!important;border-radius:6px!important;box-sizing:border-box!important;color:var(--primaryColor,#107180)!important;cursor:pointer!important;display:flex!important;flex:0 0 auto!important;font-size:14px!important;font-weight:400!important;margin:0!important;max-height:auto!important;min-height:auto!important;padding:8px 12px!important;text-align:center!important;transition:all .2s ease!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto!important}.rcb-checkbox-row-container:hover{background-color:#e8f4f8!important;border-color:var(--primaryColor,#107180)!important;box-shadow:0 2px 4px #10718033!important;transform:translateY(-1px)!important}.rcb-checkbox-row-container[data-checked=true]{background-color:var(--primaryColor,#107180)!important;border-color:var(--primaryColor,#107180)!important;color:#fff!important}.rcb-checkbox-row{margin-left:0!important}.rcb-checkbox-mark{height:14px!important;margin-right:6px!important;width:14px!important}.rcb-checkbox-label{font-size:13px!important;margin:0!important;white-space:nowrap!important}.rcb-checkbox-next-button{align-items:center!important;background-color:#fff!important;border:1px solid #d0d0d0!important;border-radius:6px!important;box-sizing:border-box!important;color:var(--secondaryColor,#107180)!important;cursor:pointer!important;display:flex!important;flex:0 0 auto!important;font-size:14px!important;font-weight:400!important;justify-content:center!important;line-height:24px!important;margin:0!important;max-height:auto!important;min-height:auto!important;padding:8px 12px!important;text-align:center!important;transition:all .2s ease!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto!important}.rcb-checkbox-next-button:hover{background-color:#e8f4f8!important;border-color:var(--secondaryColor,#107180)!important;box-shadow:0 2px 4px #10718033!important;transform:translateY(-1px)!important}.sr-only{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.rcb-chat-input-send-button:focus,.rcb-chat-input-textarea:focus{outline:2px solid var(--primaryColor,#107180)!important;outline-offset:2px!important}.rcb-user-message{word-wrap:break-word!important;overflow:hidden!important;word-break:break-word!important}:focus-visible{outline:2px solid var(--primaryColor,#107180)!important;outline-offset:2px!important}.rcb-options-container{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:8px!important;margin:16px!important;padding:0!important}.rcb-options{background-color:#fff!important;border:1px solid #d0d0d0!important;border-radius:6px!important;box-sizing:border-box!important;color:var(--secondaryColor,#107180)!important;cursor:pointer!important;flex:0 0 auto!important;font-size:14px!important;font-weight:400!important;outline:none!important;padding:8px 12px!important;text-align:center!important;transition:all .2s ease!important;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto!important}.rcb-options:hover{background-color:#e8f4f8!important;border-color:var(--secondaryColor,#107180)!important;box-shadow:0 2px 4px #10718033!important;transform:translateY(-1px)!important}.rcb-checkbox-next-button.keyboard-focused,.rcb-checkbox-next-button:focus,.rcb-checkbox-next-button:focus-visible,.rcb-checkbox-row-container.keyboard-focused,.rcb-checkbox-row-container:focus,.rcb-checkbox-row-container:focus-visible,.rcb-options.keyboard-focused,.rcb-options:focus,.rcb-options:focus-visible{background-color:#e8f4f8!important;border-color:var(--secondaryColor,#107180)!important;outline:none!important}.rcb-options:active{background-color:var(--secondaryColor,#107180)!important;border-color:var(--secondaryColor,#107180)!important;color:#fff!important;transform:translateY(0)!important}.keyboard-nav-hint{color:#666!important;font-size:12px!important;font-style:italic!important;margin-bottom:8px!important}@media (prefers-reduced-motion:reduce){.keyboard-nav-hint{display:none!important}}.rcb-options-container [role=button][tabindex="0"],.rcb-options-container button[tabindex="0"]{position:relative!important}.rcb-options-container [role=button][tabindex="0"]:after,.rcb-options-container button[tabindex="0"]:after{color:var(--secondaryColor,#107180)!important;content:"←"!important;font-size:16px!important;opacity:0!important;position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;transition:opacity .2s ease!important}.rcb-options-container [role=button][tabindex="0"]:focus:after,.rcb-options-container button[tabindex="0"]:focus:after{opacity:1!important}.rcb-chat-input-send-button{cursor:pointer!important;opacity:1!important;pointer-events:auto!important;visibility:visible!important}.rcb-chat-input-send-button:not([tabindex]){-webkit-user-select:none;-moz-user-select:none;user-select:none}.rcb-chat-input-container [onclick],.rcb-chat-input-container [role=button],.rcb-chat-input-container div[style*=cursor],.rcb-chat-input-container svg:last-child,.rcb-chat-input-container>div:last-child{tabindex:0!important;cursor:pointer!important}.rcb-chat-footer{margin-top:4px!important;padding-top:0!important}.rcb-chat-footer-container{align-items:center!important;display:flex!important;margin-top:4px!important;padding-top:4px!important}.rcb-chat-footer-container button{order:1!important}.rcb-chat-footer-container a[href*=qa-bot-core]{tab-index:0!important;order:2!important}.rcb-chat-footer-container a[href*=feedback]{tab-index:0!important;order:3!important}@media (prefers-contrast:high){.rcb-chat-window a{background-color:#fff!important;border:1px solid #000!important;color:#000!important}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.rcb-chat-input-textarea{user-select:text!important}.rcb-chat-body-container,.rcb-chat-input-textarea,.rcb-chat-window{touch-action:pan-y!important}.embedded-qa-bot,.rcb-chat-window{-webkit-overflow-scrolling:touch!important}.embedded-qa-bot .rcb-chat-input-textarea{touch-action:pan-y!important;user-select:text!important}.embedded-qa-bot .rcb-chat-body-container,.embedded-qa-bot .rcb-chat-window{touch-action:pan-y!important}.rcb-chat-header-container{background:var(--primaryColor,#1a5b6e)!important;background:linear-gradient(135deg,var(--primaryColor,#1a5b6e) 0,var(--secondaryColor,#107180) 100%)!important}.rcb-toggle-button{align-items:center!important;background:var(--primaryColor,#1a5b6e)!important;display:flex!important;justify-content:center!important}.rcb-toggle-button svg{stroke:#fff!important;color:#fff!important}.rcb-toggle-button *,.rcb-toggle-button img,.rcb-toggle-button svg,.rcb-toggle-button>*{box-sizing:border-box!important;height:50px!important;left:0!important;margin:0 auto!important;max-height:50px!important;max-width:50px!important;min-height:50px!important;min-width:50px!important;padding:2px!important;position:relative!important;top:0!important;width:50px!important}.rcb-send-button{background-color:var(--primaryColor,#1a5b6e)!important}',{insertAt:"top"});const nm=()=>{const[e,n]=R.useState(!1),a=()=>typeof navigator<"u"&&navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getDisplayMedia=="function";return{captureScreenshot:async()=>{if(!a())throw new Error("Screen capture is not available in this environment");try{n(!0);const i=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser",cursor:"always",width:{ideal:1920},height:{ideal:1080}},audio:!1}),o=document.createElement("video");o.srcObject=i,await new Promise(h=>{o.onloadedmetadata=()=>{o.play(),h()}});const c=document.createElement("canvas");c.width=o.videoWidth,c.height=o.videoHeight;const u=c.getContext("2d");if(!u)throw new Error("Could not get canvas context");u.drawImage(o,0,0,c.width,c.height);const d=await new Promise(h=>c.toBlob(h,"image/png"));if(!d)throw new Error("Could not create image blob");const A=new Date().toISOString().replace(/[:.]/g,"-"),p=new File([d],"screenshot-".concat(A,".png"),{type:"image/png"});return i.getTracks().forEach(h=>h.stop()),n(!1),p}catch(i){throw console.error("Error capturing screenshot:",i),n(!1),i}},isCapturing:e,isScreenCaptureAvailable:a()}},rm=e=>R.createElement(Gd,e,R.createElement("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),R.createElement("polyline",{points:"17 8 12 3 7 8"}),R.createElement("line",{x1:"12",y1:"3",x2:"12",y2:"15"})),om=e=>new Promise((n,a)=>{const i=new FileReader;i.onload=()=>{if(typeof i.result!="string")return void a(new Error("Failed to read file ".concat(e.name)));const o=i.result.split(",")[1];n({fileName:e.name,contentType:e.type,size:e.size,fileData:o})},i.onerror=()=>a(new Error("Failed to read file ".concat(e.name))),i.readAsDataURL(e)}),am=e=>Promise.all(e.map(om)),im=e=>e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB"),Xs=e=>{let{onFileUpload:n,maxSizeMB:a=10,acceptedTypes:i="image/*,application/pdf,text/*,.doc,.docx",enableScreenshot:o=!1,className:c}=e;const[u,d]=R.useState(!1),[A,p]=R.useState([]),[h,m]=R.useState(null),y=R.useRef(null),{captureScreenshot:C,isCapturing:D,isScreenCaptureAvailable:Q}=nm(),E=z=>{const W=document.createElement("div");W.setAttribute("aria-live","assertive"),W.setAttribute("aria-atomic","true"),W.className="sr-only",W.textContent=z,document.body.appendChild(W),setTimeout(()=>document.body.removeChild(W),1e3)},I=z=>{if(!z||z.length===0)return void console.warn("FileUploadComponent: No valid files provided to handleFiles");let W;try{W=Array.from(z)}catch(ee){return console.error("FileUploadComponent: Error converting files to array:",ee),void E("Error processing selected files. Please try again.")}const te=[...A,...W];p(te);const J=W.length,Y=W.map(ee=>ee.name).join(", ");E("".concat(J," file").concat(J>1?"s":""," selected: ").concat(Y)),setTimeout(()=>{const ee=document.querySelector(".rcb-chat-content");ee&&(ee.scrollTop=ee.scrollHeight)},100),n&&n(te)},_=z=>{z.preventDefault(),z.stopPropagation(),z.type==="dragenter"||z.type==="dragover"?d(!0):z.type==="dragleave"&&d(!1)},B=()=>{try{y.current&&y.current.click()}catch(z){console.error("FileUploadComponent: Error in handleButtonClick:",z),E("Error opening file selection dialog. Please try again.")}},U=()=>{m(null)},j=o&&Q;return R.createElement("div",{className:"file-upload-container ".concat(c||""),style:{padding:"16px",margin:"8px 0"}},j&&R.createElement("div",{style:{display:"flex",justifyContent:"center",marginBottom:"10px"}},R.createElement("button",{onClick:z=>{z.preventDefault(),(async()=>{try{const W=await C();I([W]),E("Screenshot captured successfully")}catch{E("Error capturing screenshot. Please try again.")}})()},disabled:D,"aria-describedby":"screenshot-help","aria-label":D?"Taking screenshot, please wait":"Take a screenshot to attach",style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:"#107180",color:"white",border:"none",borderRadius:"5px",padding:"8px 12px",cursor:D?"not-allowed":"pointer",fontSize:"14px",fontWeight:"500",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}},R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},R.createElement("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),R.createElement("circle",{cx:"12",cy:"13",r:"4"})),D?"Taking screenshot...":"Take screenshot..."),R.createElement("span",{id:"screenshot-help",className:"sr-only"},"Captures the current screen and adds it as an attachment")),R.createElement("div",{className:"file-upload-dropzone ".concat(u?"active":""),onDragEnter:_,onDragLeave:_,onDragOver:_,onDrop:z=>{var W;z.preventDefault(),z.stopPropagation(),d(!1);try{!((W=z.dataTransfer)===null||W===void 0)&&W.files&&z.dataTransfer.files.length>0&&I(z.dataTransfer.files)}catch(te){console.error("FileUploadComponent: Error in handleDrop:",te),E("Error processing dropped files. Please try again.")}},role:"button",tabIndex:0,"aria-label":"File upload area. Click to select files or drag and drop files here.","aria-describedby":"upload-instructions",onKeyDown:z=>{z.key!=="Enter"&&z.key!==" "||(z.preventDefault(),B())},style:{padding:"20px",border:"2px dashed #ccc",borderRadius:"8px",backgroundColor:u?"#f0f8ff":"#fafafa",transition:"all 0.3s ease"}},R.createElement("input",{ref:y,type:"file",className:"file-input",onChange:z=>{var W;try{!((W=z.target)===null||W===void 0)&&W.files&&z.target.files.length>0&&I(z.target.files)}catch(te){console.error("FileUploadComponent: Error in handleFileSelect:",te),E("Error processing selected files. Please try again.")}},multiple:!0,style:{display:"none"},"aria-label":"Select files to upload",accept:i}),R.createElement("div",{className:"upload-content",onClick:B,style:{cursor:"pointer",flexDirection:"column",alignItems:"center",display:"flex",textAlign:"center",padding:"12px"}},R.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"8px"}},R.createElement("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"10px"}},R.createElement(rm,null),R.createElement("p",{style:{margin:0,fontWeight:"bold"}},"Upload Files")),R.createElement("p",{id:"upload-instructions",style:{margin:0,fontSize:"14px",color:"#666"}},"Drag and drop files here or click to select. (Max ",a,"MB each)")),A.length>0&&R.createElement("div",{className:"selected-files",style:{display:"flex",flexWrap:"wrap",gap:"8px",marginTop:"12px",alignItems:"center"}},R.createElement("span",{style:{fontWeight:400,color:"#888",fontSize:"13px",marginRight:"8px",alignSelf:"center"}},"Selected files:"),A.map((z,W)=>R.createElement("span",{key:W,style:{background:"#fff",color:"#107180",borderRadius:"5px",padding:"4px 12px",fontSize:"14px",marginRight:"4px",marginBottom:"4px",border:"1px solid #ccc",display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},onClick:te=>{te.stopPropagation(),(J=>{m(J)})(z)}},R.createElement("span",{onClick:te=>{te.stopPropagation(),(J=>{const Y=A.filter((ee,Z)=>Z!==J);p(Y),n&&n(Y)})(W)},style:{cursor:"pointer",color:"#888",fontWeight:"bold",fontSize:"15px",marginRight:"4px",userSelect:"none",lineHeight:1},title:"Remove file","aria-label":"Remove ".concat(z.name)},"×"),z.name," (",im(z.size),")"))))),(()=>{if(!h)return null;const z=h.type.startsWith("image/"),W=h.type.startsWith("text/"),te=h.type==="application/pdf";return R.createElement("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",justifyContent:"center",alignItems:"center",zIndex:1e3},onClick:U},R.createElement("div",{style:{backgroundColor:"white",padding:"20px",borderRadius:"8px",maxWidth:"90%",maxHeight:"90%",overflow:"auto",position:"relative"},onClick:J=>J.stopPropagation()},R.createElement("button",{onClick:U,style:{position:"absolute",top:"10px",right:"10px",background:"none",border:"none",fontSize:"24px",cursor:"pointer",color:"#666"}},"×"),R.createElement("h3",{style:{marginTop:0,marginBottom:"16px"}},h.name),z&&R.createElement("img",{src:URL.createObjectURL(h),alt:h.name,style:{maxWidth:"100%",maxHeight:"70vh"}}),W&&R.createElement("pre",{style:{whiteSpace:"pre-wrap",wordWrap:"break-word",maxHeight:"70vh",overflow:"auto",padding:"16px",backgroundColor:"#f5f5f5",borderRadius:"4px"}},URL.createObjectURL(h)),te&&R.createElement("iframe",{src:URL.createObjectURL(h),style:{width:"100%",height:"70vh",border:"none"},title:h.name}),!z&&!W&&!te&&R.createElement("div",{style:{padding:"20px",textAlign:"center"}},"Preview not available for this file type")))})())};function sm(e,n){if(!n||Object.keys(n).length===0)return e;const a={};for(const[i,o]of Object.entries(e)){let c=Object.assign({},o);if(c.chatDisabled===void 0){const u=!(!c.options&&!c.checkboxes);c.chatDisabled=u}a[i]=c}return a}const lm=R.forwardRef((e,n)=>{const[a,i]=R.useState(e.defaultOpen||!1),o=R.useRef(null);return R.useImperativeHandle(n,()=>({addMessage:c=>{var u;(u=o.current)===null||u===void 0||u.addMessage(c)},setBotEnabled:c=>{var u;(u=o.current)===null||u===void 0||u.setBotEnabled(c)},openChat:()=>{var c;i(!0),(c=o.current)===null||c===void 0||c.openChat()},closeChat:()=>{var c;i(!1),(c=o.current)===null||c===void 0||c.closeChat()},toggleChat:()=>{var c;i(u=>!u),(c=o.current)===null||c===void 0||c.toggleChat()}}),[]),R.createElement(Fc,{ref:o,apiKey:e.apiKey,qaEndpoint:e.qaEndpoint,ratingEndpoint:e.ratingEndpoint,welcomeMessage:e.welcomeMessage,primaryColor:e.primaryColor,secondaryColor:e.secondaryColor,botName:e.botName,logo:e.logo,placeholder:e.placeholder,errorMessage:e.errorMessage,embedded:e.embedded,isLoggedIn:e.isLoggedIn,allowAnonAccess:e.allowAnonAccess,open:a,onOpenChange:i,footerText:e.footerText,footerLink:e.footerLink,tooltipText:e.tooltipText})});lm.displayName="ProgrammaticQABot";const eo={QA_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/chat/api/",RATING_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/chat/rating/",METRICS_API_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/xdmod/chat/api/",METRICS_RATING_ENDPOINT:"https://access-ai-grace1-external.ccs.uky.edu/access/xdmod/chat/rating/",METRICS_QUESTIONS_URL:"https://metrics.access-ci.org/qa_bot_faq",NETLIFY_BASE_URL:"https://access-jsm-api.netlify.app",DEFAULT_API_KEY:"4nn5l4T4TnkMdzsK0AwAtnGRcheBDnjawuAT42LaOLc"},Dr={BOT_NAME:"ACCESS Q&A",LOGO:"https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg",WELCOME_MESSAGE:"Hello! What can I help you with?",WELCOME_MESSAGE_LOGGED_OUT:"To ask questions, please log in.",LOGIN_URL:"/login",PRIMARY_COLOR:"#1a5b6e",SECONDARY_COLOR:"#107180",TOOLTIP:"Ask me about ACCESS! 😊"},qd={SESSION_ID:"access-qa-bot-session-id"};function cm({welcome:e,setTicketForm:n,isLoggedIn:a}){return{start:{message:e,options:["Ask a question about ACCESS","Open a Help Ticket","Usage and performance of ACCESS resources (XDMoD)","Report a security issue"],path:i=>i.userInput==="Ask a question about ACCESS"?a?"go_ahead_and_ask":"qa_loop":i.userInput==="Open a Help Ticket"?(n({}),"help_ticket"):i.userInput==="Usage and performance of ACCESS resources (XDMoD)"?"metrics_intro":i.userInput==="Report a security issue"?(n({}),"security_incident"):"start"},go_ahead_and_ask:{message:"Go ahead and ask your question! I'll do my best to help.",path:"qa_loop"}}}let Lc=null;function um(e){Lc=e}function Ie(){return Lc?Lc.ticketForm||{}:(console.warn("Form context not available, returning empty form"),{})}function Rt(e={}){const n=Ie();return{...n,email:e.email||n.email,name:e.name||n.name,accessId:e.accessId||n.accessId}}function Qc(e){return e&&e.length>0?`
|
|
143
143
|
Attachments: ${e.length} file(s) attached`:""}const Pa={SUPPORT:17,LOGIN_ACCESS:30,LOGIN_PROVIDER:31,SECURITY:26};async function Am(e,n="support",a=[]){const o={support:Pa.SUPPORT,general_help:Pa.SUPPORT,loginAccess:Pa.LOGIN_ACCESS,loginProvider:Pa.LOGIN_PROVIDER,security:Pa.SECURITY}[n]||Pa.SUPPORT,u={serviceDeskId:n==="security"?3:2,requestTypeId:o,requestFieldValues:{...e}};return a.length>0&&(u.attachments=await am(a)),u}async function dm(e,n){var o,c;const i=`${eo.NETLIFY_BASE_URL}/api/v1/${n}`;try{const u=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!u.ok){let A="";try{const p=await u.text();try{const h=JSON.parse(p);A=h.message||h.error||p}catch{A=p}}catch{A=`HTTP ${u.status} ${u.statusText}`}return u.status===403?A="The ticket service is temporarily unavailable. Please try again later or contact support directly.":u.status===404?A="Ticket service not found. Please try again later.":u.status===500?A="Server error. Please try again later.":u.status===401&&(A="Authentication error with the ticket service. Please contact support."),{success:!1,status:u.status,error:A}}const d=await u.json();return{success:!0,ticketKey:(o=d.data)==null?void 0:o.ticketKey,ticketUrl:(c=d.data)==null?void 0:c.ticketUrl}}catch(u){return{success:!1,error:u instanceof Error?u.message:"Unknown error"}}}async function Js(e,n,a=[]){try{const i=await Am(e,n,a);return await dm(i,n==="security"?"security-incidents":"tickets")}catch(i){return{success:!1,error:i instanceof Error?i.message:"Unknown error"}}}function _c(e,n="ticket"){return e?e.success?e.ticketUrl&&e.ticketKey?`Your ${n} has been submitted successfully.
|
|
144
144
|
|
|
145
145
|
Ticket: <a href="${e.ticketUrl}" target="_blank">${e.ticketKey}</a>
|