@chatsystem/client 1.2.0 β†’ 1.2.1

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.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("react/jsx-runtime"),C=require("react"),Mn=require("react-dom"),Xd=require("lottie-react"),Qd=require("@lottiefiles/dotlottie-react");function Kd(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Ge=Kd(C),pu=e=>Ge.createElement("svg",{fill:"#000000",height:"800px",width:"800px",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 330 330",xmlSpace:"preserve",...e},Ge.createElement("path",{id:"XMLID_102_",d:"M325.607,79.393c-5.857-5.857-15.355-5.858-21.213,0.001l-139.39,139.393L25.607,79.393 c-5.857-5.857-15.355-5.858-21.213,0.001c-5.858,5.858-5.858,15.355,0,21.213l150.004,150c2.813,2.813,6.628,4.393,10.606,4.393 s7.794-1.581,10.606-4.394l149.996-150C331.465,94.749,331.465,85.251,325.607,79.393z"}));function xa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var si={},ms;function Jd(){return ms||(ms=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.formatCustomerSupportProviderText=e.IDENTITY_GATE_VERSION_HEADER=e.IDENTITY_GATE_REQUIRED_EVENT=e.IDENTITY_GATE_PROTOCOL_VERSION=e.IDENTITY_GATE_PROTOCOL_V2=e.IDENTITY_GATE_PROTOCOL_V1=e.OutputStreamTypesEnum=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE=e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=e.readOptionalNullableString=e.readOptionalString=e.readOptionalNullableNumber=e.readOptionalNumber=e.isUnknownRecord=e.INTERACTIVE_WIDGET_TYPES=e.INTERACTIVE_WIDGET_EVENTS=e.AgentDisplayFacetRoleType=e.AgentDisplayFacetModeType=void 0;var t;(function(h){h.SPRITESHEET="spritesheet",h.LOTTIE="lottie",h.IMAGE="image",h.SVG="svg",h.VIDEO="video"})(t||(e.AgentDisplayFacetModeType=t={}));var n;(function(h){h.LAUNCHER="launcher",h.ASSISTANT="assistant",h.SEARCH="search"})(n||(e.AgentDisplayFacetRoleType=n={})),e.INTERACTIVE_WIDGET_EVENTS={requested:"interactiveWidget.requested"},e.INTERACTIVE_WIDGET_TYPES={directChatCustomerSupport:"direct_chat_customer_support"};const r=h=>typeof h=="object"&&h!==null&&!Array.isArray(h);e.isUnknownRecord=r;const i=h=>typeof h=="number"&&Number.isFinite(h)?h:void 0;e.readOptionalNumber=i;const a=h=>h===null?null:(0,e.readOptionalNumber)(h);e.readOptionalNullableNumber=a;const s=h=>typeof h=="string"?h:void 0;e.readOptionalString=s;const o=h=>h===null?null:(0,e.readOptionalString)(h);e.readOptionalNullableString=o,e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=5,e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE="Europe/Paris",e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=[{dayOfWeek:1,key:"monday",defaultLabel:"Monday"},{dayOfWeek:2,key:"tuesday",defaultLabel:"Tuesday"},{dayOfWeek:3,key:"wednesday",defaultLabel:"Wednesday"},{dayOfWeek:4,key:"thursday",defaultLabel:"Thursday"},{dayOfWeek:5,key:"friday",defaultLabel:"Friday"},{dayOfWeek:6,key:"saturday",defaultLabel:"Saturday"},{dayOfWeek:7,key:"sunday",defaultLabel:"Sunday"}],e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=[1,2,3,4,5];var u;(function(h){h.OUTPUT_STREAM_MESSAGE_START="message_start",h.OUTPUT_STREAM_MESSAGE_DELTA="message_delta",h.OUTPUT_STREAM_MESSAGE_END="message_end",h.OUTPUT_STREAM_CLIENT_EVENT="client_event",h.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE="number_of_steps",h.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE="current_step_number",h.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE="current_step_name",h.OUTPUT_STREAM_ERROR="error"})(u||(e.OutputStreamTypesEnum=u={})),e.IDENTITY_GATE_PROTOCOL_V1=1,e.IDENTITY_GATE_PROTOCOL_V2=2,e.IDENTITY_GATE_PROTOCOL_VERSION=e.IDENTITY_GATE_PROTOCOL_V1,e.IDENTITY_GATE_REQUIRED_EVENT="identity.required",e.IDENTITY_GATE_VERSION_HEADER="X-ChatSystem-Identity-Gate-Version";const c={"+1":"πŸ‘",thumbsup:"πŸ‘","-1":"πŸ‘Ž",thumbsdown:"πŸ‘Ž",clap:"πŸ‘",wave:"πŸ‘‹",raised_hands:"πŸ™Œ",pray:"πŸ™",muscle:"πŸ’ͺ",ok_hand:"πŸ‘Œ",point_up:"☝️",point_down:"πŸ‘‡",point_left:"πŸ‘ˆ",point_right:"πŸ‘‰",eyes:"πŸ‘€",brain:"🧠",heart:"❀️",orange_heart:"🧑",yellow_heart:"πŸ’›",green_heart:"πŸ’š",blue_heart:"πŸ’™",purple_heart:"πŸ’œ",broken_heart:"πŸ’”",fire:"πŸ”₯",tada:"πŸŽ‰",sparkles:"✨",star:"⭐",white_check_mark:"βœ…",heavy_check_mark:"βœ”οΈ",x:"❌",warning:"⚠️",information_source:"ℹ️",question:"❓",exclamation:"❗",bulb:"πŸ’‘",memo:"πŸ“",pushpin:"πŸ“Œ",paperclip:"πŸ“Ž",link:"πŸ”—",lock:"πŸ”’",unlock:"πŸ”“",bell:"πŸ””",phone:"☎️",email:"βœ‰οΈ",incoming_envelope:"πŸ“¨",package:"πŸ“¦",truck:"🚚",moneybag:"πŸ’°",credit_card:"πŸ’³",gift:"🎁",shopping_bags:"πŸ›οΈ",clock3:"πŸ•’",hourglass_flowing_sand:"⏳",rocket:"πŸš€",smile:"πŸ˜„",smiley:"πŸ˜ƒ",grinning:"πŸ˜€",slightly_smiling_face:"πŸ™‚",wink:"πŸ˜‰",blush:"😊",relaxed:"☺️",heart_eyes:"😍",thinking_face:"πŸ€”",neutral_face:"😐",confused:"πŸ˜•",worried:"😟",cry:"😒",sob:"😭",sweat_smile:"πŸ˜…",joy:"πŸ˜‚",rofl:"🀣",upside_down_face:"πŸ™ƒ",sunglasses:"😎",tada_face:"πŸ₯³",angry:"😠",rage:"😑",face_with_symbols_on_mouth:"🀬",scream:"😱",zipper_mouth_face:"🀐",skin_tone_2:"🏻",skin_tone_3:"🏼",skin_tone_4:"🏽",skin_tone_5:"🏾",skin_tone_6:"🏿"},d=h=>h.replace(/-/g,"_"),f=h=>h.replace(/:([a-zA-Z0-9_+\-]+):/g,(b,y)=>c[d(y)]??b),p=({text:h,provider:b})=>b==="slack"?f(h):h;e.formatCustomerSupportProviderText=p})(si)),si}var Z=Jd();const oi=e=>({mode:Z.AgentDisplayFacetModeType.SVG,role:e}),Zd=()=>({interactiveWidgets:{available:[{widgetType:Z.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport,enabled:!0}]},agent:{display:{name:"",CSSRules:"",[Z.AgentDisplayFacetRoleType.LAUNCHER]:oi(Z.AgentDisplayFacetRoleType.LAUNCHER),[Z.AgentDisplayFacetRoleType.ASSISTANT]:oi(Z.AgentDisplayFacetRoleType.ASSISTANT),[Z.AgentDisplayFacetRoleType.SEARCH]:oi(Z.AgentDisplayFacetRoleType.SEARCH)},text:{initialText:""},customNameToDisplay:"",isAudioAllowed:!0},api:{settings:{maxUserMessagesPerDiscussion:20},tracking:{queryParamToAppend:""}}}),rn=C.createContext({companySettings:Zd(),setCompanySettings:()=>{}}),_a=()=>{const e=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:3080"),t=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:5173");return e||t};class mu{enabled;constructor({isLocalDev:t,shouldDisplayLogs:n}){this.enabled=t||n}log(...t){this.enabled&&console.log(...t)}warn(...t){this.enabled&&console.warn(...t)}error(...t){this.enabled&&console.error(...t)}}let gu=new mu({isLocalDev:_a(),shouldDisplayLogs:!1});const ef=e=>new mu({isLocalDev:_a(),shouldDisplayLogs:!!e}),tf=e=>{gu=e},Ct=()=>gu,En=globalThis;En.__WIDGET_ASSET_CACHE__||(En.__WIDGET_ASSET_CACHE__={svg:new Map,img:new Map,lot:new Map,spr:new Map});En.__WIDGET_PRELOAD_KEYS__||(En.__WIDGET_PRELOAD_KEYS__=new Set);const ui=En.__WIDGET_PRELOAD_KEYS__,jt=En.__WIDGET_ASSET_CACHE__,nf="widget-assets-v1";async function Mr(e,t){const n=Ct();try{const r=await caches.open(nf),i=await r.match(e,{ignoreSearch:!1});if(i)return i.clone();const a=await fetch(e,{cache:"force-cache",mode:"cors",keepalive:!0,...t});if(!a.ok)throw new Error(`HTTP ${a.status} for ${e}`);return r.put(e,a.clone()),a}catch(r){return n.warn("error while fetching",r),new Response(null,{status:520,statusText:"Error in client - Fetch failed"})}}async function bu(e){const t=jt.svg.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).text();if(typeof globalThis.DOMPurify<"u"&&typeof globalThis.DOMPurify.sanitize=="function")try{const s=new DOMParser().parseFromString(i,"image/svg+xml"),o=new XMLSerializer().serializeToString(s.documentElement);return{sanitized:globalThis.DOMPurify.sanitize(o,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}catch{return{sanitized:globalThis.DOMPurify.sanitize(i,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}else return{sanitized:i}})();return jt.svg.set(e,{promise:n,ts:Date.now()}),n}function Eu(e){const t=jt.img.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).blob();return{blobUrl:URL.createObjectURL(i)}})();return jt.img.set(e,{promise:n,ts:Date.now()}),n}function Tu(e){const t=jt.lot.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).arrayBuffer(),a=new Uint8Array(i);if(a.length>=4&&a[0]===80&&a[1]===75&&a[2]===3&&a[3]===4||e.endsWith(".lottie"))return{kind:"zip",blobUrl:URL.createObjectURL(new Blob([i],{type:"application/zip"}))};const o=new TextDecoder().decode(a);return{kind:"json",data:JSON.parse(o)}})();return jt.lot.set(e,{promise:n,ts:Date.now()}),n}function yu(e){const t=jt.spr.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).blob();let a=null;try{a=await createImageBitmap(i)}catch{a=null}const{imgEl:s,width:o,height:u}=await new Promise((c,d)=>{const f=URL.createObjectURL(i),p=new Image;p.crossOrigin="anonymous",p.onload=()=>{const h=p.naturalWidth,b=p.naturalHeight;c({imgEl:p,width:h,height:b})},p.onerror=()=>{URL.revokeObjectURL(f),d(new Error("Spritesheet image decode failed"))},p.src=f,p.decode?.().catch(()=>{})});return{imgEl:s,bitmap:a,width:o,height:u}})();return jt.spr.set(e,{promise:n,ts:Date.now()}),n}function rf(e){e.images?.forEach(t=>void Eu(t)),e.svgs?.forEach(t=>void bu(t)),e.lotties?.forEach(t=>void Tu(t)),e.sprites?.forEach(t=>void yu(t))}function af(e){const t=Ct();try{const n=document.createElement("link");n.rel="preconnect",n.href=e,n.crossOrigin="anonymous",document.head.appendChild(n);const r=document.createElement("link");r.rel="dns-prefetch",r.href=e,document.head.appendChild(r)}catch(n){t.warn("error in injectPreconnect",n)}}function xu(e){return new URL(e,document.baseURI).toString()}function sf(e,t){const n=document.head.querySelectorAll('link[rel="preload"]');for(const r of n)if((e?r.as===e||r.getAttribute("as")===e:!0)&&r.href===t)return!0;return!1}function ar(e,t,n,r){const i=xu(n),a=`${e}|${t??""}|${i}`;if(ui.has(a))return;if(sf(t,i)){ui.add(a);return}const s=document.createElement("link");s.rel=e,t&&(s.as=t),s.href=i,s.crossOrigin="anonymous",r&&(s.type=r),s.setAttribute("data-chatsystem-preload","1"),document.head.appendChild(s),ui.add(a)}function of(e){const t=s=>Array.from(new Set((s??[]).map(xu))),n=t(e.images),r=t(e.svgs),i=t(e.lotties),a=t(e.sprites);n.forEach(s=>ar("preload","image",s)),r.forEach(s=>ar("preload","fetch",s,"image/svg+xml")),i.forEach(s=>ar("preload","fetch",s,"application/zip")),a.forEach(s=>ar("preload","fetch",s))}const uf=({src:e})=>{const[t,n]=C.useState(null);return C.useEffect(()=>{let r=!1;return Eu(e).then(({blobUrl:i})=>{n(i)}).catch(()=>n(null)),()=>{t&&!r&&(URL.revokeObjectURL(t),r=!0)}},[e]),x.jsx("img",{src:t??e,decoding:"async",loading:"eager"})};function lf(e){return!!e&&typeof e=="object"&&"blob"in e&&e.blob instanceof Blob}function cf({src:e,autoplay:t=!0,loop:n=!0,className:r,style:i,placeholder:a,fallback:s,onLoaded:o,onError:u}){const[c,d]=C.useState({kind:"loading"});return C.useEffect(()=>{let f=null,p=!1;return d({kind:"loading"}),Tu(e).then(async h=>{if(!p)if(h.kind==="zip"){const b=lf(h)?h.blob:await(await fetch(h.blobUrl)).blob();f=URL.createObjectURL(b),d({kind:"lottieZip",blobUrl:f}),o?.(f)}else d({kind:"json",data:h.data}),o?.(h.data)}).catch(h=>!p&&(d({kind:"error",err:h}),u?.(h))),()=>{p=!0,f&&URL.revokeObjectURL(f)}},[e]),c.kind==="loading"?x.jsx("div",{className:"flex items-center justify-center rounded-xl border border-dashed p-6 text-sm opacity-70 "+(r??""),style:{minHeight:96,...i},children:a??"Loading animation…"}):c.kind==="error"?x.jsx("div",{className:"flex items-center justify-center rounded-xl border p-6 text-sm text-red-600 "+(r??""),style:{minHeight:96,...i},children:s??"Failed to load animation"}):c.kind==="json"?x.jsx(Xd,{animationData:c.data,loop:n,autoplay:t,className:r,style:i,rendererSettings:{preserveAspectRatio:"xMidYMid meet"}}):x.jsx(Qd.DotLottieReact,{src:c.blobUrl,loop:n,autoplay:t,className:r,style:i})}async function df(e,t={}){const{minPeriod:n=8,maxPeriod:r=Math.floor(Math.min(e.width,e.height)/2),gutterSearchRadius:i=3,debug:a=!1}=t,s=Ct();if(e.width<n*2||e.height<n*2)return a&&s.warn("detectGrid: image too small"),null;const o=document.createElement("canvas");o.width=e.naturalWidth,o.height=e.naturalHeight;const u=o.getContext("2d");if(!u)return null;u.drawImage(e,0,0);const{data:c}=u.getImageData(0,0,o.width,o.height),d=o.width,f=o.height,p=new Uint8ClampedArray(d*f);for(let U=0;U<f;U++){let z=U*d;for(let B=0;B<d;B++){const $=(z+B)*4;p[z+B]=.299*c[$]+.587*c[$+1]+.114*c[$+2]|0}}const h=new Float32Array(d),b=new Float32Array(f);for(let U=1;U<d-1;U++){let z=0;for(let B=0;B<f;B++){const $=B*d+U,X=p[$+1]-p[$-1];z+=Math.abs(X)}h[U]=z}for(let U=1;U<f-1;U++){let z=0;for(let B=0;B<d;B++){const $=U*d+B,X=p[$+d]-p[$-d];z+=Math.abs(X)}b[U]=z}const y=gs(h,n,Math.min(r,d/2)),w=gs(b,n,Math.min(r,f/2));if(!y||!w)return a&&s.warn("detectGrid: could not find periods"),null;const S=Math.max(1,Math.round(d/y)),v=Math.max(1,Math.round(f/w)),k=bs(h,y,S,i),L=bs(b,w,v,i),A=Math.max(1,y-k),N=Math.max(1,w-L);if(A*S>d+2||N*v>f+2)return a&&s.warn("detectGrid: sanity check failed"),null;const Y=$i(h,60),V=$i(b,60),ne=Math.max(0,Es(h,Y)),I=Math.max(0,Es(b,V));return a&&s.log({periodX:y,periodY:w,columns:S,rows:v,gutterX:k,gutterY:L,frameWidth:A,frameHeight:N,originX:ne,originY:I}),{columns:S,rows:v,frameWidth:A,frameHeight:N,gutterX:k,gutterY:L,originX:ne,originY:I}}function gs(e,t,n){const r=_u(e);let i=0;for(let h=0;h<e.length;h++){const b=e[h]-r;i+=b*b}if(i===0)return null;const a=new Float32Array(n+1);let s=0,o=-1/0;for(let h=t;h<=n;h++){let b=0;for(let w=0;w+h<e.length;w++)b+=(e[w]-r)*(e[w+h]-r);const y=b/i;a[h]=y,y>o&&(o=y,s=h)}if(s<=t||s>=n)return s||null;const u=a[s-1],c=a[s],d=a[s+1],f=u-2*c+d,p=f===0?0:.5*(u-d)/f;return s+p}function bs(e,t,n,r){const i=[];for(let o=1;o<n;o++){const u=o*t;let c=1/0,d=u;for(let f=-r;f<=r;f++){const p=u+f;if(p<=0||p>=e.length)continue;const h=e[p];h<c&&(c=h,d=p)}i.push(d)}if(i.length<1)return 0;let a=[];for(const o of i){const u=e[o]*1.5+$i(e,10)*.5;let c=o,d=o;for(;c>1&&e[c-1]<=u;)c--;for(;d<e.length-2&&e[d+1]<=u;)d++;a.push(Math.max(0,d-c+1))}const s=Math.round(_u(a));return Math.max(0,Math.min(s,Math.floor(t/4)))}function _u(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}function $i(e,t){const n=Array.from(e);n.sort((i,a)=>i-a);const r=Math.max(0,Math.min(n.length-1,Math.floor(t/100*n.length)));return n[r]}function Es(e,t){for(let n=0;n<e.length;n++)if(e[n]>t)return n;return 0}function ff(e,t,n,r,i){const{data:a}=e.getImageData(t,n,r,i);let s=0;for(let o=3;o<a.length;o+=4)s+=a[o];return s/(255*(a.length/4))<.03}const Su=C.createContext(Ct()),Sn=()=>C.useContext(Su),hf=C.forwardRef(function({src:t,frameWidth:n,frameHeight:r,columns:i,rows:a,gutterX:s=0,gutterY:o=0,frameCount:u,atlasFrames:c,fps:d=12,autoplay:f=!0,loop:p=!0,startFrame:h=0,direction:b="forward",scale:y=1,backgroundColor:w,className:S,style:v,pauseWhenHidden:k=!1,originX:L,originY:A,onLoad:N,onEnd:Y,onFrame:V},ne){const I=Sn(),U=C.useRef(null),z=C.useRef(null),[B,$]=C.useState(null),[X,he]=C.useState(null),[pe,we]=C.useState(null),[Oe,m]=C.useState(!1),[G,re]=C.useState(!!f),[E,te]=C.useState(h),se=C.useRef(1),[W,oe]=C.useState(null),ae=Math.max(1,Math.floor(typeof window<"u"&&window.devicePixelRatio||1));C.useEffect(()=>{let ge=!1;return m(!1),yu(t).then(({imgEl:ve,bitmap:H})=>{ge||($(ve),he(H),we({w:ve.naturalWidth,h:ve.naturalHeight}),m(!0),N?.())}).catch(()=>{}),()=>{ge=!0}},[t,N]),C.useEffect(()=>{let ge=!1;return(async()=>{if(!B)return;if(c&&c.length){oe(null);return}if(!(!n||!r||!i||!a)){oe(null);return}const H=await df(B,{debug:!0});ge||(H?oe({frameWidth:H.frameWidth,frameHeight:H.frameHeight,columns:H.columns,rows:H.rows,gutterX:H.gutterX,gutterY:H.gutterY}):(oe(null),I.warn("RemoteSpritesheet: auto-detect failed; please provide grid props.")))})(),()=>{ge=!0}},[B,c,n,r,i,a,I]);const de=W?.frameWidth??n,ie=W?.frameHeight??r,Ne=W?.columns??i,q=W?.rows??a,Me=W?.gutterX??s,Pe=W?.gutterY??o,Le=W?.originX??L??0,it=W?.originY??A??0,Lt=C.useMemo(()=>{if(c&&c.length>0)return{cols:0,rows:0};if(!pe||!de||!ie)return{cols:0,rows:0};const ge=Ne??Math.floor((pe.w+Me)/(de+Me)),ve=q??Math.floor((pe.h+Pe)/(ie+Pe));return{cols:Math.max(0,ge),rows:Math.max(0,ve)}},[c,pe,de,ie,Ne,q,Me,Pe]),ze=C.useMemo(()=>{if(c?.length)return c;if(!de||!ie)return[];const{cols:ge,rows:ve}=Lt;if(!ge||!ve)return[];const H=Math.min(u??ge*ve,ge*ve),Q=[];for(let O=0;O<H;O++){const M=O%ge,K=Math.floor(O/ge),ue=Le+M*(de+Me),J=it+K*(ie+Pe);Q.push({x:ue,y:J,w:de,h:ie})}if(B&&Q.length){const O=document.createElement("canvas");O.width=B.naturalWidth,O.height=B.naturalHeight;const M=O.getContext("2d");if(M){M.drawImage(B,0,0);let K=Q.length;for(;K>0&&ff(M,Q[K-1].x,Q[K-1].y,Q[K-1].w,Q[K-1].h);)K--;return Q.slice(0,K)}}return Q},[c,Lt,u,de,ie,Me,Pe,B,Le,it]),Dt=()=>{const ge=U.current;if(!ge||ze.length===0)return;const ve=ze[Math.max(0,Math.min(E,ze.length-1))],H=Math.max(1,Math.round(ve.w*y)),Q=Math.max(1,Math.round(ve.h*y));ge.style.width=H+"px",ge.style.height=Q+"px",ge.width=H*ae,ge.height=Q*ae};C.useEffect(()=>{Dt()},[Oe,y,ze.length,ae,E]);const vt=ge=>{const ve=X??B??null,H=U.current;if(!H||!ve||ze.length===0)return;const Q=H.getContext("2d");if(!Q)return;Q.save(),Q.setTransform(1,0,0,1,0,0),Q.clearRect(0,0,H.width,H.height),w&&(Q.fillStyle=w,Q.fillRect(0,0,H.width,H.height));const O=ze[ge];Q.scale(ae,ae),Q.drawImage(ve,O.x,O.y,O.w,O.h,0,0,Math.round(O.w*y),Math.round(O.h*y)),Q.restore()};return C.useEffect(()=>{if(!Oe||ze.length===0)return;let ge=performance.now();const ve=1e3/Math.max(1,Math.min(120,d)),H=Q=>{if(z.current=requestAnimationFrame(H),!G){vt(E);return}const O=Q-ge;if(O<ve){vt(E);return}ge=Q-O%ve,te(M=>{const K=ze.length-1;let ue=M;return b==="forward"?ue=M+1:b==="backward"?ue=M-1:((M>=K&&se.current===1||M<=0&&se.current===-1)&&(se.current*=-1),ue=M+se.current),(ue>K||ue<0)&&(p?ue=b==="backward"?K:0:(ue=Math.max(0,Math.min(ue,K)),re(!1),Y?.())),ue})};return z.current=requestAnimationFrame(H),()=>{z.current&&cancelAnimationFrame(z.current)}},[Oe,d,G,p,b,ze.length,E]),C.useEffect(()=>{vt(E),V?.(E)},[E,Oe,y,ae]),C.useEffect(()=>{if(!k)return;const ge=()=>{document.hidden&&re(!1)};return document.addEventListener("visibilitychange",ge),()=>document.removeEventListener("visibilitychange",ge)},[k]),C.useImperativeHandle(ne,()=>({play:()=>re(!0),pause:()=>re(!1),toggle:()=>re(ge=>!ge),gotoFrame:ge=>te(()=>Math.max(0,Math.min(ge,Math.max(0,ze.length-1)))),isPlaying:()=>G,currentFrame:()=>E}),[G,E,ze.length]),x.jsx("div",{className:S,style:v,children:x.jsx("canvas",{ref:U,"aria-label":"spritesheet animation"})})});function pf({url:e,className:t}){const[n,r]=C.useState(""),[i,a]=C.useState(null);return C.useEffect(()=>{let s=!1;return bu(e).then(({sanitized:o})=>{s||(r(o),a(null))}).catch(o=>!s&&a(o.message??"Failed to load")),()=>{s=!0}},[e]),i?x.jsxs("div",{className:t,role:"alert",children:["Couldn’t load SVG: ",i]}):n?x.jsx("div",{className:t,dangerouslySetInnerHTML:{__html:n}}):x.jsx("div",{className:t})}function mf({mobile:e=.6,tablet:t=.8,desktop:n=1}){const[r,i]=C.useState(n);return C.useEffect(()=>{if(typeof window>"u")return;const a=[{mq:window.matchMedia("(max-width: 639px)"),value:e},{mq:window.matchMedia("(min-width: 640px) and (max-width: 1023px)"),value:t},{mq:window.matchMedia("(min-width: 1024px)"),value:n}],s=()=>{for(const{mq:o,value:u}of a)if(o.matches){i(u);break}};return a.forEach(({mq:o})=>o.addEventListener("change",s)),s(),()=>{a.forEach(({mq:o})=>o.removeEventListener("change",s))}},[e,t,n]),r}const Sa=({facet:e})=>{const t=Sn(),{mode:n,assetUrl:r,spr_columns:i,spr_fps:a,spr_frameCount:s,spr_frameHeight:o,spr_frameWidth:u,spr_gutterX:c,spr_gutterY:d,spr_rows:f,spr_originX:p,spr_originY:h,spr_scaleDesktop:b,spr_scaleMobile:y,spr_scaleTablet:w}=e,S=mf({mobile:y??.6,tablet:w??.8,desktop:b??1});return x.jsxs("div",{className:"assetContainer",children:[n===Z.AgentDisplayFacetModeType.LOTTIE&&x.jsx(cf,{src:r,autoplay:!0,onError:v=>t.error(v)}),n===Z.AgentDisplayFacetModeType.SVG&&x.jsx("div",{children:x.jsx(pf,{url:r})}),n===Z.AgentDisplayFacetModeType.IMAGE&&x.jsx(uf,{src:r}),n===Z.AgentDisplayFacetModeType.SPRITESHEET&&x.jsx(hf,{src:r,frameCount:s,columns:i,rows:f,fps:a,frameHeight:o,frameWidth:u,gutterX:c,gutterY:d,originX:p,originY:h,scale:S,autoplay:!0})]})},gf=({isWidgetOpen:e,setIsWidgetOpen:t})=>{const{companySettings:n}=C.useContext(rn);return x.jsxs("div",{className:`launcher
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("react/jsx-runtime"),C=require("react"),Mn=require("react-dom"),Xd=require("lottie-react"),Qd=require("@lottiefiles/dotlottie-react");function Kd(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Ge=Kd(C),pu=e=>Ge.createElement("svg",{fill:"#000000",height:"800px",width:"800px",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 330 330",xmlSpace:"preserve",...e},Ge.createElement("path",{id:"XMLID_102_",d:"M325.607,79.393c-5.857-5.857-15.355-5.858-21.213,0.001l-139.39,139.393L25.607,79.393 c-5.857-5.857-15.355-5.858-21.213,0.001c-5.858,5.858-5.858,15.355,0,21.213l150.004,150c2.813,2.813,6.628,4.393,10.606,4.393 s7.794-1.581,10.606-4.394l149.996-150C331.465,94.749,331.465,85.251,325.607,79.393z"}));function xa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var si={},ms;function Jd(){return ms||(ms=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.formatCustomerSupportProviderText=e.IDENTITY_GATE_VERSION_HEADER=e.IDENTITY_GATE_REQUIRED_EVENT=e.IDENTITY_GATE_PROTOCOL_VERSION=e.IDENTITY_GATE_PROTOCOL_V2=e.IDENTITY_GATE_PROTOCOL_V1=e.OutputStreamTypesEnum=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE=e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=e.readOptionalNullableString=e.readOptionalString=e.readOptionalNullableNumber=e.readOptionalNumber=e.isUnknownRecord=e.INTERACTIVE_WIDGET_TYPES=e.INTERACTIVE_WIDGET_EVENTS=e.AgentDisplayFacetRoleType=e.AgentDisplayFacetModeType=void 0;var t;(function(h){h.SPRITESHEET="spritesheet",h.LOTTIE="lottie",h.IMAGE="image",h.SVG="svg",h.VIDEO="video"})(t||(e.AgentDisplayFacetModeType=t={}));var n;(function(h){h.LAUNCHER="launcher",h.ASSISTANT="assistant",h.SEARCH="search"})(n||(e.AgentDisplayFacetRoleType=n={})),e.INTERACTIVE_WIDGET_EVENTS={requested:"interactiveWidget.requested"},e.INTERACTIVE_WIDGET_TYPES={directChatCustomerSupport:"direct_chat_customer_support"};const r=h=>typeof h=="object"&&h!==null&&!Array.isArray(h);e.isUnknownRecord=r;const i=h=>typeof h=="number"&&Number.isFinite(h)?h:void 0;e.readOptionalNumber=i;const a=h=>h===null?null:(0,e.readOptionalNumber)(h);e.readOptionalNullableNumber=a;const s=h=>typeof h=="string"?h:void 0;e.readOptionalString=s;const o=h=>h===null?null:(0,e.readOptionalString)(h);e.readOptionalNullableString=o,e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=5,e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE="Europe/Paris",e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=[{dayOfWeek:1,key:"monday",defaultLabel:"Monday"},{dayOfWeek:2,key:"tuesday",defaultLabel:"Tuesday"},{dayOfWeek:3,key:"wednesday",defaultLabel:"Wednesday"},{dayOfWeek:4,key:"thursday",defaultLabel:"Thursday"},{dayOfWeek:5,key:"friday",defaultLabel:"Friday"},{dayOfWeek:6,key:"saturday",defaultLabel:"Saturday"},{dayOfWeek:7,key:"sunday",defaultLabel:"Sunday"}],e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=[1,2,3,4,5];var u;(function(h){h.OUTPUT_STREAM_MESSAGE_START="message_start",h.OUTPUT_STREAM_MESSAGE_DELTA="message_delta",h.OUTPUT_STREAM_MESSAGE_END="message_end",h.OUTPUT_STREAM_CLIENT_EVENT="client_event",h.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE="number_of_steps",h.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE="current_step_number",h.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE="current_step_name",h.OUTPUT_STREAM_ERROR="error"})(u||(e.OutputStreamTypesEnum=u={})),e.IDENTITY_GATE_PROTOCOL_V1=1,e.IDENTITY_GATE_PROTOCOL_V2=2,e.IDENTITY_GATE_PROTOCOL_VERSION=e.IDENTITY_GATE_PROTOCOL_V1,e.IDENTITY_GATE_REQUIRED_EVENT="identity.required",e.IDENTITY_GATE_VERSION_HEADER="X-ChatSystem-Identity-Gate-Version";const c={"+1":"πŸ‘",thumbsup:"πŸ‘","-1":"πŸ‘Ž",thumbsdown:"πŸ‘Ž",clap:"πŸ‘",wave:"πŸ‘‹",raised_hands:"πŸ™Œ",pray:"πŸ™",muscle:"πŸ’ͺ",ok_hand:"πŸ‘Œ",point_up:"☝️",point_down:"πŸ‘‡",point_left:"πŸ‘ˆ",point_right:"πŸ‘‰",eyes:"πŸ‘€",brain:"🧠",heart:"❀️",orange_heart:"🧑",yellow_heart:"πŸ’›",green_heart:"πŸ’š",blue_heart:"πŸ’™",purple_heart:"πŸ’œ",broken_heart:"πŸ’”",fire:"πŸ”₯",tada:"πŸŽ‰",sparkles:"✨",star:"⭐",white_check_mark:"βœ…",heavy_check_mark:"βœ”οΈ",x:"❌",warning:"⚠️",information_source:"ℹ️",question:"❓",exclamation:"❗",bulb:"πŸ’‘",memo:"πŸ“",pushpin:"πŸ“Œ",paperclip:"πŸ“Ž",link:"πŸ”—",lock:"πŸ”’",unlock:"πŸ”“",bell:"πŸ””",phone:"☎️",email:"βœ‰οΈ",incoming_envelope:"πŸ“¨",package:"πŸ“¦",truck:"🚚",moneybag:"πŸ’°",credit_card:"πŸ’³",gift:"🎁",shopping_bags:"πŸ›οΈ",clock3:"πŸ•’",hourglass_flowing_sand:"⏳",rocket:"πŸš€",smile:"πŸ˜„",smiley:"πŸ˜ƒ",grinning:"πŸ˜€",slightly_smiling_face:"πŸ™‚",wink:"πŸ˜‰",blush:"😊",relaxed:"☺️",heart_eyes:"😍",thinking_face:"πŸ€”",neutral_face:"😐",confused:"πŸ˜•",worried:"😟",cry:"😒",sob:"😭",sweat_smile:"πŸ˜…",joy:"πŸ˜‚",rofl:"🀣",upside_down_face:"πŸ™ƒ",sunglasses:"😎",tada_face:"πŸ₯³",angry:"😠",rage:"😑",face_with_symbols_on_mouth:"🀬",scream:"😱",zipper_mouth_face:"🀐",skin_tone_2:"🏻",skin_tone_3:"🏼",skin_tone_4:"🏽",skin_tone_5:"🏾",skin_tone_6:"🏿"},d=h=>h.replace(/-/g,"_"),f=h=>h.replace(/:([a-zA-Z0-9_+\-]+):/g,(b,y)=>c[d(y)]??b),p=({text:h,provider:b})=>b==="slack"?f(h):h;e.formatCustomerSupportProviderText=p})(si)),si}var Z=Jd();const oi=e=>({mode:Z.AgentDisplayFacetModeType.SVG,role:e}),Zd=()=>({interactiveWidgets:{available:[{widgetType:Z.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport,enabled:!0}]},agent:{display:{name:"",CSSRules:"",[Z.AgentDisplayFacetRoleType.LAUNCHER]:oi(Z.AgentDisplayFacetRoleType.LAUNCHER),[Z.AgentDisplayFacetRoleType.ASSISTANT]:oi(Z.AgentDisplayFacetRoleType.ASSISTANT),[Z.AgentDisplayFacetRoleType.SEARCH]:oi(Z.AgentDisplayFacetRoleType.SEARCH)},text:{initialText:""},customNameToDisplay:"",isAudioAllowed:!0},api:{settings:{maxUserMessagesPerDiscussion:20},tracking:{queryParamToAppend:""}}}),rn=C.createContext({companySettings:Zd(),setCompanySettings:()=>{}}),_a=()=>{const e=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:3080"),t=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:5173");return e||t};class mu{enabled;constructor({isLocalDev:t,shouldDisplayLogs:n}){this.enabled=t||n}log(...t){this.enabled&&console.log(...t)}warn(...t){this.enabled&&console.warn(...t)}error(...t){this.enabled&&console.error(...t)}}let gu=new mu({isLocalDev:_a(),shouldDisplayLogs:!1});const ef=e=>new mu({isLocalDev:_a(),shouldDisplayLogs:!!e}),tf=e=>{gu=e},Ct=()=>gu,En=globalThis;En.__WIDGET_ASSET_CACHE__||(En.__WIDGET_ASSET_CACHE__={svg:new Map,img:new Map,lot:new Map,spr:new Map});En.__WIDGET_PRELOAD_KEYS__||(En.__WIDGET_PRELOAD_KEYS__=new Set);const ui=En.__WIDGET_PRELOAD_KEYS__,jt=En.__WIDGET_ASSET_CACHE__,nf="widget-assets-v1";async function Mr(e,t){const n=Ct();try{const r=await caches.open(nf),i=await r.match(e,{ignoreSearch:!1});if(i)return i.clone();const a=await fetch(e,{cache:"force-cache",mode:"cors",keepalive:!0,...t});if(!a.ok)throw new Error(`HTTP ${a.status} for ${e}`);return r.put(e,a.clone()),a}catch(r){return n.warn("error while fetching",r),new Response(null,{status:520,statusText:"Error in client - Fetch failed"})}}async function bu(e){const t=jt.svg.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).text();if(typeof globalThis.DOMPurify<"u"&&typeof globalThis.DOMPurify.sanitize=="function")try{const s=new DOMParser().parseFromString(i,"image/svg+xml"),o=new XMLSerializer().serializeToString(s.documentElement);return{sanitized:globalThis.DOMPurify.sanitize(o,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}catch{return{sanitized:globalThis.DOMPurify.sanitize(i,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}else return{sanitized:i}})();return jt.svg.set(e,{promise:n,ts:Date.now()}),n}function Eu(e){const t=jt.img.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).blob();return{blobUrl:URL.createObjectURL(i)}})();return jt.img.set(e,{promise:n,ts:Date.now()}),n}function Tu(e){const t=jt.lot.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).arrayBuffer(),a=new Uint8Array(i);if(a.length>=4&&a[0]===80&&a[1]===75&&a[2]===3&&a[3]===4||e.endsWith(".lottie"))return{kind:"zip",blobUrl:URL.createObjectURL(new Blob([i],{type:"application/zip"}))};const o=new TextDecoder().decode(a);return{kind:"json",data:JSON.parse(o)}})();return jt.lot.set(e,{promise:n,ts:Date.now()}),n}function yu(e){const t=jt.spr.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Mr(e)).blob();let a=null;try{a=await createImageBitmap(i)}catch{a=null}const{imgEl:s,width:o,height:u}=await new Promise((c,d)=>{const f=URL.createObjectURL(i),p=new Image;p.crossOrigin="anonymous",p.onload=()=>{const h=p.naturalWidth,b=p.naturalHeight;c({imgEl:p,width:h,height:b})},p.onerror=()=>{URL.revokeObjectURL(f),d(new Error("Spritesheet image decode failed"))},p.src=f,p.decode?.().catch(()=>{})});return{imgEl:s,bitmap:a,width:o,height:u}})();return jt.spr.set(e,{promise:n,ts:Date.now()}),n}function rf(e){e.images?.forEach(t=>void Eu(t)),e.svgs?.forEach(t=>void bu(t)),e.lotties?.forEach(t=>void Tu(t)),e.sprites?.forEach(t=>void yu(t))}function af(e){const t=Ct();try{const n=document.createElement("link");n.rel="preconnect",n.href=e,n.crossOrigin="anonymous",document.head.appendChild(n);const r=document.createElement("link");r.rel="dns-prefetch",r.href=e,document.head.appendChild(r)}catch(n){t.warn("error in injectPreconnect",n)}}function xu(e){return new URL(e,document.baseURI).toString()}function sf(e,t){const n=document.head.querySelectorAll('link[rel="preload"]');for(const r of n)if((e?r.as===e||r.getAttribute("as")===e:!0)&&r.href===t)return!0;return!1}function ar(e,t,n,r){const i=xu(n),a=`${e}|${t??""}|${i}`;if(ui.has(a))return;if(sf(t,i)){ui.add(a);return}const s=document.createElement("link");s.rel=e,t&&(s.as=t),s.href=i,s.crossOrigin="anonymous",r&&(s.type=r),s.setAttribute("data-chatsystem-preload","1"),document.head.appendChild(s),ui.add(a)}function of(e){const t=s=>Array.from(new Set((s??[]).map(xu))),n=t(e.images),r=t(e.svgs),i=t(e.lotties),a=t(e.sprites);n.forEach(s=>ar("preload","image",s)),r.forEach(s=>ar("preload","fetch",s,"image/svg+xml")),i.forEach(s=>ar("preload","fetch",s,"application/zip")),a.forEach(s=>ar("preload","fetch",s))}const uf=({src:e})=>{const[t,n]=C.useState(null);return C.useEffect(()=>{let r=!1;return Eu(e).then(({blobUrl:i})=>{n(i)}).catch(()=>n(null)),()=>{t&&!r&&(URL.revokeObjectURL(t),r=!0)}},[e]),x.jsx("img",{src:t??e,decoding:"async",loading:"eager"})};function lf(e){return!!e&&typeof e=="object"&&"blob"in e&&e.blob instanceof Blob}function cf({src:e,autoplay:t=!0,loop:n=!0,className:r,style:i,placeholder:a,fallback:s,onLoaded:o,onError:u}){const[c,d]=C.useState({kind:"loading"});return C.useEffect(()=>{let f=null,p=!1;return d({kind:"loading"}),Tu(e).then(async h=>{if(!p)if(h.kind==="zip"){const b=lf(h)?h.blob:await(await fetch(h.blobUrl)).blob();f=URL.createObjectURL(b),d({kind:"lottieZip",blobUrl:f}),o?.(f)}else d({kind:"json",data:h.data}),o?.(h.data)}).catch(h=>!p&&(d({kind:"error",err:h}),u?.(h))),()=>{p=!0,f&&URL.revokeObjectURL(f)}},[e]),c.kind==="loading"?x.jsx("div",{className:"flex items-center justify-center rounded-xl border border-dashed p-6 text-sm opacity-70 "+(r??""),style:{minHeight:96,...i},children:a??"Loading animation…"}):c.kind==="error"?x.jsx("div",{className:"flex items-center justify-center rounded-xl border p-6 text-sm text-red-600 "+(r??""),style:{minHeight:96,...i},children:s??"Failed to load animation"}):c.kind==="json"?x.jsx(Xd,{animationData:c.data,loop:n,autoplay:t,className:r,style:i,rendererSettings:{preserveAspectRatio:"xMidYMid meet"}}):x.jsx(Qd.DotLottieReact,{src:c.blobUrl,loop:n,autoplay:t,className:r,style:i})}async function df(e,t={}){const{minPeriod:n=8,maxPeriod:r=Math.floor(Math.min(e.width,e.height)/2),gutterSearchRadius:i=3,debug:a=!1}=t,s=Ct();if(e.width<n*2||e.height<n*2)return a&&s.warn("detectGrid: image too small"),null;const o=document.createElement("canvas");o.width=e.naturalWidth,o.height=e.naturalHeight;const u=o.getContext("2d");if(!u)return null;u.drawImage(e,0,0);const{data:c}=u.getImageData(0,0,o.width,o.height),d=o.width,f=o.height,p=new Uint8ClampedArray(d*f);for(let U=0;U<f;U++){const z=U*d;for(let B=0;B<d;B++){const $=(z+B)*4;p[z+B]=.299*c[$]+.587*c[$+1]+.114*c[$+2]|0}}const h=new Float32Array(d),b=new Float32Array(f);for(let U=1;U<d-1;U++){let z=0;for(let B=0;B<f;B++){const $=B*d+U,X=p[$+1]-p[$-1];z+=Math.abs(X)}h[U]=z}for(let U=1;U<f-1;U++){let z=0;for(let B=0;B<d;B++){const $=U*d+B,X=p[$+d]-p[$-d];z+=Math.abs(X)}b[U]=z}const y=gs(h,n,Math.min(r,d/2)),w=gs(b,n,Math.min(r,f/2));if(!y||!w)return a&&s.warn("detectGrid: could not find periods"),null;const S=Math.max(1,Math.round(d/y)),v=Math.max(1,Math.round(f/w)),k=bs(h,y,S,i),L=bs(b,w,v,i),A=Math.max(1,y-k),N=Math.max(1,w-L);if(A*S>d+2||N*v>f+2)return a&&s.warn("detectGrid: sanity check failed"),null;const Y=$i(h,60),V=$i(b,60),ne=Math.max(0,Es(h,Y)),I=Math.max(0,Es(b,V));return a&&s.log({periodX:y,periodY:w,columns:S,rows:v,gutterX:k,gutterY:L,frameWidth:A,frameHeight:N,originX:ne,originY:I}),{columns:S,rows:v,frameWidth:A,frameHeight:N,gutterX:k,gutterY:L,originX:ne,originY:I}}function gs(e,t,n){const r=_u(e);let i=0;for(let h=0;h<e.length;h++){const b=e[h]-r;i+=b*b}if(i===0)return null;const a=new Float32Array(n+1);let s=0,o=-1/0;for(let h=t;h<=n;h++){let b=0;for(let w=0;w+h<e.length;w++)b+=(e[w]-r)*(e[w+h]-r);const y=b/i;a[h]=y,y>o&&(o=y,s=h)}if(s<=t||s>=n)return s||null;const u=a[s-1],c=a[s],d=a[s+1],f=u-2*c+d,p=f===0?0:.5*(u-d)/f;return s+p}function bs(e,t,n,r){const i=[];for(let o=1;o<n;o++){const u=o*t;let c=1/0,d=u;for(let f=-r;f<=r;f++){const p=u+f;if(p<=0||p>=e.length)continue;const h=e[p];h<c&&(c=h,d=p)}i.push(d)}if(i.length<1)return 0;const a=[];for(const o of i){const u=e[o]*1.5+$i(e,10)*.5;let c=o,d=o;for(;c>1&&e[c-1]<=u;)c--;for(;d<e.length-2&&e[d+1]<=u;)d++;a.push(Math.max(0,d-c+1))}const s=Math.round(_u(a));return Math.max(0,Math.min(s,Math.floor(t/4)))}function _u(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}function $i(e,t){const n=Array.from(e);n.sort((i,a)=>i-a);const r=Math.max(0,Math.min(n.length-1,Math.floor(t/100*n.length)));return n[r]}function Es(e,t){for(let n=0;n<e.length;n++)if(e[n]>t)return n;return 0}function ff(e,t,n,r,i){const{data:a}=e.getImageData(t,n,r,i);let s=0;for(let o=3;o<a.length;o+=4)s+=a[o];return s/(255*(a.length/4))<.03}const Su=C.createContext(Ct()),Sn=()=>C.useContext(Su),hf=C.forwardRef(function({src:t,frameWidth:n,frameHeight:r,columns:i,rows:a,gutterX:s=0,gutterY:o=0,frameCount:u,atlasFrames:c,fps:d=12,autoplay:f=!0,loop:p=!0,startFrame:h=0,direction:b="forward",scale:y=1,backgroundColor:w,className:S,style:v,pauseWhenHidden:k=!1,originX:L,originY:A,onLoad:N,onEnd:Y,onFrame:V},ne){const I=Sn(),U=C.useRef(null),z=C.useRef(null),[B,$]=C.useState(null),[X,he]=C.useState(null),[pe,we]=C.useState(null),[Oe,m]=C.useState(!1),[G,re]=C.useState(!!f),[E,te]=C.useState(h),se=C.useRef(1),[W,oe]=C.useState(null),ae=Math.max(1,Math.floor(typeof window<"u"&&window.devicePixelRatio||1));C.useEffect(()=>{let ge=!1;return m(!1),yu(t).then(({imgEl:ve,bitmap:H})=>{ge||($(ve),he(H),we({w:ve.naturalWidth,h:ve.naturalHeight}),m(!0),N?.())}).catch(()=>{}),()=>{ge=!0}},[t,N]),C.useEffect(()=>{let ge=!1;return(async()=>{if(!B)return;if(c&&c.length){oe(null);return}if(!(!n||!r||!i||!a)){oe(null);return}const H=await df(B,{debug:!0});ge||(H?oe({frameWidth:H.frameWidth,frameHeight:H.frameHeight,columns:H.columns,rows:H.rows,gutterX:H.gutterX,gutterY:H.gutterY}):(oe(null),I.warn("RemoteSpritesheet: auto-detect failed; please provide grid props.")))})(),()=>{ge=!0}},[B,c,n,r,i,a,I]);const de=W?.frameWidth??n,ie=W?.frameHeight??r,Ne=W?.columns??i,q=W?.rows??a,Me=W?.gutterX??s,Pe=W?.gutterY??o,Le=W?.originX??L??0,it=W?.originY??A??0,Lt=C.useMemo(()=>{if(c&&c.length>0)return{cols:0,rows:0};if(!pe||!de||!ie)return{cols:0,rows:0};const ge=Ne??Math.floor((pe.w+Me)/(de+Me)),ve=q??Math.floor((pe.h+Pe)/(ie+Pe));return{cols:Math.max(0,ge),rows:Math.max(0,ve)}},[c,pe,de,ie,Ne,q,Me,Pe]),ze=C.useMemo(()=>{if(c?.length)return c;if(!de||!ie)return[];const{cols:ge,rows:ve}=Lt;if(!ge||!ve)return[];const H=Math.min(u??ge*ve,ge*ve),Q=[];for(let O=0;O<H;O++){const M=O%ge,K=Math.floor(O/ge),ue=Le+M*(de+Me),J=it+K*(ie+Pe);Q.push({x:ue,y:J,w:de,h:ie})}if(B&&Q.length){const O=document.createElement("canvas");O.width=B.naturalWidth,O.height=B.naturalHeight;const M=O.getContext("2d");if(M){M.drawImage(B,0,0);let K=Q.length;for(;K>0&&ff(M,Q[K-1].x,Q[K-1].y,Q[K-1].w,Q[K-1].h);)K--;return Q.slice(0,K)}}return Q},[c,Lt,u,de,ie,Me,Pe,B,Le,it]),Dt=()=>{const ge=U.current;if(!ge||ze.length===0)return;const ve=ze[Math.max(0,Math.min(E,ze.length-1))],H=Math.max(1,Math.round(ve.w*y)),Q=Math.max(1,Math.round(ve.h*y));ge.style.width=H+"px",ge.style.height=Q+"px",ge.width=H*ae,ge.height=Q*ae};C.useEffect(()=>{Dt()},[Oe,y,ze.length,ae,E]);const vt=ge=>{const ve=X??B??null,H=U.current;if(!H||!ve||ze.length===0)return;const Q=H.getContext("2d");if(!Q)return;Q.save(),Q.setTransform(1,0,0,1,0,0),Q.clearRect(0,0,H.width,H.height),w&&(Q.fillStyle=w,Q.fillRect(0,0,H.width,H.height));const O=ze[ge];Q.scale(ae,ae),Q.drawImage(ve,O.x,O.y,O.w,O.h,0,0,Math.round(O.w*y),Math.round(O.h*y)),Q.restore()};return C.useEffect(()=>{if(!Oe||ze.length===0)return;let ge=performance.now();const ve=1e3/Math.max(1,Math.min(120,d)),H=Q=>{if(z.current=requestAnimationFrame(H),!G){vt(E);return}const O=Q-ge;if(O<ve){vt(E);return}ge=Q-O%ve,te(M=>{const K=ze.length-1;let ue=M;return b==="forward"?ue=M+1:b==="backward"?ue=M-1:((M>=K&&se.current===1||M<=0&&se.current===-1)&&(se.current*=-1),ue=M+se.current),(ue>K||ue<0)&&(p?ue=b==="backward"?K:0:(ue=Math.max(0,Math.min(ue,K)),re(!1),Y?.())),ue})};return z.current=requestAnimationFrame(H),()=>{z.current&&cancelAnimationFrame(z.current)}},[Oe,d,G,p,b,ze.length,E]),C.useEffect(()=>{vt(E),V?.(E)},[E,Oe,y,ae]),C.useEffect(()=>{if(!k)return;const ge=()=>{document.hidden&&re(!1)};return document.addEventListener("visibilitychange",ge),()=>document.removeEventListener("visibilitychange",ge)},[k]),C.useImperativeHandle(ne,()=>({play:()=>re(!0),pause:()=>re(!1),toggle:()=>re(ge=>!ge),gotoFrame:ge=>te(()=>Math.max(0,Math.min(ge,Math.max(0,ze.length-1)))),isPlaying:()=>G,currentFrame:()=>E}),[G,E,ze.length]),x.jsx("div",{className:S,style:v,children:x.jsx("canvas",{ref:U,"aria-label":"spritesheet animation"})})});function pf({url:e,className:t}){const[n,r]=C.useState(""),[i,a]=C.useState(null);return C.useEffect(()=>{let s=!1;return bu(e).then(({sanitized:o})=>{s||(r(o),a(null))}).catch(o=>!s&&a(o.message??"Failed to load")),()=>{s=!0}},[e]),i?x.jsxs("div",{className:t,role:"alert",children:["Couldn’t load SVG: ",i]}):n?x.jsx("div",{className:t,dangerouslySetInnerHTML:{__html:n}}):x.jsx("div",{className:t})}function mf({mobile:e=.6,tablet:t=.8,desktop:n=1}){const[r,i]=C.useState(n);return C.useEffect(()=>{if(typeof window>"u")return;const a=[{mq:window.matchMedia("(max-width: 639px)"),value:e},{mq:window.matchMedia("(min-width: 640px) and (max-width: 1023px)"),value:t},{mq:window.matchMedia("(min-width: 1024px)"),value:n}],s=()=>{for(const{mq:o,value:u}of a)if(o.matches){i(u);break}};return a.forEach(({mq:o})=>o.addEventListener("change",s)),s(),()=>{a.forEach(({mq:o})=>o.removeEventListener("change",s))}},[e,t,n]),r}const Sa=({facet:e})=>{const t=Sn(),{mode:n,assetUrl:r,spr_columns:i,spr_fps:a,spr_frameCount:s,spr_frameHeight:o,spr_frameWidth:u,spr_gutterX:c,spr_gutterY:d,spr_rows:f,spr_originX:p,spr_originY:h,spr_scaleDesktop:b,spr_scaleMobile:y,spr_scaleTablet:w}=e,S=mf({mobile:y??.6,tablet:w??.8,desktop:b??1});return x.jsxs("div",{className:"assetContainer",children:[n===Z.AgentDisplayFacetModeType.LOTTIE&&x.jsx(cf,{src:r,autoplay:!0,onError:v=>t.error(v)}),n===Z.AgentDisplayFacetModeType.SVG&&x.jsx("div",{children:x.jsx(pf,{url:r})}),n===Z.AgentDisplayFacetModeType.IMAGE&&x.jsx(uf,{src:r}),n===Z.AgentDisplayFacetModeType.SPRITESHEET&&x.jsx(hf,{src:r,frameCount:s,columns:i,rows:f,fps:a,frameHeight:o,frameWidth:u,gutterX:c,gutterY:d,originX:p,originY:h,scale:S,autoplay:!0})]})},gf=({isWidgetOpen:e,setIsWidgetOpen:t})=>{const{companySettings:n}=C.useContext(rn);return x.jsxs("div",{className:`launcher
2
2
  fixed
3
3
  z-[999999999]
4
4
  transition
@@ -73,7 +73,7 @@ For more details see https://formatjs.io/docs/getting-started/message-distributi
73
73
  `))+1))}const s="#".repeat(i),o=n.enter("headingAtx"),u=n.enter("phrasing");a.move(s+" ");let c=n.containerPhrasing(e,{before:"# ",after:`
74
74
  `,...a.current()});return/^[\t ]/.test(c)&&(c="&#x"+c.charCodeAt(0).toString(16).toUpperCase()+";"+c.slice(1)),c=c?s+" "+c:s,n.options.closeAtx&&(c+=" "+s),u(),o(),c}wc.peek=r2;function wc(e){return e.value||""}function r2(){return"<"}Ic.peek=i2;function Ic(e,t,n,r){const i=Xa(n),a=i==='"'?"Quote":"Apostrophe",s=n.enter("image");let o=n.enter("label");const u=n.createTracker(r);let c=u.move("![");return c+=u.move(n.safe(e.alt,{before:c,after:"]",...u.current()})),c+=u.move("]("),o(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(o=n.enter("destinationLiteral"),c+=u.move("<"),c+=u.move(n.safe(e.url,{before:c,after:">",...u.current()})),c+=u.move(">")):(o=n.enter("destinationRaw"),c+=u.move(n.safe(e.url,{before:c,after:e.title?" ":")",...u.current()}))),o(),e.title&&(o=n.enter(`title${a}`),c+=u.move(" "+i),c+=u.move(n.safe(e.title,{before:c,after:i,...u.current()})),c+=u.move(i),o()),c+=u.move(")"),s(),c}function i2(){return"!"}vc.peek=a2;function vc(e,t,n,r){const i=e.referenceType,a=n.enter("imageReference");let s=n.enter("label");const o=n.createTracker(r);let u=o.move("![");const c=n.safe(e.alt,{before:u,after:"]",...o.current()});u+=o.move(c+"]["),s();const d=n.stack;n.stack=[],s=n.enter("reference");const f=n.safe(n.associationId(e),{before:u,after:"]",...o.current()});return s(),n.stack=d,a(),i==="full"||!c||c!==f?u+=o.move(f+"]"):i==="shortcut"?u=u.slice(0,-1):u+=o.move("]"),u}function a2(){return"!"}kc.peek=s2;function kc(e,t,n){let r=e.value||"",i="`",a=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++a<n.unsafe.length;){const s=n.unsafe[a],o=n.compilePattern(s);let u;if(s.atBreak)for(;u=o.exec(r);){let c=u.index;r.charCodeAt(c)===10&&r.charCodeAt(c-1)===13&&c--,r=r.slice(0,c)+" "+r.slice(u.index+1)}}return i+r+i}function s2(){return"`"}function Nc(e,t){const n=Oa(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}Rc.peek=o2;function Rc(e,t,n,r){const i=Xa(n),a=i==='"'?"Quote":"Apostrophe",s=n.createTracker(r);let o,u;if(Nc(e,n)){const d=n.stack;n.stack=[],o=n.enter("autolink");let f=s.move("<");return f+=s.move(n.containerPhrasing(e,{before:f,after:">",...s.current()})),f+=s.move(">"),o(),n.stack=d,f}o=n.enter("link"),u=n.enter("label");let c=s.move("[");return c+=s.move(n.containerPhrasing(e,{before:c,after:"](",...s.current()})),c+=s.move("]("),u(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),c+=s.move("<"),c+=s.move(n.safe(e.url,{before:c,after:">",...s.current()})),c+=s.move(">")):(u=n.enter("destinationRaw"),c+=s.move(n.safe(e.url,{before:c,after:e.title?" ":")",...s.current()}))),u(),e.title&&(u=n.enter(`title${a}`),c+=s.move(" "+i),c+=s.move(n.safe(e.title,{before:c,after:i,...s.current()})),c+=s.move(i),u()),c+=s.move(")"),o(),c}function o2(e,t,n){return Nc(e,n)?"<":"["}Oc.peek=u2;function Oc(e,t,n,r){const i=e.referenceType,a=n.enter("linkReference");let s=n.enter("label");const o=n.createTracker(r);let u=o.move("[");const c=n.containerPhrasing(e,{before:u,after:"]",...o.current()});u+=o.move(c+"]["),s();const d=n.stack;n.stack=[],s=n.enter("reference");const f=n.safe(n.associationId(e),{before:u,after:"]",...o.current()});return s(),n.stack=d,a(),i==="full"||!c||c!==f?u+=o.move(f+"]"):i==="shortcut"?u=u.slice(0,-1):u+=o.move("]"),u}function u2(){return"["}function Qa(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function l2(e){const t=Qa(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function c2(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Lc(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function d2(e,t,n,r){const i=n.enter("list"),a=n.bulletCurrent;let s=e.ordered?c2(n):Qa(n);const o=e.ordered?s==="."?")":".":l2(n);let u=t&&n.bulletLastUsed?s===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((s==="*"||s==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(u=!0),Lc(n)===s&&d){let f=-1;for(;++f<e.children.length;){const p=e.children[f];if(p&&p.type==="listItem"&&p.children&&p.children[0]&&p.children[0].type==="thematicBreak"){u=!0;break}}}}u&&(s=o),n.bulletCurrent=s;const c=n.containerFlow(e,r);return n.bulletLastUsed=s,n.bulletCurrent=a,i(),c}function f2(e){const t=e.options.listItemIndent||"one";if(t!=="tab"&&t!=="one"&&t!=="mixed")throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function h2(e,t,n,r){const i=f2(n);let a=n.bulletCurrent||Qa(n);t&&t.type==="list"&&t.ordered&&(a=(typeof t.start=="number"&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let s=a.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(s=Math.ceil(s/4)*4);const o=n.createTracker(r);o.move(a+" ".repeat(s-a.length)),o.shift(s);const u=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,o.current()),d);return u(),c;function d(f,p,h){return p?(h?"":" ".repeat(s))+f:(h?a:a+" ".repeat(s-a.length))+f}}function p2(e,t,n,r){const i=n.enter("paragraph"),a=n.enter("phrasing"),s=n.containerPhrasing(e,r);return a(),i(),s}const m2=Yr(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function g2(e,t,n,r){return(e.children.some(function(s){return m2(s)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function b2(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Dc.peek=E2;function Dc(e,t,n,r){const i=b2(n),a=n.enter("strong"),s=n.createTracker(r);let o=s.move(i+i);return o+=s.move(n.containerPhrasing(e,{before:o,after:i,...s.current()})),o+=s.move(i+i),a(),o}function E2(e,t,n){return n.options.strong||"*"}function T2(e,t,n,r){return n.safe(e.value,r)}function y2(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function x2(e,t,n){const r=(Lc(n)+(n.options.ruleSpaces?" ":"")).repeat(y2(n));return n.options.ruleSpaces?r.slice(0,-1):r}const Pc={blockquote:YT,break:zo,code:QT,definition:JT,emphasis:Ac,hardBreak:zo,heading:n2,html:wc,image:Ic,imageReference:vc,inlineCode:kc,link:Rc,linkReference:Oc,list:d2,listItem:h2,paragraph:p2,root:g2,strong:Dc,text:T2,thematicBreak:x2};function _2(){return{enter:{table:S2,tableData:$o,tableHeader:$o,tableRow:A2},exit:{codeText:w2,table:C2,tableData:Li,tableHeader:Li,tableRow:Li}}}function S2(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function C2(e){this.exit(e),this.data.inTable=void 0}function A2(e){this.enter({type:"tableRow",children:[]},e)}function Li(e){this.exit(e)}function $o(e){this.enter({type:"tableCell",children:[]},e)}function w2(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,I2));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function I2(e,t){return t==="|"?t:e}function v2(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:`
75
75
  `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:s,tableCell:u,tableRow:o}};function s(h,b,y,w){return c(d(h,y,w),h.align)}function o(h,b,y,w){const S=f(h,y,w),v=c([S]);return v.slice(0,v.indexOf(`
76
- `))}function u(h,b,y,w){const S=y.enter("tableCell"),v=y.enter("phrasing"),k=y.containerPhrasing(h,{...w,before:a,after:a});return v(),S(),k}function c(h,b){return zT(h,{align:b,alignDelimiters:r,padding:n,stringLength:i})}function d(h,b,y){const w=h.children;let S=-1;const v=[],k=b.enter("table");for(;++S<w.length;)v[S]=f(w[S],b,y);return k(),v}function f(h,b,y){const w=h.children;let S=-1;const v=[],k=b.enter("tableRow");for(;++S<w.length;)v[S]=u(w[S],h,b,y);return k(),v}function p(h,b,y){let w=Pc.inlineCode(h,b,y);return y.stack.includes("tableCell")&&(w=w.replace(/\|/g,"\\$&")),w}}function k2(){return{exit:{taskListCheckValueChecked:Yo,taskListCheckValueUnchecked:Yo,paragraph:R2}}}function N2(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:O2}}}function Yo(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function R2(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const i=t.children;let a=-1,s;for(;++a<i.length;){const o=i[a];if(o.type==="paragraph"){s=o;break}}s===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function O2(e,t,n,r){const i=e.children[0],a=typeof e.checked=="boolean"&&i&&i.type==="paragraph",s="["+(e.checked?"x":" ")+"] ",o=n.createTracker(r);a&&o.move(s);let u=Pc.listItem(e,t,n,{...r,...o.current()});return a&&(u=u.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,c)),u;function c(d){return d+s}}function L2(){return[dT(),OT(),MT(),_2(),k2()]}function D2(e){return{extensions:[fT(),LT(e),BT(),v2(e),N2()]}}const P2={tokenize:j2,partial:!0},Mc={tokenize:z2,partial:!0},Bc={tokenize:$2,partial:!0},Fc={tokenize:Y2,partial:!0},M2={tokenize:G2,partial:!0},Hc={name:"wwwAutolink",tokenize:H2,previous:jc},Uc={name:"protocolAutolink",tokenize:U2,previous:zc},Ot={name:"emailAutolink",tokenize:F2,previous:$c},wt={};function B2(){return{text:wt}}let Vt=48;for(;Vt<123;)wt[Vt]=Ot,Vt++,Vt===58?Vt=65:Vt===91&&(Vt=97);wt[43]=Ot;wt[45]=Ot;wt[46]=Ot;wt[95]=Ot;wt[72]=[Ot,Uc];wt[104]=[Ot,Uc];wt[87]=[Ot,Hc];wt[119]=[Ot,Hc];function F2(e,t,n){const r=this;let i,a;return s;function s(f){return!pa(f)||!$c.call(r,r.previous)||Ka(r.events)?n(f):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),o(f))}function o(f){return pa(f)?(e.consume(f),o):f===64?(e.consume(f),u):n(f)}function u(f){return f===46?e.check(M2,d,c)(f):f===45||f===95||Ve(f)?(a=!0,e.consume(f),u):d(f)}function c(f){return e.consume(f),i=!0,u}function d(f){return a&&i&&Je(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(f)):n(f)}}function H2(e,t,n){const r=this;return i;function i(s){return s!==87&&s!==119||!jc.call(r,r.previous)||Ka(r.events)?n(s):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(P2,e.attempt(Mc,e.attempt(Bc,a),n),n)(s))}function a(s){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(s)}}function U2(e,t,n){const r=this;let i="",a=!1;return s;function s(f){return(f===72||f===104)&&zc.call(r,r.previous)&&!Ka(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(f),e.consume(f),o):n(f)}function o(f){if(Je(f)&&i.length<5)return i+=String.fromCodePoint(f),e.consume(f),o;if(f===58){const p=i.toLowerCase();if(p==="http"||p==="https")return e.consume(f),u}return n(f)}function u(f){return f===47?(e.consume(f),a?c:(a=!0,u)):n(f)}function c(f){return f===null||_r(f)||Ie(f)||en(f)||jr(f)?n(f):e.attempt(Mc,e.attempt(Bc,d),n)(f)}function d(f){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(f)}}function j2(e,t,n){let r=0;return i;function i(s){return(s===87||s===119)&&r<3?(r++,e.consume(s),i):s===46&&r===3?(e.consume(s),a):n(s)}function a(s){return s===null?n(s):t(s)}}function z2(e,t,n){let r,i,a;return s;function s(c){return c===46||c===95?e.check(Fc,u,o)(c):c===null||Ie(c)||en(c)||c!==45&&jr(c)?u(c):(a=!0,e.consume(c),s)}function o(c){return c===95?r=!0:(i=r,r=void 0),e.consume(c),s}function u(c){return i||r||!a?n(c):t(c)}}function $2(e,t){let n=0,r=0;return i;function i(s){return s===40?(n++,e.consume(s),i):s===41&&r<n?a(s):s===33||s===34||s===38||s===39||s===41||s===42||s===44||s===46||s===58||s===59||s===60||s===63||s===93||s===95||s===126?e.check(Fc,t,a)(s):s===null||Ie(s)||en(s)?t(s):(e.consume(s),i)}function a(s){return s===41&&r++,e.consume(s),i}}function Y2(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||Ie(o)||en(o)?t(o):n(o)}function i(o){return o===null||o===40||o===91||Ie(o)||en(o)?t(o):r(o)}function a(o){return Je(o)?s(o):n(o)}function s(o){return o===59?(e.consume(o),r):Je(o)?(e.consume(o),s):n(o)}}function G2(e,t,n){return r;function r(a){return e.consume(a),i}function i(a){return Ve(a)?n(a):t(a)}}function jc(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||Ie(e)}function zc(e){return!Je(e)}function $c(e){return!(e===47||pa(e))}function pa(e){return e===43||e===45||e===46||e===95||Ve(e)}function Ka(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const q2={tokenize:ey,partial:!0};function V2(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:K2,continuation:{tokenize:J2},exit:Z2}},text:{91:{name:"gfmFootnoteCall",tokenize:Q2},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:W2,resolveTo:X2}}}}function W2(e,t,n){const r=this;let i=r.events.length;const a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s;for(;i--;){const u=r.events[i][1];if(u.type==="labelImage"){s=u;break}if(u.type==="gfmFootnoteCall"||u.type==="labelLink"||u.type==="label"||u.type==="image"||u.type==="link")break}return o;function o(u){if(!s||!s._balanced)return n(u);const c=mt(r.sliceSerialize({start:s.end,end:r.now()}));return c.codePointAt(0)!==94||!a.includes(c.slice(1))?n(u):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),t(u))}}function X2(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},o=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",a,t],["enter",s,t],["exit",s,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...o),e}function Q2(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a=0,s;return o;function o(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),u}function u(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(f){if(a>999||f===93&&!s||f===null||f===91||Ie(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return i.includes(mt(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return Ie(f)||(s=!0),a++,e.consume(f),f===92?d:c}function d(f){return f===91||f===92||f===93?(e.consume(f),a++,c):c(f)}}function K2(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a,s=0,o;return u;function u(b){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(b){return b===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(b)}function d(b){if(s>999||b===93&&!o||b===null||b===91||Ie(b))return n(b);if(b===93){e.exit("chunkString");const y=e.exit("gfmFootnoteDefinitionLabelString");return a=mt(r.sliceSerialize(y)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return Ie(b)||(o=!0),s++,e.consume(b),b===92?f:d}function f(b){return b===91||b===92||b===93?(e.consume(b),s++,d):d(b)}function p(b){return b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),i.includes(a)||i.push(a),xe(e,h,"gfmFootnoteDefinitionWhitespace")):n(b)}function h(b){return t(b)}}function J2(e,t,n){return e.check(er,t,e.attempt(q2,t,n))}function Z2(e){e.exit("gfmFootnoteDefinition")}function ey(e,t,n){const r=this;return xe(e,i,"gfmFootnoteDefinitionIndent",5);function i(a){const s=r.events[r.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(a):n(a)}}function ty(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:a,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(s,o){let u=-1;for(;++u<s.length;)if(s[u][0]==="enter"&&s[u][1].type==="strikethroughSequenceTemporary"&&s[u][1]._close){let c=u;for(;c--;)if(s[c][0]==="exit"&&s[c][1].type==="strikethroughSequenceTemporary"&&s[c][1]._open&&s[u][1].end.offset-s[u][1].start.offset===s[c][1].end.offset-s[c][1].start.offset){s[u][1].type="strikethroughSequence",s[c][1].type="strikethroughSequence";const d={type:"strikethrough",start:Object.assign({},s[c][1].start),end:Object.assign({},s[u][1].end)},f={type:"strikethroughText",start:Object.assign({},s[c][1].end),end:Object.assign({},s[u][1].start)},p=[["enter",d,o],["enter",s[c][1],o],["exit",s[c][1],o],["enter",f,o]],h=o.parser.constructs.insideSpan.null;h&&rt(p,p.length,0,zr(h,s.slice(c+1,u),o)),rt(p,p.length,0,[["exit",f,o],["enter",s[u][1],o],["exit",s[u][1],o],["exit",d,o]]),rt(s,c-1,u-c+3,p),u=c+p.length-2;break}}for(u=-1;++u<s.length;)s[u][1].type==="strikethroughSequenceTemporary"&&(s[u][1].type="data");return s}function a(s,o,u){const c=this.previous,d=this.events;let f=0;return p;function p(b){return c===126&&d[d.length-1][1].type!=="characterEscape"?u(b):(s.enter("strikethroughSequenceTemporary"),h(b))}function h(b){const y=Sr(c);if(b===126)return f>1?u(b):(s.consume(b),f++,h);if(f<2&&!n)return u(b);const w=s.exit("strikethroughSequenceTemporary"),S=Sr(b);return w._open=!S||S===2&&!!y,w._close=!y||y===2&&!!S,o(b)}}}class ny{constructor(){this.map=[]}add(t,n,r){ry(this,t,n,r)}consume(t){if(this.map.sort(function(a,s){return a[0]-s[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const a of i)t.push(a);i=r.pop()}this.map.length=0}}function ry(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function iy(e,t){let n=!1;const r=[];for(;t<e.length;){const i=e[t];if(n){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const a=r.length-1;r[a]=r[a]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function ay(){return{flow:{null:{name:"table",tokenize:sy,resolveAll:oy}}}}function sy(e,t,n){const r=this;let i=0,a=0,s;return o;function o(I){let U=r.events.length-1;for(;U>-1;){const $=r.events[U][1].type;if($==="lineEnding"||$==="linePrefix")U--;else break}const z=U>-1?r.events[U][1].type:null,B=z==="tableHead"||z==="tableRow"?N:u;return B===N&&r.parser.lazy[r.now().line]?n(I):B(I)}function u(I){return e.enter("tableHead"),e.enter("tableRow"),c(I)}function c(I){return I===124||(s=!0,a+=1),d(I)}function d(I){return I===null?n(I):le(I)?a>1?(a=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),h):n(I):Ee(I)?xe(e,d,"whitespace")(I):(a+=1,s&&(s=!1,i+=1),I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),s=!0,d):(e.enter("data"),f(I)))}function f(I){return I===null||I===124||Ie(I)?(e.exit("data"),d(I)):(e.consume(I),I===92?p:f)}function p(I){return I===92||I===124?(e.consume(I),f):f(I)}function h(I){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(I):(e.enter("tableDelimiterRow"),s=!1,Ee(I)?xe(e,b,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):b(I))}function b(I){return I===45||I===58?w(I):I===124?(s=!0,e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),y):A(I)}function y(I){return Ee(I)?xe(e,w,"whitespace")(I):w(I)}function w(I){return I===58?(a+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),S):I===45?(a+=1,S(I)):I===null||le(I)?L(I):A(I)}function S(I){return I===45?(e.enter("tableDelimiterFiller"),v(I)):A(I)}function v(I){return I===45?(e.consume(I),v):I===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),k):(e.exit("tableDelimiterFiller"),k(I))}function k(I){return Ee(I)?xe(e,L,"whitespace")(I):L(I)}function L(I){return I===124?b(I):I===null||le(I)?!s||i!==a?A(I):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(I)):A(I)}function A(I){return n(I)}function N(I){return e.enter("tableRow"),Y(I)}function Y(I){return I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),Y):I===null||le(I)?(e.exit("tableRow"),t(I)):Ee(I)?xe(e,Y,"whitespace")(I):(e.enter("data"),V(I))}function V(I){return I===null||I===124||Ie(I)?(e.exit("data"),Y(I)):(e.consume(I),I===92?ne:V)}function ne(I){return I===92||I===124?(e.consume(I),V):V(I)}}function oy(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],s=[0,0,0,0],o=!1,u=0,c,d,f;const p=new ny;for(;++n<e.length;){const h=e[n],b=h[1];h[0]==="enter"?b.type==="tableHead"?(o=!1,u!==0&&(Go(p,t,u,c,d),d=void 0,u=0),c={type:"table",start:Object.assign({},b.start),end:Object.assign({},b.end)},p.add(n,0,[["enter",c,t]])):b.type==="tableRow"||b.type==="tableDelimiterRow"?(r=!0,f=void 0,a=[0,0,0,0],s=[0,n+1,0,0],o&&(o=!1,d={type:"tableBody",start:Object.assign({},b.start),end:Object.assign({},b.end)},p.add(n,0,[["enter",d,t]])),i=b.type==="tableDelimiterRow"?2:d?3:1):i&&(b.type==="data"||b.type==="tableDelimiterMarker"||b.type==="tableDelimiterFiller")?(r=!1,s[2]===0&&(a[1]!==0&&(s[0]=s[1],f=hr(p,t,a,i,void 0,f),a=[0,0,0,0]),s[2]=n)):b.type==="tableCellDivider"&&(r?r=!1:(a[1]!==0&&(s[0]=s[1],f=hr(p,t,a,i,void 0,f)),a=s,s=[a[1],n,0,0])):b.type==="tableHead"?(o=!0,u=n):b.type==="tableRow"||b.type==="tableDelimiterRow"?(u=n,a[1]!==0?(s[0]=s[1],f=hr(p,t,a,i,n,f)):s[1]!==0&&(f=hr(p,t,s,i,n,f)),i=0):i&&(b.type==="data"||b.type==="tableDelimiterMarker"||b.type==="tableDelimiterFiller")&&(s[3]=n)}for(u!==0&&Go(p,t,u,c,d),p.consume(t.events),n=-1;++n<t.events.length;){const h=t.events[n];h[0]==="enter"&&h[1].type==="table"&&(h[1]._align=iy(t.events,n))}return e}function hr(e,t,n,r,i,a){const s=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",o="tableContent";n[0]!==0&&(a.end=Object.assign({},hn(t.events,n[0])),e.add(n[0],0,[["exit",a,t]]));const u=hn(t.events,n[1]);if(a={type:s,start:Object.assign({},u),end:Object.assign({},u)},e.add(n[1],0,[["enter",a,t]]),n[2]!==0){const c=hn(t.events,n[2]),d=hn(t.events,n[3]),f={type:o,start:Object.assign({},c),end:Object.assign({},d)};if(e.add(n[2],0,[["enter",f,t]]),r!==2){const p=t.events[n[2]],h=t.events[n[3]];if(p[1].end=Object.assign({},h[1].end),p[1].type="chunkText",p[1].contentType="text",n[3]>n[2]+1){const b=n[2]+1,y=n[3]-n[2]-1;e.add(b,y,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return i!==void 0&&(a.end=Object.assign({},hn(t.events,i)),e.add(i,0,[["exit",a,t]]),a=void 0),a}function Go(e,t,n,r,i){const a=[],s=hn(t.events,n);i&&(i.end=Object.assign({},s),a.push(["exit",i,t])),r.end=Object.assign({},s),a.push(["exit",r,t]),e.add(n+1,0,a)}function hn(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const uy={name:"tasklistCheck",tokenize:cy};function ly(){return{text:{91:uy}}}function cy(e,t,n){const r=this;return i;function i(u){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(u):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),a)}function a(u){return Ie(u)?(e.enter("taskListCheckValueUnchecked"),e.consume(u),e.exit("taskListCheckValueUnchecked"),s):u===88||u===120?(e.enter("taskListCheckValueChecked"),e.consume(u),e.exit("taskListCheckValueChecked"),s):n(u)}function s(u){return u===93?(e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):n(u)}function o(u){return le(u)?t(u):Ee(u)?e.check({tokenize:dy},t,n)(u):n(u)}}function dy(e,t,n){return xe(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function fy(e){return ml([B2(),V2(),ty(e),ay(),ly()])}const hy={};function py(e){const t=this,n=e||hy,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),a=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),s=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(fy(n)),a.push(L2()),s.push(D2(n))}const qo=new Set;function my(e){return qo.has(e)?!1:(qo.add(e),!0)}function gy(e,{root:t,rootSelector:n,rootMargin:r="0px",threshold:i=0,dedupeKey:a}={}){const s=C.useRef(!1),o=C.useRef();return C.useCallback(c=>{if(o.current?.(),o.current=void 0,!c||s.current)return;const d=t??(n?document.querySelector(n):null),f=()=>{a&&!my(a)||(s.current=!0,e())};if(typeof window>"u"||!("IntersectionObserver"in window)){f();return}const p=new IntersectionObserver((h,b)=>{h[0]?.isIntersecting&&(b.disconnect(),f())},{root:d,rootMargin:r,threshold:i});p.observe(c),o.current=()=>p.disconnect()},[t,n,r,i,a,e])}const by=e=>{const t=new URL(e);if(t.username||t.password)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_CREDENTIALS");const n=t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]";if(t.protocol!=="https:"&&!(t.protocol==="http:"&&n))throw new Error("CHAT_SYSTEM_API_URL_MUST_USE_HTTPS");if(t.search||t.hash)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_QUERY_OR_HASH");const r=t.pathname.replace(/\/+$/,"");return`${t.origin}${r}`};class tn{constructor(){}static getApiUrl=t=>t!==void 0?by(t):_a()?"http://localhost:3001":"https://www.api.chatsystem.ai";static getHeaders=({contentType:t="text/plain"})=>({"Content-Type":t});static getFetchConfig=({contentType:t="text/plain",httpVerb:n="GET",body:r,options:i={}})=>{const a={method:n,headers:this.getHeaders({contentType:t}),...i};return r&&(a.body=JSON.stringify(r)),a}}const Yc=C.createContext(null);function Ey({apiUrl:e,children:t}){const n=C.useMemo(()=>tn.getApiUrl(e),[e]);return x.jsx(Yc.Provider,{value:n,children:t})}function Kr(){return C.useContext(Yc)??tn.getApiUrl()}function Ty(e,t){if(!t||!e)return e;const n=t.replace(/^[?&]+/,""),[r,i]=e.split("#"),a=r.includes("?")?"&":"?",s=`${r}${a}${n}`;return i?`${s}#${i}`:s}function yy({href:e="",queryParamToAppend:t="",children:n,context:r,onClick:i,seenRootEl:a,...s}){const{companySettings:o}=C.useContext(rn),u=Kr(),c=e.startsWith("/")||typeof window<"u"&&e.startsWith(window.location.origin),d=u,f=Ty(e,t||o.api.tracking?.queryParamToAppend||""),p=()=>{const v=`${d}/tracking/clicked/${r.appToken}`,k={discussionId:r.discussionId,urlClicked:e};try{fetch(v,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(k),keepalive:!0,cache:"no-store",credentials:"omit",mode:"cors"}).catch(()=>{})}catch{}},h=()=>{const v=`${d}/tracking/displayed/${r.appToken}`,k={discussionId:r.discussionId,urlSeen:e};try{fetch(v,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(k),keepalive:!0,cache:"no-store",credentials:"omit",mode:"cors"}).catch(()=>{})}catch{}},b=C.useMemo(()=>`${r.appToken}::${r.discussionId}::${e}`,[r.appToken,r.discussionId,e]),y=gy(h,{root:a,threshold:0,rootMargin:"0px 0px -10% 0px",dedupeKey:b}),w=v=>{p(),i?.(v)},S=c?{}:{target:"_blank",rel:"noopener noreferrer"};return c?x.jsx("a",{ref:y,href:f,...s,onClick:w,className:"customLinkInternal",children:n}):x.jsx("a",{ref:y,href:f,...S,...s,onClick:w,className:"customLinkExternal",children:n})}const Gc=({logo:e,label:t,className:n})=>x.jsxs("div",{className:`flex items-center gap-2 logoWrapper${n?` ${n}`:""}`,children:[e,x.jsx("p",{className:"font-bold",children:t})]}),qc=({})=>{const{companySettings:e}=C.useContext(rn);return x.jsx("div",{className:`assistant
76
+ `))}function u(h,b,y,w){const S=y.enter("tableCell"),v=y.enter("phrasing"),k=y.containerPhrasing(h,{...w,before:a,after:a});return v(),S(),k}function c(h,b){return zT(h,{align:b,alignDelimiters:r,padding:n,stringLength:i})}function d(h,b,y){const w=h.children;let S=-1;const v=[],k=b.enter("table");for(;++S<w.length;)v[S]=f(w[S],b,y);return k(),v}function f(h,b,y){const w=h.children;let S=-1;const v=[],k=b.enter("tableRow");for(;++S<w.length;)v[S]=u(w[S],h,b,y);return k(),v}function p(h,b,y){let w=Pc.inlineCode(h,b,y);return y.stack.includes("tableCell")&&(w=w.replace(/\|/g,"\\$&")),w}}function k2(){return{exit:{taskListCheckValueChecked:Yo,taskListCheckValueUnchecked:Yo,paragraph:R2}}}function N2(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:O2}}}function Yo(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function R2(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const i=t.children;let a=-1,s;for(;++a<i.length;){const o=i[a];if(o.type==="paragraph"){s=o;break}}s===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function O2(e,t,n,r){const i=e.children[0],a=typeof e.checked=="boolean"&&i&&i.type==="paragraph",s="["+(e.checked?"x":" ")+"] ",o=n.createTracker(r);a&&o.move(s);let u=Pc.listItem(e,t,n,{...r,...o.current()});return a&&(u=u.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,c)),u;function c(d){return d+s}}function L2(){return[dT(),OT(),MT(),_2(),k2()]}function D2(e){return{extensions:[fT(),LT(e),BT(),v2(e),N2()]}}const P2={tokenize:j2,partial:!0},Mc={tokenize:z2,partial:!0},Bc={tokenize:$2,partial:!0},Fc={tokenize:Y2,partial:!0},M2={tokenize:G2,partial:!0},Hc={name:"wwwAutolink",tokenize:H2,previous:jc},Uc={name:"protocolAutolink",tokenize:U2,previous:zc},Ot={name:"emailAutolink",tokenize:F2,previous:$c},wt={};function B2(){return{text:wt}}let Vt=48;for(;Vt<123;)wt[Vt]=Ot,Vt++,Vt===58?Vt=65:Vt===91&&(Vt=97);wt[43]=Ot;wt[45]=Ot;wt[46]=Ot;wt[95]=Ot;wt[72]=[Ot,Uc];wt[104]=[Ot,Uc];wt[87]=[Ot,Hc];wt[119]=[Ot,Hc];function F2(e,t,n){const r=this;let i,a;return s;function s(f){return!pa(f)||!$c.call(r,r.previous)||Ka(r.events)?n(f):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),o(f))}function o(f){return pa(f)?(e.consume(f),o):f===64?(e.consume(f),u):n(f)}function u(f){return f===46?e.check(M2,d,c)(f):f===45||f===95||Ve(f)?(a=!0,e.consume(f),u):d(f)}function c(f){return e.consume(f),i=!0,u}function d(f){return a&&i&&Je(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(f)):n(f)}}function H2(e,t,n){const r=this;return i;function i(s){return s!==87&&s!==119||!jc.call(r,r.previous)||Ka(r.events)?n(s):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(P2,e.attempt(Mc,e.attempt(Bc,a),n),n)(s))}function a(s){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(s)}}function U2(e,t,n){const r=this;let i="",a=!1;return s;function s(f){return(f===72||f===104)&&zc.call(r,r.previous)&&!Ka(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(f),e.consume(f),o):n(f)}function o(f){if(Je(f)&&i.length<5)return i+=String.fromCodePoint(f),e.consume(f),o;if(f===58){const p=i.toLowerCase();if(p==="http"||p==="https")return e.consume(f),u}return n(f)}function u(f){return f===47?(e.consume(f),a?c:(a=!0,u)):n(f)}function c(f){return f===null||_r(f)||Ie(f)||en(f)||jr(f)?n(f):e.attempt(Mc,e.attempt(Bc,d),n)(f)}function d(f){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(f)}}function j2(e,t,n){let r=0;return i;function i(s){return(s===87||s===119)&&r<3?(r++,e.consume(s),i):s===46&&r===3?(e.consume(s),a):n(s)}function a(s){return s===null?n(s):t(s)}}function z2(e,t,n){let r,i,a;return s;function s(c){return c===46||c===95?e.check(Fc,u,o)(c):c===null||Ie(c)||en(c)||c!==45&&jr(c)?u(c):(a=!0,e.consume(c),s)}function o(c){return c===95?r=!0:(i=r,r=void 0),e.consume(c),s}function u(c){return i||r||!a?n(c):t(c)}}function $2(e,t){let n=0,r=0;return i;function i(s){return s===40?(n++,e.consume(s),i):s===41&&r<n?a(s):s===33||s===34||s===38||s===39||s===41||s===42||s===44||s===46||s===58||s===59||s===60||s===63||s===93||s===95||s===126?e.check(Fc,t,a)(s):s===null||Ie(s)||en(s)?t(s):(e.consume(s),i)}function a(s){return s===41&&r++,e.consume(s),i}}function Y2(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||Ie(o)||en(o)?t(o):n(o)}function i(o){return o===null||o===40||o===91||Ie(o)||en(o)?t(o):r(o)}function a(o){return Je(o)?s(o):n(o)}function s(o){return o===59?(e.consume(o),r):Je(o)?(e.consume(o),s):n(o)}}function G2(e,t,n){return r;function r(a){return e.consume(a),i}function i(a){return Ve(a)?n(a):t(a)}}function jc(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||Ie(e)}function zc(e){return!Je(e)}function $c(e){return!(e===47||pa(e))}function pa(e){return e===43||e===45||e===46||e===95||Ve(e)}function Ka(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const q2={tokenize:ey,partial:!0};function V2(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:K2,continuation:{tokenize:J2},exit:Z2}},text:{91:{name:"gfmFootnoteCall",tokenize:Q2},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:W2,resolveTo:X2}}}}function W2(e,t,n){const r=this;let i=r.events.length;const a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s;for(;i--;){const u=r.events[i][1];if(u.type==="labelImage"){s=u;break}if(u.type==="gfmFootnoteCall"||u.type==="labelLink"||u.type==="label"||u.type==="image"||u.type==="link")break}return o;function o(u){if(!s||!s._balanced)return n(u);const c=mt(r.sliceSerialize({start:s.end,end:r.now()}));return c.codePointAt(0)!==94||!a.includes(c.slice(1))?n(u):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),t(u))}}function X2(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},o=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",a,t],["enter",s,t],["exit",s,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...o),e}function Q2(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a=0,s;return o;function o(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),u}function u(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(f){if(a>999||f===93&&!s||f===null||f===91||Ie(f))return n(f);if(f===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return i.includes(mt(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return Ie(f)||(s=!0),a++,e.consume(f),f===92?d:c}function d(f){return f===91||f===92||f===93?(e.consume(f),a++,c):c(f)}}function K2(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a,s=0,o;return u;function u(b){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(b){return b===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(b)}function d(b){if(s>999||b===93&&!o||b===null||b===91||Ie(b))return n(b);if(b===93){e.exit("chunkString");const y=e.exit("gfmFootnoteDefinitionLabelString");return a=mt(r.sliceSerialize(y)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return Ie(b)||(o=!0),s++,e.consume(b),b===92?f:d}function f(b){return b===91||b===92||b===93?(e.consume(b),s++,d):d(b)}function p(b){return b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),i.includes(a)||i.push(a),xe(e,h,"gfmFootnoteDefinitionWhitespace")):n(b)}function h(b){return t(b)}}function J2(e,t,n){return e.check(er,t,e.attempt(q2,t,n))}function Z2(e){e.exit("gfmFootnoteDefinition")}function ey(e,t,n){const r=this;return xe(e,i,"gfmFootnoteDefinitionIndent",5);function i(a){const s=r.events[r.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(a):n(a)}}function ty(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:a,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(s,o){let u=-1;for(;++u<s.length;)if(s[u][0]==="enter"&&s[u][1].type==="strikethroughSequenceTemporary"&&s[u][1]._close){let c=u;for(;c--;)if(s[c][0]==="exit"&&s[c][1].type==="strikethroughSequenceTemporary"&&s[c][1]._open&&s[u][1].end.offset-s[u][1].start.offset===s[c][1].end.offset-s[c][1].start.offset){s[u][1].type="strikethroughSequence",s[c][1].type="strikethroughSequence";const d={type:"strikethrough",start:Object.assign({},s[c][1].start),end:Object.assign({},s[u][1].end)},f={type:"strikethroughText",start:Object.assign({},s[c][1].end),end:Object.assign({},s[u][1].start)},p=[["enter",d,o],["enter",s[c][1],o],["exit",s[c][1],o],["enter",f,o]],h=o.parser.constructs.insideSpan.null;h&&rt(p,p.length,0,zr(h,s.slice(c+1,u),o)),rt(p,p.length,0,[["exit",f,o],["enter",s[u][1],o],["exit",s[u][1],o],["exit",d,o]]),rt(s,c-1,u-c+3,p),u=c+p.length-2;break}}for(u=-1;++u<s.length;)s[u][1].type==="strikethroughSequenceTemporary"&&(s[u][1].type="data");return s}function a(s,o,u){const c=this.previous,d=this.events;let f=0;return p;function p(b){return c===126&&d[d.length-1][1].type!=="characterEscape"?u(b):(s.enter("strikethroughSequenceTemporary"),h(b))}function h(b){const y=Sr(c);if(b===126)return f>1?u(b):(s.consume(b),f++,h);if(f<2&&!n)return u(b);const w=s.exit("strikethroughSequenceTemporary"),S=Sr(b);return w._open=!S||S===2&&!!y,w._close=!y||y===2&&!!S,o(b)}}}class ny{constructor(){this.map=[]}add(t,n,r){ry(this,t,n,r)}consume(t){if(this.map.sort(function(a,s){return a[0]-s[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const a of i)t.push(a);i=r.pop()}this.map.length=0}}function ry(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function iy(e,t){let n=!1;const r=[];for(;t<e.length;){const i=e[t];if(n){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const a=r.length-1;r[a]=r[a]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function ay(){return{flow:{null:{name:"table",tokenize:sy,resolveAll:oy}}}}function sy(e,t,n){const r=this;let i=0,a=0,s;return o;function o(I){let U=r.events.length-1;for(;U>-1;){const $=r.events[U][1].type;if($==="lineEnding"||$==="linePrefix")U--;else break}const z=U>-1?r.events[U][1].type:null,B=z==="tableHead"||z==="tableRow"?N:u;return B===N&&r.parser.lazy[r.now().line]?n(I):B(I)}function u(I){return e.enter("tableHead"),e.enter("tableRow"),c(I)}function c(I){return I===124||(s=!0,a+=1),d(I)}function d(I){return I===null?n(I):le(I)?a>1?(a=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),h):n(I):Ee(I)?xe(e,d,"whitespace")(I):(a+=1,s&&(s=!1,i+=1),I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),s=!0,d):(e.enter("data"),f(I)))}function f(I){return I===null||I===124||Ie(I)?(e.exit("data"),d(I)):(e.consume(I),I===92?p:f)}function p(I){return I===92||I===124?(e.consume(I),f):f(I)}function h(I){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(I):(e.enter("tableDelimiterRow"),s=!1,Ee(I)?xe(e,b,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):b(I))}function b(I){return I===45||I===58?w(I):I===124?(s=!0,e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),y):A(I)}function y(I){return Ee(I)?xe(e,w,"whitespace")(I):w(I)}function w(I){return I===58?(a+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),S):I===45?(a+=1,S(I)):I===null||le(I)?L(I):A(I)}function S(I){return I===45?(e.enter("tableDelimiterFiller"),v(I)):A(I)}function v(I){return I===45?(e.consume(I),v):I===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),k):(e.exit("tableDelimiterFiller"),k(I))}function k(I){return Ee(I)?xe(e,L,"whitespace")(I):L(I)}function L(I){return I===124?b(I):I===null||le(I)?!s||i!==a?A(I):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(I)):A(I)}function A(I){return n(I)}function N(I){return e.enter("tableRow"),Y(I)}function Y(I){return I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),Y):I===null||le(I)?(e.exit("tableRow"),t(I)):Ee(I)?xe(e,Y,"whitespace")(I):(e.enter("data"),V(I))}function V(I){return I===null||I===124||Ie(I)?(e.exit("data"),Y(I)):(e.consume(I),I===92?ne:V)}function ne(I){return I===92||I===124?(e.consume(I),V):V(I)}}function oy(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],s=[0,0,0,0],o=!1,u=0,c,d,f;const p=new ny;for(;++n<e.length;){const h=e[n],b=h[1];h[0]==="enter"?b.type==="tableHead"?(o=!1,u!==0&&(Go(p,t,u,c,d),d=void 0,u=0),c={type:"table",start:Object.assign({},b.start),end:Object.assign({},b.end)},p.add(n,0,[["enter",c,t]])):b.type==="tableRow"||b.type==="tableDelimiterRow"?(r=!0,f=void 0,a=[0,0,0,0],s=[0,n+1,0,0],o&&(o=!1,d={type:"tableBody",start:Object.assign({},b.start),end:Object.assign({},b.end)},p.add(n,0,[["enter",d,t]])),i=b.type==="tableDelimiterRow"?2:d?3:1):i&&(b.type==="data"||b.type==="tableDelimiterMarker"||b.type==="tableDelimiterFiller")?(r=!1,s[2]===0&&(a[1]!==0&&(s[0]=s[1],f=hr(p,t,a,i,void 0,f),a=[0,0,0,0]),s[2]=n)):b.type==="tableCellDivider"&&(r?r=!1:(a[1]!==0&&(s[0]=s[1],f=hr(p,t,a,i,void 0,f)),a=s,s=[a[1],n,0,0])):b.type==="tableHead"?(o=!0,u=n):b.type==="tableRow"||b.type==="tableDelimiterRow"?(u=n,a[1]!==0?(s[0]=s[1],f=hr(p,t,a,i,n,f)):s[1]!==0&&(f=hr(p,t,s,i,n,f)),i=0):i&&(b.type==="data"||b.type==="tableDelimiterMarker"||b.type==="tableDelimiterFiller")&&(s[3]=n)}for(u!==0&&Go(p,t,u,c,d),p.consume(t.events),n=-1;++n<t.events.length;){const h=t.events[n];h[0]==="enter"&&h[1].type==="table"&&(h[1]._align=iy(t.events,n))}return e}function hr(e,t,n,r,i,a){const s=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",o="tableContent";n[0]!==0&&(a.end=Object.assign({},hn(t.events,n[0])),e.add(n[0],0,[["exit",a,t]]));const u=hn(t.events,n[1]);if(a={type:s,start:Object.assign({},u),end:Object.assign({},u)},e.add(n[1],0,[["enter",a,t]]),n[2]!==0){const c=hn(t.events,n[2]),d=hn(t.events,n[3]),f={type:o,start:Object.assign({},c),end:Object.assign({},d)};if(e.add(n[2],0,[["enter",f,t]]),r!==2){const p=t.events[n[2]],h=t.events[n[3]];if(p[1].end=Object.assign({},h[1].end),p[1].type="chunkText",p[1].contentType="text",n[3]>n[2]+1){const b=n[2]+1,y=n[3]-n[2]-1;e.add(b,y,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return i!==void 0&&(a.end=Object.assign({},hn(t.events,i)),e.add(i,0,[["exit",a,t]]),a=void 0),a}function Go(e,t,n,r,i){const a=[],s=hn(t.events,n);i&&(i.end=Object.assign({},s),a.push(["exit",i,t])),r.end=Object.assign({},s),a.push(["exit",r,t]),e.add(n+1,0,a)}function hn(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const uy={name:"tasklistCheck",tokenize:cy};function ly(){return{text:{91:uy}}}function cy(e,t,n){const r=this;return i;function i(u){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(u):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),a)}function a(u){return Ie(u)?(e.enter("taskListCheckValueUnchecked"),e.consume(u),e.exit("taskListCheckValueUnchecked"),s):u===88||u===120?(e.enter("taskListCheckValueChecked"),e.consume(u),e.exit("taskListCheckValueChecked"),s):n(u)}function s(u){return u===93?(e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):n(u)}function o(u){return le(u)?t(u):Ee(u)?e.check({tokenize:dy},t,n)(u):n(u)}}function dy(e,t,n){return xe(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function fy(e){return ml([B2(),V2(),ty(e),ay(),ly()])}const hy={};function py(e){const t=this,n=e||hy,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),a=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),s=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(fy(n)),a.push(L2()),s.push(D2(n))}const qo=new Set;function my(e){return qo.has(e)?!1:(qo.add(e),!0)}function gy(e,{root:t,rootSelector:n,rootMargin:r="0px",threshold:i=0,dedupeKey:a}={}){const s=C.useRef(!1),o=C.useRef();return C.useCallback(c=>{if(o.current?.(),o.current=void 0,!c||s.current)return;const d=t??(n?document.querySelector(n):null),f=()=>{a&&!my(a)||(s.current=!0,e())};if(typeof window>"u"||!("IntersectionObserver"in window)){f();return}const p=new IntersectionObserver((h,b)=>{h[0]?.isIntersecting&&(b.disconnect(),f())},{root:d,rootMargin:r,threshold:i});p.observe(c),o.current=()=>p.disconnect()},[t,n,r,i,a,e])}const by=e=>{const t=new URL(e);if(t.username||t.password)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_CREDENTIALS");const n=t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]";if(t.protocol!=="https:"&&!(t.protocol==="http:"&&n))throw new Error("CHAT_SYSTEM_API_URL_MUST_USE_HTTPS");if(t.search||t.hash)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_QUERY_OR_HASH");const r=t.pathname.replace(/\/+$/,"");return`${t.origin}${r}`};class tn{constructor(){}static getApiUrl=t=>t!==void 0?by(t):_a()?"http://localhost:3001":"https://www.api.chatsystem.ai";static getHeaders=({contentType:t="text/plain"})=>({"Content-Type":t});static getFetchConfig=({contentType:t="text/plain",httpVerb:n="GET",body:r,options:i={}})=>{const a={method:n,headers:this.getHeaders({contentType:t}),...i};return r&&(a.body=JSON.stringify(r)),a}}const Yc=C.createContext(null);function Ey({apiUrl:e,children:t}){const n=C.useMemo(()=>tn.getApiUrl(e),[e]);return x.jsx(Yc.Provider,{value:n,children:t})}function Kr(){return C.useContext(Yc)??tn.getApiUrl()}function Ty(e,t){if(!t||!e)return e;const n=t.replace(/^[?&]+/,""),[r,i]=e.split("#"),a=r.includes("?")?"&":"?",s=`${r}${a}${n}`;return i?`${s}#${i}`:s}function yy({href:e="",queryParamToAppend:t="",children:n,context:r,onClick:i,seenRootEl:a,...s}){const{companySettings:o}=C.useContext(rn),u=Kr(),c=e.startsWith("/")||typeof window<"u"&&e.startsWith(window.location.origin),d=u,f=Ty(e,t||o.api.tracking?.queryParamToAppend||""),p=()=>{const v=`${d}/tracking/clicked/${r.appToken}`,k={discussionId:r.discussionId,urlClicked:e};try{fetch(v,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(k),keepalive:!0,cache:"no-store",credentials:"omit",mode:"cors"}).catch(()=>{})}catch{}},h=()=>{const v=`${d}/tracking/displayed/${r.appToken}`,k={discussionId:r.discussionId,urlSeen:e};try{fetch(v,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(k),keepalive:!0,cache:"no-store",credentials:"omit",mode:"cors"}).catch(()=>{})}catch{}},b=C.useMemo(()=>`${r.appToken}::${r.discussionId}::${e}`,[r.appToken,r.discussionId,e]),y=gy(h,{root:a,threshold:0,rootMargin:"0px 0px -10% 0px",dedupeKey:b}),w=v=>{p(),i?.(v)},S=c?{}:{target:"_blank",rel:"noopener noreferrer"};return c?x.jsx("a",{ref:y,href:f,...s,onClick:w,className:"customLinkInternal",children:n}):x.jsx("a",{ref:y,href:f,...S,...s,onClick:w,className:"customLinkExternal",children:n})}const Gc=({logo:e,label:t,className:n})=>x.jsxs("div",{className:`flex items-center gap-2 logoWrapper${n?` ${n}`:""}`,children:[e,x.jsx("p",{className:"font-bold",children:t})]}),qc=()=>{const{companySettings:e}=C.useContext(rn);return x.jsx("div",{className:`assistant
77
77
  transition
78
78
  ease-in-out
79
79
  delay-50
@@ -81,7 +81,7 @@ For more details see https://formatjs.io/docs/getting-started/message-distributi
81
81
  flex
82
82
  justify-center
83
83
  items-center
84
- `,children:x.jsx(Sa,{facet:e.agent.display[Z.AgentDisplayFacetRoleType.ASSISTANT]})})},xy=({content:e,metaData:t,context:n,seenRootEl:r})=>{const{chatlineLabelAssistantTranslation:i,chatlineLabelCustomerSupportTranslation:a}=Ju(),s=t?.authorType==="customer_support_operator"?t.customerSupportAuthorName??a:i,o=Z.formatCustomerSupportProviderText({text:e??"",provider:t?.customerSupportProvider});return x.jsx(Wa,{children:x.jsx("div",{className:"chatLineAssistant flex justify-start",children:x.jsxs("div",{className:`mr-auto w-full rounded-2xl rounded-bl-md px-4 py-3 transition-all duration-300 text-left ${t?.isErrorMessage?"bg-red-100 text-red-800 shadow-md animate-fade-in":"bg-slate-100 text-gray-800 shadow-sm"}`,children:[x.jsx(Gc,{className:"logoWrapper--assistant w-full justify-start text-left mb-2 text-xs",logo:x.jsx(qc,{}),label:s}),x.jsx("div",{children:x.jsx(Ua,{remarkPlugins:[py],remarkRehypeOptions:{passThrough:["link"]},rehypePlugins:[Va],components:{a:({node:u,href:c,children:d,...f})=>x.jsx(yy,{href:c??"",...f,context:n,seenRootEl:r,children:d})},children:o})})]})})})},_y=({content:e,metaData:t})=>{const n=t?.isErrorMessage;return x.jsx(Wa,{children:x.jsx("div",{className:"chatLineSystemMessage flex justify-center px-2","data-system-event":t?.systemEvent,children:x.jsx("div",{className:`max-w-[90%] rounded-lg border px-3 py-2 text-center text-xs leading-relaxed shadow-sm ${n?"border-red-200 bg-red-50 text-red-800":"border-slate-200 bg-slate-50 text-slate-600"}`,children:x.jsx(Ua,{rehypePlugins:[Va],children:e??""})})})})},Sy=({userType:e,content:t,metaData:n,context:r,seenRootEl:i})=>{if(n?.messageKind==="system")return x.jsx(_y,{content:t,metaData:n});const a=e==="user",s=e==="assistant";return x.jsxs(x.Fragment,{children:[a&&x.jsx(aT,{content:t,metaData:n}),s&&x.jsx(xy,{content:t,metaData:n,context:r,seenRootEl:i})]})};function Cy(e,t,n){let[r,i]=C.useState(e||t),a=C.useRef(e!==void 0),s=e!==void 0;C.useEffect(()=>{let c=a.current;c!==s&&console.warn(`WARN: A component changed from ${c?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}.`),a.current=s},[s]);let o=s?e:r,u=C.useCallback((c,...d)=>{let f=(p,...h)=>{n&&(Object.is(o,p)||n(p,...h)),s||(o=p)};typeof c=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),i((h,...b)=>{let y=c(s?o:h,...b);return f(y,...d),s?h:y})):(s||i(c),f(c,...d))},[s,o,n]);return[o,u]}const kr={prefix:String(Math.round(Math.random()*1e10)),current:0},Vc=C.createContext(kr),Ay=C.createContext(!1);let wy=!!(typeof window<"u"&&window.document&&window.document.createElement),Di=new WeakMap;function Iy(e=!1){let t=C.useContext(Vc),n=C.useRef(null);if(n.current===null&&!e){var r,i;let a=(i=C.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||i===void 0||(r=i.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(a){let s=Di.get(a);s==null?Di.set(a,{id:t.current,state:a.memoizedState}):a.memoizedState!==s.state&&(t.current=s.id,Di.delete(a))}n.current=++t.current}return n.current}function vy(e){let t=C.useContext(Vc);t===kr&&!wy&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=Iy(!!e),r=t===kr&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${r}-${n}`}function ky(e){let t=C.useId(),[n]=C.useState(Dy()),r=n||process.env.NODE_ENV==="test"?"react-aria":`react-aria${kr.prefix}`;return e||`${r}-${t}`}const Ny=typeof C.useId=="function"?ky:vy;function Ry(){return!1}function Oy(){return!0}function Ly(e){return()=>{}}function Dy(){return typeof C.useSyncExternalStore=="function"?C.useSyncExternalStore(Ly,Ry,Oy):C.useContext(Ay)}function Wc(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Wc(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Py(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Wc(e))&&(r&&(r+=" "),r+=t);return r}const ln=typeof document<"u"?C.useLayoutEffect:()=>{};function Jt(e){const t=C.useRef(null);return ln(()=>{t.current=e},[e]),C.useCallback((...n)=>{const r=t.current;return r?.(...n)},[])}function My(e){let[t,n]=C.useState(e),r=C.useRef(null),i=Jt(()=>{if(!r.current)return;let s=r.current.next();if(s.done){r.current=null;return}t===s.value?i():n(s.value)});ln(()=>{r.current&&i()});let a=Jt(s=>{r.current=s(t),i()});return[t,a]}let By=!!(typeof window<"u"&&window.document&&window.document.createElement),Nr=new Map;function Rr(e){let[t,n]=C.useState(e),r=C.useRef(null),i=Ny(t),a=C.useCallback(s=>{r.current=s},[]);return By&&Nr.set(i,a),ln(()=>{let s=i;return()=>{Nr.delete(s)}},[i]),C.useEffect(()=>{let s=r.current;s&&(r.current=null,n(s))}),i}function Fy(e,t){if(e===t)return e;let n=Nr.get(e);if(n)return n(t),t;let r=Nr.get(t);return r?(r(e),e):t}function Vo(e=[]){let t=Rr(),[n,r]=My(t),i=C.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return ln(i,[t,i,...e]),n}function Hy(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const ir=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},Or=e=>e&&"window"in e&&e.window===e?e:ir(e).defaultView||window;function Lr(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let i in r){let a=t[i],s=r[i];typeof a=="function"&&typeof s=="function"&&i[0]==="o"&&i[1]==="n"&&i.charCodeAt(2)>=65&&i.charCodeAt(2)<=90?t[i]=Hy(a,s):(i==="className"||i==="UNSAFE_className")&&typeof a=="string"&&typeof s=="string"?t[i]=Py(a,s):i==="id"&&a&&s?t.id=Fy(a,s):t[i]=s!==void 0?s:a}}return t}const Uy=new Set(["id"]),jy=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),zy=new Set(["href","target","rel","download","ping","referrerPolicy"]),$y=/^(data-.*)$/;function Yy(e,t={}){let{labelable:n,isLink:r,propNames:i}=t,a={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(Uy.has(s)||n&&jy.has(s)||r&&zy.has(s)||i?.has(s)||$y.test(s))&&(a[s]=e[s]);return a}function Wo(e){if(Gy())e.focus({preventScroll:!0});else{let t=qy(e);e.focus(),Vy(t)}}let pr=null;function Gy(){if(pr==null){pr=!1;try{document.createElement("div").focus({get preventScroll(){return pr=!0,!0}})}catch{}}return pr}function qy(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function Vy(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function Wy(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function Xy(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function Qy(){return Xy(/^Mac/i)}function Ky(){return Wy(/Android/i)}let pn=new Map,ma=new Set;function Xo(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let i=pn.get(r.target);i||(i=new Set,pn.set(r.target,i),r.target.addEventListener("transitioncancel",n,{once:!0})),i.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let i=pn.get(r.target);if(i&&(i.delete(r.propertyName),i.size===0&&(r.target.removeEventListener("transitioncancel",n),pn.delete(r.target)),pn.size===0)){for(let a of ma)a();ma.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?Xo():document.addEventListener("DOMContentLoaded",Xo));function Jy(e){requestAnimationFrame(()=>{pn.size===0?e():ma.add(e)})}function Zy(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=Rr(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(" "):i&&(i=i.trim().split(/\s+/).join(" ")),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function ex(e,t){ln(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function tx(e){return e.mozInputSource===0&&e.isTrusted?!0:Ky()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function nx(e,t,n){let r=C.useRef(t),i=Jt(()=>{n&&n(r.current)});C.useEffect(()=>{var a;let s=e==null||(a=e.current)===null||a===void 0?void 0:a.form;return s?.addEventListener("reset",i),()=>{s?.removeEventListener("reset",i)}},[e,i])}const rx=C.createContext({register:()=>{}});rx.displayName="PressResponderContext";class ix{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function ax(e){let t=C.useRef({isFocused:!1,observer:null});ln(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=Jt(r=>{e?.(r)});return C.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let i=r.target,a=s=>{t.current.isFocused=!1,i.disabled&&n(new ix("blur",s)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};i.addEventListener("focusout",a,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&i.disabled){var s;(s=t.current.observer)===null||s===void 0||s.disconnect();let o=i===document.activeElement?null:document.activeElement;i.dispatchEvent(new FocusEvent("blur",{relatedTarget:o})),i.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:o}))}}),t.current.observer.observe(i,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function sx(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const a=C.useCallback(u=>{if(u.target===u.currentTarget)return r&&r(u),i&&i(!1),!0},[r,i]),s=ax(a),o=C.useCallback(u=>{u.target===u.currentTarget&&document.activeElement===u.target&&(n&&n(u),i&&i(!0),s(u))},[i,n,s]);return{focusProps:{onFocus:!t&&(n||i||r)?o:void 0,onBlur:!t&&(r||i)?a:void 0}}}let kn=null,ox=new Set,qn=new Map,nn=!1,ga=!1;function Jr(e,t){for(let n of ox)n(e,t)}function ux(e){return!(e.metaKey||!Qy()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function Dr(e){nn=!0,ux(e)&&(kn="keyboard",Jr("keyboard",e))}function ut(e){kn="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(nn=!0,Jr("pointer",e))}function Xc(e){tx(e)&&(nn=!0,kn="virtual")}function Qc(e){e.target===window||e.target===document||(!nn&&!ga&&(kn="virtual",Jr("virtual",e)),nn=!1,ga=!1)}function Kc(){nn=!1,ga=!0}function Qo(e){if(typeof window>"u"||qn.get(Or(e)))return;const t=Or(e),n=ir(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){nn=!0,r.apply(this,arguments)},n.addEventListener("keydown",Dr,!0),n.addEventListener("keyup",Dr,!0),n.addEventListener("click",Xc,!0),t.addEventListener("focus",Qc,!0),t.addEventListener("blur",Kc,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",ut,!0),n.addEventListener("pointermove",ut,!0),n.addEventListener("pointerup",ut,!0)):(n.addEventListener("mousedown",ut,!0),n.addEventListener("mousemove",ut,!0),n.addEventListener("mouseup",ut,!0)),t.addEventListener("beforeunload",()=>{Jc(e)},{once:!0}),qn.set(t,{focus:r})}const Jc=(e,t)=>{const n=Or(e),r=ir(e);t&&r.removeEventListener("DOMContentLoaded",t),qn.has(n)&&(n.HTMLElement.prototype.focus=qn.get(n).focus,r.removeEventListener("keydown",Dr,!0),r.removeEventListener("keyup",Dr,!0),r.removeEventListener("click",Xc,!0),n.removeEventListener("focus",Qc,!0),n.removeEventListener("blur",Kc,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",ut,!0),r.removeEventListener("pointermove",ut,!0),r.removeEventListener("pointerup",ut,!0)):(r.removeEventListener("mousedown",ut,!0),r.removeEventListener("mousemove",ut,!0),r.removeEventListener("mouseup",ut,!0)),qn.delete(n))};function lx(e){const t=ir(e);let n;return t.readyState!=="loading"?Qo(e):(n=()=>{Qo(e)},t.addEventListener("DOMContentLoaded",n)),()=>Jc(e,n)}typeof document<"u"&&lx();function cx(){return kn}function dx(e){kn=e,Jr(e,null)}function Ko(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.isDefaultPrevented()},stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(r),t&&n.stopPropagation()}}function fx(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:Ko(e.onKeyDown),onKeyUp:Ko(e.onKeyUp)}}}function hx(e){const t=ir(e);if(cx()==="virtual"){let n=t.activeElement;Jy(()=>{t.activeElement===n&&e.isConnected&&Wo(e)})}else Wo(e)}function px(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}class Ja{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let i=this.fastMap.get(n??null);if(!i)return;let a=new Jo({scopeRef:t});i.addChild(a),a.parent=i,this.fastMap.set(t,a),r&&(a.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let a of this.traverse())a!==n&&n.nodeToRestore&&a.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&px(a.nodeToRestore,n.scopeRef.current)&&(a.nodeToRestore=n.nodeToRestore);let i=n.children;r&&(r.removeChild(n),i.size>0&&i.forEach(a=>r&&r.addChild(a))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new Ja;var r;for(let i of this.traverse())n.addTreeNode(i.scopeRef,(r=(t=i.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,i.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new Jo({scopeRef:null}),this.fastMap.set(null,this.root)}}class Jo{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}new Ja;let mx=C.createContext(null);function gx(e){let t=C.useContext(mx)||{};ex(t,e);let{ref:n,...r}=t;return r}function bx(e,t){let{focusProps:n}=sx(e),{keyboardProps:r}=fx(e),i=Lr(n,r),a=gx(t),s=e.isDisabled?{}:a,o=C.useRef(e.autoFocus);return C.useEffect(()=>{o.current&&t.current&&hx(t.current),o.current=!1},[t]),{focusableProps:Lr({...i,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},s)}}function Ex(e,t,n){let{validationBehavior:r,focus:i}=e;ln(()=>{if(r==="native"&&n?.current){let u=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(" ")||"Invalid value.":"";n.current.setCustomValidity(u),n.current.hasAttribute("title")||(n.current.title=""),t.realtimeValidation.isInvalid||t.updateValidation(yx(n.current))}});let a=Jt(()=>{t.resetValidation()}),s=Jt(u=>{var c;t.displayValidation.isInvalid||t.commitValidation();let d=n==null||(c=n.current)===null||c===void 0?void 0:c.form;if(!u.defaultPrevented&&n&&d&&xx(d)===n.current){var f;i?i():(f=n.current)===null||f===void 0||f.focus(),dx("keyboard")}u.preventDefault()}),o=Jt(()=>{t.commitValidation()});C.useEffect(()=>{let u=n?.current;if(!u)return;let c=u.form;return u.addEventListener("invalid",s),u.addEventListener("change",o),c?.addEventListener("reset",a),()=>{u.removeEventListener("invalid",s),u.removeEventListener("change",o),c?.removeEventListener("reset",a)}},[n,s,o,a,r])}function Tx(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function yx(e){return{isInvalid:!e.validity.valid,validationDetails:Tx(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function xx(e){for(let t=0;t<e.elements.length;t++){let n=e.elements[t];if(!n.validity.valid)return n}return null}const Zc={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},ed={...Zc,customError:!0,valid:!1},Pn={isInvalid:!1,validationDetails:Zc,validationErrors:[]},_x=C.createContext({}),Zo="__formValidationState"+Date.now();function Sx(e){if(e[Zo]){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}=e[Zo];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}}return Cx(e)}function Cx(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:a,validate:s,validationBehavior:o="aria"}=e;n&&(t||(t=n==="invalid"));let u=t?{isInvalid:!0,validationErrors:[],validationDetails:ed}:null,c=C.useMemo(()=>eu(Ax(s,i)),[s,i]);a?.validationDetails.valid&&(a=null);let d=C.useContext(_x),f=C.useMemo(()=>r?Array.isArray(r)?r.flatMap(I=>ba(d[I])):ba(d[r]):[],[d,r]),[p,h]=C.useState(d),[b,y]=C.useState(!1);d!==p&&(h(d),y(!1));let w=C.useMemo(()=>eu(b?[]:f),[b,f]),S=C.useRef(Pn),[v,k]=C.useState(Pn),L=C.useRef(Pn),A=()=>{if(!N)return;Y(!1);let I=c||a||S.current;Pi(I,L.current)||(L.current=I,k(I))},[N,Y]=C.useState(!1);return C.useEffect(A),{realtimeValidation:u||w||c||a||Pn,displayValidation:o==="native"?u||w||v:u||w||c||a||v,updateValidation(I){o==="aria"&&!Pi(v,I)?k(I):S.current=I},resetValidation(){let I=Pn;Pi(I,L.current)||(L.current=I,k(I)),o==="native"&&Y(!1),y(!0)},commitValidation(){o==="native"&&Y(!0),y(!0)}}}function ba(e){return e?Array.isArray(e)?e:[e]:[]}function Ax(e,t){if(typeof e=="function"){let n=e(t);if(n&&typeof n!="boolean")return ba(n)}return[]}function eu(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:ed}:null}function Pi(e,t){return e===t?!0:e&&t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((n,r)=>n===t.validationErrors[r])&&Object.entries(e.validationDetails).every(([n,r])=>t.validationDetails[n]===r)}function wx(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:a="label"}=e;t=Rr(t);let s=Rr(),o={};n?(r=r?`${s} ${r}`:s,o={id:s,htmlFor:a==="label"?t:void 0}):!r&&!i&&console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility");let u=Zy({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:o,fieldProps:u}}function Ix(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:a,fieldProps:s}=wx(e),o=Vo([!!t,!!n,r,i]),u=Vo([!!t,!!n,r,i]);return s=Lr(s,{"aria-describedby":[o,u,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:a,fieldProps:s,descriptionProps:{id:o},errorMessageProps:{id:u}}}function vx(e,t){let{inputElementType:n="input",isDisabled:r=!1,isRequired:i=!1,isReadOnly:a=!1,type:s="text",validationBehavior:o="aria"}=e,[u,c]=Cy(e.value,e.defaultValue||"",e.onChange),{focusableProps:d}=bx(e,t),f=Sx({...e,value:u}),{isInvalid:p,validationErrors:h,validationDetails:b}=f.displayValidation,{labelProps:y,fieldProps:w,descriptionProps:S,errorMessageProps:v}=Ix({...e,isInvalid:p,errorMessage:e.errorMessage||h}),k=Yy(e,{labelable:!0});const L={type:s,pattern:e.pattern};return nx(t,u,c),Ex(e,f,t),C.useEffect(()=>{if(t.current instanceof Or(t.current).HTMLTextAreaElement){let A=t.current;Object.defineProperty(A,"defaultValue",{get:()=>A.value,set:()=>{},configurable:!0})}},[t]),{labelProps:y,inputProps:Lr(k,n==="input"&&L,{disabled:r,readOnly:a,required:i&&o==="native","aria-required":i&&o==="aria"||void 0,"aria-invalid":p||void 0,"aria-errormessage":e["aria-errormessage"],"aria-activedescendant":e["aria-activedescendant"],"aria-autocomplete":e["aria-autocomplete"],"aria-haspopup":e["aria-haspopup"],value:u,onChange:A=>c(A.target.value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,placeholder:e.placeholder,inputMode:e.inputMode,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...d,...w}),descriptionProps:S,errorMessageProps:v,isInvalid:p,validationErrors:h,validationDetails:b}}const kx=e=>e.charCodeAt(e.length-1)===10,Nx=e=>{const[t,n]=C.useState(""),r=()=>{y.current&&(y.current.style.height=y.current.scrollHeight+"px")},i=()=>{y.current&&(y.current.style.height="48px")},a=I=>{n(I)};C.useEffect(r,[t]);let{label:s,SubmitComponent:o,onSubmit:u,isLoadingStream:c,audioEnabled:d=!1,MicComponent:f,onPressMicButton:p,LoadingComponent:h,onPressLoadingButton:b}=e,y=C.useRef(null),{labelProps:w,inputProps:S}=vx({...e,inputElementType:"textarea"},y);const v=I=>{kx(I.target.value)||a(I.target.value)},k=I=>{if(I.key==="Enter"||I.code==="Enter"||I.keyCode===13||I.code==="NumpadEnter"){if(I.shiftKey)a(t+`
84
+ `,children:x.jsx(Sa,{facet:e.agent.display[Z.AgentDisplayFacetRoleType.ASSISTANT]})})},xy=({content:e,metaData:t,context:n,seenRootEl:r})=>{const{chatlineLabelAssistantTranslation:i,chatlineLabelCustomerSupportTranslation:a}=Ju(),s=t?.authorType==="customer_support_operator"?t.customerSupportAuthorName??a:i,o=Z.formatCustomerSupportProviderText({text:e??"",provider:t?.customerSupportProvider});return x.jsx(Wa,{children:x.jsx("div",{className:"chatLineAssistant flex justify-start",children:x.jsxs("div",{className:`mr-auto w-full rounded-2xl rounded-bl-md px-4 py-3 transition-all duration-300 text-left ${t?.isErrorMessage?"bg-red-100 text-red-800 shadow-md animate-fade-in":"bg-slate-100 text-gray-800 shadow-sm"}`,children:[x.jsx(Gc,{className:"logoWrapper--assistant w-full justify-start text-left mb-2 text-xs",logo:x.jsx(qc,{}),label:s}),x.jsx("div",{children:x.jsx(Ua,{remarkPlugins:[py],remarkRehypeOptions:{passThrough:["link"]},rehypePlugins:[Va],components:{a:({node:u,href:c,children:d,...f})=>x.jsx(yy,{href:c??"",...f,context:n,seenRootEl:r,children:d})},children:o})})]})})})},_y=({content:e,metaData:t})=>{const n=t?.isErrorMessage;return x.jsx(Wa,{children:x.jsx("div",{className:"chatLineSystemMessage flex justify-center px-2","data-system-event":t?.systemEvent,children:x.jsx("div",{className:`max-w-[90%] rounded-lg border px-3 py-2 text-center text-xs leading-relaxed shadow-sm ${n?"border-red-200 bg-red-50 text-red-800":"border-slate-200 bg-slate-50 text-slate-600"}`,children:x.jsx(Ua,{rehypePlugins:[Va],children:e??""})})})})},Sy=({userType:e,content:t,metaData:n,context:r,seenRootEl:i})=>{if(n?.messageKind==="system")return x.jsx(_y,{content:t,metaData:n});const a=e==="user",s=e==="assistant";return x.jsxs(x.Fragment,{children:[a&&x.jsx(aT,{content:t,metaData:n}),s&&x.jsx(xy,{content:t,metaData:n,context:r,seenRootEl:i})]})};function Cy(e,t,n){let[r,i]=C.useState(e||t),a=C.useRef(e!==void 0),s=e!==void 0;C.useEffect(()=>{let c=a.current;c!==s&&console.warn(`WARN: A component changed from ${c?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}.`),a.current=s},[s]);let o=s?e:r,u=C.useCallback((c,...d)=>{let f=(p,...h)=>{n&&(Object.is(o,p)||n(p,...h)),s||(o=p)};typeof c=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),i((h,...b)=>{let y=c(s?o:h,...b);return f(y,...d),s?h:y})):(s||i(c),f(c,...d))},[s,o,n]);return[o,u]}const kr={prefix:String(Math.round(Math.random()*1e10)),current:0},Vc=C.createContext(kr),Ay=C.createContext(!1);let wy=!!(typeof window<"u"&&window.document&&window.document.createElement),Di=new WeakMap;function Iy(e=!1){let t=C.useContext(Vc),n=C.useRef(null);if(n.current===null&&!e){var r,i;let a=(i=C.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||i===void 0||(r=i.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(a){let s=Di.get(a);s==null?Di.set(a,{id:t.current,state:a.memoizedState}):a.memoizedState!==s.state&&(t.current=s.id,Di.delete(a))}n.current=++t.current}return n.current}function vy(e){let t=C.useContext(Vc);t===kr&&!wy&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=Iy(!!e),r=t===kr&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${r}-${n}`}function ky(e){let t=C.useId(),[n]=C.useState(Dy()),r=n||process.env.NODE_ENV==="test"?"react-aria":`react-aria${kr.prefix}`;return e||`${r}-${t}`}const Ny=typeof C.useId=="function"?ky:vy;function Ry(){return!1}function Oy(){return!0}function Ly(e){return()=>{}}function Dy(){return typeof C.useSyncExternalStore=="function"?C.useSyncExternalStore(Ly,Ry,Oy):C.useContext(Ay)}function Wc(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Wc(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Py(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Wc(e))&&(r&&(r+=" "),r+=t);return r}const ln=typeof document<"u"?C.useLayoutEffect:()=>{};function Jt(e){const t=C.useRef(null);return ln(()=>{t.current=e},[e]),C.useCallback((...n)=>{const r=t.current;return r?.(...n)},[])}function My(e){let[t,n]=C.useState(e),r=C.useRef(null),i=Jt(()=>{if(!r.current)return;let s=r.current.next();if(s.done){r.current=null;return}t===s.value?i():n(s.value)});ln(()=>{r.current&&i()});let a=Jt(s=>{r.current=s(t),i()});return[t,a]}let By=!!(typeof window<"u"&&window.document&&window.document.createElement),Nr=new Map;function Rr(e){let[t,n]=C.useState(e),r=C.useRef(null),i=Ny(t),a=C.useCallback(s=>{r.current=s},[]);return By&&Nr.set(i,a),ln(()=>{let s=i;return()=>{Nr.delete(s)}},[i]),C.useEffect(()=>{let s=r.current;s&&(r.current=null,n(s))}),i}function Fy(e,t){if(e===t)return e;let n=Nr.get(e);if(n)return n(t),t;let r=Nr.get(t);return r?(r(e),e):t}function Vo(e=[]){let t=Rr(),[n,r]=My(t),i=C.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return ln(i,[t,i,...e]),n}function Hy(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const ir=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},Or=e=>e&&"window"in e&&e.window===e?e:ir(e).defaultView||window;function Lr(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let i in r){let a=t[i],s=r[i];typeof a=="function"&&typeof s=="function"&&i[0]==="o"&&i[1]==="n"&&i.charCodeAt(2)>=65&&i.charCodeAt(2)<=90?t[i]=Hy(a,s):(i==="className"||i==="UNSAFE_className")&&typeof a=="string"&&typeof s=="string"?t[i]=Py(a,s):i==="id"&&a&&s?t.id=Fy(a,s):t[i]=s!==void 0?s:a}}return t}const Uy=new Set(["id"]),jy=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),zy=new Set(["href","target","rel","download","ping","referrerPolicy"]),$y=/^(data-.*)$/;function Yy(e,t={}){let{labelable:n,isLink:r,propNames:i}=t,a={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(Uy.has(s)||n&&jy.has(s)||r&&zy.has(s)||i?.has(s)||$y.test(s))&&(a[s]=e[s]);return a}function Wo(e){if(Gy())e.focus({preventScroll:!0});else{let t=qy(e);e.focus(),Vy(t)}}let pr=null;function Gy(){if(pr==null){pr=!1;try{document.createElement("div").focus({get preventScroll(){return pr=!0,!0}})}catch{}}return pr}function qy(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function Vy(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function Wy(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function Xy(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function Qy(){return Xy(/^Mac/i)}function Ky(){return Wy(/Android/i)}let pn=new Map,ma=new Set;function Xo(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let i=pn.get(r.target);i||(i=new Set,pn.set(r.target,i),r.target.addEventListener("transitioncancel",n,{once:!0})),i.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let i=pn.get(r.target);if(i&&(i.delete(r.propertyName),i.size===0&&(r.target.removeEventListener("transitioncancel",n),pn.delete(r.target)),pn.size===0)){for(let a of ma)a();ma.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?Xo():document.addEventListener("DOMContentLoaded",Xo));function Jy(e){requestAnimationFrame(()=>{pn.size===0?e():ma.add(e)})}function Zy(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=Rr(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(" "):i&&(i=i.trim().split(/\s+/).join(" ")),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function ex(e,t){ln(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function tx(e){return e.mozInputSource===0&&e.isTrusted?!0:Ky()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function nx(e,t,n){let r=C.useRef(t),i=Jt(()=>{n&&n(r.current)});C.useEffect(()=>{var a;let s=e==null||(a=e.current)===null||a===void 0?void 0:a.form;return s?.addEventListener("reset",i),()=>{s?.removeEventListener("reset",i)}},[e,i])}const rx=C.createContext({register:()=>{}});rx.displayName="PressResponderContext";class ix{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function ax(e){let t=C.useRef({isFocused:!1,observer:null});ln(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=Jt(r=>{e?.(r)});return C.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let i=r.target,a=s=>{t.current.isFocused=!1,i.disabled&&n(new ix("blur",s)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};i.addEventListener("focusout",a,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&i.disabled){var s;(s=t.current.observer)===null||s===void 0||s.disconnect();let o=i===document.activeElement?null:document.activeElement;i.dispatchEvent(new FocusEvent("blur",{relatedTarget:o})),i.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:o}))}}),t.current.observer.observe(i,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function sx(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const a=C.useCallback(u=>{if(u.target===u.currentTarget)return r&&r(u),i&&i(!1),!0},[r,i]),s=ax(a),o=C.useCallback(u=>{u.target===u.currentTarget&&document.activeElement===u.target&&(n&&n(u),i&&i(!0),s(u))},[i,n,s]);return{focusProps:{onFocus:!t&&(n||i||r)?o:void 0,onBlur:!t&&(r||i)?a:void 0}}}let kn=null,ox=new Set,qn=new Map,nn=!1,ga=!1;function Jr(e,t){for(let n of ox)n(e,t)}function ux(e){return!(e.metaKey||!Qy()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function Dr(e){nn=!0,ux(e)&&(kn="keyboard",Jr("keyboard",e))}function ut(e){kn="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(nn=!0,Jr("pointer",e))}function Xc(e){tx(e)&&(nn=!0,kn="virtual")}function Qc(e){e.target===window||e.target===document||(!nn&&!ga&&(kn="virtual",Jr("virtual",e)),nn=!1,ga=!1)}function Kc(){nn=!1,ga=!0}function Qo(e){if(typeof window>"u"||qn.get(Or(e)))return;const t=Or(e),n=ir(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){nn=!0,r.apply(this,arguments)},n.addEventListener("keydown",Dr,!0),n.addEventListener("keyup",Dr,!0),n.addEventListener("click",Xc,!0),t.addEventListener("focus",Qc,!0),t.addEventListener("blur",Kc,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",ut,!0),n.addEventListener("pointermove",ut,!0),n.addEventListener("pointerup",ut,!0)):(n.addEventListener("mousedown",ut,!0),n.addEventListener("mousemove",ut,!0),n.addEventListener("mouseup",ut,!0)),t.addEventListener("beforeunload",()=>{Jc(e)},{once:!0}),qn.set(t,{focus:r})}const Jc=(e,t)=>{const n=Or(e),r=ir(e);t&&r.removeEventListener("DOMContentLoaded",t),qn.has(n)&&(n.HTMLElement.prototype.focus=qn.get(n).focus,r.removeEventListener("keydown",Dr,!0),r.removeEventListener("keyup",Dr,!0),r.removeEventListener("click",Xc,!0),n.removeEventListener("focus",Qc,!0),n.removeEventListener("blur",Kc,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",ut,!0),r.removeEventListener("pointermove",ut,!0),r.removeEventListener("pointerup",ut,!0)):(r.removeEventListener("mousedown",ut,!0),r.removeEventListener("mousemove",ut,!0),r.removeEventListener("mouseup",ut,!0)),qn.delete(n))};function lx(e){const t=ir(e);let n;return t.readyState!=="loading"?Qo(e):(n=()=>{Qo(e)},t.addEventListener("DOMContentLoaded",n)),()=>Jc(e,n)}typeof document<"u"&&lx();function cx(){return kn}function dx(e){kn=e,Jr(e,null)}function Ko(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.isDefaultPrevented()},stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(r),t&&n.stopPropagation()}}function fx(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:Ko(e.onKeyDown),onKeyUp:Ko(e.onKeyUp)}}}function hx(e){const t=ir(e);if(cx()==="virtual"){let n=t.activeElement;Jy(()=>{t.activeElement===n&&e.isConnected&&Wo(e)})}else Wo(e)}function px(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}class Ja{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let i=this.fastMap.get(n??null);if(!i)return;let a=new Jo({scopeRef:t});i.addChild(a),a.parent=i,this.fastMap.set(t,a),r&&(a.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let a of this.traverse())a!==n&&n.nodeToRestore&&a.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&px(a.nodeToRestore,n.scopeRef.current)&&(a.nodeToRestore=n.nodeToRestore);let i=n.children;r&&(r.removeChild(n),i.size>0&&i.forEach(a=>r&&r.addChild(a))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new Ja;var r;for(let i of this.traverse())n.addTreeNode(i.scopeRef,(r=(t=i.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,i.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new Jo({scopeRef:null}),this.fastMap.set(null,this.root)}}class Jo{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}new Ja;let mx=C.createContext(null);function gx(e){let t=C.useContext(mx)||{};ex(t,e);let{ref:n,...r}=t;return r}function bx(e,t){let{focusProps:n}=sx(e),{keyboardProps:r}=fx(e),i=Lr(n,r),a=gx(t),s=e.isDisabled?{}:a,o=C.useRef(e.autoFocus);return C.useEffect(()=>{o.current&&t.current&&hx(t.current),o.current=!1},[t]),{focusableProps:Lr({...i,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},s)}}function Ex(e,t,n){let{validationBehavior:r,focus:i}=e;ln(()=>{if(r==="native"&&n?.current){let u=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(" ")||"Invalid value.":"";n.current.setCustomValidity(u),n.current.hasAttribute("title")||(n.current.title=""),t.realtimeValidation.isInvalid||t.updateValidation(yx(n.current))}});let a=Jt(()=>{t.resetValidation()}),s=Jt(u=>{var c;t.displayValidation.isInvalid||t.commitValidation();let d=n==null||(c=n.current)===null||c===void 0?void 0:c.form;if(!u.defaultPrevented&&n&&d&&xx(d)===n.current){var f;i?i():(f=n.current)===null||f===void 0||f.focus(),dx("keyboard")}u.preventDefault()}),o=Jt(()=>{t.commitValidation()});C.useEffect(()=>{let u=n?.current;if(!u)return;let c=u.form;return u.addEventListener("invalid",s),u.addEventListener("change",o),c?.addEventListener("reset",a),()=>{u.removeEventListener("invalid",s),u.removeEventListener("change",o),c?.removeEventListener("reset",a)}},[n,s,o,a,r])}function Tx(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function yx(e){return{isInvalid:!e.validity.valid,validationDetails:Tx(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function xx(e){for(let t=0;t<e.elements.length;t++){let n=e.elements[t];if(!n.validity.valid)return n}return null}const Zc={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},ed={...Zc,customError:!0,valid:!1},Pn={isInvalid:!1,validationDetails:Zc,validationErrors:[]},_x=C.createContext({}),Zo="__formValidationState"+Date.now();function Sx(e){if(e[Zo]){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}=e[Zo];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}}return Cx(e)}function Cx(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:a,validate:s,validationBehavior:o="aria"}=e;n&&(t||(t=n==="invalid"));let u=t?{isInvalid:!0,validationErrors:[],validationDetails:ed}:null,c=C.useMemo(()=>eu(Ax(s,i)),[s,i]);a?.validationDetails.valid&&(a=null);let d=C.useContext(_x),f=C.useMemo(()=>r?Array.isArray(r)?r.flatMap(I=>ba(d[I])):ba(d[r]):[],[d,r]),[p,h]=C.useState(d),[b,y]=C.useState(!1);d!==p&&(h(d),y(!1));let w=C.useMemo(()=>eu(b?[]:f),[b,f]),S=C.useRef(Pn),[v,k]=C.useState(Pn),L=C.useRef(Pn),A=()=>{if(!N)return;Y(!1);let I=c||a||S.current;Pi(I,L.current)||(L.current=I,k(I))},[N,Y]=C.useState(!1);return C.useEffect(A),{realtimeValidation:u||w||c||a||Pn,displayValidation:o==="native"?u||w||v:u||w||c||a||v,updateValidation(I){o==="aria"&&!Pi(v,I)?k(I):S.current=I},resetValidation(){let I=Pn;Pi(I,L.current)||(L.current=I,k(I)),o==="native"&&Y(!1),y(!0)},commitValidation(){o==="native"&&Y(!0),y(!0)}}}function ba(e){return e?Array.isArray(e)?e:[e]:[]}function Ax(e,t){if(typeof e=="function"){let n=e(t);if(n&&typeof n!="boolean")return ba(n)}return[]}function eu(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:ed}:null}function Pi(e,t){return e===t?!0:e&&t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((n,r)=>n===t.validationErrors[r])&&Object.entries(e.validationDetails).every(([n,r])=>t.validationDetails[n]===r)}function wx(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:a="label"}=e;t=Rr(t);let s=Rr(),o={};n?(r=r?`${s} ${r}`:s,o={id:s,htmlFor:a==="label"?t:void 0}):!r&&!i&&console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility");let u=Zy({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:o,fieldProps:u}}function Ix(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:a,fieldProps:s}=wx(e),o=Vo([!!t,!!n,r,i]),u=Vo([!!t,!!n,r,i]);return s=Lr(s,{"aria-describedby":[o,u,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:a,fieldProps:s,descriptionProps:{id:o},errorMessageProps:{id:u}}}function vx(e,t){let{inputElementType:n="input",isDisabled:r=!1,isRequired:i=!1,isReadOnly:a=!1,type:s="text",validationBehavior:o="aria"}=e,[u,c]=Cy(e.value,e.defaultValue||"",e.onChange),{focusableProps:d}=bx(e,t),f=Sx({...e,value:u}),{isInvalid:p,validationErrors:h,validationDetails:b}=f.displayValidation,{labelProps:y,fieldProps:w,descriptionProps:S,errorMessageProps:v}=Ix({...e,isInvalid:p,errorMessage:e.errorMessage||h}),k=Yy(e,{labelable:!0});const L={type:s,pattern:e.pattern};return nx(t,u,c),Ex(e,f,t),C.useEffect(()=>{if(t.current instanceof Or(t.current).HTMLTextAreaElement){let A=t.current;Object.defineProperty(A,"defaultValue",{get:()=>A.value,set:()=>{},configurable:!0})}},[t]),{labelProps:y,inputProps:Lr(k,n==="input"&&L,{disabled:r,readOnly:a,required:i&&o==="native","aria-required":i&&o==="aria"||void 0,"aria-invalid":p||void 0,"aria-errormessage":e["aria-errormessage"],"aria-activedescendant":e["aria-activedescendant"],"aria-autocomplete":e["aria-autocomplete"],"aria-haspopup":e["aria-haspopup"],value:u,onChange:A=>c(A.target.value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,placeholder:e.placeholder,inputMode:e.inputMode,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...d,...w}),descriptionProps:S,errorMessageProps:v,isInvalid:p,validationErrors:h,validationDetails:b}}const kx=e=>e.charCodeAt(e.length-1)===10,Nx=e=>{const[t,n]=C.useState(""),r=()=>{y.current&&(y.current.style.height=y.current.scrollHeight+"px")},i=()=>{y.current&&(y.current.style.height="48px")},a=I=>{n(I)};C.useEffect(r,[t]);const{label:s,SubmitComponent:o,onSubmit:u,isLoadingStream:c,audioEnabled:d=!1,MicComponent:f,onPressMicButton:p,LoadingComponent:h,onPressLoadingButton:b}=e,y=C.useRef(null),{labelProps:w,inputProps:S}=vx({...e,inputElementType:"textarea"},y),v=I=>{kx(I.target.value)||a(I.target.value)},k=I=>{if(I.key==="Enter"||I.code==="Enter"||I.keyCode===13||I.code==="NumpadEnter"){if(I.shiftKey)a(t+`
85
85
  `);else if(!I.shiftKey){I.preventDefault(),I.stopPropagation(),c||Y();return}}},L=I=>{(I.key==="Enter"||I.code==="Enter"||I.keyCode===13||I.code==="NumpadEnter")&&(I.preventDefault(),I.stopPropagation())},A=t.trim().length>0,N=!!(e.isDisabled||e.shouldDisableIfInputIsEmpty&&!A),Y=()=>{N||(i(),u?.(t),a(""))},V=d&&!!f&&!!o&&!A&&!c,ne=()=>c&&h?x.jsx("div",{className:"relative",children:x.jsx(h,{onPressLoadingButton:b})}):o?!d||!f?x.jsx("div",{className:"relative",children:x.jsx(o,{onSubmitButton:Y,isDisabled:N})}):A?x.jsx("div",{className:"relative",children:x.jsx(o,{onSubmitButton:Y,isDisabled:N})}):x.jsxs("div",{className:"relative",children:[x.jsx("div",{className:"block md:hidden",children:x.jsx(f,{onPressMicButton:p})}),x.jsxs("div",{className:"hidden md:block",children:[x.jsx(f,{onPressMicButton:p,className:"md:!right-12"}),x.jsx(o,{onSubmitButton:Y,isDisabled:N,className:"md:!right-3"})]})]}):null;return x.jsxs("div",{style:{display:"flex",flexDirection:"column"},className:`${e.classNameContainer} w-full`,children:[x.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[x.jsx("label",{...w,className:e.classNameLabel,children:s}),x.jsx("textarea",{...S,ref:y,className:`${e.classNameTextarea} p-3 ${V?"pr-12 md:pr-24":"pr-12"}`,onChange:v,value:t,rows:1,style:{overflow:"hidden",outlineColor:"#a8a8a8",border:"none",outline:"none",width:V?"calc(100% - 72px)":"calc(100% - 30px)",resize:"none"},onKeyDown:k,onKeyUp:L})]}),ne()]})},Rx=({onSubmitButton:e,isDisabled:t,className:n})=>x.jsx("div",{children:x.jsx("button",{className:`absolute
86
86
  bg-violet-600
87
87
  md:bottom-2
@@ -101,7 +101,7 @@ For more details see https://formatjs.io/docs/getting-started/message-distributi
101
101
  dark:bg-white
102
102
  transition-colors
103
103
  chatsystem-paperplane-button
104
- ${n??""}`,"data-testid":"send-button",onClick:e,disabled:t,type:"button","aria-label":"Send message",children:x.jsx("span",{className:"","data-state":"closed",children:x.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24","aria-hidden":"true",className:"text-white dark:text-black",children:[x.jsx("path",{d:"M3 20L21 12L3 4L7.5 12L3 20Z",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"}),x.jsx("path",{d:"M7.5 12H14.75",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})})})});var lt=(e=>(e.FRENCH="fr-FR",e.ENGLISH="en-US",e))(lt||{});const Ox={"generic.language.english":"English","generic.language.french":"French","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Discussion limit reached","chatbot.DiscussionLimitReached.explaination":"The discussion has reached its maximum number of messages. Please start a new one.","chatbot.DiscussionLimitReached.cta":"Restart","chatbot.error.api.409":"Oups ! The discussion if full. Please start a new one.","chatbot.error.api.429":"⏳ The chatbot is a little busy at the time. Please try again later.","chatbot.error.api.500":"Oops ! There has been an error. Please try again later.","chatbot.chatline.label.user":"You","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Customer support","chatbot.chatline.loading.function.genericSearchMessage":"Thinking ...","chatbot.chatline.loading.function.search":"Search","chatbot.chatline.loading.function.extractProductName":"Looking into the cavern","chatbot.chatline.loading.function.suggestProductName":"Consulting the shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Looking for ziboublis","chatbot.chatline.loading.function.searchStock":"Searching Stock","chatbot.chatline.loading.function.step":"Step","chatbot.chatline.loading.stepName.search":"Searching ...","chatbot.chatline.loading.stepName.building":"Building Query ...","chatbot.chatline.loading.stepName.analyzing":"Analyzing ...","chatbot.chatline.loading.stepName.redacting":"Writing answer","chatbot.chatline.loading.cancel":"Cancel","chatbot.chatline.seeRecentMessages":"see recent messages","chatbot.widget.menu.open":"Open chat menu","chatbot.widget.menu.startNewDiscussion":"Start a new discussion","chatbot.widget.close":"Close chat","recordingOverlay.recording":"Recording...","recordingOverlay.cancel":"Cancel","recordingOverlay.explaination":"Tap the mic to stop","chatbot.infobanner.title":"You have an archived discussion.","chatbot.infobanner.cta":"See","chatbot.customerSupport.connecting":"Transferring your request to customer support...","chatbot.customerSupport.connected":"Your request has been sent to Customer Support. It usually takes a few minutes to get a reply. Thank you for waiting.","chatbot.customerSupport.connectionError":"Customer support is not available right now. Please try again later.","chatbot.customerSupport.providerUnavailable":"Customer support received your request, but live replies are temporarily unavailable. Please try again shortly.","chatbot.customerSupport.closed":"Your customer support conversation is now complete. Start a new conversation if you need more help!","chatbot.customerSupport.restart":"Restart","chatbot.customerSupport.fallback.title":"Leave your contact details","chatbot.customerSupport.fallback.description":"Customer support has not replied yet. Leave your email and phone number and we will contact you soon.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"Phone","chatbot.customerSupport.fallback.submit":"Send","chatbot.customerSupport.fallback.submitting":"Sending...","chatbot.customerSupport.fallback.success":"Your contact details have been saved. Customer support will contact you soon.","chatbot.customerSupport.closedHours.title":"Customer support is currently closed","chatbot.customerSupport.closedHours.description":"Leave your email, phone number and request. Customer support will contact you during opening hours.","chatbot.customerSupport.closedHours.schedulePrefix":"Today:","chatbot.customerSupport.closedHours.reason":"Reason for your request","chatbot.customerSupport.closedHours.success":"Your request has been saved. Customer support will contact you during opening hours.","chatbot.customerSupport.fallback.error":"We could not save your contact details. Please try again."},Lx={"generic.language.english":"Anglais","generic.language.french":"FranΓ§ais","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Maximum de messages envoyΓ©s atteint.","chatbot.DiscussionLimitReached.explaination":"Le robot est Γ  son maximum et ne peut plus envoyer de message. Merci de relancer une conversation.","chatbot.DiscussionLimitReached.cta":"Relancer une nouvelle conversation","chatbot.error.api.409":"Oups ! La discussion est Γ  son maximum. Merci d'en commencer une nouvelle.","chatbot.error.api.429":"⏳ Le robot est un peu occupΓ© actuellement. Merci de rΓ©essayer plus tard.","chatbot.error.api.500":"Oups ! Une erreur est survenue. Merci de rΓ©essayer plus tard !","chatbot.chatline.label.user":"Vous","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Support client","chatbot.chatline.loading.function.search":"Recherche","chatbot.chatline.loading.function.genericSearchMessage":"Je rΓ©flΓ©chis ...","chatbot.chatline.loading.function.extractProductName":"Recherche dans la caverne","chatbot.chatline.loading.function.suggestProductName":"Consultation des shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Recherche des ziboublis","chatbot.chatline.loading.function.searchStock":"Recherche en stock","chatbot.chatline.loading.function.step":"Etape","chatbot.chatline.loading.stepName.search":"Recherche ...","chatbot.chatline.loading.stepName.building":"Construction ...","chatbot.chatline.loading.stepName.analyzing":"Analyse ...","chatbot.chatline.loading.stepName.redacting":"RΓ©daction","chatbot.chatline.loading.cancel":"Annuler","chatbot.chatline.seeRecentMessages":"voir les messages plus rΓ©cents","chatbot.widget.menu.open":"Ouvrir le menu de discussion","chatbot.widget.menu.startNewDiscussion":"DΓ©marrer une nouvelle discussion","chatbot.widget.close":"Fermer la discussion","recordingOverlay.recording":"Micro activΓ©...","recordingOverlay.cancel":"Annuler","recordingOverlay.explaination":"Appuyez sur le micro pour arrΓͺter","chatbot.infobanner.title":"Vous avez une conversation archivΓ©e.","chatbot.infobanner.cta":"Voir","chatbot.customerSupport.connecting":"Transfert de votre demande au support client...","chatbot.customerSupport.connected":"Votre demande a Γ©tΓ© transmise au support client. Il faut gΓ©nΓ©ralement quelques minutes pour obtenir une rΓ©ponse. Merci de patienter.","chatbot.customerSupport.connectionError":"Le support client n'est pas disponible pour le moment. Merci de rΓ©essayer plus tard.","chatbot.customerSupport.providerUnavailable":"Le support client a reΓ§u votre demande, mais les rΓ©ponses en direct sont temporairement indisponibles. Merci de rΓ©essayer dans quelques instants.","chatbot.customerSupport.closed":"Votre Γ©change avec le support client est terminΓ©. Relancez une nouvelle conversation quand vous le souhaitez !","chatbot.customerSupport.restart":"Relancer","chatbot.customerSupport.fallback.title":"Laissez vos coordonnΓ©es","chatbot.customerSupport.fallback.description":"Le support client n'a pas encore rΓ©pondu. Laissez votre email et votre tΓ©lΓ©phone, nous vous recontacterons prochainement.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"TΓ©lΓ©phone","chatbot.customerSupport.fallback.submit":"Envoyer","chatbot.customerSupport.fallback.submitting":"Envoi...","chatbot.customerSupport.fallback.success":"Vos coordonnΓ©es ont bien Γ©tΓ© notΓ©es. Le support client vous recontactera prochainement.","chatbot.customerSupport.closedHours.title":"Le support client est actuellement fermΓ©","chatbot.customerSupport.closedHours.description":"Laissez votre email, votre tΓ©lΓ©phone et le motif de votre demande. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.closedHours.schedulePrefix":"Aujourd’hui :","chatbot.customerSupport.closedHours.reason":"Motif de votre demande","chatbot.customerSupport.closedHours.success":"Votre demande a bien Γ©tΓ© enregistrΓ©e. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.fallback.error":"Impossible d'enregistrer vos coordonnΓ©es. Merci de rΓ©essayer."},Zr={[lt.ENGLISH]:{translatedText:Ox,pictureName:lt.ENGLISH,langID:0,locale:lt.ENGLISH},[lt.FRENCH]:{translatedText:Lx,pictureName:lt.FRENCH,langID:1,locale:lt.FRENCH}},Dx=Object.keys(Zr);Dx.reduce((e,t)=>{const n=Zr[t];return[...e,n]},[]);const Px="languageSettings",td=C.createContext({appCurrentLang:Zr[lt.ENGLISH],setAppCurrentLang:()=>{}}),Mx=e=>e.filter(t=>t.userType==="user").length;var Ea=(e=>(e.GET_DISCUSSION_ID="/id",e.RESET_DISCUSSION="/delete",e))(Ea||{});const Bx=e=>!!e.startsWith("/"),Fx=(e,t,n)=>e===Ea.GET_DISCUSSION_ID?t?`Votre ID de discussion est ${t}`:"Votre ID de discussion n'est pas encore dΓ©fini. Envoyez un premier message pour que ce soit le cas.":e===Ea.RESET_DISCUSSION?(n(),null):`La commande ${e} n'est pas prise en compte.`;class Nt{static pending="";constructor(){}static transformNDJSONChunkIntoObjects(t){const n=Ct();this.pending+=t;const r=this.pending.split(/\r?\n/);this.pending=r.pop()??"";const i=[];for(const a of r){const s=a.trim();if(s)try{i.push(JSON.parse(s))}catch{n.warn("[NDJSON] Could not parse line:",s)}}return i}static flushPending(){const t=this.pending.trim();if(this.pending="",!t)return[];try{return[JSON.parse(t)]}catch{return[]}}static isObjectOutputstreamMessageDeltaDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_DELTA;static isObjectOutputstreamMessageStartDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_START;static isObjectOutputstreamMessageEndDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_END;static isObjectOutputstreamErrorDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_ERROR;static isObjectOutputstreamClientEventDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_CLIENT_EVENT;static isObjectOutputstreamLoadingNumberOfStepsDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE;static isObjectOutputstreamLoadingCurrentStepNumberDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE;static isObjectOutputstreamLoadingCurrentStepNameDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE;static containsObjectWithLastAnswerToTrue=t=>{for(const n of t)if(this.isObjectOutputstreamMessageEndDTO(n)&&n.isLastAnswer)return!0;return!1}}const Hx=e=>{if(!Z.isUnknownRecord(e))return;const t=Z.readOptionalNumber(e.timeoutMinutes)??Z.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES;return{enabled:e.enabled===!0,timeoutMinutes:Math.max(1,Math.min(120,Math.round(t))),requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1}},Ux=e=>{if(Z.isUnknownRecord(e))return{enabled:e.enabled!==!1,requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1,requireReason:e.requireReason!==!1}},jx=e=>{if(!Z.isUnknownRecord(e))return null;const t=e;if(t.type!=="interactive_widget_request"||t.event!=="interactiveWidget.requested"||t.widgetType!==Z.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport||!Z.isUnknownRecord(t.payload))return null;const n=t.payload;if((Z.readOptionalString(n.mode)??"live_chat")==="closed_hours_contact_capture"){const s=Z.readOptionalString(n.reconnectToken),o=Z.readOptionalNumber(n.customerSupportSessionId),u=Ux(n.closedHoursContactCapture);if(n.transport!=="none"||!s||!o||!u||!u.enabled)return null;const c=Z.isUnknownRecord(n.businessHours)?n.businessHours:{};return{mode:"closed_hours_contact_capture",transport:"none",reconnectToken:s,reconnectTokenExpiresAt:Z.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:o,companyId:Z.readOptionalNumber(t.companyId),agentId:Z.readOptionalNullableNumber(t.agentId),discussionId:Z.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Z.readOptionalNullableString(t.toolcallId),closedHoursContactCapture:u,businessHours:{timezone:Z.readOptionalString(c.timezone)??Z.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE,todayScheduleLabel:Z.readOptionalString(c.todayScheduleLabel)}}}if(n.transport!=="socket"||typeof n.socketUrl!="string")return null;const i=Z.readOptionalString(n.handoffToken),a=Z.readOptionalString(n.reconnectToken);return!i&&!a?null:{mode:"live_chat",transport:"socket",socketUrl:n.socketUrl,handoffToken:i,reconnectToken:a,reconnectTokenExpiresAt:Z.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:Z.readOptionalNumber(n.customerSupportSessionId),companyId:Z.readOptionalNumber(t.companyId),agentId:Z.readOptionalNullableNumber(t.agentId),discussionId:Z.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Z.readOptionalNullableString(t.toolcallId),fallbackContactCapture:Hx(n.fallbackContactCapture)}},zx=e=>jx(e),$x=/^[a-zA-Z0-9][a-zA-Z0-9:._-]*$/,Yx=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Gx=e=>{if(!Z.isUnknownRecord(e)||e.protocolVersion!==Z.IDENTITY_GATE_PROTOCOL_V1&&e.protocolVersion!==Z.IDENTITY_GATE_PROTOCOL_V2||typeof e.gateId!="string"||e.gateId.length<1||e.gateId.length>100||typeof e.toolCallId!="string"||e.toolCallId.length<1||e.toolCallId.length>255||typeof e.resultToken!="string"||e.resultToken.length<32||e.resultToken.length>512||typeof e.expiresAt!="string"||!Number.isFinite(Date.parse(e.expiresAt))||e.reason!=="identity_required"&&e.reason!=="identity_expired"||!Array.isArray(e.requiredCapabilities)||e.requiredCapabilities.length<1||e.requiredCapabilities.length>50||!e.requiredCapabilities.every(n=>typeof n=="string"&&n.length<=100&&$x.test(n)))return null;const t={gateId:e.gateId,toolCallId:e.toolCallId,requiredCapabilities:[...new Set(e.requiredCapabilities)].sort(),reason:e.reason,expiresAt:e.expiresAt,resultToken:e.resultToken};return e.protocolVersion===Z.IDENTITY_GATE_PROTOCOL_V1?{protocolVersion:Z.IDENTITY_GATE_PROTOCOL_V1,...t}:!Z.isUnknownRecord(e.continuation)||typeof e.continuation.continuationId!="string"||!Yx.test(e.continuation.continuationId)||typeof e.continuation.expiresAt!="string"||!Number.isFinite(Date.parse(e.continuation.expiresAt))?null:{protocolVersion:Z.IDENTITY_GATE_PROTOCOL_V2,...t,continuation:{continuationId:e.continuation.continuationId,expiresAt:e.continuation.expiresAt}}},qx=e=>{if(e.event===Z.IDENTITY_GATE_REQUIRED_EVENT){const n=Gx(e.payload);if(n)return{type:"identity_gate_required",payload:n}}const t=zx(e.payload);return t?{type:"customer_support_handoff_requested",payload:t}:{type:"unhandled_client_event",event:e}},Vx=1e4,Wx=3e3,Xx=e=>{const t=new URL(e);return t.protocol=t.protocol==="https:"?"wss:":"ws:",t},Qx=({apiUrl:e,handoff:t})=>(t.socketUrl.startsWith("ws://")||t.socketUrl.startsWith("wss://")?new URL(t.socketUrl):new URL(t.socketUrl,Xx(e))).toString(),Kx=e=>{if(typeof e!="object"||e===null)return!1;const t=e;return["connected","customer_message_ack","provider_message","closed","error"].includes(t.type)};class Jx{socket;callbacks;url;appToken;handoffToken;isIntentionalClose=!1;handshakeTimeout;closeAcknowledgementTimeout=null;constructor(t){this.callbacks=t.callbacks,this.url=Qx(t),this.appToken=t.appToken;const n=t.handoff.reconnectToken??t.handoff.handoffToken;if(!n)throw new Error("Customer support socket requires a reconnect token");this.handoffToken=n,this.socket=new WebSocket(this.url),this.handshakeTimeout=setTimeout(()=>{this.socket.readyState!==WebSocket.CONNECTING&&this.socket.readyState!==WebSocket.OPEN||(this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()}),this.socket.close())},Vx),this.socket.addEventListener("open",this.sendAuthMessage),this.socket.addEventListener("message",this.handleMessage),this.socket.addEventListener("close",this.handleClose),this.socket.addEventListener("error",this.handleTransportError)}sendAuthMessage=()=>{this.socket.send(JSON.stringify({type:"auth",appToken:this.appToken,handoffToken:this.handoffToken}))};sendCustomerMessage(t){if(this.socket.readyState!==WebSocket.OPEN){this.callbacks.onError?.({type:"error",message:"Customer support connection is not ready.",code:"CUSTOMER_SUPPORT_SOCKET_NOT_READY"});return}const n={type:"customer_message",text:t,clientMessageId:crypto.randomUUID()};this.socket.send(JSON.stringify(n))}close(t,n){if(this.isIntentionalClose=!0,clearTimeout(this.handshakeTimeout),this.socket.readyState===WebSocket.OPEN&&n?.notifyServer){const r={type:"close",reason:t};this.socket.send(JSON.stringify(r)),this.closeAcknowledgementTimeout=setTimeout(()=>{this.closeTransport(t)},Wx);return}this.closeTransport(t)}handleMessage=t=>{clearTimeout(this.handshakeTimeout);let n;try{n=JSON.parse(t.data)}catch{this.callbacks.onError?.({type:"error",message:"Customer support sent an invalid message.",code:"CUSTOMER_SUPPORT_SOCKET_INVALID_MESSAGE"});return}if(Kx(n)){if(n.type==="connected"){this.callbacks.onConnected?.(n);return}if(n.type==="provider_message"){this.callbacks.onProviderMessage?.(n);return}if(n.type==="closed"){if(this.closeAcknowledgementTimeout!==null){clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null,this.closeTransport("Customer support session closed");return}this.callbacks.onClosed?.(n);return}n.type==="error"&&this.callbacks.onError?.(n)}};handleClose=t=>{clearTimeout(this.handshakeTimeout),this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),!this.isIntentionalClose&&this.callbacks.onClose?.(t)};handleTransportError=()=>{this.isIntentionalClose||this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()})};closeTransport(t){this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),this.socket.close(1e3,t??"Customer support socket detached")}safeUrlForLogs(){const t=new URL(this.url);return t.searchParams.has("handoffToken")&&t.searchParams.set("handoffToken","<redacted>"),t.toString()}}const Zx=new Set(["SLACK_INBOUND_EVENT_NOT_OBSERVED"]),e_=e=>e&&Zx.has(e)?"provider_unavailable":"connection_error",t_=e=>e.isClosed?e.labels.closed:!e.isCustomerSupportMode||!e.hasTransportFailed?null:e.failureKind==="provider_unavailable"?e.labels.providerUnavailable:e.labels.connectionError,n_=[500,1500,3e3],r_=e=>{const t=n_[e];return t===void 0?{shouldRetry:!1}:{shouldRetry:!0,delayMs:t}},_t={ai:"ai",customerSupport:"customer_support"},ei="chatsystem-widget",i_=1440*60*1e3;function mr(e){return typeof e=="string"&&!Number.isNaN(Date.parse(e))}function a_(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.timeoutMinutes!="number"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean")}function s_(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean"||typeof e.requireReason!="boolean")}function o_(e){if(typeof e!="object"||e===null||typeof e.discussionId!="number"||typeof e.reconnectToken!="string"||!mr(e.startedAt)||!mr(e.updatedAt)||e.reconnectTokenExpiresAt!==void 0&&!mr(e.reconnectTokenExpiresAt)||e.closedAt!==void 0&&!mr(e.closedAt)||e.closedReason!==void 0&&typeof e.closedReason!="string")return!1;const t=e.mode??"live_chat";return t==="closed_hours_contact_capture"?!(!["active","closed"].includes(e.status)||typeof e.customerSupportSessionId!="number"||!s_(e.closedHoursContactCapture)||typeof e.businessHours!="object"||e.businessHours===null||typeof e.businessHours.timezone!="string"||e.businessHours.todayScheduleLabel!==void 0&&typeof e.businessHours.todayScheduleLabel!="string"):!(t!=="live_chat"||!["connecting","active","closed"].includes(e.status)||typeof e.socketUrl!="string"||e.customerSupportSessionId!==void 0&&typeof e.customerSupportSessionId!="number"||e.isWaitingForFirstProviderReply!==void 0&&typeof e.isWaitingForFirstProviderReply!="boolean"||e.fallbackContactCapture!==void 0&&!a_(e.fallbackContactCapture))}function u_(e){return!(typeof e!="object"||e===null||e.userType!=="user"&&e.userType!=="assistant"||"content"in e&&e.content!==void 0&&typeof e.content!="string"||"metaData"in e&&e.metaData!==void 0&&(typeof e.metaData!="object"||e.metaData===null||"isErrorMessage"in e.metaData&&e.metaData.isErrorMessage!==void 0&&typeof e.metaData.isErrorMessage!="boolean"||"messageKind"in e.metaData&&e.metaData.messageKind!==void 0&&!["conversation","system"].includes(e.metaData.messageKind)||"systemEvent"in e.metaData&&e.metaData.systemEvent!==void 0&&!["customer_support_connecting","customer_support_connected","customer_support_closed","customer_support_connection_error"].includes(e.metaData.systemEvent)||"customerSupportAuthorName"in e.metaData&&e.metaData.customerSupportAuthorName!==void 0&&typeof e.metaData.customerSupportAuthorName!="string"))}function l_(e){return!(typeof e!="object"||e===null||!Array.isArray(e.items)||!e.items.every(u_)||e.discussionId!==null&&typeof e.discussionId!="number"||typeof e.updatedAt!="string"||Number.isNaN(Date.parse(e.updatedAt))||e.customerSupport!==void 0&&e.customerSupport!==null&&!o_(e.customerSupport))}function c_(e){const t=Ct();if(typeof window>"u")return;const n=e.key??ei,r={items:e.conversation.items,discussionId:e.conversation.discussionId,updatedAt:new Date().toISOString(),customerSupport:e.customerSupport??null};try{const i=JSON.stringify(r);window.localStorage.setItem(n,i)}catch(i){t.error("Failed to save chat state to localStorage",i)}}function nd(e){const t=Ct();if(typeof window>"u")return null;const n=e?.key??ei,r=window.localStorage.getItem(n);if(!r)return null;try{const i=JSON.parse(r);return l_(i)?i:(t.warn("Chat state in localStorage has unexpected shape, ignoring."),null)}catch(i){return t.error("Failed to parse chat state from localStorage",i),null}}function d_(e){if(typeof window>"u")return null;const t=ei;window.localStorage.removeItem(t)}const rd=(e,t)=>{if(t===null)return"discussion_not_loaded";if(t!==e.discussionId)return"discussion_mismatch";if(e.status==="closed")return"session_closed";if(!e.reconnectToken)return"missing_reconnect_token";if(e.mode==="closed_hours_contact_capture")return null;if(!e.socketUrl)return"missing_socket_url";if(e.reconnectTokenExpiresAt){const n=Date.parse(e.reconnectTokenExpiresAt);if(Number.isNaN(n))return"invalid_reconnect_expiration";if(n<=Date.now())return"expired_reconnect_token"}return null},f_=()=>{const e=nd(),t=e?.customerSupport??null;if(!t)return{mode:_t.ai,customerSupportState:null,reason:"no_customer_support_state"};const n=rd(t,e?.discussionId??null);return n==="session_closed"?{mode:_t.customerSupport,customerSupportState:t,reason:n}:n?{mode:_t.ai,customerSupportState:null,reason:n}:{mode:_t.customerSupport,customerSupportState:t,reason:"valid_reconnect_state"}},id=e=>e.mode!==_t.customerSupport?!1:e.customerSupportState.status!=="closed",Za=e=>e.mode!==_t.customerSupport?!1:e.customerSupportState.status==="closed",es=e=>e.mode!==_t.customerSupport||e.customerSupportState.status==="closed"?!1:e.customerSupportState.mode==="closed_hours_contact_capture",h_=e=>es(e)?"customer_support":id(e)?"customer_support_connecting":Za(e)?"customer_support":"ai",p_=e=>es(e)?"idle":id(e)?"connecting":Za(e)?"closed":"idle",m_=e=>es(e)?"visible":"idle",g_=e=>e?.trim()||void 0,b_=e=>e.mode!==_t.customerSupport||e.customerSupportState.status==="closed"||e.customerSupportState.mode==="closed_hours_contact_capture"?null:e.customerSupportState,ad=e=>!!(e&&e.mode!=="closed_hours_contact_capture"),ts=e=>e?.mode==="closed_hours_contact_capture",E_=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&ad(e.state))return e.state.fallbackContactCapture},T_=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&ts(e.state))return e.state.closedHoursContactCapture},y_=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&ts(e.state))return e.state.businessHours},x_=e=>e.isCustomerSupportMode?e.chatTransportMode==="customer_support_connecting"?"customer_support_connecting":e.isCurrentDiscussion?ts(e.state)?"customer_support_closed_hours_form":e.socketStatus!=="connected"?`socket_${e.socketStatus}`:e.isWaitingForFirstProviderReply?"waiting_first_provider_reply":e.isCustomerSupportClosed?"customer_support_closed":null:e.currentDiscussionId===null?"discussion_not_loaded":"discussion_mismatch":null;function __({appToken:e,currentConversation:t,loadingStatus:n,labels:r,logger:i,setCurrentConversationId:a,setLoadingStatus:s,addMessageToCurrentConversation:o,chatboxBootState:u,resetConversationRequestId:c}){const d=Kr(),f=u,[p,h]=C.useState(()=>h_(f)),[b,y]=C.useState(f.customerSupportState),[w,S]=C.useState(()=>p_(f)),[v,k]=C.useState(null),[L,A]=C.useState("idle"),[N,Y]=C.useState(()=>m_(f)),V=C.useRef(null),ne=C.useRef(c),I=C.useRef(!1),U=C.useRef(null),z=C.useRef(b_(f)),B=C.useRef(Za(f)),$=C.useRef(!1),X=C.useRef(0),he=C.useRef(null),pe=p!=="ai",we=b?.discussionId===t.discussionId,Oe=pe&&b?.status==="closed",m=t_({isCustomerSupportMode:pe,isClosed:Oe,hasTransportFailed:w==="failed",failureKind:v,labels:r}),G=!!(pe&&we&&b?.mode!=="closed_hours_contact_capture"&&b?.isWaitingForFirstProviderReply),re={isCustomerSupportMode:pe,isCurrentDiscussion:we,state:b},E=E_(re),te=T_(re),se=y_(re),W=!!E?.enabled&&["visible","submitting","submitted","failed"].includes(L),oe=!!te?.enabled&&["visible","submitting","submitted","failed"].includes(N),ae=x_({chatTransportMode:p,currentDiscussionId:t.discussionId,isCustomerSupportClosed:Oe,isCustomerSupportMode:pe,isCurrentDiscussion:we,isWaitingForFirstProviderReply:G,socketStatus:w,state:b}),de=ae!==null;C.useEffect(()=>{if(n!=="notLoading"||t.items.length===0)return;const H=we?b:null;!t.discussionId&&!H||c_({conversation:t,customerSupport:H})},[n,t,b,we]),C.useEffect(()=>($.current=!1,()=>{$.current=!0,he.current!==null&&(window.clearTimeout(he.current),he.current=null),V.current?.close("Widget unmounted"),V.current=null}),[]);const ie=(H,Q,O)=>{o({userType:"assistant",content:H,metaData:{messageKind:"system",systemEvent:Q,...O},temporaryId:crypto.randomUUID()})},Ne=(H,Q)=>{o({userType:"assistant",content:H,metaData:{messageKind:"conversation",authorType:"customer_support_operator",...Q},temporaryId:crypto.randomUUID()})},q=(H,Q)=>{V.current?.close(H,Q),V.current=null},Me=()=>{he.current!==null&&(window.clearTimeout(he.current),he.current=null),X.current=0,U.current=null,z.current=null,B.current=!1,k(null),y(null),S("idle"),h("ai")},Pe=(H,Q)=>{q(H,Q),Me()};C.useEffect(()=>{ne.current!==c&&(ne.current=c,I.current=!0,Pe("Starting new conversation",{notifyServer:!0}))},[c]),C.useEffect(()=>{t.discussionId===null&&I.current&&b===null&&p==="ai"&&(I.current=!1)},[p,t.discussionId,b]);const Le=H=>{B.current||(B.current=!0,U.current=null,V.current=null,H?.discussionId&&a(H.discussionId),s("notLoading"),k(null),S("closed"),h("customer_support"),y(Q=>{if(!Q)return Q;const O=new Date().toISOString();return{...Q,status:"closed",discussionId:H?.discussionId??Q.discussionId,updatedAt:O,closedAt:H?.closedAt??O,closedReason:H?.reason,isWaitingForFirstProviderReply:!1}}))},it=(H,Q)=>{V.current&&q("Replacing customer support socket"),S("connecting");let O=!1,M=!1;const K=J=>{k(J),S("failed"),s("notLoading")},ue=J=>{V.current=null;const _e=r_(X.current);if(!_e.shouldRetry){i.error("Customer support socket reconnect exhausted code="+J.code+" reason="+(J.reason||"none")),K("connection_error");return}X.current+=1,S("connecting"),h("customer_support_connecting"),i.log("Customer support socket reconnect scheduled attempt="+X.current+" delayMs="+_e.delayMs+" code="+J.code),he.current=window.setTimeout(()=>{he.current=null,!($.current||B.current)&&it(H,{...Q,addConnectedMessage:O?!1:Q?.addConnectedMessage})},_e.delayMs)};V.current=new Jx({apiUrl:d,appToken:e,handoff:H,callbacks:{onConnected:J=>{const _e=H.reconnectToken??H.handoffToken;if(!_e){Le({reason:"Missing reconnect token"});return}O=!0,X.current=0,Q?.isStoredReconnect&&(z.current=null);const at=new Date().toISOString();a(J.discussionId),k(null),S("connected"),h("customer_support"),s("notLoading"),y(je=>{const tt=ad(je)?je:null;return{mode:"live_chat",status:"active",discussionId:J.discussionId,socketUrl:H.socketUrl,reconnectToken:_e,reconnectTokenExpiresAt:J.reconnectTokenExpiresAt??H.reconnectTokenExpiresAt,customerSupportSessionId:J.customerSupportSessionId??H.customerSupportSessionId,provider:tt?.provider,isWaitingForFirstProviderReply:tt?.isWaitingForFirstProviderReply??!0,fallbackContactCapture:tt?.fallbackContactCapture,startedAt:tt?.startedAt??at,updatedAt:at}}),Q?.addConnectedMessage!==!1&&ie(r.connected,"customer_support_connected")},onProviderMessage:J=>{k(null),S("connected"),A(_e=>_e==="submitted"?_e:"idle"),y(_e=>!_e||_e.mode==="closed_hours_contact_capture"?_e:{..._e,status:"active",provider:J.provider??_e.provider,reconnectTokenExpiresAt:J.reconnectTokenExpiresAt??_e.reconnectTokenExpiresAt,isWaitingForFirstProviderReply:!1,updatedAt:new Date().toISOString()}),Ne(J.text,{customerSupportAuthorName:g_(J.authorName),customerSupportProvider:J.provider})},onClosed:J=>{M=!0,Le({reason:J.reason,closedAt:J.closedAt,discussionId:J.discussionId})},onError:J=>{M=!0,i.error("Customer support socket server error code="+J.code+" message="+J.message),K(e_(J.code))},onClose:J=>{$.current||B.current||M||ue(J)},onTransportError:J=>{i.error(`Customer support socket transport error readyState=${J.readyState} url=${J.url}`)}}})};C.useEffect(()=>{const H=z.current;if(!H)return;const Q=rd(H,t.discussionId);if(Q!=="discussion_not_loaded"){if(Q==="session_closed"){z.current=null,S("closed"),h("customer_support");return}if(Q){z.current=null,y(O=>O?.discussionId===t.discussionId?O:null),S("idle"),h("ai");return}V.current||(S("connecting"),h("customer_support_connecting"),it({mode:"live_chat",transport:"socket",socketUrl:H.socketUrl,reconnectToken:H.reconnectToken,reconnectTokenExpiresAt:H.reconnectTokenExpiresAt,customerSupportSessionId:H.customerSupportSessionId,discussionId:H.discussionId,fallbackContactCapture:H.fallbackContactCapture},{addConnectedMessage:!1,isStoredReconnect:!0}))}},[t.discussionId]);const Lt=H=>{if(H.mode==="closed_hours_contact_capture"){ge(H);return}const Q=H.reconnectToken??H.handoffToken;if(!H.discussionId||!Q){ie(r.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const O=new Date().toISOString();U.current=H,B.current=!1,A("idle"),y({mode:"live_chat",status:"connecting",discussionId:H.discussionId,socketUrl:H.socketUrl,reconnectToken:Q,reconnectTokenExpiresAt:H.reconnectTokenExpiresAt,customerSupportSessionId:H.customerSupportSessionId,isWaitingForFirstProviderReply:!0,fallbackContactCapture:H.fallbackContactCapture,startedAt:O,updatedAt:O}),S("connecting"),h("customer_support_connecting"),ie(r.connecting,"customer_support_connecting")},ze=()=>{const H=U.current;!H||H.mode!=="live_chat"||(U.current=null,it(H))},Dt=H=>p!=="customer_support"||w!=="connected"||!we||!V.current?(ie(r.connectionError,"customer_support_connection_error",{isErrorMessage:!0}),!1):(V.current.sendCustomerMessage(H),!0);C.useEffect(()=>{if(!E?.enabled||!G||!we||w!=="connected"||L!=="idle")return;const H=Math.max(1,E.timeoutMinutes)*60*1e3,Q=window.setTimeout(()=>{A("visible")},H);return()=>window.clearTimeout(Q)},[E,L,we,G,w]);const vt=async({email:H,phone:Q})=>{if(!b?.customerSupportSessionId||!b.reconnectToken)return!1;A("submitting");const O=`${d}/customer-support/sessions/${b.customerSupportSessionId}/fallback-contact`;return(await fetch(O,tn.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:b.reconnectToken,reasonType:"fallback_no_reply",email:H,phone:Q}}))).ok?(A("submitted"),q("Fallback contact submitted"),Le({reason:"fallback_contact_submitted",discussionId:b.discussionId}),!0):(A("failed"),!1)},ge=H=>{if(!H.discussionId){ie(r.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const Q=new Date().toISOString();U.current=null,B.current=!1,q("Closed-hours contact capture"),y({mode:"closed_hours_contact_capture",status:"active",discussionId:H.discussionId,reconnectToken:H.reconnectToken,reconnectTokenExpiresAt:H.reconnectTokenExpiresAt,customerSupportSessionId:H.customerSupportSessionId,closedHoursContactCapture:H.closedHoursContactCapture,businessHours:H.businessHours,startedAt:Q,updatedAt:Q}),S("idle"),h("customer_support"),s("notLoading"),Y("visible")},ve=async({email:H,phone:Q,reason:O})=>{if(b?.mode!=="closed_hours_contact_capture")return!1;Y("submitting");const M=d+"/customer-support/sessions/"+b.customerSupportSessionId+"/fallback-contact";return(await fetch(M,tn.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:b.reconnectToken,reasonType:"closed_hours",email:H,phone:Q,reason:O}}))).ok?(Y("submitted"),Le({reason:"closed_hours_contact_submitted",discussionId:b.discussionId}),!0):(Y("failed"),!1)};return C.useEffect(()=>{if(pe&&b&&b.status!=="closed"&&t.discussionId!==b.discussionId&&t.discussionId===null){if(I.current)return;a(b.discussionId);return}},[t.discussionId,b,pe,w,a]),{chatTransportMode:p,socketStatus:w,isCustomerSupportMode:pe,isCustomerSupportClosed:Oe,customerSupportStatusMessage:m,isCustomerSupportInputDisabled:de,customerSupportInputDisabledReason:ae,enterCustomerSupportMode:Lt,flushPendingCustomerSupportHandoff:ze,sendToCustomerSupport:Dt,fallbackContactCaptureConfig:E,fallbackContactCaptureStatus:L,shouldDisplayFallbackContactCapture:W,submitFallbackContactCapture:vt,closedHoursContactCaptureConfig:te,closedHoursBusinessHours:se,closedHoursContactCaptureStatus:N,shouldDisplayClosedHoursContactCapture:oe,submitClosedHoursContactCapture:ve}}const sd=()=>{const e=sn(),t=e.formatMessage({defaultMessage:"Search",id:"chatbot.chatline.loading.function.search"}),n=e.formatMessage({defaultMessage:"Looking into the cavern",id:"chatbot.chatline.loading.function.extractProductName"}),r=e.formatMessage({defaultMessage:"Consulting the shadocks",id:"chatbot.chatline.loading.function.suggestProductName"}),i=e.formatMessage({defaultMessage:"Looking for ziboublis",id:"chatbot.chatline.loading.function.criteriaDefinition"}),a=e.formatMessage({defaultMessage:"Searching Stock",id:"chatbot.chatline.loading.function.searchStock"}),s=e.formatMessage({defaultMessage:"Step",id:"chatbot.chatline.loading.function.step"}),o=e.formatMessage({defaultMessage:"I'm looking for products",id:"chatbot.chatline.loading.function.genericSearchMessage"}),u=e.formatMessage({defaultMessage:"Searching ...",id:"chatbot.chatline.loading.stepName.search"}),c=e.formatMessage({defaultMessage:"Building Query ...",id:"chatbot.chatline.loading.stepName.building"}),d=e.formatMessage({defaultMessage:"Analyzing ...",id:"chatbot.chatline.loading.stepName.analyzing"}),f=e.formatMessage({defaultMessage:"Writing answer",id:"chatbot.chatline.loading.stepName.redacting"}),p=e.formatMessage({defaultMessage:"Cancel",id:"chatbot.chatline.loading.cancel"}),h=e.formatMessage({defaultMessage:"see recent messages",id:"chatbot.chatline.seeRecentMessages"}),b=w=>w?w.includes("ExtractProductNames")?n:w.includes("SuggestProductNames")?r:w==="Recherche ..."?u:w==="Construction ..."?c:w==="Analyse ..."?d:w==="RΓ©daction"?f:w.includes("CreateCriteriasFromProductNames")||w.includes("CreateCriteriasOrProductNamesFromDiscussion")?i:w.includes("SearchStock")?a:"":t,y=b();return{searchTranslation:t,extractProductNameTranslation:n,criteriaDefinitionTranslation:i,searchStockTranslation:a,stepTranslation:s,getCurrentStepTranslated:b,defaultStartingStep:y,lookingForProductTranslation:o,cancelTranslation:p,recentMessagesTranslation:h}},S_=({})=>{const{companySettings:e}=C.useContext(rn);return x.jsx("div",{className:`search
104
+ ${n??""}`,"data-testid":"send-button",onClick:e,disabled:t,type:"button","aria-label":"Send message",children:x.jsx("span",{className:"","data-state":"closed",children:x.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24","aria-hidden":"true",className:"text-white dark:text-black",children:[x.jsx("path",{d:"M3 20L21 12L3 4L7.5 12L3 20Z",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"}),x.jsx("path",{d:"M7.5 12H14.75",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})})})});var lt=(e=>(e.FRENCH="fr-FR",e.ENGLISH="en-US",e))(lt||{});const Ox={"generic.language.english":"English","generic.language.french":"French","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Discussion limit reached","chatbot.DiscussionLimitReached.explaination":"The discussion has reached its maximum number of messages. Please start a new one.","chatbot.DiscussionLimitReached.cta":"Restart","chatbot.error.api.409":"Oups ! The discussion if full. Please start a new one.","chatbot.error.api.429":"⏳ The chatbot is a little busy at the time. Please try again later.","chatbot.error.api.500":"Oops ! There has been an error. Please try again later.","chatbot.chatline.label.user":"You","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Customer support","chatbot.chatline.loading.function.genericSearchMessage":"Thinking ...","chatbot.chatline.loading.function.search":"Search","chatbot.chatline.loading.function.extractProductName":"Looking into the cavern","chatbot.chatline.loading.function.suggestProductName":"Consulting the shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Looking for ziboublis","chatbot.chatline.loading.function.searchStock":"Searching Stock","chatbot.chatline.loading.function.step":"Step","chatbot.chatline.loading.stepName.search":"Searching ...","chatbot.chatline.loading.stepName.building":"Building Query ...","chatbot.chatline.loading.stepName.analyzing":"Analyzing ...","chatbot.chatline.loading.stepName.redacting":"Writing answer","chatbot.chatline.loading.cancel":"Cancel","chatbot.chatline.seeRecentMessages":"see recent messages","chatbot.widget.menu.open":"Open chat menu","chatbot.widget.menu.startNewDiscussion":"Start a new discussion","chatbot.widget.close":"Close chat","recordingOverlay.recording":"Recording...","recordingOverlay.cancel":"Cancel","recordingOverlay.explaination":"Tap the mic to stop","chatbot.infobanner.title":"You have an archived discussion.","chatbot.infobanner.cta":"See","chatbot.customerSupport.connecting":"Transferring your request to customer support...","chatbot.customerSupport.connected":"Your request has been sent to Customer Support. It usually takes a few minutes to get a reply. Thank you for waiting.","chatbot.customerSupport.connectionError":"Customer support is not available right now. Please try again later.","chatbot.customerSupport.providerUnavailable":"Customer support received your request, but live replies are temporarily unavailable. Please try again shortly.","chatbot.customerSupport.closed":"Your customer support conversation is now complete. Start a new conversation if you need more help!","chatbot.customerSupport.restart":"Restart","chatbot.customerSupport.fallback.title":"Leave your contact details","chatbot.customerSupport.fallback.description":"Customer support has not replied yet. Leave your email and phone number and we will contact you soon.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"Phone","chatbot.customerSupport.fallback.submit":"Send","chatbot.customerSupport.fallback.submitting":"Sending...","chatbot.customerSupport.fallback.success":"Your contact details have been saved. Customer support will contact you soon.","chatbot.customerSupport.closedHours.title":"Customer support is currently closed","chatbot.customerSupport.closedHours.description":"Leave your email, phone number and request. Customer support will contact you during opening hours.","chatbot.customerSupport.closedHours.schedulePrefix":"Today:","chatbot.customerSupport.closedHours.reason":"Reason for your request","chatbot.customerSupport.closedHours.success":"Your request has been saved. Customer support will contact you during opening hours.","chatbot.customerSupport.fallback.error":"We could not save your contact details. Please try again."},Lx={"generic.language.english":"Anglais","generic.language.french":"FranΓ§ais","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Maximum de messages envoyΓ©s atteint.","chatbot.DiscussionLimitReached.explaination":"Le robot est Γ  son maximum et ne peut plus envoyer de message. Merci de relancer une conversation.","chatbot.DiscussionLimitReached.cta":"Relancer une nouvelle conversation","chatbot.error.api.409":"Oups ! La discussion est Γ  son maximum. Merci d'en commencer une nouvelle.","chatbot.error.api.429":"⏳ Le robot est un peu occupΓ© actuellement. Merci de rΓ©essayer plus tard.","chatbot.error.api.500":"Oups ! Une erreur est survenue. Merci de rΓ©essayer plus tard !","chatbot.chatline.label.user":"Vous","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Support client","chatbot.chatline.loading.function.search":"Recherche","chatbot.chatline.loading.function.genericSearchMessage":"Je rΓ©flΓ©chis ...","chatbot.chatline.loading.function.extractProductName":"Recherche dans la caverne","chatbot.chatline.loading.function.suggestProductName":"Consultation des shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Recherche des ziboublis","chatbot.chatline.loading.function.searchStock":"Recherche en stock","chatbot.chatline.loading.function.step":"Etape","chatbot.chatline.loading.stepName.search":"Recherche ...","chatbot.chatline.loading.stepName.building":"Construction ...","chatbot.chatline.loading.stepName.analyzing":"Analyse ...","chatbot.chatline.loading.stepName.redacting":"RΓ©daction","chatbot.chatline.loading.cancel":"Annuler","chatbot.chatline.seeRecentMessages":"voir les messages plus rΓ©cents","chatbot.widget.menu.open":"Ouvrir le menu de discussion","chatbot.widget.menu.startNewDiscussion":"DΓ©marrer une nouvelle discussion","chatbot.widget.close":"Fermer la discussion","recordingOverlay.recording":"Micro activΓ©...","recordingOverlay.cancel":"Annuler","recordingOverlay.explaination":"Appuyez sur le micro pour arrΓͺter","chatbot.infobanner.title":"Vous avez une conversation archivΓ©e.","chatbot.infobanner.cta":"Voir","chatbot.customerSupport.connecting":"Transfert de votre demande au support client...","chatbot.customerSupport.connected":"Votre demande a Γ©tΓ© transmise au support client. Il faut gΓ©nΓ©ralement quelques minutes pour obtenir une rΓ©ponse. Merci de patienter.","chatbot.customerSupport.connectionError":"Le support client n'est pas disponible pour le moment. Merci de rΓ©essayer plus tard.","chatbot.customerSupport.providerUnavailable":"Le support client a reΓ§u votre demande, mais les rΓ©ponses en direct sont temporairement indisponibles. Merci de rΓ©essayer dans quelques instants.","chatbot.customerSupport.closed":"Votre Γ©change avec le support client est terminΓ©. Relancez une nouvelle conversation quand vous le souhaitez !","chatbot.customerSupport.restart":"Relancer","chatbot.customerSupport.fallback.title":"Laissez vos coordonnΓ©es","chatbot.customerSupport.fallback.description":"Le support client n'a pas encore rΓ©pondu. Laissez votre email et votre tΓ©lΓ©phone, nous vous recontacterons prochainement.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"TΓ©lΓ©phone","chatbot.customerSupport.fallback.submit":"Envoyer","chatbot.customerSupport.fallback.submitting":"Envoi...","chatbot.customerSupport.fallback.success":"Vos coordonnΓ©es ont bien Γ©tΓ© notΓ©es. Le support client vous recontactera prochainement.","chatbot.customerSupport.closedHours.title":"Le support client est actuellement fermΓ©","chatbot.customerSupport.closedHours.description":"Laissez votre email, votre tΓ©lΓ©phone et le motif de votre demande. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.closedHours.schedulePrefix":"Aujourd’hui :","chatbot.customerSupport.closedHours.reason":"Motif de votre demande","chatbot.customerSupport.closedHours.success":"Votre demande a bien Γ©tΓ© enregistrΓ©e. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.fallback.error":"Impossible d'enregistrer vos coordonnΓ©es. Merci de rΓ©essayer."},Zr={[lt.ENGLISH]:{translatedText:Ox,pictureName:lt.ENGLISH,langID:0,locale:lt.ENGLISH},[lt.FRENCH]:{translatedText:Lx,pictureName:lt.FRENCH,langID:1,locale:lt.FRENCH}},Dx=Object.keys(Zr);Dx.reduce((e,t)=>{const n=Zr[t];return[...e,n]},[]);const Px="languageSettings",td=C.createContext({appCurrentLang:Zr[lt.ENGLISH],setAppCurrentLang:()=>{}}),Mx=e=>e.filter(t=>t.userType==="user").length;var Ea=(e=>(e.GET_DISCUSSION_ID="/id",e.RESET_DISCUSSION="/delete",e))(Ea||{});const Bx=e=>!!e.startsWith("/"),Fx=(e,t,n)=>e===Ea.GET_DISCUSSION_ID?t?`Votre ID de discussion est ${t}`:"Votre ID de discussion n'est pas encore dΓ©fini. Envoyez un premier message pour que ce soit le cas.":e===Ea.RESET_DISCUSSION?(n(),null):`La commande ${e} n'est pas prise en compte.`;class Nt{static pending="";constructor(){}static transformNDJSONChunkIntoObjects(t){const n=Ct();this.pending+=t;const r=this.pending.split(/\r?\n/);this.pending=r.pop()??"";const i=[];for(const a of r){const s=a.trim();if(s)try{i.push(JSON.parse(s))}catch{n.warn("[NDJSON] Could not parse line:",s)}}return i}static flushPending(){const t=this.pending.trim();if(this.pending="",!t)return[];try{return[JSON.parse(t)]}catch{return[]}}static isObjectOutputstreamMessageDeltaDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_DELTA;static isObjectOutputstreamMessageStartDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_START;static isObjectOutputstreamMessageEndDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_END;static isObjectOutputstreamErrorDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_ERROR;static isObjectOutputstreamClientEventDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_CLIENT_EVENT;static isObjectOutputstreamLoadingNumberOfStepsDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE;static isObjectOutputstreamLoadingCurrentStepNumberDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE;static isObjectOutputstreamLoadingCurrentStepNameDTO=t=>t.type===Z.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE;static containsObjectWithLastAnswerToTrue=t=>{for(const n of t)if(this.isObjectOutputstreamMessageEndDTO(n)&&n.isLastAnswer)return!0;return!1}}const Hx=e=>{if(!Z.isUnknownRecord(e))return;const t=Z.readOptionalNumber(e.timeoutMinutes)??Z.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES;return{enabled:e.enabled===!0,timeoutMinutes:Math.max(1,Math.min(120,Math.round(t))),requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1}},Ux=e=>{if(Z.isUnknownRecord(e))return{enabled:e.enabled!==!1,requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1,requireReason:e.requireReason!==!1}},jx=e=>{if(!Z.isUnknownRecord(e))return null;const t=e;if(t.type!=="interactive_widget_request"||t.event!=="interactiveWidget.requested"||t.widgetType!==Z.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport||!Z.isUnknownRecord(t.payload))return null;const n=t.payload;if((Z.readOptionalString(n.mode)??"live_chat")==="closed_hours_contact_capture"){const s=Z.readOptionalString(n.reconnectToken),o=Z.readOptionalNumber(n.customerSupportSessionId),u=Ux(n.closedHoursContactCapture);if(n.transport!=="none"||!s||!o||!u||!u.enabled)return null;const c=Z.isUnknownRecord(n.businessHours)?n.businessHours:{};return{mode:"closed_hours_contact_capture",transport:"none",reconnectToken:s,reconnectTokenExpiresAt:Z.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:o,companyId:Z.readOptionalNumber(t.companyId),agentId:Z.readOptionalNullableNumber(t.agentId),discussionId:Z.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Z.readOptionalNullableString(t.toolcallId),closedHoursContactCapture:u,businessHours:{timezone:Z.readOptionalString(c.timezone)??Z.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE,todayScheduleLabel:Z.readOptionalString(c.todayScheduleLabel)}}}if(n.transport!=="socket"||typeof n.socketUrl!="string")return null;const i=Z.readOptionalString(n.handoffToken),a=Z.readOptionalString(n.reconnectToken);return!i&&!a?null:{mode:"live_chat",transport:"socket",socketUrl:n.socketUrl,handoffToken:i,reconnectToken:a,reconnectTokenExpiresAt:Z.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:Z.readOptionalNumber(n.customerSupportSessionId),companyId:Z.readOptionalNumber(t.companyId),agentId:Z.readOptionalNullableNumber(t.agentId),discussionId:Z.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Z.readOptionalNullableString(t.toolcallId),fallbackContactCapture:Hx(n.fallbackContactCapture)}},zx=e=>jx(e),$x=/^[a-zA-Z0-9][a-zA-Z0-9:._-]*$/,Yx=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Gx=e=>{if(!Z.isUnknownRecord(e)||e.protocolVersion!==Z.IDENTITY_GATE_PROTOCOL_V1&&e.protocolVersion!==Z.IDENTITY_GATE_PROTOCOL_V2||typeof e.gateId!="string"||e.gateId.length<1||e.gateId.length>100||typeof e.toolCallId!="string"||e.toolCallId.length<1||e.toolCallId.length>255||typeof e.resultToken!="string"||e.resultToken.length<32||e.resultToken.length>512||typeof e.expiresAt!="string"||!Number.isFinite(Date.parse(e.expiresAt))||e.reason!=="identity_required"&&e.reason!=="identity_expired"||!Array.isArray(e.requiredCapabilities)||e.requiredCapabilities.length<1||e.requiredCapabilities.length>50||!e.requiredCapabilities.every(n=>typeof n=="string"&&n.length<=100&&$x.test(n)))return null;const t={gateId:e.gateId,toolCallId:e.toolCallId,requiredCapabilities:[...new Set(e.requiredCapabilities)].sort(),reason:e.reason,expiresAt:e.expiresAt,resultToken:e.resultToken};return e.protocolVersion===Z.IDENTITY_GATE_PROTOCOL_V1?{protocolVersion:Z.IDENTITY_GATE_PROTOCOL_V1,...t}:!Z.isUnknownRecord(e.continuation)||typeof e.continuation.continuationId!="string"||!Yx.test(e.continuation.continuationId)||typeof e.continuation.expiresAt!="string"||!Number.isFinite(Date.parse(e.continuation.expiresAt))?null:{protocolVersion:Z.IDENTITY_GATE_PROTOCOL_V2,...t,continuation:{continuationId:e.continuation.continuationId,expiresAt:e.continuation.expiresAt}}},qx=e=>{if(e.event===Z.IDENTITY_GATE_REQUIRED_EVENT){const n=Gx(e.payload);if(n)return{type:"identity_gate_required",payload:n}}const t=zx(e.payload);return t?{type:"customer_support_handoff_requested",payload:t}:{type:"unhandled_client_event",event:e}},Vx=1e4,Wx=3e3,Xx=e=>{const t=new URL(e);return t.protocol=t.protocol==="https:"?"wss:":"ws:",t},Qx=({apiUrl:e,handoff:t})=>(t.socketUrl.startsWith("ws://")||t.socketUrl.startsWith("wss://")?new URL(t.socketUrl):new URL(t.socketUrl,Xx(e))).toString(),Kx=e=>{if(typeof e!="object"||e===null)return!1;const t=e;return["connected","customer_message_ack","provider_message","closed","error"].includes(t.type)};class Jx{socket;callbacks;url;appToken;handoffToken;isIntentionalClose=!1;handshakeTimeout;closeAcknowledgementTimeout=null;constructor(t){this.callbacks=t.callbacks,this.url=Qx(t),this.appToken=t.appToken;const n=t.handoff.reconnectToken??t.handoff.handoffToken;if(!n)throw new Error("Customer support socket requires a reconnect token");this.handoffToken=n,this.socket=new WebSocket(this.url),this.handshakeTimeout=setTimeout(()=>{this.socket.readyState!==WebSocket.CONNECTING&&this.socket.readyState!==WebSocket.OPEN||(this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()}),this.socket.close())},Vx),this.socket.addEventListener("open",this.sendAuthMessage),this.socket.addEventListener("message",this.handleMessage),this.socket.addEventListener("close",this.handleClose),this.socket.addEventListener("error",this.handleTransportError)}sendAuthMessage=()=>{this.socket.send(JSON.stringify({type:"auth",appToken:this.appToken,handoffToken:this.handoffToken}))};sendCustomerMessage(t){if(this.socket.readyState!==WebSocket.OPEN){this.callbacks.onError?.({type:"error",message:"Customer support connection is not ready.",code:"CUSTOMER_SUPPORT_SOCKET_NOT_READY"});return}const n={type:"customer_message",text:t,clientMessageId:crypto.randomUUID()};this.socket.send(JSON.stringify(n))}close(t,n){if(this.isIntentionalClose=!0,clearTimeout(this.handshakeTimeout),this.socket.readyState===WebSocket.OPEN&&n?.notifyServer){const r={type:"close",reason:t};this.socket.send(JSON.stringify(r)),this.closeAcknowledgementTimeout=setTimeout(()=>{this.closeTransport(t)},Wx);return}this.closeTransport(t)}handleMessage=t=>{clearTimeout(this.handshakeTimeout);let n;try{n=JSON.parse(t.data)}catch{this.callbacks.onError?.({type:"error",message:"Customer support sent an invalid message.",code:"CUSTOMER_SUPPORT_SOCKET_INVALID_MESSAGE"});return}if(Kx(n)){if(n.type==="connected"){this.callbacks.onConnected?.(n);return}if(n.type==="provider_message"){this.callbacks.onProviderMessage?.(n);return}if(n.type==="closed"){if(this.closeAcknowledgementTimeout!==null){clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null,this.closeTransport("Customer support session closed");return}this.callbacks.onClosed?.(n);return}n.type==="error"&&this.callbacks.onError?.(n)}};handleClose=t=>{clearTimeout(this.handshakeTimeout),this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),!this.isIntentionalClose&&this.callbacks.onClose?.(t)};handleTransportError=()=>{this.isIntentionalClose||this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()})};closeTransport(t){this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),this.socket.close(1e3,t??"Customer support socket detached")}safeUrlForLogs(){const t=new URL(this.url);return t.searchParams.has("handoffToken")&&t.searchParams.set("handoffToken","<redacted>"),t.toString()}}const Zx=new Set(["SLACK_INBOUND_EVENT_NOT_OBSERVED"]),e_=e=>e&&Zx.has(e)?"provider_unavailable":"connection_error",t_=e=>e.isClosed?e.labels.closed:!e.isCustomerSupportMode||!e.hasTransportFailed?null:e.failureKind==="provider_unavailable"?e.labels.providerUnavailable:e.labels.connectionError,n_=[500,1500,3e3],r_=e=>{const t=n_[e];return t===void 0?{shouldRetry:!1}:{shouldRetry:!0,delayMs:t}},_t={ai:"ai",customerSupport:"customer_support"},ei="chatsystem-widget",i_=1440*60*1e3;function mr(e){return typeof e=="string"&&!Number.isNaN(Date.parse(e))}function a_(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.timeoutMinutes!="number"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean")}function s_(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean"||typeof e.requireReason!="boolean")}function o_(e){if(typeof e!="object"||e===null||typeof e.discussionId!="number"||typeof e.reconnectToken!="string"||!mr(e.startedAt)||!mr(e.updatedAt)||e.reconnectTokenExpiresAt!==void 0&&!mr(e.reconnectTokenExpiresAt)||e.closedAt!==void 0&&!mr(e.closedAt)||e.closedReason!==void 0&&typeof e.closedReason!="string")return!1;const t=e.mode??"live_chat";return t==="closed_hours_contact_capture"?!(!["active","closed"].includes(e.status)||typeof e.customerSupportSessionId!="number"||!s_(e.closedHoursContactCapture)||typeof e.businessHours!="object"||e.businessHours===null||typeof e.businessHours.timezone!="string"||e.businessHours.todayScheduleLabel!==void 0&&typeof e.businessHours.todayScheduleLabel!="string"):!(t!=="live_chat"||!["connecting","active","closed"].includes(e.status)||typeof e.socketUrl!="string"||e.customerSupportSessionId!==void 0&&typeof e.customerSupportSessionId!="number"||e.isWaitingForFirstProviderReply!==void 0&&typeof e.isWaitingForFirstProviderReply!="boolean"||e.fallbackContactCapture!==void 0&&!a_(e.fallbackContactCapture))}function u_(e){return!(typeof e!="object"||e===null||e.userType!=="user"&&e.userType!=="assistant"||"content"in e&&e.content!==void 0&&typeof e.content!="string"||"metaData"in e&&e.metaData!==void 0&&(typeof e.metaData!="object"||e.metaData===null||"isErrorMessage"in e.metaData&&e.metaData.isErrorMessage!==void 0&&typeof e.metaData.isErrorMessage!="boolean"||"messageKind"in e.metaData&&e.metaData.messageKind!==void 0&&!["conversation","system"].includes(e.metaData.messageKind)||"systemEvent"in e.metaData&&e.metaData.systemEvent!==void 0&&!["customer_support_connecting","customer_support_connected","customer_support_closed","customer_support_connection_error"].includes(e.metaData.systemEvent)||"customerSupportAuthorName"in e.metaData&&e.metaData.customerSupportAuthorName!==void 0&&typeof e.metaData.customerSupportAuthorName!="string"))}function l_(e){return!(typeof e!="object"||e===null||!Array.isArray(e.items)||!e.items.every(u_)||e.discussionId!==null&&typeof e.discussionId!="number"||typeof e.updatedAt!="string"||Number.isNaN(Date.parse(e.updatedAt))||e.customerSupport!==void 0&&e.customerSupport!==null&&!o_(e.customerSupport))}function c_(e){const t=Ct();if(typeof window>"u")return;const n=e.key??ei,r={items:e.conversation.items,discussionId:e.conversation.discussionId,updatedAt:new Date().toISOString(),customerSupport:e.customerSupport??null};try{const i=JSON.stringify(r);window.localStorage.setItem(n,i)}catch(i){t.error("Failed to save chat state to localStorage",i)}}function nd(e){const t=Ct();if(typeof window>"u")return null;const n=e?.key??ei,r=window.localStorage.getItem(n);if(!r)return null;try{const i=JSON.parse(r);return l_(i)?i:(t.warn("Chat state in localStorage has unexpected shape, ignoring."),null)}catch(i){return t.error("Failed to parse chat state from localStorage",i),null}}function d_(e){if(typeof window>"u")return null;const t=ei;window.localStorage.removeItem(t)}const rd=(e,t)=>{if(t===null)return"discussion_not_loaded";if(t!==e.discussionId)return"discussion_mismatch";if(e.status==="closed")return"session_closed";if(!e.reconnectToken)return"missing_reconnect_token";if(e.mode==="closed_hours_contact_capture")return null;if(!e.socketUrl)return"missing_socket_url";if(e.reconnectTokenExpiresAt){const n=Date.parse(e.reconnectTokenExpiresAt);if(Number.isNaN(n))return"invalid_reconnect_expiration";if(n<=Date.now())return"expired_reconnect_token"}return null},f_=()=>{const e=nd(),t=e?.customerSupport??null;if(!t)return{mode:_t.ai,customerSupportState:null,reason:"no_customer_support_state"};const n=rd(t,e?.discussionId??null);return n==="session_closed"?{mode:_t.customerSupport,customerSupportState:t,reason:n}:n?{mode:_t.ai,customerSupportState:null,reason:n}:{mode:_t.customerSupport,customerSupportState:t,reason:"valid_reconnect_state"}},id=e=>e.mode!==_t.customerSupport?!1:e.customerSupportState.status!=="closed",Za=e=>e.mode!==_t.customerSupport?!1:e.customerSupportState.status==="closed",es=e=>e.mode!==_t.customerSupport||e.customerSupportState.status==="closed"?!1:e.customerSupportState.mode==="closed_hours_contact_capture",h_=e=>es(e)?"customer_support":id(e)?"customer_support_connecting":Za(e)?"customer_support":"ai",p_=e=>es(e)?"idle":id(e)?"connecting":Za(e)?"closed":"idle",m_=e=>es(e)?"visible":"idle",g_=e=>e?.trim()||void 0,b_=e=>e.mode!==_t.customerSupport||e.customerSupportState.status==="closed"||e.customerSupportState.mode==="closed_hours_contact_capture"?null:e.customerSupportState,ad=e=>!!(e&&e.mode!=="closed_hours_contact_capture"),ts=e=>e?.mode==="closed_hours_contact_capture",E_=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&ad(e.state))return e.state.fallbackContactCapture},T_=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&ts(e.state))return e.state.closedHoursContactCapture},y_=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&ts(e.state))return e.state.businessHours},x_=e=>e.isCustomerSupportMode?e.chatTransportMode==="customer_support_connecting"?"customer_support_connecting":e.isCurrentDiscussion?ts(e.state)?"customer_support_closed_hours_form":e.socketStatus!=="connected"?`socket_${e.socketStatus}`:e.isWaitingForFirstProviderReply?"waiting_first_provider_reply":e.isCustomerSupportClosed?"customer_support_closed":null:e.currentDiscussionId===null?"discussion_not_loaded":"discussion_mismatch":null;function __({appToken:e,currentConversation:t,loadingStatus:n,labels:r,logger:i,setCurrentConversationId:a,setLoadingStatus:s,addMessageToCurrentConversation:o,chatboxBootState:u,resetConversationRequestId:c}){const d=Kr(),f=u,[p,h]=C.useState(()=>h_(f)),[b,y]=C.useState(f.customerSupportState),[w,S]=C.useState(()=>p_(f)),[v,k]=C.useState(null),[L,A]=C.useState("idle"),[N,Y]=C.useState(()=>m_(f)),V=C.useRef(null),ne=C.useRef(c),I=C.useRef(!1),U=C.useRef(null),z=C.useRef(b_(f)),B=C.useRef(Za(f)),$=C.useRef(!1),X=C.useRef(0),he=C.useRef(null),pe=p!=="ai",we=b?.discussionId===t.discussionId,Oe=pe&&b?.status==="closed",m=t_({isCustomerSupportMode:pe,isClosed:Oe,hasTransportFailed:w==="failed",failureKind:v,labels:r}),G=!!(pe&&we&&b?.mode!=="closed_hours_contact_capture"&&b?.isWaitingForFirstProviderReply),re={isCustomerSupportMode:pe,isCurrentDiscussion:we,state:b},E=E_(re),te=T_(re),se=y_(re),W=!!E?.enabled&&["visible","submitting","submitted","failed"].includes(L),oe=!!te?.enabled&&["visible","submitting","submitted","failed"].includes(N),ae=x_({chatTransportMode:p,currentDiscussionId:t.discussionId,isCustomerSupportClosed:Oe,isCustomerSupportMode:pe,isCurrentDiscussion:we,isWaitingForFirstProviderReply:G,socketStatus:w,state:b}),de=ae!==null;C.useEffect(()=>{if(n!=="notLoading"||t.items.length===0)return;const H=we?b:null;!t.discussionId&&!H||c_({conversation:t,customerSupport:H})},[n,t,b,we]),C.useEffect(()=>($.current=!1,()=>{$.current=!0,he.current!==null&&(window.clearTimeout(he.current),he.current=null),V.current?.close("Widget unmounted"),V.current=null}),[]);const ie=(H,Q,O)=>{o({userType:"assistant",content:H,metaData:{messageKind:"system",systemEvent:Q,...O},temporaryId:crypto.randomUUID()})},Ne=(H,Q)=>{o({userType:"assistant",content:H,metaData:{messageKind:"conversation",authorType:"customer_support_operator",...Q},temporaryId:crypto.randomUUID()})},q=(H,Q)=>{V.current?.close(H,Q),V.current=null},Me=()=>{he.current!==null&&(window.clearTimeout(he.current),he.current=null),X.current=0,U.current=null,z.current=null,B.current=!1,k(null),y(null),S("idle"),h("ai")},Pe=(H,Q)=>{q(H,Q),Me()};C.useEffect(()=>{ne.current!==c&&(ne.current=c,I.current=!0,Pe("Starting new conversation",{notifyServer:!0}))},[c]),C.useEffect(()=>{t.discussionId===null&&I.current&&b===null&&p==="ai"&&(I.current=!1)},[p,t.discussionId,b]);const Le=H=>{B.current||(B.current=!0,U.current=null,V.current=null,H?.discussionId&&a(H.discussionId),s("notLoading"),k(null),S("closed"),h("customer_support"),y(Q=>{if(!Q)return Q;const O=new Date().toISOString();return{...Q,status:"closed",discussionId:H?.discussionId??Q.discussionId,updatedAt:O,closedAt:H?.closedAt??O,closedReason:H?.reason,isWaitingForFirstProviderReply:!1}}))},it=(H,Q)=>{V.current&&q("Replacing customer support socket"),S("connecting");let O=!1,M=!1;const K=J=>{k(J),S("failed"),s("notLoading")},ue=J=>{V.current=null;const _e=r_(X.current);if(!_e.shouldRetry){i.error("Customer support socket reconnect exhausted code="+J.code+" reason="+(J.reason||"none")),K("connection_error");return}X.current+=1,S("connecting"),h("customer_support_connecting"),i.log("Customer support socket reconnect scheduled attempt="+X.current+" delayMs="+_e.delayMs+" code="+J.code),he.current=window.setTimeout(()=>{he.current=null,!($.current||B.current)&&it(H,{...Q,addConnectedMessage:O?!1:Q?.addConnectedMessage})},_e.delayMs)};V.current=new Jx({apiUrl:d,appToken:e,handoff:H,callbacks:{onConnected:J=>{const _e=H.reconnectToken??H.handoffToken;if(!_e){Le({reason:"Missing reconnect token"});return}O=!0,X.current=0,Q?.isStoredReconnect&&(z.current=null);const at=new Date().toISOString();a(J.discussionId),k(null),S("connected"),h("customer_support"),s("notLoading"),y(je=>{const tt=ad(je)?je:null;return{mode:"live_chat",status:"active",discussionId:J.discussionId,socketUrl:H.socketUrl,reconnectToken:_e,reconnectTokenExpiresAt:J.reconnectTokenExpiresAt??H.reconnectTokenExpiresAt,customerSupportSessionId:J.customerSupportSessionId??H.customerSupportSessionId,provider:tt?.provider,isWaitingForFirstProviderReply:tt?.isWaitingForFirstProviderReply??!0,fallbackContactCapture:tt?.fallbackContactCapture,startedAt:tt?.startedAt??at,updatedAt:at}}),Q?.addConnectedMessage!==!1&&ie(r.connected,"customer_support_connected")},onProviderMessage:J=>{k(null),S("connected"),A(_e=>_e==="submitted"?_e:"idle"),y(_e=>!_e||_e.mode==="closed_hours_contact_capture"?_e:{..._e,status:"active",provider:J.provider??_e.provider,reconnectTokenExpiresAt:J.reconnectTokenExpiresAt??_e.reconnectTokenExpiresAt,isWaitingForFirstProviderReply:!1,updatedAt:new Date().toISOString()}),Ne(J.text,{customerSupportAuthorName:g_(J.authorName),customerSupportProvider:J.provider})},onClosed:J=>{M=!0,Le({reason:J.reason,closedAt:J.closedAt,discussionId:J.discussionId})},onError:J=>{M=!0,i.error("Customer support socket server error code="+J.code+" message="+J.message),K(e_(J.code))},onClose:J=>{$.current||B.current||M||ue(J)},onTransportError:J=>{i.error(`Customer support socket transport error readyState=${J.readyState} url=${J.url}`)}}})};C.useEffect(()=>{const H=z.current;if(!H)return;const Q=rd(H,t.discussionId);if(Q!=="discussion_not_loaded"){if(Q==="session_closed"){z.current=null,S("closed"),h("customer_support");return}if(Q){z.current=null,y(O=>O?.discussionId===t.discussionId?O:null),S("idle"),h("ai");return}V.current||(S("connecting"),h("customer_support_connecting"),it({mode:"live_chat",transport:"socket",socketUrl:H.socketUrl,reconnectToken:H.reconnectToken,reconnectTokenExpiresAt:H.reconnectTokenExpiresAt,customerSupportSessionId:H.customerSupportSessionId,discussionId:H.discussionId,fallbackContactCapture:H.fallbackContactCapture},{addConnectedMessage:!1,isStoredReconnect:!0}))}},[t.discussionId]);const Lt=H=>{if(H.mode==="closed_hours_contact_capture"){ge(H);return}const Q=H.reconnectToken??H.handoffToken;if(!H.discussionId||!Q){ie(r.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const O=new Date().toISOString();U.current=H,B.current=!1,A("idle"),y({mode:"live_chat",status:"connecting",discussionId:H.discussionId,socketUrl:H.socketUrl,reconnectToken:Q,reconnectTokenExpiresAt:H.reconnectTokenExpiresAt,customerSupportSessionId:H.customerSupportSessionId,isWaitingForFirstProviderReply:!0,fallbackContactCapture:H.fallbackContactCapture,startedAt:O,updatedAt:O}),S("connecting"),h("customer_support_connecting"),ie(r.connecting,"customer_support_connecting")},ze=()=>{const H=U.current;!H||H.mode!=="live_chat"||(U.current=null,it(H))},Dt=H=>p!=="customer_support"||w!=="connected"||!we||!V.current?(ie(r.connectionError,"customer_support_connection_error",{isErrorMessage:!0}),!1):(V.current.sendCustomerMessage(H),!0);C.useEffect(()=>{if(!E?.enabled||!G||!we||w!=="connected"||L!=="idle")return;const H=Math.max(1,E.timeoutMinutes)*60*1e3,Q=window.setTimeout(()=>{A("visible")},H);return()=>window.clearTimeout(Q)},[E,L,we,G,w]);const vt=async({email:H,phone:Q})=>{if(!b?.customerSupportSessionId||!b.reconnectToken)return!1;A("submitting");const O=`${d}/customer-support/sessions/${b.customerSupportSessionId}/fallback-contact`;return(await fetch(O,tn.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:b.reconnectToken,reasonType:"fallback_no_reply",email:H,phone:Q}}))).ok?(A("submitted"),q("Fallback contact submitted"),Le({reason:"fallback_contact_submitted",discussionId:b.discussionId}),!0):(A("failed"),!1)},ge=H=>{if(!H.discussionId){ie(r.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const Q=new Date().toISOString();U.current=null,B.current=!1,q("Closed-hours contact capture"),y({mode:"closed_hours_contact_capture",status:"active",discussionId:H.discussionId,reconnectToken:H.reconnectToken,reconnectTokenExpiresAt:H.reconnectTokenExpiresAt,customerSupportSessionId:H.customerSupportSessionId,closedHoursContactCapture:H.closedHoursContactCapture,businessHours:H.businessHours,startedAt:Q,updatedAt:Q}),S("idle"),h("customer_support"),s("notLoading"),Y("visible")},ve=async({email:H,phone:Q,reason:O})=>{if(b?.mode!=="closed_hours_contact_capture")return!1;Y("submitting");const M=d+"/customer-support/sessions/"+b.customerSupportSessionId+"/fallback-contact";return(await fetch(M,tn.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:b.reconnectToken,reasonType:"closed_hours",email:H,phone:Q,reason:O}}))).ok?(Y("submitted"),Le({reason:"closed_hours_contact_submitted",discussionId:b.discussionId}),!0):(Y("failed"),!1)};return C.useEffect(()=>{if(pe&&b&&b.status!=="closed"&&t.discussionId!==b.discussionId&&t.discussionId===null){if(I.current)return;a(b.discussionId);return}},[t.discussionId,b,pe,w,a]),{chatTransportMode:p,socketStatus:w,isCustomerSupportMode:pe,isCustomerSupportClosed:Oe,customerSupportStatusMessage:m,isCustomerSupportInputDisabled:de,customerSupportInputDisabledReason:ae,enterCustomerSupportMode:Lt,flushPendingCustomerSupportHandoff:ze,sendToCustomerSupport:Dt,fallbackContactCaptureConfig:E,fallbackContactCaptureStatus:L,shouldDisplayFallbackContactCapture:W,submitFallbackContactCapture:vt,closedHoursContactCaptureConfig:te,closedHoursBusinessHours:se,closedHoursContactCaptureStatus:N,shouldDisplayClosedHoursContactCapture:oe,submitClosedHoursContactCapture:ve}}const sd=()=>{const e=sn(),t=e.formatMessage({defaultMessage:"Search",id:"chatbot.chatline.loading.function.search"}),n=e.formatMessage({defaultMessage:"Looking into the cavern",id:"chatbot.chatline.loading.function.extractProductName"}),r=e.formatMessage({defaultMessage:"Consulting the shadocks",id:"chatbot.chatline.loading.function.suggestProductName"}),i=e.formatMessage({defaultMessage:"Looking for ziboublis",id:"chatbot.chatline.loading.function.criteriaDefinition"}),a=e.formatMessage({defaultMessage:"Searching Stock",id:"chatbot.chatline.loading.function.searchStock"}),s=e.formatMessage({defaultMessage:"Step",id:"chatbot.chatline.loading.function.step"}),o=e.formatMessage({defaultMessage:"I'm looking for products",id:"chatbot.chatline.loading.function.genericSearchMessage"}),u=e.formatMessage({defaultMessage:"Searching ...",id:"chatbot.chatline.loading.stepName.search"}),c=e.formatMessage({defaultMessage:"Building Query ...",id:"chatbot.chatline.loading.stepName.building"}),d=e.formatMessage({defaultMessage:"Analyzing ...",id:"chatbot.chatline.loading.stepName.analyzing"}),f=e.formatMessage({defaultMessage:"Writing answer",id:"chatbot.chatline.loading.stepName.redacting"}),p=e.formatMessage({defaultMessage:"Cancel",id:"chatbot.chatline.loading.cancel"}),h=e.formatMessage({defaultMessage:"see recent messages",id:"chatbot.chatline.seeRecentMessages"}),b=w=>w?w.includes("ExtractProductNames")?n:w.includes("SuggestProductNames")?r:w==="Recherche ..."?u:w==="Construction ..."?c:w==="Analyse ..."?d:w==="RΓ©daction"?f:w.includes("CreateCriteriasFromProductNames")||w.includes("CreateCriteriasOrProductNamesFromDiscussion")?i:w.includes("SearchStock")?a:"":t,y=b();return{searchTranslation:t,extractProductNameTranslation:n,criteriaDefinitionTranslation:i,searchStockTranslation:a,stepTranslation:s,getCurrentStepTranslated:b,defaultStartingStep:y,lookingForProductTranslation:o,cancelTranslation:p,recentMessagesTranslation:h}},S_=()=>{const{companySettings:e}=C.useContext(rn);return x.jsx("div",{className:`search
105
105
  transition
106
106
  ease-in-out
107
107
  delay-50
@@ -144,7 +144,7 @@ For more details see https://formatjs.io/docs/getting-started/message-distributi
144
144
  transition-colors
145
145
  enabled:hover:scale-[1.02] active:scale-[0.98]
146
146
  chatsystem-mic-button
147
- ${n??""}`,"data-testid":"mic-button",onClick:e,disabled:t,type:"button","aria-label":"Start voice input",children:x.jsx("span",{"data-state":"closed",children:x.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24","aria-hidden":"true",className:"text-white dark:text-black",children:[x.jsx("path",{d:"M12 14.5c1.66 0 3-1.34 3-3V6.5c0-1.66-1.34-3-3-3s-3 1.34-3 3v5c0 1.66 1.34 3 3 3Z",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"}),x.jsx("path",{d:"M12 14.5V18",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),x.jsx("path",{d:"M8.5 18h7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),x.jsx("path",{d:"M7 11.5c0 2.76 2.24 5 5 5s5-2.24 5-5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})})})});function B_(){const[e,t]=C.useState("idle"),[n,r]=C.useState(null),[i,a]=C.useState(0),s=C.useRef(null),o=C.useRef(null),u=C.useRef([]),c=C.useRef(null),d=C.useRef(null),f=C.useRef(null),p=C.useRef(null),h=C.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{f.current?.disconnect()}catch{}f.current=null;try{d.current?.disconnect()}catch{}d.current=null;const v=c.current;c.current=null,v&&v.close().catch(()=>{}),a(0)},[]),b=C.useCallback(v=>{try{const k=new AudioContext,L=k.createAnalyser(),A=k.createMediaStreamSource(v);L.fftSize=256,L.smoothingTimeConstant=.85,A.connect(L),c.current=k,d.current=L,f.current=A;const N=new Uint8Array(L.fftSize),Y=()=>{const V=d.current;if(!V)return;V.getByteTimeDomainData(N);let ne=0;for(let z=0;z<N.length;z++){const B=(N[z]-128)/128;ne+=B*B}const I=Math.sqrt(ne/N.length),U=Math.min(1,I*6);a(U),p.current=requestAnimationFrame(Y)};p.current=requestAnimationFrame(Y)}catch{a(0)}},[]),y=C.useCallback(async()=>{r(null),h();try{const v=await navigator.mediaDevices.getUserMedia({audio:!0});o.current=v,b(v);const L=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg"].find(N=>MediaRecorder.isTypeSupported(N))||"",A=new MediaRecorder(v,L?{mimeType:L}:void 0);s.current=A,u.current=[],A.ondataavailable=N=>{N.data&&N.data.size>0&&u.current.push(N.data)},A.onerror=()=>{t("error"),r("Recorder error.")},A.onstart=()=>t("recording"),A.onstop=()=>t("stopped"),A.start()}catch(v){h(),t("error"),r(v?.message??"Microphone permission denied.")}},[b,h]),w=C.useCallback(async()=>{const v=s.current,k=o.current;return!v||e!=="recording"?null:new Promise(L=>{v.onstop=()=>{h();const A=v.mimeType||"audio/webm",N=new Blob(u.current,{type:A}),Y=A.includes("ogg")?"ogg":"webm",V=new File([N],`voice-message.${Y}`,{type:A});k?.getTracks().forEach(ne=>ne.stop()),o.current=null,s.current=null,L({blob:N,file:V})},v.stop()})},[e,h]),S=C.useCallback(()=>{const v=s.current,k=o.current;try{v&&e==="recording"&&v.stop()}catch{}h(),k?.getTracks().forEach(L=>L.stop()),o.current=null,s.current=null,u.current=[],t("idle")},[e,h]);return C.useEffect(()=>()=>{h(),o.current?.getTracks().forEach(v=>v.stop())},[h]),{state:e,error:n,audioLevel:i,start:y,stop:w,cancel:S}}const F_=()=>{const e=sn(),t=e.formatMessage({defaultMessage:"Recording...",id:"recordingOverlay.recording"}),n=e.formatMessage({defaultMessage:"Cancel",id:"recordingOverlay.cancel"}),r=e.formatMessage({defaultMessage:"Tap the mic to stop",id:"recordingOverlay.explaination"});return{recordingTranslation:t,cancelTranslation:n,recordingExplainationTranslation:r}},H_=({isOpen:e,onStop:t,onCancel:n,audioLevel:r=0})=>{if(!e)return null;const{recordingTranslation:i}=F_(),a=C.useMemo(()=>{const s=Math.max(0,Math.min(1,r));return Array.from({length:20},(o,u)=>{const c=Math.sin(u/19*Math.PI*2)*.5+.5,d=u%2===0?.9:.65,f=6+s*(14+c*18)*d;return Math.round(f)})},[r]);return x.jsx("div",{className:"relative mt-3 w-full rounded-lg border border-slate-400 bg-white p-1",role:"group","aria-label":"Recording voice message",children:x.jsxs("div",{className:"flex min-h-[48px] items-center gap-3 px-2",children:[x.jsxs("div",{className:"relative flex h-8 w-8 items-center justify-center",children:[x.jsx("span",{className:"absolute h-5 w-5 rounded-full bg-red-100 motion-safe:animate-ping","aria-hidden":!0}),x.jsx("span",{className:"absolute h-5 w-5 rounded-full bg-red-50","aria-hidden":!0}),x.jsx("span",{className:"absolute h-3.5 w-3.5 rounded-full bg-red-200","aria-hidden":!0}),x.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-red-500","aria-hidden":!0})]}),x.jsxs("div",{className:"min-w-0 flex-1",children:[x.jsx("div",{className:"mb-0.5 text-[11px] font-medium leading-3 text-slate-600",children:i}),x.jsx("div",{className:"flex h-5 items-center gap-[3px] overflow-hidden","aria-hidden":"true",children:a.map((s,o)=>x.jsx("span",{className:"block w-1 rounded-full bg-slate-400 transition-[height,background-color] duration-75",style:{height:`${s}px`,backgroundColor:r>.08?"rgb(59 130 246)":"rgb(148 163 184)"}},o))})]}),x.jsx("button",{type:"button",onClick:n,className:"flex h-9 w-9 items-center justify-center rounded-full text-slate-500 hover:bg-slate-100 hover:text-slate-700","aria-label":"Cancel recording",children:x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"18",height:"18","aria-hidden":"true",children:x.jsx("path",{d:"M6 6l12 12M18 6L6 18",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}),x.jsx("button",{type:"button",onClick:t,className:"flex h-9 w-9 items-center justify-center rounded-full bg-violet-600 text-white hover:bg-violet-700","aria-label":"Validate recording",children:x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"18",height:"18","aria-hidden":"true",children:x.jsx("path",{d:"M5 13l4 4L19 7",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})})},U_=e=>/(\[.*|\!\[.*)$/.test(e),j_=e=>/\)/.test(e),nu=()=>({rendered:"",markdownTag:"",isWritingTag:!1,lastStreamSourceUuid:null});class z_{buffers=new Map;callbacks;constructor(t){this.callbacks=t}handleStart(t){this.buffers.set(t.messageId,nu()),t.role==="assistant"&&this.callbacks.onAssistantMessageStart?.(),this.callbacks.addEmptyMessage({messageStreamId:t.messageId,role:t.role})}handleDelta(t){this.ensureBufferExists(t.messageId);const n=this.buffers.get(t.messageId);this.appendSourceSeparatorIfNeeded(n,t.streamSourceUuid),this.appendDelta(n,t.delta),this.callbacks.updateMessage({id:t.messageId,newContent:n.rendered})}handleEnd(t){this.buffers.delete(t.messageId)}hasBuffer(t){return this.buffers.has(t)}ensureBufferExists(t){this.buffers.has(t)||(this.buffers.set(t,nu()),this.callbacks.addEmptyMessage({messageStreamId:t,role:"assistant"}))}appendSourceSeparatorIfNeeded(t,n){t.lastStreamSourceUuid&&t.lastStreamSourceUuid!==n&&(t.rendered+='<span style="display:block;height:1rem;"></span>'),t.lastStreamSourceUuid=n??null}appendDelta(t,n){if(j_(n)){t.markdownTag+=n,t.rendered+=t.markdownTag,t.markdownTag="",t.isWritingTag=!1;return}if(t.isWritingTag||U_(n)){t.markdownTag+=n,t.isWritingTag=!0;return}t.rendered+=n}}const $_=30,Y_=e=>{try{const t=e.split(".")[1];if(!t)return null;const n=t.replace(/-/g,"+").replace(/_/g,"/"),r=n.padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return typeof i.exp=="number"?i.exp:null}catch{return null}};class G_{token=null;expiresAt=null;pendingRequest=null;pendingRequestIsInteractive=!1;generation=0;provider;constructor(t){this.provider=t}clear(){this.generation+=1,this.token=null,this.expiresAt=null,this.pendingRequest=null,this.pendingRequestIsInteractive=!1}async getToken(t){if(!this.provider)return null;const n=Math.floor(Date.now()/1e3);if(this.token&&this.expiresAt!=null&&this.expiresAt-$_>n)return this.token;if(this.pendingRequest){const a=this.pendingRequestIsInteractive,s=await this.pendingRequest;if(s||!t.interactive||a)return s}const r=this.generation;this.pendingRequestIsInteractive=t.interactive;let i;return i=this.provider.getToken(t).then(a=>{if(r!==this.generation)return null;if(!a)return this.clear(),null;const s=Y_(a);return s==null||s<=Math.floor(Date.now()/1e3)?(this.clear(),null):(this.token=a,this.expiresAt=s,a)}).finally(()=>{this.pendingRequest===i&&(this.pendingRequest=null,this.pendingRequestIsInteractive=!1)}),this.pendingRequest=i,i}}const ud=C.createContext(void 0),q_=async({apiUrl:e,appToken:t,payload:n,identitySession:r,fetchImplementation:i=fetch})=>{let a=null,s;try{a=await r.getToken({interactive:!0,reason:n.reason,requiredCapabilities:n.requiredCapabilities}),a||(a=await r.getToken({interactive:!1,reason:n.reason,requiredCapabilities:n.requiredCapabilities})),s=a?{status:"success"}:{status:"cancelled"}}catch{r.clear(),s={status:"failed",code:"HOST_IDENTITY_FAILED"}}const o=await i(`${e}/ai/identity-gates/${encodeURIComponent(t)}/${encodeURIComponent(n.gateId)}/result`,{method:"POST",headers:{"Content-Type":"application/json","X-ChatSystem-Identity-Gate-Token":n.resultToken,...a?{Authorization:`Bearer ${a}`}:{}},body:JSON.stringify(s)});if(!o.ok)throw o.status===401&&a&&r.clear(),new Error(`IDENTITY_GATE_RESOLUTION_FAILED:${o.status}`)},V_="chatsystem:pending-turn:",W_=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,rs=e=>`${V_}${encodeURIComponent(e)}`,ld=(e,t=Date.now())=>{if(!e||typeof e!="object"||Array.isArray(e))return null;const n=e;if(typeof n.continuationId!="string"||!W_.test(n.continuationId)||typeof n.expiresAt!="string"||typeof n.discussionId!="number"||!Number.isSafeInteger(n.discussionId)||n.discussionId<=0)return null;const r=Date.parse(n.expiresAt);return!Number.isFinite(r)||r<=t?null:{continuationId:n.continuationId,expiresAt:n.expiresAt,discussionId:n.discussionId}},X_=(e,t,n,r=sessionStorage)=>{const i=ld({...t,discussionId:n});i&&r.setItem(rs(e),JSON.stringify(i))},Q_=(e,t=sessionStorage,n=Date.now())=>{const r=rs(e),i=t.getItem(r);if(!i)return null;try{const a=ld(JSON.parse(i),n);if(a)return a}catch{}return t.removeItem(r),null},ru=(e,t=sessionStorage)=>{t.removeItem(rs(e))},K_=async({apiUrl:e,appToken:t,discussionId:n,continuation:r,identitySession:i,fetchImplementation:a=fetch})=>{if(!Number.isSafeInteger(n)||n<=0)return null;const s=await i.getToken({interactive:!1});if(!s)return null;const o={discussionId:n};return a(`${e}/ai/pending-turns/${encodeURIComponent(t)}/${encodeURIComponent(r.continuationId)}/resume`,{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)})},J_=e=>e>=200&&e<300||e>=400&&e<500&&e!==429||e===503;let gr=new AbortController;const cd=({appToken:e,agentId:t,containerClassName:n})=>{const r=Sn(),i=Kr(),a=C.useContext(ud);e||r.error("App Token missing");const s=C.useRef(null),o=C.useRef(null),u=C.useRef(a),c=C.useRef(new Set),d=C.useRef(null),f=C.useRef(null),[p,h]=C.useState(0);(!o.current||u.current!==a)&&(u.current=a,o.current=new G_(a)),C.useEffect(()=>{const ce=o.current;if(!(!ce||!a))return ce.getToken({interactive:!1}).catch(()=>ce.clear()),a.subscribe?.(()=>{ce.clear(),h(Se=>Se+1),ce.getToken({interactive:!1}).catch(()=>ce.clear())})},[a]);const{placeholderTranslation:b,genericErrorTranslation:y,tooManyRequestsTranslation:w,discussionFullErrorTranslation:S,infoBannerExplainationTranslation:v,infoBannerTitleTranslation:k,customerSupportConnectingTranslation:L,customerSupportConnectedTranslation:A,customerSupportConnectionErrorTranslation:N,customerSupportProviderUnavailableTranslation:Y,customerSupportClosedTranslation:V,customerSupportRestartTranslation:ne,customerSupportFallbackTitleTranslation:I,customerSupportFallbackDescriptionTranslation:U,customerSupportFallbackEmailTranslation:z,customerSupportFallbackPhoneTranslation:B,customerSupportFallbackSubmitTranslation:$,customerSupportFallbackSubmittingTranslation:X,customerSupportFallbackSuccessTranslation:he,customerSupportFallbackErrorTranslation:pe,customerSupportClosedHoursTitleTranslation:we,customerSupportClosedHoursDescriptionTranslation:Oe,customerSupportClosedHoursSchedulePrefixTranslation:m,customerSupportClosedHoursReasonTranslation:G,customerSupportClosedHoursSuccessTranslation:re}=Ju(),{currentConversation:E,addEmptyMessageToCurrentConversation:te,addMessageToCurrentConversation:se,removeEmptyAssistantMessageFromCurrentConversation:W,resetConversation:oe,setCurrentConversationId:ae,updateCurrentConversationMessageById:de,archivedConversation:ie,chatboxBootState:Ne,resetConversationRequestId:q,setArchivedConversationAsMain:Me}=ns(),[Pe,Le]=C.useState("notLoading"),{defaultStartingStep:it,recentMessagesTranslation:Lt}=sd(),[ze,Dt]=C.useState(null),[vt,ge]=C.useState(it),[ve,H]=C.useState(null),[Q,O]=C.useState(!1),{scrollToBottom:M,showScrollButton:K,messagesContainerRef:ue,requestScrollToBottomAfterNextRender:J,messagesContentRef:_e}=k_(E.items),{chatTransportMode:at,isCustomerSupportMode:je,customerSupportStatusMessage:tt,isCustomerSupportInputDisabled:Gt,enterCustomerSupportMode:Qe,flushPendingCustomerSupportHandoff:Pt,sendToCustomerSupport:ht,fallbackContactCaptureConfig:ss,fallbackContactCaptureStatus:yd,shouldDisplayFallbackContactCapture:xd,submitFallbackContactCapture:_d,closedHoursContactCaptureConfig:os,closedHoursBusinessHours:Sd,closedHoursContactCaptureStatus:Cd,shouldDisplayClosedHoursContactCapture:Ad,submitClosedHoursContactCapture:wd}=__({appToken:e,currentConversation:E,loadingStatus:Pe,labels:{connecting:L,connected:A,connectionError:N,providerUnavailable:Y,closed:V},logger:r,setCurrentConversationId:ae,setLoadingStatus:Le,addMessageToCurrentConversation:se,chatboxBootState:Ne,resetConversationRequestId:q}),[us,ti]=C.useState(!1),{start:Id,stop:vd,cancel:kd,audioLevel:Nd}=B_(),{companySettings:ni}=C.useContext(rn),{appCurrentLang:ls}=C.useContext(td),[Rd,Od]=C.useState(()=>{if(typeof window>"u")return!0;const ce=window.matchMedia("(pointer: coarse)"),Se=window.matchMedia("(hover: none)");return!(ce.matches||Se.matches)}),ri=C.useRef(null);ri.current||(ri.current=new z_({addEmptyMessage:te,updateMessage:de,onAssistantMessageStart:()=>Le("loadingDisplayedAnswer")}));const ii=ri.current;C.useEffect(()=>{if(typeof window>"u")return;const ce=window.matchMedia("(pointer: coarse)"),Se=window.matchMedia("(hover: none)"),Be=()=>{Od(!(ce.matches||Se.matches))};return Be(),ce.addEventListener?(ce.addEventListener("change",Be),Se.addEventListener("change",Be)):(ce.addListener(Be),Se.addListener(Be)),()=>{ce.removeEventListener?(ce.removeEventListener("change",Be),Se.removeEventListener("change",Be)):(ce.removeListener(Be),Se.removeListener(Be))}},[]);const Ld=Pe!=="notLoading"||(E?.items?.length??0)>0,[Dd,cs]=C.useState(!0),Pd=!!ie&&(ie.items?.length??0)>0,Md=()=>{Me(),cs(!1)},Bd=!je&&(Pe!=="notLoading"||Q)||je&&(Pe!=="notLoading"||Gt),Fd={...Ld?{maxHeight:"100vh"}:{height:"250px"}};C.useEffect(()=>{if(je){O(!1);return}Mx(E.items)>=ni?.api?.settings?.maxUserMessagesPerDiscussion&&O(!0)},[ni?.api?.settings?.maxUserMessagesPerDiscussion,E.items,je]);const ds=C.useRef(q);C.useEffect(()=>{ds.current!==q&&(ds.current=q,Le("notLoading"),O(!1))},[q]);const Hd=()=>{gr.abort("Cancelling stream on purpose."),r.log("Stream request aborted"),Le("notLoading"),W()},fs=async ce=>{const Se=ce?.body?.getReader(),Be=new TextDecoder,Nn=ce.headers.get("discussionId"),pt=parseInt(Nn,10);Number.isNaN(pt)||ae(pt),await new ReadableStream({start(kt){return Rn();async function Rn(){if(!ce.ok){Le("notLoading");let Mt=y;ce.status===409?(Mt=S,O(!0)):ce.status===429?Mt=w:Mt=y,se({userType:"assistant",content:Mt,metaData:{isErrorMessage:!0},temporaryId:crypto.randomUUID()}),gr=new AbortController;return}return Se?.read().then(Mt=>{const{done:Yd,value:Gd}=Mt,qd=Be.decode(Gd),Vd=Nt.transformNDJSONChunkIntoObjects(qd);for(const $e of Vd)if(Nt.isObjectOutputstreamMessageStartDTO($e))ii.handleStart($e);else if(Nt.isObjectOutputstreamMessageDeltaDTO($e))ii.handleDelta($e);else if(Nt.isObjectOutputstreamMessageEndDTO($e))ii.handleEnd($e);else if(Nt.isObjectOutputstreamLoadingCurrentStepNumberDTO($e)){const{content:He}=$e;kt.enqueue(He),H(He)}else if(Nt.isObjectOutputstreamLoadingCurrentStepNameDTO($e)){const{content:He}=$e;kt.enqueue(He),ge(He)}else if(Nt.isObjectOutputstreamLoadingNumberOfStepsDTO($e)){const{content:He}=$e;kt.enqueue(He),Dt(He)}else if(Nt.isObjectOutputstreamClientEventDTO($e)){const He=qx($e);if(He.type==="customer_support_handoff_requested")Qe(He.payload);else if(He.type==="identity_gate_required"){if(!c.current.has(He.payload.gateId)){c.current.add(He.payload.gateId);const ps=o.current;ps&&(He.payload.protocolVersion===2&&X_(e,He.payload.continuation,pt),q_({apiUrl:i,appToken:e,payload:He.payload,identitySession:ps}).then(()=>{He.payload.protocolVersion===2&&ru(e)}).catch(Wd=>r.error(Wd)))}}else r.warn(`Client event not handled - ${$e.event}`)}else if(Nt.isObjectOutputstreamErrorDTO($e)){const{message:He}=$e;se({userType:"assistant",metaData:{isErrorMessage:!0},content:He,temporaryId:crypto.randomUUID()})}else r.warn(`Packet shape not handled - ${$e}`);if(Yd){kt.close(),Le("notLoading"),ge(it),H(null),Pt();return}return Rn()})}}}).pipeTo(new WritableStream)};f.current=fs,C.useEffect(()=>{if(!a)return;const ce=Q_(e);if(!ce){d.current=null;return}if(d.current===ce.continuationId)return;const Se=o.current;Se&&(d.current=ce.continuationId,K_({apiUrl:i,appToken:e,discussionId:ce.discussionId,continuation:ce,identitySession:Se}).then(async Be=>{if(!Be){d.current=null;return}Be.status===401&&Se.clear(),J_(Be.status)&&ru(e),Le("loadingIntermediaryStates"),await f.current?.(Be)}).catch(Be=>{r.error(Be),Le("notLoading")}))},[i,e,a,p,r]);const Ud=(ce,Se)=>{const Be=i,Nn=t?`?agentId=${encodeURIComponent(String(t))}`:"",pt=`${Be}/ai/prompt/${e}${Nn}`,ai=gr.signal;if(ce.mode==="text"){const Rn={query:ce.text,language:ls.locale};E?.discussionId&&(Rn.discussionId=E.discussionId);const Mt=tn.getFetchConfig({httpVerb:"POST",body:Rn,contentType:"application/json",options:{signal:ai,headers:{...tn.getHeaders({contentType:"application/json"}),...a?{[Z.IDENTITY_GATE_VERSION_HEADER]:"2"}:{},...Se?{Authorization:"Bearer "+Se}:{}}}});return{url:pt,fetchConfig:Mt}}const kt=new FormData;return kt.append("language",ls.locale),E?.discussionId&&kt.append("discussionId",String(E.discussionId)),kt.append("audioInput",ce.audioFile,ce.audioFile.name),{url:pt,fetchConfig:{method:"POST",body:kt,signal:ai,headers:a||Se?{...a?{[Z.IDENTITY_GATE_VERSION_HEADER]:"2"}:{},...Se?{Authorization:"Bearer "+Se}:{}}:void 0}}},hs=async ce=>{Le("loadingIntermediaryStates"),M({smooth:!1,sticky:!0});let Se=null;try{Se=await o.current?.getToken({interactive:!1})??null}catch{o.current?.clear()}const{url:Be,fetchConfig:Nn}=Ud(ce,Se);fetch(Be,Nn).then(async pt=>{pt.status===401&&Se&&o.current?.clear(),await fs(pt)}).catch(pt=>{r.error(pt),Le("notLoading"),gr=new AbortController})},jd=async()=>{ti(!0),await Id()},zd=async()=>{const ce=await vd();ti(!1),ce&&hs({mode:"audio",audioFile:ce.file})},$d=()=>{kd(),ti(!1)};return x.jsxs("div",{className:["chatbox-root relative p-2","flex flex-col min-h-0 overflow-visible","h-auto",n??"mx-auto"].join(" "),ref:s,style:Fd,children:[x.jsx("div",{className:"flex-1 overflow-y-auto min-h-0 messagesContainer",ref:ue,children:x.jsxs("div",{ref:_e,children:[E.items.map((ce,Se)=>x.jsx(Sy,{content:ce.content,userType:ce.userType,metaData:ce.metaData,context:{discussionId:E?.discussionId,messageIndex:Se,appToken:e},seenRootEl:ue.current},ce.temporaryId)),x.jsx(C_,{currentStepName:vt,currentStepNumber:ve,loadingStatus:Pe,numberOfSteps:ze})]})}),K&&x.jsx(L_,{label:Lt,onClick:()=>M({smooth:!0,sticky:!0})}),!je&&Q&&x.jsx(O_,{onReset:oe}),Ad&&os&&x.jsx(P_,{config:os,status:Cd,scheduleLabel:Sd?.todayScheduleLabel,labels:{title:we,description:Oe,schedulePrefix:m,email:z,phone:B,reason:G,submit:$,submitting:X,success:re,error:pe},onSubmit:wd}),xd&&ss&&x.jsx(D_,{config:ss,status:yd,labels:{title:I,description:U,email:z,phone:B,submit:$,submitting:X,success:he,error:pe},onSubmit:_d}),tt&&x.jsx(tu,{actionLabel:ne,message:tt,onClick:oe}),Pd&&Dd&&x.jsx(tu,{actionLabel:k,message:v,onClick:Md}),x.jsx("div",{className:"chatbox-input-wrapper flex-shrink-0",children:us?x.jsx(H_,{isOpen:us,onStop:zd,onCancel:$d,audioLevel:Nd}):x.jsx(Nx,{classNameTextarea:"",classNameContainer:"relative mt-2 border-slate-400 border-[1px] rounded-lg p-1",SubmitComponent:Rx,isDisabled:Bd,shouldDisableIfInputIsEmpty:!0,"aria-label":"TextArea For Bot Conversation",onSubmit:ce=>{if(cs(!1),Bx(ce)){const Se=Fx(ce,E.discussionId,oe);Se&&(J({smooth:!0}),se({userType:"user",content:Se,temporaryId:crypto.randomUUID()}))}else J({smooth:!0}),se({userType:"user",content:ce,temporaryId:crypto.randomUUID()}),at==="customer_support"?ht(ce):hs({mode:"text",text:ce})},placeholder:b,autoFocus:Rd,isLoadingStream:Pe==="loadingDisplayedAnswer"||Pe==="loadingIntermediaryStates",LoadingComponent:A_,onPressLoadingButton:Hd,onPressMicButton:()=>{jd()},MicComponent:M_,audioEnabled:ni?.agent?.isAudioAllowed&&!je})})]})};function Pr(){return Pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pr.apply(this,arguments)}function dd(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function Ta(e,t){return Ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Ta(e,t)}function fd(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Ta(e,t)}var br={exports:{}};/*
147
+ ${n??""}`,"data-testid":"mic-button",onClick:e,disabled:t,type:"button","aria-label":"Start voice input",children:x.jsx("span",{"data-state":"closed",children:x.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24","aria-hidden":"true",className:"text-white dark:text-black",children:[x.jsx("path",{d:"M12 14.5c1.66 0 3-1.34 3-3V6.5c0-1.66-1.34-3-3-3s-3 1.34-3 3v5c0 1.66 1.34 3 3 3Z",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"}),x.jsx("path",{d:"M12 14.5V18",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),x.jsx("path",{d:"M8.5 18h7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),x.jsx("path",{d:"M7 11.5c0 2.76 2.24 5 5 5s5-2.24 5-5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})})})});function B_(){const[e,t]=C.useState("idle"),[n,r]=C.useState(null),[i,a]=C.useState(0),s=C.useRef(null),o=C.useRef(null),u=C.useRef([]),c=C.useRef(null),d=C.useRef(null),f=C.useRef(null),p=C.useRef(null),h=C.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{f.current?.disconnect()}catch{}f.current=null;try{d.current?.disconnect()}catch{}d.current=null;const v=c.current;c.current=null,v&&v.close().catch(()=>{}),a(0)},[]),b=C.useCallback(v=>{try{const k=new AudioContext,L=k.createAnalyser(),A=k.createMediaStreamSource(v);L.fftSize=256,L.smoothingTimeConstant=.85,A.connect(L),c.current=k,d.current=L,f.current=A;const N=new Uint8Array(L.fftSize),Y=()=>{const V=d.current;if(!V)return;V.getByteTimeDomainData(N);let ne=0;for(let z=0;z<N.length;z++){const B=(N[z]-128)/128;ne+=B*B}const I=Math.sqrt(ne/N.length),U=Math.min(1,I*6);a(U),p.current=requestAnimationFrame(Y)};p.current=requestAnimationFrame(Y)}catch{a(0)}},[]),y=C.useCallback(async()=>{r(null),h();try{const v=await navigator.mediaDevices.getUserMedia({audio:!0});o.current=v,b(v);const L=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg"].find(N=>MediaRecorder.isTypeSupported(N))||"",A=new MediaRecorder(v,L?{mimeType:L}:void 0);s.current=A,u.current=[],A.ondataavailable=N=>{N.data&&N.data.size>0&&u.current.push(N.data)},A.onerror=()=>{t("error"),r("Recorder error.")},A.onstart=()=>t("recording"),A.onstop=()=>t("stopped"),A.start()}catch(v){h(),t("error"),r(v?.message??"Microphone permission denied.")}},[b,h]),w=C.useCallback(async()=>{const v=s.current,k=o.current;return!v||e!=="recording"?null:new Promise(L=>{v.onstop=()=>{h();const A=v.mimeType||"audio/webm",N=new Blob(u.current,{type:A}),Y=A.includes("ogg")?"ogg":"webm",V=new File([N],`voice-message.${Y}`,{type:A});k?.getTracks().forEach(ne=>ne.stop()),o.current=null,s.current=null,L({blob:N,file:V})},v.stop()})},[e,h]),S=C.useCallback(()=>{const v=s.current,k=o.current;try{v&&e==="recording"&&v.stop()}catch{}h(),k?.getTracks().forEach(L=>L.stop()),o.current=null,s.current=null,u.current=[],t("idle")},[e,h]);return C.useEffect(()=>()=>{h(),o.current?.getTracks().forEach(v=>v.stop())},[h]),{state:e,error:n,audioLevel:i,start:y,stop:w,cancel:S}}const F_=()=>{const e=sn(),t=e.formatMessage({defaultMessage:"Recording...",id:"recordingOverlay.recording"}),n=e.formatMessage({defaultMessage:"Cancel",id:"recordingOverlay.cancel"}),r=e.formatMessage({defaultMessage:"Tap the mic to stop",id:"recordingOverlay.explaination"});return{recordingTranslation:t,cancelTranslation:n,recordingExplainationTranslation:r}},H_=({isOpen:e,onStop:t,onCancel:n,audioLevel:r=0})=>{const{recordingTranslation:i}=F_(),a=C.useMemo(()=>{const s=Math.max(0,Math.min(1,r));return Array.from({length:20},(o,u)=>{const c=Math.sin(u/19*Math.PI*2)*.5+.5,d=u%2===0?.9:.65,f=6+s*(14+c*18)*d;return Math.round(f)})},[r]);return e?x.jsx("div",{className:"relative mt-3 w-full rounded-lg border border-slate-400 bg-white p-1",role:"group","aria-label":"Recording voice message",children:x.jsxs("div",{className:"flex min-h-[48px] items-center gap-3 px-2",children:[x.jsxs("div",{className:"relative flex h-8 w-8 items-center justify-center",children:[x.jsx("span",{className:"absolute h-5 w-5 rounded-full bg-red-100 motion-safe:animate-ping","aria-hidden":!0}),x.jsx("span",{className:"absolute h-5 w-5 rounded-full bg-red-50","aria-hidden":!0}),x.jsx("span",{className:"absolute h-3.5 w-3.5 rounded-full bg-red-200","aria-hidden":!0}),x.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-red-500","aria-hidden":!0})]}),x.jsxs("div",{className:"min-w-0 flex-1",children:[x.jsx("div",{className:"mb-0.5 text-[11px] font-medium leading-3 text-slate-600",children:i}),x.jsx("div",{className:"flex h-5 items-center gap-[3px] overflow-hidden","aria-hidden":"true",children:a.map((s,o)=>x.jsx("span",{className:"block w-1 rounded-full bg-slate-400 transition-[height,background-color] duration-75",style:{height:`${s}px`,backgroundColor:r>.08?"rgb(59 130 246)":"rgb(148 163 184)"}},o))})]}),x.jsx("button",{type:"button",onClick:n,className:"flex h-9 w-9 items-center justify-center rounded-full text-slate-500 hover:bg-slate-100 hover:text-slate-700","aria-label":"Cancel recording",children:x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"18",height:"18","aria-hidden":"true",children:x.jsx("path",{d:"M6 6l12 12M18 6L6 18",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}),x.jsx("button",{type:"button",onClick:t,className:"flex h-9 w-9 items-center justify-center rounded-full bg-violet-600 text-white hover:bg-violet-700","aria-label":"Validate recording",children:x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"18",height:"18","aria-hidden":"true",children:x.jsx("path",{d:"M5 13l4 4L19 7",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}):null},U_=e=>/(\[.*|!\[.*)$/.test(e),j_=e=>/\)/.test(e),nu=()=>({rendered:"",markdownTag:"",isWritingTag:!1,lastStreamSourceUuid:null});class z_{buffers=new Map;callbacks;constructor(t){this.callbacks=t}handleStart(t){this.buffers.set(t.messageId,nu()),t.role==="assistant"&&this.callbacks.onAssistantMessageStart?.(),this.callbacks.addEmptyMessage({messageStreamId:t.messageId,role:t.role})}handleDelta(t){this.ensureBufferExists(t.messageId);const n=this.buffers.get(t.messageId);this.appendSourceSeparatorIfNeeded(n,t.streamSourceUuid),this.appendDelta(n,t.delta),this.callbacks.updateMessage({id:t.messageId,newContent:n.rendered})}handleEnd(t){this.buffers.delete(t.messageId)}hasBuffer(t){return this.buffers.has(t)}ensureBufferExists(t){this.buffers.has(t)||(this.buffers.set(t,nu()),this.callbacks.addEmptyMessage({messageStreamId:t,role:"assistant"}))}appendSourceSeparatorIfNeeded(t,n){t.lastStreamSourceUuid&&t.lastStreamSourceUuid!==n&&(t.rendered+='<span style="display:block;height:1rem;"></span>'),t.lastStreamSourceUuid=n??null}appendDelta(t,n){if(j_(n)){t.markdownTag+=n,t.rendered+=t.markdownTag,t.markdownTag="",t.isWritingTag=!1;return}if(t.isWritingTag||U_(n)){t.markdownTag+=n,t.isWritingTag=!0;return}t.rendered+=n}}const $_=30,Y_=e=>{try{const t=e.split(".")[1];if(!t)return null;const n=t.replace(/-/g,"+").replace(/_/g,"/"),r=n.padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return typeof i.exp=="number"?i.exp:null}catch{return null}};class G_{token=null;expiresAt=null;pendingRequest=null;pendingRequestIsInteractive=!1;generation=0;provider;constructor(t){this.provider=t}clear(){this.generation+=1,this.token=null,this.expiresAt=null,this.pendingRequest=null,this.pendingRequestIsInteractive=!1}async getToken(t){if(!this.provider)return null;const n=Math.floor(Date.now()/1e3);if(this.token&&this.expiresAt!=null&&this.expiresAt-$_>n)return this.token;if(this.pendingRequest){const a=this.pendingRequestIsInteractive,s=await this.pendingRequest;if(s||!t.interactive||a)return s}const r=this.generation;this.pendingRequestIsInteractive=t.interactive;let i;return i=this.provider.getToken(t).then(a=>{if(r!==this.generation)return null;if(!a)return this.clear(),null;const s=Y_(a);return s==null||s<=Math.floor(Date.now()/1e3)?(this.clear(),null):(this.token=a,this.expiresAt=s,a)}).finally(()=>{this.pendingRequest===i&&(this.pendingRequest=null,this.pendingRequestIsInteractive=!1)}),this.pendingRequest=i,i}}const ud=C.createContext(void 0),q_=async({apiUrl:e,appToken:t,payload:n,identitySession:r,fetchImplementation:i=fetch})=>{let a=null,s;try{a=await r.getToken({interactive:!0,reason:n.reason,requiredCapabilities:n.requiredCapabilities}),a||(a=await r.getToken({interactive:!1,reason:n.reason,requiredCapabilities:n.requiredCapabilities})),s=a?{status:"success"}:{status:"cancelled"}}catch{r.clear(),s={status:"failed",code:"HOST_IDENTITY_FAILED"}}const o=await i(`${e}/ai/identity-gates/${encodeURIComponent(t)}/${encodeURIComponent(n.gateId)}/result`,{method:"POST",headers:{"Content-Type":"application/json","X-ChatSystem-Identity-Gate-Token":n.resultToken,...a?{Authorization:`Bearer ${a}`}:{}},body:JSON.stringify(s)});if(!o.ok)throw o.status===401&&a&&r.clear(),new Error(`IDENTITY_GATE_RESOLUTION_FAILED:${o.status}`)},V_="chatsystem:pending-turn:",W_=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,rs=e=>`${V_}${encodeURIComponent(e)}`,ld=(e,t=Date.now())=>{if(!e||typeof e!="object"||Array.isArray(e))return null;const n=e;if(typeof n.continuationId!="string"||!W_.test(n.continuationId)||typeof n.expiresAt!="string"||typeof n.discussionId!="number"||!Number.isSafeInteger(n.discussionId)||n.discussionId<=0)return null;const r=Date.parse(n.expiresAt);return!Number.isFinite(r)||r<=t?null:{continuationId:n.continuationId,expiresAt:n.expiresAt,discussionId:n.discussionId}},X_=(e,t,n,r=sessionStorage)=>{const i=ld({...t,discussionId:n});i&&r.setItem(rs(e),JSON.stringify(i))},Q_=(e,t=sessionStorage,n=Date.now())=>{const r=rs(e),i=t.getItem(r);if(!i)return null;try{const a=ld(JSON.parse(i),n);if(a)return a}catch{}return t.removeItem(r),null},ru=(e,t=sessionStorage)=>{t.removeItem(rs(e))},K_=async({apiUrl:e,appToken:t,discussionId:n,continuation:r,identitySession:i,fetchImplementation:a=fetch})=>{if(!Number.isSafeInteger(n)||n<=0)return null;const s=await i.getToken({interactive:!1});if(!s)return null;const o={discussionId:n};return a(`${e}/ai/pending-turns/${encodeURIComponent(t)}/${encodeURIComponent(r.continuationId)}/resume`,{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)})},J_=e=>e>=200&&e<300||e>=400&&e<500&&e!==429||e===503;let gr=new AbortController;const cd=({appToken:e,agentId:t,containerClassName:n})=>{const r=Sn(),i=Kr(),a=C.useContext(ud);e||r.error("App Token missing");const s=C.useRef(null),o=C.useRef(null),u=C.useRef(a),c=C.useRef(new Set),d=C.useRef(null),f=C.useRef(null),[p,h]=C.useState(0);(!o.current||u.current!==a)&&(u.current=a,o.current=new G_(a)),C.useEffect(()=>{const ce=o.current;if(!(!ce||!a))return ce.getToken({interactive:!1}).catch(()=>ce.clear()),a.subscribe?.(()=>{ce.clear(),h(Se=>Se+1),ce.getToken({interactive:!1}).catch(()=>ce.clear())})},[a]);const{placeholderTranslation:b,genericErrorTranslation:y,tooManyRequestsTranslation:w,discussionFullErrorTranslation:S,infoBannerExplainationTranslation:v,infoBannerTitleTranslation:k,customerSupportConnectingTranslation:L,customerSupportConnectedTranslation:A,customerSupportConnectionErrorTranslation:N,customerSupportProviderUnavailableTranslation:Y,customerSupportClosedTranslation:V,customerSupportRestartTranslation:ne,customerSupportFallbackTitleTranslation:I,customerSupportFallbackDescriptionTranslation:U,customerSupportFallbackEmailTranslation:z,customerSupportFallbackPhoneTranslation:B,customerSupportFallbackSubmitTranslation:$,customerSupportFallbackSubmittingTranslation:X,customerSupportFallbackSuccessTranslation:he,customerSupportFallbackErrorTranslation:pe,customerSupportClosedHoursTitleTranslation:we,customerSupportClosedHoursDescriptionTranslation:Oe,customerSupportClosedHoursSchedulePrefixTranslation:m,customerSupportClosedHoursReasonTranslation:G,customerSupportClosedHoursSuccessTranslation:re}=Ju(),{currentConversation:E,addEmptyMessageToCurrentConversation:te,addMessageToCurrentConversation:se,removeEmptyAssistantMessageFromCurrentConversation:W,resetConversation:oe,setCurrentConversationId:ae,updateCurrentConversationMessageById:de,archivedConversation:ie,chatboxBootState:Ne,resetConversationRequestId:q,setArchivedConversationAsMain:Me}=ns(),[Pe,Le]=C.useState("notLoading"),{defaultStartingStep:it,recentMessagesTranslation:Lt}=sd(),[ze,Dt]=C.useState(null),[vt,ge]=C.useState(it),[ve,H]=C.useState(null),[Q,O]=C.useState(!1),{scrollToBottom:M,showScrollButton:K,messagesContainerRef:ue,requestScrollToBottomAfterNextRender:J,messagesContentRef:_e}=k_(E.items),{chatTransportMode:at,isCustomerSupportMode:je,customerSupportStatusMessage:tt,isCustomerSupportInputDisabled:Gt,enterCustomerSupportMode:Qe,flushPendingCustomerSupportHandoff:Pt,sendToCustomerSupport:ht,fallbackContactCaptureConfig:ss,fallbackContactCaptureStatus:yd,shouldDisplayFallbackContactCapture:xd,submitFallbackContactCapture:_d,closedHoursContactCaptureConfig:os,closedHoursBusinessHours:Sd,closedHoursContactCaptureStatus:Cd,shouldDisplayClosedHoursContactCapture:Ad,submitClosedHoursContactCapture:wd}=__({appToken:e,currentConversation:E,loadingStatus:Pe,labels:{connecting:L,connected:A,connectionError:N,providerUnavailable:Y,closed:V},logger:r,setCurrentConversationId:ae,setLoadingStatus:Le,addMessageToCurrentConversation:se,chatboxBootState:Ne,resetConversationRequestId:q}),[us,ti]=C.useState(!1),{start:Id,stop:vd,cancel:kd,audioLevel:Nd}=B_(),{companySettings:ni}=C.useContext(rn),{appCurrentLang:ls}=C.useContext(td),[Rd,Od]=C.useState(()=>{if(typeof window>"u")return!0;const ce=window.matchMedia("(pointer: coarse)"),Se=window.matchMedia("(hover: none)");return!(ce.matches||Se.matches)}),ri=C.useRef(null);ri.current||(ri.current=new z_({addEmptyMessage:te,updateMessage:de,onAssistantMessageStart:()=>Le("loadingDisplayedAnswer")}));const ii=ri.current;C.useEffect(()=>{if(typeof window>"u")return;const ce=window.matchMedia("(pointer: coarse)"),Se=window.matchMedia("(hover: none)"),Be=()=>{Od(!(ce.matches||Se.matches))};return Be(),ce.addEventListener?(ce.addEventListener("change",Be),Se.addEventListener("change",Be)):(ce.addListener(Be),Se.addListener(Be)),()=>{ce.removeEventListener?(ce.removeEventListener("change",Be),Se.removeEventListener("change",Be)):(ce.removeListener(Be),Se.removeListener(Be))}},[]);const Ld=Pe!=="notLoading"||(E?.items?.length??0)>0,[Dd,cs]=C.useState(!0),Pd=!!ie&&(ie.items?.length??0)>0,Md=()=>{Me(),cs(!1)},Bd=!je&&(Pe!=="notLoading"||Q)||je&&(Pe!=="notLoading"||Gt),Fd={...Ld?{maxHeight:"100vh"}:{height:"250px"}};C.useEffect(()=>{if(je){O(!1);return}Mx(E.items)>=ni?.api?.settings?.maxUserMessagesPerDiscussion&&O(!0)},[ni?.api?.settings?.maxUserMessagesPerDiscussion,E.items,je]);const ds=C.useRef(q);C.useEffect(()=>{ds.current!==q&&(ds.current=q,Le("notLoading"),O(!1))},[q]);const Hd=()=>{gr.abort("Cancelling stream on purpose."),r.log("Stream request aborted"),Le("notLoading"),W()},fs=async ce=>{const Se=ce?.body?.getReader(),Be=new TextDecoder,Nn=ce.headers.get("discussionId"),pt=parseInt(Nn,10);Number.isNaN(pt)||ae(pt),await new ReadableStream({start(kt){return Rn();async function Rn(){if(!ce.ok){Le("notLoading");let Mt=y;ce.status===409?(Mt=S,O(!0)):ce.status===429?Mt=w:Mt=y,se({userType:"assistant",content:Mt,metaData:{isErrorMessage:!0},temporaryId:crypto.randomUUID()}),gr=new AbortController;return}return Se?.read().then(Mt=>{const{done:Yd,value:Gd}=Mt,qd=Be.decode(Gd),Vd=Nt.transformNDJSONChunkIntoObjects(qd);for(const $e of Vd)if(Nt.isObjectOutputstreamMessageStartDTO($e))ii.handleStart($e);else if(Nt.isObjectOutputstreamMessageDeltaDTO($e))ii.handleDelta($e);else if(Nt.isObjectOutputstreamMessageEndDTO($e))ii.handleEnd($e);else if(Nt.isObjectOutputstreamLoadingCurrentStepNumberDTO($e)){const{content:He}=$e;kt.enqueue(He),H(He)}else if(Nt.isObjectOutputstreamLoadingCurrentStepNameDTO($e)){const{content:He}=$e;kt.enqueue(He),ge(He)}else if(Nt.isObjectOutputstreamLoadingNumberOfStepsDTO($e)){const{content:He}=$e;kt.enqueue(He),Dt(He)}else if(Nt.isObjectOutputstreamClientEventDTO($e)){const He=qx($e);if(He.type==="customer_support_handoff_requested")Qe(He.payload);else if(He.type==="identity_gate_required"){if(!c.current.has(He.payload.gateId)){c.current.add(He.payload.gateId);const ps=o.current;ps&&(He.payload.protocolVersion===2&&X_(e,He.payload.continuation,pt),q_({apiUrl:i,appToken:e,payload:He.payload,identitySession:ps}).then(()=>{He.payload.protocolVersion===2&&ru(e)}).catch(Wd=>r.error(Wd)))}}else r.warn(`Client event not handled - ${$e.event}`)}else if(Nt.isObjectOutputstreamErrorDTO($e)){const{message:He}=$e;se({userType:"assistant",metaData:{isErrorMessage:!0},content:He,temporaryId:crypto.randomUUID()})}else r.warn(`Packet shape not handled - ${$e}`);if(Yd){kt.close(),Le("notLoading"),ge(it),H(null),Pt();return}return Rn()})}}}).pipeTo(new WritableStream)};f.current=fs,C.useEffect(()=>{if(!a)return;const ce=Q_(e);if(!ce){d.current=null;return}if(d.current===ce.continuationId)return;const Se=o.current;Se&&(d.current=ce.continuationId,K_({apiUrl:i,appToken:e,discussionId:ce.discussionId,continuation:ce,identitySession:Se}).then(async Be=>{if(!Be){d.current=null;return}Be.status===401&&Se.clear(),J_(Be.status)&&ru(e),Le("loadingIntermediaryStates"),await f.current?.(Be)}).catch(Be=>{r.error(Be),Le("notLoading")}))},[i,e,a,p,r]);const Ud=(ce,Se)=>{const Be=i,Nn=t?`?agentId=${encodeURIComponent(String(t))}`:"",pt=`${Be}/ai/prompt/${e}${Nn}`,ai=gr.signal;if(ce.mode==="text"){const Rn={query:ce.text,language:ls.locale};E?.discussionId&&(Rn.discussionId=E.discussionId);const Mt=tn.getFetchConfig({httpVerb:"POST",body:Rn,contentType:"application/json",options:{signal:ai,headers:{...tn.getHeaders({contentType:"application/json"}),...a?{[Z.IDENTITY_GATE_VERSION_HEADER]:"2"}:{},...Se?{Authorization:"Bearer "+Se}:{}}}});return{url:pt,fetchConfig:Mt}}const kt=new FormData;return kt.append("language",ls.locale),E?.discussionId&&kt.append("discussionId",String(E.discussionId)),kt.append("audioInput",ce.audioFile,ce.audioFile.name),{url:pt,fetchConfig:{method:"POST",body:kt,signal:ai,headers:a||Se?{...a?{[Z.IDENTITY_GATE_VERSION_HEADER]:"2"}:{},...Se?{Authorization:"Bearer "+Se}:{}}:void 0}}},hs=async ce=>{Le("loadingIntermediaryStates"),M({smooth:!1,sticky:!0});let Se=null;try{Se=await o.current?.getToken({interactive:!1})??null}catch{o.current?.clear()}const{url:Be,fetchConfig:Nn}=Ud(ce,Se);fetch(Be,Nn).then(async pt=>{pt.status===401&&Se&&o.current?.clear(),await fs(pt)}).catch(pt=>{r.error(pt),Le("notLoading"),gr=new AbortController})},jd=async()=>{ti(!0),await Id()},zd=async()=>{const ce=await vd();ti(!1),ce&&hs({mode:"audio",audioFile:ce.file})},$d=()=>{kd(),ti(!1)};return x.jsxs("div",{className:["chatbox-root relative p-2","flex flex-col min-h-0 overflow-visible","h-auto",n??"mx-auto"].join(" "),ref:s,style:Fd,children:[x.jsx("div",{className:"flex-1 overflow-y-auto min-h-0 messagesContainer",ref:ue,children:x.jsxs("div",{ref:_e,children:[E.items.map((ce,Se)=>x.jsx(Sy,{content:ce.content,userType:ce.userType,metaData:ce.metaData,context:{discussionId:E?.discussionId,messageIndex:Se,appToken:e},seenRootEl:ue.current},ce.temporaryId)),x.jsx(C_,{currentStepName:vt,currentStepNumber:ve,loadingStatus:Pe,numberOfSteps:ze})]})}),K&&x.jsx(L_,{label:Lt,onClick:()=>M({smooth:!0,sticky:!0})}),!je&&Q&&x.jsx(O_,{onReset:oe}),Ad&&os&&x.jsx(P_,{config:os,status:Cd,scheduleLabel:Sd?.todayScheduleLabel,labels:{title:we,description:Oe,schedulePrefix:m,email:z,phone:B,reason:G,submit:$,submitting:X,success:re,error:pe},onSubmit:wd}),xd&&ss&&x.jsx(D_,{config:ss,status:yd,labels:{title:I,description:U,email:z,phone:B,submit:$,submitting:X,success:he,error:pe},onSubmit:_d}),tt&&x.jsx(tu,{actionLabel:ne,message:tt,onClick:oe}),Pd&&Dd&&x.jsx(tu,{actionLabel:k,message:v,onClick:Md}),x.jsx("div",{className:"chatbox-input-wrapper flex-shrink-0",children:us?x.jsx(H_,{isOpen:us,onStop:zd,onCancel:$d,audioLevel:Nd}):x.jsx(Nx,{classNameTextarea:"",classNameContainer:"relative mt-2 border-slate-400 border-[1px] rounded-lg p-1",SubmitComponent:Rx,isDisabled:Bd,shouldDisableIfInputIsEmpty:!0,"aria-label":"TextArea For Bot Conversation",onSubmit:ce=>{if(cs(!1),Bx(ce)){const Se=Fx(ce,E.discussionId,oe);Se&&(J({smooth:!0}),se({userType:"user",content:Se,temporaryId:crypto.randomUUID()}))}else J({smooth:!0}),se({userType:"user",content:ce,temporaryId:crypto.randomUUID()}),at==="customer_support"?ht(ce):hs({mode:"text",text:ce})},placeholder:b,autoFocus:Rd,isLoadingStream:Pe==="loadingDisplayedAnswer"||Pe==="loadingIntermediaryStates",LoadingComponent:A_,onPressLoadingButton:Hd,onPressMicButton:()=>{jd()},MicComponent:M_,audioEnabled:ni?.agent?.isAudioAllowed&&!je})})]})};function Pr(){return Pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pr.apply(this,arguments)}function dd(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function Ta(e,t){return Ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Ta(e,t)}function fd(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Ta(e,t)}var br={exports:{}};/*
148
148
  object-assign
149
149
  (c) Sindre Sorhus
150
150
  @license MIT
@@ -169,7 +169,7 @@ Valid keys: `+JSON.stringify(Object.keys(m),null," "));var q=Ne(oe,ie,te,se,W+"
169
169
  md:h-[clamp(420px,70dvh,640px)]
170
170
  md:rounded-xl
171
171
  bg-white shadow-xl flex flex-col overflow-hidden
172
- `,children:[x.jsxs("div",{className:"pl-3 relative z-20 bg-violet-700 py-2 text-white text-left flex justify-start items-center chatsystem-header",children:[x.jsx(Gc,{className:"chatSystem-widgetLogo",logo:x.jsx(qc,{}),label:i}),x.jsx("div",{className:"absolute right-12 top-1/2 -translate-y-1/2",children:x.jsx(bd,{tone:"dark",onStartNewDiscussion:r})}),x.jsx(dS,{setIsWidgetOpen:e.setIsWidgetOpen})]}),x.jsx(cd,{appToken:e.appToken,agentId:e.agentId})]})}),hS=({isWidgetOpen:e,appToken:t,agentId:n,setIsWidgetOpen:r})=>{const i=C.useRef(null);return C.useEffect(()=>{if(!e)return;const a=s=>{const o=i.current;if(!o)return;const u=typeof s.composedPath=="function"?s.composedPath():[];if(u.length>0){if(u.includes(o))return}else{const c=s.target;if(c&&o.contains(c))return}r(!1)};return document.addEventListener("pointerdown",a,!0),()=>{document.removeEventListener("pointerdown",a,!0)}},[e,r]),x.jsx("div",{children:x.jsx(as,{nodeRef:i,in:e,timeout:200,classNames:"menuTransition",unmountOnExit:!0,children:x.jsx(fS,{ref:i,props:{appToken:t,agentId:n,setIsWidgetOpen:r}})})})},pS=()=>{const{resetConversation:e}=ns();return x.jsx("div",{className:"relative z-20 flex justify-end px-2 pt-2",children:x.jsx(bd,{tone:"light",onStartNewDiscussion:e})})},Ed=()=>({hasFetchedSettings:!1,hasDisplayedCSS:!1}),mS=()=>{const[e,t]=C.useState(Ed());return{appInternalContext:e,setAppInternalContext:t,setHasFetchedSettings:()=>{t(i=>({...i,hasFetchedSettings:!0}))},setHasDisplayedCss:()=>{t(i=>({...i,hasDisplayedCSS:!0}))}}},Td=C.createContext({appInternalContext:Ed(),setAppInternalContext:()=>{},setHasFetchedSettings:()=>{}}),gS=({displayMode:e,appToken:t,agentId:n})=>{const[r,i]=C.useState(!1),{appInternalContext:a}=C.useContext(Td);return x.jsxs(x.Fragment,{children:[e===_n.LAUNCHER&&a.hasFetchedSettings&&x.jsxs(x.Fragment,{children:[x.jsx(gf,{isWidgetOpen:r,setIsWidgetOpen:i}),x.jsx(hS,{isWidgetOpen:r,appToken:t,agentId:n,setIsWidgetOpen:i})]}),e===_n.CHATBOX&&a.hasFetchedSettings&&x.jsxs("div",{className:"chatBox w-full max-w-[1200px] mx-auto",children:[x.jsx(pS,{}),x.jsx(cd,{appToken:t,agentId:n})]})]})},bS=e=>Object.values(_n).includes(e),ES=e=>{const t=Ct();return bS(e)?e:(t.warn(`Display mode not valid. Using ${_n.LAUNCHER} as default.`),_n.LAUNCHER)},TS=(e,t)=>{let n,r;return typeof window<"u"&&(r=window.localStorage.getItem(Px)),r&&e?.[r]!==void 0?n=e[r]:(n=e[t],n.isDefault=!0),n},yS=(e,t)=>{const[n,r]=C.useState(e[t]),i=a=>{Object.keys(e).includes(a?.locale)?r(a):r(e[lt.ENGLISH])};return C.useEffect(()=>{let a=TS(e,t);a.locale!==t&&r(e[a.locale])},[]),{appCurrentLang:n,handleSetContextCurrentLang:i}},xS=e=>Object.values(lt).includes(e),_S=(e,t)=>{const n=t??Ct();return xS(e)?e:(n.warn(`Language ${e} not handled for now. Using ${lt.ENGLISH}.`),lt.ENGLISH)};function SS(e,t=Date.now()){return t-e}function CS(e,t=Date.now()){return SS(new Date(e).getTime(),t)<=i_}function AS({settings:e,setCurrentConversation:t,setArchivedConversation:n}){const r=nd({key:ei});if(!r){t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]});return}CS(r.updatedAt)?t({discussionId:r.discussionId,items:r.items,updatedAt:r.updatedAt}):(t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]}),n({discussionId:r.discussionId,items:r.items,updatedAt:r.updatedAt}))}const wS=({agentId:e,appToken:t,onFetched:n})=>{const r=Sn(),i=Kr(),[a,s]=C.useState({}),o={companySettings:a,setCompanySettings:s},[u,c]=C.useState({discussionId:null,items:[],updatedAt:null}),[d,f]=C.useState({discussionId:null,items:[],updatedAt:null}),[p,h]=C.useState(()=>f_()),[b,y]=C.useState(0),S={currentConversation:u,setCurrentConversation:c,archivedConversation:d,setArchivedConversation:f,chatboxBootState:p,setChatboxBootState:h,resetConversationRequestId:b,resetConversation:()=>{d_(),h({mode:_t.ai,customerSupportState:null,reason:"manual_start_new_conversation"}),c({discussionId:null,items:[{userType:"assistant",content:a?.agent?.text?.initialText,temporaryId:crypto.randomUUID()}],updatedAt:null}),y(v=>v+1)}};return C.useEffect(()=>{const v=i,k=tn.getFetchConfig({httpVerb:"GET",contentType:"application/json"});let L=`${v}/company/settings/${t}`;L+=`/${e}`,fetch(L,{...k,credentials:"omit"}).then(async A=>{const N=await A.json();s(N),AS({settings:N,setCurrentConversation:c,setArchivedConversation:f}),n?.()}).catch(A=>{r.warn("error in settings fetch",A)})},[t,e,i,r]),{contextCompanySettings:o,contextInitialConversationState:S}};function IS(e,t={},n,r){const i=Sn(),{id:a,nonce:s,target:o,disableConstructable:u}=t,c=o,d=C.useRef(null),f=C.useRef(null);C.useEffect(()=>{if(!o)return;if(!e){n&&(i.log("No custom css found."),r?.());return}if(!u&&"adoptedStyleSheets"in c&&typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype)return d.current||(d.current=new CSSStyleSheet,c.adoptedStyleSheets=[...c.adoptedStyleSheets,d.current]),d.current.replaceSync(e),i.log("Loading custom css via stylesheet."),r?.(),()=>{const h=c.adoptedStyleSheets||[],b=h.indexOf(d.current);if(b>=0){const y=h.slice();y.splice(b,1),c.adoptedStyleSheets=y}d.current=null};if(!f.current){const h=document.createElement("style");h.type="text/css",a&&(h.id=a),s&&(h.nonce=s),(c instanceof Document&&c.head||c).appendChild(h),f.current=h}return f.current.textContent=e,i.log("Loading custom css via style tag."),r?.(),()=>{f.current?.parentNode?.removeChild(f.current),f.current=null}},[e,a,s,o,u,i])}function vS(e,t){const{manifest:n,origins:r}=kS(e,t);r.forEach(af),of(n),rf(n)}function kS(e,t){const n=t??Ct(),r=NS(e),i=new Set,a=new Set,s=new Set,o=new Set;for(const{url:d,mode:f}of r)switch(RS(f,d,n)){case"svg":a.add(d);break;case"lottie":s.add(d);break;case"spritesheet":o.add(d);break;case"image":i.add(d);break}const u={images:Array.from(i),svgs:Array.from(a),lotties:Array.from(s),sprites:Array.from(o)},c=OS(u,n);return{manifest:u,origins:c}}function NS(e){if(!e?.agent?.display)return[];const t=e.agent.display,n=[t.launcher,t.assistant,t.search].filter(Boolean),r=[];for(const i of n)i?.assetUrl&&r.push({url:i.assetUrl,mode:i.mode});return r}function RS(e,t,n){if(e)switch(e){case"svg":return"svg";case"lottie":return"lottie";case"spritesheet":return"spritesheet";case"image":return"image";case"video":return"video"}try{const i=new URL(t,document.baseURI).pathname.toLowerCase();if(i.endsWith(".svg"))return"svg";if(i.endsWith(".lottie")||i.endsWith(".zip")||i.endsWith(".json"))return i.endsWith(".json"),"lottie";if(/\.(png|webp|jpg|jpeg|gif|avi,ef)$/.test(i))return"image";if(/\.(mp4|webm|mov|m4v|ogg)$/.test(i))return"video"}catch(r){n.warn("error in normalizeKind:",r)}return"unknown"}function OS(e,t){const n=new Set,r=i=>{if(i)try{const a=new URL(i,document.baseURI);n.add(`${a.protocol}//${a.host}`)}catch(a){t.warn("error in uniqueOriginsFromManifest",a)}};return(e.images??[]).forEach(r),(e.svgs??[]).forEach(r),(e.lotties??[]).forEach(r),(e.sprites??[]).forEach(r),Array.from(n)}const LS=({children:e,appToken:t,agentId:n,appRoot:r,logger:i,identityProvider:a})=>{var s=navigator.language;i.log("Brower language",s);const o=_S(s,i),{appCurrentLang:u,handleSetContextCurrentLang:c}=yS(Zr,o),d={appCurrentLang:u,setAppCurrentLang:c},f=mS(),{contextCompanySettings:p,contextInitialConversationState:h}=wS({agentId:n,appToken:t,onFetched:f.setHasFetchedSettings});return vS(p.companySettings,i),IS(p.companySettings?.agent?.display?.CSSRules,{id:`${n}`,target:r},f.appInternalContext.hasFetchedSettings,f.setHasDisplayedCss),x.jsx(x.Fragment,{children:x.jsx(ud.Provider,{value:a,children:x.jsx(Su.Provider,{value:i,children:x.jsx(Uh,{locale:u?.locale,messages:u?.translatedText,children:x.jsx(td.Provider,{value:d,children:x.jsx(Td.Provider,{value:f,children:x.jsx(rn.Provider,{value:p,children:x.jsx(od.Provider,{value:h,children:f.appInternalContext.hasDisplayedCSS&&e})})})})})})})})};var _n=(e=>(e.LAUNCHER="launcher",e.CHATBOX="chatbox",e))(_n||{});function DS({appToken:e,displayMode:t="launcher",agentId:n,appRoot:r,identityProvider:i,apiUrl:a}){const s=Sn();e||s.warn("appToken not defined in ai-client. Please see the documentation at URL_ERROR_IN_DOC");const o=ES(t);return s.log(`App boot in ${o} mode.`),x.jsx(Ey,{apiUrl:a,children:x.jsx("div",{className:"chatSystemWidget app-root",id:"chatSystemWidget",children:x.jsx(LS,{appToken:e,agentId:n,appRoot:r,logger:s,identityProvider:i,children:x.jsx(gS,{displayMode:o,appToken:e,agentId:n})})})})}const PS=`*, ::before, ::after {
172
+ `,children:[x.jsxs("div",{className:"pl-3 relative z-20 bg-violet-700 py-2 text-white text-left flex justify-start items-center chatsystem-header",children:[x.jsx(Gc,{className:"chatSystem-widgetLogo",logo:x.jsx(qc,{}),label:i}),x.jsx("div",{className:"absolute right-12 top-1/2 -translate-y-1/2",children:x.jsx(bd,{tone:"dark",onStartNewDiscussion:r})}),x.jsx(dS,{setIsWidgetOpen:e.setIsWidgetOpen})]}),x.jsx(cd,{appToken:e.appToken,agentId:e.agentId})]})}),hS=({isWidgetOpen:e,appToken:t,agentId:n,setIsWidgetOpen:r})=>{const i=C.useRef(null);return C.useEffect(()=>{if(!e)return;const a=s=>{const o=i.current;if(!o)return;const u=typeof s.composedPath=="function"?s.composedPath():[];if(u.length>0){if(u.includes(o))return}else{const c=s.target;if(c&&o.contains(c))return}r(!1)};return document.addEventListener("pointerdown",a,!0),()=>{document.removeEventListener("pointerdown",a,!0)}},[e,r]),x.jsx("div",{children:x.jsx(as,{nodeRef:i,in:e,timeout:200,classNames:"menuTransition",unmountOnExit:!0,children:x.jsx(fS,{ref:i,props:{appToken:t,agentId:n,setIsWidgetOpen:r}})})})},pS=()=>{const{resetConversation:e}=ns();return x.jsx("div",{className:"relative z-20 flex justify-end px-2 pt-2",children:x.jsx(bd,{tone:"light",onStartNewDiscussion:e})})},Ed=()=>({hasFetchedSettings:!1,hasDisplayedCSS:!1}),mS=()=>{const[e,t]=C.useState(Ed());return{appInternalContext:e,setAppInternalContext:t,setHasFetchedSettings:()=>{t(i=>({...i,hasFetchedSettings:!0}))},setHasDisplayedCss:()=>{t(i=>({...i,hasDisplayedCSS:!0}))}}},Td=C.createContext({appInternalContext:Ed(),setAppInternalContext:()=>{},setHasFetchedSettings:()=>{}}),gS=({displayMode:e,appToken:t,agentId:n})=>{const[r,i]=C.useState(!1),{appInternalContext:a}=C.useContext(Td);return x.jsxs(x.Fragment,{children:[e===_n.LAUNCHER&&a.hasFetchedSettings&&x.jsxs(x.Fragment,{children:[x.jsx(gf,{isWidgetOpen:r,setIsWidgetOpen:i}),x.jsx(hS,{isWidgetOpen:r,appToken:t,agentId:n,setIsWidgetOpen:i})]}),e===_n.CHATBOX&&a.hasFetchedSettings&&x.jsxs("div",{className:"chatBox w-full max-w-[1200px] mx-auto",children:[x.jsx(pS,{}),x.jsx(cd,{appToken:t,agentId:n})]})]})},bS=e=>Object.values(_n).includes(e),ES=e=>{const t=Ct();return bS(e)?e:(t.warn(`Display mode not valid. Using ${_n.LAUNCHER} as default.`),_n.LAUNCHER)},TS=(e,t)=>{let n,r;return typeof window<"u"&&(r=window.localStorage.getItem(Px)),r&&e?.[r]!==void 0?n=e[r]:(n=e[t],n.isDefault=!0),n},yS=(e,t)=>{const[n,r]=C.useState(e[t]),i=a=>{Object.keys(e).includes(a?.locale)?r(a):r(e[lt.ENGLISH])};return C.useEffect(()=>{const a=TS(e,t);a.locale!==t&&r(e[a.locale])},[]),{appCurrentLang:n,handleSetContextCurrentLang:i}},xS=e=>Object.values(lt).includes(e),_S=(e,t)=>{const n=t??Ct();return xS(e)?e:(n.warn(`Language ${e} not handled for now. Using ${lt.ENGLISH}.`),lt.ENGLISH)};function SS(e,t=Date.now()){return t-e}function CS(e,t=Date.now()){return SS(new Date(e).getTime(),t)<=i_}function AS({settings:e,setCurrentConversation:t,setArchivedConversation:n}){const r=nd({key:ei});if(!r){t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]});return}CS(r.updatedAt)?t({discussionId:r.discussionId,items:r.items,updatedAt:r.updatedAt}):(t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]}),n({discussionId:r.discussionId,items:r.items,updatedAt:r.updatedAt}))}const wS=({agentId:e,appToken:t,onFetched:n})=>{const r=Sn(),i=Kr(),[a,s]=C.useState({}),o={companySettings:a,setCompanySettings:s},[u,c]=C.useState({discussionId:null,items:[],updatedAt:null}),[d,f]=C.useState({discussionId:null,items:[],updatedAt:null}),[p,h]=C.useState(()=>f_()),[b,y]=C.useState(0),S={currentConversation:u,setCurrentConversation:c,archivedConversation:d,setArchivedConversation:f,chatboxBootState:p,setChatboxBootState:h,resetConversationRequestId:b,resetConversation:()=>{d_(),h({mode:_t.ai,customerSupportState:null,reason:"manual_start_new_conversation"}),c({discussionId:null,items:[{userType:"assistant",content:a?.agent?.text?.initialText,temporaryId:crypto.randomUUID()}],updatedAt:null}),y(v=>v+1)}};return C.useEffect(()=>{const v=i,k=tn.getFetchConfig({httpVerb:"GET",contentType:"application/json"});let L=`${v}/company/settings/${t}`;L+=`/${e}`,fetch(L,{...k,credentials:"omit"}).then(async A=>{const N=await A.json();s(N),AS({settings:N,setCurrentConversation:c,setArchivedConversation:f}),n?.()}).catch(A=>{r.warn("error in settings fetch",A)})},[t,e,i,r]),{contextCompanySettings:o,contextInitialConversationState:S}};function IS(e,t={},n,r){const i=Sn(),{id:a,nonce:s,target:o,disableConstructable:u}=t,c=o,d=C.useRef(null),f=C.useRef(null);C.useEffect(()=>{if(!o)return;if(!e){n&&(i.log("No custom css found."),r?.());return}if(!u&&"adoptedStyleSheets"in c&&typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype)return d.current||(d.current=new CSSStyleSheet,c.adoptedStyleSheets=[...c.adoptedStyleSheets,d.current]),d.current.replaceSync(e),i.log("Loading custom css via stylesheet."),r?.(),()=>{const h=c.adoptedStyleSheets||[],b=h.indexOf(d.current);if(b>=0){const y=h.slice();y.splice(b,1),c.adoptedStyleSheets=y}d.current=null};if(!f.current){const h=document.createElement("style");h.type="text/css",a&&(h.id=a),s&&(h.nonce=s),(c instanceof Document&&c.head||c).appendChild(h),f.current=h}return f.current.textContent=e,i.log("Loading custom css via style tag."),r?.(),()=>{f.current?.parentNode?.removeChild(f.current),f.current=null}},[e,a,s,o,u,i])}function vS(e,t){const{manifest:n,origins:r}=kS(e,t);r.forEach(af),of(n),rf(n)}function kS(e,t){const n=t??Ct(),r=NS(e),i=new Set,a=new Set,s=new Set,o=new Set;for(const{url:d,mode:f}of r)switch(RS(f,d,n)){case"svg":a.add(d);break;case"lottie":s.add(d);break;case"spritesheet":o.add(d);break;case"image":i.add(d);break}const u={images:Array.from(i),svgs:Array.from(a),lotties:Array.from(s),sprites:Array.from(o)},c=OS(u,n);return{manifest:u,origins:c}}function NS(e){if(!e?.agent?.display)return[];const t=e.agent.display,n=[t.launcher,t.assistant,t.search].filter(Boolean),r=[];for(const i of n)i?.assetUrl&&r.push({url:i.assetUrl,mode:i.mode});return r}function RS(e,t,n){if(e)switch(e){case"svg":return"svg";case"lottie":return"lottie";case"spritesheet":return"spritesheet";case"image":return"image";case"video":return"video"}try{const i=new URL(t,document.baseURI).pathname.toLowerCase();if(i.endsWith(".svg"))return"svg";if(i.endsWith(".lottie")||i.endsWith(".zip")||i.endsWith(".json"))return i.endsWith(".json"),"lottie";if(/\.(png|webp|jpg|jpeg|gif|avi,ef)$/.test(i))return"image";if(/\.(mp4|webm|mov|m4v|ogg)$/.test(i))return"video"}catch(r){n.warn("error in normalizeKind:",r)}return"unknown"}function OS(e,t){const n=new Set,r=i=>{if(i)try{const a=new URL(i,document.baseURI);n.add(`${a.protocol}//${a.host}`)}catch(a){t.warn("error in uniqueOriginsFromManifest",a)}};return(e.images??[]).forEach(r),(e.svgs??[]).forEach(r),(e.lotties??[]).forEach(r),(e.sprites??[]).forEach(r),Array.from(n)}const LS=({children:e,appToken:t,agentId:n,appRoot:r,logger:i,identityProvider:a})=>{const s=navigator.language;i.log("Brower language",s);const o=_S(s,i),{appCurrentLang:u,handleSetContextCurrentLang:c}=yS(Zr,o),d={appCurrentLang:u,setAppCurrentLang:c},f=mS(),{contextCompanySettings:p,contextInitialConversationState:h}=wS({agentId:n,appToken:t,onFetched:f.setHasFetchedSettings});return vS(p.companySettings,i),IS(p.companySettings?.agent?.display?.CSSRules,{id:`${n}`,target:r},f.appInternalContext.hasFetchedSettings,f.setHasDisplayedCss),x.jsx(x.Fragment,{children:x.jsx(ud.Provider,{value:a,children:x.jsx(Su.Provider,{value:i,children:x.jsx(Uh,{locale:u?.locale,messages:u?.translatedText,children:x.jsx(td.Provider,{value:d,children:x.jsx(Td.Provider,{value:f,children:x.jsx(rn.Provider,{value:p,children:x.jsx(od.Provider,{value:h,children:f.appInternalContext.hasDisplayedCSS&&e})})})})})})})})};var _n=(e=>(e.LAUNCHER="launcher",e.CHATBOX="chatbox",e))(_n||{});function DS({appToken:e,displayMode:t="launcher",agentId:n,appRoot:r,identityProvider:i,apiUrl:a}){const s=Sn();e||s.warn("appToken not defined in ai-client. Please see the documentation at URL_ERROR_IN_DOC");const o=ES(t);return s.log(`App boot in ${o} mode.`),x.jsx(Ey,{apiUrl:a,children:x.jsx("div",{className:"chatSystemWidget app-root",id:"chatSystemWidget",children:x.jsx(LS,{appToken:e,agentId:n,appRoot:r,logger:s,identityProvider:i,children:x.jsx(gS,{displayMode:o,appToken:e,agentId:n})})})})}const PS=`*, ::before, ::after {
173
173
  --tw-border-spacing-x: 0;
174
174
  --tw-border-spacing-y: 0;
175
175
  --tw-translate-x: 0;