obi-sdk 0.19.50-beta.4 → 0.19.50-beta.5
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/index.js +1 -1
- package/dist/obi-sdk.standalone.iife.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -118,4 +118,4 @@ ${t}</tr>
|
|
|
118
118
|
`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
|
|
119
119
|
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${ta(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let i=this.parser.parseInline(n),r=OE(t);if(r===null)return i;t=r;let a='<a href="'+t+'"';return e&&(a+=' title="'+ta(e)+'"'),a+=">"+i+"</a>",a}image({href:t,title:e,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=OE(t);if(r===null)return ta(n);t=r;let a=`<img src="${t}" alt="${n}"`;return e&&(a+=` title="${ta(e)}"`),a+=">",a}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:ta(t.text)}},db=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},Zi=class wb{constructor(e){nt(this,"options"),nt(this,"renderer"),nt(this,"textRenderer"),this.options=e||Io,this.options.renderer=this.options.renderer||new Lf,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new db}static parse(e,n){return new wb(n).parse(e)}static parseInline(e,n){return new wb(n).parseInline(e)}parse(e){var i,r;let n="";for(let a=0;a<e.length;a++){let o=e[a];if((r=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&r[o.type]){let l=o,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){n+=c||"";continue}}let s=o;switch(s.type){case"space":{n+=this.renderer.space(s);break}case"hr":{n+=this.renderer.hr(s);break}case"heading":{n+=this.renderer.heading(s);break}case"code":{n+=this.renderer.code(s);break}case"table":{n+=this.renderer.table(s);break}case"blockquote":{n+=this.renderer.blockquote(s);break}case"list":{n+=this.renderer.list(s);break}case"checkbox":{n+=this.renderer.checkbox(s);break}case"html":{n+=this.renderer.html(s);break}case"def":{n+=this.renderer.def(s);break}case"paragraph":{n+=this.renderer.paragraph(s);break}case"text":{n+=this.renderer.text(s);break}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return n}parseInline(e,n=this.renderer){var r,a;let i="";for(let o=0;o<e.length;o++){let s=e[o];if((a=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&a[s.type]){let c=this.options.extensions.renderers[s.type].call({parser:this},s);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){i+=c||"";continue}}let l=s;switch(l.type){case"escape":{i+=n.text(l);break}case"html":{i+=n.html(l);break}case"link":{i+=n.link(l);break}case"image":{i+=n.image(l);break}case"checkbox":{i+=n.checkbox(l);break}case"strong":{i+=n.strong(l);break}case"em":{i+=n.em(l);break}case"codespan":{i+=n.codespan(l);break}case"br":{i+=n.br(l);break}case"del":{i+=n.del(l);break}case"text":{i+=n.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return i}},Pf,Zc=(Pf=class{constructor(t){nt(this,"options"),nt(this,"block"),this.options=t||Io}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(){return this.block?Ji.lex:Ji.lexInline}provideParser(){return this.block?Zi.parse:Zi.parseInline}},nt(Pf,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),nt(Pf,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Pf),ez=class{constructor(...t){nt(this,"defaults",nb()),nt(this,"options",this.setOptions),nt(this,"parse",this.parseMarkdown(!0)),nt(this,"parseInline",this.parseMarkdown(!1)),nt(this,"Parser",Zi),nt(this,"Renderer",Lf),nt(this,"TextRenderer",db),nt(this,"Lexer",Ji),nt(this,"Tokenizer",Nf),nt(this,"Hooks",Zc),this.use(...t)}walkTokens(t,e){var i,r;let n=[];for(let a of t)switch(n=n.concat(e.call(this,a)),a.type){case"table":{let o=a;for(let s of o.header)n=n.concat(this.walkTokens(s.tokens,e));for(let s of o.rows)for(let l of s)n=n.concat(this.walkTokens(l.tokens,e));break}case"list":{let o=a;n=n.concat(this.walkTokens(o.items,e));break}default:{let o=a;(r=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&r[o.type]?this.defaults.extensions.childTokens[o.type].forEach(s=>{let l=o[s].flat(1/0);n=n.concat(this.walkTokens(l,e))}):o.tokens&&(n=n.concat(this.walkTokens(o.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let a=e.renderers[r.name];a?e.renderers[r.name]=function(...o){let s=r.renderer.apply(this,o);return s===!1&&(s=a.apply(this,o)),s}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[r.level];a?a.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),i.extensions=e),n.renderer){let r=this.defaults.renderer||new Lf(this.defaults);for(let a in n.renderer){if(!(a in r))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let o=a,s=n.renderer[o],l=r[o];r[o]=(...c)=>{let u=s.apply(r,c);return u===!1&&(u=l.apply(r,c)),u||""}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Nf(this.defaults);for(let a in n.tokenizer){if(!(a in r))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let o=a,s=n.tokenizer[o],l=r[o];r[o]=(...c)=>{let u=s.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new Zc;for(let a in n.hooks){if(!(a in r))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let o=a,s=n.hooks[o],l=r[o];Zc.passThroughHooks.has(a)?r[o]=c=>{if(this.defaults.async&&Zc.passThroughHooksRespectAsync.has(a))return(async()=>{let d=await s.call(r,c);return l.call(r,d)})();let u=s.call(r,c);return l.call(r,u)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let d=await s.apply(r,c);return d===!1&&(d=await l.apply(r,c)),d})();let u=s.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,a=n.walkTokens;i.walkTokens=function(o){let s=[];return s.push(a.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Ji.lex(t,e??this.defaults)}parser(t,e){return Zi.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let i={...n},r={...this.defaults,...i},a=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=t),r.async)return(async()=>{let o=r.hooks?await r.hooks.preprocess(e):e,s=await(r.hooks?await r.hooks.provideLexer():t?Ji.lex:Ji.lexInline)(o,r),l=r.hooks?await r.hooks.processAllTokens(s):s;r.walkTokens&&await Promise.all(this.walkTokens(l,r.walkTokens));let c=await(r.hooks?await r.hooks.provideParser():t?Zi.parse:Zi.parseInline)(l,r);return r.hooks?await r.hooks.postprocess(c):c})().catch(a);try{r.hooks&&(e=r.hooks.preprocess(e));let o=(r.hooks?r.hooks.provideLexer():t?Ji.lex:Ji.lexInline)(e,r);r.hooks&&(o=r.hooks.processAllTokens(o)),r.walkTokens&&this.walkTokens(o,r.walkTokens);let s=(r.hooks?r.hooks.provideParser():t?Zi.parse:Zi.parseInline)(o,r);return r.hooks&&(s=r.hooks.postprocess(s)),s}catch(o){return a(o)}}}onError(t,e){return n=>{if(n.message+=`
|
|
120
120
|
Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error occurred:</p><pre>"+ta(n.message+"",!0)+"</pre>";return e?Promise.resolve(i):i}if(e)return Promise.reject(n);throw n}}},Bo=new ez;function Ge(t,e){return Bo.parse(t,e)}Ge.options=Ge.setOptions=function(t){return Bo.setOptions(t),Ge.defaults=Bo.defaults,gE(Ge.defaults),Ge},Ge.getDefaults=nb,Ge.defaults=Io,Ge.use=function(...t){return Bo.use(...t),Ge.defaults=Bo.defaults,gE(Ge.defaults),Ge},Ge.walkTokens=function(t,e){return Bo.walkTokens(t,e)},Ge.parseInline=Bo.parseInline,Ge.Parser=Zi,Ge.parser=Zi.parse,Ge.Renderer=Lf,Ge.TextRenderer=db,Ge.Lexer=Ji,Ge.lexer=Ji.lex,Ge.Tokenizer=Nf,Ge.Hooks=Zc,Ge.parse=Ge,Ge.options,Ge.setOptions,Ge.use,Ge.walkTokens,Ge.parseInline,Zi.parse,Ji.lex;const tz="_base_1ne03_1",nz={base:tz},iz=["p","br","strong","em","u","a","ul","ol","li","h1","h2","h3","h4","h5","h6","code","pre","blockquote","hr"],rz=["href","title","target","rel"];Ge.setOptions({breaks:!0,gfm:!0});function az(t){const{content:e,className:n,...i}=t,r=O.useMemo(()=>{if(!e)return"";const a=Ge.parse(e,{async:!1});return vU.sanitize(a,{ALLOWED_TAGS:[...iz],ALLOWED_ATTR:[...rz],ALLOW_DATA_ATTR:!1})},[e]);return r?x.jsx("div",{className:ae(nz.base,n),dangerouslySetInnerHTML:{__html:r},...i}):null}const oz="_controlBar_pz3d3_1",sz="_popoverAnchor_pz3d3_11",lz="_confirmationPopover_pz3d3_15",cz="_confirmationPopoverAlignRight_pz3d3_30",uz="_confirmationPopoverAlignCenter_pz3d3_33",dz="_confirmationMessage_pz3d3_53",hz="_confirmationActions_pz3d3_60",fz="_confirmationButton_pz3d3_65",pz="_confirmationButtonCancel_pz3d3_83",mz="_confirmationButtonNeutral_pz3d3_91",gz="_confirmationButtonDanger_pz3d3_99",vz="_controlButton_pz3d3_108",bz="_controlButtonIconOnly_pz3d3_130",yz="_controlButtonDisabled_pz3d3_135",_z="_controlButtonDanger_pz3d3_162",xz="_controlButtonContent_pz3d3_178",Sz="_controlButtonIcon_pz3d3_130",Tz="_controlButtonLabel_pz3d3_194",kz="_controlButtonChevron_pz3d3_201",Cz="_controlButtonNotificationDot_pz3d3_210",wz="_deviceSplitButton_pz3d3_222",Ez="_deviceSplitButtonEnabled_pz3d3_226",Rz="_dualButtonContent_pz3d3_307",Az="_dualButtonIcon_pz3d3_317",Oz="_dualButtonLabel_pz3d3_326",Mz="_screenShareButton_pz3d3_340",Le={controlBar:oz,popoverAnchor:sz,confirmationPopover:lz,confirmationPopoverAlignRight:cz,confirmationPopoverAlignCenter:uz,confirmationMessage:dz,confirmationActions:hz,confirmationButton:fz,confirmationButtonCancel:pz,confirmationButtonNeutral:mz,confirmationButtonDanger:gz,controlButton:vz,controlButtonIconOnly:bz,controlButtonDisabled:yz,controlButtonDanger:_z,controlButtonContent:xz,controlButtonIcon:Sz,controlButtonLabel:Tz,controlButtonChevron:kz,controlButtonNotificationDot:Cz,deviceSplitButton:wz,deviceSplitButtonEnabled:Ez,dualButtonContent:Rz,dualButtonIcon:Az,dualButtonLabel:Oz,screenShareButton:Mz},Dz="_inline_1gpyx_1",Nz="_vertical_1gpyx_6",Lz="_divider_1gpyx_10",Pz="_dividerVertical_1gpyx_16",Iz="_customDivider_1gpyx_21",$c={inline:Dz,vertical:Nz,divider:Lz,dividerVertical:Pz,customDivider:Iz},NE={none:"0px",xxs:"var(--space-xxs)",xs:"var(--space-xs)",sm:"var(--space-sm)",md:"var(--space-md)",lg:"var(--space-lg)",xl:"var(--space-xl)","2xl":"var(--space-2xl)","3xl":"var(--space-3xl)","4xl":"var(--space-4xl)","5xl":"var(--space-5xl)"};function $i(t){if(t!==void 0){if(typeof t=="number")return`${t}px`;if(t in NE)return NE[t];if(typeof t=="string"&&t.trim().length>0)return t}}function Bz(t,e){const{as:n,direction:i="horizontal",gap:r,align:a="center",justify:o,wrap:s=!1,divider:l,className:c,style:u,children:d,...h}=t,f=n??"div",b={display:"flex",flexDirection:i==="horizontal"?"row":"column",flexWrap:s?"wrap":"nowrap",alignItems:a,...o?{justifyContent:o}:{},...u};if(r!==void 0){const g=$i(r);g&&(b.gap=g)}const y=Fn.Children.toArray(d).filter(g=>g!=null&&typeof g!="boolean"),T=g=>!l||g===0?null:l===!0||l==="line"?x.jsx("span",{"aria-hidden":"true",className:ae($c.divider,i==="vertical"&&$c.dividerVertical)},`inline-divider-${g}`):x.jsx("span",{"aria-hidden":"true",className:$c.customDivider,children:l},`inline-divider-${g}`),m=[];return y.forEach((g,_)=>{if(_>0){const p=T(_);p&&m.push(p)}m.push(g)}),x.jsx(f,{ref:e,className:ae($c.inline,i==="vertical"&&$c.vertical,c),style:b,...h,children:m})}const hb=Fn.forwardRef(Bz);hb.displayName="Inline";function Uz(){const[t,e]=O.useState(()=>typeof window>"u"?!1:window.innerWidth<768);return O.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(max-width: 767px)"),i=()=>{e(n.matches)};return i(),typeof n.addEventListener=="function"?(n.addEventListener("change",i),()=>n.removeEventListener("change",i)):(n.addListener(i),()=>n.removeListener(i))},[]),t}function fb(t){const{icon:e,label:n,showChevron:i=!1,variant:r="default",disabled:a,className:o="",size:s="md",iconOnly:l=!1,showNotificationDot:c=!1,isOn:u,"aria-label":d,...h}=t,f=ae(Le.controlButton,a&&Le.controlButtonDisabled,l&&Le.controlButtonIconOnly,r==="danger"&&Le.controlButtonDanger,o),b=Number.parseInt(Fv[s],10),y=r==="danger"?"outline":"primary",T=r==="danger"?"danger":"default",m=x.jsxs(x.Fragment,{children:[x.jsxs("span",{className:Le.controlButtonContent,children:[e?x.jsx("span",{className:Le.controlButtonIcon,children:Fn.isValidElement(e)&&e.props.size===void 0?Fn.cloneElement(e,{size:b}):e}):null,l?null:x.jsx("span",{className:Le.controlButtonLabel,children:n}),l||!i?null:x.jsx("span",{className:Le.controlButtonChevron,"aria-hidden":"true",children:x.jsx(Vv,{size:16})})]}),c?x.jsx("span",{className:Le.controlButtonNotificationDot,"aria-hidden":"true"}):null]});return typeof u=="boolean"?x.jsx(kf,{...h,type:"button",disabled:a,variant:y,color:T,isOn:u,"aria-label":d||n,className:f,"data-has-notification":c?"true":void 0,children:m}):x.jsx(nl,{...h,type:"button",disabled:a,variant:y,color:T,"aria-label":d||n,className:f,"data-has-notification":c?"true":void 0,children:m})}function zz(t){const{audioDevices:e,currentMicrophoneId:n,isMicrophoneEnabled:i,isScreenShareActive:r,widgetState:a,canPublishData:o,browserSupportsScreenSharing:s,onMicDeviceSelect:l,onMicToggle:c,onChatToggle:u,onLeave:d,onScreenShareToggle:h,showChatNotification:f=!1,isLanguageSelectorEnabled:b=!0,languages:y=[],selectedLanguage:T=null,defaultLanguageCode:m=null,isMultilingual:g=!1,onLanguageChange:_,isChatOpen:p=a==="chat"}=t,S=y.length,k=b&&g&&S>0,C=Uz(),E=C?"xs":"sm",R=C,[A,N]=O.useState(!1),[q,W]=O.useState(!1),ue=O.useRef(null),H=O.useRef(null);O.useEffect(()=>{const he=le=>{const ge=le.composedPath();A&&ue.current&&!ge.includes(ue.current)&&N(!1),q&&H.current&&!ge.includes(H.current)&&W(!1)},j=le=>{le.key==="Escape"&&(A&&N(!1),q&&W(!1))};if(A||q)return document.addEventListener("mousedown",he),document.addEventListener("keydown",j),()=>{document.removeEventListener("mousedown",he),document.removeEventListener("keydown",j)}},[A,q]),O.useEffect(()=>{r||N(!1)},[r]);const P=O.useMemo(()=>e.map(he=>({label:he.label||`Microphone ${he.deviceId.slice(0,8)}`,value:he.deviceId})),[e]),J=O.useMemo(()=>n?P.find(he=>he.value===n)??null:null,[n,P]),X=O.useCallback(he=>{he.value,l(he.value)},[l]),ne={microphone:!0,screenShare:s,chat:o},Y=O.useCallback(()=>{if(r){N(!0);return}h()},[r,h]),Z=O.useCallback(()=>{N(!1),h()},[h]),K=O.useCallback(()=>{N(!1)},[]),V=O.useCallback(()=>{W(!0)},[]),oe=O.useCallback(()=>{W(!1),d()},[d]),B=O.useCallback(()=>{W(!1)},[]);return x.jsx("div",{className:Le.controlBar,"data-testid":"control-bar","data-controls":JSON.stringify(ne),"data-language-option-count":S>0?String(S):void 0,"data-default-language-code":m??void 0,children:x.jsxs(hb,{gap:E,align:"center",justify:"center",wrap:R,children:[x.jsx(k7,{onClick:c,buttonAriaLabel:i?"Mute microphone":"Unmute microphone",options:P,value:J,onChange:X,variant:"primary",menuPlacement:"top",menuDisabled:P.length===0,menuAriaLabel:"Select microphone device",listboxAriaLabel:"Microphone devices",ariaPressed:i,className:ae(Le.deviceSplitButton,i&&Le.deviceSplitButtonEnabled),children:x.jsxs("span",{className:Le.dualButtonContent,children:[x.jsx("span",{className:Le.dualButtonIcon,children:i?x.jsx(H2,{}):x.jsx(V2,{})}),x.jsx("span",{className:Le.dualButtonLabel,children:"Microphone"})]})}),o?x.jsx(fb,{icon:x.jsx(j2,{}),label:"Chat",onClick:u,isOn:p,"aria-label":"Toggle chat",showNotificationDot:f}):null,s?x.jsxs("div",{ref:ue,className:Le.popoverAnchor,children:[x.jsx(fb,{icon:x.jsx(G2,{}),label:r?"Share screen off":"Share screen",className:Le.screenShareButton,onClick:Y,isOn:r,"aria-label":r?"Stop screen sharing":"Start screen sharing"}),A?x.jsxs("div",{className:ae(Le.confirmationPopover,Le.confirmationPopoverAlignCenter),role:"dialog","aria-label":"Stop screen sharing confirmation","data-testid":"confirm-stop-share",children:[x.jsx("p",{className:Le.confirmationMessage,children:"Stop screen sharing?"}),x.jsxs("div",{className:Le.confirmationActions,children:[x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonCancel),onClick:K,children:"Cancel"}),x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonNeutral),onClick:Z,children:"Stop"})]})]}):null]}):null,k?x.jsx($2,{languages:y,value:T,onChange:_,defaultLanguageCode:m,variant:"control-bar"}):null,x.jsxs("div",{ref:H,className:Le.popoverAnchor,children:[x.jsx(fb,{icon:x.jsx(F2,{}),label:"Leave",variant:"danger",onClick:V,"aria-label":"Leave meeting"}),q?x.jsxs("div",{className:ae(Le.confirmationPopover,Le.confirmationPopoverAlignRight),role:"dialog","aria-label":"Leave meeting confirmation","data-testid":"confirm-leave",children:[x.jsx("p",{className:Le.confirmationMessage,children:"Would you like to end the call?"}),x.jsxs("div",{className:Le.confirmationActions,children:[x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonCancel),onClick:B,children:"Cancel"}),x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonDanger),onClick:oe,children:"Leave"})]})]}):null]})]})})}function jz(t){return x.jsx(zz,{...t})}const qz="_controlBar_75i8h_1",Fz="_controlButton_75i8h_12",Hz="_controlButtonDisabled_75i8h_35",Vz="_controlButtonDanger_75i8h_62",Gz="_controlButtonIconOnly_75i8h_78",Wz="_screenShareButton_75i8h_83",Yz="_controlButtonContent_75i8h_88",Kz="_controlButtonIcon_75i8h_78",Xz="_controlButtonLabel_75i8h_103",Qz="_controlButtonNotificationDot_75i8h_108",Jz="_popoverAnchor_75i8h_198",Zz="_confirmationPopover_75i8h_202",$z="_confirmationMessage_75i8h_216",ej="_confirmationActions_75i8h_223",tj="_confirmationButton_75i8h_228",nj="_confirmationButtonCancel_75i8h_246",ij="_confirmationButtonDanger_75i8h_254",nn={controlBar:qz,controlButton:Fz,controlButtonDisabled:Hz,controlButtonDanger:Vz,controlButtonIconOnly:Gz,screenShareButton:Wz,controlButtonContent:Yz,controlButtonIcon:Kz,controlButtonLabel:Xz,controlButtonNotificationDot:Qz,popoverAnchor:Jz,confirmationPopover:Zz,confirmationMessage:$z,confirmationActions:ej,confirmationButton:tj,confirmationButtonCancel:nj,confirmationButtonDanger:ij};function If(t){const{icon:e,label:n,variant:i="default",disabled:r,className:a="",iconOnly:o=!1,showNotificationDot:s=!1,isOn:l,"aria-label":c,...u}=t,d=ae(nn.controlButton,r&&nn.controlButtonDisabled,o&&nn.controlButtonIconOnly,i==="danger"&&nn.controlButtonDanger,a),h=i==="danger"?"outline":"primary",f=i==="danger"?"danger":"default",b=x.jsxs(x.Fragment,{children:[x.jsxs("span",{className:nn.controlButtonContent,children:[e?x.jsx("span",{className:nn.controlButtonIcon,children:Fn.isValidElement(e)&&e.props.size===void 0?Fn.cloneElement(e,{size:20}):e}):null,o?null:x.jsx("span",{className:nn.controlButtonLabel,children:n})]}),s?x.jsx("span",{className:nn.controlButtonNotificationDot,"aria-hidden":"true"}):null]});return typeof l=="boolean"?x.jsx(kf,{...u,type:"button",disabled:r,variant:h,color:f,size:"xs",isOn:l,"aria-label":c||n,className:d,"data-has-notification":s?"true":void 0,children:b}):x.jsx(nl,{...u,type:"button",disabled:r,variant:h,color:f,size:"xs","aria-label":c||n,className:d,"data-has-notification":s?"true":void 0,children:b})}function rj(t){const{isMicrophoneEnabled:e,isChatOpen:n,isScreenShareActive:i,showChatNotification:r=!1,onMicToggle:a,onChatToggle:o,onScreenShareToggle:s,onLeave:l,languages:c=[],selectedLanguage:u=null,defaultLanguageCode:d=null,isMultilingual:h,onLanguageChange:f,isLanguageSelectorEnabled:b=!0,className:y,testId:T,...m}=t,g=!b||!h||c.length===0,[_,p]=O.useState(!1),S=O.useRef(null);O.useEffect(()=>{const N=W=>{const ue=W.composedPath();_&&S.current&&!ue.includes(S.current)&&p(!1)},q=W=>{W.key==="Escape"&&_&&p(!1)};if(_)return document.addEventListener("mousedown",N),document.addEventListener("keydown",q),()=>{document.removeEventListener("mousedown",N),document.removeEventListener("keydown",q)}},[_]);const k=O.useCallback(()=>{a()},[a]),C=O.useCallback(()=>{s()},[s]),E=O.useCallback(()=>{p(!0)},[]),R=O.useCallback(()=>{p(!1),l()},[l]),A=O.useCallback(()=>{p(!1)},[]);return x.jsx("div",{...m,className:ae(nn.controlBar,y),"data-testid":T,children:x.jsxs(hb,{gap:"xs",align:"center",justify:"center",wrap:!1,children:[x.jsx(If,{icon:e?x.jsx(H2,{}):x.jsx(V2,{}),label:"Microphone",iconOnly:!0,isOn:e,onClick:k,"aria-label":e?"Mute microphone":"Unmute microphone"}),x.jsx(If,{icon:x.jsx(j2,{}),label:"Chat",iconOnly:!0,isOn:n,onClick:o,"aria-label":"Toggle chat",showNotificationDot:r}),x.jsx(If,{icon:x.jsx(G2,{}),label:"Screen share",iconOnly:!0,className:nn.screenShareButton,isOn:i,onClick:C,"aria-label":i?"Stop screen sharing":"Start screen sharing"}),x.jsx($2,{languages:c,value:u,onChange:f,defaultLanguageCode:d,variant:"pip",disabled:g}),x.jsxs("div",{ref:S,className:nn.popoverAnchor,children:[x.jsx(If,{icon:x.jsx(F2,{}),label:"Hang up",iconOnly:!0,variant:"danger",onClick:E,"aria-label":"Hang up"}),_?x.jsxs("div",{className:nn.confirmationPopover,role:"dialog","aria-label":"Hang up confirmation","data-testid":"confirm-leave",children:[x.jsx("p",{className:nn.confirmationMessage,children:"Would you like to end the call?"}),x.jsxs("div",{className:nn.confirmationActions,children:[x.jsx("button",{type:"button",className:ae(nn.confirmationButton,nn.confirmationButtonCancel),onClick:A,children:"Cancel"}),x.jsx("button",{type:"button",className:ae(nn.confirmationButton,nn.confirmationButtonDanger),onClick:R,children:"Leave"})]})]}):null]})]})})}function aj(t){return x.jsx(rj,{...t})}const oj="_container_zht0b_1",sj="_containerGradient_zht0b_14",lj="_containerFlat_zht0b_24",cj="_halo_zht0b_28",uj="_outerRing_zht0b_38",dj="_circle_zht0b_42",hj="_image_zht0b_72",fj="_captionContainer_zht0b_88",pj="_captionRegion_zht0b_99",na={container:oj,containerGradient:sj,containerFlat:lj,halo:cj,outerRing:uj,circle:dj,image:hj,captionContainer:fj,captionRegion:pj},mj="_statusText_1dkze_6",gj={statusText:mj},vj={idle:null,thinking:"Thinking...",searching:"Searching..."};function bj(t){const{status:e,size:n="md"}=t,i=e?vj[e]:null,r=i!==null;return x.jsx("div",{className:gj.statusText,"data-visible":r,"data-size":n,"aria-live":"polite",children:i})}const yj="https://obi-static.s3.ap-southeast-2.amazonaws.com/images/obi-avatar.png",_j={sm:{haloSize:"4.5rem",maxBorderWidth:5,outerRingScalePower:.55,glowSize:"20px"},md:{haloSize:"8rem",maxBorderWidth:8,outerRingScalePower:.7,glowSize:"35px"},lg:{haloSize:"10rem",maxBorderWidth:10,outerRingScalePower:.75,glowSize:"42px"}};function LE(t){const{audioPower:e,size:n="md",background:i="gradient",imageSrc:r=yj,accentColor:a,ariaLabel:o="Avatar placeholder",status:s,captionsText:l,className:c,style:u,...d}=t,h=_j[n],f=Math.min(1,Math.max(0,e)),b=f>.01,y=b?Math.min(1,f/.5):0,T=b?Math.max(1,y*h.maxBorderWidth):0,m=1.02,g=b?m+f*h.outerRingScalePower:m,_=b?.2+f*.35:0,p={...u??{},...a?{"--avatar-fallback-accent":a}:{}},S={"--avatar-fallback-halo-size":h.haloSize,"--avatar-fallback-border-width":`${T}px`,"--avatar-fallback-secondary-border-scale":g.toString(),"--avatar-fallback-secondary-border-opacity":_.toString(),"--avatar-fallback-glow-size":h.glowSize},k=l!=null&&l!=="";return x.jsxs("div",{...d,className:ae(na.container,i==="gradient"?na.containerGradient:na.containerFlat,c),style:p,"data-testid":"avatar-fallback","aria-label":o,role:"img",children:[x.jsxs("div",{className:na.halo,style:S,children:[x.jsx("div",{className:na.outerRing,"aria-hidden":"true"}),x.jsx("div",{className:na.circle,children:x.jsx("img",{className:na.image,src:r,alt:"","aria-hidden":"true"})}),x.jsx(bj,{status:s,size:n})]}),k&&x.jsx("div",{className:na.captionContainer,children:x.jsx("div",{className:na.captionRegion,"data-size":n,role:"status","aria-live":"polite","aria-atomic":"true",children:l})})]})}const xj="_container_1k3qg_11",Sj="_screenshot_1k3qg_20",Tj="_flash_1k3qg_30",pb={container:xj,screenshot:Sj,flash:Tj};function kj(t){const{isActive:e,imageUrl:n,onComplete:i,duration:r=2e3}=t,[a,o]=O.useState(!1),s=O.useRef(null);return O.useEffect(()=>{if(!e){o(!1),s.current&&(clearTimeout(s.current),s.current=null);return}if(!s.current)return o(!0),s.current=setTimeout(()=>{o(!1),s.current=null,i==null||i()},r),()=>{s.current&&(clearTimeout(s.current),s.current=null)}},[e,r,i]),!a||!n?null:x.jsxs("div",{className:pb.container,"aria-live":"polite","aria-label":"Screenshot captured",children:[x.jsx("img",{src:n,alt:"Captured screenshot",className:pb.screenshot}),x.jsx("div",{className:pb.flash})]})}const Cj="_container_13ukq_1",wj="_dragging_13ukq_5",Ej="_placeholder_13ukq_9",Rj="_handleButton_13ukq_15",Aj="_customHandle_13ukq_105",il={container:Cj,dragging:wj,placeholder:Ej,handleButton:Rj,"handle-top":"_handle-top_13ukq_65","handle-bottom":"_handle-bottom_13ukq_75","handle-left":"_handle-left_13ukq_85","handle-right":"_handle-right_13ukq_95",customHandle:Aj};function Oj(t){const{disabled:e,lingerMs:n,isDragging:i}=t,[r,a]=O.useState(!1),o=O.useRef(null),s=O.useCallback(()=>{o.current!==null&&(window.clearTimeout(o.current),o.current=null)},[]),l=O.useCallback(()=>{e||(s(),a(!0))},[s,e]),c=O.useCallback(()=>{e||i||(s(),o.current=window.setTimeout(()=>{a(!1),o.current=null},n))},[s,e,i,n]);return O.useEffect(()=>{i&&l()},[i,l]),O.useEffect(()=>s,[s]),{isHandleVisible:r,showHandle:l,scheduleHideHandle:c}}function Mj(t){const{initialPosition:e,preserveSpace:n,onPositionChange:i}=t,r=O.useRef(null),[a,o]=O.useState(!!e),[s,l]=O.useState(!1),[c,u]=O.useState(null),[d,h]=O.useState(()=>e??{x:0,y:0}),f=O.useRef(d);f.current=d;const b=O.useRef(null),y=O.useRef(!1),T=O.useRef(!1);O.useEffect(()=>{e&&(T.current||(o(!0),h(e),f.current=e))},[e==null?void 0:e.x,e==null?void 0:e.y]),O.useEffect(()=>{if(e||y.current)return;const p=r.current;if(!p)return;const S=p.getBoundingClientRect(),k={x:S.left,y:S.top};y.current=!0,o(!0),h(k),f.current=k,u(n?{width:S.width,height:S.height}:null)},[e,n]);const m=O.useCallback(p=>{const S=b.current;if(!(!S||p.pointerId!==S.pointerId)){b.current=null,T.current=!0,h(f.current),l(!1);try{p.currentTarget.releasePointerCapture(S.pointerId)}catch{}}},[]),g=O.useCallback(p=>{p.button===0&&(p.preventDefault(),p.currentTarget.setPointerCapture(p.pointerId),b.current={pointerId:p.pointerId,startClientX:p.clientX,startClientY:p.clientY,startX:f.current.x,startY:f.current.y},l(!0))},[]),_=O.useCallback(p=>{const S=b.current;if(!S||p.pointerId!==S.pointerId)return;const k={x:S.startX+(p.clientX-S.startClientX),y:S.startY+(p.clientY-S.startClientY)};f.current=k,r.current&&(r.current.style.transform=`translate3d(${k.x}px, ${k.y}px, 0)`),i==null||i(k)},[i]);return{containerRef:r,isFixed:a,isDragging:s,position:d,placeholderSize:c,onPointerDown:g,onPointerMove:_,endDrag:m}}function Dj(t){const{children:e,className:n,handle:i="top",initialPosition:r,disabled:a=!1,preserveSpace:o=!0,zIndex:s=1e3,onPositionChange:l,handleAriaLabel:c="Drag",handleLingerMs:u=350,style:d,...h}=t,{containerRef:f,isFixed:b,isDragging:y,position:T,placeholderSize:m,onPointerDown:g,onPointerMove:_,endDrag:p}=Mj({initialPosition:r,preserveSpace:o,onPositionChange:l}),{isHandleVisible:S,showHandle:k,scheduleHideHandle:C}=Oj({disabled:a,lingerMs:u,isDragging:y}),E=typeof e=="function",R=O.useMemo(()=>{const N=q=>x.jsx("div",{className:ae(il.customHandle,q.className),onPointerDown:g,onPointerMove:_,onPointerUp:p,onPointerCancel:p,children:q.children});return N.displayName="Draggable.Handle",N},[g,_,p]),A={...d,position:b?"fixed":"relative",top:b?0:d==null?void 0:d.top,left:b?0:d==null?void 0:d.left,transform:b?`translate3d(${T.x}px, ${T.y}px, 0)`:d==null?void 0:d.transform,zIndex:b?s:d==null?void 0:d.zIndex};return x.jsxs(x.Fragment,{children:[o&&b&&m?x.jsx("div",{className:il.placeholder,style:{width:m.width,height:m.height}}):null,x.jsxs("div",{ref:f,className:ae(il.container,y?il.dragging:null,n),"data-handle-visible":E?void 0:a?"false":S||y?"true":"false",style:A,onMouseEnter:E?void 0:k,onMouseLeave:E?void 0:C,...h,children:[!E&&!a?x.jsx("button",{type:"button",className:ae(il.handleButton,il[`handle-${i}`]),"aria-label":c,onMouseEnter:k,onMouseLeave:C,onPointerDown:N=>{k(),g(N)},onPointerMove:_,onPointerUp:p,onPointerCancel:p}):null,E?e({Handle:R}):e]})]})}const Nj="_panel_iijnl_1",Lj="_label_iijnl_16",Pj="_currentStep_iijnl_24",Ij="_nextStep_iijnl_32",Bf={panel:Nj,label:Lj,currentStep:Pj,nextStep:Ij};function Bj(t){const{currentStep:e,nextStep:n,className:i,testId:r,...a}=t;return x.jsxs("div",{...a,className:ae(Bf.panel,i),"data-testid":r,role:"group","aria-label":"Course progress",children:[x.jsx(Qn,{className:Bf.label,children:"Current step"}),x.jsx(Qn,{className:Bf.currentStep,children:e}),x.jsxs(Qn,{variant:"muted",className:Bf.nextStep,children:["Next: ",n]})]})}const Uj="_window_1vonn_1",zj="_header_1vonn_13",jj="_dragHandle_1vonn_20",qj="_exitButton_1vonn_25",Fj="_content_1vonn_56",Hj="_contentOverlay_1vonn_65",Vj="_controls_1vonn_73",Uo={window:Uj,header:zj,dragHandle:jj,exitButton:qj,content:Fj,contentOverlay:Hj,controls:Vj};function Gj(t){const{onExit:e,controlBarProps:n,isCourseOutlineSelected:i,onCourseOutlineToggle:r,isCaptionsEnabled:a=!1,onCaptionsToggle:o,courseOutline:s,messagesPanel:l,avatarFallbackProps:c,headerSlot:u,screenshotUrl:d,cameraShotTrigger:h,className:f,testId:b,...y}=t,T=i,m=n.isChatOpen&&!T&&l,[g,_]=O.useState(!1);O.useEffect(()=>{h&&h>0&&_(!0)},[h]);const p=O.useCallback(()=>x.jsx(LE,{audioPower:(c==null?void 0:c.audioPower)??0,size:"sm",background:"flat",imageSrc:c==null?void 0:c.imageSrc,ariaLabel:c==null?void 0:c.ariaLabel,status:c==null?void 0:c.status,captionsText:a?c==null?void 0:c.captionsText:void 0}),[c,a]),S=T?s?x.jsx(Bj,{currentStep:s.currentStep,nextStep:s.nextStep}):p():m?l:p();return x.jsxs("div",{...y,className:ae(Uo.window,f),"data-testid":b,role:"group","aria-label":"Picture-in-Picture",children:[x.jsxs("div",{className:Uo.header,children:[u,x.jsx("button",{type:"button",className:Uo.exitButton,onClick:e,"aria-label":"Exit PiP",children:x.jsx(tB,{size:14})})]}),x.jsxs("div",{className:Uo.content,children:[S,x.jsxs("div",{className:Uo.contentOverlay,children:[x.jsx(kf,{isOn:i,onClick:r,variant:"primary",size:"xs","aria-label":"Toggle course outline",children:x.jsx(rB,{size:18})}),x.jsx(kf,{isOn:a,onClick:o,variant:"primary",size:"xs","aria-label":"Toggle captions",children:x.jsx(eB,{size:18})})]}),x.jsx(kj,{isActive:g,imageUrl:d??null,onComplete:()=>_(!1)})]}),x.jsx("div",{className:Uo.controls,children:x.jsx(aj,{...n})})]})}function Wj(t){const{initialPosition:e,onPositionChange:n,zIndex:i=1e3,...r}=t;return x.jsx(Dj,{initialPosition:e,onPositionChange:n,zIndex:i,preserveSpace:!1,children:({Handle:a})=>x.jsx(Gj,{...r,headerSlot:x.jsx(a,{className:Uo.dragHandle})})})}const Yj="_root_ygi3o_1",Kj="_overlay_ygi3o_7",Xj="_caption_ygi3o_17",mb={root:Yj,overlay:Kj,caption:Xj};function Qj(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}function Jj(t){const{children:e,className:n,text:i}=t,r=Qj(i);return x.jsxs("div",{className:ae(mb.root,n),children:[e,r?x.jsx("div",{className:mb.overlay,role:"status","aria-live":"polite","aria-atomic":"true",children:x.jsx("div",{className:mb.caption,children:i})}):null]})}const Zj="_box_1r6by_1",$j={box:Zj},PE={none:"0px",panel:"var(--radius-panel)",card:"var(--radius-card)"},IE={surface:"var(--color-surface)",surfaceMuted:"var(--color-surface-muted)",surfaceAlt:"var(--color-surface-alt)",primarySoft:"var(--color-primary-soft)",primarySofter:"var(--color-primary-softer)",dangerSurface:"var(--color-danger-surface)"};function eq(t){if(t!==void 0){if(typeof t=="number")return`${t}px`;if(t in PE)return PE[t];if(typeof t=="string"&&t.trim().length>0)return t}}function tq(t){if(t!==void 0){if(t in IE)return IE[t];if(typeof t=="string"&&t.trim().length>0)return t}}function nq(t,e){const{as:n,className:i,padding:r,paddingX:a,paddingY:o,paddingTop:s,paddingBottom:l,paddingLeft:c,paddingRight:u,paddingSm:d,paddingMd:h,paddingLg:f,paddingXl:b,margin:y,marginX:T,marginY:m,marginTop:g,marginBottom:_,marginLeft:p,marginRight:S,radius:k,radiusTop:C,radiusBottom:E,radiusLeft:R,radiusRight:A,radiusTopLeft:N,radiusTopRight:q,radiusBottomLeft:W,radiusBottomRight:ue,background:H,gap:P,style:J,...X}=t,ne=n??"div",Y={...J},Z=Y,K={},V=(j,le)=>{if(le===void 0)return;const ge=$i(le);ge&&(Y[j]=ge)},oe=(j,le)=>{if(le===void 0)return;const ge=$i(le);ge&&(Y[j]=ge)},B=(j,le)=>{if(le===void 0)return;const ge=eq(le);ge&&(Y[j]=ge)},he={sm:d,md:h,lg:f,xl:b};if(r!==void 0){const j=$i(r);j&&(Z["--box-padding"]=j)}for(const[j,le]of Object.entries(he)){if(le===void 0)continue;const ge=$i(le);ge&&(Z[`--box-padding-${j}`]=ge,K[`data-padding-${j}`]="")}if(a!==void 0){const j=$i(a);j&&(Y.paddingLeft=j,Y.paddingRight=j)}if(o!==void 0){const j=$i(o);j&&(Y.paddingTop=j,Y.paddingBottom=j)}if(V("paddingTop",s),V("paddingBottom",l),V("paddingLeft",c),V("paddingRight",u),y!==void 0){const j=$i(y);j&&(Y.margin=j)}if(T!==void 0){const j=$i(T);j&&(Y.marginLeft=j,Y.marginRight=j)}if(m!==void 0){const j=$i(m);j&&(Y.marginTop=j,Y.marginBottom=j)}if(oe("marginTop",g),oe("marginBottom",_),oe("marginLeft",p),oe("marginRight",S),P!==void 0){const j=$i(P);j&&(Y.gap=j)}if(B("borderRadius",k),C!==void 0&&(B("borderTopLeftRadius",C),B("borderTopRightRadius",C)),E!==void 0&&(B("borderBottomLeftRadius",E),B("borderBottomRightRadius",E)),R!==void 0&&(B("borderTopLeftRadius",R),B("borderBottomLeftRadius",R)),A!==void 0&&(B("borderTopRightRadius",A),B("borderBottomRightRadius",A)),B("borderTopLeftRadius",N),B("borderTopRightRadius",q),B("borderBottomLeftRadius",W),B("borderBottomRightRadius",ue),H!==void 0){const j=tq(H);j&&(Y.background=j)}return x.jsx(ne,{ref:e,className:ae($j.box,i),style:Y,...K,...X})}const Uf=Fn.forwardRef(nq);Uf.displayName="Box";const iq="_panel_eawk4_1",rq="_selected_eawk4_10",BE={panel:iq,selected:rq};function eu(t){const{children:e,className:n,selected:i,...r}=t;return x.jsx("div",{className:ae(BE.panel,i?BE.selected:null,n),...r,children:e})}const aq="_root_yccm8_1",oq="_header_yccm8_8",sq="_icon_yccm8_15",lq="_text_yccm8_26",cq="_heading_yccm8_33",uq="_description_yccm8_41",dq="_body_yccm8_47",hq="_footer_yccm8_54",eo={root:aq,header:oq,icon:sq,text:lq,heading:cq,description:uq,body:dq,footer:hq};function UE(t){const{className:e,...n}=t;return x.jsx("div",{className:ae(eo.icon,e),...n})}function zE(t){const{className:e,...n}=t;return x.jsx("h3",{className:ae(eo.heading,e),...n})}function jE(t){const{className:e,...n}=t;return x.jsx("p",{className:ae(eo.description,e),...n})}function qE(t){const{className:e,...n}=t;return x.jsx("div",{className:ae(eo.footer,e),...n})}function fq(t){const e=O.Children.toArray(t),n=[];let i,r,a,o;for(const s of e){if(O.isValidElement(s)&&s.type===UE&&i===void 0){i=s;continue}if(O.isValidElement(s)&&s.type===zE&&r===void 0){r=s;continue}if(O.isValidElement(s)&&s.type===jE&&a===void 0){a=s;continue}if(O.isValidElement(s)&&s.type===qE&&o===void 0){o=s;continue}n.push(s)}return{icon:i,heading:r,description:a,footer:o,body:n}}function pq(t){const{children:e,className:n,...i}=t,r=fq(e),a=r.icon||r.heading||r.description;return x.jsxs(eu,{className:ae(eo.root,n),...i,children:[a?x.jsxs("div",{className:eo.header,children:[r.icon,r.heading||r.description?x.jsxs("div",{className:eo.text,children:[r.heading,r.description]}):null]}):null,r.body.length?x.jsx("div",{className:eo.body,children:r.body}):null,r.footer]})}const gb=Object.assign(pq,{Icon:UE,Heading:zE,Description:jE,Footer:qE}),mq="_panel_1uwhd_1",gq="_header_1uwhd_11",vq="_title_1uwhd_19",bq="_scrollArea_1uwhd_29",yq="_scrollable_1uwhd_34",_q="_list_1uwhd_38",xq="_courseButton_1uwhd_44",Sq="_courseCard_1uwhd_55",Tq="_courseHeading_1uwhd_64",kq="_courseDescription_1uwhd_70",Cq="_empty_1uwhd_79",er={panel:mq,header:gq,title:vq,scrollArea:bq,scrollable:yq,list:_q,courseButton:xq,courseCard:Sq,courseHeading:Tq,courseDescription:kq,empty:Cq};function wq(t){const{selectionMode:e,selectedCourseIds:n,defaultSelectedCourseIds:i,onSelectedCourseIdsChange:r}=t,a=n!==void 0,[o,s]=O.useState(()=>i??[]),l=a?n:o,c=O.useCallback(d=>{a||s(d),r==null||r(d)},[a,r]),u=O.useCallback(d=>{const h=l.includes(d);if(e==="single"){c(h?[]:[d]);return}if(h){c(l.filter(f=>f!==d));return}c([...l,d])},[l,e,c]);return{selectedCourseIds:l,toggleCourseId:u}}function Eq(t){const{title:e="Courses",ariaLabel:n,className:i,courses:r,selectionMode:a="multiple",selectedCourseIds:o,onCourseToggle:s,emptyMessage:l="No courses available",testId:c,...u}=t;return x.jsxs(eu,{...u,className:ae(er.panel,i),role:"region","aria-label":n??e,"data-testid":c,children:[x.jsx("div",{className:er.header,children:x.jsx(Qn,{as:"h2",className:er.title,children:e})}),x.jsx("div",{className:er.scrollArea,children:x.jsx(Fc,{className:er.scrollable,children:r.length===0?x.jsx(Qn,{variant:"muted",className:er.empty,"data-testid":"course-panel-empty",children:l}):x.jsx("div",{className:er.list,"data-testid":"course-panel-list",children:r.map(d=>{const h=o.includes(d.id),f=d.disabled===!0;return x.jsx("button",{type:"button",className:er.courseButton,"aria-pressed":h,"aria-disabled":f,disabled:f,onClick:()=>s==null?void 0:s(d.id,d),"data-testid":`course-panel-item-${d.id}`,children:x.jsxs(gb,{selected:h,className:er.courseCard,children:[x.jsx(gb.Heading,{className:er.courseHeading,children:d.title}),d.description?x.jsx(gb.Description,{className:er.courseDescription,children:d.description}):null]})},d.id)})})})})]})}function Rq(t){const{selectionMode:e="multiple",selectedCourseIds:n,defaultSelectedCourseIds:i,onSelectedCourseIdsChange:r,onCourseToggle:a,...o}=t,{selectedCourseIds:s,toggleCourseId:l}=wq({selectionMode:e,selectedCourseIds:n,defaultSelectedCourseIds:i,onSelectedCourseIdsChange:r}),c=O.useCallback((u,d)=>{l(u),a==null||a(u,d)},[a,l]);return x.jsx(Eq,{...o,selectionMode:e,selectedCourseIds:s,onCourseToggle:c})}const Aq="_panel_1on05_1",Oq="_header_1on05_11",Mq="_divider_1on05_19",Dq="_title_1on05_25",Nq="_scrollArea_1on05_35",Lq="_scrollable_1on05_40",Pq="_list_1on05_44",Iq="_section_1on05_50",Bq="_sectionHeader_1on05_56",Uq="_sectionTitle_1on05_60",zq="_sectionTitleCompact_1on05_68",jq="_item_1on05_72",qq="_itemClickable_1on05_86",Fq="_itemCompleted_1on05_90",Hq="_itemCurrent_1on05_94",Vq="_itemFuture_1on05_98",Gq="_itemDisabled_1on05_103",Wq="_row_1on05_117",Yq="_stepHeader_1on05_124",Kq="_stepNumber_1on05_133",Xq="_stepTitle_1on05_139",Qq="_checkIcon_1on05_151",Jq="_empty_1on05_155",qe={panel:Aq,header:Oq,divider:Mq,title:Dq,scrollArea:Nq,scrollable:Lq,list:Pq,section:Iq,sectionHeader:Bq,sectionTitle:Uq,sectionTitleCompact:zq,item:jq,itemClickable:qq,itemCompleted:Fq,itemCurrent:Hq,itemFuture:Vq,itemDisabled:Gq,row:Wq,stepHeader:Yq,stepNumber:Kq,stepTitle:Xq,checkIcon:Qq,empty:Jq};function Zq(t){var f;const{steps:e,currentStep:n,hideTrailingConclusionStep:i}=t,r=e.length,a=i&&r>0&&((f=e[r-1])==null?void 0:f.title)==="Conclusion",o=a?e.slice(0,-1):e.slice(),s=o.length,l=typeof n=="number"&&isFinite(n)?n:1;if(s===0)return{visibleSteps:o,completedIndices:[],currentIndex:null,futureIndices:[]};if(a&&l===r)return{visibleSteps:o,completedIndices:Array.from({length:s},(b,y)=>y),currentIndex:null,futureIndices:[]};const c=Math.min(Math.max(l,1),s)-1,u=Array.from({length:Math.max(0,c)},(b,y)=>y),d=Math.min(c,s-1),h=Array.from({length:Math.max(0,s-(d+1))},(b,y)=>d+1+y);return{visibleSteps:o,completedIndices:u,currentIndex:d,futureIndices:h}}function $q(t){const{title:e="Course Outline",ariaLabel:n,className:i,steps:r,currentStep:a,onStepClick:o,hideTrailingConclusionStep:s=!0,emptyMessage:l="No steps available",density:c="default",testId:u,...d}=t,h=O.useCallback(_=>(_+1).toString().padStart(2,"0"),[]),{visibleSteps:f,completedIndices:b,currentIndex:y,futureIndices:T}=O.useMemo(()=>Zq({steps:r,currentStep:a,hideTrailingConclusionStep:s}),[a,s,r]),m=c==="compact"?"md":"lg",g=O.useCallback((_,p)=>{const S=f[_];if(!S)return null;const k=typeof o=="function",C=k&&S.disabled===!0,E=k&&!C,R=ae(qe.item,{[qe.itemClickable]:E,[qe.itemCompleted]:p==="completed",[qe.itemCurrent]:p==="current",[qe.itemFuture]:p==="future",[qe.itemDisabled]:C}),A=x.jsxs("div",{className:qe.row,children:[x.jsxs("div",{className:qe.stepHeader,children:[x.jsx("span",{className:qe.stepNumber,children:h(_)}),x.jsx("span",{className:qe.stepTitle,children:S.title})]}),p==="completed"?x.jsx(Hv,{size:20,className:qe.checkIcon}):null]});return k?x.jsx(Uf,{as:"button",type:"button",className:R,onClick:()=>{E&&o(_,S)},disabled:C,"aria-current":p==="current"?"step":void 0,"aria-label":`Step ${h(_)}: ${S.title}`,"data-testid":`course-outline-item-${S.id}`,padding:m,radius:"panel",gap:"sm",children:A},S.id):x.jsx(Uf,{className:R,"aria-current":p==="current"?"step":void 0,"aria-label":`Step ${h(_)}: ${S.title}`,"data-testid":`course-outline-item-${S.id}`,padding:m,radius:"panel",gap:"sm",children:A},S.id)},[h,m,o,f]);return x.jsxs(eu,{...d,className:ae(qe.panel,i),role:"region","aria-label":n??e,"data-testid":u,children:[x.jsx("div",{className:qe.header,children:x.jsx(Qn,{as:"h2",className:qe.title,children:e})}),x.jsx("div",{className:qe.divider,"aria-hidden":"true"}),x.jsx("div",{className:qe.scrollArea,children:x.jsx(Fc,{className:qe.scrollable,children:f.length===0?x.jsx(Qn,{variant:"muted",className:qe.empty,"data-testid":"course-outline-empty",children:l}):x.jsxs("div",{className:qe.list,"data-testid":"course-outline-list",children:[b.length>0?x.jsxs("div",{className:qe.section,"data-testid":"course-outline-section-completed",children:[x.jsx("div",{className:qe.sectionHeader,children:x.jsx("span",{className:ae(qe.sectionTitle,c==="compact"?qe.sectionTitleCompact:null),children:"Completed"})}),b.map(_=>g(_,"completed"))]}):null,y!==null?x.jsxs("div",{className:qe.section,"data-testid":"course-outline-section-current",children:[x.jsx("div",{className:qe.sectionHeader,children:x.jsx("span",{className:ae(qe.sectionTitle,c==="compact"?qe.sectionTitleCompact:null),children:"Current"})}),g(y,"current")]}):null,T.length>0?x.jsxs("div",{className:qe.section,"data-testid":"course-outline-section-upcoming",children:[x.jsx("div",{className:qe.sectionHeader,children:x.jsx("span",{className:ae(qe.sectionTitle,c==="compact"?qe.sectionTitleCompact:null),children:"Upcoming"})}),T.map(_=>g(_,"future"))]}):null]})})})]})}function eF(t){return x.jsx($q,{...t})}const tF="_panel_1eljv_1",nF="_messagesArea_1eljv_14",iF="_messagesList_1eljv_36",rF="_messageItem_1eljv_43",aF="_messageMetadata_1eljv_49",oF="_senderName_1eljv_56",sF="_timestamp_1eljv_60",lF="_messageBubble_1eljv_64",cF="_agentMessage_1eljv_74",uF="_agentActions_1eljv_78",dF="_copyButton_1eljv_84",hF="_copyButtonCopied_1eljv_117",fF="_empty_1eljv_121",pF="_composer_1eljv_128",mF="_composerDisabled_1eljv_148",gF="_composerInput_1eljv_152",vF="_sendButton_1eljv_166",gn={panel:tF,messagesArea:nF,messagesList:iF,messageItem:rF,messageMetadata:aF,senderName:oF,timestamp:sF,messageBubble:lF,agentMessage:cF,agentActions:uF,copyButton:dF,copyButtonCopied:hF,empty:fF,composer:pF,composerDisabled:mF,composerInput:gF,sendButton:vF};function bF(t){const e=new Date(t),n=e.getHours(),i=e.getMinutes(),r=n>=12?"PM":"AM",a=n%12||12,o=i.toString().padStart(2,"0");return`${a}:${o}${r}`}function yF(t,e){var i,r;if(typeof t.isAgent=="boolean")return t.isAgent;const n=((i=t.from)==null?void 0:i.identity)??void 0;return n&&e&&n===e?!1:((r=t.attributes)==null?void 0:r.source)==="agent-rpc"?!0:n?n==="agent-avatar"||n.startsWith("agent-"):!1}function _F(t,e){var i,r,a;const n=(i=t.from)==null?void 0:i.identity;return n&&e&&n===e?"You":((r=t.from)==null?void 0:r.name)??((a=t.attributes)==null?void 0:a.senderName)??n??"Unknown"}async function xF(t){var n;if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText)){await navigator.clipboard.writeText(t);return}if(typeof document>"u")throw new Error("Clipboard unavailable");const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.left="-9999px",e.style.top="0",e.setAttribute("readonly","true"),document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}function SF(t){const{messages:e,localIdentity:n,onSend:i,isSending:r=!1,inputPlaceholder:a="Type a message...",className:o,testId:s,...l}=t,[c,u]=O.useState(""),[d,h]=O.useState(null),f=O.useRef(null),b=O.useRef(null),y=O.useMemo(()=>{const p=e[e.length-1];return p?p.id??`${p.timestamp}-${e.length-1}`:null},[e]);O.useEffect(()=>{var p,S;(S=(p=f.current)==null?void 0:p.scrollIntoView)==null||S.call(p,{behavior:"smooth"})},[y]),O.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=null)},[]);const T=O.useCallback(async()=>{const p=c.trim();p.length!==0&&(await i(p),u(""))},[c,i]),m=O.useCallback(p=>{p.key==="Enter"&&(p.preventDefault(),T())},[T]),g=O.useCallback(async(p,S)=>{try{await xF(p.message??""),h(S),b.current&&window.clearTimeout(b.current),b.current=window.setTimeout(()=>{h(null),b.current=null},2e3)}catch(k){console.warn("[PiPChatPanel] Failed to copy message",k)}},[]),_=c.trim().length>0&&!r;return x.jsxs("div",{...l,className:ae(gn.panel,o),"data-testid":s,role:"region","aria-label":"Chat",children:[x.jsx("div",{className:gn.messagesArea,children:e.length===0?x.jsx("div",{className:gn.empty,"data-testid":"pip-chat-panel-empty",children:"No messages yet"}):x.jsxs("div",{className:gn.messagesList,"data-testid":"pip-chat-panel-list",children:[e.map((p,S)=>{const k=p.id??`${p.timestamp}-${S}`,C=yF(p,n),E=d===k;return x.jsxs("div",{className:ae(gn.messageItem,C&&gn.agentMessage),"data-testid":`pip-chat-panel-message-${k}`,children:[x.jsxs("div",{className:gn.messageMetadata,children:[x.jsx("span",{className:gn.senderName,children:_F(p,n)}),x.jsx("span",{className:gn.timestamp,children:bF(p.timestamp)})]}),x.jsx("div",{className:gn.messageBubble,children:p.message}),C?x.jsx("div",{className:gn.agentActions,children:x.jsx("button",{type:"button",className:ae(gn.copyButton,E&&gn.copyButtonCopied),onClick:()=>void g(p,k),"aria-label":E?"Copied":"Copy message",title:E?"Copied":"Copy message","data-testid":"pip-copy-agent-message","data-copied":E?"true":"false",children:x.jsx(q2,{size:14})})}):null]},k)}),x.jsx("div",{ref:f})]})}),x.jsxs("div",{className:ae(gn.composer,r&&gn.composerDisabled),children:[x.jsx("input",{type:"text",className:gn.composerInput,value:c,onChange:p=>u(p.target.value),onKeyDown:m,placeholder:a,disabled:r,"aria-label":"Message"}),x.jsx("button",{type:"button",className:gn.sendButton,onClick:()=>void T(),disabled:!_,"aria-label":"Send message",children:x.jsx(W2,{size:16})})]})]})}const TF="_panel_q8m25_1",kF="_header_q8m25_11",CF="_title_q8m25_19",wF="_titleCompact_q8m25_29",EF="_headerActions_q8m25_33",RF="_closeButton_q8m25_39",AF="_divider_q8m25_67",OF="_body_q8m25_73",MF="_messagesArea_q8m25_81",DF="_scrollable_q8m25_86",NF="_messagesList_q8m25_90",LF="_messageItem_q8m25_98",PF="_messageMetadata_q8m25_104",IF="_senderName_q8m25_112",BF="_timestamp_q8m25_116",UF="_messageBubble_q8m25_120",zF="_messageText_q8m25_124",jF="_agentMessage_q8m25_130",qF="_agentActions_q8m25_134",FF="_copyButton_q8m25_140",HF="_copyButtonCopied_q8m25_174",VF="_inputRow_q8m25_178",GF="_empty_q8m25_182",WF="_composer_q8m25_188",YF="_composerDefault_q8m25_203",KF="_composerCompact_q8m25_208",XF="_composerDisabled_q8m25_218",QF="_composerInputWrapper_q8m25_223",JF="_composerInput_q8m25_223",ZF="_sendButton_q8m25_240",$F="_sendButtonCompact_q8m25_257",Fe={panel:TF,header:kF,title:CF,titleCompact:wF,headerActions:EF,closeButton:RF,divider:AF,body:OF,messagesArea:MF,scrollable:DF,messagesList:NF,messageItem:LF,messageMetadata:PF,senderName:IF,timestamp:BF,messageBubble:UF,messageText:zF,agentMessage:jF,agentActions:qF,copyButton:FF,copyButtonCopied:HF,inputRow:VF,empty:GF,composer:WF,composerDefault:YF,composerCompact:KF,composerDisabled:XF,composerInputWrapper:QF,composerInput:JF,sendButton:ZF,sendButtonCompact:$F};function eH(t){const e=new Date(t),n=e.getHours(),i=e.getMinutes(),r=n>=12?"PM":"AM",a=n%12||12,o=i.toString().padStart(2,"0");return`${a}:${o}${r}`}function tH(t,e){var i,r;if(typeof t.isAgent=="boolean")return t.isAgent;const n=((i=t.from)==null?void 0:i.identity)??void 0;return n&&e&&n===e?!1:((r=t.attributes)==null?void 0:r.source)==="agent-rpc"?!0:n?n==="agent-avatar"||n.startsWith("agent-"):!1}function nH(t,e){var i,r,a;const n=(i=t.from)==null?void 0:i.identity;return n&&e&&n===e?"You":((r=t.from)==null?void 0:r.name)??((a=t.attributes)==null?void 0:a.senderName)??n??"Unknown"}async function iH(t){var n;if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText)){await navigator.clipboard.writeText(t);return}if(typeof document>"u")throw new Error("Clipboard unavailable");const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.left="-9999px",e.style.top="0",e.setAttribute("readonly","true"),document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}function rH(t){const{disabled:e,placeholder:n,size:i="md",autoFocus:r,onSend:a}=t,[o,s]=O.useState(""),l=O.useCallback(async()=>{const f=o.trim();f.length!==0&&(await a(f),s(""))},[a,o]),c=O.useCallback(f=>{f.key==="Enter"&&(f.preventDefault(),l())},[l]),u=i==="sm"||i==="xs",d=u?18:24,h=o.trim().length>0&&e!==!0;return x.jsxs("div",{className:ae(Fe.composer,u?Fe.composerCompact:Fe.composerDefault,e?Fe.composerDisabled:null),children:[x.jsx("div",{className:Fe.composerInputWrapper,children:x.jsx(K2,{value:o,onChange:s,onKeyDown:c,className:Fe.composerInput,placeholder:n??"Send a message ...",disabled:e,size:i,autoFocus:r,"aria-label":"Message"})}),x.jsx("button",{type:"button",className:ae(Fe.sendButton,u?Fe.sendButtonCompact:null),onClick:()=>void l(),disabled:!h,"aria-label":"Send message",children:x.jsx(W2,{size:d})})]})}function FE(t){const{title:e="Messages",ariaLabel:n,className:i,messages:r,isSending:a=!1,localIdentity:o,onSend:s,onClose:l,showCloseButton:c=!0,emptyMessage:u="No messages yet",density:d="default",testId:h,formatTimestamp:f=eH,getSenderName:b,isAgentMessage:y,copyResetDelayMs:T=2e3,showAgentCopyButton:m=!0,inputPlaceholder:g,inputAutoFocus:_,...p}=t,S=O.useRef(null),[k,C]=O.useState(null),E=O.useRef(null),R=O.useCallback(H=>b?b(H):nH(H,o),[b,o]),A=O.useCallback(H=>y?y(H,o):tH(H,o),[y,o]),N=O.useMemo(()=>{const H=r[r.length-1];return H?H.id??`${H.timestamp}-${r.length-1}`:null},[r]);O.useEffect(()=>{var H,P;(P=(H=S.current)==null?void 0:H.scrollIntoView)==null||P.call(H,{behavior:"smooth"})},[N]),O.useEffect(()=>()=>{E.current&&(window.clearTimeout(E.current),E.current=null)},[]);const q=O.useCallback(H=>{C(H),E.current&&window.clearTimeout(E.current),E.current=window.setTimeout(()=>{C(null),E.current=null},T)},[T]),W=O.useCallback(async(H,P)=>{try{await iH(H.message??""),q(P)}catch(J){console.warn("[ChatPanel] Failed to copy message",J)}},[q]),ue=d==="compact"?"sm":"md";return x.jsxs(eu,{...p,className:ae(Fe.panel,i),role:"region","aria-label":n??e,"data-testid":h,children:[x.jsxs("div",{className:Fe.header,children:[x.jsx(Qn,{as:"h2",className:ae(Fe.title,d==="compact"?Fe.titleCompact:null),children:e}),l&&c?x.jsx("div",{className:Fe.headerActions,children:x.jsx("button",{type:"button",className:Fe.closeButton,onClick:l,"aria-label":`Close ${e}`,children:x.jsx(Gv,{size:d==="compact"?18:20})})}):null]}),x.jsx("div",{className:Fe.divider,"aria-hidden":"true"}),x.jsxs("div",{className:Fe.body,children:[x.jsx("div",{className:Fe.messagesArea,children:x.jsx(Fc,{className:Fe.scrollable,children:r.length===0?x.jsx(Qn,{variant:"muted",className:Fe.empty,"data-testid":"chat-panel-empty",children:u}):x.jsxs("div",{className:Fe.messagesList,"data-testid":"chat-panel-list",children:[r.map((H,P)=>{const J=H.id??`${H.timestamp}-${P}`,X=A(H),ne=k===J;return x.jsxs("div",{className:ae(Fe.messageItem,X?Fe.agentMessage:null),"data-testid":`chat-panel-message-${J}`,children:[x.jsxs("div",{className:Fe.messageMetadata,children:[x.jsx("span",{className:Fe.senderName,children:R(H)}),x.jsx("span",{className:Fe.timestamp,children:f(H.timestamp)})]}),x.jsx(Uf,{className:Fe.messageBubble,padding:"md",radius:"panel",background:X?"surfaceMuted":"surface",children:x.jsx("div",{className:Fe.messageText,children:H.message})}),X&&m?x.jsx("div",{className:Fe.agentActions,children:x.jsx("button",{type:"button",className:ae(Fe.copyButton,ne?Fe.copyButtonCopied:null),onClick:()=>void W(H,J),"aria-label":ne?"Copied":"Copy agent message",title:ne?"Copied":"Copy agent message","data-testid":"copy-agent-message","data-copied":ne?"true":"false",children:x.jsx(q2,{size:18})})}):null]},J)}),x.jsx("div",{ref:S})]})})}),x.jsx("div",{className:Fe.inputRow,children:x.jsx(rH,{onSend:s,disabled:a,placeholder:g,size:ue,autoFocus:_})})]})]})}O.createContext("vertical");const aH="_container_1a1i6_1",oH="_video_1a1i6_7",sH="_chip_1a1i6_16",lH="_logo_1a1i6_34",zf={container:aH,video:oH,chip:sH,logo:lH},cH="https://obi-static.s3.ap-southeast-2.amazonaws.com/videos/greeting.mp4";function uH(t){const{agentName:e="Obi",className:n,...i}=t,r=O.useRef(null),a=()=>{var o;try{(o=r.current)==null||o.pause()}catch{}};return x.jsxs("div",{className:ae(zf.container,n),...i,children:[x.jsx("video",{ref:r,className:zf.video,src:cH,autoPlay:!0,muted:!0,playsInline:!0,onEnded:a}),x.jsxs("div",{className:zf.chip,children:[x.jsx(iB,{size:14,className:zf.logo}),x.jsx("span",{children:e})]})]})}typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const HE=50,rl="?",VE=/\(error: (.*)\)/,GE=/captureMessage|captureException/;function dH(...t){const e=t.sort((n,i)=>n[0]-i[0]).map(n=>n[1]);return(n,i=0,r=0)=>{const a=[],o=n.split(`
|
|
121
|
-
`);for(let s=i;s<o.length;s++){const l=o[s];if(l.length>1024)continue;const c=VE.test(l)?l.replace(VE,"$1"):l;if(!c.match(/\S*Error: /)){for(const u of e){const d=u(c);if(d){a.push(d);break}}if(a.length>=HE+r)break}}return hH(a.slice(r))}}function hH(t){if(!t.length)return[];const e=Array.from(t);return/sentryWrapped/.test(jf(e).function||"")&&e.pop(),e.reverse(),GE.test(jf(e).function||"")&&(e.pop(),GE.test(jf(e).function||"")&&e.pop()),e.slice(0,HE).map(n=>({...n,filename:n.filename||jf(e).filename,function:n.function||rl}))}function jf(t){return t[t.length-1]||{}}typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const fH=30,pH=50;function vb(t,e,n,i){const r={filename:t,function:e==="<anonymous>"?rl:e,in_app:!0};return n!==void 0&&(r.lineno=n),i!==void 0&&(r.colno=i),r}const mH=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,gH=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,vH=/\((\S*)(?::(\d+))(?::(\d+))\)/,bH=t=>{const e=mH.exec(t);if(e){const[,i,r,a]=e;return vb(i,rl,+r,+a)}const n=gH.exec(t);if(n){if(n[2]&&n[2].indexOf("eval")===0){const a=vH.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}const[i,r]=WE(n[1]||rl,n[2]);return vb(r,i,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}},yH=[fH,bH],_H=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,xH=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;dH(...[yH,[pH,t=>{const e=_H.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const r=xH.exec(e[3]);r&&(e[1]=e[1]||"eval",e[3]=r[1],e[4]=r[2],e[5]="")}let n=e[3],i=e[1]||rl;return[i,n]=WE(i,n),vb(n,i,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}}]]);const WE=(t,e)=>{const n=t.indexOf("safari-extension")!==-1,i=t.indexOf("safari-web-extension")!==-1;return n||i?[t.indexOf("@")!==-1?t.split("@")[0]:rl,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]};typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const to={shell:"_shell_1ci0c_1",layout:"_layout_1ci0c_11",leftPanel:"_leftPanel_1ci0c_19",rightPanel:"_rightPanel_1ci0c_28",videoFrame:"_videoFrame_1ci0c_36",captions:"_captions_1ci0c_46",controls:"_controls_1ci0c_52",coursePanel:"_coursePanel_1ci0c_64"};function YE(...t){return t.filter(Boolean).join(" ")}function SH(t){const{captionsText:e,avatarAudioPower:n=0,avatarImageSrc:i,avatarAriaLabel:r,avatarStatus:a,controlBarProps:o,courses:s,coursePanelProps:l,rightPanel:c,className:u}=t;return x.jsx("div",{className:YE(to.shell,u),"data-testid":"course-dialog-content",children:x.jsxs("div",{className:to.layout,children:[x.jsxs("div",{className:to.leftPanel,children:[x.jsx("div",{className:to.videoFrame,children:x.jsx(Jj,{className:to.captions,text:e,children:x.jsx(LE,{audioPower:n,size:"lg",background:"flat",imageSrc:i,ariaLabel:r??"Agent avatar placeholder",status:a})})}),x.jsx("div",{className:to.controls,children:x.jsx(jz,{...o})})]}),x.jsx("div",{className:to.rightPanel,"data-testid":"course-dialog-right-panel",children:c??x.jsx(Rq,{...l,courses:s,className:YE(to.coursePanel,l==null?void 0:l.className)})})]})})}function KE(t){const{open:e,onClose:n,dialogProps:i,...r}=t;return x.jsx(nE,{open:e,onClose:n,variant:"ghost",...i,children:x.jsx(SH,{...r})})}const TH=80,kH=500,CH=1e3;function wH(t,e){const{delayMs:n=0}=e??{},r=t.filter(y=>{var m;const T=(m=y.participantInfo)==null?void 0:m.identity;return(T==null?void 0:T.startsWith("agent-"))??!1}).map(y=>y.text??"").join(" ").trim(),[a,o]=O.useState(""),[s,l]=O.useState(!1),c=O.useRef(""),u=O.useRef(null),d=O.useRef(null),h=O.useRef(null),f=y=>{h.current&&(clearTimeout(h.current),h.current=null),n>0?h.current=setTimeout(()=>{o(y)},n):o(y)},b=(y,T)=>y.startsWith(T)?y.slice(T.length).trim():y.trim();return O.useEffect(()=>{if(d.current&&(clearTimeout(d.current),d.current=null),s)return;const y=b(r,c.current);f(y),y.length>TH?(l(!0),u.current=setTimeout(()=>{l(!1),c.current=r},kH+n)):y.length>0&&(d.current=setTimeout(()=>{c.current=r,f("")},CH+n))},[r,s,n]),O.useEffect(()=>()=>{u.current&&clearTimeout(u.current),d.current&&clearTimeout(d.current),h.current&&clearTimeout(h.current)},[]),{caption:a,hasCaption:a.length>0}}const Tr={layout:"_layout_so9uy_1",left:"_left_so9uy_10",copy:"_copy_so9uy_17",description:"_description_so9uy_25",descriptionScroller:"_descriptionScroller_so9uy_31",cta:"_cta_so9uy_36",disclaimer:"_disclaimer_so9uy_43",right:"_right_so9uy_47",mediaPanel:"_mediaPanel_so9uy_56",agentStill:"_agentStill_so9uy_63"};function EH(t){const{open:e,onClose:n,onStart:i,agentName:r,agentSubtitle:a,description:o,startLabel:s="Start Now",disclaimer:l="Sessions are securely recorded for quality improvement purposes.",showCloseButton:c=!1,isStarting:u=!1}=t;return x.jsx(nE,{open:e,onClose:n,size:"large",showCloseButton:c,children:x.jsxs("div",{className:Tr.layout,children:[x.jsxs("div",{className:Tr.left,children:[x.jsxs("div",{className:Tr.copy,children:[x.jsx(Qn,{variant:"heading",children:r}),x.jsx(Qn,{variant:"subheading",children:a}),x.jsx(Qn,{variant:"muted",as:"div",className:Tr.description,children:x.jsx(Fc,{className:Tr.descriptionScroller,children:x.jsx(az,{content:o})})})]}),x.jsxs("div",{className:Tr.cta,children:[x.jsx(nl,{type:"button",size:"lg",fullWidth:!0,onClick:i,isLoading:u,children:s}),x.jsx(Qn,{variant:"subscript",as:"p",className:Tr.disclaimer,children:l})]})]}),x.jsx("div",{className:Tr.right,children:x.jsx(eu,{className:Tr.mediaPanel,children:x.jsx(uH,{agentName:r,className:Tr.agentStill})})})]})})}function RH(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*").replace(/\?/g,"[^/]");return new RegExp(`^${e}$`,"i")}function AH(t,e){if(!e||e.length===0)return!1;const n=t.replace(/^https?:\/\//,"").replace(/\/$/,"");return e.some(i=>{try{const r=RH(i);return r.test(n)||r.test(t)}catch(r){return console.warn(`Invalid URL pattern: ${i}`,r),!1}})}function qf(t){if(!t||t.length===0)return!1;const e=window.location.origin+window.location.pathname;return AH(e,t)}function OH(t){var j,le,ge,ui,kr,Cr,rn,Jn,It,Di,di,an,ie,He,Xe,Vt,no,Ni,vn;const{sdk:e,shadowHost:n}=t,[i,r]=O.useState("hidden"),[a,o]=O.useState(()=>{var re;return((re=e.client)==null?void 0:re.session)||null}),[s,l]=O.useState(!1),[c,u]=O.useState(!1),[d,h]=O.useState(!1),[f,b]=O.useState(null),[y,T]=O.useState([]),[m,g]=O.useState(null),[_,p]=O.useState(0),[S,k]=O.useState(!1),[C,E]=O.useState(0),[R,A]=O.useState(null),[N,q]=O.useState([]),[W,ue]=O.useState(!0),H=MH((le=(j=e.client)==null?void 0:j.product)==null?void 0:le.widget_url_blacklist),P=DH(a),{audioDevices:J}=NH(),{caption:X}=wH(N,{delayMs:0}),ne=W?X:"",Y=(()=>{if(a!=null&&a.speakingState){if(a.speakingState==="thinking")return"thinking";if(a.speakingState==="busy")return"searching"}})(),Z=()=>p(re=>re+1),K=O.useRef(null),V=O.useRef(null),oe=O.useRef(!1),B=re=>{if(!re||K.current===re)return;V.current&&(V.current(),V.current=null);const ce=()=>Z(),Ie=$e=>{b($e),r(dt=>dt==="course-selection"?(k(!1),"pip"):dt)},Gt=$e=>{T($e.courses),r("course-selection"),b(null),g(null)},Bt=($e,dt)=>{},Wt=$e=>{A($e),E(Date.now())};re.on("stateChanged",ce),re.on("speakingStateChanged",ce),re.on("paused",ce),re.on("unpaused",ce),re.on("chatMessagesChanged",ce),re.on("courseProgress",Ie),re.on("courseSelection",Gt),re.on("transcript",Bt),re.on("screenCaptured",Wt),re.on("captions",q),K.current=re,V.current=()=>{re.off("stateChanged",ce),re.off("speakingStateChanged",ce),re.off("paused",ce),re.off("unpaused",ce),re.off("chatMessagesChanged",ce),re.off("courseProgress",Ie),re.off("courseSelection",Gt),re.off("transcript",Bt),re.off("screenCaptured",Wt),re.off("captions",q)}},he=re=>{var Ie;return re?((Ie=re.roomId)==null?void 0:Ie.startsWith("obs-"))&&!f?"course-selection":"pip":"hidden"};if(O.useEffect(()=>{const re=Ie=>{var Gt,Bt,Wt;Ie?(Gt=e.client)!=null&&Gt.session?r(he(((Bt=e.client)==null?void 0:Bt.session)??null)):r("start-session"):(Wt=e.client)!=null&&Wt.session||r("hidden")},ce=()=>Z();return e.on("showMenu",re),e.on("configUpdated",ce),e.client&&(e.client.session&&(o(e.client.session),B(e.client.session),r(he(e.client.session))),e.client.on("sessionStarted",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie)),dg().track("session-started",{planId:Ie.planId})}),e.client.on("sessionResumed",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie))}),e.client.on("sessionStopped",()=>{V.current&&(V.current(),V.current=null),o(null),K.current=null,l(!1),u(!1),h(!1),oe.current||r("hidden")}),e.client.on("stateChanged",Z)),()=>{e.off("showMenu",re),e.off("configUpdated",ce),V.current&&V.current()}},[e]),O.useLayoutEffect(()=>{var re,ce;(ce=(re=e.client)==null?void 0:re.product)!=null&&ce.primary_color&&n.style.setProperty("--obi-color-primary",e.client.product.primary_color)},[(ui=(ge=e.client)==null?void 0:ge.product)==null?void 0:ui.primary_color,n]),H||i==="hidden")return null;if(i==="start-session"){const re=(kr=e.client)==null?void 0:kr.product,ce=(Cr=e.client)==null?void 0:Cr.selectedPlan,Ie=(re==null?void 0:re.agent_name)||"Obi",Gt="AI Assistant",Bt=(ce==null?void 0:ce.description)||(re==null?void 0:re.description)||"I'm here to help you.";return x.jsx(EH,{open:!0,onClose:()=>{l(!1),r("hidden")},onStart:()=>{l(!0),e.startSession({withMicrophone:!0})},agentName:Ie,agentSubtitle:Gt,description:Bt,showCloseButton:!1,startLabel:"Start Session",isStarting:s})}if(i==="course-selection"){const re=(rn=a==null?void 0:a.roomId)==null?void 0:rn.startsWith("obs-"),ce=((Jn=e.client)==null?void 0:Jn.plans)||[],Ie=re&&y.length>0,Gt=Ie?y.slice().sort((fe,ke)=>fe.order!==void 0&&ke.order!==void 0?fe.order-ke.order:fe.order!==void 0?-1:ke.order!==void 0?1:fe.name.localeCompare(ke.name)).map(fe=>({id:fe.uuid,title:fe.name,description:fe.description||fe.overview||"",status:fe.completed?"completed":"available",duration:typeof fe.duration=="number"?`${fe.duration} min`:fe.duration})):ce.map(fe=>{var ke,it;return{id:fe.uuid,title:fe.name,description:fe.description,status:(it=(ke=e.client)==null?void 0:ke.planIsCompleted)!=null&&it[ce.indexOf(fe)]?"completed":"available",duration:fe.estimated_duration?`${fe.estimated_duration} min`:void 0}}),Bt=(a==null?void 0:a.languageCodes)||[],Wt=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,$e={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((It=navigator.mediaDevices)!=null&&It.getDisplayMedia),onMicDeviceSelect:async fe=>{e.client&&(e.client.preferredMicrophoneDeviceId=fe),a&&fe&&await a.switchMicrophoneDevice(fe),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:Bt,selectedLanguage:Wt,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:fe=>{a==null||a.setLanguage(fe)},isLanguageSelectorEnabled:!0},dt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((Di=a==null?void 0:a.room)==null?void 0:Di.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async fe=>{var ke,it,mt,Ut;a&&(a.appendChatMessage({timestamp:Date.now(),message:fe,from:{identity:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.identity)??null,name:((Ut=(mt=a.room)==null?void 0:mt.localParticipant)==null?void 0:Ut.name)??null},isAgent:!1}),await a.say(fe))},onClose:()=>h(!1)}):void 0;return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:Gt,controlBarProps:$e,coursePanelProps:{selectedCourseIds:m?[m]:void 0,onCourseToggle:async fe=>{var ke,it,mt;if(Ie){const Ut=y.find(Zn=>Zn.uuid===fe);if(Ut){g(fe);try{await((ke=a==null?void 0:a.say)==null?void 0:ke.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),g(null)}}}else{const Ut=ce.find(Zn=>Zn.uuid===fe);if(Ut){(it=e.client)==null||it.selectPlan(Ut),r("pip");try{await((mt=a==null?void 0:a.say)==null?void 0:mt.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),r("course-selection")}}}}},rightPanel:dt,avatarImageSrc:((an=(di=e.client)==null?void 0:di.product)==null?void 0:an.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="course-outline"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((ie=navigator.mediaDevices)!=null&&ie.getDisplayMedia),onMicDeviceSelect:async $e=>{e.client&&(e.client.preferredMicrophoneDeviceId=$e),a&&$e&&await a.switchMicrophoneDevice($e),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:$e=>{a==null||a.setLanguage($e)},isLanguageSelectorEnabled:!0},Gt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((He=a==null?void 0:a.room)==null?void 0:He.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async $e=>{var dt,fe,ke,it;a&&(a.appendChatMessage({timestamp:Date.now(),message:$e,from:{identity:((fe=(dt=a.room)==null?void 0:dt.localParticipant)==null?void 0:fe.identity)??null,name:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.name)??null},isAgent:!1}),await a.say($e))},onClose:()=>h(!1)}):void 0,Bt=(f==null?void 0:f.stepNames.map(($e,dt)=>({id:`step-${dt+1}`,title:$e})))??[],Wt=x.jsx(eF,{steps:Bt,currentStep:(f==null?void 0:f.currentStep)??null,onStepClick:($e,dt)=>{a==null||a.say(`Can we jump to the section about ${dt.title}?`)}});return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:[],controlBarProps:Ie,rightPanel:Gt??Wt,avatarImageSrc:((Vt=(Xe=e.client)==null?void 0:Xe.product)==null?void 0:Vt.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="pip"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie=352,Gt=360,Bt=16,Wt={x:window.innerWidth-Ie-Bt,y:window.innerHeight-Gt-Bt},$e={isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isChatOpen:d,isScreenShareActive:!1,onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>h(mt=>!mt),onScreenShareToggle:async()=>{await(a==null?void 0:a.shareScreen())},onLeave:()=>{a==null||a.stop()},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:mt=>{a==null||a.setLanguage(mt)},isLanguageSelectorEnabled:!0},dt=(f==null?void 0:f.stepNames)??[],fe=dt[f?f.currentStep-1:-1]??"",ke=dt[f?f.currentStep:-1]??"",it=d?x.jsx(SF,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((no=a==null?void 0:a.room)==null?void 0:no.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async mt=>{var Ut,Zn,Li,Pi;a&&(a.appendChatMessage({timestamp:Date.now(),message:mt,from:{identity:((Zn=(Ut=a.room)==null?void 0:Ut.localParticipant)==null?void 0:Zn.identity)??null,name:((Pi=(Li=a.room)==null?void 0:Li.localParticipant)==null?void 0:Pi.name)??null},isAgent:!1}),await a.say(mt))},testId:"pip-chat-panel"}):void 0;return x.jsx(Wj,{initialPosition:Wt,onExit:()=>{r("course-outline")},controlBarProps:$e,isCourseOutlineSelected:S&&!!f,onCourseOutlineToggle:f?()=>{k(mt=>!mt)}:void 0,isCaptionsEnabled:W,onCaptionsToggle:()=>ue(mt=>!mt),courseOutline:f?{currentStep:fe,nextStep:ke}:void 0,messagesPanel:it,avatarFallbackProps:{audioPower:P,imageSrc:((vn=(Ni=e.client)==null?void 0:Ni.product)==null?void 0:vn.logo_url)??void 0,status:Y,captionsText:ne},screenshotUrl:R,cameraShotTrigger:C})}return null}function MH(t){const[e,n]=O.useState(()=>qf(t));return O.useEffect(()=>{n(qf(t))},[t]),O.useEffect(()=>{const i=()=>{n(qf(t))};return window.addEventListener("popstate",i),window.addEventListener("hashchange",i),()=>{window.removeEventListener("popstate",i),window.removeEventListener("hashchange",i)}},[t]),e}function DH(t){const[e,n]=O.useState(0),i=O.useRef(null),r=O.useRef(0),a=O.useRef(0);return O.useEffect(()=>{if(!t){n(0),r.current=0,a.current=0;return}const o=()=>{const s=t.audioSpectrum();let l=0;if(s&&s.length>0){let b=0;for(let y=0;y<s.length;y++)b+=s[y];l=Math.min(1,Math.max(0,b/s.length))}const c=r.current,d=l>=c?.7:.15,h=c*d+l*(1-d);r.current=h;const f=h<.05?0:Math.min(1,h);Math.abs(f-a.current)>.01&&(a.current=f,n(f)),i.current=requestAnimationFrame(o)};return i.current=requestAnimationFrame(o),()=>{i.current&&cancelAnimationFrame(i.current)}},[t]),e}function NH(){const[t,e]=O.useState({audioDevices:[]});return O.useEffect(()=>{var i;if(typeof navigator>"u"||!((i=navigator.mediaDevices)!=null&&i.enumerateDevices))return;const n=()=>{navigator.mediaDevices.enumerateDevices().then(r=>{e({audioDevices:r.filter(a=>a.kind==="audioinput")})})};return n(),navigator.mediaDevices.addEventListener("devicechange",n),()=>navigator.mediaDevices.removeEventListener("devicechange",n)},[]),t}function LH(t){if(document.querySelector("#obi-host")||document.querySelector("obi-widget"))return;PH();const e=document.createElement("div");e.id="obi-host",e.style.position="fixed",e.style.zIndex="9999",document.body.appendChild(e);const n=e.attachShadow({mode:"open"}),i=document.createElement("div");i.id="obi-container",n.appendChild(i);const r=new CSSStyleSheet;r.replaceSync(J9);const a=new CSSStyleSheet;a.replaceSync(X9);const o=new CSSStyleSheet;o.replaceSync(K9);const s=new CSSStyleSheet;s.replaceSync(Q9),n.adoptedStyleSheets=[r,a,o,s],Y9.createRoot(i).render(x.jsx(OH,{sdk:t,shadowHost:e})),console.log("[obi-sdk] widget mounted")}function PH(){XE("https://fonts.cdnfonts.com/css/satoshi"),XE("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap")}function XE(t){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}const QE="49206C6F7665204F6269_session",JE="obi-url-params";class IH extends Gf{constructor(e){super(),this.client=null,this.isActive=!1,this.primaryColour="#9500FF",this.passivePlanUuid=null,this.commandLog=[],this.commandQueue=[],this._resumed=!1,this.dispatchCommand=(n,i)=>{var r,a,o,s,l;switch(this.commandLog.push({commandType:n,args:i}),n){case"update":this.updateConfig(i);break;case"startSession":{if(i!=null&&i.planUuid){const c=(((r=this.client)==null?void 0:r.plans)||[]).find(u=>u.uuid===i.planUuid)||null;if(!c){console.warn("[obi] startSession command requires a valid planUuid",i);return}(o=(a=this.client)==null?void 0:a.selectPlan)==null||o.call(a,c)}this.updateActive(!0);break}case"stopSession":(l=(s=this.client)==null?void 0:s.stopSession)==null||l.call(s);break;case"say":this.say(i);break;default:console.warn("[obi] unknown command",{commandType:n,args:i})}},e&&this.createClient(e),this.parsePassiveParams()}async createClient(e){if(this.client){this.client.appToken!==e&&console.warn("[obi] client already exists with different app token");return}let n=null;const i=this.load();if(i)try{n=Yd.deserialise(i,e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)}),n?this._resumed=!0:localStorage.removeItem("obi-client")}catch(r){console.error("[obi] error loading cached client",r),localStorage.removeItem("obi-client")}n||(n=new Yd(e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)})),this.client=n,this.client.on("stateChanged",r=>{var a,o,s,l,c,u,d,h,f,b;r==="ready"&&this.updateConfig({isActive:((a=window==null?void 0:window.obiWidgetConfig)==null?void 0:a.isActive)??((o=this.client)==null?void 0:o.showWidget),primaryColour:((l=(s=this.client)==null?void 0:s.product)==null?void 0:l.primary_color)||"#9500FF",widgetDisplay:((c=window==null?void 0:window.obiWidgetConfig)==null?void 0:c.widgetDisplay)||((d=(u=this.client)==null?void 0:u.product)==null?void 0:d.widget_display)||"regular",completedWidgetDisplay:((h=window==null?void 0:window.obiWidgetConfig)==null?void 0:h.completedWidgetDisplay)||((b=(f=this.client)==null?void 0:f.product)==null?void 0:b.completed_widget_display)||"regular"})}),this.client.on("sessionStarted",()=>{this.save(),this.passivePlanUuid=null}),this.client.on("sessionStopped",()=>{localStorage.removeItem("obi-client"),this.passivePlanUuid=null}),this.client.on("sessionShutdown",()=>{localStorage.removeItem("obi-client")}),this.client.on("trackEvent",(r,a)=>{}),this.client.session&&(this.client.session.isPaused,this.client.resumeSession(r=>{r.on("stateChanged",a=>{a!=="disconnecting"&&a!=="disconnected"&&a!=="error"&&a!=="connecting"&&this.save()}),r.on("paused",()=>{this.save()}),r.on("unpaused",()=>{this.save()})}))}_maybeActOnServerEngagement(){var s;const e=this.client;if(!e||e.state!=="ready")return;const n=e.product,i=(s=e.engagement)==null?void 0:s.style;if(!i||n&&qf(n.widget_url_blacklist||[])||!e.showWidget)return;const r=e.plans||[],a=e.planIsCompleted||[],o=r.length>0&&a.filter(Boolean).length===r.length;if(!(r.length===0||o)){if(i==="modal"){const l=a.findIndex(u=>!u),c=l>=0?r[l]:null;c&&e.selectPlan(c)}else i==="popover"&&setTimeout(()=>{this.showMessage("Don't forget to complete your onboarding",{autoCloseMs:1e4})},1e3);try{dg().track("engagement-prompt-shown",{style:i})}catch{}}}async initialise(e={}){var n;this.commandQueue=e.queuedCommands||[],this._resumed?(this._resumed=!1,this.dispatchCommandQueue()):this.client?this.client.initialise({planUuid:this.passivePlanUuid||void 0,identity:((n=window==null?void 0:window.obiWidgetConfig)==null?void 0:n.user)||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}this.dispatchCommandQueue()}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}):this.dispatchCommandQueue()}async updateConfig(e){await this.updateAppToken(e.apiKey),this.updateActive(e.isActive),this.updatePrimaryColour(e.primaryColour),this.updateWidgetDisplay(e.widgetDisplay),this.updateCompletedWidgetDisplay(e.completedWidgetDisplay),this.updateWidgetPosition(e.widgetPosition),await this.updateIdentity(e.user),this.updateShowMenu(e.showMenu),this.emit("configUpdated")}async updateAppToken(e){var n;e===void 0||e==((n=this.client)==null?void 0:n.appToken)||(this.passivePlanUuid,await this.createClient(e),this.client&&await this.client.initialise({planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}))}updateActive(e){e===void 0||e==this.isActive||(this.isActive=e)}updatePrimaryColour(e){e===void 0||e==this.primaryColour||(this.primaryColour=e)}updateWidgetDisplay(e){e===void 0||e==this.widgetDisplay||(this.widgetDisplay=e)}updateCompletedWidgetDisplay(e){e===void 0||e==this.completedWidgetDisplay||(this.completedWidgetDisplay=e)}updateWidgetPosition(e){e===void 0||e==this.widgetPosition||(this.widgetPosition=e)}async updateIdentity(e){var i,r;if(e===void 0||e==((i=this.client)==null?void 0:i.identity))return;(r=this.client)==null||r.identity;let n=e?{...e,extra:{...e,...(e==null?void 0:e.extra)||{}}}:void 0;await this.client.initialise({identity:n,planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(a=>{console.error("[obi] error initialising client",a),this.emit("error",a)}),e!=null&&e.email&&dg().identify((e==null?void 0:e.email)||"",n)}updateShowMenu(e){e!==void 0&&this.emit("showMenu",e)}async say(e){var n,i,r;await((r=(i=(n=this.client)==null?void 0:n.session)==null?void 0:i.say)==null?void 0:r.call(i,e))}async startSession(e){await this.client.startSession(this.client.selectedPlanUuid||null,n=>{n.on("stateChanged",i=>{i!=="disconnecting"&&i!=="disconnected"&&i!=="error"&&i!=="connecting"&&this.save()}),n.on("paused",()=>{this.save()}),n.on("unpaused",()=>{this.save()})},e)}dispatchCommandQueue(){const e=this.commandQueue;this.commandQueue=[],e.forEach(n=>{try{this.dispatchCommand(n[0],n[1]||[])}catch(i){console.error("[obi] error dispatching command",i)}})}parsePassiveParams(){if(this.passivePlanUuid){this.passivePlanUuid;return}let e={};e=JSON.parse(localStorage.getItem(JE)||"{}"),Object.keys(e).length===0&&new URLSearchParams(window.location.search).forEach((a,o)=>{e[o]=a});const n=e[QE];if(!n)return null;const i=new URL(window.location.href);i.searchParams.delete(QE),window.history.replaceState({},"",i.toString()),i.toString(),localStorage.removeItem(JE),this.passivePlanUuid=n}mountWidget(){LH(this)}showMessage(e,n){try{this.emit("showMessage",{text:e,autoCloseMs:n==null?void 0:n.autoCloseMs})}catch{}}async captureScreen(){try{await wO(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.text_segmentation)),await _3(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.css_line_breaks))}catch(e){throw console.error("[obi] error initialising unicode trie",e),e}try{return(await rO(document.documentElement,{useCORS:!0,allowTaint:!0,foreignObjectRendering:!0})).toDataURL("image/png")}catch(e){throw console.error("[obi] error capturing screen",e),e}}save(){var n;const e=((n=this.client)==null?void 0:n.serialise())||"";localStorage.setItem("obi-client",e)}load(){return localStorage.getItem("obi-client")}}async function ZE(t,e){let n;try{n=window}catch{console.warn("[obi] no window object found"),n={}}return BH({appToken:t,window:n,init:e})}async function BH({appToken:t,window:e,init:n}){var a,o;if(e.obi){console.warn("[obi] obi object already found on window, skipping");return}n&&n(),t||(t=(a=e==null?void 0:e.obiWidgetConfig)==null?void 0:a.apiKey);let i;try{i=((o=e.ObiSDK)==null?void 0:o.q)||[]}catch{i=[]}const r=new IH(t);return e.ObiSDK=r.dispatchCommand,await r.initialise({queuedCommands:i}),e.obi=r,r.mountWidget(),r}function $E(){}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{ZE(void 0,$E)}):ZE(void 0,$E)})();
|
|
121
|
+
`);for(let s=i;s<o.length;s++){const l=o[s];if(l.length>1024)continue;const c=VE.test(l)?l.replace(VE,"$1"):l;if(!c.match(/\S*Error: /)){for(const u of e){const d=u(c);if(d){a.push(d);break}}if(a.length>=HE+r)break}}return hH(a.slice(r))}}function hH(t){if(!t.length)return[];const e=Array.from(t);return/sentryWrapped/.test(jf(e).function||"")&&e.pop(),e.reverse(),GE.test(jf(e).function||"")&&(e.pop(),GE.test(jf(e).function||"")&&e.pop()),e.slice(0,HE).map(n=>({...n,filename:n.filename||jf(e).filename,function:n.function||rl}))}function jf(t){return t[t.length-1]||{}}typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const fH=30,pH=50;function vb(t,e,n,i){const r={filename:t,function:e==="<anonymous>"?rl:e,in_app:!0};return n!==void 0&&(r.lineno=n),i!==void 0&&(r.colno=i),r}const mH=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,gH=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,vH=/\((\S*)(?::(\d+))(?::(\d+))\)/,bH=t=>{const e=mH.exec(t);if(e){const[,i,r,a]=e;return vb(i,rl,+r,+a)}const n=gH.exec(t);if(n){if(n[2]&&n[2].indexOf("eval")===0){const a=vH.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}const[i,r]=WE(n[1]||rl,n[2]);return vb(r,i,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}},yH=[fH,bH],_H=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,xH=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;dH(...[yH,[pH,t=>{const e=_H.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const r=xH.exec(e[3]);r&&(e[1]=e[1]||"eval",e[3]=r[1],e[4]=r[2],e[5]="")}let n=e[3],i=e[1]||rl;return[i,n]=WE(i,n),vb(n,i,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}}]]);const WE=(t,e)=>{const n=t.indexOf("safari-extension")!==-1,i=t.indexOf("safari-web-extension")!==-1;return n||i?[t.indexOf("@")!==-1?t.split("@")[0]:rl,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]};typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const to={shell:"_shell_1ci0c_1",layout:"_layout_1ci0c_11",leftPanel:"_leftPanel_1ci0c_19",rightPanel:"_rightPanel_1ci0c_28",videoFrame:"_videoFrame_1ci0c_36",captions:"_captions_1ci0c_46",controls:"_controls_1ci0c_52",coursePanel:"_coursePanel_1ci0c_64"};function YE(...t){return t.filter(Boolean).join(" ")}function SH(t){const{captionsText:e,avatarAudioPower:n=0,avatarImageSrc:i,avatarAriaLabel:r,avatarStatus:a,controlBarProps:o,courses:s,coursePanelProps:l,rightPanel:c,className:u}=t;return x.jsx("div",{className:YE(to.shell,u),"data-testid":"course-dialog-content",children:x.jsxs("div",{className:to.layout,children:[x.jsxs("div",{className:to.leftPanel,children:[x.jsx("div",{className:to.videoFrame,children:x.jsx(Jj,{className:to.captions,text:e,children:x.jsx(LE,{audioPower:n,size:"lg",background:"flat",imageSrc:i,ariaLabel:r??"Agent avatar placeholder",status:a})})}),x.jsx("div",{className:to.controls,children:x.jsx(jz,{...o})})]}),x.jsx("div",{className:to.rightPanel,"data-testid":"course-dialog-right-panel",children:c??x.jsx(Rq,{...l,courses:s,className:YE(to.coursePanel,l==null?void 0:l.className)})})]})})}function KE(t){const{open:e,onClose:n,dialogProps:i,...r}=t;return x.jsx(nE,{open:e,onClose:n,variant:"ghost",...i,children:x.jsx(SH,{...r})})}const TH=80,kH=500,CH=1e3;function wH(t,e){const{delayMs:n=0}=e??{},r=t.filter(y=>{var m;const T=(m=y.participantInfo)==null?void 0:m.identity;return(T==null?void 0:T.startsWith("agent-"))??!1}).map(y=>y.text??"").join(" ").trim(),[a,o]=O.useState(""),[s,l]=O.useState(!1),c=O.useRef(""),u=O.useRef(null),d=O.useRef(null),h=O.useRef(null),f=y=>{h.current&&(clearTimeout(h.current),h.current=null),n>0?h.current=setTimeout(()=>{o(y)},n):o(y)},b=(y,T)=>y.startsWith(T)?y.slice(T.length).trim():y.trim();return O.useEffect(()=>{if(d.current&&(clearTimeout(d.current),d.current=null),s)return;const y=b(r,c.current);f(y),y.length>TH?(l(!0),u.current=setTimeout(()=>{l(!1),c.current=r},kH+n)):y.length>0&&(d.current=setTimeout(()=>{c.current=r,f("")},CH+n))},[r,s,n]),O.useEffect(()=>()=>{u.current&&clearTimeout(u.current),d.current&&clearTimeout(d.current),h.current&&clearTimeout(h.current)},[]),{caption:a,hasCaption:a.length>0}}const Tr={layout:"_layout_so9uy_1",left:"_left_so9uy_10",copy:"_copy_so9uy_17",description:"_description_so9uy_25",descriptionScroller:"_descriptionScroller_so9uy_31",cta:"_cta_so9uy_36",disclaimer:"_disclaimer_so9uy_43",right:"_right_so9uy_47",mediaPanel:"_mediaPanel_so9uy_56",agentStill:"_agentStill_so9uy_63"};function EH(t){const{open:e,onClose:n,onStart:i,agentName:r,agentSubtitle:a,description:o,startLabel:s="Start Now",disclaimer:l="Sessions are securely recorded for quality improvement purposes.",showCloseButton:c=!1,isStarting:u=!1}=t;return x.jsx(nE,{open:e,onClose:n,size:"large",showCloseButton:c,children:x.jsxs("div",{className:Tr.layout,children:[x.jsxs("div",{className:Tr.left,children:[x.jsxs("div",{className:Tr.copy,children:[x.jsx(Qn,{variant:"heading",children:r}),x.jsx(Qn,{variant:"subheading",children:a}),x.jsx(Qn,{variant:"muted",as:"div",className:Tr.description,children:x.jsx(Fc,{className:Tr.descriptionScroller,children:x.jsx(az,{content:o})})})]}),x.jsxs("div",{className:Tr.cta,children:[x.jsx(nl,{type:"button",size:"lg",fullWidth:!0,onClick:i,isLoading:u,children:s}),x.jsx(Qn,{variant:"subscript",as:"p",className:Tr.disclaimer,children:l})]})]}),x.jsx("div",{className:Tr.right,children:x.jsx(eu,{className:Tr.mediaPanel,children:x.jsx(uH,{agentName:r,className:Tr.agentStill})})})]})})}function RH(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*").replace(/\?/g,"[^/]");return new RegExp(`^${e}$`,"i")}function AH(t,e){if(!e||e.length===0)return!1;const n=t.replace(/^https?:\/\//,"").replace(/\/$/,"");return e.some(i=>{try{const r=RH(i);return r.test(n)||r.test(t)}catch(r){return console.warn(`Invalid URL pattern: ${i}`,r),!1}})}function qf(t){if(!t||t.length===0)return!1;const e=window.location.origin+window.location.pathname;return AH(e,t)}function OH(t){var j,le,ge,ui,kr,Cr,rn,Jn,It,Di,di,an,ie,He,Xe,Vt,no,Ni,vn;const{sdk:e,shadowHost:n}=t,[i,r]=O.useState("hidden"),[a,o]=O.useState(()=>{var re;return((re=e.client)==null?void 0:re.session)||null}),[s,l]=O.useState(!1),[c,u]=O.useState(!1),[d,h]=O.useState(!1),[f,b]=O.useState(null),[y,T]=O.useState([]),[m,g]=O.useState(null),[_,p]=O.useState(0),[S,k]=O.useState(!1),[C,E]=O.useState(0),[R,A]=O.useState(null),[N,q]=O.useState([]),[W,ue]=O.useState(!0),H=MH((le=(j=e.client)==null?void 0:j.product)==null?void 0:le.widget_url_blacklist),P=DH(a),{audioDevices:J}=NH(),{caption:X}=wH(N,{delayMs:0}),ne=W?X:"",Y=(()=>{if(a!=null&&a.speakingState){if(a.speakingState==="thinking")return"thinking";if(a.speakingState==="busy")return"searching"}})(),Z=()=>p(re=>re+1),K=O.useRef(null),V=O.useRef(null),oe=O.useRef(!1),B=re=>{if(!re||K.current===re)return;V.current&&(V.current(),V.current=null);const ce=()=>Z(),Ie=$e=>{b($e),r(dt=>dt==="course-selection"?(k(!1),"pip"):dt)},Gt=$e=>{T($e.courses),r("course-selection"),b(null),g(null)},Bt=($e,dt)=>{},Wt=$e=>{A($e),E(Date.now())};re.on("stateChanged",ce),re.on("speakingStateChanged",ce),re.on("paused",ce),re.on("unpaused",ce),re.on("chatMessagesChanged",ce),re.on("courseProgress",Ie),re.on("courseSelection",Gt),re.on("transcript",Bt),re.on("screenCaptured",Wt),re.on("captions",q),K.current=re,V.current=()=>{re.off("stateChanged",ce),re.off("speakingStateChanged",ce),re.off("paused",ce),re.off("unpaused",ce),re.off("chatMessagesChanged",ce),re.off("courseProgress",Ie),re.off("courseSelection",Gt),re.off("transcript",Bt),re.off("screenCaptured",Wt),re.off("captions",q)}},he=re=>{var Ie;return re?((Ie=re.roomId)==null?void 0:Ie.startsWith("obs-"))&&!f?"course-selection":"pip":"hidden"};if(O.useEffect(()=>{const re=Ie=>{var Gt,Bt,Wt;Ie?(Gt=e.client)!=null&&Gt.session?r(he(((Bt=e.client)==null?void 0:Bt.session)??null)):r("start-session"):(Wt=e.client)!=null&&Wt.session||r("hidden")},ce=()=>Z();return e.on("showMenu",re),e.on("configUpdated",ce),e.client&&(e.client.session&&(o(e.client.session),B(e.client.session),r(he(e.client.session))),e.client.on("sessionStarted",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie)),dg().track("session-started",{planId:Ie.planId})}),e.client.on("sessionResumed",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie))}),e.client.on("sessionStopped",()=>{V.current&&(V.current(),V.current=null),o(null),K.current=null,l(!1),u(!1),h(!1),oe.current||r("hidden")}),e.client.on("stateChanged",Z)),()=>{e.off("showMenu",re),e.off("configUpdated",ce),V.current&&V.current()}},[e]),O.useLayoutEffect(()=>{var re,ce;(ce=(re=e.client)==null?void 0:re.product)!=null&&ce.primary_color&&n.style.setProperty("--obi-color-primary",e.client.product.primary_color)},[(ui=(ge=e.client)==null?void 0:ge.product)==null?void 0:ui.primary_color,n]),H||i==="hidden")return null;if(i==="start-session"){const re=(kr=e.client)==null?void 0:kr.product,ce=(Cr=e.client)==null?void 0:Cr.selectedPlan,Ie=(re==null?void 0:re.agent_name)||"Obi",Gt="AI Assistant",Bt=(ce==null?void 0:ce.description)||(re==null?void 0:re.description)||"I'm here to help you.";return x.jsx(EH,{open:!0,onClose:()=>{l(!1),r("hidden")},onStart:()=>{l(!0),e.startSession({withMicrophone:!0})},agentName:Ie,agentSubtitle:Gt,description:Bt,showCloseButton:!1,startLabel:"Start Session",isStarting:s})}if(i==="course-selection"){const re=(rn=a==null?void 0:a.roomId)==null?void 0:rn.startsWith("obs-"),ce=((Jn=e.client)==null?void 0:Jn.plans)||[],Ie=re&&y.length>0,Gt=Ie?y.slice().sort((fe,ke)=>fe.order!==void 0&&ke.order!==void 0?fe.order-ke.order:fe.order!==void 0?-1:ke.order!==void 0?1:fe.name.localeCompare(ke.name)).map(fe=>({id:fe.uuid,title:fe.name,description:fe.description||fe.overview||"",status:fe.completed?"completed":"available",duration:typeof fe.duration=="number"?`${fe.duration} min`:fe.duration})):ce.map(fe=>{var ke,it;return{id:fe.uuid,title:fe.name,description:fe.description,status:(it=(ke=e.client)==null?void 0:ke.planIsCompleted)!=null&&it[ce.indexOf(fe)]?"completed":"available",duration:fe.estimated_duration?`${fe.estimated_duration} min`:void 0}}),Bt=(a==null?void 0:a.languageCodes)||[],Wt=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,$e={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((It=navigator.mediaDevices)!=null&&It.getDisplayMedia),onMicDeviceSelect:async fe=>{e.client&&(e.client.preferredMicrophoneDeviceId=fe),a&&fe&&await a.switchMicrophoneDevice(fe),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:Bt,selectedLanguage:Wt,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:fe=>{a==null||a.setLanguage(fe)},isLanguageSelectorEnabled:!0},dt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((Di=a==null?void 0:a.room)==null?void 0:Di.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async fe=>{var ke,it,mt,Ut;a&&(a.appendChatMessage({timestamp:Date.now(),message:fe,from:{identity:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.identity)??null,name:((Ut=(mt=a.room)==null?void 0:mt.localParticipant)==null?void 0:Ut.name)??null},isAgent:!1}),await a.say(fe))},onClose:()=>h(!1)}):void 0;return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:Gt,controlBarProps:$e,coursePanelProps:{selectedCourseIds:m?[m]:void 0,onCourseToggle:async fe=>{var ke,it,mt;if(Ie){const Ut=y.find(Zn=>Zn.uuid===fe);if(Ut){g(fe);try{await((ke=a==null?void 0:a.say)==null?void 0:ke.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),g(null)}}}else{const Ut=ce.find(Zn=>Zn.uuid===fe);if(Ut){(it=e.client)==null||it.selectPlan(Ut),r("pip");try{await((mt=a==null?void 0:a.say)==null?void 0:mt.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),r("course-selection")}}}}},rightPanel:dt,avatarImageSrc:((an=(di=e.client)==null?void 0:di.product)==null?void 0:an.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="course-outline"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((ie=navigator.mediaDevices)!=null&&ie.getDisplayMedia),onMicDeviceSelect:async $e=>{e.client&&(e.client.preferredMicrophoneDeviceId=$e),a&&$e&&await a.switchMicrophoneDevice($e),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:$e=>{a==null||a.setLanguage($e)},isLanguageSelectorEnabled:!0},Gt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((He=a==null?void 0:a.room)==null?void 0:He.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async $e=>{var dt,fe,ke,it;a&&(a.appendChatMessage({timestamp:Date.now(),message:$e,from:{identity:((fe=(dt=a.room)==null?void 0:dt.localParticipant)==null?void 0:fe.identity)??null,name:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.name)??null},isAgent:!1}),await a.say($e))},onClose:()=>h(!1)}):void 0,Bt=(f==null?void 0:f.stepNames.map(($e,dt)=>({id:`step-${dt+1}`,title:$e})))??[],Wt=x.jsx(eF,{steps:Bt,currentStep:(f==null?void 0:f.currentStep)??null,onStepClick:($e,dt)=>{a==null||a.say(`Can we jump to the section about ${dt.title}?`)}});return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:[],controlBarProps:Ie,rightPanel:Gt??Wt,avatarImageSrc:((Vt=(Xe=e.client)==null?void 0:Xe.product)==null?void 0:Vt.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="pip"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie=280,Gt=250,Bt=16,Wt={x:window.innerWidth-Ie-Bt,y:window.innerHeight-Gt-Bt},$e={isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isChatOpen:d,isScreenShareActive:!1,onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>h(mt=>!mt),onScreenShareToggle:async()=>{await(a==null?void 0:a.shareScreen())},onLeave:()=>{a==null||a.stop()},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:mt=>{a==null||a.setLanguage(mt)},isLanguageSelectorEnabled:!0},dt=(f==null?void 0:f.stepNames)??[],fe=dt[f?f.currentStep-1:-1]??"",ke=dt[f?f.currentStep:-1]??"",it=d?x.jsx(SF,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((no=a==null?void 0:a.room)==null?void 0:no.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async mt=>{var Ut,Zn,Li,Pi;a&&(a.appendChatMessage({timestamp:Date.now(),message:mt,from:{identity:((Zn=(Ut=a.room)==null?void 0:Ut.localParticipant)==null?void 0:Zn.identity)??null,name:((Pi=(Li=a.room)==null?void 0:Li.localParticipant)==null?void 0:Pi.name)??null},isAgent:!1}),await a.say(mt))},testId:"pip-chat-panel"}):void 0;return x.jsx(Wj,{initialPosition:Wt,onExit:()=>{r("course-outline")},controlBarProps:$e,isCourseOutlineSelected:S&&!!f,onCourseOutlineToggle:f?()=>{k(mt=>!mt)}:void 0,isCaptionsEnabled:W,onCaptionsToggle:()=>ue(mt=>!mt),courseOutline:f?{currentStep:fe,nextStep:ke}:void 0,messagesPanel:it,avatarFallbackProps:{audioPower:P,imageSrc:((vn=(Ni=e.client)==null?void 0:Ni.product)==null?void 0:vn.logo_url)??void 0,status:Y,captionsText:ne},screenshotUrl:R,cameraShotTrigger:C})}return null}function MH(t){const[e,n]=O.useState(()=>qf(t));return O.useEffect(()=>{n(qf(t))},[t]),O.useEffect(()=>{const i=()=>{n(qf(t))};return window.addEventListener("popstate",i),window.addEventListener("hashchange",i),()=>{window.removeEventListener("popstate",i),window.removeEventListener("hashchange",i)}},[t]),e}function DH(t){const[e,n]=O.useState(0),i=O.useRef(null),r=O.useRef(0),a=O.useRef(0);return O.useEffect(()=>{if(!t){n(0),r.current=0,a.current=0;return}const o=()=>{const s=t.audioSpectrum();let l=0;if(s&&s.length>0){let b=0;for(let y=0;y<s.length;y++)b+=s[y];l=Math.min(1,Math.max(0,b/s.length))}const c=r.current,d=l>=c?.7:.15,h=c*d+l*(1-d);r.current=h;const f=h<.05?0:Math.min(1,h);Math.abs(f-a.current)>.01&&(a.current=f,n(f)),i.current=requestAnimationFrame(o)};return i.current=requestAnimationFrame(o),()=>{i.current&&cancelAnimationFrame(i.current)}},[t]),e}function NH(){const[t,e]=O.useState({audioDevices:[]});return O.useEffect(()=>{var i;if(typeof navigator>"u"||!((i=navigator.mediaDevices)!=null&&i.enumerateDevices))return;const n=()=>{navigator.mediaDevices.enumerateDevices().then(r=>{e({audioDevices:r.filter(a=>a.kind==="audioinput")})})};return n(),navigator.mediaDevices.addEventListener("devicechange",n),()=>navigator.mediaDevices.removeEventListener("devicechange",n)},[]),t}function LH(t){if(document.querySelector("#obi-host")||document.querySelector("obi-widget"))return;PH();const e=document.createElement("div");e.id="obi-host",e.style.position="fixed",e.style.zIndex="9999",document.body.appendChild(e);const n=e.attachShadow({mode:"open"}),i=document.createElement("div");i.id="obi-container",n.appendChild(i);const r=new CSSStyleSheet;r.replaceSync(J9);const a=new CSSStyleSheet;a.replaceSync(X9);const o=new CSSStyleSheet;o.replaceSync(K9);const s=new CSSStyleSheet;s.replaceSync(Q9),n.adoptedStyleSheets=[r,a,o,s],Y9.createRoot(i).render(x.jsx(OH,{sdk:t,shadowHost:e})),console.log("[obi-sdk] widget mounted")}function PH(){XE("https://fonts.cdnfonts.com/css/satoshi"),XE("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap")}function XE(t){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}const QE="49206C6F7665204F6269_session",JE="obi-url-params";class IH extends Gf{constructor(e){super(),this.client=null,this.isActive=!1,this.primaryColour="#9500FF",this.passivePlanUuid=null,this.commandLog=[],this.commandQueue=[],this._resumed=!1,this.dispatchCommand=(n,i)=>{var r,a,o,s,l;switch(this.commandLog.push({commandType:n,args:i}),n){case"update":this.updateConfig(i);break;case"startSession":{if(i!=null&&i.planUuid){const c=(((r=this.client)==null?void 0:r.plans)||[]).find(u=>u.uuid===i.planUuid)||null;if(!c){console.warn("[obi] startSession command requires a valid planUuid",i);return}(o=(a=this.client)==null?void 0:a.selectPlan)==null||o.call(a,c)}this.updateActive(!0);break}case"stopSession":(l=(s=this.client)==null?void 0:s.stopSession)==null||l.call(s);break;case"say":this.say(i);break;default:console.warn("[obi] unknown command",{commandType:n,args:i})}},e&&this.createClient(e),this.parsePassiveParams()}async createClient(e){if(this.client){this.client.appToken!==e&&console.warn("[obi] client already exists with different app token");return}let n=null;const i=this.load();if(i)try{n=Yd.deserialise(i,e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)}),n?this._resumed=!0:localStorage.removeItem("obi-client")}catch(r){console.error("[obi] error loading cached client",r),localStorage.removeItem("obi-client")}n||(n=new Yd(e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)})),this.client=n,this.client.on("stateChanged",r=>{var a,o,s,l,c,u,d,h,f,b;r==="ready"&&this.updateConfig({isActive:((a=window==null?void 0:window.obiWidgetConfig)==null?void 0:a.isActive)??((o=this.client)==null?void 0:o.showWidget),primaryColour:((l=(s=this.client)==null?void 0:s.product)==null?void 0:l.primary_color)||"#9500FF",widgetDisplay:((c=window==null?void 0:window.obiWidgetConfig)==null?void 0:c.widgetDisplay)||((d=(u=this.client)==null?void 0:u.product)==null?void 0:d.widget_display)||"regular",completedWidgetDisplay:((h=window==null?void 0:window.obiWidgetConfig)==null?void 0:h.completedWidgetDisplay)||((b=(f=this.client)==null?void 0:f.product)==null?void 0:b.completed_widget_display)||"regular"})}),this.client.on("sessionStarted",()=>{this.save(),this.passivePlanUuid=null}),this.client.on("sessionStopped",()=>{localStorage.removeItem("obi-client"),this.passivePlanUuid=null}),this.client.on("sessionShutdown",()=>{localStorage.removeItem("obi-client")}),this.client.on("trackEvent",(r,a)=>{}),this.client.session&&(this.client.session.isPaused,this.client.resumeSession(r=>{r.on("stateChanged",a=>{a!=="disconnecting"&&a!=="disconnected"&&a!=="error"&&a!=="connecting"&&this.save()}),r.on("paused",()=>{this.save()}),r.on("unpaused",()=>{this.save()})}))}_maybeActOnServerEngagement(){var s;const e=this.client;if(!e||e.state!=="ready")return;const n=e.product,i=(s=e.engagement)==null?void 0:s.style;if(!i||n&&qf(n.widget_url_blacklist||[])||!e.showWidget)return;const r=e.plans||[],a=e.planIsCompleted||[],o=r.length>0&&a.filter(Boolean).length===r.length;if(!(r.length===0||o)){if(i==="modal"){const l=a.findIndex(u=>!u),c=l>=0?r[l]:null;c&&e.selectPlan(c)}else i==="popover"&&setTimeout(()=>{this.showMessage("Don't forget to complete your onboarding",{autoCloseMs:1e4})},1e3);try{dg().track("engagement-prompt-shown",{style:i})}catch{}}}async initialise(e={}){var n;this.commandQueue=e.queuedCommands||[],this._resumed?(this._resumed=!1,this.dispatchCommandQueue()):this.client?this.client.initialise({planUuid:this.passivePlanUuid||void 0,identity:((n=window==null?void 0:window.obiWidgetConfig)==null?void 0:n.user)||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}this.dispatchCommandQueue()}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}):this.dispatchCommandQueue()}async updateConfig(e){await this.updateAppToken(e.apiKey),this.updateActive(e.isActive),this.updatePrimaryColour(e.primaryColour),this.updateWidgetDisplay(e.widgetDisplay),this.updateCompletedWidgetDisplay(e.completedWidgetDisplay),this.updateWidgetPosition(e.widgetPosition),await this.updateIdentity(e.user),this.updateShowMenu(e.showMenu),this.emit("configUpdated")}async updateAppToken(e){var n;e===void 0||e==((n=this.client)==null?void 0:n.appToken)||(this.passivePlanUuid,await this.createClient(e),this.client&&await this.client.initialise({planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}))}updateActive(e){e===void 0||e==this.isActive||(this.isActive=e)}updatePrimaryColour(e){e===void 0||e==this.primaryColour||(this.primaryColour=e)}updateWidgetDisplay(e){e===void 0||e==this.widgetDisplay||(this.widgetDisplay=e)}updateCompletedWidgetDisplay(e){e===void 0||e==this.completedWidgetDisplay||(this.completedWidgetDisplay=e)}updateWidgetPosition(e){e===void 0||e==this.widgetPosition||(this.widgetPosition=e)}async updateIdentity(e){var i,r;if(e===void 0||e==((i=this.client)==null?void 0:i.identity))return;(r=this.client)==null||r.identity;let n=e?{...e,extra:{...e,...(e==null?void 0:e.extra)||{}}}:void 0;await this.client.initialise({identity:n,planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(a=>{console.error("[obi] error initialising client",a),this.emit("error",a)}),e!=null&&e.email&&dg().identify((e==null?void 0:e.email)||"",n)}updateShowMenu(e){e!==void 0&&this.emit("showMenu",e)}async say(e){var n,i,r;await((r=(i=(n=this.client)==null?void 0:n.session)==null?void 0:i.say)==null?void 0:r.call(i,e))}async startSession(e){await this.client.startSession(this.client.selectedPlanUuid||null,n=>{n.on("stateChanged",i=>{i!=="disconnecting"&&i!=="disconnected"&&i!=="error"&&i!=="connecting"&&this.save()}),n.on("paused",()=>{this.save()}),n.on("unpaused",()=>{this.save()})},e)}dispatchCommandQueue(){const e=this.commandQueue;this.commandQueue=[],e.forEach(n=>{try{this.dispatchCommand(n[0],n[1]||[])}catch(i){console.error("[obi] error dispatching command",i)}})}parsePassiveParams(){if(this.passivePlanUuid){this.passivePlanUuid;return}let e={};e=JSON.parse(localStorage.getItem(JE)||"{}"),Object.keys(e).length===0&&new URLSearchParams(window.location.search).forEach((a,o)=>{e[o]=a});const n=e[QE];if(!n)return null;const i=new URL(window.location.href);i.searchParams.delete(QE),window.history.replaceState({},"",i.toString()),i.toString(),localStorage.removeItem(JE),this.passivePlanUuid=n}mountWidget(){LH(this)}showMessage(e,n){try{this.emit("showMessage",{text:e,autoCloseMs:n==null?void 0:n.autoCloseMs})}catch{}}async captureScreen(){try{await wO(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.text_segmentation)),await _3(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.css_line_breaks))}catch(e){throw console.error("[obi] error initialising unicode trie",e),e}try{return(await rO(document.documentElement,{useCORS:!0,allowTaint:!0,foreignObjectRendering:!0})).toDataURL("image/png")}catch(e){throw console.error("[obi] error capturing screen",e),e}}save(){var n;const e=((n=this.client)==null?void 0:n.serialise())||"";localStorage.setItem("obi-client",e)}load(){return localStorage.getItem("obi-client")}}async function ZE(t,e){let n;try{n=window}catch{console.warn("[obi] no window object found"),n={}}return BH({appToken:t,window:n,init:e})}async function BH({appToken:t,window:e,init:n}){var a,o;if(e.obi){console.warn("[obi] obi object already found on window, skipping");return}n&&n(),t||(t=(a=e==null?void 0:e.obiWidgetConfig)==null?void 0:a.apiKey);let i;try{i=((o=e.ObiSDK)==null?void 0:o.q)||[]}catch{i=[]}const r=new IH(t);return e.ObiSDK=r.dispatchCommand,await r.initialise({queuedCommands:i}),e.obi=r,r.mountWidget(),r}function $E(){}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{ZE(void 0,$E)}):ZE(void 0,$E)})();
|
|
@@ -118,4 +118,4 @@ ${t}</tr>
|
|
|
118
118
|
`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
|
|
119
119
|
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${ta(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let i=this.parser.parseInline(n),r=OE(t);if(r===null)return i;t=r;let a='<a href="'+t+'"';return e&&(a+=' title="'+ta(e)+'"'),a+=">"+i+"</a>",a}image({href:t,title:e,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=OE(t);if(r===null)return ta(n);t=r;let a=`<img src="${t}" alt="${n}"`;return e&&(a+=` title="${ta(e)}"`),a+=">",a}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:ta(t.text)}},db=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},Zi=class wb{constructor(e){nt(this,"options"),nt(this,"renderer"),nt(this,"textRenderer"),this.options=e||Io,this.options.renderer=this.options.renderer||new Lf,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new db}static parse(e,n){return new wb(n).parse(e)}static parseInline(e,n){return new wb(n).parseInline(e)}parse(e){var i,r;let n="";for(let a=0;a<e.length;a++){let o=e[a];if((r=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&r[o.type]){let l=o,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){n+=c||"";continue}}let s=o;switch(s.type){case"space":{n+=this.renderer.space(s);break}case"hr":{n+=this.renderer.hr(s);break}case"heading":{n+=this.renderer.heading(s);break}case"code":{n+=this.renderer.code(s);break}case"table":{n+=this.renderer.table(s);break}case"blockquote":{n+=this.renderer.blockquote(s);break}case"list":{n+=this.renderer.list(s);break}case"checkbox":{n+=this.renderer.checkbox(s);break}case"html":{n+=this.renderer.html(s);break}case"def":{n+=this.renderer.def(s);break}case"paragraph":{n+=this.renderer.paragraph(s);break}case"text":{n+=this.renderer.text(s);break}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return n}parseInline(e,n=this.renderer){var r,a;let i="";for(let o=0;o<e.length;o++){let s=e[o];if((a=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&a[s.type]){let c=this.options.extensions.renderers[s.type].call({parser:this},s);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){i+=c||"";continue}}let l=s;switch(l.type){case"escape":{i+=n.text(l);break}case"html":{i+=n.html(l);break}case"link":{i+=n.link(l);break}case"image":{i+=n.image(l);break}case"checkbox":{i+=n.checkbox(l);break}case"strong":{i+=n.strong(l);break}case"em":{i+=n.em(l);break}case"codespan":{i+=n.codespan(l);break}case"br":{i+=n.br(l);break}case"del":{i+=n.del(l);break}case"text":{i+=n.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return i}},Pf,Zc=(Pf=class{constructor(t){nt(this,"options"),nt(this,"block"),this.options=t||Io}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(){return this.block?Ji.lex:Ji.lexInline}provideParser(){return this.block?Zi.parse:Zi.parseInline}},nt(Pf,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),nt(Pf,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Pf),ez=class{constructor(...t){nt(this,"defaults",nb()),nt(this,"options",this.setOptions),nt(this,"parse",this.parseMarkdown(!0)),nt(this,"parseInline",this.parseMarkdown(!1)),nt(this,"Parser",Zi),nt(this,"Renderer",Lf),nt(this,"TextRenderer",db),nt(this,"Lexer",Ji),nt(this,"Tokenizer",Nf),nt(this,"Hooks",Zc),this.use(...t)}walkTokens(t,e){var i,r;let n=[];for(let a of t)switch(n=n.concat(e.call(this,a)),a.type){case"table":{let o=a;for(let s of o.header)n=n.concat(this.walkTokens(s.tokens,e));for(let s of o.rows)for(let l of s)n=n.concat(this.walkTokens(l.tokens,e));break}case"list":{let o=a;n=n.concat(this.walkTokens(o.items,e));break}default:{let o=a;(r=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&r[o.type]?this.defaults.extensions.childTokens[o.type].forEach(s=>{let l=o[s].flat(1/0);n=n.concat(this.walkTokens(l,e))}):o.tokens&&(n=n.concat(this.walkTokens(o.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let a=e.renderers[r.name];a?e.renderers[r.name]=function(...o){let s=r.renderer.apply(this,o);return s===!1&&(s=a.apply(this,o)),s}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[r.level];a?a.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),i.extensions=e),n.renderer){let r=this.defaults.renderer||new Lf(this.defaults);for(let a in n.renderer){if(!(a in r))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let o=a,s=n.renderer[o],l=r[o];r[o]=(...c)=>{let u=s.apply(r,c);return u===!1&&(u=l.apply(r,c)),u||""}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Nf(this.defaults);for(let a in n.tokenizer){if(!(a in r))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let o=a,s=n.tokenizer[o],l=r[o];r[o]=(...c)=>{let u=s.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new Zc;for(let a in n.hooks){if(!(a in r))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let o=a,s=n.hooks[o],l=r[o];Zc.passThroughHooks.has(a)?r[o]=c=>{if(this.defaults.async&&Zc.passThroughHooksRespectAsync.has(a))return(async()=>{let d=await s.call(r,c);return l.call(r,d)})();let u=s.call(r,c);return l.call(r,u)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let d=await s.apply(r,c);return d===!1&&(d=await l.apply(r,c)),d})();let u=s.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,a=n.walkTokens;i.walkTokens=function(o){let s=[];return s.push(a.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Ji.lex(t,e??this.defaults)}parser(t,e){return Zi.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let i={...n},r={...this.defaults,...i},a=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=t),r.async)return(async()=>{let o=r.hooks?await r.hooks.preprocess(e):e,s=await(r.hooks?await r.hooks.provideLexer():t?Ji.lex:Ji.lexInline)(o,r),l=r.hooks?await r.hooks.processAllTokens(s):s;r.walkTokens&&await Promise.all(this.walkTokens(l,r.walkTokens));let c=await(r.hooks?await r.hooks.provideParser():t?Zi.parse:Zi.parseInline)(l,r);return r.hooks?await r.hooks.postprocess(c):c})().catch(a);try{r.hooks&&(e=r.hooks.preprocess(e));let o=(r.hooks?r.hooks.provideLexer():t?Ji.lex:Ji.lexInline)(e,r);r.hooks&&(o=r.hooks.processAllTokens(o)),r.walkTokens&&this.walkTokens(o,r.walkTokens);let s=(r.hooks?r.hooks.provideParser():t?Zi.parse:Zi.parseInline)(o,r);return r.hooks&&(s=r.hooks.postprocess(s)),s}catch(o){return a(o)}}}onError(t,e){return n=>{if(n.message+=`
|
|
120
120
|
Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error occurred:</p><pre>"+ta(n.message+"",!0)+"</pre>";return e?Promise.resolve(i):i}if(e)return Promise.reject(n);throw n}}},Bo=new ez;function Ge(t,e){return Bo.parse(t,e)}Ge.options=Ge.setOptions=function(t){return Bo.setOptions(t),Ge.defaults=Bo.defaults,gE(Ge.defaults),Ge},Ge.getDefaults=nb,Ge.defaults=Io,Ge.use=function(...t){return Bo.use(...t),Ge.defaults=Bo.defaults,gE(Ge.defaults),Ge},Ge.walkTokens=function(t,e){return Bo.walkTokens(t,e)},Ge.parseInline=Bo.parseInline,Ge.Parser=Zi,Ge.parser=Zi.parse,Ge.Renderer=Lf,Ge.TextRenderer=db,Ge.Lexer=Ji,Ge.lexer=Ji.lex,Ge.Tokenizer=Nf,Ge.Hooks=Zc,Ge.parse=Ge,Ge.options,Ge.setOptions,Ge.use,Ge.walkTokens,Ge.parseInline,Zi.parse,Ji.lex;const tz="_base_1ne03_1",nz={base:tz},iz=["p","br","strong","em","u","a","ul","ol","li","h1","h2","h3","h4","h5","h6","code","pre","blockquote","hr"],rz=["href","title","target","rel"];Ge.setOptions({breaks:!0,gfm:!0});function az(t){const{content:e,className:n,...i}=t,r=O.useMemo(()=>{if(!e)return"";const a=Ge.parse(e,{async:!1});return vU.sanitize(a,{ALLOWED_TAGS:[...iz],ALLOWED_ATTR:[...rz],ALLOW_DATA_ATTR:!1})},[e]);return r?x.jsx("div",{className:ae(nz.base,n),dangerouslySetInnerHTML:{__html:r},...i}):null}const oz="_controlBar_pz3d3_1",sz="_popoverAnchor_pz3d3_11",lz="_confirmationPopover_pz3d3_15",cz="_confirmationPopoverAlignRight_pz3d3_30",uz="_confirmationPopoverAlignCenter_pz3d3_33",dz="_confirmationMessage_pz3d3_53",hz="_confirmationActions_pz3d3_60",fz="_confirmationButton_pz3d3_65",pz="_confirmationButtonCancel_pz3d3_83",mz="_confirmationButtonNeutral_pz3d3_91",gz="_confirmationButtonDanger_pz3d3_99",vz="_controlButton_pz3d3_108",bz="_controlButtonIconOnly_pz3d3_130",yz="_controlButtonDisabled_pz3d3_135",_z="_controlButtonDanger_pz3d3_162",xz="_controlButtonContent_pz3d3_178",Sz="_controlButtonIcon_pz3d3_130",Tz="_controlButtonLabel_pz3d3_194",kz="_controlButtonChevron_pz3d3_201",Cz="_controlButtonNotificationDot_pz3d3_210",wz="_deviceSplitButton_pz3d3_222",Ez="_deviceSplitButtonEnabled_pz3d3_226",Rz="_dualButtonContent_pz3d3_307",Az="_dualButtonIcon_pz3d3_317",Oz="_dualButtonLabel_pz3d3_326",Mz="_screenShareButton_pz3d3_340",Le={controlBar:oz,popoverAnchor:sz,confirmationPopover:lz,confirmationPopoverAlignRight:cz,confirmationPopoverAlignCenter:uz,confirmationMessage:dz,confirmationActions:hz,confirmationButton:fz,confirmationButtonCancel:pz,confirmationButtonNeutral:mz,confirmationButtonDanger:gz,controlButton:vz,controlButtonIconOnly:bz,controlButtonDisabled:yz,controlButtonDanger:_z,controlButtonContent:xz,controlButtonIcon:Sz,controlButtonLabel:Tz,controlButtonChevron:kz,controlButtonNotificationDot:Cz,deviceSplitButton:wz,deviceSplitButtonEnabled:Ez,dualButtonContent:Rz,dualButtonIcon:Az,dualButtonLabel:Oz,screenShareButton:Mz},Dz="_inline_1gpyx_1",Nz="_vertical_1gpyx_6",Lz="_divider_1gpyx_10",Pz="_dividerVertical_1gpyx_16",Iz="_customDivider_1gpyx_21",$c={inline:Dz,vertical:Nz,divider:Lz,dividerVertical:Pz,customDivider:Iz},NE={none:"0px",xxs:"var(--space-xxs)",xs:"var(--space-xs)",sm:"var(--space-sm)",md:"var(--space-md)",lg:"var(--space-lg)",xl:"var(--space-xl)","2xl":"var(--space-2xl)","3xl":"var(--space-3xl)","4xl":"var(--space-4xl)","5xl":"var(--space-5xl)"};function $i(t){if(t!==void 0){if(typeof t=="number")return`${t}px`;if(t in NE)return NE[t];if(typeof t=="string"&&t.trim().length>0)return t}}function Bz(t,e){const{as:n,direction:i="horizontal",gap:r,align:a="center",justify:o,wrap:s=!1,divider:l,className:c,style:u,children:d,...h}=t,f=n??"div",b={display:"flex",flexDirection:i==="horizontal"?"row":"column",flexWrap:s?"wrap":"nowrap",alignItems:a,...o?{justifyContent:o}:{},...u};if(r!==void 0){const g=$i(r);g&&(b.gap=g)}const y=Fn.Children.toArray(d).filter(g=>g!=null&&typeof g!="boolean"),T=g=>!l||g===0?null:l===!0||l==="line"?x.jsx("span",{"aria-hidden":"true",className:ae($c.divider,i==="vertical"&&$c.dividerVertical)},`inline-divider-${g}`):x.jsx("span",{"aria-hidden":"true",className:$c.customDivider,children:l},`inline-divider-${g}`),m=[];return y.forEach((g,_)=>{if(_>0){const p=T(_);p&&m.push(p)}m.push(g)}),x.jsx(f,{ref:e,className:ae($c.inline,i==="vertical"&&$c.vertical,c),style:b,...h,children:m})}const hb=Fn.forwardRef(Bz);hb.displayName="Inline";function Uz(){const[t,e]=O.useState(()=>typeof window>"u"?!1:window.innerWidth<768);return O.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(max-width: 767px)"),i=()=>{e(n.matches)};return i(),typeof n.addEventListener=="function"?(n.addEventListener("change",i),()=>n.removeEventListener("change",i)):(n.addListener(i),()=>n.removeListener(i))},[]),t}function fb(t){const{icon:e,label:n,showChevron:i=!1,variant:r="default",disabled:a,className:o="",size:s="md",iconOnly:l=!1,showNotificationDot:c=!1,isOn:u,"aria-label":d,...h}=t,f=ae(Le.controlButton,a&&Le.controlButtonDisabled,l&&Le.controlButtonIconOnly,r==="danger"&&Le.controlButtonDanger,o),b=Number.parseInt(Fv[s],10),y=r==="danger"?"outline":"primary",T=r==="danger"?"danger":"default",m=x.jsxs(x.Fragment,{children:[x.jsxs("span",{className:Le.controlButtonContent,children:[e?x.jsx("span",{className:Le.controlButtonIcon,children:Fn.isValidElement(e)&&e.props.size===void 0?Fn.cloneElement(e,{size:b}):e}):null,l?null:x.jsx("span",{className:Le.controlButtonLabel,children:n}),l||!i?null:x.jsx("span",{className:Le.controlButtonChevron,"aria-hidden":"true",children:x.jsx(Vv,{size:16})})]}),c?x.jsx("span",{className:Le.controlButtonNotificationDot,"aria-hidden":"true"}):null]});return typeof u=="boolean"?x.jsx(kf,{...h,type:"button",disabled:a,variant:y,color:T,isOn:u,"aria-label":d||n,className:f,"data-has-notification":c?"true":void 0,children:m}):x.jsx(nl,{...h,type:"button",disabled:a,variant:y,color:T,"aria-label":d||n,className:f,"data-has-notification":c?"true":void 0,children:m})}function zz(t){const{audioDevices:e,currentMicrophoneId:n,isMicrophoneEnabled:i,isScreenShareActive:r,widgetState:a,canPublishData:o,browserSupportsScreenSharing:s,onMicDeviceSelect:l,onMicToggle:c,onChatToggle:u,onLeave:d,onScreenShareToggle:h,showChatNotification:f=!1,isLanguageSelectorEnabled:b=!0,languages:y=[],selectedLanguage:T=null,defaultLanguageCode:m=null,isMultilingual:g=!1,onLanguageChange:_,isChatOpen:p=a==="chat"}=t,S=y.length,k=b&&g&&S>0,C=Uz(),E=C?"xs":"sm",R=C,[A,N]=O.useState(!1),[q,W]=O.useState(!1),ue=O.useRef(null),H=O.useRef(null);O.useEffect(()=>{const he=le=>{const ge=le.composedPath();A&&ue.current&&!ge.includes(ue.current)&&N(!1),q&&H.current&&!ge.includes(H.current)&&W(!1)},j=le=>{le.key==="Escape"&&(A&&N(!1),q&&W(!1))};if(A||q)return document.addEventListener("mousedown",he),document.addEventListener("keydown",j),()=>{document.removeEventListener("mousedown",he),document.removeEventListener("keydown",j)}},[A,q]),O.useEffect(()=>{r||N(!1)},[r]);const P=O.useMemo(()=>e.map(he=>({label:he.label||`Microphone ${he.deviceId.slice(0,8)}`,value:he.deviceId})),[e]),J=O.useMemo(()=>n?P.find(he=>he.value===n)??null:null,[n,P]),X=O.useCallback(he=>{he.value,l(he.value)},[l]),ne={microphone:!0,screenShare:s,chat:o},Y=O.useCallback(()=>{if(r){N(!0);return}h()},[r,h]),Z=O.useCallback(()=>{N(!1),h()},[h]),K=O.useCallback(()=>{N(!1)},[]),V=O.useCallback(()=>{W(!0)},[]),oe=O.useCallback(()=>{W(!1),d()},[d]),B=O.useCallback(()=>{W(!1)},[]);return x.jsx("div",{className:Le.controlBar,"data-testid":"control-bar","data-controls":JSON.stringify(ne),"data-language-option-count":S>0?String(S):void 0,"data-default-language-code":m??void 0,children:x.jsxs(hb,{gap:E,align:"center",justify:"center",wrap:R,children:[x.jsx(k7,{onClick:c,buttonAriaLabel:i?"Mute microphone":"Unmute microphone",options:P,value:J,onChange:X,variant:"primary",menuPlacement:"top",menuDisabled:P.length===0,menuAriaLabel:"Select microphone device",listboxAriaLabel:"Microphone devices",ariaPressed:i,className:ae(Le.deviceSplitButton,i&&Le.deviceSplitButtonEnabled),children:x.jsxs("span",{className:Le.dualButtonContent,children:[x.jsx("span",{className:Le.dualButtonIcon,children:i?x.jsx(H2,{}):x.jsx(V2,{})}),x.jsx("span",{className:Le.dualButtonLabel,children:"Microphone"})]})}),o?x.jsx(fb,{icon:x.jsx(j2,{}),label:"Chat",onClick:u,isOn:p,"aria-label":"Toggle chat",showNotificationDot:f}):null,s?x.jsxs("div",{ref:ue,className:Le.popoverAnchor,children:[x.jsx(fb,{icon:x.jsx(G2,{}),label:r?"Share screen off":"Share screen",className:Le.screenShareButton,onClick:Y,isOn:r,"aria-label":r?"Stop screen sharing":"Start screen sharing"}),A?x.jsxs("div",{className:ae(Le.confirmationPopover,Le.confirmationPopoverAlignCenter),role:"dialog","aria-label":"Stop screen sharing confirmation","data-testid":"confirm-stop-share",children:[x.jsx("p",{className:Le.confirmationMessage,children:"Stop screen sharing?"}),x.jsxs("div",{className:Le.confirmationActions,children:[x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonCancel),onClick:K,children:"Cancel"}),x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonNeutral),onClick:Z,children:"Stop"})]})]}):null]}):null,k?x.jsx($2,{languages:y,value:T,onChange:_,defaultLanguageCode:m,variant:"control-bar"}):null,x.jsxs("div",{ref:H,className:Le.popoverAnchor,children:[x.jsx(fb,{icon:x.jsx(F2,{}),label:"Leave",variant:"danger",onClick:V,"aria-label":"Leave meeting"}),q?x.jsxs("div",{className:ae(Le.confirmationPopover,Le.confirmationPopoverAlignRight),role:"dialog","aria-label":"Leave meeting confirmation","data-testid":"confirm-leave",children:[x.jsx("p",{className:Le.confirmationMessage,children:"Would you like to end the call?"}),x.jsxs("div",{className:Le.confirmationActions,children:[x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonCancel),onClick:B,children:"Cancel"}),x.jsx("button",{type:"button",className:ae(Le.confirmationButton,Le.confirmationButtonDanger),onClick:oe,children:"Leave"})]})]}):null]})]})})}function jz(t){return x.jsx(zz,{...t})}const qz="_controlBar_75i8h_1",Fz="_controlButton_75i8h_12",Hz="_controlButtonDisabled_75i8h_35",Vz="_controlButtonDanger_75i8h_62",Gz="_controlButtonIconOnly_75i8h_78",Wz="_screenShareButton_75i8h_83",Yz="_controlButtonContent_75i8h_88",Kz="_controlButtonIcon_75i8h_78",Xz="_controlButtonLabel_75i8h_103",Qz="_controlButtonNotificationDot_75i8h_108",Jz="_popoverAnchor_75i8h_198",Zz="_confirmationPopover_75i8h_202",$z="_confirmationMessage_75i8h_216",ej="_confirmationActions_75i8h_223",tj="_confirmationButton_75i8h_228",nj="_confirmationButtonCancel_75i8h_246",ij="_confirmationButtonDanger_75i8h_254",nn={controlBar:qz,controlButton:Fz,controlButtonDisabled:Hz,controlButtonDanger:Vz,controlButtonIconOnly:Gz,screenShareButton:Wz,controlButtonContent:Yz,controlButtonIcon:Kz,controlButtonLabel:Xz,controlButtonNotificationDot:Qz,popoverAnchor:Jz,confirmationPopover:Zz,confirmationMessage:$z,confirmationActions:ej,confirmationButton:tj,confirmationButtonCancel:nj,confirmationButtonDanger:ij};function If(t){const{icon:e,label:n,variant:i="default",disabled:r,className:a="",iconOnly:o=!1,showNotificationDot:s=!1,isOn:l,"aria-label":c,...u}=t,d=ae(nn.controlButton,r&&nn.controlButtonDisabled,o&&nn.controlButtonIconOnly,i==="danger"&&nn.controlButtonDanger,a),h=i==="danger"?"outline":"primary",f=i==="danger"?"danger":"default",b=x.jsxs(x.Fragment,{children:[x.jsxs("span",{className:nn.controlButtonContent,children:[e?x.jsx("span",{className:nn.controlButtonIcon,children:Fn.isValidElement(e)&&e.props.size===void 0?Fn.cloneElement(e,{size:20}):e}):null,o?null:x.jsx("span",{className:nn.controlButtonLabel,children:n})]}),s?x.jsx("span",{className:nn.controlButtonNotificationDot,"aria-hidden":"true"}):null]});return typeof l=="boolean"?x.jsx(kf,{...u,type:"button",disabled:r,variant:h,color:f,size:"xs",isOn:l,"aria-label":c||n,className:d,"data-has-notification":s?"true":void 0,children:b}):x.jsx(nl,{...u,type:"button",disabled:r,variant:h,color:f,size:"xs","aria-label":c||n,className:d,"data-has-notification":s?"true":void 0,children:b})}function rj(t){const{isMicrophoneEnabled:e,isChatOpen:n,isScreenShareActive:i,showChatNotification:r=!1,onMicToggle:a,onChatToggle:o,onScreenShareToggle:s,onLeave:l,languages:c=[],selectedLanguage:u=null,defaultLanguageCode:d=null,isMultilingual:h,onLanguageChange:f,isLanguageSelectorEnabled:b=!0,className:y,testId:T,...m}=t,g=!b||!h||c.length===0,[_,p]=O.useState(!1),S=O.useRef(null);O.useEffect(()=>{const N=W=>{const ue=W.composedPath();_&&S.current&&!ue.includes(S.current)&&p(!1)},q=W=>{W.key==="Escape"&&_&&p(!1)};if(_)return document.addEventListener("mousedown",N),document.addEventListener("keydown",q),()=>{document.removeEventListener("mousedown",N),document.removeEventListener("keydown",q)}},[_]);const k=O.useCallback(()=>{a()},[a]),C=O.useCallback(()=>{s()},[s]),E=O.useCallback(()=>{p(!0)},[]),R=O.useCallback(()=>{p(!1),l()},[l]),A=O.useCallback(()=>{p(!1)},[]);return x.jsx("div",{...m,className:ae(nn.controlBar,y),"data-testid":T,children:x.jsxs(hb,{gap:"xs",align:"center",justify:"center",wrap:!1,children:[x.jsx(If,{icon:e?x.jsx(H2,{}):x.jsx(V2,{}),label:"Microphone",iconOnly:!0,isOn:e,onClick:k,"aria-label":e?"Mute microphone":"Unmute microphone"}),x.jsx(If,{icon:x.jsx(j2,{}),label:"Chat",iconOnly:!0,isOn:n,onClick:o,"aria-label":"Toggle chat",showNotificationDot:r}),x.jsx(If,{icon:x.jsx(G2,{}),label:"Screen share",iconOnly:!0,className:nn.screenShareButton,isOn:i,onClick:C,"aria-label":i?"Stop screen sharing":"Start screen sharing"}),x.jsx($2,{languages:c,value:u,onChange:f,defaultLanguageCode:d,variant:"pip",disabled:g}),x.jsxs("div",{ref:S,className:nn.popoverAnchor,children:[x.jsx(If,{icon:x.jsx(F2,{}),label:"Hang up",iconOnly:!0,variant:"danger",onClick:E,"aria-label":"Hang up"}),_?x.jsxs("div",{className:nn.confirmationPopover,role:"dialog","aria-label":"Hang up confirmation","data-testid":"confirm-leave",children:[x.jsx("p",{className:nn.confirmationMessage,children:"Would you like to end the call?"}),x.jsxs("div",{className:nn.confirmationActions,children:[x.jsx("button",{type:"button",className:ae(nn.confirmationButton,nn.confirmationButtonCancel),onClick:A,children:"Cancel"}),x.jsx("button",{type:"button",className:ae(nn.confirmationButton,nn.confirmationButtonDanger),onClick:R,children:"Leave"})]})]}):null]})]})})}function aj(t){return x.jsx(rj,{...t})}const oj="_container_zht0b_1",sj="_containerGradient_zht0b_14",lj="_containerFlat_zht0b_24",cj="_halo_zht0b_28",uj="_outerRing_zht0b_38",dj="_circle_zht0b_42",hj="_image_zht0b_72",fj="_captionContainer_zht0b_88",pj="_captionRegion_zht0b_99",na={container:oj,containerGradient:sj,containerFlat:lj,halo:cj,outerRing:uj,circle:dj,image:hj,captionContainer:fj,captionRegion:pj},mj="_statusText_1dkze_6",gj={statusText:mj},vj={idle:null,thinking:"Thinking...",searching:"Searching..."};function bj(t){const{status:e,size:n="md"}=t,i=e?vj[e]:null,r=i!==null;return x.jsx("div",{className:gj.statusText,"data-visible":r,"data-size":n,"aria-live":"polite",children:i})}const yj="https://obi-static.s3.ap-southeast-2.amazonaws.com/images/obi-avatar.png",_j={sm:{haloSize:"4.5rem",maxBorderWidth:5,outerRingScalePower:.55,glowSize:"20px"},md:{haloSize:"8rem",maxBorderWidth:8,outerRingScalePower:.7,glowSize:"35px"},lg:{haloSize:"10rem",maxBorderWidth:10,outerRingScalePower:.75,glowSize:"42px"}};function LE(t){const{audioPower:e,size:n="md",background:i="gradient",imageSrc:r=yj,accentColor:a,ariaLabel:o="Avatar placeholder",status:s,captionsText:l,className:c,style:u,...d}=t,h=_j[n],f=Math.min(1,Math.max(0,e)),b=f>.01,y=b?Math.min(1,f/.5):0,T=b?Math.max(1,y*h.maxBorderWidth):0,m=1.02,g=b?m+f*h.outerRingScalePower:m,_=b?.2+f*.35:0,p={...u??{},...a?{"--avatar-fallback-accent":a}:{}},S={"--avatar-fallback-halo-size":h.haloSize,"--avatar-fallback-border-width":`${T}px`,"--avatar-fallback-secondary-border-scale":g.toString(),"--avatar-fallback-secondary-border-opacity":_.toString(),"--avatar-fallback-glow-size":h.glowSize},k=l!=null&&l!=="";return x.jsxs("div",{...d,className:ae(na.container,i==="gradient"?na.containerGradient:na.containerFlat,c),style:p,"data-testid":"avatar-fallback","aria-label":o,role:"img",children:[x.jsxs("div",{className:na.halo,style:S,children:[x.jsx("div",{className:na.outerRing,"aria-hidden":"true"}),x.jsx("div",{className:na.circle,children:x.jsx("img",{className:na.image,src:r,alt:"","aria-hidden":"true"})}),x.jsx(bj,{status:s,size:n})]}),k&&x.jsx("div",{className:na.captionContainer,children:x.jsx("div",{className:na.captionRegion,"data-size":n,role:"status","aria-live":"polite","aria-atomic":"true",children:l})})]})}const xj="_container_1k3qg_11",Sj="_screenshot_1k3qg_20",Tj="_flash_1k3qg_30",pb={container:xj,screenshot:Sj,flash:Tj};function kj(t){const{isActive:e,imageUrl:n,onComplete:i,duration:r=2e3}=t,[a,o]=O.useState(!1),s=O.useRef(null);return O.useEffect(()=>{if(!e){o(!1),s.current&&(clearTimeout(s.current),s.current=null);return}if(!s.current)return o(!0),s.current=setTimeout(()=>{o(!1),s.current=null,i==null||i()},r),()=>{s.current&&(clearTimeout(s.current),s.current=null)}},[e,r,i]),!a||!n?null:x.jsxs("div",{className:pb.container,"aria-live":"polite","aria-label":"Screenshot captured",children:[x.jsx("img",{src:n,alt:"Captured screenshot",className:pb.screenshot}),x.jsx("div",{className:pb.flash})]})}const Cj="_container_13ukq_1",wj="_dragging_13ukq_5",Ej="_placeholder_13ukq_9",Rj="_handleButton_13ukq_15",Aj="_customHandle_13ukq_105",il={container:Cj,dragging:wj,placeholder:Ej,handleButton:Rj,"handle-top":"_handle-top_13ukq_65","handle-bottom":"_handle-bottom_13ukq_75","handle-left":"_handle-left_13ukq_85","handle-right":"_handle-right_13ukq_95",customHandle:Aj};function Oj(t){const{disabled:e,lingerMs:n,isDragging:i}=t,[r,a]=O.useState(!1),o=O.useRef(null),s=O.useCallback(()=>{o.current!==null&&(window.clearTimeout(o.current),o.current=null)},[]),l=O.useCallback(()=>{e||(s(),a(!0))},[s,e]),c=O.useCallback(()=>{e||i||(s(),o.current=window.setTimeout(()=>{a(!1),o.current=null},n))},[s,e,i,n]);return O.useEffect(()=>{i&&l()},[i,l]),O.useEffect(()=>s,[s]),{isHandleVisible:r,showHandle:l,scheduleHideHandle:c}}function Mj(t){const{initialPosition:e,preserveSpace:n,onPositionChange:i}=t,r=O.useRef(null),[a,o]=O.useState(!!e),[s,l]=O.useState(!1),[c,u]=O.useState(null),[d,h]=O.useState(()=>e??{x:0,y:0}),f=O.useRef(d);f.current=d;const b=O.useRef(null),y=O.useRef(!1),T=O.useRef(!1);O.useEffect(()=>{e&&(T.current||(o(!0),h(e),f.current=e))},[e==null?void 0:e.x,e==null?void 0:e.y]),O.useEffect(()=>{if(e||y.current)return;const p=r.current;if(!p)return;const S=p.getBoundingClientRect(),k={x:S.left,y:S.top};y.current=!0,o(!0),h(k),f.current=k,u(n?{width:S.width,height:S.height}:null)},[e,n]);const m=O.useCallback(p=>{const S=b.current;if(!(!S||p.pointerId!==S.pointerId)){b.current=null,T.current=!0,h(f.current),l(!1);try{p.currentTarget.releasePointerCapture(S.pointerId)}catch{}}},[]),g=O.useCallback(p=>{p.button===0&&(p.preventDefault(),p.currentTarget.setPointerCapture(p.pointerId),b.current={pointerId:p.pointerId,startClientX:p.clientX,startClientY:p.clientY,startX:f.current.x,startY:f.current.y},l(!0))},[]),_=O.useCallback(p=>{const S=b.current;if(!S||p.pointerId!==S.pointerId)return;const k={x:S.startX+(p.clientX-S.startClientX),y:S.startY+(p.clientY-S.startClientY)};f.current=k,r.current&&(r.current.style.transform=`translate3d(${k.x}px, ${k.y}px, 0)`),i==null||i(k)},[i]);return{containerRef:r,isFixed:a,isDragging:s,position:d,placeholderSize:c,onPointerDown:g,onPointerMove:_,endDrag:m}}function Dj(t){const{children:e,className:n,handle:i="top",initialPosition:r,disabled:a=!1,preserveSpace:o=!0,zIndex:s=1e3,onPositionChange:l,handleAriaLabel:c="Drag",handleLingerMs:u=350,style:d,...h}=t,{containerRef:f,isFixed:b,isDragging:y,position:T,placeholderSize:m,onPointerDown:g,onPointerMove:_,endDrag:p}=Mj({initialPosition:r,preserveSpace:o,onPositionChange:l}),{isHandleVisible:S,showHandle:k,scheduleHideHandle:C}=Oj({disabled:a,lingerMs:u,isDragging:y}),E=typeof e=="function",R=O.useMemo(()=>{const N=q=>x.jsx("div",{className:ae(il.customHandle,q.className),onPointerDown:g,onPointerMove:_,onPointerUp:p,onPointerCancel:p,children:q.children});return N.displayName="Draggable.Handle",N},[g,_,p]),A={...d,position:b?"fixed":"relative",top:b?0:d==null?void 0:d.top,left:b?0:d==null?void 0:d.left,transform:b?`translate3d(${T.x}px, ${T.y}px, 0)`:d==null?void 0:d.transform,zIndex:b?s:d==null?void 0:d.zIndex};return x.jsxs(x.Fragment,{children:[o&&b&&m?x.jsx("div",{className:il.placeholder,style:{width:m.width,height:m.height}}):null,x.jsxs("div",{ref:f,className:ae(il.container,y?il.dragging:null,n),"data-handle-visible":E?void 0:a?"false":S||y?"true":"false",style:A,onMouseEnter:E?void 0:k,onMouseLeave:E?void 0:C,...h,children:[!E&&!a?x.jsx("button",{type:"button",className:ae(il.handleButton,il[`handle-${i}`]),"aria-label":c,onMouseEnter:k,onMouseLeave:C,onPointerDown:N=>{k(),g(N)},onPointerMove:_,onPointerUp:p,onPointerCancel:p}):null,E?e({Handle:R}):e]})]})}const Nj="_panel_iijnl_1",Lj="_label_iijnl_16",Pj="_currentStep_iijnl_24",Ij="_nextStep_iijnl_32",Bf={panel:Nj,label:Lj,currentStep:Pj,nextStep:Ij};function Bj(t){const{currentStep:e,nextStep:n,className:i,testId:r,...a}=t;return x.jsxs("div",{...a,className:ae(Bf.panel,i),"data-testid":r,role:"group","aria-label":"Course progress",children:[x.jsx(Qn,{className:Bf.label,children:"Current step"}),x.jsx(Qn,{className:Bf.currentStep,children:e}),x.jsxs(Qn,{variant:"muted",className:Bf.nextStep,children:["Next: ",n]})]})}const Uj="_window_1vonn_1",zj="_header_1vonn_13",jj="_dragHandle_1vonn_20",qj="_exitButton_1vonn_25",Fj="_content_1vonn_56",Hj="_contentOverlay_1vonn_65",Vj="_controls_1vonn_73",Uo={window:Uj,header:zj,dragHandle:jj,exitButton:qj,content:Fj,contentOverlay:Hj,controls:Vj};function Gj(t){const{onExit:e,controlBarProps:n,isCourseOutlineSelected:i,onCourseOutlineToggle:r,isCaptionsEnabled:a=!1,onCaptionsToggle:o,courseOutline:s,messagesPanel:l,avatarFallbackProps:c,headerSlot:u,screenshotUrl:d,cameraShotTrigger:h,className:f,testId:b,...y}=t,T=i,m=n.isChatOpen&&!T&&l,[g,_]=O.useState(!1);O.useEffect(()=>{h&&h>0&&_(!0)},[h]);const p=O.useCallback(()=>x.jsx(LE,{audioPower:(c==null?void 0:c.audioPower)??0,size:"sm",background:"flat",imageSrc:c==null?void 0:c.imageSrc,ariaLabel:c==null?void 0:c.ariaLabel,status:c==null?void 0:c.status,captionsText:a?c==null?void 0:c.captionsText:void 0}),[c,a]),S=T?s?x.jsx(Bj,{currentStep:s.currentStep,nextStep:s.nextStep}):p():m?l:p();return x.jsxs("div",{...y,className:ae(Uo.window,f),"data-testid":b,role:"group","aria-label":"Picture-in-Picture",children:[x.jsxs("div",{className:Uo.header,children:[u,x.jsx("button",{type:"button",className:Uo.exitButton,onClick:e,"aria-label":"Exit PiP",children:x.jsx(tB,{size:14})})]}),x.jsxs("div",{className:Uo.content,children:[S,x.jsxs("div",{className:Uo.contentOverlay,children:[x.jsx(kf,{isOn:i,onClick:r,variant:"primary",size:"xs","aria-label":"Toggle course outline",children:x.jsx(rB,{size:18})}),x.jsx(kf,{isOn:a,onClick:o,variant:"primary",size:"xs","aria-label":"Toggle captions",children:x.jsx(eB,{size:18})})]}),x.jsx(kj,{isActive:g,imageUrl:d??null,onComplete:()=>_(!1)})]}),x.jsx("div",{className:Uo.controls,children:x.jsx(aj,{...n})})]})}function Wj(t){const{initialPosition:e,onPositionChange:n,zIndex:i=1e3,...r}=t;return x.jsx(Dj,{initialPosition:e,onPositionChange:n,zIndex:i,preserveSpace:!1,children:({Handle:a})=>x.jsx(Gj,{...r,headerSlot:x.jsx(a,{className:Uo.dragHandle})})})}const Yj="_root_ygi3o_1",Kj="_overlay_ygi3o_7",Xj="_caption_ygi3o_17",mb={root:Yj,overlay:Kj,caption:Xj};function Qj(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}function Jj(t){const{children:e,className:n,text:i}=t,r=Qj(i);return x.jsxs("div",{className:ae(mb.root,n),children:[e,r?x.jsx("div",{className:mb.overlay,role:"status","aria-live":"polite","aria-atomic":"true",children:x.jsx("div",{className:mb.caption,children:i})}):null]})}const Zj="_box_1r6by_1",$j={box:Zj},PE={none:"0px",panel:"var(--radius-panel)",card:"var(--radius-card)"},IE={surface:"var(--color-surface)",surfaceMuted:"var(--color-surface-muted)",surfaceAlt:"var(--color-surface-alt)",primarySoft:"var(--color-primary-soft)",primarySofter:"var(--color-primary-softer)",dangerSurface:"var(--color-danger-surface)"};function eq(t){if(t!==void 0){if(typeof t=="number")return`${t}px`;if(t in PE)return PE[t];if(typeof t=="string"&&t.trim().length>0)return t}}function tq(t){if(t!==void 0){if(t in IE)return IE[t];if(typeof t=="string"&&t.trim().length>0)return t}}function nq(t,e){const{as:n,className:i,padding:r,paddingX:a,paddingY:o,paddingTop:s,paddingBottom:l,paddingLeft:c,paddingRight:u,paddingSm:d,paddingMd:h,paddingLg:f,paddingXl:b,margin:y,marginX:T,marginY:m,marginTop:g,marginBottom:_,marginLeft:p,marginRight:S,radius:k,radiusTop:C,radiusBottom:E,radiusLeft:R,radiusRight:A,radiusTopLeft:N,radiusTopRight:q,radiusBottomLeft:W,radiusBottomRight:ue,background:H,gap:P,style:J,...X}=t,ne=n??"div",Y={...J},Z=Y,K={},V=(j,le)=>{if(le===void 0)return;const ge=$i(le);ge&&(Y[j]=ge)},oe=(j,le)=>{if(le===void 0)return;const ge=$i(le);ge&&(Y[j]=ge)},B=(j,le)=>{if(le===void 0)return;const ge=eq(le);ge&&(Y[j]=ge)},he={sm:d,md:h,lg:f,xl:b};if(r!==void 0){const j=$i(r);j&&(Z["--box-padding"]=j)}for(const[j,le]of Object.entries(he)){if(le===void 0)continue;const ge=$i(le);ge&&(Z[`--box-padding-${j}`]=ge,K[`data-padding-${j}`]="")}if(a!==void 0){const j=$i(a);j&&(Y.paddingLeft=j,Y.paddingRight=j)}if(o!==void 0){const j=$i(o);j&&(Y.paddingTop=j,Y.paddingBottom=j)}if(V("paddingTop",s),V("paddingBottom",l),V("paddingLeft",c),V("paddingRight",u),y!==void 0){const j=$i(y);j&&(Y.margin=j)}if(T!==void 0){const j=$i(T);j&&(Y.marginLeft=j,Y.marginRight=j)}if(m!==void 0){const j=$i(m);j&&(Y.marginTop=j,Y.marginBottom=j)}if(oe("marginTop",g),oe("marginBottom",_),oe("marginLeft",p),oe("marginRight",S),P!==void 0){const j=$i(P);j&&(Y.gap=j)}if(B("borderRadius",k),C!==void 0&&(B("borderTopLeftRadius",C),B("borderTopRightRadius",C)),E!==void 0&&(B("borderBottomLeftRadius",E),B("borderBottomRightRadius",E)),R!==void 0&&(B("borderTopLeftRadius",R),B("borderBottomLeftRadius",R)),A!==void 0&&(B("borderTopRightRadius",A),B("borderBottomRightRadius",A)),B("borderTopLeftRadius",N),B("borderTopRightRadius",q),B("borderBottomLeftRadius",W),B("borderBottomRightRadius",ue),H!==void 0){const j=tq(H);j&&(Y.background=j)}return x.jsx(ne,{ref:e,className:ae($j.box,i),style:Y,...K,...X})}const Uf=Fn.forwardRef(nq);Uf.displayName="Box";const iq="_panel_eawk4_1",rq="_selected_eawk4_10",BE={panel:iq,selected:rq};function eu(t){const{children:e,className:n,selected:i,...r}=t;return x.jsx("div",{className:ae(BE.panel,i?BE.selected:null,n),...r,children:e})}const aq="_root_yccm8_1",oq="_header_yccm8_8",sq="_icon_yccm8_15",lq="_text_yccm8_26",cq="_heading_yccm8_33",uq="_description_yccm8_41",dq="_body_yccm8_47",hq="_footer_yccm8_54",eo={root:aq,header:oq,icon:sq,text:lq,heading:cq,description:uq,body:dq,footer:hq};function UE(t){const{className:e,...n}=t;return x.jsx("div",{className:ae(eo.icon,e),...n})}function zE(t){const{className:e,...n}=t;return x.jsx("h3",{className:ae(eo.heading,e),...n})}function jE(t){const{className:e,...n}=t;return x.jsx("p",{className:ae(eo.description,e),...n})}function qE(t){const{className:e,...n}=t;return x.jsx("div",{className:ae(eo.footer,e),...n})}function fq(t){const e=O.Children.toArray(t),n=[];let i,r,a,o;for(const s of e){if(O.isValidElement(s)&&s.type===UE&&i===void 0){i=s;continue}if(O.isValidElement(s)&&s.type===zE&&r===void 0){r=s;continue}if(O.isValidElement(s)&&s.type===jE&&a===void 0){a=s;continue}if(O.isValidElement(s)&&s.type===qE&&o===void 0){o=s;continue}n.push(s)}return{icon:i,heading:r,description:a,footer:o,body:n}}function pq(t){const{children:e,className:n,...i}=t,r=fq(e),a=r.icon||r.heading||r.description;return x.jsxs(eu,{className:ae(eo.root,n),...i,children:[a?x.jsxs("div",{className:eo.header,children:[r.icon,r.heading||r.description?x.jsxs("div",{className:eo.text,children:[r.heading,r.description]}):null]}):null,r.body.length?x.jsx("div",{className:eo.body,children:r.body}):null,r.footer]})}const gb=Object.assign(pq,{Icon:UE,Heading:zE,Description:jE,Footer:qE}),mq="_panel_1uwhd_1",gq="_header_1uwhd_11",vq="_title_1uwhd_19",bq="_scrollArea_1uwhd_29",yq="_scrollable_1uwhd_34",_q="_list_1uwhd_38",xq="_courseButton_1uwhd_44",Sq="_courseCard_1uwhd_55",Tq="_courseHeading_1uwhd_64",kq="_courseDescription_1uwhd_70",Cq="_empty_1uwhd_79",er={panel:mq,header:gq,title:vq,scrollArea:bq,scrollable:yq,list:_q,courseButton:xq,courseCard:Sq,courseHeading:Tq,courseDescription:kq,empty:Cq};function wq(t){const{selectionMode:e,selectedCourseIds:n,defaultSelectedCourseIds:i,onSelectedCourseIdsChange:r}=t,a=n!==void 0,[o,s]=O.useState(()=>i??[]),l=a?n:o,c=O.useCallback(d=>{a||s(d),r==null||r(d)},[a,r]),u=O.useCallback(d=>{const h=l.includes(d);if(e==="single"){c(h?[]:[d]);return}if(h){c(l.filter(f=>f!==d));return}c([...l,d])},[l,e,c]);return{selectedCourseIds:l,toggleCourseId:u}}function Eq(t){const{title:e="Courses",ariaLabel:n,className:i,courses:r,selectionMode:a="multiple",selectedCourseIds:o,onCourseToggle:s,emptyMessage:l="No courses available",testId:c,...u}=t;return x.jsxs(eu,{...u,className:ae(er.panel,i),role:"region","aria-label":n??e,"data-testid":c,children:[x.jsx("div",{className:er.header,children:x.jsx(Qn,{as:"h2",className:er.title,children:e})}),x.jsx("div",{className:er.scrollArea,children:x.jsx(Fc,{className:er.scrollable,children:r.length===0?x.jsx(Qn,{variant:"muted",className:er.empty,"data-testid":"course-panel-empty",children:l}):x.jsx("div",{className:er.list,"data-testid":"course-panel-list",children:r.map(d=>{const h=o.includes(d.id),f=d.disabled===!0;return x.jsx("button",{type:"button",className:er.courseButton,"aria-pressed":h,"aria-disabled":f,disabled:f,onClick:()=>s==null?void 0:s(d.id,d),"data-testid":`course-panel-item-${d.id}`,children:x.jsxs(gb,{selected:h,className:er.courseCard,children:[x.jsx(gb.Heading,{className:er.courseHeading,children:d.title}),d.description?x.jsx(gb.Description,{className:er.courseDescription,children:d.description}):null]})},d.id)})})})})]})}function Rq(t){const{selectionMode:e="multiple",selectedCourseIds:n,defaultSelectedCourseIds:i,onSelectedCourseIdsChange:r,onCourseToggle:a,...o}=t,{selectedCourseIds:s,toggleCourseId:l}=wq({selectionMode:e,selectedCourseIds:n,defaultSelectedCourseIds:i,onSelectedCourseIdsChange:r}),c=O.useCallback((u,d)=>{l(u),a==null||a(u,d)},[a,l]);return x.jsx(Eq,{...o,selectionMode:e,selectedCourseIds:s,onCourseToggle:c})}const Aq="_panel_1on05_1",Oq="_header_1on05_11",Mq="_divider_1on05_19",Dq="_title_1on05_25",Nq="_scrollArea_1on05_35",Lq="_scrollable_1on05_40",Pq="_list_1on05_44",Iq="_section_1on05_50",Bq="_sectionHeader_1on05_56",Uq="_sectionTitle_1on05_60",zq="_sectionTitleCompact_1on05_68",jq="_item_1on05_72",qq="_itemClickable_1on05_86",Fq="_itemCompleted_1on05_90",Hq="_itemCurrent_1on05_94",Vq="_itemFuture_1on05_98",Gq="_itemDisabled_1on05_103",Wq="_row_1on05_117",Yq="_stepHeader_1on05_124",Kq="_stepNumber_1on05_133",Xq="_stepTitle_1on05_139",Qq="_checkIcon_1on05_151",Jq="_empty_1on05_155",qe={panel:Aq,header:Oq,divider:Mq,title:Dq,scrollArea:Nq,scrollable:Lq,list:Pq,section:Iq,sectionHeader:Bq,sectionTitle:Uq,sectionTitleCompact:zq,item:jq,itemClickable:qq,itemCompleted:Fq,itemCurrent:Hq,itemFuture:Vq,itemDisabled:Gq,row:Wq,stepHeader:Yq,stepNumber:Kq,stepTitle:Xq,checkIcon:Qq,empty:Jq};function Zq(t){var f;const{steps:e,currentStep:n,hideTrailingConclusionStep:i}=t,r=e.length,a=i&&r>0&&((f=e[r-1])==null?void 0:f.title)==="Conclusion",o=a?e.slice(0,-1):e.slice(),s=o.length,l=typeof n=="number"&&isFinite(n)?n:1;if(s===0)return{visibleSteps:o,completedIndices:[],currentIndex:null,futureIndices:[]};if(a&&l===r)return{visibleSteps:o,completedIndices:Array.from({length:s},(b,y)=>y),currentIndex:null,futureIndices:[]};const c=Math.min(Math.max(l,1),s)-1,u=Array.from({length:Math.max(0,c)},(b,y)=>y),d=Math.min(c,s-1),h=Array.from({length:Math.max(0,s-(d+1))},(b,y)=>d+1+y);return{visibleSteps:o,completedIndices:u,currentIndex:d,futureIndices:h}}function $q(t){const{title:e="Course Outline",ariaLabel:n,className:i,steps:r,currentStep:a,onStepClick:o,hideTrailingConclusionStep:s=!0,emptyMessage:l="No steps available",density:c="default",testId:u,...d}=t,h=O.useCallback(_=>(_+1).toString().padStart(2,"0"),[]),{visibleSteps:f,completedIndices:b,currentIndex:y,futureIndices:T}=O.useMemo(()=>Zq({steps:r,currentStep:a,hideTrailingConclusionStep:s}),[a,s,r]),m=c==="compact"?"md":"lg",g=O.useCallback((_,p)=>{const S=f[_];if(!S)return null;const k=typeof o=="function",C=k&&S.disabled===!0,E=k&&!C,R=ae(qe.item,{[qe.itemClickable]:E,[qe.itemCompleted]:p==="completed",[qe.itemCurrent]:p==="current",[qe.itemFuture]:p==="future",[qe.itemDisabled]:C}),A=x.jsxs("div",{className:qe.row,children:[x.jsxs("div",{className:qe.stepHeader,children:[x.jsx("span",{className:qe.stepNumber,children:h(_)}),x.jsx("span",{className:qe.stepTitle,children:S.title})]}),p==="completed"?x.jsx(Hv,{size:20,className:qe.checkIcon}):null]});return k?x.jsx(Uf,{as:"button",type:"button",className:R,onClick:()=>{E&&o(_,S)},disabled:C,"aria-current":p==="current"?"step":void 0,"aria-label":`Step ${h(_)}: ${S.title}`,"data-testid":`course-outline-item-${S.id}`,padding:m,radius:"panel",gap:"sm",children:A},S.id):x.jsx(Uf,{className:R,"aria-current":p==="current"?"step":void 0,"aria-label":`Step ${h(_)}: ${S.title}`,"data-testid":`course-outline-item-${S.id}`,padding:m,radius:"panel",gap:"sm",children:A},S.id)},[h,m,o,f]);return x.jsxs(eu,{...d,className:ae(qe.panel,i),role:"region","aria-label":n??e,"data-testid":u,children:[x.jsx("div",{className:qe.header,children:x.jsx(Qn,{as:"h2",className:qe.title,children:e})}),x.jsx("div",{className:qe.divider,"aria-hidden":"true"}),x.jsx("div",{className:qe.scrollArea,children:x.jsx(Fc,{className:qe.scrollable,children:f.length===0?x.jsx(Qn,{variant:"muted",className:qe.empty,"data-testid":"course-outline-empty",children:l}):x.jsxs("div",{className:qe.list,"data-testid":"course-outline-list",children:[b.length>0?x.jsxs("div",{className:qe.section,"data-testid":"course-outline-section-completed",children:[x.jsx("div",{className:qe.sectionHeader,children:x.jsx("span",{className:ae(qe.sectionTitle,c==="compact"?qe.sectionTitleCompact:null),children:"Completed"})}),b.map(_=>g(_,"completed"))]}):null,y!==null?x.jsxs("div",{className:qe.section,"data-testid":"course-outline-section-current",children:[x.jsx("div",{className:qe.sectionHeader,children:x.jsx("span",{className:ae(qe.sectionTitle,c==="compact"?qe.sectionTitleCompact:null),children:"Current"})}),g(y,"current")]}):null,T.length>0?x.jsxs("div",{className:qe.section,"data-testid":"course-outline-section-upcoming",children:[x.jsx("div",{className:qe.sectionHeader,children:x.jsx("span",{className:ae(qe.sectionTitle,c==="compact"?qe.sectionTitleCompact:null),children:"Upcoming"})}),T.map(_=>g(_,"future"))]}):null]})})})]})}function eF(t){return x.jsx($q,{...t})}const tF="_panel_1eljv_1",nF="_messagesArea_1eljv_14",iF="_messagesList_1eljv_36",rF="_messageItem_1eljv_43",aF="_messageMetadata_1eljv_49",oF="_senderName_1eljv_56",sF="_timestamp_1eljv_60",lF="_messageBubble_1eljv_64",cF="_agentMessage_1eljv_74",uF="_agentActions_1eljv_78",dF="_copyButton_1eljv_84",hF="_copyButtonCopied_1eljv_117",fF="_empty_1eljv_121",pF="_composer_1eljv_128",mF="_composerDisabled_1eljv_148",gF="_composerInput_1eljv_152",vF="_sendButton_1eljv_166",gn={panel:tF,messagesArea:nF,messagesList:iF,messageItem:rF,messageMetadata:aF,senderName:oF,timestamp:sF,messageBubble:lF,agentMessage:cF,agentActions:uF,copyButton:dF,copyButtonCopied:hF,empty:fF,composer:pF,composerDisabled:mF,composerInput:gF,sendButton:vF};function bF(t){const e=new Date(t),n=e.getHours(),i=e.getMinutes(),r=n>=12?"PM":"AM",a=n%12||12,o=i.toString().padStart(2,"0");return`${a}:${o}${r}`}function yF(t,e){var i,r;if(typeof t.isAgent=="boolean")return t.isAgent;const n=((i=t.from)==null?void 0:i.identity)??void 0;return n&&e&&n===e?!1:((r=t.attributes)==null?void 0:r.source)==="agent-rpc"?!0:n?n==="agent-avatar"||n.startsWith("agent-"):!1}function _F(t,e){var i,r,a;const n=(i=t.from)==null?void 0:i.identity;return n&&e&&n===e?"You":((r=t.from)==null?void 0:r.name)??((a=t.attributes)==null?void 0:a.senderName)??n??"Unknown"}async function xF(t){var n;if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText)){await navigator.clipboard.writeText(t);return}if(typeof document>"u")throw new Error("Clipboard unavailable");const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.left="-9999px",e.style.top="0",e.setAttribute("readonly","true"),document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}function SF(t){const{messages:e,localIdentity:n,onSend:i,isSending:r=!1,inputPlaceholder:a="Type a message...",className:o,testId:s,...l}=t,[c,u]=O.useState(""),[d,h]=O.useState(null),f=O.useRef(null),b=O.useRef(null),y=O.useMemo(()=>{const p=e[e.length-1];return p?p.id??`${p.timestamp}-${e.length-1}`:null},[e]);O.useEffect(()=>{var p,S;(S=(p=f.current)==null?void 0:p.scrollIntoView)==null||S.call(p,{behavior:"smooth"})},[y]),O.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=null)},[]);const T=O.useCallback(async()=>{const p=c.trim();p.length!==0&&(await i(p),u(""))},[c,i]),m=O.useCallback(p=>{p.key==="Enter"&&(p.preventDefault(),T())},[T]),g=O.useCallback(async(p,S)=>{try{await xF(p.message??""),h(S),b.current&&window.clearTimeout(b.current),b.current=window.setTimeout(()=>{h(null),b.current=null},2e3)}catch(k){console.warn("[PiPChatPanel] Failed to copy message",k)}},[]),_=c.trim().length>0&&!r;return x.jsxs("div",{...l,className:ae(gn.panel,o),"data-testid":s,role:"region","aria-label":"Chat",children:[x.jsx("div",{className:gn.messagesArea,children:e.length===0?x.jsx("div",{className:gn.empty,"data-testid":"pip-chat-panel-empty",children:"No messages yet"}):x.jsxs("div",{className:gn.messagesList,"data-testid":"pip-chat-panel-list",children:[e.map((p,S)=>{const k=p.id??`${p.timestamp}-${S}`,C=yF(p,n),E=d===k;return x.jsxs("div",{className:ae(gn.messageItem,C&&gn.agentMessage),"data-testid":`pip-chat-panel-message-${k}`,children:[x.jsxs("div",{className:gn.messageMetadata,children:[x.jsx("span",{className:gn.senderName,children:_F(p,n)}),x.jsx("span",{className:gn.timestamp,children:bF(p.timestamp)})]}),x.jsx("div",{className:gn.messageBubble,children:p.message}),C?x.jsx("div",{className:gn.agentActions,children:x.jsx("button",{type:"button",className:ae(gn.copyButton,E&&gn.copyButtonCopied),onClick:()=>void g(p,k),"aria-label":E?"Copied":"Copy message",title:E?"Copied":"Copy message","data-testid":"pip-copy-agent-message","data-copied":E?"true":"false",children:x.jsx(q2,{size:14})})}):null]},k)}),x.jsx("div",{ref:f})]})}),x.jsxs("div",{className:ae(gn.composer,r&&gn.composerDisabled),children:[x.jsx("input",{type:"text",className:gn.composerInput,value:c,onChange:p=>u(p.target.value),onKeyDown:m,placeholder:a,disabled:r,"aria-label":"Message"}),x.jsx("button",{type:"button",className:gn.sendButton,onClick:()=>void T(),disabled:!_,"aria-label":"Send message",children:x.jsx(W2,{size:16})})]})]})}const TF="_panel_q8m25_1",kF="_header_q8m25_11",CF="_title_q8m25_19",wF="_titleCompact_q8m25_29",EF="_headerActions_q8m25_33",RF="_closeButton_q8m25_39",AF="_divider_q8m25_67",OF="_body_q8m25_73",MF="_messagesArea_q8m25_81",DF="_scrollable_q8m25_86",NF="_messagesList_q8m25_90",LF="_messageItem_q8m25_98",PF="_messageMetadata_q8m25_104",IF="_senderName_q8m25_112",BF="_timestamp_q8m25_116",UF="_messageBubble_q8m25_120",zF="_messageText_q8m25_124",jF="_agentMessage_q8m25_130",qF="_agentActions_q8m25_134",FF="_copyButton_q8m25_140",HF="_copyButtonCopied_q8m25_174",VF="_inputRow_q8m25_178",GF="_empty_q8m25_182",WF="_composer_q8m25_188",YF="_composerDefault_q8m25_203",KF="_composerCompact_q8m25_208",XF="_composerDisabled_q8m25_218",QF="_composerInputWrapper_q8m25_223",JF="_composerInput_q8m25_223",ZF="_sendButton_q8m25_240",$F="_sendButtonCompact_q8m25_257",Fe={panel:TF,header:kF,title:CF,titleCompact:wF,headerActions:EF,closeButton:RF,divider:AF,body:OF,messagesArea:MF,scrollable:DF,messagesList:NF,messageItem:LF,messageMetadata:PF,senderName:IF,timestamp:BF,messageBubble:UF,messageText:zF,agentMessage:jF,agentActions:qF,copyButton:FF,copyButtonCopied:HF,inputRow:VF,empty:GF,composer:WF,composerDefault:YF,composerCompact:KF,composerDisabled:XF,composerInputWrapper:QF,composerInput:JF,sendButton:ZF,sendButtonCompact:$F};function eH(t){const e=new Date(t),n=e.getHours(),i=e.getMinutes(),r=n>=12?"PM":"AM",a=n%12||12,o=i.toString().padStart(2,"0");return`${a}:${o}${r}`}function tH(t,e){var i,r;if(typeof t.isAgent=="boolean")return t.isAgent;const n=((i=t.from)==null?void 0:i.identity)??void 0;return n&&e&&n===e?!1:((r=t.attributes)==null?void 0:r.source)==="agent-rpc"?!0:n?n==="agent-avatar"||n.startsWith("agent-"):!1}function nH(t,e){var i,r,a;const n=(i=t.from)==null?void 0:i.identity;return n&&e&&n===e?"You":((r=t.from)==null?void 0:r.name)??((a=t.attributes)==null?void 0:a.senderName)??n??"Unknown"}async function iH(t){var n;if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText)){await navigator.clipboard.writeText(t);return}if(typeof document>"u")throw new Error("Clipboard unavailable");const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.left="-9999px",e.style.top="0",e.setAttribute("readonly","true"),document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}function rH(t){const{disabled:e,placeholder:n,size:i="md",autoFocus:r,onSend:a}=t,[o,s]=O.useState(""),l=O.useCallback(async()=>{const f=o.trim();f.length!==0&&(await a(f),s(""))},[a,o]),c=O.useCallback(f=>{f.key==="Enter"&&(f.preventDefault(),l())},[l]),u=i==="sm"||i==="xs",d=u?18:24,h=o.trim().length>0&&e!==!0;return x.jsxs("div",{className:ae(Fe.composer,u?Fe.composerCompact:Fe.composerDefault,e?Fe.composerDisabled:null),children:[x.jsx("div",{className:Fe.composerInputWrapper,children:x.jsx(K2,{value:o,onChange:s,onKeyDown:c,className:Fe.composerInput,placeholder:n??"Send a message ...",disabled:e,size:i,autoFocus:r,"aria-label":"Message"})}),x.jsx("button",{type:"button",className:ae(Fe.sendButton,u?Fe.sendButtonCompact:null),onClick:()=>void l(),disabled:!h,"aria-label":"Send message",children:x.jsx(W2,{size:d})})]})}function FE(t){const{title:e="Messages",ariaLabel:n,className:i,messages:r,isSending:a=!1,localIdentity:o,onSend:s,onClose:l,showCloseButton:c=!0,emptyMessage:u="No messages yet",density:d="default",testId:h,formatTimestamp:f=eH,getSenderName:b,isAgentMessage:y,copyResetDelayMs:T=2e3,showAgentCopyButton:m=!0,inputPlaceholder:g,inputAutoFocus:_,...p}=t,S=O.useRef(null),[k,C]=O.useState(null),E=O.useRef(null),R=O.useCallback(H=>b?b(H):nH(H,o),[b,o]),A=O.useCallback(H=>y?y(H,o):tH(H,o),[y,o]),N=O.useMemo(()=>{const H=r[r.length-1];return H?H.id??`${H.timestamp}-${r.length-1}`:null},[r]);O.useEffect(()=>{var H,P;(P=(H=S.current)==null?void 0:H.scrollIntoView)==null||P.call(H,{behavior:"smooth"})},[N]),O.useEffect(()=>()=>{E.current&&(window.clearTimeout(E.current),E.current=null)},[]);const q=O.useCallback(H=>{C(H),E.current&&window.clearTimeout(E.current),E.current=window.setTimeout(()=>{C(null),E.current=null},T)},[T]),W=O.useCallback(async(H,P)=>{try{await iH(H.message??""),q(P)}catch(J){console.warn("[ChatPanel] Failed to copy message",J)}},[q]),ue=d==="compact"?"sm":"md";return x.jsxs(eu,{...p,className:ae(Fe.panel,i),role:"region","aria-label":n??e,"data-testid":h,children:[x.jsxs("div",{className:Fe.header,children:[x.jsx(Qn,{as:"h2",className:ae(Fe.title,d==="compact"?Fe.titleCompact:null),children:e}),l&&c?x.jsx("div",{className:Fe.headerActions,children:x.jsx("button",{type:"button",className:Fe.closeButton,onClick:l,"aria-label":`Close ${e}`,children:x.jsx(Gv,{size:d==="compact"?18:20})})}):null]}),x.jsx("div",{className:Fe.divider,"aria-hidden":"true"}),x.jsxs("div",{className:Fe.body,children:[x.jsx("div",{className:Fe.messagesArea,children:x.jsx(Fc,{className:Fe.scrollable,children:r.length===0?x.jsx(Qn,{variant:"muted",className:Fe.empty,"data-testid":"chat-panel-empty",children:u}):x.jsxs("div",{className:Fe.messagesList,"data-testid":"chat-panel-list",children:[r.map((H,P)=>{const J=H.id??`${H.timestamp}-${P}`,X=A(H),ne=k===J;return x.jsxs("div",{className:ae(Fe.messageItem,X?Fe.agentMessage:null),"data-testid":`chat-panel-message-${J}`,children:[x.jsxs("div",{className:Fe.messageMetadata,children:[x.jsx("span",{className:Fe.senderName,children:R(H)}),x.jsx("span",{className:Fe.timestamp,children:f(H.timestamp)})]}),x.jsx(Uf,{className:Fe.messageBubble,padding:"md",radius:"panel",background:X?"surfaceMuted":"surface",children:x.jsx("div",{className:Fe.messageText,children:H.message})}),X&&m?x.jsx("div",{className:Fe.agentActions,children:x.jsx("button",{type:"button",className:ae(Fe.copyButton,ne?Fe.copyButtonCopied:null),onClick:()=>void W(H,J),"aria-label":ne?"Copied":"Copy agent message",title:ne?"Copied":"Copy agent message","data-testid":"copy-agent-message","data-copied":ne?"true":"false",children:x.jsx(q2,{size:18})})}):null]},J)}),x.jsx("div",{ref:S})]})})}),x.jsx("div",{className:Fe.inputRow,children:x.jsx(rH,{onSend:s,disabled:a,placeholder:g,size:ue,autoFocus:_})})]})]})}O.createContext("vertical");const aH="_container_1a1i6_1",oH="_video_1a1i6_7",sH="_chip_1a1i6_16",lH="_logo_1a1i6_34",zf={container:aH,video:oH,chip:sH,logo:lH},cH="https://obi-static.s3.ap-southeast-2.amazonaws.com/videos/greeting.mp4";function uH(t){const{agentName:e="Obi",className:n,...i}=t,r=O.useRef(null),a=()=>{var o;try{(o=r.current)==null||o.pause()}catch{}};return x.jsxs("div",{className:ae(zf.container,n),...i,children:[x.jsx("video",{ref:r,className:zf.video,src:cH,autoPlay:!0,muted:!0,playsInline:!0,onEnded:a}),x.jsxs("div",{className:zf.chip,children:[x.jsx(iB,{size:14,className:zf.logo}),x.jsx("span",{children:e})]})]})}typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const HE=50,rl="?",VE=/\(error: (.*)\)/,GE=/captureMessage|captureException/;function dH(...t){const e=t.sort((n,i)=>n[0]-i[0]).map(n=>n[1]);return(n,i=0,r=0)=>{const a=[],o=n.split(`
|
|
121
|
-
`);for(let s=i;s<o.length;s++){const l=o[s];if(l.length>1024)continue;const c=VE.test(l)?l.replace(VE,"$1"):l;if(!c.match(/\S*Error: /)){for(const u of e){const d=u(c);if(d){a.push(d);break}}if(a.length>=HE+r)break}}return hH(a.slice(r))}}function hH(t){if(!t.length)return[];const e=Array.from(t);return/sentryWrapped/.test(jf(e).function||"")&&e.pop(),e.reverse(),GE.test(jf(e).function||"")&&(e.pop(),GE.test(jf(e).function||"")&&e.pop()),e.slice(0,HE).map(n=>({...n,filename:n.filename||jf(e).filename,function:n.function||rl}))}function jf(t){return t[t.length-1]||{}}typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const fH=30,pH=50;function vb(t,e,n,i){const r={filename:t,function:e==="<anonymous>"?rl:e,in_app:!0};return n!==void 0&&(r.lineno=n),i!==void 0&&(r.colno=i),r}const mH=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,gH=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,vH=/\((\S*)(?::(\d+))(?::(\d+))\)/,bH=t=>{const e=mH.exec(t);if(e){const[,i,r,a]=e;return vb(i,rl,+r,+a)}const n=gH.exec(t);if(n){if(n[2]&&n[2].indexOf("eval")===0){const a=vH.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}const[i,r]=WE(n[1]||rl,n[2]);return vb(r,i,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}},yH=[fH,bH],_H=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,xH=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;dH(...[yH,[pH,t=>{const e=_H.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const r=xH.exec(e[3]);r&&(e[1]=e[1]||"eval",e[3]=r[1],e[4]=r[2],e[5]="")}let n=e[3],i=e[1]||rl;return[i,n]=WE(i,n),vb(n,i,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}}]]);const WE=(t,e)=>{const n=t.indexOf("safari-extension")!==-1,i=t.indexOf("safari-web-extension")!==-1;return n||i?[t.indexOf("@")!==-1?t.split("@")[0]:rl,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]};typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const to={shell:"_shell_1ci0c_1",layout:"_layout_1ci0c_11",leftPanel:"_leftPanel_1ci0c_19",rightPanel:"_rightPanel_1ci0c_28",videoFrame:"_videoFrame_1ci0c_36",captions:"_captions_1ci0c_46",controls:"_controls_1ci0c_52",coursePanel:"_coursePanel_1ci0c_64"};function YE(...t){return t.filter(Boolean).join(" ")}function SH(t){const{captionsText:e,avatarAudioPower:n=0,avatarImageSrc:i,avatarAriaLabel:r,avatarStatus:a,controlBarProps:o,courses:s,coursePanelProps:l,rightPanel:c,className:u}=t;return x.jsx("div",{className:YE(to.shell,u),"data-testid":"course-dialog-content",children:x.jsxs("div",{className:to.layout,children:[x.jsxs("div",{className:to.leftPanel,children:[x.jsx("div",{className:to.videoFrame,children:x.jsx(Jj,{className:to.captions,text:e,children:x.jsx(LE,{audioPower:n,size:"lg",background:"flat",imageSrc:i,ariaLabel:r??"Agent avatar placeholder",status:a})})}),x.jsx("div",{className:to.controls,children:x.jsx(jz,{...o})})]}),x.jsx("div",{className:to.rightPanel,"data-testid":"course-dialog-right-panel",children:c??x.jsx(Rq,{...l,courses:s,className:YE(to.coursePanel,l==null?void 0:l.className)})})]})})}function KE(t){const{open:e,onClose:n,dialogProps:i,...r}=t;return x.jsx(nE,{open:e,onClose:n,variant:"ghost",...i,children:x.jsx(SH,{...r})})}const TH=80,kH=500,CH=1e3;function wH(t,e){const{delayMs:n=0}=e??{},r=t.filter(y=>{var m;const T=(m=y.participantInfo)==null?void 0:m.identity;return(T==null?void 0:T.startsWith("agent-"))??!1}).map(y=>y.text??"").join(" ").trim(),[a,o]=O.useState(""),[s,l]=O.useState(!1),c=O.useRef(""),u=O.useRef(null),d=O.useRef(null),h=O.useRef(null),f=y=>{h.current&&(clearTimeout(h.current),h.current=null),n>0?h.current=setTimeout(()=>{o(y)},n):o(y)},b=(y,T)=>y.startsWith(T)?y.slice(T.length).trim():y.trim();return O.useEffect(()=>{if(d.current&&(clearTimeout(d.current),d.current=null),s)return;const y=b(r,c.current);f(y),y.length>TH?(l(!0),u.current=setTimeout(()=>{l(!1),c.current=r},kH+n)):y.length>0&&(d.current=setTimeout(()=>{c.current=r,f("")},CH+n))},[r,s,n]),O.useEffect(()=>()=>{u.current&&clearTimeout(u.current),d.current&&clearTimeout(d.current),h.current&&clearTimeout(h.current)},[]),{caption:a,hasCaption:a.length>0}}const Tr={layout:"_layout_so9uy_1",left:"_left_so9uy_10",copy:"_copy_so9uy_17",description:"_description_so9uy_25",descriptionScroller:"_descriptionScroller_so9uy_31",cta:"_cta_so9uy_36",disclaimer:"_disclaimer_so9uy_43",right:"_right_so9uy_47",mediaPanel:"_mediaPanel_so9uy_56",agentStill:"_agentStill_so9uy_63"};function EH(t){const{open:e,onClose:n,onStart:i,agentName:r,agentSubtitle:a,description:o,startLabel:s="Start Now",disclaimer:l="Sessions are securely recorded for quality improvement purposes.",showCloseButton:c=!1,isStarting:u=!1}=t;return x.jsx(nE,{open:e,onClose:n,size:"large",showCloseButton:c,children:x.jsxs("div",{className:Tr.layout,children:[x.jsxs("div",{className:Tr.left,children:[x.jsxs("div",{className:Tr.copy,children:[x.jsx(Qn,{variant:"heading",children:r}),x.jsx(Qn,{variant:"subheading",children:a}),x.jsx(Qn,{variant:"muted",as:"div",className:Tr.description,children:x.jsx(Fc,{className:Tr.descriptionScroller,children:x.jsx(az,{content:o})})})]}),x.jsxs("div",{className:Tr.cta,children:[x.jsx(nl,{type:"button",size:"lg",fullWidth:!0,onClick:i,isLoading:u,children:s}),x.jsx(Qn,{variant:"subscript",as:"p",className:Tr.disclaimer,children:l})]})]}),x.jsx("div",{className:Tr.right,children:x.jsx(eu,{className:Tr.mediaPanel,children:x.jsx(uH,{agentName:r,className:Tr.agentStill})})})]})})}function RH(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*").replace(/\?/g,"[^/]");return new RegExp(`^${e}$`,"i")}function AH(t,e){if(!e||e.length===0)return!1;const n=t.replace(/^https?:\/\//,"").replace(/\/$/,"");return e.some(i=>{try{const r=RH(i);return r.test(n)||r.test(t)}catch(r){return console.warn(`Invalid URL pattern: ${i}`,r),!1}})}function qf(t){if(!t||t.length===0)return!1;const e=window.location.origin+window.location.pathname;return AH(e,t)}function OH(t){var j,le,ge,ui,kr,Cr,rn,Jn,It,Di,di,an,ie,He,Xe,Vt,no,Ni,vn;const{sdk:e,shadowHost:n}=t,[i,r]=O.useState("hidden"),[a,o]=O.useState(()=>{var re;return((re=e.client)==null?void 0:re.session)||null}),[s,l]=O.useState(!1),[c,u]=O.useState(!1),[d,h]=O.useState(!1),[f,b]=O.useState(null),[y,T]=O.useState([]),[m,g]=O.useState(null),[_,p]=O.useState(0),[S,k]=O.useState(!1),[C,E]=O.useState(0),[R,A]=O.useState(null),[N,q]=O.useState([]),[W,ue]=O.useState(!0),H=MH((le=(j=e.client)==null?void 0:j.product)==null?void 0:le.widget_url_blacklist),P=DH(a),{audioDevices:J}=NH(),{caption:X}=wH(N,{delayMs:0}),ne=W?X:"",Y=(()=>{if(a!=null&&a.speakingState){if(a.speakingState==="thinking")return"thinking";if(a.speakingState==="busy")return"searching"}})(),Z=()=>p(re=>re+1),K=O.useRef(null),V=O.useRef(null),oe=O.useRef(!1),B=re=>{if(!re||K.current===re)return;V.current&&(V.current(),V.current=null);const ce=()=>Z(),Ie=$e=>{b($e),r(dt=>dt==="course-selection"?(k(!1),"pip"):dt)},Gt=$e=>{T($e.courses),r("course-selection"),b(null),g(null)},Bt=($e,dt)=>{},Wt=$e=>{A($e),E(Date.now())};re.on("stateChanged",ce),re.on("speakingStateChanged",ce),re.on("paused",ce),re.on("unpaused",ce),re.on("chatMessagesChanged",ce),re.on("courseProgress",Ie),re.on("courseSelection",Gt),re.on("transcript",Bt),re.on("screenCaptured",Wt),re.on("captions",q),K.current=re,V.current=()=>{re.off("stateChanged",ce),re.off("speakingStateChanged",ce),re.off("paused",ce),re.off("unpaused",ce),re.off("chatMessagesChanged",ce),re.off("courseProgress",Ie),re.off("courseSelection",Gt),re.off("transcript",Bt),re.off("screenCaptured",Wt),re.off("captions",q)}},he=re=>{var Ie;return re?((Ie=re.roomId)==null?void 0:Ie.startsWith("obs-"))&&!f?"course-selection":"pip":"hidden"};if(O.useEffect(()=>{const re=Ie=>{var Gt,Bt,Wt;Ie?(Gt=e.client)!=null&&Gt.session?r(he(((Bt=e.client)==null?void 0:Bt.session)??null)):r("start-session"):(Wt=e.client)!=null&&Wt.session||r("hidden")},ce=()=>Z();return e.on("showMenu",re),e.on("configUpdated",ce),e.client&&(e.client.session&&(o(e.client.session),B(e.client.session),r(he(e.client.session))),e.client.on("sessionStarted",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie)),dg().track("session-started",{planId:Ie.planId})}),e.client.on("sessionResumed",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie))}),e.client.on("sessionStopped",()=>{V.current&&(V.current(),V.current=null),o(null),K.current=null,l(!1),u(!1),h(!1),oe.current||r("hidden")}),e.client.on("stateChanged",Z)),()=>{e.off("showMenu",re),e.off("configUpdated",ce),V.current&&V.current()}},[e]),O.useLayoutEffect(()=>{var re,ce;(ce=(re=e.client)==null?void 0:re.product)!=null&&ce.primary_color&&n.style.setProperty("--obi-color-primary",e.client.product.primary_color)},[(ui=(ge=e.client)==null?void 0:ge.product)==null?void 0:ui.primary_color,n]),H||i==="hidden")return null;if(i==="start-session"){const re=(kr=e.client)==null?void 0:kr.product,ce=(Cr=e.client)==null?void 0:Cr.selectedPlan,Ie=(re==null?void 0:re.agent_name)||"Obi",Gt="AI Assistant",Bt=(ce==null?void 0:ce.description)||(re==null?void 0:re.description)||"I'm here to help you.";return x.jsx(EH,{open:!0,onClose:()=>{l(!1),r("hidden")},onStart:()=>{l(!0),e.startSession({withMicrophone:!0})},agentName:Ie,agentSubtitle:Gt,description:Bt,showCloseButton:!1,startLabel:"Start Session",isStarting:s})}if(i==="course-selection"){const re=(rn=a==null?void 0:a.roomId)==null?void 0:rn.startsWith("obs-"),ce=((Jn=e.client)==null?void 0:Jn.plans)||[],Ie=re&&y.length>0,Gt=Ie?y.slice().sort((fe,ke)=>fe.order!==void 0&&ke.order!==void 0?fe.order-ke.order:fe.order!==void 0?-1:ke.order!==void 0?1:fe.name.localeCompare(ke.name)).map(fe=>({id:fe.uuid,title:fe.name,description:fe.description||fe.overview||"",status:fe.completed?"completed":"available",duration:typeof fe.duration=="number"?`${fe.duration} min`:fe.duration})):ce.map(fe=>{var ke,it;return{id:fe.uuid,title:fe.name,description:fe.description,status:(it=(ke=e.client)==null?void 0:ke.planIsCompleted)!=null&&it[ce.indexOf(fe)]?"completed":"available",duration:fe.estimated_duration?`${fe.estimated_duration} min`:void 0}}),Bt=(a==null?void 0:a.languageCodes)||[],Wt=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,$e={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((It=navigator.mediaDevices)!=null&&It.getDisplayMedia),onMicDeviceSelect:async fe=>{e.client&&(e.client.preferredMicrophoneDeviceId=fe),a&&fe&&await a.switchMicrophoneDevice(fe),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:Bt,selectedLanguage:Wt,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:fe=>{a==null||a.setLanguage(fe)},isLanguageSelectorEnabled:!0},dt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((Di=a==null?void 0:a.room)==null?void 0:Di.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async fe=>{var ke,it,mt,Ut;a&&(a.appendChatMessage({timestamp:Date.now(),message:fe,from:{identity:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.identity)??null,name:((Ut=(mt=a.room)==null?void 0:mt.localParticipant)==null?void 0:Ut.name)??null},isAgent:!1}),await a.say(fe))},onClose:()=>h(!1)}):void 0;return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:Gt,controlBarProps:$e,coursePanelProps:{selectedCourseIds:m?[m]:void 0,onCourseToggle:async fe=>{var ke,it,mt;if(Ie){const Ut=y.find(Zn=>Zn.uuid===fe);if(Ut){g(fe);try{await((ke=a==null?void 0:a.say)==null?void 0:ke.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),g(null)}}}else{const Ut=ce.find(Zn=>Zn.uuid===fe);if(Ut){(it=e.client)==null||it.selectPlan(Ut),r("pip");try{await((mt=a==null?void 0:a.say)==null?void 0:mt.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),r("course-selection")}}}}},rightPanel:dt,avatarImageSrc:((an=(di=e.client)==null?void 0:di.product)==null?void 0:an.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="course-outline"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((ie=navigator.mediaDevices)!=null&&ie.getDisplayMedia),onMicDeviceSelect:async $e=>{e.client&&(e.client.preferredMicrophoneDeviceId=$e),a&&$e&&await a.switchMicrophoneDevice($e),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:$e=>{a==null||a.setLanguage($e)},isLanguageSelectorEnabled:!0},Gt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((He=a==null?void 0:a.room)==null?void 0:He.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async $e=>{var dt,fe,ke,it;a&&(a.appendChatMessage({timestamp:Date.now(),message:$e,from:{identity:((fe=(dt=a.room)==null?void 0:dt.localParticipant)==null?void 0:fe.identity)??null,name:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.name)??null},isAgent:!1}),await a.say($e))},onClose:()=>h(!1)}):void 0,Bt=(f==null?void 0:f.stepNames.map(($e,dt)=>({id:`step-${dt+1}`,title:$e})))??[],Wt=x.jsx(eF,{steps:Bt,currentStep:(f==null?void 0:f.currentStep)??null,onStepClick:($e,dt)=>{a==null||a.say(`Can we jump to the section about ${dt.title}?`)}});return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:[],controlBarProps:Ie,rightPanel:Gt??Wt,avatarImageSrc:((Vt=(Xe=e.client)==null?void 0:Xe.product)==null?void 0:Vt.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="pip"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie=352,Gt=360,Bt=16,Wt={x:window.innerWidth-Ie-Bt,y:window.innerHeight-Gt-Bt},$e={isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isChatOpen:d,isScreenShareActive:!1,onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>h(mt=>!mt),onScreenShareToggle:async()=>{await(a==null?void 0:a.shareScreen())},onLeave:()=>{a==null||a.stop()},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:mt=>{a==null||a.setLanguage(mt)},isLanguageSelectorEnabled:!0},dt=(f==null?void 0:f.stepNames)??[],fe=dt[f?f.currentStep-1:-1]??"",ke=dt[f?f.currentStep:-1]??"",it=d?x.jsx(SF,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((no=a==null?void 0:a.room)==null?void 0:no.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async mt=>{var Ut,Zn,Li,Pi;a&&(a.appendChatMessage({timestamp:Date.now(),message:mt,from:{identity:((Zn=(Ut=a.room)==null?void 0:Ut.localParticipant)==null?void 0:Zn.identity)??null,name:((Pi=(Li=a.room)==null?void 0:Li.localParticipant)==null?void 0:Pi.name)??null},isAgent:!1}),await a.say(mt))},testId:"pip-chat-panel"}):void 0;return x.jsx(Wj,{initialPosition:Wt,onExit:()=>{r("course-outline")},controlBarProps:$e,isCourseOutlineSelected:S&&!!f,onCourseOutlineToggle:f?()=>{k(mt=>!mt)}:void 0,isCaptionsEnabled:W,onCaptionsToggle:()=>ue(mt=>!mt),courseOutline:f?{currentStep:fe,nextStep:ke}:void 0,messagesPanel:it,avatarFallbackProps:{audioPower:P,imageSrc:((vn=(Ni=e.client)==null?void 0:Ni.product)==null?void 0:vn.logo_url)??void 0,status:Y,captionsText:ne},screenshotUrl:R,cameraShotTrigger:C})}return null}function MH(t){const[e,n]=O.useState(()=>qf(t));return O.useEffect(()=>{n(qf(t))},[t]),O.useEffect(()=>{const i=()=>{n(qf(t))};return window.addEventListener("popstate",i),window.addEventListener("hashchange",i),()=>{window.removeEventListener("popstate",i),window.removeEventListener("hashchange",i)}},[t]),e}function DH(t){const[e,n]=O.useState(0),i=O.useRef(null),r=O.useRef(0),a=O.useRef(0);return O.useEffect(()=>{if(!t){n(0),r.current=0,a.current=0;return}const o=()=>{const s=t.audioSpectrum();let l=0;if(s&&s.length>0){let b=0;for(let y=0;y<s.length;y++)b+=s[y];l=Math.min(1,Math.max(0,b/s.length))}const c=r.current,d=l>=c?.7:.15,h=c*d+l*(1-d);r.current=h;const f=h<.05?0:Math.min(1,h);Math.abs(f-a.current)>.01&&(a.current=f,n(f)),i.current=requestAnimationFrame(o)};return i.current=requestAnimationFrame(o),()=>{i.current&&cancelAnimationFrame(i.current)}},[t]),e}function NH(){const[t,e]=O.useState({audioDevices:[]});return O.useEffect(()=>{var i;if(typeof navigator>"u"||!((i=navigator.mediaDevices)!=null&&i.enumerateDevices))return;const n=()=>{navigator.mediaDevices.enumerateDevices().then(r=>{e({audioDevices:r.filter(a=>a.kind==="audioinput")})})};return n(),navigator.mediaDevices.addEventListener("devicechange",n),()=>navigator.mediaDevices.removeEventListener("devicechange",n)},[]),t}function LH(t){if(document.querySelector("#obi-host")||document.querySelector("obi-widget"))return;PH();const e=document.createElement("div");e.id="obi-host",e.style.position="fixed",e.style.zIndex="9999",document.body.appendChild(e);const n=e.attachShadow({mode:"open"}),i=document.createElement("div");i.id="obi-container",n.appendChild(i);const r=new CSSStyleSheet;r.replaceSync(J9);const a=new CSSStyleSheet;a.replaceSync(X9);const o=new CSSStyleSheet;o.replaceSync(K9);const s=new CSSStyleSheet;s.replaceSync(Q9),n.adoptedStyleSheets=[r,a,o,s],Y9.createRoot(i).render(x.jsx(OH,{sdk:t,shadowHost:e})),console.log("[obi-sdk] widget mounted")}function PH(){XE("https://fonts.cdnfonts.com/css/satoshi"),XE("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap")}function XE(t){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}const QE="49206C6F7665204F6269_session",JE="obi-url-params";class IH extends Gf{constructor(e){super(),this.client=null,this.isActive=!1,this.primaryColour="#9500FF",this.passivePlanUuid=null,this.commandLog=[],this.commandQueue=[],this._resumed=!1,this.dispatchCommand=(n,i)=>{var r,a,o,s,l;switch(this.commandLog.push({commandType:n,args:i}),n){case"update":this.updateConfig(i);break;case"startSession":{if(i!=null&&i.planUuid){const c=(((r=this.client)==null?void 0:r.plans)||[]).find(u=>u.uuid===i.planUuid)||null;if(!c){console.warn("[obi] startSession command requires a valid planUuid",i);return}(o=(a=this.client)==null?void 0:a.selectPlan)==null||o.call(a,c)}this.updateActive(!0);break}case"stopSession":(l=(s=this.client)==null?void 0:s.stopSession)==null||l.call(s);break;case"say":this.say(i);break;default:console.warn("[obi] unknown command",{commandType:n,args:i})}},e&&this.createClient(e),this.parsePassiveParams()}async createClient(e){if(this.client){this.client.appToken!==e&&console.warn("[obi] client already exists with different app token");return}let n=null;const i=this.load();if(i)try{n=Yd.deserialise(i,e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)}),n?this._resumed=!0:localStorage.removeItem("obi-client")}catch(r){console.error("[obi] error loading cached client",r),localStorage.removeItem("obi-client")}n||(n=new Yd(e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)})),this.client=n,this.client.on("stateChanged",r=>{var a,o,s,l,c,u,d,h,f,b;r==="ready"&&this.updateConfig({isActive:((a=window==null?void 0:window.obiWidgetConfig)==null?void 0:a.isActive)??((o=this.client)==null?void 0:o.showWidget),primaryColour:((l=(s=this.client)==null?void 0:s.product)==null?void 0:l.primary_color)||"#9500FF",widgetDisplay:((c=window==null?void 0:window.obiWidgetConfig)==null?void 0:c.widgetDisplay)||((d=(u=this.client)==null?void 0:u.product)==null?void 0:d.widget_display)||"regular",completedWidgetDisplay:((h=window==null?void 0:window.obiWidgetConfig)==null?void 0:h.completedWidgetDisplay)||((b=(f=this.client)==null?void 0:f.product)==null?void 0:b.completed_widget_display)||"regular"})}),this.client.on("sessionStarted",()=>{this.save(),this.passivePlanUuid=null}),this.client.on("sessionStopped",()=>{localStorage.removeItem("obi-client"),this.passivePlanUuid=null}),this.client.on("sessionShutdown",()=>{localStorage.removeItem("obi-client")}),this.client.on("trackEvent",(r,a)=>{}),this.client.session&&(this.client.session.isPaused,this.client.resumeSession(r=>{r.on("stateChanged",a=>{a!=="disconnecting"&&a!=="disconnected"&&a!=="error"&&a!=="connecting"&&this.save()}),r.on("paused",()=>{this.save()}),r.on("unpaused",()=>{this.save()})}))}_maybeActOnServerEngagement(){var s;const e=this.client;if(!e||e.state!=="ready")return;const n=e.product,i=(s=e.engagement)==null?void 0:s.style;if(!i||n&&qf(n.widget_url_blacklist||[])||!e.showWidget)return;const r=e.plans||[],a=e.planIsCompleted||[],o=r.length>0&&a.filter(Boolean).length===r.length;if(!(r.length===0||o)){if(i==="modal"){const l=a.findIndex(u=>!u),c=l>=0?r[l]:null;c&&e.selectPlan(c)}else i==="popover"&&setTimeout(()=>{this.showMessage("Don't forget to complete your onboarding",{autoCloseMs:1e4})},1e3);try{dg().track("engagement-prompt-shown",{style:i})}catch{}}}async initialise(e={}){var n;this.commandQueue=e.queuedCommands||[],this._resumed?(this._resumed=!1,this.dispatchCommandQueue()):this.client?this.client.initialise({planUuid:this.passivePlanUuid||void 0,identity:((n=window==null?void 0:window.obiWidgetConfig)==null?void 0:n.user)||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}this.dispatchCommandQueue()}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}):this.dispatchCommandQueue()}async updateConfig(e){await this.updateAppToken(e.apiKey),this.updateActive(e.isActive),this.updatePrimaryColour(e.primaryColour),this.updateWidgetDisplay(e.widgetDisplay),this.updateCompletedWidgetDisplay(e.completedWidgetDisplay),this.updateWidgetPosition(e.widgetPosition),await this.updateIdentity(e.user),this.updateShowMenu(e.showMenu),this.emit("configUpdated")}async updateAppToken(e){var n;e===void 0||e==((n=this.client)==null?void 0:n.appToken)||(this.passivePlanUuid,await this.createClient(e),this.client&&await this.client.initialise({planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}))}updateActive(e){e===void 0||e==this.isActive||(this.isActive=e)}updatePrimaryColour(e){e===void 0||e==this.primaryColour||(this.primaryColour=e)}updateWidgetDisplay(e){e===void 0||e==this.widgetDisplay||(this.widgetDisplay=e)}updateCompletedWidgetDisplay(e){e===void 0||e==this.completedWidgetDisplay||(this.completedWidgetDisplay=e)}updateWidgetPosition(e){e===void 0||e==this.widgetPosition||(this.widgetPosition=e)}async updateIdentity(e){var i,r;if(e===void 0||e==((i=this.client)==null?void 0:i.identity))return;(r=this.client)==null||r.identity;let n=e?{...e,extra:{...e,...(e==null?void 0:e.extra)||{}}}:void 0;await this.client.initialise({identity:n,planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(a=>{console.error("[obi] error initialising client",a),this.emit("error",a)}),e!=null&&e.email&&dg().identify((e==null?void 0:e.email)||"",n)}updateShowMenu(e){e!==void 0&&this.emit("showMenu",e)}async say(e){var n,i,r;await((r=(i=(n=this.client)==null?void 0:n.session)==null?void 0:i.say)==null?void 0:r.call(i,e))}async startSession(e){await this.client.startSession(this.client.selectedPlanUuid||null,n=>{n.on("stateChanged",i=>{i!=="disconnecting"&&i!=="disconnected"&&i!=="error"&&i!=="connecting"&&this.save()}),n.on("paused",()=>{this.save()}),n.on("unpaused",()=>{this.save()})},e)}dispatchCommandQueue(){const e=this.commandQueue;this.commandQueue=[],e.forEach(n=>{try{this.dispatchCommand(n[0],n[1]||[])}catch(i){console.error("[obi] error dispatching command",i)}})}parsePassiveParams(){if(this.passivePlanUuid){this.passivePlanUuid;return}let e={};e=JSON.parse(localStorage.getItem(JE)||"{}"),Object.keys(e).length===0&&new URLSearchParams(window.location.search).forEach((a,o)=>{e[o]=a});const n=e[QE];if(!n)return null;const i=new URL(window.location.href);i.searchParams.delete(QE),window.history.replaceState({},"",i.toString()),i.toString(),localStorage.removeItem(JE),this.passivePlanUuid=n}mountWidget(){LH(this)}showMessage(e,n){try{this.emit("showMessage",{text:e,autoCloseMs:n==null?void 0:n.autoCloseMs})}catch{}}async captureScreen(){try{await wO(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.text_segmentation)),await _3(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.css_line_breaks))}catch(e){throw console.error("[obi] error initialising unicode trie",e),e}try{return(await rO(document.documentElement,{useCORS:!0,allowTaint:!0,foreignObjectRendering:!0})).toDataURL("image/png")}catch(e){throw console.error("[obi] error capturing screen",e),e}}save(){var n;const e=((n=this.client)==null?void 0:n.serialise())||"";localStorage.setItem("obi-client",e)}load(){return localStorage.getItem("obi-client")}}async function ZE(t,e){let n;try{n=window}catch{console.warn("[obi] no window object found"),n={}}return BH({appToken:t,window:n,init:e})}async function BH({appToken:t,window:e,init:n}){var a,o;if(e.obi){console.warn("[obi] obi object already found on window, skipping");return}n&&n(),t||(t=(a=e==null?void 0:e.obiWidgetConfig)==null?void 0:a.apiKey);let i;try{i=((o=e.ObiSDK)==null?void 0:o.q)||[]}catch{i=[]}const r=new IH(t);return e.ObiSDK=r.dispatchCommand,await r.initialise({queuedCommands:i}),e.obi=r,r.mountWidget(),r}function $E(){}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{ZE(void 0,$E)}):ZE(void 0,$E)})();
|
|
121
|
+
`);for(let s=i;s<o.length;s++){const l=o[s];if(l.length>1024)continue;const c=VE.test(l)?l.replace(VE,"$1"):l;if(!c.match(/\S*Error: /)){for(const u of e){const d=u(c);if(d){a.push(d);break}}if(a.length>=HE+r)break}}return hH(a.slice(r))}}function hH(t){if(!t.length)return[];const e=Array.from(t);return/sentryWrapped/.test(jf(e).function||"")&&e.pop(),e.reverse(),GE.test(jf(e).function||"")&&(e.pop(),GE.test(jf(e).function||"")&&e.pop()),e.slice(0,HE).map(n=>({...n,filename:n.filename||jf(e).filename,function:n.function||rl}))}function jf(t){return t[t.length-1]||{}}typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const fH=30,pH=50;function vb(t,e,n,i){const r={filename:t,function:e==="<anonymous>"?rl:e,in_app:!0};return n!==void 0&&(r.lineno=n),i!==void 0&&(r.colno=i),r}const mH=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,gH=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,vH=/\((\S*)(?::(\d+))(?::(\d+))\)/,bH=t=>{const e=mH.exec(t);if(e){const[,i,r,a]=e;return vb(i,rl,+r,+a)}const n=gH.exec(t);if(n){if(n[2]&&n[2].indexOf("eval")===0){const a=vH.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}const[i,r]=WE(n[1]||rl,n[2]);return vb(r,i,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}},yH=[fH,bH],_H=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,xH=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;dH(...[yH,[pH,t=>{const e=_H.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const r=xH.exec(e[3]);r&&(e[1]=e[1]||"eval",e[3]=r[1],e[4]=r[2],e[5]="")}let n=e[3],i=e[1]||rl;return[i,n]=WE(i,n),vb(n,i,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}}]]);const WE=(t,e)=>{const n=t.indexOf("safari-extension")!==-1,i=t.indexOf("safari-web-extension")!==-1;return n||i?[t.indexOf("@")!==-1?t.split("@")[0]:rl,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]};typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;const to={shell:"_shell_1ci0c_1",layout:"_layout_1ci0c_11",leftPanel:"_leftPanel_1ci0c_19",rightPanel:"_rightPanel_1ci0c_28",videoFrame:"_videoFrame_1ci0c_36",captions:"_captions_1ci0c_46",controls:"_controls_1ci0c_52",coursePanel:"_coursePanel_1ci0c_64"};function YE(...t){return t.filter(Boolean).join(" ")}function SH(t){const{captionsText:e,avatarAudioPower:n=0,avatarImageSrc:i,avatarAriaLabel:r,avatarStatus:a,controlBarProps:o,courses:s,coursePanelProps:l,rightPanel:c,className:u}=t;return x.jsx("div",{className:YE(to.shell,u),"data-testid":"course-dialog-content",children:x.jsxs("div",{className:to.layout,children:[x.jsxs("div",{className:to.leftPanel,children:[x.jsx("div",{className:to.videoFrame,children:x.jsx(Jj,{className:to.captions,text:e,children:x.jsx(LE,{audioPower:n,size:"lg",background:"flat",imageSrc:i,ariaLabel:r??"Agent avatar placeholder",status:a})})}),x.jsx("div",{className:to.controls,children:x.jsx(jz,{...o})})]}),x.jsx("div",{className:to.rightPanel,"data-testid":"course-dialog-right-panel",children:c??x.jsx(Rq,{...l,courses:s,className:YE(to.coursePanel,l==null?void 0:l.className)})})]})})}function KE(t){const{open:e,onClose:n,dialogProps:i,...r}=t;return x.jsx(nE,{open:e,onClose:n,variant:"ghost",...i,children:x.jsx(SH,{...r})})}const TH=80,kH=500,CH=1e3;function wH(t,e){const{delayMs:n=0}=e??{},r=t.filter(y=>{var m;const T=(m=y.participantInfo)==null?void 0:m.identity;return(T==null?void 0:T.startsWith("agent-"))??!1}).map(y=>y.text??"").join(" ").trim(),[a,o]=O.useState(""),[s,l]=O.useState(!1),c=O.useRef(""),u=O.useRef(null),d=O.useRef(null),h=O.useRef(null),f=y=>{h.current&&(clearTimeout(h.current),h.current=null),n>0?h.current=setTimeout(()=>{o(y)},n):o(y)},b=(y,T)=>y.startsWith(T)?y.slice(T.length).trim():y.trim();return O.useEffect(()=>{if(d.current&&(clearTimeout(d.current),d.current=null),s)return;const y=b(r,c.current);f(y),y.length>TH?(l(!0),u.current=setTimeout(()=>{l(!1),c.current=r},kH+n)):y.length>0&&(d.current=setTimeout(()=>{c.current=r,f("")},CH+n))},[r,s,n]),O.useEffect(()=>()=>{u.current&&clearTimeout(u.current),d.current&&clearTimeout(d.current),h.current&&clearTimeout(h.current)},[]),{caption:a,hasCaption:a.length>0}}const Tr={layout:"_layout_so9uy_1",left:"_left_so9uy_10",copy:"_copy_so9uy_17",description:"_description_so9uy_25",descriptionScroller:"_descriptionScroller_so9uy_31",cta:"_cta_so9uy_36",disclaimer:"_disclaimer_so9uy_43",right:"_right_so9uy_47",mediaPanel:"_mediaPanel_so9uy_56",agentStill:"_agentStill_so9uy_63"};function EH(t){const{open:e,onClose:n,onStart:i,agentName:r,agentSubtitle:a,description:o,startLabel:s="Start Now",disclaimer:l="Sessions are securely recorded for quality improvement purposes.",showCloseButton:c=!1,isStarting:u=!1}=t;return x.jsx(nE,{open:e,onClose:n,size:"large",showCloseButton:c,children:x.jsxs("div",{className:Tr.layout,children:[x.jsxs("div",{className:Tr.left,children:[x.jsxs("div",{className:Tr.copy,children:[x.jsx(Qn,{variant:"heading",children:r}),x.jsx(Qn,{variant:"subheading",children:a}),x.jsx(Qn,{variant:"muted",as:"div",className:Tr.description,children:x.jsx(Fc,{className:Tr.descriptionScroller,children:x.jsx(az,{content:o})})})]}),x.jsxs("div",{className:Tr.cta,children:[x.jsx(nl,{type:"button",size:"lg",fullWidth:!0,onClick:i,isLoading:u,children:s}),x.jsx(Qn,{variant:"subscript",as:"p",className:Tr.disclaimer,children:l})]})]}),x.jsx("div",{className:Tr.right,children:x.jsx(eu,{className:Tr.mediaPanel,children:x.jsx(uH,{agentName:r,className:Tr.agentStill})})})]})})}function RH(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"__DOUBLE_STAR__").replace(/\*/g,"[^/]*").replace(/__DOUBLE_STAR__/g,".*").replace(/\?/g,"[^/]");return new RegExp(`^${e}$`,"i")}function AH(t,e){if(!e||e.length===0)return!1;const n=t.replace(/^https?:\/\//,"").replace(/\/$/,"");return e.some(i=>{try{const r=RH(i);return r.test(n)||r.test(t)}catch(r){return console.warn(`Invalid URL pattern: ${i}`,r),!1}})}function qf(t){if(!t||t.length===0)return!1;const e=window.location.origin+window.location.pathname;return AH(e,t)}function OH(t){var j,le,ge,ui,kr,Cr,rn,Jn,It,Di,di,an,ie,He,Xe,Vt,no,Ni,vn;const{sdk:e,shadowHost:n}=t,[i,r]=O.useState("hidden"),[a,o]=O.useState(()=>{var re;return((re=e.client)==null?void 0:re.session)||null}),[s,l]=O.useState(!1),[c,u]=O.useState(!1),[d,h]=O.useState(!1),[f,b]=O.useState(null),[y,T]=O.useState([]),[m,g]=O.useState(null),[_,p]=O.useState(0),[S,k]=O.useState(!1),[C,E]=O.useState(0),[R,A]=O.useState(null),[N,q]=O.useState([]),[W,ue]=O.useState(!0),H=MH((le=(j=e.client)==null?void 0:j.product)==null?void 0:le.widget_url_blacklist),P=DH(a),{audioDevices:J}=NH(),{caption:X}=wH(N,{delayMs:0}),ne=W?X:"",Y=(()=>{if(a!=null&&a.speakingState){if(a.speakingState==="thinking")return"thinking";if(a.speakingState==="busy")return"searching"}})(),Z=()=>p(re=>re+1),K=O.useRef(null),V=O.useRef(null),oe=O.useRef(!1),B=re=>{if(!re||K.current===re)return;V.current&&(V.current(),V.current=null);const ce=()=>Z(),Ie=$e=>{b($e),r(dt=>dt==="course-selection"?(k(!1),"pip"):dt)},Gt=$e=>{T($e.courses),r("course-selection"),b(null),g(null)},Bt=($e,dt)=>{},Wt=$e=>{A($e),E(Date.now())};re.on("stateChanged",ce),re.on("speakingStateChanged",ce),re.on("paused",ce),re.on("unpaused",ce),re.on("chatMessagesChanged",ce),re.on("courseProgress",Ie),re.on("courseSelection",Gt),re.on("transcript",Bt),re.on("screenCaptured",Wt),re.on("captions",q),K.current=re,V.current=()=>{re.off("stateChanged",ce),re.off("speakingStateChanged",ce),re.off("paused",ce),re.off("unpaused",ce),re.off("chatMessagesChanged",ce),re.off("courseProgress",Ie),re.off("courseSelection",Gt),re.off("transcript",Bt),re.off("screenCaptured",Wt),re.off("captions",q)}},he=re=>{var Ie;return re?((Ie=re.roomId)==null?void 0:Ie.startsWith("obs-"))&&!f?"course-selection":"pip":"hidden"};if(O.useEffect(()=>{const re=Ie=>{var Gt,Bt,Wt;Ie?(Gt=e.client)!=null&&Gt.session?r(he(((Bt=e.client)==null?void 0:Bt.session)??null)):r("start-session"):(Wt=e.client)!=null&&Wt.session||r("hidden")},ce=()=>Z();return e.on("showMenu",re),e.on("configUpdated",ce),e.client&&(e.client.session&&(o(e.client.session),B(e.client.session),r(he(e.client.session))),e.client.on("sessionStarted",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie)),dg().track("session-started",{planId:Ie.planId})}),e.client.on("sessionResumed",Ie=>{o(Ie),B(Ie),oe.current=!1,l(!1),u(!1),h(!1),r(he(Ie))}),e.client.on("sessionStopped",()=>{V.current&&(V.current(),V.current=null),o(null),K.current=null,l(!1),u(!1),h(!1),oe.current||r("hidden")}),e.client.on("stateChanged",Z)),()=>{e.off("showMenu",re),e.off("configUpdated",ce),V.current&&V.current()}},[e]),O.useLayoutEffect(()=>{var re,ce;(ce=(re=e.client)==null?void 0:re.product)!=null&&ce.primary_color&&n.style.setProperty("--obi-color-primary",e.client.product.primary_color)},[(ui=(ge=e.client)==null?void 0:ge.product)==null?void 0:ui.primary_color,n]),H||i==="hidden")return null;if(i==="start-session"){const re=(kr=e.client)==null?void 0:kr.product,ce=(Cr=e.client)==null?void 0:Cr.selectedPlan,Ie=(re==null?void 0:re.agent_name)||"Obi",Gt="AI Assistant",Bt=(ce==null?void 0:ce.description)||(re==null?void 0:re.description)||"I'm here to help you.";return x.jsx(EH,{open:!0,onClose:()=>{l(!1),r("hidden")},onStart:()=>{l(!0),e.startSession({withMicrophone:!0})},agentName:Ie,agentSubtitle:Gt,description:Bt,showCloseButton:!1,startLabel:"Start Session",isStarting:s})}if(i==="course-selection"){const re=(rn=a==null?void 0:a.roomId)==null?void 0:rn.startsWith("obs-"),ce=((Jn=e.client)==null?void 0:Jn.plans)||[],Ie=re&&y.length>0,Gt=Ie?y.slice().sort((fe,ke)=>fe.order!==void 0&&ke.order!==void 0?fe.order-ke.order:fe.order!==void 0?-1:ke.order!==void 0?1:fe.name.localeCompare(ke.name)).map(fe=>({id:fe.uuid,title:fe.name,description:fe.description||fe.overview||"",status:fe.completed?"completed":"available",duration:typeof fe.duration=="number"?`${fe.duration} min`:fe.duration})):ce.map(fe=>{var ke,it;return{id:fe.uuid,title:fe.name,description:fe.description,status:(it=(ke=e.client)==null?void 0:ke.planIsCompleted)!=null&&it[ce.indexOf(fe)]?"completed":"available",duration:fe.estimated_duration?`${fe.estimated_duration} min`:void 0}}),Bt=(a==null?void 0:a.languageCodes)||[],Wt=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,$e={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((It=navigator.mediaDevices)!=null&&It.getDisplayMedia),onMicDeviceSelect:async fe=>{e.client&&(e.client.preferredMicrophoneDeviceId=fe),a&&fe&&await a.switchMicrophoneDevice(fe),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:Bt,selectedLanguage:Wt,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:fe=>{a==null||a.setLanguage(fe)},isLanguageSelectorEnabled:!0},dt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((Di=a==null?void 0:a.room)==null?void 0:Di.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async fe=>{var ke,it,mt,Ut;a&&(a.appendChatMessage({timestamp:Date.now(),message:fe,from:{identity:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.identity)??null,name:((Ut=(mt=a.room)==null?void 0:mt.localParticipant)==null?void 0:Ut.name)??null},isAgent:!1}),await a.say(fe))},onClose:()=>h(!1)}):void 0;return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:Gt,controlBarProps:$e,coursePanelProps:{selectedCourseIds:m?[m]:void 0,onCourseToggle:async fe=>{var ke,it,mt;if(Ie){const Ut=y.find(Zn=>Zn.uuid===fe);if(Ut){g(fe);try{await((ke=a==null?void 0:a.say)==null?void 0:ke.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),g(null)}}}else{const Ut=ce.find(Zn=>Zn.uuid===fe);if(Ut){(it=e.client)==null||it.selectPlan(Ut),r("pip");try{await((mt=a==null?void 0:a.say)==null?void 0:mt.call(a,`I'd like to take the ${Ut.name} course.`))}catch(Zn){console.error("[obi-sdk] failed to send course selection",Zn),r("course-selection")}}}}},rightPanel:dt,avatarImageSrc:((an=(di=e.client)==null?void 0:di.product)==null?void 0:an.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="course-outline"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie={audioDevices:J,currentMicrophoneId:(a==null?void 0:a.preferredMicrophoneDeviceId)||null,isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isScreenShareActive:!1,widgetState:d?"chat":null,canPublishData:!0,browserSupportsScreenSharing:typeof navigator<"u"&&!!((ie=navigator.mediaDevices)!=null&&ie.getDisplayMedia),onMicDeviceSelect:async $e=>{e.client&&(e.client.preferredMicrophoneDeviceId=$e),a&&$e&&await a.switchMicrophoneDevice($e),Z()},onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>{h(!d)},onLeave:()=>{a==null||a.stop()},onScreenShareToggle:async()=>{},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:$e=>{a==null||a.setLanguage($e)},isLanguageSelectorEnabled:!0},Gt=d?x.jsx(FE,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((He=a==null?void 0:a.room)==null?void 0:He.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async $e=>{var dt,fe,ke,it;a&&(a.appendChatMessage({timestamp:Date.now(),message:$e,from:{identity:((fe=(dt=a.room)==null?void 0:dt.localParticipant)==null?void 0:fe.identity)??null,name:((it=(ke=a.room)==null?void 0:ke.localParticipant)==null?void 0:it.name)??null},isAgent:!1}),await a.say($e))},onClose:()=>h(!1)}):void 0,Bt=(f==null?void 0:f.stepNames.map(($e,dt)=>({id:`step-${dt+1}`,title:$e})))??[],Wt=x.jsx(eF,{steps:Bt,currentStep:(f==null?void 0:f.currentStep)??null,onStepClick:($e,dt)=>{a==null||a.say(`Can we jump to the section about ${dt.title}?`)}});return x.jsx(KE,{open:!0,onClose:()=>a==null?void 0:a.stop(),courses:[],controlBarProps:Ie,rightPanel:Gt??Wt,avatarImageSrc:((Vt=(Xe=e.client)==null?void 0:Xe.product)==null?void 0:Vt.logo_url)||void 0,avatarAudioPower:P,avatarStatus:Y,captionsText:ne})}if(i==="pip"){const re=(a==null?void 0:a.languageCodes)||[],ce=(a==null?void 0:a.selectedLanguage)||(a==null?void 0:a.defaultLanguageCode)||null,Ie=280,Gt=250,Bt=16,Wt={x:window.innerWidth-Ie-Bt,y:window.innerHeight-Gt-Bt},$e={isMicrophoneEnabled:!c&&((a==null?void 0:a.isMicShared)??!1),isChatOpen:d,isScreenShareActive:!1,onMicToggle:async()=>{a!=null&&a.isMicShared?c?(a.unmuteMicrophone(),u(!1)):(a.muteMicrophone(),u(!0)):await(a==null?void 0:a.shareMicrophone())},onChatToggle:()=>h(mt=>!mt),onScreenShareToggle:async()=>{await(a==null?void 0:a.shareScreen())},onLeave:()=>{a==null||a.stop()},languages:re,selectedLanguage:ce,defaultLanguageCode:a==null?void 0:a.defaultLanguageCode,isMultilingual:(a==null?void 0:a.isMultilingual)??!1,onLanguageChange:mt=>{a==null||a.setLanguage(mt)},isLanguageSelectorEnabled:!0},dt=(f==null?void 0:f.stepNames)??[],fe=dt[f?f.currentStep-1:-1]??"",ke=dt[f?f.currentStep:-1]??"",it=d?x.jsx(SF,{messages:(a==null?void 0:a.chatMessages)??[],localIdentity:((no=a==null?void 0:a.room)==null?void 0:no.localParticipant.identity)??(typeof(a==null?void 0:a.identity)=="string"?a.identity:null),onSend:async mt=>{var Ut,Zn,Li,Pi;a&&(a.appendChatMessage({timestamp:Date.now(),message:mt,from:{identity:((Zn=(Ut=a.room)==null?void 0:Ut.localParticipant)==null?void 0:Zn.identity)??null,name:((Pi=(Li=a.room)==null?void 0:Li.localParticipant)==null?void 0:Pi.name)??null},isAgent:!1}),await a.say(mt))},testId:"pip-chat-panel"}):void 0;return x.jsx(Wj,{initialPosition:Wt,onExit:()=>{r("course-outline")},controlBarProps:$e,isCourseOutlineSelected:S&&!!f,onCourseOutlineToggle:f?()=>{k(mt=>!mt)}:void 0,isCaptionsEnabled:W,onCaptionsToggle:()=>ue(mt=>!mt),courseOutline:f?{currentStep:fe,nextStep:ke}:void 0,messagesPanel:it,avatarFallbackProps:{audioPower:P,imageSrc:((vn=(Ni=e.client)==null?void 0:Ni.product)==null?void 0:vn.logo_url)??void 0,status:Y,captionsText:ne},screenshotUrl:R,cameraShotTrigger:C})}return null}function MH(t){const[e,n]=O.useState(()=>qf(t));return O.useEffect(()=>{n(qf(t))},[t]),O.useEffect(()=>{const i=()=>{n(qf(t))};return window.addEventListener("popstate",i),window.addEventListener("hashchange",i),()=>{window.removeEventListener("popstate",i),window.removeEventListener("hashchange",i)}},[t]),e}function DH(t){const[e,n]=O.useState(0),i=O.useRef(null),r=O.useRef(0),a=O.useRef(0);return O.useEffect(()=>{if(!t){n(0),r.current=0,a.current=0;return}const o=()=>{const s=t.audioSpectrum();let l=0;if(s&&s.length>0){let b=0;for(let y=0;y<s.length;y++)b+=s[y];l=Math.min(1,Math.max(0,b/s.length))}const c=r.current,d=l>=c?.7:.15,h=c*d+l*(1-d);r.current=h;const f=h<.05?0:Math.min(1,h);Math.abs(f-a.current)>.01&&(a.current=f,n(f)),i.current=requestAnimationFrame(o)};return i.current=requestAnimationFrame(o),()=>{i.current&&cancelAnimationFrame(i.current)}},[t]),e}function NH(){const[t,e]=O.useState({audioDevices:[]});return O.useEffect(()=>{var i;if(typeof navigator>"u"||!((i=navigator.mediaDevices)!=null&&i.enumerateDevices))return;const n=()=>{navigator.mediaDevices.enumerateDevices().then(r=>{e({audioDevices:r.filter(a=>a.kind==="audioinput")})})};return n(),navigator.mediaDevices.addEventListener("devicechange",n),()=>navigator.mediaDevices.removeEventListener("devicechange",n)},[]),t}function LH(t){if(document.querySelector("#obi-host")||document.querySelector("obi-widget"))return;PH();const e=document.createElement("div");e.id="obi-host",e.style.position="fixed",e.style.zIndex="9999",document.body.appendChild(e);const n=e.attachShadow({mode:"open"}),i=document.createElement("div");i.id="obi-container",n.appendChild(i);const r=new CSSStyleSheet;r.replaceSync(J9);const a=new CSSStyleSheet;a.replaceSync(X9);const o=new CSSStyleSheet;o.replaceSync(K9);const s=new CSSStyleSheet;s.replaceSync(Q9),n.adoptedStyleSheets=[r,a,o,s],Y9.createRoot(i).render(x.jsx(OH,{sdk:t,shadowHost:e})),console.log("[obi-sdk] widget mounted")}function PH(){XE("https://fonts.cdnfonts.com/css/satoshi"),XE("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap")}function XE(t){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}const QE="49206C6F7665204F6269_session",JE="obi-url-params";class IH extends Gf{constructor(e){super(),this.client=null,this.isActive=!1,this.primaryColour="#9500FF",this.passivePlanUuid=null,this.commandLog=[],this.commandQueue=[],this._resumed=!1,this.dispatchCommand=(n,i)=>{var r,a,o,s,l;switch(this.commandLog.push({commandType:n,args:i}),n){case"update":this.updateConfig(i);break;case"startSession":{if(i!=null&&i.planUuid){const c=(((r=this.client)==null?void 0:r.plans)||[]).find(u=>u.uuid===i.planUuid)||null;if(!c){console.warn("[obi] startSession command requires a valid planUuid",i);return}(o=(a=this.client)==null?void 0:a.selectPlan)==null||o.call(a,c)}this.updateActive(!0);break}case"stopSession":(l=(s=this.client)==null?void 0:s.stopSession)==null||l.call(s);break;case"say":this.say(i);break;default:console.warn("[obi] unknown command",{commandType:n,args:i})}},e&&this.createClient(e),this.parsePassiveParams()}async createClient(e){if(this.client){this.client.appToken!==e&&console.warn("[obi] client already exists with different app token");return}let n=null;const i=this.load();if(i)try{n=Yd.deserialise(i,e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)}),n?this._resumed=!0:localStorage.removeItem("obi-client")}catch(r){console.error("[obi] error loading cached client",r),localStorage.removeItem("obi-client")}n||(n=new Yd(e,"sdk",{apiBaseUrl:"https://staging.coragents.ai",captureScreen:this.captureScreen.bind(this)})),this.client=n,this.client.on("stateChanged",r=>{var a,o,s,l,c,u,d,h,f,b;r==="ready"&&this.updateConfig({isActive:((a=window==null?void 0:window.obiWidgetConfig)==null?void 0:a.isActive)??((o=this.client)==null?void 0:o.showWidget),primaryColour:((l=(s=this.client)==null?void 0:s.product)==null?void 0:l.primary_color)||"#9500FF",widgetDisplay:((c=window==null?void 0:window.obiWidgetConfig)==null?void 0:c.widgetDisplay)||((d=(u=this.client)==null?void 0:u.product)==null?void 0:d.widget_display)||"regular",completedWidgetDisplay:((h=window==null?void 0:window.obiWidgetConfig)==null?void 0:h.completedWidgetDisplay)||((b=(f=this.client)==null?void 0:f.product)==null?void 0:b.completed_widget_display)||"regular"})}),this.client.on("sessionStarted",()=>{this.save(),this.passivePlanUuid=null}),this.client.on("sessionStopped",()=>{localStorage.removeItem("obi-client"),this.passivePlanUuid=null}),this.client.on("sessionShutdown",()=>{localStorage.removeItem("obi-client")}),this.client.on("trackEvent",(r,a)=>{}),this.client.session&&(this.client.session.isPaused,this.client.resumeSession(r=>{r.on("stateChanged",a=>{a!=="disconnecting"&&a!=="disconnected"&&a!=="error"&&a!=="connecting"&&this.save()}),r.on("paused",()=>{this.save()}),r.on("unpaused",()=>{this.save()})}))}_maybeActOnServerEngagement(){var s;const e=this.client;if(!e||e.state!=="ready")return;const n=e.product,i=(s=e.engagement)==null?void 0:s.style;if(!i||n&&qf(n.widget_url_blacklist||[])||!e.showWidget)return;const r=e.plans||[],a=e.planIsCompleted||[],o=r.length>0&&a.filter(Boolean).length===r.length;if(!(r.length===0||o)){if(i==="modal"){const l=a.findIndex(u=>!u),c=l>=0?r[l]:null;c&&e.selectPlan(c)}else i==="popover"&&setTimeout(()=>{this.showMessage("Don't forget to complete your onboarding",{autoCloseMs:1e4})},1e3);try{dg().track("engagement-prompt-shown",{style:i})}catch{}}}async initialise(e={}){var n;this.commandQueue=e.queuedCommands||[],this._resumed?(this._resumed=!1,this.dispatchCommandQueue()):this.client?this.client.initialise({planUuid:this.passivePlanUuid||void 0,identity:((n=window==null?void 0:window.obiWidgetConfig)==null?void 0:n.user)||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}this.dispatchCommandQueue()}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}):this.dispatchCommandQueue()}async updateConfig(e){await this.updateAppToken(e.apiKey),this.updateActive(e.isActive),this.updatePrimaryColour(e.primaryColour),this.updateWidgetDisplay(e.widgetDisplay),this.updateCompletedWidgetDisplay(e.completedWidgetDisplay),this.updateWidgetPosition(e.widgetPosition),await this.updateIdentity(e.user),this.updateShowMenu(e.showMenu),this.emit("configUpdated")}async updateAppToken(e){var n;e===void 0||e==((n=this.client)==null?void 0:n.appToken)||(this.passivePlanUuid,await this.createClient(e),this.client&&await this.client.initialise({planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(i=>{console.error("[obi] error initialising client",i),this.emit("error",i)}))}updateActive(e){e===void 0||e==this.isActive||(this.isActive=e)}updatePrimaryColour(e){e===void 0||e==this.primaryColour||(this.primaryColour=e)}updateWidgetDisplay(e){e===void 0||e==this.widgetDisplay||(this.widgetDisplay=e)}updateCompletedWidgetDisplay(e){e===void 0||e==this.completedWidgetDisplay||(this.completedWidgetDisplay=e)}updateWidgetPosition(e){e===void 0||e==this.widgetPosition||(this.widgetPosition=e)}async updateIdentity(e){var i,r;if(e===void 0||e==((i=this.client)==null?void 0:i.identity))return;(r=this.client)==null||r.identity;let n=e?{...e,extra:{...e,...(e==null?void 0:e.extra)||{}}}:void 0;await this.client.initialise({identity:n,planUuid:this.passivePlanUuid||void 0}).then(()=>{this.emit("initialised");try{this._maybeActOnServerEngagement()}catch{}}).catch(a=>{console.error("[obi] error initialising client",a),this.emit("error",a)}),e!=null&&e.email&&dg().identify((e==null?void 0:e.email)||"",n)}updateShowMenu(e){e!==void 0&&this.emit("showMenu",e)}async say(e){var n,i,r;await((r=(i=(n=this.client)==null?void 0:n.session)==null?void 0:i.say)==null?void 0:r.call(i,e))}async startSession(e){await this.client.startSession(this.client.selectedPlanUuid||null,n=>{n.on("stateChanged",i=>{i!=="disconnecting"&&i!=="disconnected"&&i!=="error"&&i!=="connecting"&&this.save()}),n.on("paused",()=>{this.save()}),n.on("unpaused",()=>{this.save()})},e)}dispatchCommandQueue(){const e=this.commandQueue;this.commandQueue=[],e.forEach(n=>{try{this.dispatchCommand(n[0],n[1]||[])}catch(i){console.error("[obi] error dispatching command",i)}})}parsePassiveParams(){if(this.passivePlanUuid){this.passivePlanUuid;return}let e={};e=JSON.parse(localStorage.getItem(JE)||"{}"),Object.keys(e).length===0&&new URLSearchParams(window.location.search).forEach((a,o)=>{e[o]=a});const n=e[QE];if(!n)return null;const i=new URL(window.location.href);i.searchParams.delete(QE),window.history.replaceState({},"",i.toString()),i.toString(),localStorage.removeItem(JE),this.passivePlanUuid=n}mountWidget(){LH(this)}showMessage(e,n){try{this.emit("showMessage",{text:e,autoCloseMs:n==null?void 0:n.autoCloseMs})}catch{}}async captureScreen(){try{await wO(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.text_segmentation)),await _3(async()=>(this.graphemes||(this.graphemes=await this.client.api.getGraphemes()),this.graphemes.data.css_line_breaks))}catch(e){throw console.error("[obi] error initialising unicode trie",e),e}try{return(await rO(document.documentElement,{useCORS:!0,allowTaint:!0,foreignObjectRendering:!0})).toDataURL("image/png")}catch(e){throw console.error("[obi] error capturing screen",e),e}}save(){var n;const e=((n=this.client)==null?void 0:n.serialise())||"";localStorage.setItem("obi-client",e)}load(){return localStorage.getItem("obi-client")}}async function ZE(t,e){let n;try{n=window}catch{console.warn("[obi] no window object found"),n={}}return BH({appToken:t,window:n,init:e})}async function BH({appToken:t,window:e,init:n}){var a,o;if(e.obi){console.warn("[obi] obi object already found on window, skipping");return}n&&n(),t||(t=(a=e==null?void 0:e.obiWidgetConfig)==null?void 0:a.apiKey);let i;try{i=((o=e.ObiSDK)==null?void 0:o.q)||[]}catch{i=[]}const r=new IH(t);return e.ObiSDK=r.dispatchCommand,await r.initialise({queuedCommands:i}),e.obi=r,r.mountWidget(),r}function $E(){}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{ZE(void 0,$E)}):ZE(void 0,$E)})();
|