@snf/access-qa-bot 3.3.2 โ†’ 3.3.3

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.
@@ -143,9 +143,9 @@ Error generating stack: `+s.message+`
143
143
  `.concat(ft.join(`
144
144
  `))}(Nt),xe=ne?"".concat(et,`
145
145
 
146
- `).concat(ne):et;return await Ht.injectMessage(xe),ze==null||ze({type:"chatbot_answer_received",queryId:Ke,responseTimeMs:kn,success:!0,responseLength:qt.length,hasMetadata:!!ne}),It=!0,setTimeout(async()=>{await Ht.injectMessage("Feel free to ask another question.")},100),null}catch(Ke){return Ho("Error in Q&A flow:",Ke),ze==null||ze({type:"chatbot_answer_error",queryId:vt??void 0,errorType:Ke instanceof Error?Ke.message:"unknown"}),"I apologize, but I'm having trouble processing your question. Please try again later."}},options:Ht=>Ue&&Ue()||Ht.userInput==="๐Ÿ‘ Helpful"||Ht.userInput==="๐Ÿ‘Ž Not helpful"?[]:De&&It?["๐Ÿ‘ Helpful","๐Ÿ‘Ž Not helpful"]:[],renderMarkdown:["BOT"],chatDisabled:!1,path:"qa_loop"}}})({endpoint:u,ratingEndpoint:f,apiKey:o,sessionId:ae.current.getSessionId,isResetting:ae.current.isResetting,isLoggedIn:ie,allowAnonAccess:v,loginUrl:W||Af,trackEvent:he});return Object.assign(Object.assign({start:{message:A,renderMarkdown:["BOT"],transition:{duration:0},path:"qa_loop"}},fe),ee||{})},[o,u,f,A,ie,v,W,ee,y,he]),ve=B.useMemo(()=>{return[()=>$p(ce),$g(),()=>Zg(fe)];var fe,ce},[]);return B.useEffect(()=>{const fe=()=>{const ge=document.querySelector(".rcb-chat-window");if(!ge)return;const ye=ge.querySelector(".rcb-send-button");ye&&(ye.hasAttribute("tabindex")||ye.setAttribute("tabindex","0"),ye.hasAttribute("data-keyboard-enabled")||(ye.setAttribute("data-keyboard-enabled","true"),ye.addEventListener("keydown",De=>{if(De.key==="Enter"||De.key===" "){De.preventDefault();const Fe=ye&&Object.keys(ye).find(Ue=>Ue.startsWith("__reactProps"));if(Fe){const Ue=ye[Fe],Je=Ue==null?void 0:Ue.onMouseDown;if(Je&&typeof Je=="function")return void Je(De)}const Re=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});ye.dispatchEvent(Re)}})))},ce=setInterval(fe,1e3);return fe(),()=>clearInterval(ce)},[]),vm(),B.useEffect(()=>{if(!be){const fe=ce=>{const ge=ce.data.newState;d==null||d(ge);const ye=Z.current;he(ge?{type:"chatbot_open"}:{type:"chatbot_close",messageCount:ye?af(ye):0,durationMs:ye?Am(ye):0})};return window.addEventListener("rcb-toggle-chat-window",fe),()=>{window.removeEventListener("rcb-toggle-chat-window",fe)}}},[be,d,he]),B.createElement("div",{className:"qa-bot ".concat(!((i=me.general)===null||i===void 0)&&i.embedded?"embedded-qa-bot":""),ref:L,role:"region","aria-label":R||uf},B.createElement(dm,{getSessionId:()=>Z.current,setSessionId:fe=>{const ce=Z.current;Z.current=fe,Zs("RESTORED","".concat(ce==null?void 0:ce.slice(-12)," -> ").concat(fe.slice(-12)))},resetSession:()=>{const fe=Z.current;$.current=!0,Z.current=of(),Zs("RESET","".concat(fe==null?void 0:fe.slice(-12)," -> ").concat(Z.current.slice(-12)))},clearResettingFlag:()=>{$.current=!1}},B.createElement(hm,{trackEvent:he},B.createElement(PA,null,B.createElement("div",null,B.createElement(mm,null),B.createElement(Zd,{ref:n,embedded:((a=me.general)===null||a===void 0?void 0:a.embedded)||!1,currentOpen:c||!1,enabled:ie!==!1,onSetEnabled:fe=>le(!!fe&&void 0)}),B.createElement(Rp,{key:"chatbot-".concat(Y.current,"-").concat(ie),settings:me,flow:F,plugins:ve}),B.createElement("div",{role:"status","aria-live":"polite","aria-label":"Bot response updates",className:"sr-only",id:"bot-live-region"}),B.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."))))))});jc.displayName="QABot",qu('.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,.rcb-chat-window .rcb-bot-message a:link,.rcb-chat-window .rcb-bot-message a:visited{color:#fff!important;text-decoration:underline!important}.rcb-chat-window .rcb-bot-message a:hover{opacity:.85;text-decoration:underline!important}.rcb-chat-window .rcb-chat-input-textarea{overflow-y:auto}.rcb-chat-window .rcb-chat-footer-container{font-size:10px}.qa-bot .history-button,.qa-bot .user-login-icon{display:none!important}.qa-bot.bot-logged-in .history-button,.qa-bot.bot-logged-in .user-login-icon{display:flex!important;transform:scale(1.3) translateY(-2px)}.qa-bot.bot-logged-in .history-button:hover{opacity:.8}.qa-bot.bot-logged-in .history-button:focus{outline:2px solid #fff;outline-offset: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 Tm=()=>{const[e,n]=B.useState(!1),i=()=>typeof navigator<"u"&&navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getDisplayMedia=="function";return{captureScreenshot:async()=>{if(!i())throw new Error("Screen capture is not available in this environment");try{n(!0);const a=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser",cursor:"always",width:{ideal:1920},height:{ideal:1080}},audio:!1}),o=document.createElement("video");o.srcObject=a,await new Promise(h=>{o.onloadedmetadata=()=>{o.play(),h()}});const u=document.createElement("canvas");u.width=o.videoWidth,u.height=o.videoHeight;const f=u.getContext("2d");if(!f)throw new Error("Could not get canvas context");f.drawImage(o,0,0,u.width,u.height);const A=await new Promise(h=>u.toBlob(h,"image/png"));if(!A)throw new Error("Could not create image blob");const c=new Date().toISOString().replace(/[:.]/g,"-"),d=new File([A],"screenshot-".concat(c,".png"),{type:"image/png"});return a.getTracks().forEach(h=>h.stop()),n(!1),d}catch(a){throw Ho("Error capturing screenshot:",a),n(!1),a}},isCapturing:e,isScreenCaptureAvailable:i()}},Dm=e=>B.createElement(lf,e,B.createElement("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),B.createElement("polyline",{points:"17 8 12 3 7 8"}),B.createElement("line",{x1:"12",y1:"3",x2:"12",y2:"15"})),Im=e=>new Promise((n,i)=>{const a=new FileReader;a.onload=()=>{if(typeof a.result!="string")return void i(new Error("Failed to read file ".concat(e.name)));const o=a.result.split(",")[1];n({fileName:e.name,contentType:e.type,size:e.size,fileData:o})},a.onerror=()=>i(new Error("Failed to read file ".concat(e.name))),a.readAsDataURL(e)}),Bm=e=>Promise.all(e.map(Im)),Mm=e=>e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB"),el=e=>{let{onFileUpload:n,maxSizeMB:i=10,acceptedTypes:a="image/*,application/pdf,text/*,.doc,.docx",enableScreenshot:o=!1,className:u}=e;const[f,A]=B.useState(!1),[c,d]=B.useState([]),[h,v]=B.useState(null),y=B.useRef(null),{captureScreenshot:k,isCapturing:C,isScreenCaptureAvailable:R}=Tm(),E=N=>{const W=document.createElement("div");W.setAttribute("aria-live","assertive"),W.setAttribute("aria-atomic","true"),W.className="sr-only",W.textContent=N,document.body.appendChild(W),setTimeout(()=>document.body.removeChild(W),1e3)},T=N=>{if(!N||N.length===0)return void cm("FileUploadComponent: No valid files provided to handleFiles");let W;try{W=Array.from(N)}catch(Z){return Ho("FileUploadComponent: Error converting files to array:",Z),void E("Error processing selected files. Please try again.")}const ee=[...c,...W];d(ee);const G=W.length,Y=W.map(Z=>Z.name).join(", ");E("".concat(G," file").concat(G>1?"s":""," selected: ").concat(Y)),setTimeout(()=>{const Z=document.querySelector(".rcb-chat-content");Z&&(Z.scrollTop=Z.scrollHeight)},100),n&&n(ee)},Q=N=>{N.preventDefault(),N.stopPropagation(),N.type==="dragenter"||N.type==="dragover"?A(!0):N.type==="dragleave"&&A(!1)},M=()=>{try{y.current&&y.current.click()}catch(N){Ho("FileUploadComponent: Error in handleButtonClick:",N),E("Error opening file selection dialog. Please try again.")}},U=()=>{v(null)},j=o&&R;return B.createElement("div",{className:"file-upload-container ".concat(u||""),style:{padding:"16px",margin:"8px 0"}},j&&B.createElement("div",{style:{display:"flex",justifyContent:"center",marginBottom:"10px"}},B.createElement("button",{onClick:N=>{N.preventDefault(),(async()=>{try{const W=await k();T([W]),E("Screenshot captured successfully")}catch{E("Error capturing screenshot. Please try again.")}})()},disabled:C,"aria-describedby":"screenshot-help","aria-label":C?"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:C?"not-allowed":"pointer",fontSize:"14px",fontWeight:"500",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}},B.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"},B.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"}),B.createElement("circle",{cx:"12",cy:"13",r:"4"})),C?"Taking screenshot...":"Take screenshot..."),B.createElement("span",{id:"screenshot-help",className:"sr-only"},"Captures the current screen and adds it as an attachment")),B.createElement("div",{className:"file-upload-dropzone ".concat(f?"active":""),onDragEnter:Q,onDragLeave:Q,onDragOver:Q,onDrop:N=>{var W;N.preventDefault(),N.stopPropagation(),A(!1);try{!((W=N.dataTransfer)===null||W===void 0)&&W.files&&N.dataTransfer.files.length>0&&T(N.dataTransfer.files)}catch(ee){Ho("FileUploadComponent: Error in handleDrop:",ee),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:N=>{N.key!=="Enter"&&N.key!==" "||(N.preventDefault(),M())},style:{padding:"20px",border:"2px dashed #ccc",borderRadius:"8px",backgroundColor:f?"#f0f8ff":"#fafafa",transition:"all 0.3s ease"}},B.createElement("input",{ref:y,type:"file",className:"file-input",onChange:N=>{var W;try{!((W=N.target)===null||W===void 0)&&W.files&&N.target.files.length>0&&T(N.target.files)}catch(ee){Ho("FileUploadComponent: Error in handleFileSelect:",ee),E("Error processing selected files. Please try again.")}},multiple:!0,style:{display:"none"},"aria-label":"Select files to upload",accept:a}),B.createElement("div",{className:"upload-content",onClick:M,style:{cursor:"pointer",flexDirection:"column",alignItems:"center",display:"flex",textAlign:"center",padding:"12px"}},B.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"8px"}},B.createElement("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"10px"}},B.createElement(Dm,null),B.createElement("p",{style:{margin:0,fontWeight:"bold"}},"Upload Files")),B.createElement("p",{id:"upload-instructions",style:{margin:0,fontSize:"14px",color:"#666"}},"Drag and drop files here or click to select. (Max ",i,"MB each)")),c.length>0&&B.createElement("div",{className:"selected-files",style:{display:"flex",flexWrap:"wrap",gap:"8px",marginTop:"12px",alignItems:"center"}},B.createElement("span",{style:{fontWeight:400,color:"#888",fontSize:"13px",marginRight:"8px",alignSelf:"center"}},"Selected files:"),c.map((N,W)=>B.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:ee=>{ee.stopPropagation(),(G=>{v(G)})(N)}},B.createElement("span",{onClick:ee=>{ee.stopPropagation(),(G=>{const Y=c.filter((Z,$)=>$!==G);d(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(N.name)},"ร—"),N.name," (",Mm(N.size),")"))))),(()=>{if(!h)return null;const N=h.type.startsWith("image/"),W=h.type.startsWith("text/"),ee=h.type==="application/pdf";return B.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},B.createElement("div",{style:{backgroundColor:"white",padding:"20px",borderRadius:"8px",maxWidth:"90%",maxHeight:"90%",overflow:"auto",position:"relative"},onClick:G=>G.stopPropagation()},B.createElement("button",{onClick:U,style:{position:"absolute",top:"10px",right:"10px",background:"none",border:"none",fontSize:"24px",cursor:"pointer",color:"#666"}},"ร—"),B.createElement("h3",{style:{marginTop:0,marginBottom:"16px"}},h.name),N&&B.createElement("img",{src:URL.createObjectURL(h),alt:h.name,style:{maxWidth:"100%",maxHeight:"70vh"}}),W&&B.createElement("pre",{style:{whiteSpace:"pre-wrap",wordWrap:"break-word",maxHeight:"70vh",overflow:"auto",padding:"16px",backgroundColor:"#f5f5f5",borderRadius:"4px"}},URL.createObjectURL(h)),ee&&B.createElement("iframe",{src:URL.createObjectURL(h),style:{width:"100%",height:"70vh",border:"none"},title:h.name}),!N&&!W&&!ee&&B.createElement("div",{style:{padding:"20px",textAlign:"center"}},"Preview not available for this file type")))})())};function Rm(e,n){if(!n||Object.keys(n).length===0)return e;const i={};for(const[a,o]of Object.entries(e)){let u=Object.assign({},o);if(u.chatDisabled===void 0){const f=!(!u.options&&!u.checkboxes);u.chatDisabled=f}i[a]=u}return i}function tl(e){return async n=>{const i=await e(n);await n.injectMessage(i)}}const Om=B.forwardRef((e,n)=>{const[i,a]=B.useState(e.defaultOpen||!1),o=B.useRef(null);return B.useImperativeHandle(n,()=>({addMessage:u=>{var f;(f=o.current)===null||f===void 0||f.addMessage(u)},setBotEnabled:u=>{var f;(f=o.current)===null||f===void 0||f.setBotEnabled(u)},openChat:()=>{var u;a(!0),(u=o.current)===null||u===void 0||u.openChat()},closeChat:()=>{var u;a(!1),(u=o.current)===null||u===void 0||u.closeChat()},toggleChat:()=>{var u;a(f=>!f),(u=o.current)===null||u===void 0||u.toggleChat()}}),[]),B.createElement(jc,{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:i,onOpenChange:a,footerText:e.footerText,footerLink:e.footerLink,tooltipText:e.tooltipText,onAnalyticsEvent:e.onAnalyticsEvent})});Om.displayName="ProgrammaticQABot";const to={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:"demo-key"},Ir={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! ๐Ÿ˜Š"},df={SESSION_ID:"access-qa-bot-session-id"};function _m({welcome:e,setTicketForm:n,isLoggedIn:i,trackEvent: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:o=>(a({type:"chatbot_menu_selected",selection:o.userInput}),o.userInput==="Ask a question about ACCESS"?i?"go_ahead_and_ask":"qa_loop":o.userInput==="Open a Help Ticket"?(n({}),"help_ticket"):o.userInput==="Usage and performance of ACCESS resources (XDMoD)"?"metrics_intro":o.userInput==="Report a security issue"?(n({}),a({type:"chatbot_security_started"}),"security_incident"):"start")},go_ahead_and_ask:{message:`Go ahead and ask your question! I'll do my best to help.
146
+ `).concat(ne):et;return await Ht.injectMessage(xe),ze==null||ze({type:"chatbot_answer_received",queryId:Ke,responseTimeMs:kn,success:!0,responseLength:qt.length,hasMetadata:!!ne}),It=!0,setTimeout(async()=>{await Ht.injectMessage("Feel free to ask another question.")},100),null}catch(Ke){return Ho("Error in Q&A flow:",Ke),ze==null||ze({type:"chatbot_answer_error",queryId:vt??void 0,errorType:Ke instanceof Error?Ke.message:"unknown"}),"I apologize, but I'm having trouble processing your question. Please try again later."}},options:Ht=>Ue&&Ue()||Ht.userInput==="๐Ÿ‘ Helpful"||Ht.userInput==="๐Ÿ‘Ž Not helpful"?[]:De&&It?["๐Ÿ‘ Helpful","๐Ÿ‘Ž Not helpful"]:[],renderMarkdown:["BOT"],chatDisabled:!1,path:"qa_loop"}}})({endpoint:u,ratingEndpoint:f,apiKey:o,sessionId:ae.current.getSessionId,isResetting:ae.current.isResetting,isLoggedIn:ie,allowAnonAccess:v,loginUrl:W||Af,trackEvent:he});return Object.assign(Object.assign({start:{message:A,renderMarkdown:["BOT"],transition:{duration:0},path:"qa_loop"}},fe),ee||{})},[o,u,f,A,ie,v,W,ee,y,he]),ve=B.useMemo(()=>{return[()=>$p(ce),$g(),()=>Zg(fe)];var fe,ce},[]);return B.useEffect(()=>{const fe=()=>{const ge=document.querySelector(".rcb-chat-window");if(!ge)return;const ye=ge.querySelector(".rcb-send-button");ye&&(ye.hasAttribute("tabindex")||ye.setAttribute("tabindex","0"),ye.hasAttribute("data-keyboard-enabled")||(ye.setAttribute("data-keyboard-enabled","true"),ye.addEventListener("keydown",De=>{if(De.key==="Enter"||De.key===" "){De.preventDefault();const Fe=ye&&Object.keys(ye).find(Ue=>Ue.startsWith("__reactProps"));if(Fe){const Ue=ye[Fe],Je=Ue==null?void 0:Ue.onMouseDown;if(Je&&typeof Je=="function")return void Je(De)}const Re=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});ye.dispatchEvent(Re)}})))},ce=setInterval(fe,1e3);return fe(),()=>clearInterval(ce)},[]),vm(),B.useEffect(()=>{if(!be){const fe=ce=>{const ge=ce.data.newState;d==null||d(ge);const ye=Z.current;he(ge?{type:"chatbot_open"}:{type:"chatbot_close",messageCount:ye?af(ye):0,durationMs:ye?Am(ye):0})};return window.addEventListener("rcb-toggle-chat-window",fe),()=>{window.removeEventListener("rcb-toggle-chat-window",fe)}}},[be,d,he]),B.createElement("div",{className:"qa-bot ".concat(!((i=me.general)===null||i===void 0)&&i.embedded?"embedded-qa-bot":""),ref:L,role:"region","aria-label":R||uf},B.createElement(dm,{getSessionId:()=>Z.current,setSessionId:fe=>{const ce=Z.current;Z.current=fe,Zs("RESTORED","".concat(ce==null?void 0:ce.slice(-12)," -> ").concat(fe.slice(-12)))},resetSession:()=>{const fe=Z.current;$.current=!0,Z.current=of(),Zs("RESET","".concat(fe==null?void 0:fe.slice(-12)," -> ").concat(Z.current.slice(-12)))},clearResettingFlag:()=>{$.current=!1}},B.createElement(hm,{trackEvent:he},B.createElement(PA,null,B.createElement("div",null,B.createElement(mm,null),B.createElement(Zd,{ref:n,embedded:((a=me.general)===null||a===void 0?void 0:a.embedded)||!1,currentOpen:c||!1,enabled:ie!==!1,onSetEnabled:fe=>le(!!fe&&void 0)}),B.createElement(Rp,{key:"chatbot-".concat(Y.current,"-").concat(ie),settings:me,flow:F,plugins:ve}),B.createElement("div",{role:"status","aria-live":"polite","aria-label":"Bot response updates",className:"sr-only",id:"bot-live-region"}),B.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."))))))});jc.displayName="QABot",qu('.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,.rcb-chat-window .rcb-bot-message a:link,.rcb-chat-window .rcb-bot-message a:visited{color:#fff!important;text-decoration:underline!important}.rcb-chat-window .rcb-bot-message a:hover{opacity:.85;text-decoration:underline!important}.rcb-chat-window .rcb-chat-input-textarea{overflow-y:auto}.rcb-chat-window .rcb-chat-footer-container{font-size:10px}.qa-bot .history-button,.qa-bot .user-login-icon{display:none!important}.qa-bot.bot-logged-in .history-button,.qa-bot.bot-logged-in .user-login-icon{display:flex!important;transform:scale(1.3) translateY(-2px)}.qa-bot.bot-logged-in .history-button:hover{opacity:.8}.qa-bot.bot-logged-in .history-button:focus{outline:2px solid #fff;outline-offset: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 Tm=()=>{const[e,n]=B.useState(!1),i=()=>typeof navigator<"u"&&navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getDisplayMedia=="function";return{captureScreenshot:async()=>{if(!i())throw new Error("Screen capture is not available in this environment");try{n(!0);const a=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser",cursor:"always",width:{ideal:1920},height:{ideal:1080}},audio:!1}),o=document.createElement("video");o.srcObject=a,await new Promise(h=>{o.onloadedmetadata=()=>{o.play(),h()}});const u=document.createElement("canvas");u.width=o.videoWidth,u.height=o.videoHeight;const f=u.getContext("2d");if(!f)throw new Error("Could not get canvas context");f.drawImage(o,0,0,u.width,u.height);const A=await new Promise(h=>u.toBlob(h,"image/png"));if(!A)throw new Error("Could not create image blob");const c=new Date().toISOString().replace(/[:.]/g,"-"),d=new File([A],"screenshot-".concat(c,".png"),{type:"image/png"});return a.getTracks().forEach(h=>h.stop()),n(!1),d}catch(a){throw Ho("Error capturing screenshot:",a),n(!1),a}},isCapturing:e,isScreenCaptureAvailable:i()}},Dm=e=>B.createElement(lf,e,B.createElement("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),B.createElement("polyline",{points:"17 8 12 3 7 8"}),B.createElement("line",{x1:"12",y1:"3",x2:"12",y2:"15"})),Im=e=>new Promise((n,i)=>{const a=new FileReader;a.onload=()=>{if(typeof a.result!="string")return void i(new Error("Failed to read file ".concat(e.name)));const o=a.result.split(",")[1];n({fileName:e.name,contentType:e.type,size:e.size,fileData:o})},a.onerror=()=>i(new Error("Failed to read file ".concat(e.name))),a.readAsDataURL(e)}),Bm=e=>Promise.all(e.map(Im)),Mm=e=>e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB"),el=e=>{let{onFileUpload:n,maxSizeMB:i=10,acceptedTypes:a="image/*,application/pdf,text/*,.doc,.docx",enableScreenshot:o=!1,className:u}=e;const[f,A]=B.useState(!1),[c,d]=B.useState([]),[h,v]=B.useState(null),y=B.useRef(null),{captureScreenshot:k,isCapturing:C,isScreenCaptureAvailable:R}=Tm(),E=N=>{const W=document.createElement("div");W.setAttribute("aria-live","assertive"),W.setAttribute("aria-atomic","true"),W.className="sr-only",W.textContent=N,document.body.appendChild(W),setTimeout(()=>document.body.removeChild(W),1e3)},T=N=>{if(!N||N.length===0)return void cm("FileUploadComponent: No valid files provided to handleFiles");let W;try{W=Array.from(N)}catch(Z){return Ho("FileUploadComponent: Error converting files to array:",Z),void E("Error processing selected files. Please try again.")}const ee=[...c,...W];d(ee);const G=W.length,Y=W.map(Z=>Z.name).join(", ");E("".concat(G," file").concat(G>1?"s":""," selected: ").concat(Y)),setTimeout(()=>{const Z=document.querySelector(".rcb-chat-content");Z&&(Z.scrollTop=Z.scrollHeight)},100),n&&n(ee)},Q=N=>{N.preventDefault(),N.stopPropagation(),N.type==="dragenter"||N.type==="dragover"?A(!0):N.type==="dragleave"&&A(!1)},M=()=>{try{y.current&&y.current.click()}catch(N){Ho("FileUploadComponent: Error in handleButtonClick:",N),E("Error opening file selection dialog. Please try again.")}},U=()=>{v(null)},j=o&&R;return B.createElement("div",{className:"file-upload-container ".concat(u||""),style:{padding:"16px",margin:"8px 0"}},j&&B.createElement("div",{style:{display:"flex",justifyContent:"center",marginBottom:"10px"}},B.createElement("button",{onClick:N=>{N.preventDefault(),(async()=>{try{const W=await k();T([W]),E("Screenshot captured successfully")}catch{E("Error capturing screenshot. Please try again.")}})()},disabled:C,"aria-describedby":"screenshot-help","aria-label":C?"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:C?"not-allowed":"pointer",fontSize:"14px",fontWeight:"500",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}},B.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"},B.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"}),B.createElement("circle",{cx:"12",cy:"13",r:"4"})),C?"Taking screenshot...":"Take screenshot..."),B.createElement("span",{id:"screenshot-help",className:"sr-only"},"Captures the current screen and adds it as an attachment")),B.createElement("div",{className:"file-upload-dropzone ".concat(f?"active":""),onDragEnter:Q,onDragLeave:Q,onDragOver:Q,onDrop:N=>{var W;N.preventDefault(),N.stopPropagation(),A(!1);try{!((W=N.dataTransfer)===null||W===void 0)&&W.files&&N.dataTransfer.files.length>0&&T(N.dataTransfer.files)}catch(ee){Ho("FileUploadComponent: Error in handleDrop:",ee),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:N=>{N.key!=="Enter"&&N.key!==" "||(N.preventDefault(),M())},style:{padding:"20px",border:"2px dashed #ccc",borderRadius:"8px",backgroundColor:f?"#f0f8ff":"#fafafa",transition:"all 0.3s ease"}},B.createElement("input",{ref:y,type:"file",className:"file-input",onChange:N=>{var W;try{!((W=N.target)===null||W===void 0)&&W.files&&N.target.files.length>0&&T(N.target.files)}catch(ee){Ho("FileUploadComponent: Error in handleFileSelect:",ee),E("Error processing selected files. Please try again.")}},multiple:!0,style:{display:"none"},"aria-label":"Select files to upload",accept:a}),B.createElement("div",{className:"upload-content",onClick:M,style:{cursor:"pointer",flexDirection:"column",alignItems:"center",display:"flex",textAlign:"center",padding:"12px"}},B.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"8px"}},B.createElement("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:"10px"}},B.createElement(Dm,null),B.createElement("p",{style:{margin:0,fontWeight:"bold"}},"Upload Files")),B.createElement("p",{id:"upload-instructions",style:{margin:0,fontSize:"14px",color:"#666"}},"Drag and drop files here or click to select. (Max ",i,"MB each)")),c.length>0&&B.createElement("div",{className:"selected-files",style:{display:"flex",flexWrap:"wrap",gap:"8px",marginTop:"12px",alignItems:"center"}},B.createElement("span",{style:{fontWeight:400,color:"#888",fontSize:"13px",marginRight:"8px",alignSelf:"center"}},"Selected files:"),c.map((N,W)=>B.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:ee=>{ee.stopPropagation(),(G=>{v(G)})(N)}},B.createElement("span",{onClick:ee=>{ee.stopPropagation(),(G=>{const Y=c.filter((Z,$)=>$!==G);d(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(N.name)},"ร—"),N.name," (",Mm(N.size),")"))))),(()=>{if(!h)return null;const N=h.type.startsWith("image/"),W=h.type.startsWith("text/"),ee=h.type==="application/pdf";return B.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},B.createElement("div",{style:{backgroundColor:"white",padding:"20px",borderRadius:"8px",maxWidth:"90%",maxHeight:"90%",overflow:"auto",position:"relative"},onClick:G=>G.stopPropagation()},B.createElement("button",{onClick:U,style:{position:"absolute",top:"10px",right:"10px",background:"none",border:"none",fontSize:"24px",cursor:"pointer",color:"#666"}},"ร—"),B.createElement("h3",{style:{marginTop:0,marginBottom:"16px"}},h.name),N&&B.createElement("img",{src:URL.createObjectURL(h),alt:h.name,style:{maxWidth:"100%",maxHeight:"70vh"}}),W&&B.createElement("pre",{style:{whiteSpace:"pre-wrap",wordWrap:"break-word",maxHeight:"70vh",overflow:"auto",padding:"16px",backgroundColor:"#f5f5f5",borderRadius:"4px"}},URL.createObjectURL(h)),ee&&B.createElement("iframe",{src:URL.createObjectURL(h),style:{width:"100%",height:"70vh",border:"none"},title:h.name}),!N&&!W&&!ee&&B.createElement("div",{style:{padding:"20px",textAlign:"center"}},"Preview not available for this file type")))})())};function Rm(e,n){if(!n||Object.keys(n).length===0)return e;const i={};for(const[a,o]of Object.entries(e)){let u=Object.assign({},o);if(u.chatDisabled===void 0){const f=!(!u.options&&!u.checkboxes);u.chatDisabled=f}i[a]=u}return i}function tl(e){return async n=>{const i=await e(n);await n.injectMessage(i)}}const Om=B.forwardRef((e,n)=>{const[i,a]=B.useState(e.defaultOpen||!1),o=B.useRef(null);return B.useImperativeHandle(n,()=>({addMessage:u=>{var f;(f=o.current)===null||f===void 0||f.addMessage(u)},setBotEnabled:u=>{var f;(f=o.current)===null||f===void 0||f.setBotEnabled(u)},openChat:()=>{var u;a(!0),(u=o.current)===null||u===void 0||u.openChat()},closeChat:()=>{var u;a(!1),(u=o.current)===null||u===void 0||u.closeChat()},toggleChat:()=>{var u;a(f=>!f),(u=o.current)===null||u===void 0||u.toggleChat()}}),[]),B.createElement(jc,{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:i,onOpenChange:a,footerText:e.footerText,footerLink:e.footerLink,tooltipText:e.tooltipText,onAnalyticsEvent:e.onAnalyticsEvent})});Om.displayName="ProgrammaticQABot";const to={QA_ENDPOINT:"http://localhost:8000/api/v1/query",RATING_ENDPOINT:"http://localhost:8000/api/v1/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:"demo-key"},Ir={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! ๐Ÿ˜Š"},df={SESSION_ID:"access-qa-bot-session-id"};function _m({welcome:e,setTicketForm:n,isLoggedIn:i,trackEvent: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:o=>(a({type:"chatbot_menu_selected",selection:o.userInput}),o.userInput==="Ask a question about ACCESS"?i?"go_ahead_and_ask":"qa_loop":o.userInput==="Open a Help Ticket"?(n({}),"help_ticket"):o.userInput==="Usage and performance of ACCESS resources (XDMoD)"?"metrics_intro":o.userInput==="Report a security issue"?(n({}),a({type:"chatbot_security_started"}),"security_incident"):"start")},go_ahead_and_ask:{message:`Go ahead and ask your question! I'll do my best to help.
147
147
 
148
- *This assistant is powered by AI. Responses may not always be accurate. Do not share passwords or secrets.* [Privacy Notice](https://support.access-ci.org/tools/access-qa-tool/privacy)`,path:"qa_loop"}}}let Wc=null;function Lm(e){Wc=e}function Ie(){return Wc?Wc.ticketForm||{}:(console.warn("Form context not available, returning empty form"),{})}function Ft(e={}){const n=Ie();return{...n,email:e.email||n.email,name:e.name||n.name,accessId:e.accessId||n.accessId}}function Yc(e){return e&&e.length>0?`
148
+ <em>This assistant is powered by AI. Responses may not always be accurate. Do not share passwords or secrets.</em> <a href="https://support.access-ci.org/tools/access-qa-tool/privacy">Privacy Notice</a>`,renderHtml:["BOT"],path:"qa_loop"}}}let Wc=null;function Lm(e){Wc=e}function Ie(){return Wc?Wc.ticketForm||{}:(console.warn("Form context not available, returning empty form"),{})}function Ft(e={}){const n=Ie();return{...n,email:e.email||n.email,name:e.name||n.name,accessId:e.accessId||n.accessId}}function Yc(e){return e&&e.length>0?`
149
149
  Attachments: ${e.length} file(s) attached`:""}const Da={SUPPORT:17,LOGIN_ACCESS:30,LOGIN_PROVIDER:31,SECURITY:26};async function Fm(e,n="support",i=[]){const o={support:Da.SUPPORT,general_help:Da.SUPPORT,loginAccess:Da.LOGIN_ACCESS,loginProvider:Da.LOGIN_PROVIDER,security:Da.SECURITY}[n]||Da.SUPPORT,f={serviceDeskId:n==="security"?3:2,requestTypeId:o,requestFieldValues:{...e}};return i.length>0&&(f.attachments=await Bm(i)),f}async function Qm(e,n){var o,u;const a=`${to.NETLIFY_BASE_URL}/api/v1/${n}`;try{const f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!f.ok){let c="";try{const d=await f.text();try{const h=JSON.parse(d);c=h.message||h.error||d}catch{c=d}}catch{c=`HTTP ${f.status} ${f.statusText}`}return f.status===403?c="The ticket service is temporarily unavailable. Please try again later or contact support directly.":f.status===404?c="Ticket service not found. Please try again later.":f.status===500?c="Server error. Please try again later.":f.status===401&&(c="Authentication error with the ticket service. Please contact support."),{success:!1,status:f.status,error:c}}const A=await f.json();return{success:!0,ticketKey:(o=A.data)==null?void 0:o.ticketKey,ticketUrl:(u=A.data)==null?void 0:u.ticketUrl}}catch(f){return{success:!1,error:f instanceof Error?f.message:"Unknown error"}}}async function nl(e,n,i=[]){try{const a=await Fm(e,n,i);return await Qm(a,n==="security"?"security-incidents":"tickets")}catch(a){return{success:!1,error:a instanceof Error?a.message:"Unknown error"}}}function Gc(e,n="ticket"){return e?e.success?e.ticketUrl&&e.ticketKey?`Your ${n} has been submitted successfully.
150
150
 
151
151
  Ticket: <a href="${e.ticketUrl}" target="_blank">${e.ticketKey}</a>
@@ -352,5 +352,17 @@ Would you like to submit this security incident report?`},options:["Submit Secur
352
352
  color: white !important;
353
353
  transform: translateY(0) !important;
354
354
  }
355
- `;function ev(e){if(!e)return;const n=e.getRootNode();if(!(n instanceof ShadowRoot)||n.getElementById(pf))return;const i=document.createElement("style");i.id=pf,i.textContent=Zm,n.appendChild(i)}const Jc=B.forwardRef((e,n)=>{const{apiKey:i=to.DEFAULT_API_KEY,isLoggedIn:a=!1,loginUrl:o=Ir.LOGIN_URL,userEmail:u,userName:f,accessId:A,actingUser:c,ringEffect:d,defaultOpen:h,onClose:v,open:y,onOpenChange:k,embedded:C=!1,welcome:R,qaEndpoint:E,ratingEndpoint:T,onAnalyticsEvent:Q}=e,M=B.useRef(null),U=B.useRef(null),[j,N]=B.useState({}),W=B.useMemo(()=>({email:u,name:f,accessId:A}),[u,f,A]);B.useEffect(()=>{ev(U.current)},[]),B.useEffect(()=>{Lm({ticketForm:j,setTicketForm:N})},[j]),B.useImperativeHandle(n,()=>({addMessage:ae=>{var ie,le;(le=(ie=M.current)==null?void 0:ie.addMessage)==null||le.call(ie,ae)}}));const ee=R||(a?Ir.WELCOME_MESSAGE:Ir.WELCOME_MESSAGE_LOGGED_OUT),G=B.useMemo(()=>$m(),[]),Y=B.useCallback(ae=>{Q&&Q({...ae,type:ae.type,timestamp:ae.timestamp??Date.now(),sessionId:ae.sessionId??G})},[Q,G]),Z=B.useCallback(ae=>{Q&&Q({...ae,type:ae.type,timestamp:typeof ae.timestamp=="number"?ae.timestamp:Date.now(),sessionId:typeof ae.sessionId=="string"?ae.sessionId:G})},[Q,G]),$=B.useMemo(()=>{const ae=_m({welcome:ee,setTicketForm:N,isLoggedIn:a,trackEvent:Y}),ie=Ym({ticketForm:j,setTicketForm:N,userInfo:W,trackEvent:Y}),le=Vm({ticketForm:j,setTicketForm:N,userInfo:W,trackEvent:Y}),be=Km({sessionId:G,apiKey:i,trackEvent:Y}),he={...ae,...ie,...le,...be};return Rm(he,{disableOnOptions:!0})},[ee,j,W,G,i,a,Y]);return z.jsx("div",{ref:U,children:z.jsx(jc,{ref:M,isLoggedIn:a,actingUser:c,onAnalyticsEvent:Z,apiKey:i,qaEndpoint:E||to.QA_ENDPOINT,ratingEndpoint:T||to.RATING_ENDPOINT,botName:Ir.BOT_NAME,logo:Ir.LOGO,primaryColor:Ir.PRIMARY_COLOR,secondaryColor:Ir.SECONDARY_COLOR,welcomeMessage:ee,tooltipText:Ir.TOOLTIP,loginUrl:o,open:y,onOpenChange:k,embedded:C,footerText:"AI-powered ยท Privacy Notice",footerLink:"https://support.access-ci.org/tools/access-qa-tool/privacy",customFlow:$})})});Jc.displayName="AccessQABot",Bn.API_CONFIG=to,Bn.AccessQABot=Jc,Bn.BOT_CONFIG=Ir,Bn.QABot=Jc,Object.defineProperty(Bn,Symbol.toStringTag,{value:"Module"})});
355
+
356
+ .rcb-bot-message a,
357
+ .rcb-chat-window .rcb-bot-message a:link,
358
+ .rcb-chat-window .rcb-bot-message a:visited {
359
+ color: #ffffff !important;
360
+ text-decoration: underline !important;
361
+ }
362
+
363
+ .rcb-bot-message a:hover {
364
+ opacity: 0.85;
365
+ text-decoration: underline !important;
366
+ }
367
+ `;function ev(e){if(!e)return;const n=e.getRootNode();if(!(n instanceof ShadowRoot)||n.getElementById(pf))return;const i=document.createElement("style");i.id=pf,i.textContent=Zm,n.appendChild(i)}const Jc=B.forwardRef((e,n)=>{const{apiKey:i=to.DEFAULT_API_KEY,isLoggedIn:a=!1,loginUrl:o=Ir.LOGIN_URL,userEmail:u,userName:f,accessId:A,actingUser:c,ringEffect:d,defaultOpen:h,onClose:v,open:y,onOpenChange:k,embedded:C=!1,welcome:R,qaEndpoint:E,ratingEndpoint:T,onAnalyticsEvent:Q}=e,M=B.useRef(null),U=B.useRef(null),[j,N]=B.useState({}),W=B.useMemo(()=>({email:u,name:f,accessId:A}),[u,f,A]);B.useEffect(()=>{ev(U.current)},[]),B.useEffect(()=>{Lm({ticketForm:j,setTicketForm:N})},[j]),B.useImperativeHandle(n,()=>({addMessage:ae=>{var ie,le;(le=(ie=M.current)==null?void 0:ie.addMessage)==null||le.call(ie,ae)}}));const ee=R||(a?Ir.WELCOME_MESSAGE:Ir.WELCOME_MESSAGE_LOGGED_OUT),G=B.useMemo(()=>$m(),[]),Y=B.useCallback(ae=>{Q&&Q({...ae,type:ae.type,timestamp:ae.timestamp??Date.now(),sessionId:ae.sessionId??G})},[Q,G]),Z=B.useCallback(ae=>{Q&&Q({...ae,type:ae.type,timestamp:typeof ae.timestamp=="number"?ae.timestamp:Date.now(),sessionId:typeof ae.sessionId=="string"?ae.sessionId:G})},[Q,G]),$=B.useMemo(()=>{const ae=_m({welcome:ee,setTicketForm:N,isLoggedIn:a,trackEvent:Y}),ie=Ym({ticketForm:{},setTicketForm:N,userInfo:W,trackEvent:Y}),le=Vm({ticketForm:{},setTicketForm:N,userInfo:W,trackEvent:Y}),be=Km({sessionId:G,apiKey:i,trackEvent:Y}),he={...ae,...ie,...le,...be};return Rm(he,{disableOnOptions:!0})},[ee,W,G,i,a,Y]);return z.jsx("div",{ref:U,children:z.jsx(jc,{ref:M,isLoggedIn:a,actingUser:c,onAnalyticsEvent:Z,apiKey:i,qaEndpoint:E||to.QA_ENDPOINT,ratingEndpoint:T||to.RATING_ENDPOINT,botName:Ir.BOT_NAME,logo:Ir.LOGO,primaryColor:Ir.PRIMARY_COLOR,secondaryColor:Ir.SECONDARY_COLOR,welcomeMessage:ee,tooltipText:Ir.TOOLTIP,loginUrl:o,open:y,onOpenChange:k,embedded:C,footerText:"AI-powered ยท Privacy Notice",footerLink:"https://support.access-ci.org/tools/access-qa-tool/privacy",customFlow:$})})});Jc.displayName="AccessQABot",Bn.API_CONFIG=to,Bn.AccessQABot=Jc,Bn.BOT_CONFIG=Ir,Bn.QABot=Jc,Object.defineProperty(Bn,Symbol.toStringTag,{value:"Module"})});
356
368
  //# sourceMappingURL=access-qa-bot.umd.cjs.map