@_solaris/messenger-widget 0.3.11 → 0.3.12

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.
@@ -53,4 +53,4 @@ ${i}`)}return a.join(`
53
53
  Je réponds en quelques secondes.`},isOddQuickLinks(){return this.quickLinks.length%2===1},quickLinksLayout(){return this.isOddQuickLinks?"wm-onb__qlist":"wm-onb__grid"},filteredThreads(){const t=this.query.trim().toLowerCase();return t?this.openThreads.filter(n=>(n.title||"").toLowerCase().includes(t)||(n.preview||"").toLowerCase().includes(t)):this.openThreads}},methods:{iconPath(t){return se[t]||se.link},formatTs(t){if(!t)return"";const n=new Date(t);if(Number.isNaN(n.getTime()))return"";const r=new Date;if(n.toDateString()===r.toDateString()){const o=String(n.getHours()).padStart(2,"0"),i=String(n.getMinutes()).padStart(2,"0");return`${o}h${i}`}if(r.getTime()-n.getTime()<7*864e5){const o=n.toLocaleDateString("fr-FR",{weekday:"short"});return o.charAt(0).toUpperCase()+o.slice(1)}return n.toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit"})}}},Kt={class:"wm-onb"},Wt={class:"wm-onb__hero"},Gt={class:"wm-onb__title"},Yt={class:"wm-onb__sub"},Xt={class:"wm-onb__cta"},Jt=["disabled"],Qt={key:0,class:"wm-onb__section"},Zt=["onClick"],en={class:"wm-onb__card-icon"},tn={width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},nn=["d"],rn={class:"wm-onb__card-body"},on={class:"wm-onb__card-title"},sn={key:0,class:"wm-onb__card-sub"},an={key:1,class:"wm-onb__section"},ln={class:"wm-onb__search"},cn={class:"wm-onb__list"},dn=["onClick"],un={key:0,class:"wm-onb__thread-dot","aria-label":"Non lu"},mn={class:"wm-onb__thread-body"},hn={class:"wm-onb__thread-title"},fn={class:"wm-onb__thread-preview"},pn={class:"wm-onb__thread-meta"},_n={key:0,class:"wm-onb__thread-time"},gn={key:0,class:"wm-onb__empty"};function vn(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar");return e.openBlock(),e.createElementBlock("div",Kt,[e.createElementVNode("div",Wt,[e.createVNode(i,{size:56,pulse:!0}),e.createElementVNode("div",Gt,e.toDisplayString(o.heroTitle),1),e.createElementVNode("div",Yt,e.toDisplayString(o.heroSub),1)]),e.createElementVNode("div",Xt,[e.createElementVNode("button",{type:"button",class:"wm-onb__startBtn",disabled:r.busy,onClick:n[0]||(n[0]=l=>t.$emit("start"))},[n[2]||(n[2]=e.createElementVNode("span",{class:"wm-onb__startIcon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M12 5v14M5 12h14"})])],-1)),e.createElementVNode("span",null,e.toDisplayString(r.busy?"…":"Commencer une conversation"),1)],8,Jt)]),r.quickLinks.length?(e.openBlock(),e.createElementBlock("div",Qt,[n[3]||(n[3]=e.createElementVNode("div",{class:"wm-onb__section-title"},"Accès rapide",-1)),e.createElementVNode("div",{class:e.normalizeClass(o.quickLinksLayout)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.quickLinks,(l,p)=>(e.openBlock(),e.createElementBlock("button",{key:p,type:"button",class:e.normalizeClass(["wm-onb__card",{"wm-onb__card--row":o.isOddQuickLinks}]),onClick:v=>t.$emit("select",l)},[e.createElementVNode("span",en,[(e.openBlock(),e.createElementBlock("svg",tn,[e.createElementVNode("path",{d:o.iconPath(l.icon)},null,8,nn)]))]),e.createElementVNode("span",rn,[e.createElementVNode("span",on,e.toDisplayString(l.label),1),l.description?(e.openBlock(),e.createElementBlock("span",sn,e.toDisplayString(l.description),1)):e.createCommentVNode("",!0)])],10,Zt))),128))],2)])):e.createCommentVNode("",!0),r.openThreads.length?(e.openBlock(),e.createElementBlock("div",an,[n[7]||(n[7]=e.createElementVNode("div",{class:"wm-onb__section-title"},"Conversations récentes",-1)),e.createElementVNode("div",ln,[n[4]||(n[4]=e.createElementVNode("span",{class:"wm-onb__searchIcon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M21 21l-4.35-4.35M11 17a6 6 0 100-12 6 6 0 000 12z"})])],-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[1]||(n[1]=l=>s.query=l),type:"text",placeholder:"Rechercher dans vos messages","aria-label":"Rechercher dans vos messages"},null,512),[[e.vModelText,s.query]])]),e.createElementVNode("div",cn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.filteredThreads,l=>(e.openBlock(),e.createElementBlock("button",{key:l.id,type:"button",class:"wm-onb__thread",onClick:p=>t.$emit("resume",l)},[e.createElementVNode("span",{class:e.normalizeClass(["wm-onb__thread-icon",{"wm-onb__thread-icon--inverted":!l.unread}])},[n[5]||(n[5]=e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M12 2 L13.5 9 L20 10.5 L13.5 12 L12 19 L10.5 12 L4 10.5 L10.5 9 Z",fill:"currentColor",opacity:"0.92"})],-1)),l.unread?(e.openBlock(),e.createElementBlock("span",un)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",mn,[e.createElementVNode("span",hn,e.toDisplayString(l.title),1),e.createElementVNode("span",fn,e.toDisplayString(l.preview),1)]),e.createElementVNode("span",pn,[o.formatTs(l._ts)?(e.openBlock(),e.createElementBlock("span",_n,e.toDisplayString(o.formatTs(l._ts)),1)):e.createCommentVNode("",!0),n[6]||(n[6]=e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",class:"wm-onb__thread-chev","aria-hidden":"true"},[e.createElementVNode("path",{d:"M5 12h14M13 5l7 7-7 7"})],-1))])],8,dn))),128)),o.filteredThreads.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",gn," Aucun résultat pour « "+e.toDisplayString(s.query)+" ». ",1))])])):e.createCommentVNode("",!0)])}const ge=N(qt,[["render",vn],["__scopeId","data-v-c85f6958"]]);function yn(t){return typeof t!="string"?"":t.replace(/`([^`]+)`/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(new RegExp("(?<!\\*)\\*([^*]+)\\*(?!\\*)","g"),"$1").replace(/__([^_]+)__/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/\s+/g," ").trim()}const kn={name:"WmActionResult",props:{state:{type:String,default:"success"},label:{type:String,required:!0},detail:{type:String,default:""}},computed:{detailText(){return yn(this.detail)}}},wn={class:"wm-result__icon","aria-hidden":"true"},bn={key:0,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.8","stroke-linecap":"round","stroke-linejoin":"round"},En={key:1,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.6","stroke-linecap":"round","stroke-linejoin":"round"},Cn={key:2,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.4","stroke-linecap":"round","stroke-linejoin":"round"},Bn={key:3,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},Nn={class:"wm-result__body"},Sn={class:"wm-result__label"},Vn={class:"wm-result__detail"};function An(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["wm-result",`wm-result--${r.state}`])},[e.createElementVNode("span",wn,[r.state==="success"?(e.openBlock(),e.createElementBlock("svg",bn,[...n[0]||(n[0]=[e.createElementVNode("path",{d:"M20 6L9 17l-5-5"},null,-1)])])):r.state==="rejected"?(e.openBlock(),e.createElementBlock("svg",En,[...n[1]||(n[1]=[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"},null,-1)])])):r.state==="awaiting"?(e.openBlock(),e.createElementBlock("svg",Cn,[...n[2]||(n[2]=[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),e.createElementVNode("polyline",{points:"12 7 12 12 15 14"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",Bn,[...n[3]||(n[3]=[e.createElementVNode("path",{d:"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"},null,-1),e.createElementVNode("line",{x1:"12",y1:"9",x2:"12",y2:"13"},null,-1),e.createElementVNode("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"},null,-1)])]))]),e.createElementVNode("span",Nn,[e.createElementVNode("span",Sn,e.toDisplayString(r.label),1),o.detailText?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[4]||(n[4]=e.createElementVNode("span",{class:"wm-result__sep","aria-hidden":"true"}," · ",-1)),e.createElementVNode("span",Vn,e.toDisplayString(o.detailText),1)],64)):e.createCommentVNode("",!0)])],2)}const ve=N(kn,[["render",An],["__scopeId","data-v-64a83fb8"]]),Mn={name:"WmArtifactFormResponse",props:{data:{type:Object,required:!0}},computed:{fields(){var t;return Array.isArray((t=this.data)==null?void 0:t.fields)?this.data.fields:[]}}},Tn={class:"wm-art wm-art--formResponse"},xn={class:"wm-art__head"},On={class:"wm-art__title"},In={class:"wm-art__body"},Dn={class:"wm-art__fieldLabel"};function Ln(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",Tn,[e.createElementVNode("div",xn,[e.createElementVNode("div",On,e.toDisplayString(r.data.title||"Formulaire"),1),n[0]||(n[0]=e.createElementVNode("span",{class:"wm-art__badge wm-art__badge--success"},[e.createElementVNode("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})]),e.createTextVNode(" Envoyé ")],-1))]),e.createElementVNode("div",In,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.fields,(i,l)=>(e.openBlock(),e.createElementBlock("div",{key:l,class:"wm-art__field"},[e.createElementVNode("div",Dn,e.toDisplayString(i.label),1),e.createElementVNode("div",{class:e.normalizeClass(["wm-art__fieldValue",{"wm-art__fieldValue--multi":i.multiline}])},e.toDisplayString(i.value),3)]))),128))])])}const ye=N(Mn,[["render",Ln],["__scopeId","data-v-ca24a9c9"]]),Rn={name:"WmArtifactInfoCard",props:{data:{type:Object,required:!0}},computed:{fields(){var t;return Array.isArray((t=this.data)==null?void 0:t.fields)?this.data.fields:[]},hasBody(){var t;return!!((t=this.data)!=null&&t.body)||this.fields.length>0}}},$n={class:"wm-art wm-art--infoCard"},Fn={key:0,class:"wm-art__image"},Pn=["src","alt"],jn={class:"wm-art__head"},Un={class:"wm-art__headMain"},zn={class:"wm-art__title"},Hn={key:0,class:"wm-art__subtitle"},qn={key:1,class:"wm-art__body"},Kn={key:0,class:"wm-art__text"},Wn={class:"wm-art__fieldLabel"};function Gn(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",$n,[r.data.image_url?(e.openBlock(),e.createElementBlock("figure",Fn,[e.createElementVNode("img",{src:r.data.image_url,alt:r.data.title||"",loading:"lazy"},null,8,Pn)])):e.createCommentVNode("",!0),e.createElementVNode("div",jn,[e.createElementVNode("div",Un,[e.createElementVNode("div",zn,e.toDisplayString(r.data.title),1),r.data.subtitle?(e.openBlock(),e.createElementBlock("div",Hn,e.toDisplayString(r.data.subtitle),1)):e.createCommentVNode("",!0)]),r.data.badge&&r.data.badge.label?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["wm-art__badge",`wm-art__badge--${r.data.badge.tone||"neutral"}`])},e.toDisplayString(r.data.badge.label),3)):e.createCommentVNode("",!0)]),o.hasBody?(e.openBlock(),e.createElementBlock("div",qn,[r.data.body?(e.openBlock(),e.createElementBlock("div",Kn,e.toDisplayString(r.data.body),1)):e.createCommentVNode("",!0),o.fields.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(o.fields,(i,l)=>(e.openBlock(),e.createElementBlock("div",{key:l,class:"wm-art__field"},[e.createElementVNode("div",Wn,e.toDisplayString(i.label),1),e.createElementVNode("div",{class:e.normalizeClass(["wm-art__fieldValue",{"wm-art__fieldValue--multi":i.multiline}])},e.toDisplayString(i.value),3)]))),128)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])}const ke=N(Rn,[["render",Gn],["__scopeId","data-v-d7369333"]]);function Yn(t){if(!t)return"";const n=new Date(t);if(Number.isNaN(n.getTime()))return t;const r=n.toLocaleDateString("fr-FR",{day:"numeric",month:"long",year:"numeric"}),a=n.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit"});return`${r} à ${a}`}const Xn={name:"WmArtifactTicket",props:{data:{type:Object,required:!0}},computed:{fields(){var t;return Array.isArray((t=this.data)==null?void 0:t.fields)?this.data.fields:[]},formattedDate(){var t;return Yn((t=this.data)==null?void 0:t.created_at)}},methods:{isPriority(t){return/priorit|^prio$/i.test(String(t||"").trim())},isDate(t){return/date|échéanc|echeanc|deadline|due|créé|cree/i.test(String(t||"").trim())},priorityLevel(t){const n=String(t||"").toLowerCase();return/high|haute|élev|elev|critic|critiq|urgent/.test(n)?3:/low|basse|faible|minor/.test(n)?1:2}}},Jn={class:"wm-art wm-art--ticket"},Qn={class:"wm-art__head wm-tk__head"},Zn={class:"wm-art__title wm-tk__title"},er={class:"wm-tk__sub"},tr={class:"wm-tk__ref"},nr={key:0,class:"wm-tk__text"},rr={key:0,class:"wm-art__body"},or={class:"wm-art__fieldLabel"},sr=["data-level"],ar={key:1,class:"wm-tk__date",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},ir={key:1,class:"wm-art__footer wm-tk__footer"};function lr(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",Jn,[e.createElementVNode("div",Qn,[e.createElementVNode("div",Zn,e.toDisplayString(r.data.title),1),e.createElementVNode("div",er,[e.createElementVNode("div",tr,[n[0]||(n[0]=e.createElementVNode("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 12a2 2 0 0 1 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v4a2 2 0 0 1 0 4v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 1-2-2z"}),e.createElementVNode("path",{d:"M13 5v2M13 17v2M13 11v2"})],-1)),e.createElementVNode("span",null,e.toDisplayString(r.data.reference),1)]),e.createElementVNode("span",{class:e.normalizeClass(["wm-art__badge","wm-tk__badge",`wm-art__badge--${r.data.status.tone||"neutral"}`])},[n[1]||(n[1]=e.createElementVNode("span",{class:"wm-tk__dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(r.data.status.label),1)],2)]),r.data.body?(e.openBlock(),e.createElementBlock("div",nr,e.toDisplayString(r.data.body),1)):e.createCommentVNode("",!0)]),o.fields.length?(e.openBlock(),e.createElementBlock("div",rr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.fields,(i,l)=>(e.openBlock(),e.createElementBlock("div",{key:l,class:"wm-art__field"},[e.createElementVNode("div",or,e.toDisplayString(i.label),1),e.createElementVNode("div",{class:e.normalizeClass(["wm-art__fieldValue",{"wm-art__fieldValue--multi":i.multiline}])},[o.isPriority(i.label)?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"wm-tk__prio","data-level":o.priorityLevel(i.value),width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true"},[...n[2]||(n[2]=[e.createElementVNode("rect",{x:"1",y:"8",width:"2",height:"3",rx:"0.5"},null,-1),e.createElementVNode("rect",{x:"5",y:"5",width:"2",height:"6",rx:"0.5"},null,-1),e.createElementVNode("rect",{x:"9",y:"2",width:"2",height:"9",rx:"0.5"},null,-1)])],8,sr)):o.isDate(i.label)?(e.openBlock(),e.createElementBlock("svg",ar,[...n[3]||(n[3]=[e.createElementVNode("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2"},null,-1),e.createElementVNode("path",{d:"M16 2v4M8 2v4M3 10h18"},null,-1)])])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(i.value),1)],2)]))),128))])):e.createCommentVNode("",!0),r.data.created_at?(e.openBlock(),e.createElementBlock("div",ir,[n[4]||(n[4]=e.createElementVNode("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2"}),e.createElementVNode("path",{d:"M16 2v4M8 2v4M3 10h18"})],-1)),e.createElementVNode("span",null,e.toDisplayString(o.formattedDate),1)])):e.createCommentVNode("",!0)])}const we=N(Xn,[["render",lr],["__scopeId","data-v-8b274eb7"]]),cr={form_response:ye,info_card:ke,ticket:we},dr={name:"WmArtifactRenderer",props:{artifact:{type:Object,required:!0}},computed:{component(){var n;const t=(n=this.artifact)==null?void 0:n.kind;return t&&cr[t]||null}}};function ur(t,n,r,a,s,o){return o.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),{key:0,data:r.artifact.data},null,8,["data"])):e.createCommentVNode("",!0)}const be=N(dr,[["render",ur]]),mr={name:"WmAttachmentPreview",inject:{signAttachmentFn:{default:null}},props:{attachment:{type:Object,required:!0}},data(){return{url:null,loading:!1}},computed:{kind(){var r,a;const t=(r=this.attachment)==null?void 0:r.type;if(t)return t;const n=(((a=this.attachment)==null?void 0:a.mime_type)||"").toLowerCase();return n.startsWith("image/")?"image":n.startsWith("audio/")?"audio":n.startsWith("video/")?"video":"file"},displayName(){var t,n,r;return((n=(t=this.attachment)==null?void 0:t.metadata)==null?void 0:n.name)||((r=this.attachment)==null?void 0:r.name)||this.guessNameFromPath()||"Pièce jointe"},sizeLabel(){var n;const t=(n=this.attachment)==null?void 0:n.size_bytes;return t?t<1024?`${t} o`:t<1024*1024?`${(t/1024).toFixed(0)} ko`:`${(t/(1024*1024)).toFixed(1)} Mo`:""}},watch:{"attachment.path":{handler(){this.refresh()},immediate:!0}},methods:{guessNameFromPath(){var r;return((((r=this.attachment)==null?void 0:r.path)||"").split("/").pop()||"").replace(/^[0-9a-f-]{8,}-/,"")},async refresh(){var t;if(!(!((t=this.attachment)!=null&&t.path)||!this.signAttachmentFn)){this.loading=!0;try{this.url=await this.signAttachmentFn(this.attachment.path)}finally{this.loading=!1}}},onFileClick(t){this.url||t.preventDefault()}}},hr=["href"],fr=["src","alt"],pr=["src"],_r=["src"],gr=["href","download"],vr={class:"wm-att__main"},yr={class:"wm-att__name"},kr={key:0,class:"wm-att__meta"},wr={key:0,class:"wm-att__spin","aria-hidden":"true"};function br(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["wm-att",["wm-att--"+(o.kind||"file")]])},[o.kind==="image"&&s.url?(e.openBlock(),e.createElementBlock("a",{key:0,href:s.url,target:"_blank",rel:"noopener",class:"wm-att__imgWrap"},[e.createElementVNode("img",{src:s.url,alt:o.displayName,loading:"lazy"},null,8,fr)],8,hr)):o.kind==="audio"&&s.url?(e.openBlock(),e.createElementBlock("audio",{key:1,src:s.url,controls:"",preload:"metadata"},null,8,pr)):o.kind==="video"&&s.url?(e.openBlock(),e.createElementBlock("video",{key:2,src:s.url,controls:"",preload:"metadata"},null,8,_r)):(e.openBlock(),e.createElementBlock("a",{key:3,class:"wm-att__file",href:s.url||"#",download:o.displayName,target:"_blank",rel:"noopener",onClick:n[0]||(n[0]=(...i)=>o.onFileClick&&o.onFileClick(...i))},[n[1]||(n[1]=e.createElementVNode("span",{class:"wm-att__icon"},[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),e.createElementVNode("path",{d:"M14 2v6h6"})])],-1)),e.createElementVNode("span",vr,[e.createElementVNode("span",yr,e.toDisplayString(o.displayName),1),o.sizeLabel?(e.openBlock(),e.createElementBlock("span",kr,e.toDisplayString(o.sizeLabel),1)):e.createCommentVNode("",!0)]),s.loading?(e.openBlock(),e.createElementBlock("span",wr)):e.createCommentVNode("",!0)],8,gr))],2)}const Ee=N(mr,[["render",br],["__scopeId","data-v-1cd1267b"]]);function Er(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Cr(t){return/^(https?:\/\/|mailto:|tel:)/i.test(String(t).trim())}const ae="";function K(t){let n=t;const r=[];return n=n.replace(/`([^`\n]+)`/g,(a,s)=>{const o=r.length;return r.push(s),`${ae}CODE${o}${ae}`}),n=n.replace(/\[([^\]\n]+)\]\(([^)\s]+)\)/g,(a,s,o)=>Cr(o)?`<a href="${o}" target="_blank" rel="noopener noreferrer">${s}</a>`:s),n=n.replace(/\*\*([^\n*][^\n]*?)\*\*/g,"<strong>$1</strong>"),n=n.replace(/__([^\n_][^\n]*?)__/g,"<u>$1</u>"),n=n.replace(/~~([^\n~][^\n]*?)~~/g,"<s>$1</s>"),n=n.replace(/(^|[^\w*])\*([^\n*]+?)\*(?!\w)/g,"$1<em>$2</em>"),n=n.replace(/(^|[^\w_])_([^\n_]+?)_(?!\w)/g,"$1<em>$2</em>"),n=n.replace(/CODE(\d+)/g,(a,s)=>`<code class="wm-md-code">${r[+s]}</code>`),n}function Ce(t){if(!t)return"";const n=Er(t).split(`
54
54
  `),r=[];let a=0;for(;a<n.length;){const o=n[a];if(/^\s*```([\w-]*)\s*$/.exec(o)){a++;const v=[];for(;a<n.length&&!/^\s*```\s*$/.test(n[a]);)v.push(n[a]),a++;a<n.length&&a++,r.push({type:"block",html:`<pre class="wm-md-pre"><code>${v.join(`
55
55
  `)}</code></pre>`});continue}if(/^\s*[-*]\s+/.test(o)){const v=[];for(;a<n.length;){const E=/^\s*[-*]\s+(.*)$/.exec(n[a]);if(!E)break;v.push(E[1]),a++}const y=v.map(E=>`<li>${K(E)}</li>`).join("");r.push({type:"block",html:`<ul class="wm-md-ul">${y}</ul>`});continue}const l=/^\s*(\d+)\.\s+(.*)$/.exec(o);if(l){const v=parseInt(l[1],10),y=[l[2]];for(a++;a<n.length;){const k=/^\s*\d+\.\s+(.*)$/.exec(n[a]);if(!k)break;y.push(k[1]),a++}const E=y.map(k=>`<li>${K(k)}</li>`).join(""),S=v!==1?` start="${v}"`:"";r.push({type:"block",html:`<ol class="wm-md-ol"${S}>${E}</ol>`});continue}const p=/^(#{1,6})\s+(.*)$/.exec(o);if(p){const v=p[1].length;r.push({type:"block",html:`<h${v} class="wm-md-h wm-md-h${v}">${K(p[2])}</h${v}>`}),a++;continue}r.push({type:"text",html:K(o)}),a++}let s="";for(let o=0;o<r.length;o++){const i=r[o];s+=i.html;const l=r[o+1];l&&i.type!=="block"&&l.type!=="block"&&(s+=`
56
- `)}return s}const Br={name:"WmBubble",props:{role:{type:String,default:"ai"},text:{type:String,default:""}},computed:{rendered(){return Ce(this.text)}}},Nr=["innerHTML"];function Sr(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["wm-bubble","wm-bubble--"+r.role])},[e.renderSlot(t.$slots,"default",{},()=>[e.createElementVNode("span",{innerHTML:o.rendered},null,8,Nr)],!0)],2)}const Be=N(Br,[["render",Sr],["__scopeId","data-v-5c9e9f2b"]]),Vr={name:"WmTyping"},Ar={class:"wm-typing"};function Mr(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",Ar,[...n[0]||(n[0]=[e.createElementVNode("span",{style:{"animation-delay":"0s"}},null,-1),e.createElementVNode("span",{style:{"animation-delay":"0.2s"}},null,-1),e.createElementVNode("span",{style:{"animation-delay":"0.4s"}},null,-1)])])}const Ne=N(Vr,[["render",Mr],["__scopeId","data-v-df2447fd"]]);function U(t){return t?t.client_msg_id||t.id:""}const Tr={transferred_to_human:"Conversation transférée à un humain",assigned:"{name} a rejoint la conversation",unassigned:"L'agent a quitté la conversation",resolved:"Conversation résolue",reopened:"Conversation rouverte",idle:"Conversation en pause"},xr=80,Or=200,Ir={name:"WmMessageList",components:{AIAvatar:j,HumanAvatar:te,Bubble:Be,Typing:Ne,ActionResult:ve,AttachmentPreview:Ee,ArtifactRenderer:be},props:{messages:{type:Array,default:()=>[]},streamingActive:{type:Boolean,default:!1},dateLabel:{type:String,default:""},conversationId:{type:[String,Number],default:null},loadingMore:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},unreadAnchorId:{type:Number,default:null},unreadBoundaryTs:{type:String,default:""}},emits:["load-more"],data(){return{silentFades:!1,widthByKey:Object.freeze({})}},computed:{historyExhausted(){return!this.hasMore&&!this.loadingMore&&this.messages.length>=20},groups(){var r,a,s,o;const t=[];for(const i of this.messages){const l=this.roleOf(i);if(l==="system"){if(((r=i==null?void 0:i.payload)==null?void 0:r.event)==="action_admin_pending"){const y=t[t.length-1];y&&y.role==="ai"?y.messages.push(i):t.push({key:`g-${U(i)}`,role:"ai",agentName:"",agentAvatarUrl:null,messages:[i],items:[]});continue}t.push({key:`sys-${U(i)}`,role:l,messages:[i],items:[],systemLabel:this.systemLabel(i)});continue}const p=t[t.length-1];p&&p.role===l&&(l==="ai"||p.agentName===(((a=i==null?void 0:i.author)==null?void 0:a.name)||""))?p.messages.push(i):t.push({key:`g-${U(i)}`,role:l,agentName:((s=i==null?void 0:i.author)==null?void 0:s.name)||"",agentAvatarUrl:((o=i==null?void 0:i.author)==null?void 0:o.avatar_url)||null,messages:[i],items:[]})}for(const i of t){if(i.role==="system")continue;const l=[];for(const p of i.messages)for(const v of this.itemsOf(p))l.push(v);i.items=l}const n=[];for(const i of t){if(i.role!=="system"&&!i.items.length)continue;const l=n[n.length-1];if(l&&l.role!=="system"&&l.role===i.role&&(i.role==="ai"||l.agentName===i.agentName)){l.messages.push(...i.messages),l.items.push(...i.items);continue}n.push(i)}return n},unreadGroupKey(){if(this.unreadAnchorId==null)return null;const t=this.unreadAnchorId,n=this.unreadBoundaryTs;for(const r of this.groups){if(r.role==="user"||r.role==="system"||!r.items.length)continue;const a=r.messages[0];if(!a)continue;const s=R(a.id);if(s!=null&&!(s<=t)&&!(n&&a.created_at&&a.created_at>n))return r.key}return null}},watch:{messages:{handler:"snapshotAndRestore",deep:!0},loadingMore(t){t||(this._pendingLoadMore=!1),this.silentFades=!0,clearTimeout(this._silenceTimer),t||(this._silenceTimer=setTimeout(()=>{this.silentFades=!1},250)),this.snapshotAndRestore()},streamingActive:"snapshotAndRestore"},mounted(){this._lastSeenConvId=this.conversationId,this.scrollToBottom(),this._measureFrame=null,this._ro=new ResizeObserver(()=>this.scheduleMeasure()),this.$refs.scrollEl&&this._ro.observe(this.$refs.scrollEl),this.$nextTick(()=>this.measureRows())},beforeUnmount(){var t;(t=this._ro)==null||t.disconnect(),this._measureFrame&&cancelAnimationFrame(this._measureFrame),clearTimeout(this._silenceTimer)},updated(){this.scheduleMeasure()},methods:{messageKey:U,isAtBottom(t){return t.scrollHeight-t.scrollTop-t.clientHeight<=xr},onScroll(){const t=this.$refs.scrollEl;t&&(this.loadingMore||!this.hasMore||this._pendingLoadMore||t.scrollTop<=Or&&(this._pendingLoadMore=!0,this.$emit("load-more")))},snapshotAndRestore(){const t=this.$refs.scrollEl;if(!t||this._scrollSnap)return;const n=this._lastSeenConvId!==this.conversationId;this._lastSeenConvId=this.conversationId;const r=this.isAtBottom(t);let a=null;if(!n&&!r){const o=this.pickAnchor(t);if(o!=null&&o.el){const i=t.getBoundingClientRect().top;a={el:o.el,relY:o.el.getBoundingClientRect().top-i}}}const s={forceBottom:n,wasPinned:r,anchor:a};this._scrollSnap=s,this.$nextTick(()=>{if(this._scrollSnap=null,s.forceBottom||s.wasPinned){t.scrollTop=t.scrollHeight;return}if(!s.anchor)return;const o=()=>{var v;const i=s.anchor;if(!((v=i.el)!=null&&v.isConnected))return;const p=i.el.getBoundingClientRect().top-t.getBoundingClientRect().top-i.relY;Math.abs(p)>.5&&(t.scrollTop+=p)};o(),requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})})},pickAnchor(t){const n=t.scrollTop;let r=null;for(const a of t.children)if(a.classList.contains("wm-list__group")&&(r||(r=a),a.offsetTop+a.offsetHeight>=n))return{el:a,offsetTop:a.offsetTop};return r?{el:r,offsetTop:r.offsetTop}:null},roleOf(t){var r,a;if((t==null?void 0:t.type)==="system"||((r=t==null?void 0:t.payload)==null?void 0:r.type)==="system")return"system";const n=(a=t==null?void 0:t.author)==null?void 0:a.type;return n==="user"?"user":n==="agent_human"?"human":"ai"},roleLabel(t){return t.role==="human"?t.agentName||"Agent":"Assistant IA"},itemsOf(t){var n;if(!t)return[];if(t.type==="system"&&((n=t==null?void 0:t.payload)==null?void 0:n.event)==="action_admin_pending")return[{message:t,partKey:"main",renderAs:"admin-pending",kind:{top:"bubble",bottom:"bubble"}}];if(t.type==="action"&&t.payload&&t.payload.state!=="pending"){const r=[{message:t,partKey:"main",renderAs:"action",kind:{top:"bubble",bottom:"bubble"}}];return this.actionArtifact(t)&&r.push({message:t,partKey:"artifact",renderAs:"artifact-of-action",kind:{top:"card",bottom:"card"}}),r}return this.artifactOf(t)?[{message:t,partKey:"main",renderAs:"artifact",kind:{top:"card",bottom:"card"}}]:t.text_md||this.attachmentsOf(t).length?[{message:t,partKey:"main",renderAs:"bubble",kind:{top:"bubble",bottom:"bubble"}}]:[]},cornersFor(t,n){var $,F,O;const r=t.items,a=($=r[n])==null?void 0:$.kind,s=(F=r[n-1])==null?void 0:F.kind,o=(O=r[n+1])==null?void 0:O.kind,i=t.role==="user",l=14,p=4,v=s==null?void 0:s.bottom,y=o==null?void 0:o.top,E=this.widthByKey[this.rowKeyOf(t,n)],S=this.widthByKey[this.rowKeyOf(t,n-1)],k=this.widthByKey[this.rowKeyOf(t,n+1)],x=.5,w=(P,L,I)=>P!=null&&E!=null?P+x>=E:L===I||L==="card"&&I==="bubble";let M=l,V=l,T=l,D=l;return i?(v&&(V=p),(y||!o)&&(T=p),v&&w(S,v,a==null?void 0:a.top)&&(M=p),y&&w(k,y,a==null?void 0:a.bottom)&&(D=p)):(v&&(M=p),(y||!o)&&(D=p),v&&w(S,v,a==null?void 0:a.top)&&(V=p),y&&w(k,y,a==null?void 0:a.bottom)&&(T=p)),{tl:M,tr:V,br:T,bl:D}},cornersStyle(t,n){if(t.items.length<2)return null;const r=this.cornersFor(t,n);return{"--wm-r-tl":`${r.tl}px`,"--wm-r-tr":`${r.tr}px`,"--wm-r-br":`${r.br}px`,"--wm-r-bl":`${r.bl}px`}},rowKeyOf(t,n){var a;const r=(a=t==null?void 0:t.items)==null?void 0:a[n];return r?`${U(r.message)}-${r.partKey}`:""},scheduleMeasure(){this._measureFrame||(this._measureFrame=requestAnimationFrame(()=>{this._measureFrame=null,this.measureRows()}))},measureRows(){const t=this.$refs.scrollEl;if(!t)return;const n={};for(const o of t.querySelectorAll(".wm-list__row[data-row-key]")){const i=o.dataset.rowKey;if(!i)continue;const l=o.querySelector(".wm-bubble, .wm-result, .wm-art, .wm-list__body");if(!l)continue;const p=l.getBoundingClientRect().width;p>0&&(n[i]=p)}const r=this.widthByKey,a=Object.keys(r),s=Object.keys(n);if(a.length===s.length){let o=!0;for(const i of s)if(Math.abs((r[i]??0)-n[i])>.5){o=!1;break}if(o)return}this.widthByKey=Object.freeze(n)},lastTimeOf(t){const n=t.items[t.items.length-1],r=(n==null?void 0:n.message)||t.messages[t.messages.length-1];if(!(r!=null&&r.created_at))return"";try{return ee(new Date(r.created_at))}catch{return""}},hasTrailingOverlay(t){if(!t.messages.length)return!1;const n=t.messages[t.messages.length-1],r=t.items[t.items.length-1];return!!n&&(r==null?void 0:r.message)!==n},attachmentsOf(t){var r;const n=(r=t==null?void 0:t.payload)==null?void 0:r.attachments;return Array.isArray(n)?n:[]},artifactOf(t){var r;const n=(r=t==null?void 0:t.metadata)==null?void 0:r.artifact;return!n||typeof n!="object"||typeof n.kind!="string"?null:n},actionLabel(t){var n;return((n=t==null?void 0:t.payload)==null?void 0:n.name)||(t==null?void 0:t.text_md)||"Action"},actionDetail(t){var r,a,s,o,i,l;const n=t==null?void 0:t.payload;return n?n.state==="success"?((r=n.success)==null?void 0:r.summary)||((s=(a=n.success)==null?void 0:a.metadata)==null?void 0:s.description)||"":n.state==="rejected"?((o=n.rejected)==null?void 0:o.reason)||"Action annulée par l'utilisateur.":n.state==="failure"&&(((i=n.failure)==null?void 0:i.summary)||((l=n.failure)==null?void 0:l.error))||"":""},actionArtifact(t){var r,a;const n=(a=(r=t==null?void 0:t.payload)==null?void 0:r.success)==null?void 0:a.artifact;return!n||typeof n!="object"||typeof n.kind!="string"?null:n},systemLabel(t){var s,o,i;const n=(s=t==null?void 0:t.payload)==null?void 0:s.event,r=Tr[n]||(t==null?void 0:t.text_md)||"Mise à jour de la conversation",a=((o=t==null?void 0:t.metadata)==null?void 0:o.agent_name)||((i=t==null?void 0:t.author)==null?void 0:i.name)||"";return r.replace("{name}",a||"Un agent")},scrollToBottom(){const t=this.$refs.scrollEl;t&&(t.scrollTop=t.scrollHeight)}}},Dr={key:0,class:"wm-list__loadMore",role:"status","aria-live":"polite"},Lr={key:1,class:"wm-list__historyEnd"},Rr={key:2,class:"wm-list__sep"},$r={class:"wm-list__sep-label"},Fr={key:0,class:"wm-list__sep wm-list__sep--unread"},Pr={key:0,class:"wm-list__sysep"},jr={class:"wm-list__sysep-label"},Ur=["data-row-key"],zr={key:0,class:"wm-list__avatarSlot"},Hr={key:5,class:"wm-list__body"},qr={key:0},Kr={key:1,"aria-hidden":"true"},Wr={key:2},Gr={key:3,class:"wm-list__row wm-list__row--ai fade-up"},Yr={class:"wm-list__avatarSlot"};function Xr(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar"),l=e.resolveComponent("HumanAvatar"),p=e.resolveComponent("ActionResult"),v=e.resolveComponent("ArtifactRenderer"),y=e.resolveComponent("Bubble"),E=e.resolveComponent("AttachmentPreview"),S=e.resolveComponent("Typing");return e.openBlock(),e.createElementBlock("div",{ref:"scrollEl",class:e.normalizeClass(["wm-list",{"wm-list--silent":s.silentFades}]),onScrollPassive:n[0]||(n[0]=(...k)=>o.onScroll&&o.onScroll(...k))},[r.loadingMore?(e.openBlock(),e.createElementBlock("div",Dr,[...n[1]||(n[1]=[e.createElementVNode("span",{class:"wm-list__loadMore-spinner","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"wm-list__loadMore-lbl"},"Chargement de l'historique…",-1)])])):o.historyExhausted?(e.openBlock(),e.createElementBlock("div",Lr,"Début de la conversation")):e.createCommentVNode("",!0),r.dateLabel?(e.openBlock(),e.createElementBlock("div",Rr,[n[2]||(n[2]=e.createElementVNode("div",{class:"wm-list__line"},null,-1)),e.createElementVNode("span",$r,e.toDisplayString(r.dateLabel),1),n[3]||(n[3]=e.createElementVNode("div",{class:"wm-list__line"},null,-1))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.groups,(k,x)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.key},[k.key===o.unreadGroupKey?(e.openBlock(),e.createElementBlock("div",Fr,[...n[4]||(n[4]=[e.createElementVNode("div",{class:"wm-list__line wm-list__line--unread"},null,-1),e.createElementVNode("span",{class:"wm-list__sep-label wm-list__sep-label--unread"},"Non lus",-1),e.createElementVNode("div",{class:"wm-list__line wm-list__line--unread"},null,-1)])])):e.createCommentVNode("",!0),k.role==="system"||k.items.length?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["wm-list__group","wm-list__group--"+k.role])},[k.role==="system"?(e.openBlock(),e.createElementBlock("div",Pr,[n[5]||(n[5]=e.createElementVNode("div",{class:"wm-list__line wm-list__line--strong"},null,-1)),e.createElementVNode("span",jr,e.toDisplayString(k.systemLabel),1),n[6]||(n[6]=e.createElementVNode("div",{class:"wm-list__line wm-list__line--strong"},null,-1))])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.items,(w,M)=>(e.openBlock(),e.createElementBlock("div",{key:`${o.messageKey(w.message)}-${w.partKey}`,"data-row-key":`${o.messageKey(w.message)}-${w.partKey}`,class:e.normalizeClass(["wm-list__row fade-up",["wm-list__row--"+k.role,{"is-pending":w.message._pending,"is-failed":w.message._failed}]]),style:e.normalizeStyle(o.cornersStyle(k,M))},[k.role!=="user"?(e.openBlock(),e.createElementBlock("div",zr,[M===k.items.length-1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[k.role==="ai"?(e.openBlock(),e.createBlock(i,{key:0,size:26,tail:!0})):(e.openBlock(),e.createBlock(l,{key:1,name:k.agentName,"avatar-url":k.agentAvatarUrl,size:26,tail:!0},null,8,["name","avatar-url"]))],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),w.renderAs==="action"?(e.openBlock(),e.createBlock(p,{key:1,state:w.message.payload.state,label:o.actionLabel(w.message),detail:o.actionDetail(w.message)},null,8,["state","label","detail"])):w.renderAs==="admin-pending"?(e.openBlock(),e.createBlock(p,{key:2,state:"awaiting",label:"Demande d'approbation envoyée",detail:w.message.text_md||""},null,8,["detail"])):w.renderAs==="artifact-of-action"?(e.openBlock(),e.createBlock(v,{key:3,artifact:o.actionArtifact(w.message)},null,8,["artifact"])):w.renderAs==="artifact"?(e.openBlock(),e.createBlock(v,{key:4,artifact:o.artifactOf(w.message)},null,8,["artifact"])):(e.openBlock(),e.createElementBlock("div",Hr,[w.message.text_md?(e.openBlock(),e.createBlock(y,{key:0,role:k.role,text:w.message.text_md},null,8,["role","text"])):e.createCommentVNode("",!0),o.attachmentsOf(w.message).length?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["wm-list__atts",{"wm-list__atts--align-end":k.role==="user"}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.attachmentsOf(w.message),(V,T)=>(e.openBlock(),e.createBlock(E,{key:`${o.messageKey(w.message)}-att-${T}`,attachment:V},null,8,["attachment"]))),128))],2)):e.createCommentVNode("",!0)]))],14,Ur))),128)),(k.role!=="user"||o.lastTimeOf(k))&&!o.hasTrailingOverlay(k)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["wm-list__meta",{"wm-list__meta--right":k.role==="user"}])},[k.role!=="user"?(e.openBlock(),e.createElementBlock("span",qr,e.toDisplayString(o.roleLabel(k)),1)):e.createCommentVNode("",!0),k.role!=="user"&&o.lastTimeOf(k)?(e.openBlock(),e.createElementBlock("span",Kr,"·")):e.createCommentVNode("",!0),o.lastTimeOf(k)?(e.openBlock(),e.createElementBlock("span",Wr,e.toDisplayString(o.lastTimeOf(k)),1)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],64))],2)):e.createCommentVNode("",!0)],64))),128)),r.streamingActive?(e.openBlock(),e.createElementBlock("div",Gr,[e.createElementVNode("div",Yr,[e.createVNode(i,{size:26,tail:!0})]),e.createVNode(S)])):e.createCommentVNode("",!0)],34)}const Se=N(Ir,[["render",Xr],["__scopeId","data-v-946babe3"]]),z=typeof navigator<"u"&&!!navigator.mediaDevices&&typeof navigator.mediaDevices.getDisplayMedia=="function",Y=typeof window<"u"&&typeof window.MediaRecorder<"u";function Ve(){return Y&&["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm","video/mp4"].find(n=>{var r,a;return(a=(r=window.MediaRecorder).isTypeSupported)==null?void 0:a.call(r,n)})||""}function Ae({audio:t}){return{video:!0,audio:!!t,selfBrowserSurface:"include",surfaceSwitching:"include",systemAudio:t?"include":"exclude"}}function Jr(t){return t?t.startsWith("image/")?"image":t.startsWith("video/")?"video":"file":"file"}async function Me(){if(!z)return null;let t;try{t=await navigator.mediaDevices.getDisplayMedia(Ae({audio:!1}))}catch(n){return(n==null?void 0:n.name)!=="NotAllowedError"&&console.error("[media] screenshot picker",n),null}try{return await Qr(t)}catch(n){return console.error("[media] screenshot capture",n),null}finally{t.getTracks().forEach(n=>{n.stop()})}}async function Qr(t){const n=document.createElement("video");n.muted=!0,n.playsInline=!0,n.srcObject=t,await n.play(),await new Promise(l=>requestAnimationFrame(l));const r=n.videoWidth||1280,a=n.videoHeight||720,s=document.createElement("canvas");s.width=r,s.height=a,s.getContext("2d").drawImage(n,0,0,r,a);const o=await new Promise((l,p)=>{s.toBlob(v=>v?l(v):p(new Error("toBlob failed")),"image/png")}),i=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);return new File([o],`capture-${i}.png`,{type:"image/png"})}async function Te(t={}){var v;if(!z||!Y)return null;let n;try{n=await navigator.mediaDevices.getDisplayMedia(Ae({audio:!0}))}catch(y){return(y==null?void 0:y.name)!=="NotAllowedError"&&console.error("[media] record picker",y),null}const r=Ve();let a;try{a=r?new window.MediaRecorder(n,{mimeType:r}):new window.MediaRecorder(n)}catch(y){return console.error("[media] recorder init",y),n.getTracks().forEach(E=>{E.stop()}),null}const s=[];let o=null,i=!1;a.addEventListener("dataavailable",y=>{y.data&&y.data.size>0&&s.push(y.data)}),a.addEventListener("stop",()=>{var y,E;if(o&&clearInterval(o),n.getTracks().forEach(S=>{S.stop()}),s.length){const S=a.mimeType||r||"video/webm",k=new Blob(s,{type:S}),x=/mp4/.test(S)?"mp4":"webm",w=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),M=new File([k],`ecran-${w}.${x}`,{type:S});(y=t.onfinalize)==null||y.call(t,M)}else(E=t.oncancel)==null||E.call(t)}),n.getVideoTracks().forEach(y=>{y.addEventListener("ended",()=>l(),{once:!0})});function l(){if(!i&&(i=!0,a.state!=="inactive"))try{a.stop()}catch(y){console.error("[media] recorder stop",y)}}try{a.start(1e3)}catch(y){return console.error("[media] recorder start",y),n.getTracks().forEach(E=>{E.stop()}),null}(v=t.onstart)==null||v.call(t);const p=Date.now();return o=setInterval(()=>{var y;(y=t.ontick)==null||y.call(t,Date.now()-p)},500),{stop:l,get state(){return a.state}}}const Zr=[{action:"file",label:"Joindre un fichier",path:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"},{action:"screenshot",label:"Capture d'écran",path:"M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z M12 17a4 4 0 100-8 4 4 0 000 8z"},{action:"record",label:"Enregistrer l'écran",path:"M23 7l-7 5 7 5V7z M1 5a2 2 0 012-2h12a2 2 0 012 2v14a2 2 0 01-2 2H3a2 2 0 01-2-2V5z"}],eo={name:"WmComposer",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Écrivez votre message…"},disabled:{type:Boolean,default:!1},attachLabel:{type:String,default:"Joindre"}},emits:["update:modelValue","send","attach"],data(){return{local:this.modelValue,attachOpen:!1,recording:!1,recordingElapsed:0,recorder:null}},computed:{canSend(){return!this.disabled&&!!this.local.trim()},attachItems(){return Zr.map(t=>({...t,disabled:t.action==="screenshot"&&!z||t.action==="record"&&(!z||!Y)}))},recordingElapsedLabel(){const t=Math.floor(this.recordingElapsed/1e3),n=Math.floor(t/60),r=t%60;return`${n}:${r.toString().padStart(2,"0")}`}},watch:{modelValue(t){t!==this.local&&(this.local=t,this.$nextTick(()=>this.autosize()))},local(t){this.$emit("update:modelValue",t)}},mounted(){this.autosize()},beforeUnmount(){if(this.recorder)try{this.recorder.stop()}catch{}},methods:{focus(){const t=this.$refs.inputEl;if(!(!t||this.disabled))try{t.focus({preventScroll:!0})}catch{t.focus()}},onSubmit(){if(!this.canSend)return;const t=this.local.trim();this.local="",this.$emit("send",t),this.$nextTick(()=>this.autosize())},onKeydown(t){t.key==="Enter"&&!t.shiftKey&&!t.ctrlKey&&!t.metaKey&&!t.isComposing&&(t.preventDefault(),this.onSubmit())},autosize(){const t=this.$refs.inputEl;t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`)},onFile(t){const n=Array.from(t.target.files||[]);for(const r of n)this.$emit("attach",r);t.target.value=""},onAttachAction(t){this.attachOpen=!1,t==="file"?this.pickFile():t==="screenshot"?this.captureScreenshot():t==="record"&&this.startRecording()},pickFile(){var t;(t=this.$refs.fileEl)==null||t.click()},async captureScreenshot(){if(this.disabled)return;const t=await Me();t&&this.$emit("attach",t)},async startRecording(){if(this.recording||this.disabled)return;this.recordingElapsed=0;const t=await Te({onstart:()=>{this.recording=!0},ontick:n=>{this.recordingElapsed=n},onfinalize:n=>{this.$emit("attach",n),this.recording=!1,this.recordingElapsed=0,this.recorder=null},oncancel:()=>{this.recording=!1,this.recordingElapsed=0,this.recorder=null}});t&&(this.recorder=t)},stopRecording(){if(this.recorder)try{this.recorder.stop()}catch(t){console.error("[composer] stop recording",t)}}}},to={class:"wm-compose-wrap"},no={key:0,class:"wm-rec"},ro={class:"wm-rec__lbl"},oo={key:1,class:"wm-compose__menu",role:"menu"},so=["disabled","onClick"],ao={class:"wm-compose__menuIcon"},io={viewBox:"0 0 24 24",width:"14",height:"14","aria-hidden":"true"},lo=["d"],co=["placeholder","disabled"],uo={class:"wm-compose__actions"},mo=["title","aria-label","disabled"],ho=["disabled"];function fo(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",to,[s.recording?(e.openBlock(),e.createElementBlock("div",no,[n[8]||(n[8]=e.createElementVNode("span",{class:"wm-rec__dot","aria-hidden":"true"},null,-1)),e.createElementVNode("span",ro,"Enregistrement · "+e.toDisplayString(o.recordingElapsedLabel),1),e.createElementVNode("button",{type:"button",class:"wm-rec__stop",onClick:n[0]||(n[0]=(...i)=>o.stopRecording&&o.stopRecording(...i))},"Arrêter")])):e.createCommentVNode("",!0),e.createElementVNode("form",{class:e.normalizeClass(["wm-compose",{"has-attach":s.attachOpen}]),onSubmit:n[7]||(n[7]=e.withModifiers((...i)=>o.onSubmit&&o.onSubmit(...i),["prevent"]))},[e.createElementVNode("input",{ref:"fileEl",type:"file",hidden:"",multiple:"",onChange:n[1]||(n[1]=(...i)=>o.onFile&&o.onFile(...i))},null,544),s.attachOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"wm-compose__overlay",onClick:n[2]||(n[2]=i=>s.attachOpen=!1)})):e.createCommentVNode("",!0),s.attachOpen?(e.openBlock(),e.createElementBlock("div",oo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.attachItems,i=>(e.openBlock(),e.createElementBlock("button",{key:i.action,type:"button",class:"wm-compose__menuItem",disabled:i.disabled,onClick:l=>o.onAttachAction(i.action)},[e.createElementVNode("span",ao,[(e.openBlock(),e.createElementBlock("svg",io,[e.createElementVNode("path",{d:i.path,stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,8,lo)]))]),e.createElementVNode("span",null,e.toDisplayString(i.label),1)],8,so))),128))])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("textarea",{ref:"inputEl","onUpdate:modelValue":n[3]||(n[3]=i=>s.local=i),class:"wm-compose__input",rows:"3",placeholder:r.placeholder,disabled:r.disabled,onKeydown:n[4]||(n[4]=(...i)=>o.onKeydown&&o.onKeydown(...i)),onInput:n[5]||(n[5]=(...i)=>o.autosize&&o.autosize(...i))},null,40,co),[[e.vModelText,s.local]]),e.createElementVNode("div",uo,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["wm-compose__icon",{"is-open":s.attachOpen}]),title:r.attachLabel,"aria-label":r.attachLabel,disabled:s.recording,onClick:n[6]||(n[6]=i=>s.attachOpen=!s.attachOpen)},[...n[9]||(n[9]=[e.createElementVNode("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)])],10,mo),e.createElementVNode("button",{type:"submit",class:e.normalizeClass(["wm-compose__send",{"is-empty":!o.canSend}]),disabled:!o.canSend,"aria-label":"Envoyer"},[...n[10]||(n[10]=[e.createElementVNode("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"})],-1)])],10,ho)])],34)])}const xe=N(eo,[["render",fo],["__scopeId","data-v-14fa9ec0"]]),po={name:"WmSuggestionChips",props:{items:{type:Array,default:()=>[]},baseDelay:{type:Number,default:360},stepDelay:{type:Number,default:90}},emits:["select"],computed:{batchKey(){return this.items.map(t=>(t==null?void 0:t.label)||(t==null?void 0:t.text)||"").join("§")}}},_o=["onClick"];function go(t,n,r,a,s,o){return r.items.length?(e.openBlock(),e.createElementBlock("div",{key:o.batchKey,class:"wm-chips"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,(i,l)=>(e.openBlock(),e.createElementBlock("button",{key:l,type:"button",class:"wm-chip",style:e.normalizeStyle({animationDelay:r.baseDelay+l*r.stepDelay+"ms"}),onClick:p=>t.$emit("select",i)},e.toDisplayString(i.label),13,_o))),128))])):e.createCommentVNode("",!0)}const Oe=N(po,[["render",go],["__scopeId","data-v-55aa529d"]]),vo={name:"WmApprovalCard",components:{AIAvatar:j},props:{action:{type:String,required:!0},detail:{type:String,default:""},callbacks:{type:Array,default:()=>[]}},emits:["callback"],computed:{approveCallback(){return this.callbacks.find(t=>t.id==="approve"||t.style==="primary")||this.callbacks[0]},rejectCallback(){return this.callbacks.find(t=>t.id==="reject"||t.style==="danger"||t.style==="neutral")||(this.callbacks.length>1?this.callbacks[1]:null)},approveId(){var t;return(t=this.approveCallback)==null?void 0:t.id},rejectId(){var t;return(t=this.rejectCallback)==null?void 0:t.id},approveLabel(){var t;return((t=this.approveCallback)==null?void 0:t.label)||"Autoriser"},rejectLabel(){var t;return((t=this.rejectCallback)==null?void 0:t.label)||"Refuser"}}},yo={class:"wm-approval"},ko={class:"wm-approval__head"},wo={class:"wm-approval__icon"},bo={class:"wm-approval__main"},Eo={class:"wm-approval__title"},Co={key:0,class:"wm-approval__detail"},Bo={class:"wm-approval__actions"};function No(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar");return e.openBlock(),e.createElementBlock("div",yo,[e.createElementVNode("div",ko,[e.createElementVNode("div",wo,[e.createVNode(i,{size:24})]),e.createElementVNode("div",bo,[e.createElementVNode("div",Eo,e.toDisplayString(r.action),1),r.detail?(e.openBlock(),e.createElementBlock("div",Co,e.toDisplayString(r.detail),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Bo,[o.rejectId?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-approval__btn wm-approval__btn--neutral",onClick:n[0]||(n[0]=l=>t.$emit("callback",o.rejectId))},e.toDisplayString(o.rejectLabel),1)):e.createCommentVNode("",!0),o.approveId?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"wm-approval__btn wm-approval__btn--primary",onClick:n[1]||(n[1]=l=>t.$emit("callback",o.approveId))},e.toDisplayString(o.approveLabel),1)):e.createCommentVNode("",!0)])])}const Ie=N(vo,[["render",No],["__scopeId","data-v-b1be139c"]]);let ie=0;const So=new Set(["text","textarea","number","boolean","select","multiselect","date"]),Vo={name:"WmFormCard",components:{AIAvatar:j},props:{form:{type:Object,required:!0},readOnly:{type:Boolean,default:!1},initialValues:{type:Object,default:null}},emits:["submit"],data(){return ie+=1,{_uid:ie,values:{},busy:!1,error:""}},computed:{normalizedFields(){var n;return(Array.isArray((n=this.form)==null?void 0:n.fields)?this.form.fields:[]).filter(r=>!(!(r!=null&&r.key)||!(r!=null&&r.label)||!So.has(r==null?void 0:r.type)||(r.type==="select"||r.type==="multiselect")&&(!Array.isArray(r.options)||r.options.length===0)))}},created(){this.resetValues()},methods:{resetValues(){const t=this.initialValues&&typeof this.initialValues=="object"?this.initialValues:{},n={};for(const r of this.normalizedFields){if(t[r.key]!==void 0){n[r.key]=t[r.key];continue}r.type==="boolean"?n[r.key]=!1:r.type==="multiselect"?n[r.key]=[]:n[r.key]=""}this.values=n,this.error=""},toggleMulti(t,n,r){const a=Array.isArray(this.values[t])?this.values[t].slice():[],s=a.indexOf(n);r&&s===-1?a.push(n):!r&&s!==-1&&a.splice(s,1),this.values={...this.values,[t]:a}},validate(){for(const t of this.normalizedFields){if(!t.required)continue;const n=this.values[t.key];if(t.type!=="boolean"){if(t.type==="multiselect"){if(!Array.isArray(n)||n.length===0)return`« ${t.label} » est requis.`;continue}if(n==null||n==="")return`« ${t.label} » est requis.`}}return""},async onSubmit(){if(this.readOnly||this.busy)return;const t=this.validate();if(t){this.error=t;return}this.error="",this.busy=!0;try{await this.$emit("submit",{values:this.values})}finally{this.busy=!1}}}},Ao={class:"wm-form"},Mo={class:"wm-form__head"},To={class:"wm-form__icon"},xo={class:"wm-form__main"},Oo={class:"wm-form__title"},Io={key:0,class:"wm-form__detail"},Do=["for"],Lo={key:0,class:"wm-form__req","aria-hidden":"true"},Ro=["id","onUpdate:modelValue","placeholder","required","disabled"],$o=["id","onUpdate:modelValue","placeholder","required","disabled"],Fo=["id","onUpdate:modelValue","placeholder","required","disabled"],Po=["id","onUpdate:modelValue","required","disabled"],jo={key:4,class:"wm-form__bool"},Uo=["id","onUpdate:modelValue","disabled"],zo=["id","onUpdate:modelValue","required","disabled"],Ho={value:"",disabled:""},qo=["value"],Ko={key:6,class:"wm-form__multi"},Wo=["value","checked","disabled","onChange"],Go={key:0,class:"wm-form__err"},Yo=["disabled"],Xo={key:0,class:"wm-form__spinner","aria-hidden":"true"},Jo={key:2,class:"wm-form__doneLbl"};function Qo(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar");return e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("div",Mo,[e.createElementVNode("div",To,[e.createVNode(i,{size:24})]),e.createElementVNode("div",xo,[e.createElementVNode("div",Oo,e.toDisplayString(r.form.title||"Formulaire"),1),r.form.description?(e.openBlock(),e.createElementBlock("div",Io,e.toDisplayString(r.form.description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("form",{class:"wm-form__body",onSubmit:n[0]||(n[0]=e.withModifiers((...l)=>o.onSubmit&&o.onSubmit(...l),["prevent"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.normalizedFields,l=>(e.openBlock(),e.createElementBlock("div",{key:l.key,class:"wm-form__field"},[e.createElementVNode("label",{for:`wm-f-${s._uid}-${l.key}`,class:"wm-form__label"},[e.createTextVNode(e.toDisplayString(l.label),1),l.required?(e.openBlock(),e.createElementBlock("span",Lo,"*")):e.createCommentVNode("",!0)],8,Do),l.type==="text"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"text",class:"wm-form__input",placeholder:l.placeholder||"",required:l.required,disabled:r.readOnly||s.busy},null,8,Ro)),[[e.vModelText,s.values[l.key]]]):l.type==="textarea"?e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{key:1,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,class:"wm-form__textarea",rows:"3",placeholder:l.placeholder||"",required:l.required,disabled:r.readOnly||s.busy},null,8,$o)),[[e.vModelText,s.values[l.key]]]):l.type==="number"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:2,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"number",class:"wm-form__input",placeholder:l.placeholder||"",required:l.required,disabled:r.readOnly||s.busy},null,8,Fo)),[[e.vModelText,s.values[l.key],void 0,{number:!0}]]):l.type==="date"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:3,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"date",class:"wm-form__input",required:l.required,disabled:r.readOnly||s.busy},null,8,Po)),[[e.vModelText,s.values[l.key]]]):l.type==="boolean"?(e.openBlock(),e.createElementBlock("label",jo,[e.withDirectives(e.createElementVNode("input",{id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"checkbox",disabled:r.readOnly||s.busy},null,8,Uo),[[e.vModelCheckbox,s.values[l.key]]]),e.createElementVNode("span",null,e.toDisplayString(l.placeholder||"Oui"),1)])):l.type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:5,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,class:"wm-form__select",required:l.required,disabled:r.readOnly||s.busy},[e.createElementVNode("option",Ho,e.toDisplayString(l.placeholder||"Choisir…"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,p=>(e.openBlock(),e.createElementBlock("option",{key:p.value,value:p.value},e.toDisplayString(p.label),9,qo))),128))],8,zo)),[[e.vModelSelect,s.values[l.key]]]):l.type==="multiselect"?(e.openBlock(),e.createElementBlock("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,p=>(e.openBlock(),e.createElementBlock("label",{key:p.value,class:"wm-form__multiItem"},[e.createElementVNode("input",{type:"checkbox",value:p.value,checked:Array.isArray(s.values[l.key])&&s.values[l.key].includes(p.value),disabled:r.readOnly||s.busy,onChange:v=>o.toggleMulti(l.key,p.value,v.target.checked)},null,40,Wo),e.createElementVNode("span",null,e.toDisplayString(p.label),1)]))),128))])):e.createCommentVNode("",!0)]))),128)),s.error?(e.openBlock(),e.createElementBlock("div",Go,e.toDisplayString(s.error),1)):e.createCommentVNode("",!0),r.readOnly?(e.openBlock(),e.createElementBlock("div",Jo,"Réponse envoyée")):(e.openBlock(),e.createElementBlock("button",{key:1,type:"submit",class:"wm-form__submit",disabled:s.busy},[s.busy?(e.openBlock(),e.createElementBlock("span",Xo)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(s.busy?"Envoi…":r.form.submit_label||"Envoyer"),1)],8,Yo))],32)])}const De=N(Vo,[["render",Qo],["__scopeId","data-v-64b40f76"]]),Zo={name:"WmFeedback",props:{busy:{type:Boolean,default:!1},done:{type:Boolean,default:!1}},emits:["submit"],data(){return{sel:null,options:[{v:1,e:"😞",l:"Pas bien"},{v:2,e:"😐",l:"Moyen"},{v:3,e:"🙂",l:"Bien"},{v:4,e:"😄",l:"Super"},{v:5,e:"🤩",l:"Excellent"}]}},methods:{onSend(){!this.sel||this.busy||this.$emit("submit",{rating:this.sel})}}},es={class:"wm-fb"},ts={class:"wm-fb__row"},ns=["onClick"],rs={class:"wm-fb__emoji"},os={class:"wm-fb__label"},ss=["disabled"],as={key:1,class:"wm-fb__done"};function is(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",es,[r.done?(e.openBlock(),e.createElementBlock("div",as,[...n[3]||(n[3]=[e.createStaticVNode('<div class="wm-fb__check" data-v-6f45ff3b><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-6f45ff3b><path d="M20 6L9 17l-5-5" data-v-6f45ff3b></path></svg></div><div class="wm-fb__doneTitle" data-v-6f45ff3b>Merci pour votre retour !</div><div class="wm-fb__doneSub" data-v-6f45ff3b>Votre avis a bien été pris en compte.</div>',3)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[1]||(n[1]=e.createElementVNode("div",{class:"wm-fb__title"},"Comment s'est passée cette conversation ?",-1)),n[2]||(n[2]=e.createElementVNode("div",{class:"wm-fb__sub"},"Votre avis nous aide à améliorer l'assistant.",-1)),e.createElementVNode("div",ts,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.options,i=>(e.openBlock(),e.createElementBlock("button",{key:i.v,type:"button",class:e.normalizeClass(["wm-fb__opt",{"is-selected":s.sel===i.v}]),onClick:l=>s.sel=i.v},[e.createElementVNode("span",rs,e.toDisplayString(i.e),1),e.createElementVNode("span",os,e.toDisplayString(i.l),1)],10,ns))),128))]),e.createElementVNode("button",{type:"button",class:"wm-fb__send",disabled:!s.sel||r.busy,onClick:n[0]||(n[0]=(...i)=>o.onSend&&o.onSend(...i))},e.toDisplayString(r.busy?"Envoi…":"Envoyer mon avis"),9,ss)],64))])}const Le=N(Zo,[["render",is],["__scopeId","data-v-6f45ff3b"]]),ls={name:"WmMoreMenu",props:{canRename:{type:Boolean,default:!0},canExport:{type:Boolean,default:!0},soundEnabled:{type:Boolean,default:!0},browserNotifEnabled:{type:Boolean,default:!1},statusUrl:{type:String,default:""},helpUrl:{type:String,default:""}},emits:["close","action","sound-toggle","browser-notif-toggle"],data(){return{soundOn:this.soundEnabled,browserNotifOn:this.browserNotifEnabled}},watch:{soundEnabled(t){this.soundOn=!!t},browserNotifEnabled(t){this.browserNotifOn=!!t}},methods:{emit(t){this.$emit("action",t)},toggleSound(){this.soundOn=!this.soundOn,this.$emit("sound-toggle",this.soundOn)},toggleBrowserNotif(){this.browserNotifOn=!this.browserNotifOn,this.$emit("browser-notif-toggle",this.browserNotifOn)}}},cs={class:"wm-mm"},ds={class:"wm-mm__pop",role:"menu"},us={key:0,class:"wm-mm__section"},ms={key:1,class:"wm-mm__sep"},hs={class:"wm-mm__section"},fs={class:"wm-mm__section"};function ps(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",cs,[e.createElementVNode("div",{class:"wm-mm__scrim",onClick:n[0]||(n[0]=i=>t.$emit("close"))}),e.createElementVNode("div",ds,[r.canRename||r.canExport?(e.openBlock(),e.createElementBlock("div",us,[r.canRename?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-mm__item",onClick:n[1]||(n[1]=i=>o.emit("rename"))},[...n[7]||(n[7]=[e.createStaticVNode('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M12 20h9" data-v-3a73911b></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Modifier le titre</span>',2)])])):e.createCommentVNode("",!0),r.canExport?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"wm-mm__item",onClick:n[2]||(n[2]=i=>o.emit("export"))},[...n[8]||(n[8]=[e.createStaticVNode('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Exporter la transcription</span><span class="wm-mm__hint" data-v-3a73911b>.txt</span>',3)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.canRename||r.canExport?(e.openBlock(),e.createElementBlock("div",ms)):e.createCommentVNode("",!0),e.createElementVNode("div",hs,[e.createElementVNode("button",{type:"button",class:"wm-mm__item",onClick:n[3]||(n[3]=(...i)=>o.toggleSound&&o.toggleSound(...i))},[n[10]||(n[10]=e.createStaticVNode('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M11 5L6 9H2v6h4l5 4V5z" data-v-3a73911b></path><path d="M15.54 8.46a5 5 0 010 7.07M19.07 4.93a10 10 0 010 14.14" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Son</span>',2)),e.createElementVNode("span",{class:e.normalizeClass(["wm-mm__toggle",{"wm-mm__toggle--on":s.soundOn}])},[...n[9]||(n[9]=[e.createElementVNode("span",{class:"wm-mm__knob"},null,-1)])],2)]),e.createElementVNode("button",{type:"button",class:"wm-mm__item",onClick:n[4]||(n[4]=(...i)=>o.toggleBrowserNotif&&o.toggleBrowserNotif(...i))},[n[12]||(n[12]=e.createElementVNode("span",{class:"wm-mm__icon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 10-12 0v3.2c0 .5-.2 1-.6 1.4L4 17h5m6 0a3 3 0 11-6 0"})])],-1)),n[13]||(n[13]=e.createElementVNode("span",{class:"wm-mm__label"},"Notifications navigateur",-1)),e.createElementVNode("span",{class:e.normalizeClass(["wm-mm__toggle",{"wm-mm__toggle--on":s.browserNotifOn}])},[...n[11]||(n[11]=[e.createElementVNode("span",{class:"wm-mm__knob"},null,-1)])],2)])]),n[16]||(n[16]=e.createElementVNode("div",{class:"wm-mm__sep"},null,-1)),e.createElementVNode("div",fs,[r.statusUrl?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-mm__item",onClick:n[5]||(n[5]=i=>o.emit("status"))},[...n[14]||(n[14]=[e.createElementVNode("span",{class:"wm-mm__icon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM10 6v4l3 2"})])],-1),e.createElementVNode("span",{class:"wm-mm__label"},"Statut des services",-1)])])):e.createCommentVNode("",!0),r.helpUrl?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"wm-mm__item",onClick:n[6]||(n[6]=i=>o.emit("help"))},[...n[15]||(n[15]=[e.createElementVNode("span",{class:"wm-mm__icon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M9 11a3 3 0 116 0c0 2-3 2-3 5M12 19h.01M12 22a10 10 0 110-20 10 10 0 010 20z"})])],-1),e.createElementVNode("span",{class:"wm-mm__label"},"Centre d'aide",-1)])])):e.createCommentVNode("",!0)])])])}const Re=N(ls,[["render",ps],["__scopeId","data-v-3a73911b"]]),_s={name:"WmRenameDialog",props:{title:{type:String,default:"Modifier le titre"},initialValue:{type:String,default:""},placeholder:{type:String,default:"Titre de la conversation"}},emits:["close","submit"],data(){return{value:this.initialValue||""}},computed:{canSubmit(){const t=(this.value||"").trim();return!!t&&t!==(this.initialValue||"").trim()}},mounted(){this.$nextTick(()=>{const t=this.$refs.input;if(t){t.focus();try{t.select()}catch{}}})},methods:{onSubmit(){this.canSubmit&&this.$emit("submit",this.value.trim())}}},gs={class:"wm-dialog"},vs={class:"wm-dialog__card",role:"dialog","aria-modal":"true"},ys={class:"wm-dialog__head"},ks={class:"wm-dialog__title"},ws={class:"wm-dialog__body"},bs=["placeholder"],Es={class:"wm-dialog__actions"},Cs=["disabled"];function Bs(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",gs,[e.createElementVNode("div",{class:"wm-dialog__scrim",onClick:n[0]||(n[0]=i=>t.$emit("close"))}),e.createElementVNode("div",vs,[e.createElementVNode("div",ys,[e.createElementVNode("div",ks,e.toDisplayString(r.title),1),e.createElementVNode("button",{type:"button",class:"wm-dialog__close","aria-label":"Fermer",onClick:n[1]||(n[1]=i=>t.$emit("close"))},[...n[7]||(n[7]=[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),e.createElementVNode("div",ws,[e.withDirectives(e.createElementVNode("input",{ref:"input","onUpdate:modelValue":n[2]||(n[2]=i=>s.value=i),type:"text",class:"wm-dialog__input",placeholder:r.placeholder,maxlength:120,onKeydown:[n[3]||(n[3]=e.withKeys(e.withModifiers((...i)=>o.onSubmit&&o.onSubmit(...i),["prevent"]),["enter"])),n[4]||(n[4]=e.withKeys(e.withModifiers(i=>t.$emit("close"),["prevent"]),["esc"]))]},null,40,bs),[[e.vModelText,s.value]])]),e.createElementVNode("div",Es,[e.createElementVNode("button",{type:"button",class:"wm-dialog__btn",onClick:n[5]||(n[5]=i=>t.$emit("close"))},"Annuler"),e.createElementVNode("button",{type:"button",class:"wm-dialog__btn wm-dialog__btn--primary",disabled:!o.canSubmit,onClick:n[6]||(n[6]=(...i)=>o.onSubmit&&o.onSubmit(...i))},"Enregistrer",8,Cs)])])])}const Ns=N(_s,[["render",Bs],["__scopeId","data-v-4f4b37c9"]]),le="ww-messenger-tokens",Ss={name:"Messenger",components:{Launcher:fe,Header:_e,Onboarding:ge,MessageList:Se,Composer:xe,SuggestionChips:Oe,ApprovalCard:Ie,FormCard:De,Feedback:Le,MoreMenu:Re,RenameDialog:Ns},mixins:[Qe,ot,st,it],provide(){return{signAttachmentFn:t=>{var n,r;return((r=(n=this.store)==null?void 0:n.signAttachment)==null?void 0:r.call(n,t))||null}}},props:{baseUrl:{type:String,default:me},widgetId:{type:String,default:""},userId:{type:String,default:""},userHash:{type:String,default:""},customer:{type:Object,default:null},displayMode:{type:String,default:"floating"},devtools:{type:Boolean,default:!1}},data(){return{transport:null,store:null,isOpen:!1,draft:"",busy:!1,bootError:null,pendingAttachments:[],feedbackBusy:!1,feedbackDone:!1,convOpenedAt:0,moreOpen:!1,renameDialogOpen:!1,draftConv:null,activeConvId:null,showOnboarding:!1,dismissedPeeks:{},floatHeight:0,floatRO:null}},computed:{isEditor(){return!!this.devtools},isEmbedded(){return this.displayMode==="embedded"},error(){var t;return this.bootError||((t=this.s)==null?void 0:t.error)||null},canBoot(){return!!(this.baseUrl&&this.widgetId&&this.userId&&this.userHash)},s(){var t;return((t=this.store)==null?void 0:t.state)||null},ready(){var t;return!!((t=this.s)!=null&&t.ready)},allConversations(){var n;const t=(n=this.s)==null?void 0:n.conversations;return Array.isArray(t)?t:[]},drawerConversations(){var n;const t=((n=this.s)==null?void 0:n.messagesByConv)||{};return this.allConversations.map(r=>{var l;const a=t[r.id]||[],s=R(r.last_read_message_id);let o=0,i=null;for(let p=a.length-1;p>=0;p--){const v=a[p];if(!v)continue;if(((l=v.author)==null?void 0:l.type)==="user")break;const y=R(v.id);if(y!=null){if(s!=null&&y<=s)break;!i&&v.author&&(i=v.author),o++}}return{...r,_preview:Ge(r,a),_unread:o>0,_unreadCount:o,_lastAuthor:i}})},unreadCount(){return this.drawerConversations.filter(t=>t._unread).length},openThreads(){var n;const t=((n=this.s)==null?void 0:n.messagesByConv)||{};return this.drawerConversations.filter(r=>r.status!=="resolved").map(r=>({id:r.id,title:r.name||"Nouvelle conversation",preview:r._preview||"Nouveau message",unread:!!r._unread,_ts:oe(r,t[r.id]||[])})).sort((r,a)=>r._ts<a._ts?1:r._ts>a._ts?-1:0)},latestUnreads(){var r;const t=((r=this.s)==null?void 0:r.messagesByConv)||{},n=[];for(const a of this.drawerConversations){if(!a._unread)continue;const s=oe(a,t[a.id]||[]),o=a._lastAuthor,i=!o||o.type==="agent_ia",l=(o==null?void 0:o.name)||(i?this.agentName:"")||"",p=(o==null?void 0:o.avatar_url)||(i?this.agentAvatarUrl:null);n.push({convId:a.id,preview:a._preview||"Vous avez un nouveau message",ts:s,count:a._unreadCount||1,senderName:l,senderAvatarUrl:p})}return n.sort((a,s)=>a.ts<s.ts?1:a.ts>s.ts?-1:0),n},launcherPeeks(){if(this.isOpen||this.isEmbedded)return[];const t=this.dismissedPeeks||{};return this.latestUnreads.filter(n=>t[n.convId]!==n.ts)},isViewingThread(){return(this.isOpen||this.isEmbedded)&&!!this.currentConv},currentConv(){if(this.draftConv)return this.draftConv;if(this.showOnboarding)return null;const t=this.allConversations;if(!t.length)return null;if(this.activeConvId!=null){const n=t.find(r=>r.id===this.activeConvId);if(n)return n}return t[0]||null},canBack(){return!!this.currentConv},statusUrl(){var r;const t=(r=this.widget)==null?void 0:r.quick_links;if(!Array.isArray(t))return"";const n=t.find(a=>a.icon==="status"&&a.url);return(n==null?void 0:n.url)||""},helpUrl(){var r;const t=(r=this.widget)==null?void 0:r.quick_links;if(!Array.isArray(t))return"";const n=t.find(a=>(a.icon==="chat"||a.icon==="help")&&a.url);return(n==null?void 0:n.url)||""},widget(){var t,n;return((n=(t=this.s)==null?void 0:t.config)==null?void 0:n.widget)||null},widgetWelcomeMessage(){var t;return((t=this.widget)==null?void 0:t.welcome_message)||""},agentName(){var t,n,r;return((r=(n=(t=this.s)==null?void 0:t.config)==null?void 0:n.agent)==null?void 0:r.name)||""},agentAvatarUrl(){var t,n,r;return((r=(n=(t=this.s)==null?void 0:t.config)==null?void 0:n.agent)==null?void 0:r.avatar_url)||null},quickLinks(){var n;const t=(n=this.widget)==null?void 0:n.quick_links;return Array.isArray(t)?t:[]},teamMembers(){var n;const t=(n=this.widget)==null?void 0:n.team_members;return Array.isArray(t)?t:[]},responseLabel(){var t;return((t=this.widget)==null?void 0:t.response_time_label)||""},humanMessageAuthor(){var n,r,a;if(!this.currentConv)return null;const t=((n=this.s.messagesByConv)==null?void 0:n[this.currentConv.id])||[];for(let s=t.length-1;s>=0;s--)if(((a=(r=t[s])==null?void 0:r.author)==null?void 0:a.type)==="agent_human")return t[s].author;return null},humanAgentName(){var t;return((t=this.humanMessageAuthor)==null?void 0:t.name)||""},humanAgentAvatarUrl(){var t;return((t=this.humanMessageAuthor)==null?void 0:t.avatar_url)||null},isEscalated(){return!!this.humanMessageAuthor},isWaitingHuman(){var n;const t=(n=this.currentConv)==null?void 0:n.status;return t==="waiting"||t==="handled"},headerTitle(){var t,n;return((t=this.currentConv)==null?void 0:t.name)||((n=this.widget)==null?void 0:n.name)||"Nouvelle conversation"},composerPlaceholder(){return this.isEscalated&&this.humanAgentName?`Répondre à ${this.humanAgentName.split(" ")[0]}…`:this.isWaitingHuman?"Un agent prend le relais…":"Écrivez votre message…"},displayedMessages(){const t=this.currentConv;if(!t)return[];const n=this.revealedAt;return(this.s.messagesByConv[t.id]||[]).filter(r=>{var a,s,o,i,l;return(r==null?void 0:r.type)==="action"&&((a=r==null?void 0:r.payload)==null?void 0:a.state)==="pending"||G(r)&&!(n[r.id]>0)?!1:(r==null?void 0:r.type)==="action"||(r==null?void 0:r.type)==="system"||((s=r==null?void 0:r.payload)==null?void 0:s.type)==="system"||Array.isArray((o=r==null?void 0:r.payload)==null?void 0:o.attachments)&&r.payload.attachments.length||(i=r==null?void 0:r.metadata)!=null&&i.artifact||(l=r==null?void 0:r.metadata)!=null&&l.form?!0:typeof(r==null?void 0:r.text_md)=="string"&&r.text_md.trim().length>0})},streamingActive(){var r,a,s;const t=this.currentConv;return t?Object.keys(((r=this.s)==null?void 0:r.streamingByMsgId)||{}).length>0?!0:this.actionInFlight?!1:(((s=(a=this.s)==null?void 0:a.messagesByConv)==null?void 0:s[t.id])||[]).some(o=>G(o)&&!(this.revealedAt[o.id]>0)):!1},currentConvMessages(){var n,r,a;const t=(n=this.currentConv)==null?void 0:n.id;return t?((a=(r=this.s)==null?void 0:r.messagesByConv)==null?void 0:a[t])||[]:[]},pendingApproval(){return!this.currentConv||!this.store||this.actionInFlight?null:this.store.getPendingApproval(this.currentConv.id)},approvalReady(){return this.pendingApproval?this.pendingApproval.id===this.approvalLatchId?!0:!(this.streamingActive||!this.approvalSettled):!1},approvalTitle(){var t,n,r;return((n=(t=this.pendingApproval)==null?void 0:t.payload)==null?void 0:n.name)||((r=this.pendingApproval)==null?void 0:r.text_md)||"Confirmer l'action"},approvalDetail(){var a,s,o,i,l,p;const t=(o=(s=(a=this.pendingApproval)==null?void 0:a.payload)==null?void 0:s.pending)==null?void 0:o.user_explanation;if(typeof t=="string"&&t.trim())return t.trim();const n=(p=(l=(i=this.pendingApproval)==null?void 0:i.payload)==null?void 0:l.pending)==null?void 0:p.prepared_params;if(!n||typeof n!="object")return"";const r=Object.entries(n);return r.length?r.slice(0,2).map(([v,y])=>`${v}: ${y}`).join(" · "):""},actionInFlight(){var t,n;return!this.currentConv||!this.store?null:((n=(t=this.store).getActionInFlight)==null?void 0:n.call(t,this.currentConv.id))||null},actionInFlightName(){var n;const t=this.actionInFlight;return t?((n=t.payload)==null?void 0:n.name)||t.text_md||"Action":""},suggestions(){return!this.currentConv||!this.store?[]:this.streamingActive?[]:this.pendingForm?[]:this.store.getLatestSuggestions(this.currentConv.id)},pendingForm(){var t,n;return!this.currentConv||!this.store||this.pendingApproval||this.actionInFlight||this.streamingActive||!this.approvalSettled?null:((n=(t=this.store).getLatestForm)==null?void 0:n.call(t,this.currentConv.id))||null},showFeedback(){var n;const t=this.currentConv;return t?this.feedbackDone?!0:t.status!=="resolved"?!1:!((n=t.metadata)!=null&&n.feedback):!1},floatVisible(){return this.approvalReady||!!this.pendingForm||this.showFeedback||this.suggestions.length>0},dateLabel(){var r,a,s;const t=this.currentConv;let n=new Date;if(t){const i=((s=(((a=(r=this.s)==null?void 0:r.messagesByConv)==null?void 0:a[t.id])||[]).find(l=>l==null?void 0:l.created_at))==null?void 0:s.created_at)||t.created_at;if(i){const l=new Date(i);Number.isNaN(l.getTime())||(n=l)}}return`Aujourd'hui · ${ee(n)}`},paginationState(){var r,a,s;const t=(r=this.currentConv)==null?void 0:r.id,n=t?(s=(a=this.s)==null?void 0:a.paginationByConv)==null?void 0:s[t]:null;return{loading:!!(n!=null&&n.loading),hasMore:!!(n!=null&&n.nextCursor)}}},watch:{latestUnreads:{handler(t){const n=new Set(t.map(i=>i.convId)),r=this.dismissedPeeks||{},a=Object.keys(r);if(!a.length)return;const s={};let o=!1;for(const i of a)n.has(i)?s[i]=r[i]:o=!0;o&&(this.dismissedPeeks=s)},deep:!0},"currentConv.id":{handler(t){var n;this.resetRevealQueue(),this.convOpenedAt=Date.now(),this.moreOpen=!1,this.renameDialogOpen=!1,this.resetApprovalPacing(),this.isViewingThread&&(this.unreadAnchorId=R((n=this.currentConv)==null?void 0:n.last_read_message_id),this.unreadBoundaryTs=t?new Date().toISOString():"")},immediate:!0},isViewingThread(t,n){var r;t&&!n?(this.unreadAnchorId=R((r=this.currentConv)==null?void 0:r.last_read_message_id),this.unreadBoundaryTs=new Date().toISOString()):t||(this.unreadAnchorId=null,this.unreadBoundaryTs="")},pendingApproval:{handler(t,n){if(t&&!n){const r=t!=null&&t.created_at?Date.parse(t.created_at):NaN;if(!(Number.isFinite(r)&&r>=this.convOpenedAt)){this.resetApprovalPacing();return}this.bumpApprovalSettle(2600)}else!t&&n&&this.resetApprovalPacing()},immediate:!1},streamingActive(t,n){t!==n&&this.pendingApproval&&this.pendingApproval.id!==this.approvalLatchId&&this.bumpApprovalSettle()},approvalReady(t){t&&this.pendingApproval&&(this.approvalLatchId=this.pendingApproval.id)},floatVisible:{handler(t){this.$nextTick(()=>this.syncFloatObserver(t))},immediate:!0},currentConvMessages(t){this.paceMessages(t),(this.isOpen||this.isEmbedded)&&this.currentConv&&this.markConvRead(this.currentConv)}},async mounted(){if(typeof document<"u"&&!document.getElementById(le)){const t=document.createElement("style");t.id=le,t.textContent=ue,document.head.appendChild(t)}await this.boot(),this.isEmbedded&&this.store&&await this.open()},beforeUnmount(){this.cancelReveals(),this.disconnectFloatRO(),this.resetApprovalPacing(),this.teardownNotifications(),this.store&&this.store.destroy()},methods:{async boot(){if(!this.canBoot){console.warn("[messenger] boot skipped — missing creds");return}try{this.transport=e.markRaw(ce({baseUrl:this.baseUrl,widgetId:this.widgetId,userId:this.userId,userHash:this.userHash})),this.store=e.markRaw(de(this.transport)),this.hydrateNotifPref(),this.setupNotifications(),await this.store.start(),this.customer&&typeof this.customer=="object"&&await this.store.applyCustomer(this.customer)}catch(t){console.error("[ww-messenger] bootstrap failed",t),this.bootError=(t==null?void 0:t.message)||String(t)}},async refresh(){this.store&&this.store.destroy(),this.cancelReveals(),this.teardownNotifications(),this.convOpenedAt=0,this.transport=null,this.store=null,this.isOpen=!1,this.draft="",this.busy=!1,this.bootError=null,this.pendingAttachments=[],this.feedbackBusy=!1,this.feedbackDone=!1,this.moreOpen=!1,this.renameDialogOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!1,await this.boot(),this.isEmbedded&&this.store&&await this.open()},syncFloatObserver(t){if(this.disconnectFloatRO(),!t){this.floatHeight=0;return}const n=this.$refs.floatEl;if(n){if(typeof ResizeObserver>"u"){this.floatHeight=Math.ceil(n.getBoundingClientRect().height+8);return}this.floatRO=new ResizeObserver(r=>{const a=r[0];if(!a)return;const s=Math.ceil(a.contentRect.height+8);s!==this.floatHeight&&(this.floatHeight=s,this.$nextTick(()=>{var o,i;(i=(o=this.$refs.messageList)==null?void 0:o.scrollToBottom)==null||i.call(o)}))}),this.floatRO.observe(n)}},disconnectFloatRO(){if(this.floatRO){try{this.floatRO.disconnect()}catch{}this.floatRO=null}},async open(){this.isOpen=!0,this.store&&this.store.setPanelOpen(!0);const t=this.currentConv;if(t&&!t._draft){this.activeConvId==null&&(this.activeConvId=t.id);try{await this.store.openConversation(t.id)}catch(n){console.error("[ww-messenger] load messages failed",n)}this.markConvRead(t)}},close(){this.isOpen=!1,this.store&&this.store.setPanelOpen(!1)},async openFromPeek(t){var r,a;const n=t||((r=this.latestUnreads[0])==null?void 0:r.convId);n&&n!==((a=this.currentConv)==null?void 0:a.id)&&(this.draftConv=null,this.activeConvId=n,this.showOnboarding=!1),await this.open()},dismissPeek(t){const n=this.latestUnreads.find(r=>r.convId===t);n&&(this.dismissedPeeks={...this.dismissedPeeks,[t]:n.ts})},startConv(){this.draftConv={id:"__draft__",_draft:!0,name:"",created_at:new Date().toISOString()},this.activeConvId=null,this.showOnboarding=!1,this.focusComposer()},async ensureRealConv(){const t=this.currentConv;if(!t)return null;if(!t._draft)return t;if(this.busy)return null;this.busy=!0;try{const n=await this.store.createConversation({});return this.draftConv=null,this.activeConvId=n.id,await this.store.openConversation(n.id),this.markConvRead(n),n}catch(n){return console.error("[ww-messenger] create conv failed",n),this.bootError=(n==null?void 0:n.message)||String(n),null}finally{this.busy=!1}},focusComposer(){this.$nextTick(()=>{var t;return(t=this.$refs.composer)==null?void 0:t.focus()})},toggleMore(){this.moreOpen=!this.moreOpen},goHome(){this.moreOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!0},async onDrawerPick(t){if(!(t!=null&&t.id)||!this.store)return;this.draftConv=null,this.activeConvId=t.id,this.showOnboarding=!1;try{await this.store.openConversation(t.id)}catch(r){console.error("[ww-messenger] open conv failed",r)}const n=this.allConversations.find(r=>r.id===t.id);n&&this.markConvRead(n)},async onMoreAction(t){var n,r;switch(this.moreOpen=!1,t){case"rename":this.openRenameDialog();break;case"export":Je(this.currentConv,this.currentConv?(r=(n=this.s)==null?void 0:n.messagesByConv)==null?void 0:r[this.currentConv.id]:[]);break;case"status":if(this.statusUrl)try{window.open(this.statusUrl,"_blank","noopener")}catch{}break;case"help":if(this.helpUrl)try{window.open(this.helpUrl,"_blank","noopener")}catch{}break}},openRenameDialog(){const t=this.currentConv;!t||t._draft||(this.renameDialogOpen=!0)},async onRenameSubmit(t){const n=this.currentConv;if(this.renameDialogOpen=!1,!n||n._draft||!this.store)return;const r=(t||"").trim();if(!(!r||r===n.name))try{await this.store.patchConversation(n.id,{name:r})}catch(a){console.error("[ww-messenger] rename failed",a)}},async onSend(t){let n=this.currentConv;if(!n&&(this.startConv(),n=this.currentConv,!n)||n._draft&&(n=await this.ensureRealConv(),!n))return;const r=n.id,a=this.pendingAttachments.slice();this.pendingAttachments=[],this.unreadAnchorId=null,this.unreadBoundaryTs="",await this.store.send(r,t,{attachments:a.length?a:void 0})},async onSuggestion(t){const n=t==null?void 0:t.label;n&&await this.onSend(n)},async onLoadMore(){var n;const t=(n=this.currentConv)==null?void 0:n.id;!t||!this.store||await this.store.loadMore(t)},async onApprovalCallback(t){const n=this.pendingApproval;n&&await this.store.clickCallback(n.id,t)},async onFormSubmit({values:t}){const n=this.pendingForm;if(!(n!=null&&n.form))return;const r=Ke(n.form,t);if(!r)return;let a=this.currentConv;a&&(a._draft&&(a=await this.ensureRealConv(),!a)||await this.store.send(a.id,r,{metadata:{artifact:We(n.form,t)}}))},async onAttach(t){if(!(!t||!this.transport))try{const n=await this.transport.uploadAttachment(t);this.pendingAttachments.push({type:n.type||"file",path:n.path,name:t.name||"fichier",mime_type:t.type,size_bytes:t.size})}catch(n){console.error("[ww-messenger] attachment upload failed",n)}},async onQuickLink(t){if(t){if(t.url){try{window.open(t.url,"_blank","noopener")}catch{}return}this.currentConv||this.startConv(),await this.onSend(t.label)}},async onFeedback({rating:t,comment:n}){if(this.currentConv){this.feedbackBusy=!0;try{await this.store.submitFeedback(this.currentConv.id,{rating:t,comment:n}),this.feedbackDone=!0}catch(r){console.error("[ww-messenger] feedback failed",r)}finally{this.feedbackBusy=!1}}}}},Vs={key:0,class:"wm-loading","aria-busy":"true","aria-live":"polite"},As={key:0,class:"wm-state"},Ms={class:"wm-state__err"},Ts={class:"wm-state__errSub"},xs={class:"wm-bottom"},Os={key:0,ref:"floatEl",class:"wm-float"},Is={key:1,class:"wm-actionWait",role:"status","aria-live":"polite"},Ds={class:"wm-actionWait__lbl"},Ls={key:2,class:"wm-attached"},Rs=["onClick"];function $s(t,n,r,a,s,o){const i=e.resolveComponent("Launcher"),l=e.resolveComponent("Header"),p=e.resolveComponent("Onboarding"),v=e.resolveComponent("MessageList"),y=e.resolveComponent("ApprovalCard"),E=e.resolveComponent("FormCard"),S=e.resolveComponent("Feedback"),k=e.resolveComponent("SuggestionChips"),x=e.resolveComponent("Composer"),w=e.resolveComponent("MoreMenu"),M=e.resolveComponent("RenameDialog");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["wm-root",`wm-root--${r.displayMode}`])},[!s.isOpen&&!o.isEmbedded?(e.openBlock(),e.createBlock(i,{key:0,"unread-count":o.unreadCount,peeks:o.launcherPeeks,onOpen:o.openFromPeek,onDismiss:o.dismissPeek},null,8,["unread-count","peeks","onOpen","onDismiss"])):e.createCommentVNode("",!0),s.isOpen||o.isEmbedded?(e.openBlock(),e.createElementBlock("section",{key:1,class:e.normalizeClass(["wm-panel",`wm-panel--${r.displayMode}`]),style:e.normalizeStyle(s.floatHeight?{"--wm-float-h":s.floatHeight+"px"}:null),role:"dialog","aria-label":"Messenger"},[!o.ready&&!o.error?(e.openBlock(),e.createElementBlock("div",Vs,[o.isEmbedded?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-loading__close","aria-label":"Réduire",onClick:n[0]||(n[0]=(...V)=>o.close&&o.close(...V))},[...n[5]||(n[5]=[e.createElementVNode("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])),n[6]||(n[6]=e.createElementVNode("div",{class:"wm-loading__spinner","aria-hidden":"true"},null,-1))])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(l,{title:o.headerTitle,"team-members":o.teamMembers,"response-label":o.responseLabel,"show-identity":!!o.currentConv,"show-back":o.canBack,"show-close":!o.isEmbedded,"more-active":s.moreOpen,onBack:o.goHome,onMore:o.toggleMore,onClose:o.close},null,8,["title","team-members","response-label","show-identity","show-back","show-close","more-active","onBack","onMore","onClose"]),o.error?(e.openBlock(),e.createElementBlock("div",As,[e.createElementVNode("div",Ms,[n[8]||(n[8]=e.createElementVNode("div",{class:"wm-state__errIcon"},[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})])],-1)),e.createElementVNode("div",null,[n[7]||(n[7]=e.createElementVNode("div",{class:"wm-state__errTitle"},"Connexion impossible",-1)),e.createElementVNode("div",Ts,e.toDisplayString(o.error),1)])])])):o.currentConv?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(v,{ref:"messageList",messages:o.displayedMessages,"streaming-active":o.streamingActive,"date-label":o.dateLabel,"conversation-id":o.currentConv?o.currentConv.id:null,"loading-more":o.paginationState.loading,"has-more":o.paginationState.hasMore,"unread-anchor-id":t.unreadAnchorId,"unread-boundary-ts":t.unreadBoundaryTs,onLoadMore:o.onLoadMore},null,8,["messages","streaming-active","date-label","conversation-id","loading-more","has-more","unread-anchor-id","unread-boundary-ts","onLoadMore"]),e.createElementVNode("div",xs,[o.floatVisible?(e.openBlock(),e.createElementBlock("div",Os,[o.approvalReady?(e.openBlock(),e.createBlock(y,{key:0,action:o.approvalTitle,detail:o.approvalDetail,callbacks:o.pendingApproval.callbacks,onCallback:o.onApprovalCallback},null,8,["action","detail","callbacks","onCallback"])):o.pendingForm?(e.openBlock(),e.createBlock(E,{key:o.pendingForm.message&&o.pendingForm.message.id,form:o.pendingForm.form,onSubmit:o.onFormSubmit},null,8,["form","onSubmit"])):o.showFeedback?(e.openBlock(),e.createBlock(S,{key:2,busy:s.feedbackBusy,done:s.feedbackDone,onSubmit:o.onFeedback},null,8,["busy","done","onSubmit"])):(e.openBlock(),e.createBlock(k,{key:3,items:o.suggestions,onSelect:o.onSuggestion},null,8,["items","onSelect"]))],512)):e.createCommentVNode("",!0),o.actionInFlight?(e.openBlock(),e.createElementBlock("div",Is,[n[9]||(n[9]=e.createElementVNode("span",{class:"wm-actionWait__spinner","aria-hidden":"true"},null,-1)),e.createElementVNode("span",Ds,e.toDisplayString(o.actionInFlightName)+" en cours, veuillez patienter…",1)])):(e.openBlock(),e.createBlock(x,{key:2,ref:"composer",modelValue:s.draft,"onUpdate:modelValue":n[1]||(n[1]=V=>s.draft=V),placeholder:o.composerPlaceholder,disabled:!!o.pendingApproval,"attach-label":"Joindre un fichier",onSend:o.onSend,onAttach:o.onAttach},null,8,["modelValue","placeholder","disabled","onSend","onAttach"]))]),s.moreOpen?(e.openBlock(),e.createBlock(w,{key:0,"can-rename":!!o.currentConv&&!o.currentConv._draft,"can-export":!!o.currentConv&&!o.currentConv._draft,"sound-enabled":t.soundEnabled,"browser-notif-enabled":t.browserNotifEnabled,"status-url":o.statusUrl,"help-url":o.helpUrl,onClose:n[2]||(n[2]=V=>s.moreOpen=!1),onSoundToggle:t.onSoundToggle,onBrowserNotifToggle:t.onBrowserNotifToggle,onAction:o.onMoreAction},null,8,["can-rename","can-export","sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):e.createCommentVNode("",!0),s.renameDialogOpen&&o.currentConv&&!o.currentConv._draft?(e.openBlock(),e.createBlock(M,{key:1,"initial-value":o.currentConv.name||"",title:"Modifier le titre de la conversation",onClose:n[3]||(n[3]=V=>s.renameDialogOpen=!1),onSubmit:o.onRenameSubmit},null,8,["initial-value","onSubmit"])):e.createCommentVNode("",!0),s.pendingAttachments.length?(e.openBlock(),e.createElementBlock("div",Ls,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.pendingAttachments,(V,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"wm-attached__chip"},[n[11]||(n[11]=e.createElementVNode("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)),e.createElementVNode("span",null,e.toDisplayString(V.name),1),e.createElementVNode("button",{type:"button","aria-label":"Retirer",onClick:D=>s.pendingAttachments.splice(T,1)},[...n[10]||(n[10]=[e.createElementVNode("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])],8,Rs)]))),128))])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createBlock(p,{key:1,"welcome-message":o.widgetWelcomeMessage,"agent-name":o.agentName,"quick-links":o.quickLinks,"open-threads":o.openThreads,busy:s.busy,onStart:o.startConv,onSelect:o.onQuickLink,onResume:o.onDrawerPick},null,8,["welcome-message","agent-name","quick-links","open-threads","busy","onStart","onSelect","onResume"])),s.moreOpen&&!o.currentConv?(e.openBlock(),e.createBlock(w,{key:3,"can-rename":!1,"can-export":!1,"sound-enabled":t.soundEnabled,"browser-notif-enabled":t.browserNotifEnabled,"status-url":o.statusUrl,"help-url":o.helpUrl,onClose:n[4]||(n[4]=V=>s.moreOpen=!1),onSoundToggle:t.onSoundToggle,onBrowserNotifToggle:t.onBrowserNotifToggle,onAction:o.onMoreAction},null,8,["sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):e.createCommentVNode("",!0)],64))],6)):e.createCommentVNode("",!0)],2)}const $e=N(Ss,[["render",$s],["__scopeId","data-v-4500d0e5"]]),Fs="0.3.11";exports.AIAvatar=j;exports.AVATAR_COLORS=W;exports.ActionResult=ve;exports.ApprovalCard=Ie;exports.ArtifactFormResponse=ye;exports.ArtifactInfoCard=ke;exports.ArtifactRenderer=be;exports.ArtifactTicket=we;exports.AttachmentPreview=Ee;exports.Bubble=Be;exports.Composer=xe;exports.DEFAULT_BASE_URL=me;exports.Feedback=Le;exports.FormCard=De;exports.Header=_e;exports.HumanAvatar=te;exports.Launcher=fe;exports.MEDIA_RECORDER_SUPPORTED=Y;exports.MessageList=Se;exports.Messenger=$e;exports.MoreMenu=Re;exports.Onboarding=ge;exports.SCREEN_CAPTURE_SUPPORTED=z;exports.SuggestionChips=Oe;exports.TeamAvatars=pe;exports.Typing=Ne;exports.VERSION=Fs;exports.avatarColor=Q;exports.avatarInitials=Z;exports.captureScreenshotFile=Me;exports.colors=A;exports.createStore=de;exports.createTransport=ce;exports.default=$e;exports.formatTime=ee;exports.guessAttachmentKind=Jr;exports.pickRecorderMime=Ve;exports.renderMarkdown=Ce;exports.startScreenRecording=Te;exports.tokensCss=ue;exports.uuid=J;exports.v4=J;
56
+ `)}return s}const Br={name:"WmBubble",props:{role:{type:String,default:"ai"},text:{type:String,default:""}},computed:{rendered(){return Ce(this.text)}}},Nr=["innerHTML"];function Sr(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["wm-bubble","wm-bubble--"+r.role])},[e.renderSlot(t.$slots,"default",{},()=>[e.createElementVNode("span",{innerHTML:o.rendered},null,8,Nr)],!0)],2)}const Be=N(Br,[["render",Sr],["__scopeId","data-v-5c9e9f2b"]]),Vr={name:"WmTyping"},Ar={class:"wm-typing"};function Mr(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",Ar,[...n[0]||(n[0]=[e.createElementVNode("span",{style:{"animation-delay":"0s"}},null,-1),e.createElementVNode("span",{style:{"animation-delay":"0.2s"}},null,-1),e.createElementVNode("span",{style:{"animation-delay":"0.4s"}},null,-1)])])}const Ne=N(Vr,[["render",Mr],["__scopeId","data-v-df2447fd"]]);function U(t){return t?t.client_msg_id||t.id:""}const Tr={transferred_to_human:"Conversation transférée à un humain",assigned:"{name} a rejoint la conversation",unassigned:"L'agent a quitté la conversation",resolved:"Conversation résolue",reopened:"Conversation rouverte",idle:"Conversation en pause"},xr=80,Or=200,Ir={name:"WmMessageList",components:{AIAvatar:j,HumanAvatar:te,Bubble:Be,Typing:Ne,ActionResult:ve,AttachmentPreview:Ee,ArtifactRenderer:be},props:{messages:{type:Array,default:()=>[]},streamingActive:{type:Boolean,default:!1},dateLabel:{type:String,default:""},conversationId:{type:[String,Number],default:null},loadingMore:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},unreadAnchorId:{type:Number,default:null},unreadBoundaryTs:{type:String,default:""}},emits:["load-more"],data(){return{silentFades:!1,widthByKey:Object.freeze({})}},computed:{historyExhausted(){return!this.hasMore&&!this.loadingMore&&this.messages.length>=20},groups(){var r,a,s,o;const t=[];for(const i of this.messages){const l=this.roleOf(i);if(l==="system"){if(((r=i==null?void 0:i.payload)==null?void 0:r.event)==="action_admin_pending"){const y=t[t.length-1];y&&y.role==="ai"?y.messages.push(i):t.push({key:`g-${U(i)}`,role:"ai",agentName:"",agentAvatarUrl:null,messages:[i],items:[]});continue}t.push({key:`sys-${U(i)}`,role:l,messages:[i],items:[],systemLabel:this.systemLabel(i)});continue}const p=t[t.length-1];p&&p.role===l&&(l==="ai"||p.agentName===(((a=i==null?void 0:i.author)==null?void 0:a.name)||""))?p.messages.push(i):t.push({key:`g-${U(i)}`,role:l,agentName:((s=i==null?void 0:i.author)==null?void 0:s.name)||"",agentAvatarUrl:((o=i==null?void 0:i.author)==null?void 0:o.avatar_url)||null,messages:[i],items:[]})}for(const i of t){if(i.role==="system")continue;const l=[];for(const p of i.messages)for(const v of this.itemsOf(p))l.push(v);i.items=l}const n=[];for(const i of t){if(i.role!=="system"&&!i.items.length)continue;const l=n[n.length-1];if(l&&l.role!=="system"&&l.role===i.role&&(i.role==="ai"||l.agentName===i.agentName)){l.messages.push(...i.messages),l.items.push(...i.items);continue}n.push(i)}return n},unreadGroupKey(){if(this.unreadAnchorId==null)return null;const t=this.unreadAnchorId,n=this.unreadBoundaryTs;for(const r of this.groups){if(r.role==="user"||r.role==="system"||!r.items.length)continue;const a=r.messages[0];if(!a)continue;const s=R(a.id);if(s!=null&&!(s<=t)&&!(n&&a.created_at&&a.created_at>n))return r.key}return null}},watch:{messages:{handler:"snapshotAndRestore",deep:!0},loadingMore(t){t||(this._pendingLoadMore=!1),this.silentFades=!0,clearTimeout(this._silenceTimer),t||(this._silenceTimer=setTimeout(()=>{this.silentFades=!1},250)),this.snapshotAndRestore()},streamingActive:"snapshotAndRestore"},mounted(){this._lastSeenConvId=this.conversationId,this.scrollToBottom(),this._measureFrame=null,this._ro=new ResizeObserver(()=>this.scheduleMeasure()),this.$refs.scrollEl&&this._ro.observe(this.$refs.scrollEl),this.$nextTick(()=>this.measureRows())},beforeUnmount(){var t;(t=this._ro)==null||t.disconnect(),this._measureFrame&&cancelAnimationFrame(this._measureFrame),clearTimeout(this._silenceTimer)},updated(){this.scheduleMeasure()},methods:{messageKey:U,isAtBottom(t){return t.scrollHeight-t.scrollTop-t.clientHeight<=xr},onScroll(){const t=this.$refs.scrollEl;t&&(this.loadingMore||!this.hasMore||this._pendingLoadMore||t.scrollTop<=Or&&(this._pendingLoadMore=!0,this.$emit("load-more")))},snapshotAndRestore(){const t=this.$refs.scrollEl;if(!t||this._scrollSnap)return;const n=this._lastSeenConvId!==this.conversationId;this._lastSeenConvId=this.conversationId;const r=this.isAtBottom(t);let a=null;if(!n&&!r){const o=this.pickAnchor(t);if(o!=null&&o.el){const i=t.getBoundingClientRect().top;a={el:o.el,relY:o.el.getBoundingClientRect().top-i}}}const s={forceBottom:n,wasPinned:r,anchor:a};this._scrollSnap=s,this.$nextTick(()=>{if(this._scrollSnap=null,s.forceBottom||s.wasPinned){t.scrollTop=t.scrollHeight;return}if(!s.anchor)return;const o=()=>{var v;const i=s.anchor;if(!((v=i.el)!=null&&v.isConnected))return;const p=i.el.getBoundingClientRect().top-t.getBoundingClientRect().top-i.relY;Math.abs(p)>.5&&(t.scrollTop+=p)};o(),requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})})},pickAnchor(t){const n=t.scrollTop;let r=null;for(const a of t.children)if(a.classList.contains("wm-list__group")&&(r||(r=a),a.offsetTop+a.offsetHeight>=n))return{el:a,offsetTop:a.offsetTop};return r?{el:r,offsetTop:r.offsetTop}:null},roleOf(t){var r,a;if((t==null?void 0:t.type)==="system"||((r=t==null?void 0:t.payload)==null?void 0:r.type)==="system")return"system";const n=(a=t==null?void 0:t.author)==null?void 0:a.type;return n==="user"?"user":n==="agent_human"?"human":"ai"},roleLabel(t){return t.role==="human"?t.agentName||"Agent":"Assistant IA"},itemsOf(t){var n;if(!t)return[];if(t.type==="system"&&((n=t==null?void 0:t.payload)==null?void 0:n.event)==="action_admin_pending")return[{message:t,partKey:"main",renderAs:"admin-pending",kind:{top:"bubble",bottom:"bubble"}}];if(t.type==="action"&&t.payload&&t.payload.state!=="pending"){const r=[{message:t,partKey:"main",renderAs:"action",kind:{top:"bubble",bottom:"bubble"}}];return this.actionArtifact(t)&&r.push({message:t,partKey:"artifact",renderAs:"artifact-of-action",kind:{top:"card",bottom:"card"}}),r}return this.artifactOf(t)?[{message:t,partKey:"main",renderAs:"artifact",kind:{top:"card",bottom:"card"}}]:t.text_md||this.attachmentsOf(t).length?[{message:t,partKey:"main",renderAs:"bubble",kind:{top:"bubble",bottom:"bubble"}}]:[]},cornersFor(t,n){var $,F,O;const r=t.items,a=($=r[n])==null?void 0:$.kind,s=(F=r[n-1])==null?void 0:F.kind,o=(O=r[n+1])==null?void 0:O.kind,i=t.role==="user",l=14,p=4,v=s==null?void 0:s.bottom,y=o==null?void 0:o.top,E=this.widthByKey[this.rowKeyOf(t,n)],S=this.widthByKey[this.rowKeyOf(t,n-1)],k=this.widthByKey[this.rowKeyOf(t,n+1)],x=.5,w=(P,L,I)=>P!=null&&E!=null?P+x>=E:L===I||L==="card"&&I==="bubble";let M=l,V=l,T=l,D=l;return i?(v&&(V=p),(y||!o)&&(T=p),v&&w(S,v,a==null?void 0:a.top)&&(M=p),y&&w(k,y,a==null?void 0:a.bottom)&&(D=p)):(v&&(M=p),(y||!o)&&(D=p),v&&w(S,v,a==null?void 0:a.top)&&(V=p),y&&w(k,y,a==null?void 0:a.bottom)&&(T=p)),{tl:M,tr:V,br:T,bl:D}},cornersStyle(t,n){if(t.items.length<2)return null;const r=this.cornersFor(t,n);return{"--wm-r-tl":`${r.tl}px`,"--wm-r-tr":`${r.tr}px`,"--wm-r-br":`${r.br}px`,"--wm-r-bl":`${r.bl}px`}},rowKeyOf(t,n){var a;const r=(a=t==null?void 0:t.items)==null?void 0:a[n];return r?`${U(r.message)}-${r.partKey}`:""},scheduleMeasure(){this._measureFrame||(this._measureFrame=requestAnimationFrame(()=>{this._measureFrame=null,this.measureRows()}))},measureRows(){const t=this.$refs.scrollEl;if(!t)return;const n={};for(const o of t.querySelectorAll(".wm-list__row[data-row-key]")){const i=o.dataset.rowKey;if(!i)continue;const l=o.querySelector(".wm-bubble, .wm-result, .wm-art, .wm-list__body");if(!l)continue;const p=l.getBoundingClientRect().width;p>0&&(n[i]=p)}const r=this.widthByKey,a=Object.keys(r),s=Object.keys(n);if(a.length===s.length){let o=!0;for(const i of s)if(Math.abs((r[i]??0)-n[i])>.5){o=!1;break}if(o)return}this.widthByKey=Object.freeze(n)},lastTimeOf(t){const n=t.items[t.items.length-1],r=(n==null?void 0:n.message)||t.messages[t.messages.length-1];if(!(r!=null&&r.created_at))return"";try{return ee(new Date(r.created_at))}catch{return""}},hasTrailingOverlay(t){if(!t.messages.length)return!1;const n=t.messages[t.messages.length-1],r=t.items[t.items.length-1];return!!n&&(r==null?void 0:r.message)!==n},attachmentsOf(t){var r;const n=(r=t==null?void 0:t.payload)==null?void 0:r.attachments;return Array.isArray(n)?n:[]},artifactOf(t){var r;const n=(r=t==null?void 0:t.metadata)==null?void 0:r.artifact;return!n||typeof n!="object"||typeof n.kind!="string"?null:n},actionLabel(t){var n;return((n=t==null?void 0:t.payload)==null?void 0:n.name)||(t==null?void 0:t.text_md)||"Action"},actionDetail(t){var r,a,s,o,i,l;const n=t==null?void 0:t.payload;return n?n.state==="success"?((r=n.success)==null?void 0:r.summary)||((s=(a=n.success)==null?void 0:a.metadata)==null?void 0:s.description)||"":n.state==="rejected"?((o=n.rejected)==null?void 0:o.reason)||"Action annulée par l'utilisateur.":n.state==="failure"&&(((i=n.failure)==null?void 0:i.summary)||((l=n.failure)==null?void 0:l.error))||"":""},actionArtifact(t){var r,a;const n=(a=(r=t==null?void 0:t.payload)==null?void 0:r.success)==null?void 0:a.artifact;return!n||typeof n!="object"||typeof n.kind!="string"?null:n},systemLabel(t){var s,o,i;const n=(s=t==null?void 0:t.payload)==null?void 0:s.event,r=Tr[n]||(t==null?void 0:t.text_md)||"Mise à jour de la conversation",a=((o=t==null?void 0:t.metadata)==null?void 0:o.agent_name)||((i=t==null?void 0:t.author)==null?void 0:i.name)||"";return r.replace("{name}",a||"Un agent")},scrollToBottom(){const t=this.$refs.scrollEl;t&&(t.scrollTop=t.scrollHeight)}}},Dr={key:0,class:"wm-list__loadMore",role:"status","aria-live":"polite"},Lr={key:1,class:"wm-list__historyEnd"},Rr={key:2,class:"wm-list__sep"},$r={class:"wm-list__sep-label"},Fr={key:0,class:"wm-list__sep wm-list__sep--unread"},Pr={key:0,class:"wm-list__sysep"},jr={class:"wm-list__sysep-label"},Ur=["data-row-key"],zr={key:0,class:"wm-list__avatarSlot"},Hr={key:5,class:"wm-list__body"},qr={key:0},Kr={key:1,"aria-hidden":"true"},Wr={key:2},Gr={key:3,class:"wm-list__row wm-list__row--ai fade-up"},Yr={class:"wm-list__avatarSlot"};function Xr(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar"),l=e.resolveComponent("HumanAvatar"),p=e.resolveComponent("ActionResult"),v=e.resolveComponent("ArtifactRenderer"),y=e.resolveComponent("Bubble"),E=e.resolveComponent("AttachmentPreview"),S=e.resolveComponent("Typing");return e.openBlock(),e.createElementBlock("div",{ref:"scrollEl",class:e.normalizeClass(["wm-list",{"wm-list--silent":s.silentFades}]),onScrollPassive:n[0]||(n[0]=(...k)=>o.onScroll&&o.onScroll(...k))},[r.loadingMore?(e.openBlock(),e.createElementBlock("div",Dr,[...n[1]||(n[1]=[e.createElementVNode("span",{class:"wm-list__loadMore-spinner","aria-hidden":"true"},null,-1),e.createElementVNode("span",{class:"wm-list__loadMore-lbl"},"Chargement de l'historique…",-1)])])):o.historyExhausted?(e.openBlock(),e.createElementBlock("div",Lr,"Début de la conversation")):e.createCommentVNode("",!0),r.dateLabel?(e.openBlock(),e.createElementBlock("div",Rr,[n[2]||(n[2]=e.createElementVNode("div",{class:"wm-list__line"},null,-1)),e.createElementVNode("span",$r,e.toDisplayString(r.dateLabel),1),n[3]||(n[3]=e.createElementVNode("div",{class:"wm-list__line"},null,-1))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.groups,(k,x)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.key},[k.key===o.unreadGroupKey?(e.openBlock(),e.createElementBlock("div",Fr,[...n[4]||(n[4]=[e.createElementVNode("div",{class:"wm-list__line wm-list__line--unread"},null,-1),e.createElementVNode("span",{class:"wm-list__sep-label wm-list__sep-label--unread"},"Non lus",-1),e.createElementVNode("div",{class:"wm-list__line wm-list__line--unread"},null,-1)])])):e.createCommentVNode("",!0),k.role==="system"||k.items.length?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["wm-list__group","wm-list__group--"+k.role])},[k.role==="system"?(e.openBlock(),e.createElementBlock("div",Pr,[n[5]||(n[5]=e.createElementVNode("div",{class:"wm-list__line wm-list__line--strong"},null,-1)),e.createElementVNode("span",jr,e.toDisplayString(k.systemLabel),1),n[6]||(n[6]=e.createElementVNode("div",{class:"wm-list__line wm-list__line--strong"},null,-1))])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.items,(w,M)=>(e.openBlock(),e.createElementBlock("div",{key:`${o.messageKey(w.message)}-${w.partKey}`,"data-row-key":`${o.messageKey(w.message)}-${w.partKey}`,class:e.normalizeClass(["wm-list__row fade-up",["wm-list__row--"+k.role,{"is-pending":w.message._pending,"is-failed":w.message._failed}]]),style:e.normalizeStyle(o.cornersStyle(k,M))},[k.role!=="user"?(e.openBlock(),e.createElementBlock("div",zr,[M===k.items.length-1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[k.role==="ai"?(e.openBlock(),e.createBlock(i,{key:0,size:26,tail:!0})):(e.openBlock(),e.createBlock(l,{key:1,name:k.agentName,"avatar-url":k.agentAvatarUrl,size:26,tail:!0},null,8,["name","avatar-url"]))],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),w.renderAs==="action"?(e.openBlock(),e.createBlock(p,{key:1,state:w.message.payload.state,label:o.actionLabel(w.message),detail:o.actionDetail(w.message)},null,8,["state","label","detail"])):w.renderAs==="admin-pending"?(e.openBlock(),e.createBlock(p,{key:2,state:"awaiting",label:"Demande d'approbation envoyée",detail:w.message.text_md||""},null,8,["detail"])):w.renderAs==="artifact-of-action"?(e.openBlock(),e.createBlock(v,{key:3,artifact:o.actionArtifact(w.message)},null,8,["artifact"])):w.renderAs==="artifact"?(e.openBlock(),e.createBlock(v,{key:4,artifact:o.artifactOf(w.message)},null,8,["artifact"])):(e.openBlock(),e.createElementBlock("div",Hr,[w.message.text_md?(e.openBlock(),e.createBlock(y,{key:0,role:k.role,text:w.message.text_md},null,8,["role","text"])):e.createCommentVNode("",!0),o.attachmentsOf(w.message).length?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["wm-list__atts",{"wm-list__atts--align-end":k.role==="user"}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.attachmentsOf(w.message),(V,T)=>(e.openBlock(),e.createBlock(E,{key:`${o.messageKey(w.message)}-att-${T}`,attachment:V},null,8,["attachment"]))),128))],2)):e.createCommentVNode("",!0)]))],14,Ur))),128)),(k.role!=="user"||o.lastTimeOf(k))&&!o.hasTrailingOverlay(k)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["wm-list__meta",{"wm-list__meta--right":k.role==="user"}])},[k.role!=="user"?(e.openBlock(),e.createElementBlock("span",qr,e.toDisplayString(o.roleLabel(k)),1)):e.createCommentVNode("",!0),k.role!=="user"&&o.lastTimeOf(k)?(e.openBlock(),e.createElementBlock("span",Kr,"·")):e.createCommentVNode("",!0),o.lastTimeOf(k)?(e.openBlock(),e.createElementBlock("span",Wr,e.toDisplayString(o.lastTimeOf(k)),1)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],64))],2)):e.createCommentVNode("",!0)],64))),128)),r.streamingActive?(e.openBlock(),e.createElementBlock("div",Gr,[e.createElementVNode("div",Yr,[e.createVNode(i,{size:26,tail:!0})]),e.createVNode(S)])):e.createCommentVNode("",!0)],34)}const Se=N(Ir,[["render",Xr],["__scopeId","data-v-946babe3"]]),z=typeof navigator<"u"&&!!navigator.mediaDevices&&typeof navigator.mediaDevices.getDisplayMedia=="function",Y=typeof window<"u"&&typeof window.MediaRecorder<"u";function Ve(){return Y&&["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm","video/mp4"].find(n=>{var r,a;return(a=(r=window.MediaRecorder).isTypeSupported)==null?void 0:a.call(r,n)})||""}function Ae({audio:t}){return{video:!0,audio:!!t,selfBrowserSurface:"include",surfaceSwitching:"include",systemAudio:t?"include":"exclude"}}function Jr(t){return t?t.startsWith("image/")?"image":t.startsWith("video/")?"video":"file":"file"}async function Me(){if(!z)return null;let t;try{t=await navigator.mediaDevices.getDisplayMedia(Ae({audio:!1}))}catch(n){return(n==null?void 0:n.name)!=="NotAllowedError"&&console.error("[media] screenshot picker",n),null}try{return await Qr(t)}catch(n){return console.error("[media] screenshot capture",n),null}finally{t.getTracks().forEach(n=>{n.stop()})}}async function Qr(t){const n=document.createElement("video");n.muted=!0,n.playsInline=!0,n.srcObject=t,await n.play(),await new Promise(l=>requestAnimationFrame(l));const r=n.videoWidth||1280,a=n.videoHeight||720,s=document.createElement("canvas");s.width=r,s.height=a,s.getContext("2d").drawImage(n,0,0,r,a);const o=await new Promise((l,p)=>{s.toBlob(v=>v?l(v):p(new Error("toBlob failed")),"image/png")}),i=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);return new File([o],`capture-${i}.png`,{type:"image/png"})}async function Te(t={}){var v;if(!z||!Y)return null;let n;try{n=await navigator.mediaDevices.getDisplayMedia(Ae({audio:!0}))}catch(y){return(y==null?void 0:y.name)!=="NotAllowedError"&&console.error("[media] record picker",y),null}const r=Ve();let a;try{a=r?new window.MediaRecorder(n,{mimeType:r}):new window.MediaRecorder(n)}catch(y){return console.error("[media] recorder init",y),n.getTracks().forEach(E=>{E.stop()}),null}const s=[];let o=null,i=!1;a.addEventListener("dataavailable",y=>{y.data&&y.data.size>0&&s.push(y.data)}),a.addEventListener("stop",()=>{var y,E;if(o&&clearInterval(o),n.getTracks().forEach(S=>{S.stop()}),s.length){const S=a.mimeType||r||"video/webm",k=new Blob(s,{type:S}),x=/mp4/.test(S)?"mp4":"webm",w=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),M=new File([k],`ecran-${w}.${x}`,{type:S});(y=t.onfinalize)==null||y.call(t,M)}else(E=t.oncancel)==null||E.call(t)}),n.getVideoTracks().forEach(y=>{y.addEventListener("ended",()=>l(),{once:!0})});function l(){if(!i&&(i=!0,a.state!=="inactive"))try{a.stop()}catch(y){console.error("[media] recorder stop",y)}}try{a.start(1e3)}catch(y){return console.error("[media] recorder start",y),n.getTracks().forEach(E=>{E.stop()}),null}(v=t.onstart)==null||v.call(t);const p=Date.now();return o=setInterval(()=>{var y;(y=t.ontick)==null||y.call(t,Date.now()-p)},500),{stop:l,get state(){return a.state}}}const Zr=[{action:"file",label:"Joindre un fichier",path:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"},{action:"screenshot",label:"Capture d'écran",path:"M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z M12 17a4 4 0 100-8 4 4 0 000 8z"},{action:"record",label:"Enregistrer l'écran",path:"M23 7l-7 5 7 5V7z M1 5a2 2 0 012-2h12a2 2 0 012 2v14a2 2 0 01-2 2H3a2 2 0 01-2-2V5z"}],eo={name:"WmComposer",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Écrivez votre message…"},disabled:{type:Boolean,default:!1},attachLabel:{type:String,default:"Joindre"}},emits:["update:modelValue","send","attach"],data(){return{local:this.modelValue,attachOpen:!1,recording:!1,recordingElapsed:0,recorder:null}},computed:{canSend(){return!this.disabled&&!!this.local.trim()},attachItems(){return Zr.map(t=>({...t,disabled:t.action==="screenshot"&&!z||t.action==="record"&&(!z||!Y)}))},recordingElapsedLabel(){const t=Math.floor(this.recordingElapsed/1e3),n=Math.floor(t/60),r=t%60;return`${n}:${r.toString().padStart(2,"0")}`}},watch:{modelValue(t){t!==this.local&&(this.local=t,this.$nextTick(()=>this.autosize()))},local(t){this.$emit("update:modelValue",t)}},mounted(){this.autosize()},beforeUnmount(){if(this.recorder)try{this.recorder.stop()}catch{}},methods:{focus(){const t=this.$refs.inputEl;if(!(!t||this.disabled))try{t.focus({preventScroll:!0})}catch{t.focus()}},onSubmit(){if(!this.canSend)return;const t=this.local.trim();this.local="",this.$emit("send",t),this.$nextTick(()=>this.autosize())},onKeydown(t){t.key==="Enter"&&!t.shiftKey&&!t.ctrlKey&&!t.metaKey&&!t.isComposing&&(t.preventDefault(),this.onSubmit())},autosize(){const t=this.$refs.inputEl;t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`)},onFile(t){const n=Array.from(t.target.files||[]);for(const r of n)this.$emit("attach",r);t.target.value=""},onAttachAction(t){this.attachOpen=!1,t==="file"?this.pickFile():t==="screenshot"?this.captureScreenshot():t==="record"&&this.startRecording()},pickFile(){var t;(t=this.$refs.fileEl)==null||t.click()},async captureScreenshot(){if(this.disabled)return;const t=await Me();t&&this.$emit("attach",t)},async startRecording(){if(this.recording||this.disabled)return;this.recordingElapsed=0;const t=await Te({onstart:()=>{this.recording=!0},ontick:n=>{this.recordingElapsed=n},onfinalize:n=>{this.$emit("attach",n),this.recording=!1,this.recordingElapsed=0,this.recorder=null},oncancel:()=>{this.recording=!1,this.recordingElapsed=0,this.recorder=null}});t&&(this.recorder=t)},stopRecording(){if(this.recorder)try{this.recorder.stop()}catch(t){console.error("[composer] stop recording",t)}}}},to={class:"wm-compose-wrap"},no={key:0,class:"wm-rec"},ro={class:"wm-rec__lbl"},oo={key:1,class:"wm-compose__menu",role:"menu"},so=["disabled","onClick"],ao={class:"wm-compose__menuIcon"},io={viewBox:"0 0 24 24",width:"14",height:"14","aria-hidden":"true"},lo=["d"],co=["placeholder","disabled"],uo={class:"wm-compose__actions"},mo=["title","aria-label","disabled"],ho=["disabled"];function fo(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",to,[s.recording?(e.openBlock(),e.createElementBlock("div",no,[n[8]||(n[8]=e.createElementVNode("span",{class:"wm-rec__dot","aria-hidden":"true"},null,-1)),e.createElementVNode("span",ro,"Enregistrement · "+e.toDisplayString(o.recordingElapsedLabel),1),e.createElementVNode("button",{type:"button",class:"wm-rec__stop",onClick:n[0]||(n[0]=(...i)=>o.stopRecording&&o.stopRecording(...i))},"Arrêter")])):e.createCommentVNode("",!0),e.createElementVNode("form",{class:e.normalizeClass(["wm-compose",{"has-attach":s.attachOpen}]),onSubmit:n[7]||(n[7]=e.withModifiers((...i)=>o.onSubmit&&o.onSubmit(...i),["prevent"]))},[e.createElementVNode("input",{ref:"fileEl",type:"file",hidden:"",multiple:"",onChange:n[1]||(n[1]=(...i)=>o.onFile&&o.onFile(...i))},null,544),s.attachOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"wm-compose__overlay",onClick:n[2]||(n[2]=i=>s.attachOpen=!1)})):e.createCommentVNode("",!0),s.attachOpen?(e.openBlock(),e.createElementBlock("div",oo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.attachItems,i=>(e.openBlock(),e.createElementBlock("button",{key:i.action,type:"button",class:"wm-compose__menuItem",disabled:i.disabled,onClick:l=>o.onAttachAction(i.action)},[e.createElementVNode("span",ao,[(e.openBlock(),e.createElementBlock("svg",io,[e.createElementVNode("path",{d:i.path,stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,8,lo)]))]),e.createElementVNode("span",null,e.toDisplayString(i.label),1)],8,so))),128))])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("textarea",{ref:"inputEl","onUpdate:modelValue":n[3]||(n[3]=i=>s.local=i),class:"wm-compose__input",rows:"3",placeholder:r.placeholder,disabled:r.disabled,onKeydown:n[4]||(n[4]=(...i)=>o.onKeydown&&o.onKeydown(...i)),onInput:n[5]||(n[5]=(...i)=>o.autosize&&o.autosize(...i))},null,40,co),[[e.vModelText,s.local]]),e.createElementVNode("div",uo,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["wm-compose__icon",{"is-open":s.attachOpen}]),title:r.attachLabel,"aria-label":r.attachLabel,disabled:s.recording,onClick:n[6]||(n[6]=i=>s.attachOpen=!s.attachOpen)},[...n[9]||(n[9]=[e.createElementVNode("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)])],10,mo),e.createElementVNode("button",{type:"submit",class:e.normalizeClass(["wm-compose__send",{"is-empty":!o.canSend}]),disabled:!o.canSend,"aria-label":"Envoyer"},[...n[10]||(n[10]=[e.createElementVNode("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"})],-1)])],10,ho)])],34)])}const xe=N(eo,[["render",fo],["__scopeId","data-v-14fa9ec0"]]),po={name:"WmSuggestionChips",props:{items:{type:Array,default:()=>[]},baseDelay:{type:Number,default:360},stepDelay:{type:Number,default:90}},emits:["select"],computed:{batchKey(){return this.items.map(t=>(t==null?void 0:t.label)||(t==null?void 0:t.text)||"").join("§")}}},_o=["onClick"];function go(t,n,r,a,s,o){return r.items.length?(e.openBlock(),e.createElementBlock("div",{key:o.batchKey,class:"wm-chips"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,(i,l)=>(e.openBlock(),e.createElementBlock("button",{key:l,type:"button",class:"wm-chip",style:e.normalizeStyle({animationDelay:r.baseDelay+l*r.stepDelay+"ms"}),onClick:p=>t.$emit("select",i)},e.toDisplayString(i.label),13,_o))),128))])):e.createCommentVNode("",!0)}const Oe=N(po,[["render",go],["__scopeId","data-v-55aa529d"]]),vo={name:"WmApprovalCard",components:{AIAvatar:j},props:{action:{type:String,required:!0},detail:{type:String,default:""},callbacks:{type:Array,default:()=>[]}},emits:["callback"],computed:{approveCallback(){return this.callbacks.find(t=>t.id==="approve"||t.style==="primary")||this.callbacks[0]},rejectCallback(){return this.callbacks.find(t=>t.id==="reject"||t.style==="danger"||t.style==="neutral")||(this.callbacks.length>1?this.callbacks[1]:null)},approveId(){var t;return(t=this.approveCallback)==null?void 0:t.id},rejectId(){var t;return(t=this.rejectCallback)==null?void 0:t.id},approveLabel(){var t;return((t=this.approveCallback)==null?void 0:t.label)||"Autoriser"},rejectLabel(){var t;return((t=this.rejectCallback)==null?void 0:t.label)||"Refuser"}}},yo={class:"wm-approval"},ko={class:"wm-approval__head"},wo={class:"wm-approval__icon"},bo={class:"wm-approval__main"},Eo={class:"wm-approval__title"},Co={key:0,class:"wm-approval__detail"},Bo={class:"wm-approval__actions"};function No(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar");return e.openBlock(),e.createElementBlock("div",yo,[e.createElementVNode("div",ko,[e.createElementVNode("div",wo,[e.createVNode(i,{size:24})]),e.createElementVNode("div",bo,[e.createElementVNode("div",Eo,e.toDisplayString(r.action),1),r.detail?(e.openBlock(),e.createElementBlock("div",Co,e.toDisplayString(r.detail),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Bo,[o.rejectId?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-approval__btn wm-approval__btn--neutral",onClick:n[0]||(n[0]=l=>t.$emit("callback",o.rejectId))},e.toDisplayString(o.rejectLabel),1)):e.createCommentVNode("",!0),o.approveId?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"wm-approval__btn wm-approval__btn--primary",onClick:n[1]||(n[1]=l=>t.$emit("callback",o.approveId))},e.toDisplayString(o.approveLabel),1)):e.createCommentVNode("",!0)])])}const Ie=N(vo,[["render",No],["__scopeId","data-v-b1be139c"]]);let ie=0;const So=new Set(["text","textarea","number","boolean","select","multiselect","date"]),Vo={name:"WmFormCard",components:{AIAvatar:j},props:{form:{type:Object,required:!0},readOnly:{type:Boolean,default:!1},initialValues:{type:Object,default:null}},emits:["submit"],data(){return ie+=1,{_uid:ie,values:{},busy:!1,error:""}},computed:{normalizedFields(){var n;return(Array.isArray((n=this.form)==null?void 0:n.fields)?this.form.fields:[]).filter(r=>!(!(r!=null&&r.key)||!(r!=null&&r.label)||!So.has(r==null?void 0:r.type)||(r.type==="select"||r.type==="multiselect")&&(!Array.isArray(r.options)||r.options.length===0)))}},created(){this.resetValues()},methods:{resetValues(){const t=this.initialValues&&typeof this.initialValues=="object"?this.initialValues:{},n={};for(const r of this.normalizedFields){if(t[r.key]!==void 0){n[r.key]=t[r.key];continue}r.type==="boolean"?n[r.key]=!1:r.type==="multiselect"?n[r.key]=[]:n[r.key]=""}this.values=n,this.error=""},toggleMulti(t,n,r){const a=Array.isArray(this.values[t])?this.values[t].slice():[],s=a.indexOf(n);r&&s===-1?a.push(n):!r&&s!==-1&&a.splice(s,1),this.values={...this.values,[t]:a}},validate(){for(const t of this.normalizedFields){if(!t.required)continue;const n=this.values[t.key];if(t.type!=="boolean"){if(t.type==="multiselect"){if(!Array.isArray(n)||n.length===0)return`« ${t.label} » est requis.`;continue}if(n==null||n==="")return`« ${t.label} » est requis.`}}return""},async onSubmit(){if(this.readOnly||this.busy)return;const t=this.validate();if(t){this.error=t;return}this.error="",this.busy=!0;try{await this.$emit("submit",{values:this.values})}finally{this.busy=!1}}}},Ao={class:"wm-form"},Mo={class:"wm-form__head"},To={class:"wm-form__icon"},xo={class:"wm-form__main"},Oo={class:"wm-form__title"},Io={key:0,class:"wm-form__detail"},Do=["for"],Lo={key:0,class:"wm-form__req","aria-hidden":"true"},Ro=["id","onUpdate:modelValue","placeholder","required","disabled"],$o=["id","onUpdate:modelValue","placeholder","required","disabled"],Fo=["id","onUpdate:modelValue","placeholder","required","disabled"],Po=["id","onUpdate:modelValue","required","disabled"],jo={key:4,class:"wm-form__bool"},Uo=["id","onUpdate:modelValue","disabled"],zo=["id","onUpdate:modelValue","required","disabled"],Ho={value:"",disabled:""},qo=["value"],Ko={key:6,class:"wm-form__multi"},Wo=["value","checked","disabled","onChange"],Go={key:0,class:"wm-form__err"},Yo=["disabled"],Xo={key:0,class:"wm-form__spinner","aria-hidden":"true"},Jo={key:2,class:"wm-form__doneLbl"};function Qo(t,n,r,a,s,o){const i=e.resolveComponent("AIAvatar");return e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("div",Mo,[e.createElementVNode("div",To,[e.createVNode(i,{size:24})]),e.createElementVNode("div",xo,[e.createElementVNode("div",Oo,e.toDisplayString(r.form.title||"Formulaire"),1),r.form.description?(e.openBlock(),e.createElementBlock("div",Io,e.toDisplayString(r.form.description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("form",{class:"wm-form__body",onSubmit:n[0]||(n[0]=e.withModifiers((...l)=>o.onSubmit&&o.onSubmit(...l),["prevent"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.normalizedFields,l=>(e.openBlock(),e.createElementBlock("div",{key:l.key,class:"wm-form__field"},[e.createElementVNode("label",{for:`wm-f-${s._uid}-${l.key}`,class:"wm-form__label"},[e.createTextVNode(e.toDisplayString(l.label),1),l.required?(e.openBlock(),e.createElementBlock("span",Lo,"*")):e.createCommentVNode("",!0)],8,Do),l.type==="text"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"text",class:"wm-form__input",placeholder:l.placeholder||"",required:l.required,disabled:r.readOnly||s.busy},null,8,Ro)),[[e.vModelText,s.values[l.key]]]):l.type==="textarea"?e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{key:1,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,class:"wm-form__textarea",rows:"3",placeholder:l.placeholder||"",required:l.required,disabled:r.readOnly||s.busy},null,8,$o)),[[e.vModelText,s.values[l.key]]]):l.type==="number"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:2,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"number",class:"wm-form__input",placeholder:l.placeholder||"",required:l.required,disabled:r.readOnly||s.busy},null,8,Fo)),[[e.vModelText,s.values[l.key],void 0,{number:!0}]]):l.type==="date"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:3,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"date",class:"wm-form__input",required:l.required,disabled:r.readOnly||s.busy},null,8,Po)),[[e.vModelText,s.values[l.key]]]):l.type==="boolean"?(e.openBlock(),e.createElementBlock("label",jo,[e.withDirectives(e.createElementVNode("input",{id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,type:"checkbox",disabled:r.readOnly||s.busy},null,8,Uo),[[e.vModelCheckbox,s.values[l.key]]]),e.createElementVNode("span",null,e.toDisplayString(l.placeholder||"Oui"),1)])):l.type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:5,id:`wm-f-${s._uid}-${l.key}`,"onUpdate:modelValue":p=>s.values[l.key]=p,class:"wm-form__select",required:l.required,disabled:r.readOnly||s.busy},[e.createElementVNode("option",Ho,e.toDisplayString(l.placeholder||"Choisir…"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,p=>(e.openBlock(),e.createElementBlock("option",{key:p.value,value:p.value},e.toDisplayString(p.label),9,qo))),128))],8,zo)),[[e.vModelSelect,s.values[l.key]]]):l.type==="multiselect"?(e.openBlock(),e.createElementBlock("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,p=>(e.openBlock(),e.createElementBlock("label",{key:p.value,class:"wm-form__multiItem"},[e.createElementVNode("input",{type:"checkbox",value:p.value,checked:Array.isArray(s.values[l.key])&&s.values[l.key].includes(p.value),disabled:r.readOnly||s.busy,onChange:v=>o.toggleMulti(l.key,p.value,v.target.checked)},null,40,Wo),e.createElementVNode("span",null,e.toDisplayString(p.label),1)]))),128))])):e.createCommentVNode("",!0)]))),128)),s.error?(e.openBlock(),e.createElementBlock("div",Go,e.toDisplayString(s.error),1)):e.createCommentVNode("",!0),r.readOnly?(e.openBlock(),e.createElementBlock("div",Jo,"Réponse envoyée")):(e.openBlock(),e.createElementBlock("button",{key:1,type:"submit",class:"wm-form__submit",disabled:s.busy},[s.busy?(e.openBlock(),e.createElementBlock("span",Xo)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(s.busy?"Envoi…":r.form.submit_label||"Envoyer"),1)],8,Yo))],32)])}const De=N(Vo,[["render",Qo],["__scopeId","data-v-64b40f76"]]),Zo={name:"WmFeedback",props:{busy:{type:Boolean,default:!1},done:{type:Boolean,default:!1}},emits:["submit"],data(){return{sel:null,options:[{v:1,e:"😞",l:"Pas bien"},{v:2,e:"😐",l:"Moyen"},{v:3,e:"🙂",l:"Bien"},{v:4,e:"😄",l:"Super"},{v:5,e:"🤩",l:"Excellent"}]}},methods:{onSend(){!this.sel||this.busy||this.$emit("submit",{rating:this.sel})}}},es={class:"wm-fb"},ts={class:"wm-fb__row"},ns=["onClick"],rs={class:"wm-fb__emoji"},os={class:"wm-fb__label"},ss=["disabled"],as={key:1,class:"wm-fb__done"};function is(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",es,[r.done?(e.openBlock(),e.createElementBlock("div",as,[...n[3]||(n[3]=[e.createStaticVNode('<div class="wm-fb__check" data-v-6f45ff3b><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-6f45ff3b><path d="M20 6L9 17l-5-5" data-v-6f45ff3b></path></svg></div><div class="wm-fb__doneTitle" data-v-6f45ff3b>Merci pour votre retour !</div><div class="wm-fb__doneSub" data-v-6f45ff3b>Votre avis a bien été pris en compte.</div>',3)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[1]||(n[1]=e.createElementVNode("div",{class:"wm-fb__title"},"Comment s'est passée cette conversation ?",-1)),n[2]||(n[2]=e.createElementVNode("div",{class:"wm-fb__sub"},"Votre avis nous aide à améliorer l'assistant.",-1)),e.createElementVNode("div",ts,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.options,i=>(e.openBlock(),e.createElementBlock("button",{key:i.v,type:"button",class:e.normalizeClass(["wm-fb__opt",{"is-selected":s.sel===i.v}]),onClick:l=>s.sel=i.v},[e.createElementVNode("span",rs,e.toDisplayString(i.e),1),e.createElementVNode("span",os,e.toDisplayString(i.l),1)],10,ns))),128))]),e.createElementVNode("button",{type:"button",class:"wm-fb__send",disabled:!s.sel||r.busy,onClick:n[0]||(n[0]=(...i)=>o.onSend&&o.onSend(...i))},e.toDisplayString(r.busy?"Envoi…":"Envoyer mon avis"),9,ss)],64))])}const Le=N(Zo,[["render",is],["__scopeId","data-v-6f45ff3b"]]),ls={name:"WmMoreMenu",props:{canRename:{type:Boolean,default:!0},canExport:{type:Boolean,default:!0},soundEnabled:{type:Boolean,default:!0},browserNotifEnabled:{type:Boolean,default:!1},statusUrl:{type:String,default:""},helpUrl:{type:String,default:""}},emits:["close","action","sound-toggle","browser-notif-toggle"],data(){return{soundOn:this.soundEnabled,browserNotifOn:this.browserNotifEnabled}},watch:{soundEnabled(t){this.soundOn=!!t},browserNotifEnabled(t){this.browserNotifOn=!!t}},methods:{emit(t){this.$emit("action",t)},toggleSound(){this.soundOn=!this.soundOn,this.$emit("sound-toggle",this.soundOn)},toggleBrowserNotif(){this.browserNotifOn=!this.browserNotifOn,this.$emit("browser-notif-toggle",this.browserNotifOn)}}},cs={class:"wm-mm"},ds={class:"wm-mm__pop",role:"menu"},us={key:0,class:"wm-mm__section"},ms={key:1,class:"wm-mm__sep"},hs={class:"wm-mm__section"},fs={class:"wm-mm__section"};function ps(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",cs,[e.createElementVNode("div",{class:"wm-mm__scrim",onClick:n[0]||(n[0]=i=>t.$emit("close"))}),e.createElementVNode("div",ds,[r.canRename||r.canExport?(e.openBlock(),e.createElementBlock("div",us,[r.canRename?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-mm__item",onClick:n[1]||(n[1]=i=>o.emit("rename"))},[...n[7]||(n[7]=[e.createStaticVNode('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M12 20h9" data-v-3a73911b></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Modifier le titre</span>',2)])])):e.createCommentVNode("",!0),r.canExport?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"wm-mm__item",onClick:n[2]||(n[2]=i=>o.emit("export"))},[...n[8]||(n[8]=[e.createStaticVNode('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Exporter la transcription</span><span class="wm-mm__hint" data-v-3a73911b>.txt</span>',3)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.canRename||r.canExport?(e.openBlock(),e.createElementBlock("div",ms)):e.createCommentVNode("",!0),e.createElementVNode("div",hs,[e.createElementVNode("button",{type:"button",class:"wm-mm__item",onClick:n[3]||(n[3]=(...i)=>o.toggleSound&&o.toggleSound(...i))},[n[10]||(n[10]=e.createStaticVNode('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M11 5L6 9H2v6h4l5 4V5z" data-v-3a73911b></path><path d="M15.54 8.46a5 5 0 010 7.07M19.07 4.93a10 10 0 010 14.14" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Son</span>',2)),e.createElementVNode("span",{class:e.normalizeClass(["wm-mm__toggle",{"wm-mm__toggle--on":s.soundOn}])},[...n[9]||(n[9]=[e.createElementVNode("span",{class:"wm-mm__knob"},null,-1)])],2)]),e.createElementVNode("button",{type:"button",class:"wm-mm__item",onClick:n[4]||(n[4]=(...i)=>o.toggleBrowserNotif&&o.toggleBrowserNotif(...i))},[n[12]||(n[12]=e.createElementVNode("span",{class:"wm-mm__icon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 10-12 0v3.2c0 .5-.2 1-.6 1.4L4 17h5m6 0a3 3 0 11-6 0"})])],-1)),n[13]||(n[13]=e.createElementVNode("span",{class:"wm-mm__label"},"Notifications navigateur",-1)),e.createElementVNode("span",{class:e.normalizeClass(["wm-mm__toggle",{"wm-mm__toggle--on":s.browserNotifOn}])},[...n[11]||(n[11]=[e.createElementVNode("span",{class:"wm-mm__knob"},null,-1)])],2)])]),n[16]||(n[16]=e.createElementVNode("div",{class:"wm-mm__sep"},null,-1)),e.createElementVNode("div",fs,[r.statusUrl?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-mm__item",onClick:n[5]||(n[5]=i=>o.emit("status"))},[...n[14]||(n[14]=[e.createElementVNode("span",{class:"wm-mm__icon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM10 6v4l3 2"})])],-1),e.createElementVNode("span",{class:"wm-mm__label"},"Statut des services",-1)])])):e.createCommentVNode("",!0),r.helpUrl?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"wm-mm__item",onClick:n[6]||(n[6]=i=>o.emit("help"))},[...n[15]||(n[15]=[e.createElementVNode("span",{class:"wm-mm__icon"},[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M9 11a3 3 0 116 0c0 2-3 2-3 5M12 19h.01M12 22a10 10 0 110-20 10 10 0 010 20z"})])],-1),e.createElementVNode("span",{class:"wm-mm__label"},"Centre d'aide",-1)])])):e.createCommentVNode("",!0)])])])}const Re=N(ls,[["render",ps],["__scopeId","data-v-3a73911b"]]),_s={name:"WmRenameDialog",props:{title:{type:String,default:"Modifier le titre"},initialValue:{type:String,default:""},placeholder:{type:String,default:"Titre de la conversation"}},emits:["close","submit"],data(){return{value:this.initialValue||""}},computed:{canSubmit(){const t=(this.value||"").trim();return!!t&&t!==(this.initialValue||"").trim()}},mounted(){this.$nextTick(()=>{const t=this.$refs.input;if(t){t.focus();try{t.select()}catch{}}})},methods:{onSubmit(){this.canSubmit&&this.$emit("submit",this.value.trim())}}},gs={class:"wm-dialog"},vs={class:"wm-dialog__card",role:"dialog","aria-modal":"true"},ys={class:"wm-dialog__head"},ks={class:"wm-dialog__title"},ws={class:"wm-dialog__body"},bs=["placeholder"],Es={class:"wm-dialog__actions"},Cs=["disabled"];function Bs(t,n,r,a,s,o){return e.openBlock(),e.createElementBlock("div",gs,[e.createElementVNode("div",{class:"wm-dialog__scrim",onClick:n[0]||(n[0]=i=>t.$emit("close"))}),e.createElementVNode("div",vs,[e.createElementVNode("div",ys,[e.createElementVNode("div",ks,e.toDisplayString(r.title),1),e.createElementVNode("button",{type:"button",class:"wm-dialog__close","aria-label":"Fermer",onClick:n[1]||(n[1]=i=>t.$emit("close"))},[...n[7]||(n[7]=[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),e.createElementVNode("div",ws,[e.withDirectives(e.createElementVNode("input",{ref:"input","onUpdate:modelValue":n[2]||(n[2]=i=>s.value=i),type:"text",class:"wm-dialog__input",placeholder:r.placeholder,maxlength:120,onKeydown:[n[3]||(n[3]=e.withKeys(e.withModifiers((...i)=>o.onSubmit&&o.onSubmit(...i),["prevent"]),["enter"])),n[4]||(n[4]=e.withKeys(e.withModifiers(i=>t.$emit("close"),["prevent"]),["esc"]))]},null,40,bs),[[e.vModelText,s.value]])]),e.createElementVNode("div",Es,[e.createElementVNode("button",{type:"button",class:"wm-dialog__btn",onClick:n[5]||(n[5]=i=>t.$emit("close"))},"Annuler"),e.createElementVNode("button",{type:"button",class:"wm-dialog__btn wm-dialog__btn--primary",disabled:!o.canSubmit,onClick:n[6]||(n[6]=(...i)=>o.onSubmit&&o.onSubmit(...i))},"Enregistrer",8,Cs)])])])}const Ns=N(_s,[["render",Bs],["__scopeId","data-v-4f4b37c9"]]),le="ww-messenger-tokens",Ss={name:"Messenger",components:{Launcher:fe,Header:_e,Onboarding:ge,MessageList:Se,Composer:xe,SuggestionChips:Oe,ApprovalCard:Ie,FormCard:De,Feedback:Le,MoreMenu:Re,RenameDialog:Ns},mixins:[Qe,ot,st,it],provide(){return{signAttachmentFn:t=>{var n,r;return((r=(n=this.store)==null?void 0:n.signAttachment)==null?void 0:r.call(n,t))||null}}},props:{baseUrl:{type:String,default:me},widgetId:{type:String,default:""},userId:{type:String,default:""},userHash:{type:String,default:""},customer:{type:Object,default:null},displayMode:{type:String,default:"floating"},devtools:{type:Boolean,default:!1}},data(){return{transport:null,store:null,isOpen:!1,draft:"",busy:!1,bootError:null,pendingAttachments:[],feedbackBusy:!1,feedbackDone:!1,convOpenedAt:0,moreOpen:!1,renameDialogOpen:!1,draftConv:null,activeConvId:null,showOnboarding:!1,dismissedPeeks:{},floatHeight:0,floatRO:null}},computed:{isEditor(){return!!this.devtools},isEmbedded(){return this.displayMode==="embedded"},error(){var t;return this.bootError||((t=this.s)==null?void 0:t.error)||null},canBoot(){return!!(this.baseUrl&&this.widgetId&&this.userId&&this.userHash)},s(){var t;return((t=this.store)==null?void 0:t.state)||null},ready(){var t;return!!((t=this.s)!=null&&t.ready)},allConversations(){var n;const t=(n=this.s)==null?void 0:n.conversations;return Array.isArray(t)?t:[]},drawerConversations(){var n;const t=((n=this.s)==null?void 0:n.messagesByConv)||{};return this.allConversations.map(r=>{var l;const a=t[r.id]||[],s=R(r.last_read_message_id);let o=0,i=null;for(let p=a.length-1;p>=0;p--){const v=a[p];if(!v)continue;if(((l=v.author)==null?void 0:l.type)==="user")break;const y=R(v.id);if(y!=null){if(s!=null&&y<=s)break;!i&&v.author&&(i=v.author),o++}}return{...r,_preview:Ge(r,a),_unread:o>0,_unreadCount:o,_lastAuthor:i}})},unreadCount(){return this.drawerConversations.filter(t=>t._unread).length},openThreads(){var n;const t=((n=this.s)==null?void 0:n.messagesByConv)||{};return this.drawerConversations.filter(r=>r.status!=="resolved").map(r=>({id:r.id,title:r.name||"Nouvelle conversation",preview:r._preview||"Nouveau message",unread:!!r._unread,_ts:oe(r,t[r.id]||[])})).sort((r,a)=>r._ts<a._ts?1:r._ts>a._ts?-1:0)},latestUnreads(){var r;const t=((r=this.s)==null?void 0:r.messagesByConv)||{},n=[];for(const a of this.drawerConversations){if(!a._unread)continue;const s=oe(a,t[a.id]||[]),o=a._lastAuthor,i=!o||o.type==="agent_ia",l=(o==null?void 0:o.name)||(i?this.agentName:"")||"",p=(o==null?void 0:o.avatar_url)||(i?this.agentAvatarUrl:null);n.push({convId:a.id,preview:a._preview||"Vous avez un nouveau message",ts:s,count:a._unreadCount||1,senderName:l,senderAvatarUrl:p})}return n.sort((a,s)=>a.ts<s.ts?1:a.ts>s.ts?-1:0),n},launcherPeeks(){if(this.isOpen||this.isEmbedded)return[];const t=this.dismissedPeeks||{};return this.latestUnreads.filter(n=>t[n.convId]!==n.ts)},isViewingThread(){return(this.isOpen||this.isEmbedded)&&!!this.currentConv},currentConv(){if(this.draftConv)return this.draftConv;if(this.showOnboarding)return null;const t=this.allConversations;if(!t.length)return null;if(this.activeConvId!=null){const n=t.find(r=>r.id===this.activeConvId);if(n)return n}return t[0]||null},canBack(){return!!this.currentConv},statusUrl(){var r;const t=(r=this.widget)==null?void 0:r.quick_links;if(!Array.isArray(t))return"";const n=t.find(a=>a.icon==="status"&&a.url);return(n==null?void 0:n.url)||""},helpUrl(){var r;const t=(r=this.widget)==null?void 0:r.quick_links;if(!Array.isArray(t))return"";const n=t.find(a=>(a.icon==="chat"||a.icon==="help")&&a.url);return(n==null?void 0:n.url)||""},widget(){var t,n;return((n=(t=this.s)==null?void 0:t.config)==null?void 0:n.widget)||null},widgetWelcomeMessage(){var t;return((t=this.widget)==null?void 0:t.welcome_message)||""},agentName(){var t,n,r;return((r=(n=(t=this.s)==null?void 0:t.config)==null?void 0:n.agent)==null?void 0:r.name)||""},agentAvatarUrl(){var t,n,r;return((r=(n=(t=this.s)==null?void 0:t.config)==null?void 0:n.agent)==null?void 0:r.avatar_url)||null},quickLinks(){var n;const t=(n=this.widget)==null?void 0:n.quick_links;return Array.isArray(t)?t:[]},teamMembers(){var n;const t=(n=this.widget)==null?void 0:n.team_members;return Array.isArray(t)?t:[]},responseLabel(){var t;return((t=this.widget)==null?void 0:t.response_time_label)||""},humanMessageAuthor(){var n,r,a;if(!this.currentConv)return null;const t=((n=this.s.messagesByConv)==null?void 0:n[this.currentConv.id])||[];for(let s=t.length-1;s>=0;s--)if(((a=(r=t[s])==null?void 0:r.author)==null?void 0:a.type)==="agent_human")return t[s].author;return null},humanAgentName(){var t;return((t=this.humanMessageAuthor)==null?void 0:t.name)||""},humanAgentAvatarUrl(){var t;return((t=this.humanMessageAuthor)==null?void 0:t.avatar_url)||null},isEscalated(){return!!this.humanMessageAuthor},isWaitingHuman(){var n;const t=(n=this.currentConv)==null?void 0:n.status;return t==="waiting"||t==="handled"},headerTitle(){var t,n;return((t=this.currentConv)==null?void 0:t.name)||((n=this.widget)==null?void 0:n.name)||"Nouvelle conversation"},composerPlaceholder(){return this.isEscalated&&this.humanAgentName?`Répondre à ${this.humanAgentName.split(" ")[0]}…`:this.isWaitingHuman?"Un agent prend le relais…":"Écrivez votre message…"},displayedMessages(){const t=this.currentConv;if(!t)return[];const n=this.revealedAt;return(this.s.messagesByConv[t.id]||[]).filter(r=>{var a,s,o,i,l;return(r==null?void 0:r.type)==="action"&&((a=r==null?void 0:r.payload)==null?void 0:a.state)==="pending"||G(r)&&!(n[r.id]>0)?!1:(r==null?void 0:r.type)==="action"||(r==null?void 0:r.type)==="system"||((s=r==null?void 0:r.payload)==null?void 0:s.type)==="system"||Array.isArray((o=r==null?void 0:r.payload)==null?void 0:o.attachments)&&r.payload.attachments.length||(i=r==null?void 0:r.metadata)!=null&&i.artifact||(l=r==null?void 0:r.metadata)!=null&&l.form?!0:typeof(r==null?void 0:r.text_md)=="string"&&r.text_md.trim().length>0})},streamingActive(){var r,a,s;const t=this.currentConv;return t?Object.keys(((r=this.s)==null?void 0:r.streamingByMsgId)||{}).length>0?!0:this.actionInFlight?!1:(((s=(a=this.s)==null?void 0:a.messagesByConv)==null?void 0:s[t.id])||[]).some(o=>G(o)&&!(this.revealedAt[o.id]>0)):!1},currentConvMessages(){var n,r,a;const t=(n=this.currentConv)==null?void 0:n.id;return t?((a=(r=this.s)==null?void 0:r.messagesByConv)==null?void 0:a[t])||[]:[]},pendingApproval(){return!this.currentConv||!this.store||this.actionInFlight?null:this.store.getPendingApproval(this.currentConv.id)},approvalReady(){return this.pendingApproval?this.pendingApproval.id===this.approvalLatchId?!0:!(this.streamingActive||!this.approvalSettled):!1},approvalTitle(){var t,n,r;return((n=(t=this.pendingApproval)==null?void 0:t.payload)==null?void 0:n.name)||((r=this.pendingApproval)==null?void 0:r.text_md)||"Confirmer l'action"},approvalDetail(){var a,s,o,i,l,p;const t=(o=(s=(a=this.pendingApproval)==null?void 0:a.payload)==null?void 0:s.pending)==null?void 0:o.user_explanation;if(typeof t=="string"&&t.trim())return t.trim();const n=(p=(l=(i=this.pendingApproval)==null?void 0:i.payload)==null?void 0:l.pending)==null?void 0:p.prepared_params;if(!n||typeof n!="object")return"";const r=Object.entries(n);return r.length?r.slice(0,2).map(([v,y])=>`${v}: ${y}`).join(" · "):""},actionInFlight(){var t,n;return!this.currentConv||!this.store?null:((n=(t=this.store).getActionInFlight)==null?void 0:n.call(t,this.currentConv.id))||null},actionInFlightName(){var n;const t=this.actionInFlight;return t?((n=t.payload)==null?void 0:n.name)||t.text_md||"Action":""},suggestions(){return!this.currentConv||!this.store?[]:this.streamingActive?[]:this.pendingForm?[]:this.store.getLatestSuggestions(this.currentConv.id)},pendingForm(){var t,n;return!this.currentConv||!this.store||this.pendingApproval||this.actionInFlight||this.streamingActive||!this.approvalSettled?null:((n=(t=this.store).getLatestForm)==null?void 0:n.call(t,this.currentConv.id))||null},showFeedback(){var n;const t=this.currentConv;return t?this.feedbackDone?!0:t.status!=="resolved"?!1:!((n=t.metadata)!=null&&n.feedback):!1},floatVisible(){return this.approvalReady||!!this.pendingForm||this.showFeedback||this.suggestions.length>0},dateLabel(){var r,a,s;const t=this.currentConv;let n=new Date;if(t){const i=((s=(((a=(r=this.s)==null?void 0:r.messagesByConv)==null?void 0:a[t.id])||[]).find(l=>l==null?void 0:l.created_at))==null?void 0:s.created_at)||t.created_at;if(i){const l=new Date(i);Number.isNaN(l.getTime())||(n=l)}}return`Aujourd'hui · ${ee(n)}`},paginationState(){var r,a,s;const t=(r=this.currentConv)==null?void 0:r.id,n=t?(s=(a=this.s)==null?void 0:a.paginationByConv)==null?void 0:s[t]:null;return{loading:!!(n!=null&&n.loading),hasMore:!!(n!=null&&n.nextCursor)}}},watch:{latestUnreads:{handler(t){const n=new Set(t.map(i=>i.convId)),r=this.dismissedPeeks||{},a=Object.keys(r);if(!a.length)return;const s={};let o=!1;for(const i of a)n.has(i)?s[i]=r[i]:o=!0;o&&(this.dismissedPeeks=s)},deep:!0},"currentConv.id":{handler(t){var n;this.resetRevealQueue(),this.convOpenedAt=Date.now(),this.moreOpen=!1,this.renameDialogOpen=!1,this.resetApprovalPacing(),this.isViewingThread&&(this.unreadAnchorId=R((n=this.currentConv)==null?void 0:n.last_read_message_id),this.unreadBoundaryTs=t?new Date().toISOString():"")},immediate:!0},isViewingThread(t,n){var r;t&&!n?(this.unreadAnchorId=R((r=this.currentConv)==null?void 0:r.last_read_message_id),this.unreadBoundaryTs=new Date().toISOString()):t||(this.unreadAnchorId=null,this.unreadBoundaryTs="")},pendingApproval:{handler(t,n){if(t&&!n){const r=t!=null&&t.created_at?Date.parse(t.created_at):NaN;if(!(Number.isFinite(r)&&r>=this.convOpenedAt)){this.resetApprovalPacing();return}this.bumpApprovalSettle(2600)}else!t&&n&&this.resetApprovalPacing()},immediate:!1},streamingActive(t,n){t!==n&&this.pendingApproval&&this.pendingApproval.id!==this.approvalLatchId&&this.bumpApprovalSettle()},approvalReady(t){t&&this.pendingApproval&&(this.approvalLatchId=this.pendingApproval.id)},floatVisible:{handler(t){this.$nextTick(()=>this.syncFloatObserver(t))},immediate:!0},currentConvMessages(t){this.paceMessages(t),(this.isOpen||this.isEmbedded)&&this.currentConv&&this.markConvRead(this.currentConv)}},async mounted(){if(typeof document<"u"&&!document.getElementById(le)){const t=document.createElement("style");t.id=le,t.textContent=ue,document.head.appendChild(t)}await this.boot(),this.isEmbedded&&this.store&&await this.open()},beforeUnmount(){this.cancelReveals(),this.disconnectFloatRO(),this.resetApprovalPacing(),this.teardownNotifications(),this.store&&this.store.destroy()},methods:{async boot(){if(!this.canBoot){console.warn("[messenger] boot skipped — missing creds");return}try{this.transport=e.markRaw(ce({baseUrl:this.baseUrl,widgetId:this.widgetId,userId:this.userId,userHash:this.userHash})),this.store=e.markRaw(de(this.transport)),this.hydrateNotifPref(),this.setupNotifications(),await this.store.start(),this.customer&&typeof this.customer=="object"&&await this.store.applyCustomer(this.customer)}catch(t){console.error("[ww-messenger] bootstrap failed",t),this.bootError=(t==null?void 0:t.message)||String(t)}},async refresh(){this.store&&this.store.destroy(),this.cancelReveals(),this.teardownNotifications(),this.convOpenedAt=0,this.transport=null,this.store=null,this.isOpen=!1,this.draft="",this.busy=!1,this.bootError=null,this.pendingAttachments=[],this.feedbackBusy=!1,this.feedbackDone=!1,this.moreOpen=!1,this.renameDialogOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!1,await this.boot(),this.isEmbedded&&this.store&&await this.open()},syncFloatObserver(t){if(this.disconnectFloatRO(),!t){this.floatHeight=0;return}const n=this.$refs.floatEl;if(n){if(typeof ResizeObserver>"u"){this.floatHeight=Math.ceil(n.getBoundingClientRect().height+8);return}this.floatRO=new ResizeObserver(r=>{const a=r[0];if(!a)return;const s=Math.ceil(a.contentRect.height+8);s!==this.floatHeight&&(this.floatHeight=s,this.$nextTick(()=>{var o,i;(i=(o=this.$refs.messageList)==null?void 0:o.scrollToBottom)==null||i.call(o)}))}),this.floatRO.observe(n)}},disconnectFloatRO(){if(this.floatRO){try{this.floatRO.disconnect()}catch{}this.floatRO=null}},async open(){this.isOpen=!0,this.store&&this.store.setPanelOpen(!0);const t=this.currentConv;if(t&&!t._draft){this.activeConvId==null&&(this.activeConvId=t.id);try{await this.store.openConversation(t.id)}catch(n){console.error("[ww-messenger] load messages failed",n)}this.markConvRead(t)}},close(){this.isOpen=!1,this.store&&this.store.setPanelOpen(!1)},async openFromPeek(t){var r,a;const n=t||((r=this.latestUnreads[0])==null?void 0:r.convId);n&&n!==((a=this.currentConv)==null?void 0:a.id)&&(this.draftConv=null,this.activeConvId=n,this.showOnboarding=!1),await this.open()},dismissPeek(t){const n=this.latestUnreads.find(r=>r.convId===t);n&&(this.dismissedPeeks={...this.dismissedPeeks,[t]:n.ts})},startConv(){this.draftConv={id:"__draft__",_draft:!0,name:"",created_at:new Date().toISOString()},this.activeConvId=null,this.showOnboarding=!1,this.focusComposer()},async ensureRealConv(){const t=this.currentConv;if(!t)return null;if(!t._draft)return t;if(this.busy)return null;this.busy=!0;try{const n=await this.store.createConversation({});return this.draftConv=null,this.activeConvId=n.id,await this.store.openConversation(n.id),this.markConvRead(n),n}catch(n){return console.error("[ww-messenger] create conv failed",n),this.bootError=(n==null?void 0:n.message)||String(n),null}finally{this.busy=!1}},focusComposer(){this.$nextTick(()=>{var t;return(t=this.$refs.composer)==null?void 0:t.focus()})},toggleMore(){this.moreOpen=!this.moreOpen},goHome(){this.moreOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!0},async onDrawerPick(t){if(!(t!=null&&t.id)||!this.store)return;this.draftConv=null,this.activeConvId=t.id,this.showOnboarding=!1;try{await this.store.openConversation(t.id)}catch(r){console.error("[ww-messenger] open conv failed",r)}const n=this.allConversations.find(r=>r.id===t.id);n&&this.markConvRead(n)},async onMoreAction(t){var n,r;switch(this.moreOpen=!1,t){case"rename":this.openRenameDialog();break;case"export":Je(this.currentConv,this.currentConv?(r=(n=this.s)==null?void 0:n.messagesByConv)==null?void 0:r[this.currentConv.id]:[]);break;case"status":if(this.statusUrl)try{window.open(this.statusUrl,"_blank","noopener")}catch{}break;case"help":if(this.helpUrl)try{window.open(this.helpUrl,"_blank","noopener")}catch{}break}},openRenameDialog(){const t=this.currentConv;!t||t._draft||(this.renameDialogOpen=!0)},async onRenameSubmit(t){const n=this.currentConv;if(this.renameDialogOpen=!1,!n||n._draft||!this.store)return;const r=(t||"").trim();if(!(!r||r===n.name))try{await this.store.patchConversation(n.id,{name:r})}catch(a){console.error("[ww-messenger] rename failed",a)}},async onSend(t){let n=this.currentConv;if(!n&&(this.startConv(),n=this.currentConv,!n)||n._draft&&(n=await this.ensureRealConv(),!n))return;const r=n.id,a=this.pendingAttachments.slice();this.pendingAttachments=[],this.unreadAnchorId=null,this.unreadBoundaryTs="",await this.store.send(r,t,{attachments:a.length?a:void 0})},async onSuggestion(t){const n=t==null?void 0:t.label;n&&await this.onSend(n)},async onLoadMore(){var n;const t=(n=this.currentConv)==null?void 0:n.id;!t||!this.store||await this.store.loadMore(t)},async onApprovalCallback(t){const n=this.pendingApproval;n&&await this.store.clickCallback(n.id,t)},async onFormSubmit({values:t}){const n=this.pendingForm;if(!(n!=null&&n.form))return;const r=Ke(n.form,t);if(!r)return;let a=this.currentConv;a&&(a._draft&&(a=await this.ensureRealConv(),!a)||await this.store.send(a.id,r,{metadata:{artifact:We(n.form,t)}}))},async onAttach(t){if(!(!t||!this.transport))try{const n=await this.transport.uploadAttachment(t);this.pendingAttachments.push({type:n.type||"file",path:n.path,name:t.name||"fichier",mime_type:t.type,size_bytes:t.size})}catch(n){console.error("[ww-messenger] attachment upload failed",n)}},async onQuickLink(t){if(t){if(t.url){try{window.open(t.url,"_blank","noopener")}catch{}return}this.currentConv||this.startConv(),await this.onSend(t.label)}},async onFeedback({rating:t,comment:n}){if(this.currentConv){this.feedbackBusy=!0;try{await this.store.submitFeedback(this.currentConv.id,{rating:t,comment:n}),this.feedbackDone=!0}catch(r){console.error("[ww-messenger] feedback failed",r)}finally{this.feedbackBusy=!1}}}}},Vs={key:0,class:"wm-loading","aria-busy":"true","aria-live":"polite"},As={key:0,class:"wm-state"},Ms={class:"wm-state__err"},Ts={class:"wm-state__errSub"},xs={class:"wm-bottom"},Os={key:0,ref:"floatEl",class:"wm-float"},Is={key:1,class:"wm-actionWait",role:"status","aria-live":"polite"},Ds={class:"wm-actionWait__lbl"},Ls={key:2,class:"wm-attached"},Rs=["onClick"];function $s(t,n,r,a,s,o){const i=e.resolveComponent("Launcher"),l=e.resolveComponent("Header"),p=e.resolveComponent("Onboarding"),v=e.resolveComponent("MessageList"),y=e.resolveComponent("ApprovalCard"),E=e.resolveComponent("FormCard"),S=e.resolveComponent("Feedback"),k=e.resolveComponent("SuggestionChips"),x=e.resolveComponent("Composer"),w=e.resolveComponent("MoreMenu"),M=e.resolveComponent("RenameDialog");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["wm-root",`wm-root--${r.displayMode}`])},[!s.isOpen&&!o.isEmbedded?(e.openBlock(),e.createBlock(i,{key:0,"unread-count":o.unreadCount,peeks:o.launcherPeeks,onOpen:o.openFromPeek,onDismiss:o.dismissPeek},null,8,["unread-count","peeks","onOpen","onDismiss"])):e.createCommentVNode("",!0),s.isOpen||o.isEmbedded?(e.openBlock(),e.createElementBlock("section",{key:1,class:e.normalizeClass(["wm-panel",`wm-panel--${r.displayMode}`]),style:e.normalizeStyle(s.floatHeight?{"--wm-float-h":s.floatHeight+"px"}:null),role:"dialog","aria-label":"Messenger"},[!o.ready&&!o.error?(e.openBlock(),e.createElementBlock("div",Vs,[o.isEmbedded?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"wm-loading__close","aria-label":"Réduire",onClick:n[0]||(n[0]=(...V)=>o.close&&o.close(...V))},[...n[5]||(n[5]=[e.createElementVNode("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])),n[6]||(n[6]=e.createElementVNode("div",{class:"wm-loading__spinner","aria-hidden":"true"},null,-1))])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(l,{title:o.headerTitle,"team-members":o.teamMembers,"response-label":o.responseLabel,"show-identity":!!o.currentConv,"show-back":o.canBack,"show-close":!o.isEmbedded,"more-active":s.moreOpen,onBack:o.goHome,onMore:o.toggleMore,onClose:o.close},null,8,["title","team-members","response-label","show-identity","show-back","show-close","more-active","onBack","onMore","onClose"]),o.error?(e.openBlock(),e.createElementBlock("div",As,[e.createElementVNode("div",Ms,[n[8]||(n[8]=e.createElementVNode("div",{class:"wm-state__errIcon"},[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})])],-1)),e.createElementVNode("div",null,[n[7]||(n[7]=e.createElementVNode("div",{class:"wm-state__errTitle"},"Connexion impossible",-1)),e.createElementVNode("div",Ts,e.toDisplayString(o.error),1)])])])):o.currentConv?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(v,{ref:"messageList",messages:o.displayedMessages,"streaming-active":o.streamingActive,"date-label":o.dateLabel,"conversation-id":o.currentConv?o.currentConv.id:null,"loading-more":o.paginationState.loading,"has-more":o.paginationState.hasMore,"unread-anchor-id":t.unreadAnchorId,"unread-boundary-ts":t.unreadBoundaryTs,onLoadMore:o.onLoadMore},null,8,["messages","streaming-active","date-label","conversation-id","loading-more","has-more","unread-anchor-id","unread-boundary-ts","onLoadMore"]),e.createElementVNode("div",xs,[o.floatVisible?(e.openBlock(),e.createElementBlock("div",Os,[o.approvalReady?(e.openBlock(),e.createBlock(y,{key:0,action:o.approvalTitle,detail:o.approvalDetail,callbacks:o.pendingApproval.callbacks,onCallback:o.onApprovalCallback},null,8,["action","detail","callbacks","onCallback"])):o.pendingForm?(e.openBlock(),e.createBlock(E,{key:o.pendingForm.message&&o.pendingForm.message.id,form:o.pendingForm.form,onSubmit:o.onFormSubmit},null,8,["form","onSubmit"])):o.showFeedback?(e.openBlock(),e.createBlock(S,{key:2,busy:s.feedbackBusy,done:s.feedbackDone,onSubmit:o.onFeedback},null,8,["busy","done","onSubmit"])):(e.openBlock(),e.createBlock(k,{key:3,items:o.suggestions,onSelect:o.onSuggestion},null,8,["items","onSelect"]))],512)):e.createCommentVNode("",!0),o.actionInFlight?(e.openBlock(),e.createElementBlock("div",Is,[n[9]||(n[9]=e.createElementVNode("span",{class:"wm-actionWait__spinner","aria-hidden":"true"},null,-1)),e.createElementVNode("span",Ds,e.toDisplayString(o.actionInFlightName)+" en cours, veuillez patienter…",1)])):(e.openBlock(),e.createBlock(x,{key:2,ref:"composer",modelValue:s.draft,"onUpdate:modelValue":n[1]||(n[1]=V=>s.draft=V),placeholder:o.composerPlaceholder,disabled:!!o.pendingApproval,"attach-label":"Joindre un fichier",onSend:o.onSend,onAttach:o.onAttach},null,8,["modelValue","placeholder","disabled","onSend","onAttach"]))]),s.moreOpen?(e.openBlock(),e.createBlock(w,{key:0,"can-rename":!!o.currentConv&&!o.currentConv._draft,"can-export":!!o.currentConv&&!o.currentConv._draft,"sound-enabled":t.soundEnabled,"browser-notif-enabled":t.browserNotifEnabled,"status-url":o.statusUrl,"help-url":o.helpUrl,onClose:n[2]||(n[2]=V=>s.moreOpen=!1),onSoundToggle:t.onSoundToggle,onBrowserNotifToggle:t.onBrowserNotifToggle,onAction:o.onMoreAction},null,8,["can-rename","can-export","sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):e.createCommentVNode("",!0),s.renameDialogOpen&&o.currentConv&&!o.currentConv._draft?(e.openBlock(),e.createBlock(M,{key:1,"initial-value":o.currentConv.name||"",title:"Modifier le titre de la conversation",onClose:n[3]||(n[3]=V=>s.renameDialogOpen=!1),onSubmit:o.onRenameSubmit},null,8,["initial-value","onSubmit"])):e.createCommentVNode("",!0),s.pendingAttachments.length?(e.openBlock(),e.createElementBlock("div",Ls,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.pendingAttachments,(V,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"wm-attached__chip"},[n[11]||(n[11]=e.createElementVNode("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)),e.createElementVNode("span",null,e.toDisplayString(V.name),1),e.createElementVNode("button",{type:"button","aria-label":"Retirer",onClick:D=>s.pendingAttachments.splice(T,1)},[...n[10]||(n[10]=[e.createElementVNode("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])],8,Rs)]))),128))])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createBlock(p,{key:1,"welcome-message":o.widgetWelcomeMessage,"agent-name":o.agentName,"quick-links":o.quickLinks,"open-threads":o.openThreads,busy:s.busy,onStart:o.startConv,onSelect:o.onQuickLink,onResume:o.onDrawerPick},null,8,["welcome-message","agent-name","quick-links","open-threads","busy","onStart","onSelect","onResume"])),s.moreOpen&&!o.currentConv?(e.openBlock(),e.createBlock(w,{key:3,"can-rename":!1,"can-export":!1,"sound-enabled":t.soundEnabled,"browser-notif-enabled":t.browserNotifEnabled,"status-url":o.statusUrl,"help-url":o.helpUrl,onClose:n[4]||(n[4]=V=>s.moreOpen=!1),onSoundToggle:t.onSoundToggle,onBrowserNotifToggle:t.onBrowserNotifToggle,onAction:o.onMoreAction},null,8,["sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):e.createCommentVNode("",!0)],64))],6)):e.createCommentVNode("",!0)],2)}const $e=N(Ss,[["render",$s],["__scopeId","data-v-4500d0e5"]]),Fs="0.3.12";exports.AIAvatar=j;exports.AVATAR_COLORS=W;exports.ActionResult=ve;exports.ApprovalCard=Ie;exports.ArtifactFormResponse=ye;exports.ArtifactInfoCard=ke;exports.ArtifactRenderer=be;exports.ArtifactTicket=we;exports.AttachmentPreview=Ee;exports.Bubble=Be;exports.Composer=xe;exports.DEFAULT_BASE_URL=me;exports.Feedback=Le;exports.FormCard=De;exports.Header=_e;exports.HumanAvatar=te;exports.Launcher=fe;exports.MEDIA_RECORDER_SUPPORTED=Y;exports.MessageList=Se;exports.Messenger=$e;exports.MoreMenu=Re;exports.Onboarding=ge;exports.SCREEN_CAPTURE_SUPPORTED=z;exports.SuggestionChips=Oe;exports.TeamAvatars=pe;exports.Typing=Ne;exports.VERSION=Fs;exports.avatarColor=Q;exports.avatarInitials=Z;exports.captureScreenshotFile=Me;exports.colors=A;exports.createStore=de;exports.createTransport=ce;exports.default=$e;exports.formatTime=ee;exports.guessAttachmentKind=Jr;exports.pickRecorderMime=Ve;exports.renderMarkdown=Ce;exports.startScreenRecording=Te;exports.tokensCss=ue;exports.uuid=J;exports.v4=J;
@@ -73,4 +73,4 @@ ${o}`)}return s.join(`
73
73
  Je réponds en quelques secondes.`},isOddQuickLinks(){return this.quickLinks.length%2===1},quickLinksLayout(){return this.isOddQuickLinks?"wm-onb__qlist":"wm-onb__grid"},filteredThreads(){const e=this.query.trim().toLowerCase();return e?this.openThreads.filter(t=>(t.title||"").toLowerCase().includes(e)||(t.preview||"").toLowerCase().includes(e)):this.openThreads}},methods:{iconPath(e){return mo[e]||mo.link},formatTs(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return"";const n=new Date;if(t.toDateString()===n.toDateString()){const i=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0");return`${i}h${o}`}if(n.getTime()-t.getTime()<7*864e5){const i=t.toLocaleDateString("fr-FR",{weekday:"short"});return i.charAt(0).toUpperCase()+i.slice(1)}return t.toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit"})}}},yu={class:"wm-onb"},vu={class:"wm-onb__hero"},bu={class:"wm-onb__title"},wu={class:"wm-onb__sub"},ku={class:"wm-onb__cta"},Cu=["disabled"],Au={key:0,class:"wm-onb__section"},Su=["onClick"],xu={class:"wm-onb__card-icon"},Tu={width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},Mu=["d"],Eu={class:"wm-onb__card-body"},Ou={class:"wm-onb__card-title"},Iu={key:0,class:"wm-onb__card-sub"},Ru={key:1,class:"wm-onb__section"},Lu={class:"wm-onb__search"},Bu={class:"wm-onb__list"},$u=["onClick"],Pu={key:0,class:"wm-onb__thread-dot","aria-label":"Non lu"},Nu={class:"wm-onb__thread-body"},Fu={class:"wm-onb__thread-title"},Du={class:"wm-onb__thread-preview"},ju={class:"wm-onb__thread-meta"},Uu={key:0,class:"wm-onb__thread-time"},Hu={key:0,class:"wm-onb__empty"};function Vu(e,t,n,s,r,i){const o=_e("AIAvatar");return m(),y("div",yu,[u("div",vu,[ge(o,{size:56,pulse:!0}),u("div",bu,D(i.heroTitle),1),u("div",wu,D(i.heroSub),1)]),u("div",ku,[u("button",{type:"button",class:"wm-onb__startBtn",disabled:n.busy,onClick:t[0]||(t[0]=a=>e.$emit("start"))},[t[2]||(t[2]=u("span",{class:"wm-onb__startIcon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M12 5v14M5 12h14"})])],-1)),u("span",null,D(n.busy?"…":"Commencer une conversation"),1)],8,Cu)]),n.quickLinks.length?(m(),y("div",Au,[t[3]||(t[3]=u("div",{class:"wm-onb__section-title"},"Accès rapide",-1)),u("div",{class:se(i.quickLinksLayout)},[(m(!0),y(Q,null,xe(n.quickLinks,(a,l)=>(m(),y("button",{key:l,type:"button",class:se(["wm-onb__card",{"wm-onb__card--row":i.isOddQuickLinks}]),onClick:f=>e.$emit("select",a)},[u("span",xu,[(m(),y("svg",Tu,[u("path",{d:i.iconPath(a.icon)},null,8,Mu)]))]),u("span",Eu,[u("span",Ou,D(a.label),1),a.description?(m(),y("span",Iu,D(a.description),1)):P("",!0)])],10,Su))),128))],2)])):P("",!0),n.openThreads.length?(m(),y("div",Ru,[t[7]||(t[7]=u("div",{class:"wm-onb__section-title"},"Conversations récentes",-1)),u("div",Lu,[t[4]||(t[4]=u("span",{class:"wm-onb__searchIcon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M21 21l-4.35-4.35M11 17a6 6 0 100-12 6 6 0 000 12z"})])],-1)),at(u("input",{"onUpdate:modelValue":t[1]||(t[1]=a=>r.query=a),type:"text",placeholder:"Rechercher dans vos messages","aria-label":"Rechercher dans vos messages"},null,512),[[Ot,r.query]])]),u("div",Bu,[(m(!0),y(Q,null,xe(i.filteredThreads,a=>(m(),y("button",{key:a.id,type:"button",class:"wm-onb__thread",onClick:l=>e.$emit("resume",a)},[u("span",{class:se(["wm-onb__thread-icon",{"wm-onb__thread-icon--inverted":!a.unread}])},[t[5]||(t[5]=u("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[u("path",{d:"M12 2 L13.5 9 L20 10.5 L13.5 12 L12 19 L10.5 12 L4 10.5 L10.5 9 Z",fill:"currentColor",opacity:"0.92"})],-1)),a.unread?(m(),y("span",Pu)):P("",!0)],2),u("span",Nu,[u("span",Fu,D(a.title),1),u("span",Du,D(a.preview),1)]),u("span",ju,[i.formatTs(a._ts)?(m(),y("span",Uu,D(i.formatTs(a._ts)),1)):P("",!0),t[6]||(t[6]=u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",class:"wm-onb__thread-chev","aria-hidden":"true"},[u("path",{d:"M5 12h14M13 5l7 7-7 7"})],-1))])],8,$u))),128)),i.filteredThreads.length?P("",!0):(m(),y("div",Hu," Aucun résultat pour « "+D(r.query)+" ». ",1))])])):P("",!0)])}const Ku=ve(_u,[["render",Vu],["__scopeId","data-v-c85f6958"]]);function Wu(e){return typeof e!="string"?"":e.replace(/`([^`]+)`/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(new RegExp("(?<!\\*)\\*([^*]+)\\*(?!\\*)","g"),"$1").replace(/__([^_]+)__/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/\s+/g," ").trim()}const qu={name:"WmActionResult",props:{state:{type:String,default:"success"},label:{type:String,required:!0},detail:{type:String,default:""}},computed:{detailText(){return Wu(this.detail)}}},zu={class:"wm-result__icon","aria-hidden":"true"},Gu={key:0,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.8","stroke-linecap":"round","stroke-linejoin":"round"},Yu={key:1,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.6","stroke-linecap":"round","stroke-linejoin":"round"},Ju={key:2,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.4","stroke-linecap":"round","stroke-linejoin":"round"},Xu={key:3,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},Qu={class:"wm-result__body"},Zu={class:"wm-result__label"},ed={class:"wm-result__detail"};function td(e,t,n,s,r,i){return m(),y("div",{class:se(["wm-result",`wm-result--${n.state}`])},[u("span",zu,[n.state==="success"?(m(),y("svg",Gu,[...t[0]||(t[0]=[u("path",{d:"M20 6L9 17l-5-5"},null,-1)])])):n.state==="rejected"?(m(),y("svg",Yu,[...t[1]||(t[1]=[u("path",{d:"M18 6L6 18M6 6l12 12"},null,-1)])])):n.state==="awaiting"?(m(),y("svg",Ju,[...t[2]||(t[2]=[u("circle",{cx:"12",cy:"12",r:"10"},null,-1),u("polyline",{points:"12 7 12 12 15 14"},null,-1)])])):(m(),y("svg",Xu,[...t[3]||(t[3]=[u("path",{d:"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"},null,-1),u("line",{x1:"12",y1:"9",x2:"12",y2:"13"},null,-1),u("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"},null,-1)])]))]),u("span",Qu,[u("span",Zu,D(n.label),1),i.detailText?(m(),y(Q,{key:0},[t[4]||(t[4]=u("span",{class:"wm-result__sep","aria-hidden":"true"}," · ",-1)),u("span",ed,D(i.detailText),1)],64)):P("",!0)])],2)}const nd=ve(qu,[["render",td],["__scopeId","data-v-64a83fb8"]]),sd={name:"WmArtifactFormResponse",props:{data:{type:Object,required:!0}},computed:{fields(){var e;return Array.isArray((e=this.data)==null?void 0:e.fields)?this.data.fields:[]}}},rd={class:"wm-art wm-art--formResponse"},id={class:"wm-art__head"},od={class:"wm-art__title"},ad={class:"wm-art__body"},ld={class:"wm-art__fieldLabel"};function cd(e,t,n,s,r,i){return m(),y("div",rd,[u("div",id,[u("div",od,D(n.data.title||"Formulaire"),1),t[0]||(t[0]=u("span",{class:"wm-art__badge wm-art__badge--success"},[u("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("polyline",{points:"20 6 9 17 4 12"})]),Gn(" Envoyé ")],-1))]),u("div",ad,[(m(!0),y(Q,null,xe(i.fields,(o,a)=>(m(),y("div",{key:a,class:"wm-art__field"},[u("div",ld,D(o.label),1),u("div",{class:se(["wm-art__fieldValue",{"wm-art__fieldValue--multi":o.multiline}])},D(o.value),3)]))),128))])])}const ud=ve(sd,[["render",cd],["__scopeId","data-v-ca24a9c9"]]),dd={name:"WmArtifactInfoCard",props:{data:{type:Object,required:!0}},computed:{fields(){var e;return Array.isArray((e=this.data)==null?void 0:e.fields)?this.data.fields:[]},hasBody(){var e;return!!((e=this.data)!=null&&e.body)||this.fields.length>0}}},fd={class:"wm-art wm-art--infoCard"},hd={key:0,class:"wm-art__image"},md=["src","alt"],pd={class:"wm-art__head"},gd={class:"wm-art__headMain"},_d={class:"wm-art__title"},yd={key:0,class:"wm-art__subtitle"},vd={key:1,class:"wm-art__body"},bd={key:0,class:"wm-art__text"},wd={class:"wm-art__fieldLabel"};function kd(e,t,n,s,r,i){return m(),y("div",fd,[n.data.image_url?(m(),y("figure",hd,[u("img",{src:n.data.image_url,alt:n.data.title||"",loading:"lazy"},null,8,md)])):P("",!0),u("div",pd,[u("div",gd,[u("div",_d,D(n.data.title),1),n.data.subtitle?(m(),y("div",yd,D(n.data.subtitle),1)):P("",!0)]),n.data.badge&&n.data.badge.label?(m(),y("span",{key:0,class:se(["wm-art__badge",`wm-art__badge--${n.data.badge.tone||"neutral"}`])},D(n.data.badge.label),3)):P("",!0)]),i.hasBody?(m(),y("div",vd,[n.data.body?(m(),y("div",bd,D(n.data.body),1)):P("",!0),i.fields.length?(m(!0),y(Q,{key:1},xe(i.fields,(o,a)=>(m(),y("div",{key:a,class:"wm-art__field"},[u("div",wd,D(o.label),1),u("div",{class:se(["wm-art__fieldValue",{"wm-art__fieldValue--multi":o.multiline}])},D(o.value),3)]))),128)):P("",!0)])):P("",!0)])}const Cd=ve(dd,[["render",kd],["__scopeId","data-v-d7369333"]]);function Ad(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return e;const n=t.toLocaleDateString("fr-FR",{day:"numeric",month:"long",year:"numeric"}),s=t.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit"});return`${n} à ${s}`}const Sd={name:"WmArtifactTicket",props:{data:{type:Object,required:!0}},computed:{fields(){var e;return Array.isArray((e=this.data)==null?void 0:e.fields)?this.data.fields:[]},formattedDate(){var e;return Ad((e=this.data)==null?void 0:e.created_at)}},methods:{isPriority(e){return/priorit|^prio$/i.test(String(e||"").trim())},isDate(e){return/date|échéanc|echeanc|deadline|due|créé|cree/i.test(String(e||"").trim())},priorityLevel(e){const t=String(e||"").toLowerCase();return/high|haute|élev|elev|critic|critiq|urgent/.test(t)?3:/low|basse|faible|minor/.test(t)?1:2}}},xd={class:"wm-art wm-art--ticket"},Td={class:"wm-art__head wm-tk__head"},Md={class:"wm-art__title wm-tk__title"},Ed={class:"wm-tk__sub"},Od={class:"wm-tk__ref"},Id={key:0,class:"wm-tk__text"},Rd={key:0,class:"wm-art__body"},Ld={class:"wm-art__fieldLabel"},Bd=["data-level"],$d={key:1,class:"wm-tk__date",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},Pd={key:1,class:"wm-art__footer wm-tk__footer"};function Nd(e,t,n,s,r,i){return m(),y("div",xd,[u("div",Td,[u("div",Md,D(n.data.title),1),u("div",Ed,[u("div",Od,[t[0]||(t[0]=u("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M20 12a2 2 0 0 1 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v4a2 2 0 0 1 0 4v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 1-2-2z"}),u("path",{d:"M13 5v2M13 17v2M13 11v2"})],-1)),u("span",null,D(n.data.reference),1)]),u("span",{class:se(["wm-art__badge","wm-tk__badge",`wm-art__badge--${n.data.status.tone||"neutral"}`])},[t[1]||(t[1]=u("span",{class:"wm-tk__dot","aria-hidden":"true"},null,-1)),Gn(" "+D(n.data.status.label),1)],2)]),n.data.body?(m(),y("div",Id,D(n.data.body),1)):P("",!0)]),i.fields.length?(m(),y("div",Rd,[(m(!0),y(Q,null,xe(i.fields,(o,a)=>(m(),y("div",{key:a,class:"wm-art__field"},[u("div",Ld,D(o.label),1),u("div",{class:se(["wm-art__fieldValue",{"wm-art__fieldValue--multi":o.multiline}])},[i.isPriority(o.label)?(m(),y("svg",{key:0,class:"wm-tk__prio","data-level":i.priorityLevel(o.value),width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true"},[...t[2]||(t[2]=[u("rect",{x:"1",y:"8",width:"2",height:"3",rx:"0.5"},null,-1),u("rect",{x:"5",y:"5",width:"2",height:"6",rx:"0.5"},null,-1),u("rect",{x:"9",y:"2",width:"2",height:"9",rx:"0.5"},null,-1)])],8,Bd)):i.isDate(o.label)?(m(),y("svg",$d,[...t[3]||(t[3]=[u("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2"},null,-1),u("path",{d:"M16 2v4M8 2v4M3 10h18"},null,-1)])])):P("",!0),u("span",null,D(o.value),1)],2)]))),128))])):P("",!0),n.data.created_at?(m(),y("div",Pd,[t[4]||(t[4]=u("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2"}),u("path",{d:"M16 2v4M8 2v4M3 10h18"})],-1)),u("span",null,D(i.formattedDate),1)])):P("",!0)])}const Fd={form_response:ud,info_card:Cd,ticket:ve(Sd,[["render",Nd],["__scopeId","data-v-8b274eb7"]])},Dd={name:"WmArtifactRenderer",props:{artifact:{type:Object,required:!0}},computed:{component(){var t;const e=(t=this.artifact)==null?void 0:t.kind;return e&&Fd[e]||null}}};function jd(e,t,n,s,r,i){return i.component?(m(),ye(Ra(i.component),{key:0,data:n.artifact.data},null,8,["data"])):P("",!0)}const Ud=ve(Dd,[["render",jd]]),Hd={name:"WmAttachmentPreview",inject:{signAttachmentFn:{default:null}},props:{attachment:{type:Object,required:!0}},data(){return{url:null,loading:!1}},computed:{kind(){var n,s;const e=(n=this.attachment)==null?void 0:n.type;if(e)return e;const t=(((s=this.attachment)==null?void 0:s.mime_type)||"").toLowerCase();return t.startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":"file"},displayName(){var e,t,n;return((t=(e=this.attachment)==null?void 0:e.metadata)==null?void 0:t.name)||((n=this.attachment)==null?void 0:n.name)||this.guessNameFromPath()||"Pièce jointe"},sizeLabel(){var t;const e=(t=this.attachment)==null?void 0:t.size_bytes;return e?e<1024?`${e} o`:e<1024*1024?`${(e/1024).toFixed(0)} ko`:`${(e/(1024*1024)).toFixed(1)} Mo`:""}},watch:{"attachment.path":{handler(){this.refresh()},immediate:!0}},methods:{guessNameFromPath(){var n;return((((n=this.attachment)==null?void 0:n.path)||"").split("/").pop()||"").replace(/^[0-9a-f-]{8,}-/,"")},async refresh(){var e;if(!(!((e=this.attachment)!=null&&e.path)||!this.signAttachmentFn)){this.loading=!0;try{this.url=await this.signAttachmentFn(this.attachment.path)}finally{this.loading=!1}}},onFileClick(e){this.url||e.preventDefault()}}},Vd=["href"],Kd=["src","alt"],Wd=["src"],qd=["src"],zd=["href","download"],Gd={class:"wm-att__main"},Yd={class:"wm-att__name"},Jd={key:0,class:"wm-att__meta"},Xd={key:0,class:"wm-att__spin","aria-hidden":"true"};function Qd(e,t,n,s,r,i){return m(),y("div",{class:se(["wm-att",["wm-att--"+(i.kind||"file")]])},[i.kind==="image"&&r.url?(m(),y("a",{key:0,href:r.url,target:"_blank",rel:"noopener",class:"wm-att__imgWrap"},[u("img",{src:r.url,alt:i.displayName,loading:"lazy"},null,8,Kd)],8,Vd)):i.kind==="audio"&&r.url?(m(),y("audio",{key:1,src:r.url,controls:"",preload:"metadata"},null,8,Wd)):i.kind==="video"&&r.url?(m(),y("video",{key:2,src:r.url,controls:"",preload:"metadata"},null,8,qd)):(m(),y("a",{key:3,class:"wm-att__file",href:r.url||"#",download:i.displayName,target:"_blank",rel:"noopener",onClick:t[0]||(t[0]=(...o)=>i.onFileClick&&i.onFileClick(...o))},[t[1]||(t[1]=u("span",{class:"wm-att__icon"},[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),u("path",{d:"M14 2v6h6"})])],-1)),u("span",Gd,[u("span",Yd,D(i.displayName),1),i.sizeLabel?(m(),y("span",Jd,D(i.sizeLabel),1)):P("",!0)]),r.loading?(m(),y("span",Xd)):P("",!0)],8,zd))],2)}const Zd=ve(Hd,[["render",Qd],["__scopeId","data-v-1cd1267b"]]);function ef(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function tf(e){return/^(https?:\/\/|mailto:|tel:)/i.test(String(e).trim())}const po="";function es(e){let t=e;const n=[];return t=t.replace(/`([^`\n]+)`/g,(s,r)=>{const i=n.length;return n.push(r),`${po}CODE${i}${po}`}),t=t.replace(/\[([^\]\n]+)\]\(([^)\s]+)\)/g,(s,r,i)=>tf(i)?`<a href="${i}" target="_blank" rel="noopener noreferrer">${r}</a>`:r),t=t.replace(/\*\*([^\n*][^\n]*?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^\n_][^\n]*?)__/g,"<u>$1</u>"),t=t.replace(/~~([^\n~][^\n]*?)~~/g,"<s>$1</s>"),t=t.replace(/(^|[^\w*])\*([^\n*]+?)\*(?!\w)/g,"$1<em>$2</em>"),t=t.replace(/(^|[^\w_])_([^\n_]+?)_(?!\w)/g,"$1<em>$2</em>"),t=t.replace(/CODE(\d+)/g,(s,r)=>`<code class="wm-md-code">${n[+r]}</code>`),t}function nf(e){if(!e)return"";const t=ef(e).split(`
74
74
  `),n=[];let s=0;for(;s<t.length;){const i=t[s];if(/^\s*```([\w-]*)\s*$/.exec(i)){s++;const f=[];for(;s<t.length&&!/^\s*```\s*$/.test(t[s]);)f.push(t[s]),s++;s<t.length&&s++,n.push({type:"block",html:`<pre class="wm-md-pre"><code>${f.join(`
75
75
  `)}</code></pre>`});continue}if(/^\s*[-*]\s+/.test(i)){const f=[];for(;s<t.length;){const g=/^\s*[-*]\s+(.*)$/.exec(t[s]);if(!g)break;f.push(g[1]),s++}const c=f.map(g=>`<li>${es(g)}</li>`).join("");n.push({type:"block",html:`<ul class="wm-md-ul">${c}</ul>`});continue}const a=/^\s*(\d+)\.\s+(.*)$/.exec(i);if(a){const f=parseInt(a[1],10),c=[a[2]];for(s++;s<t.length;){const C=/^\s*\d+\.\s+(.*)$/.exec(t[s]);if(!C)break;c.push(C[1]),s++}const g=c.map(C=>`<li>${es(C)}</li>`).join(""),S=f!==1?` start="${f}"`:"";n.push({type:"block",html:`<ol class="wm-md-ol"${S}>${g}</ol>`});continue}const l=/^(#{1,6})\s+(.*)$/.exec(i);if(l){const f=l[1].length;n.push({type:"block",html:`<h${f} class="wm-md-h wm-md-h${f}">${es(l[2])}</h${f}>`}),s++;continue}n.push({type:"text",html:es(i)}),s++}let r="";for(let i=0;i<n.length;i++){const o=n[i];r+=o.html;const a=n[i+1];a&&o.type!=="block"&&a.type!=="block"&&(r+=`
76
- `)}return r}const sf={name:"WmBubble",props:{role:{type:String,default:"ai"},text:{type:String,default:""}},computed:{rendered(){return nf(this.text)}}},rf=["innerHTML"];function of(e,t,n,s,r,i){return m(),y("div",{class:se(["wm-bubble","wm-bubble--"+n.role])},[La(e.$slots,"default",{},()=>[u("span",{innerHTML:i.rendered},null,8,rf)])],2)}const af=ve(sf,[["render",of],["__scopeId","data-v-5c9e9f2b"]]),lf={name:"WmTyping"},cf={class:"wm-typing"};function uf(e,t,n,s,r,i){return m(),y("div",cf,[...t[0]||(t[0]=[u("span",{style:{"animation-delay":"0s"}},null,-1),u("span",{style:{"animation-delay":"0.2s"}},null,-1),u("span",{style:{"animation-delay":"0.4s"}},null,-1)])])}const df=ve(lf,[["render",uf],["__scopeId","data-v-df2447fd"]]);function gn(e){return e?e.client_msg_id||e.id:""}const ff={transferred_to_human:"Conversation transférée à un humain",assigned:"{name} a rejoint la conversation",unassigned:"L'agent a quitté la conversation",resolved:"Conversation résolue",reopened:"Conversation rouverte",idle:"Conversation en pause"},hf=80,mf=200,pf={name:"WmMessageList",components:{AIAvatar:pn,HumanAvatar:ho,Bubble:af,Typing:df,ActionResult:nd,AttachmentPreview:Zd,ArtifactRenderer:Ud},props:{messages:{type:Array,default:()=>[]},streamingActive:{type:Boolean,default:!1},dateLabel:{type:String,default:""},conversationId:{type:[String,Number],default:null},loadingMore:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},unreadAnchorId:{type:Number,default:null},unreadBoundaryTs:{type:String,default:""}},emits:["load-more"],data(){return{silentFades:!1,widthByKey:Object.freeze({})}},computed:{historyExhausted(){return!this.hasMore&&!this.loadingMore&&this.messages.length>=20},groups(){var n,s,r,i;const e=[];for(const o of this.messages){const a=this.roleOf(o);if(a==="system"){if(((n=o==null?void 0:o.payload)==null?void 0:n.event)==="action_admin_pending"){const c=e[e.length-1];c&&c.role==="ai"?c.messages.push(o):e.push({key:`g-${gn(o)}`,role:"ai",agentName:"",agentAvatarUrl:null,messages:[o],items:[]});continue}e.push({key:`sys-${gn(o)}`,role:a,messages:[o],items:[],systemLabel:this.systemLabel(o)});continue}const l=e[e.length-1];l&&l.role===a&&(a==="ai"||l.agentName===(((s=o==null?void 0:o.author)==null?void 0:s.name)||""))?l.messages.push(o):e.push({key:`g-${gn(o)}`,role:a,agentName:((r=o==null?void 0:o.author)==null?void 0:r.name)||"",agentAvatarUrl:((i=o==null?void 0:o.author)==null?void 0:i.avatar_url)||null,messages:[o],items:[]})}for(const o of e){if(o.role==="system")continue;const a=[];for(const l of o.messages)for(const f of this.itemsOf(l))a.push(f);o.items=a}const t=[];for(const o of e){if(o.role!=="system"&&!o.items.length)continue;const a=t[t.length-1];if(a&&a.role!=="system"&&a.role===o.role&&(o.role==="ai"||a.agentName===o.agentName)){a.messages.push(...o.messages),a.items.push(...o.items);continue}t.push(o)}return t},unreadGroupKey(){if(this.unreadAnchorId==null)return null;const e=this.unreadAnchorId,t=this.unreadBoundaryTs;for(const n of this.groups){if(n.role==="user"||n.role==="system"||!n.items.length)continue;const s=n.messages[0];if(!s)continue;const r=bt(s.id);if(r!=null&&!(r<=e)&&!(t&&s.created_at&&s.created_at>t))return n.key}return null}},watch:{messages:{handler:"snapshotAndRestore",deep:!0},loadingMore(e){e||(this._pendingLoadMore=!1),this.silentFades=!0,clearTimeout(this._silenceTimer),e||(this._silenceTimer=setTimeout(()=>{this.silentFades=!1},250)),this.snapshotAndRestore()},streamingActive:"snapshotAndRestore"},mounted(){this._lastSeenConvId=this.conversationId,this.scrollToBottom(),this._measureFrame=null,this._ro=new ResizeObserver(()=>this.scheduleMeasure()),this.$refs.scrollEl&&this._ro.observe(this.$refs.scrollEl),this.$nextTick(()=>this.measureRows())},beforeUnmount(){var e;(e=this._ro)==null||e.disconnect(),this._measureFrame&&cancelAnimationFrame(this._measureFrame),clearTimeout(this._silenceTimer)},updated(){this.scheduleMeasure()},methods:{messageKey:gn,isAtBottom(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=hf},onScroll(){const e=this.$refs.scrollEl;e&&(this.loadingMore||!this.hasMore||this._pendingLoadMore||e.scrollTop<=mf&&(this._pendingLoadMore=!0,this.$emit("load-more")))},snapshotAndRestore(){const e=this.$refs.scrollEl;if(!e||this._scrollSnap)return;const t=this._lastSeenConvId!==this.conversationId;this._lastSeenConvId=this.conversationId;const n=this.isAtBottom(e);let s=null;if(!t&&!n){const i=this.pickAnchor(e);if(i!=null&&i.el){const o=e.getBoundingClientRect().top;s={el:i.el,relY:i.el.getBoundingClientRect().top-o}}}const r={forceBottom:t,wasPinned:n,anchor:s};this._scrollSnap=r,this.$nextTick(()=>{if(this._scrollSnap=null,r.forceBottom||r.wasPinned){e.scrollTop=e.scrollHeight;return}if(!r.anchor)return;const i=()=>{var f;const o=r.anchor;if(!((f=o.el)!=null&&f.isConnected))return;const l=o.el.getBoundingClientRect().top-e.getBoundingClientRect().top-o.relY;Math.abs(l)>.5&&(e.scrollTop+=l)};i(),requestAnimationFrame(()=>{i(),requestAnimationFrame(i)})})},pickAnchor(e){const t=e.scrollTop;let n=null;for(const s of e.children)if(s.classList.contains("wm-list__group")&&(n||(n=s),s.offsetTop+s.offsetHeight>=t))return{el:s,offsetTop:s.offsetTop};return n?{el:n,offsetTop:n.offsetTop}:null},roleOf(e){var n,s;if((e==null?void 0:e.type)==="system"||((n=e==null?void 0:e.payload)==null?void 0:n.type)==="system")return"system";const t=(s=e==null?void 0:e.author)==null?void 0:s.type;return t==="user"?"user":t==="agent_human"?"human":"ai"},roleLabel(e){return e.role==="human"?e.agentName||"Agent":"Assistant IA"},itemsOf(e){var t;if(!e)return[];if(e.type==="system"&&((t=e==null?void 0:e.payload)==null?void 0:t.event)==="action_admin_pending")return[{message:e,partKey:"main",renderAs:"admin-pending",kind:{top:"bubble",bottom:"bubble"}}];if(e.type==="action"&&e.payload&&e.payload.state!=="pending"){const n=[{message:e,partKey:"main",renderAs:"action",kind:{top:"bubble",bottom:"bubble"}}];return this.actionArtifact(e)&&n.push({message:e,partKey:"artifact",renderAs:"artifact-of-action",kind:{top:"card",bottom:"card"}}),n}return this.artifactOf(e)?[{message:e,partKey:"main",renderAs:"artifact",kind:{top:"card",bottom:"card"}}]:e.text_md||this.attachmentsOf(e).length?[{message:e,partKey:"main",renderAs:"bubble",kind:{top:"bubble",bottom:"bubble"}}]:[]},cornersFor(e,t){var j,te,le;const n=e.items,s=(j=n[t])==null?void 0:j.kind,r=(te=n[t-1])==null?void 0:te.kind,i=(le=n[t+1])==null?void 0:le.kind,o=e.role==="user",a=14,l=4,f=r==null?void 0:r.bottom,c=i==null?void 0:i.top,g=this.widthByKey[this.rowKeyOf(e,t)],S=this.widthByKey[this.rowKeyOf(e,t-1)],C=this.widthByKey[this.rowKeyOf(e,t+1)],V=.5,I=(we,be,q)=>we!=null&&g!=null?we+V>=g:be===q||be==="card"&&q==="bubble";let J=a,z=a,K=a,X=a;return o?(f&&(z=l),(c||!i)&&(K=l),f&&I(S,f,s==null?void 0:s.top)&&(J=l),c&&I(C,c,s==null?void 0:s.bottom)&&(X=l)):(f&&(J=l),(c||!i)&&(X=l),f&&I(S,f,s==null?void 0:s.top)&&(z=l),c&&I(C,c,s==null?void 0:s.bottom)&&(K=l)),{tl:J,tr:z,br:K,bl:X}},cornersStyle(e,t){if(e.items.length<2)return null;const n=this.cornersFor(e,t);return{"--wm-r-tl":`${n.tl}px`,"--wm-r-tr":`${n.tr}px`,"--wm-r-br":`${n.br}px`,"--wm-r-bl":`${n.bl}px`}},rowKeyOf(e,t){var s;const n=(s=e==null?void 0:e.items)==null?void 0:s[t];return n?`${gn(n.message)}-${n.partKey}`:""},scheduleMeasure(){this._measureFrame||(this._measureFrame=requestAnimationFrame(()=>{this._measureFrame=null,this.measureRows()}))},measureRows(){const e=this.$refs.scrollEl;if(!e)return;const t={};for(const i of e.querySelectorAll(".wm-list__row[data-row-key]")){const o=i.dataset.rowKey;if(!o)continue;const a=i.querySelector(".wm-bubble, .wm-result, .wm-art, .wm-list__body");if(!a)continue;const l=a.getBoundingClientRect().width;l>0&&(t[o]=l)}const n=this.widthByKey,s=Object.keys(n),r=Object.keys(t);if(s.length===r.length){let i=!0;for(const o of r)if(Math.abs((n[o]??0)-t[o])>.5){i=!1;break}if(i)return}this.widthByKey=Object.freeze(t)},lastTimeOf(e){const t=e.items[e.items.length-1],n=(t==null?void 0:t.message)||e.messages[e.messages.length-1];if(!(n!=null&&n.created_at))return"";try{return ao(new Date(n.created_at))}catch{return""}},hasTrailingOverlay(e){if(!e.messages.length)return!1;const t=e.messages[e.messages.length-1],n=e.items[e.items.length-1];return!!t&&(n==null?void 0:n.message)!==t},attachmentsOf(e){var n;const t=(n=e==null?void 0:e.payload)==null?void 0:n.attachments;return Array.isArray(t)?t:[]},artifactOf(e){var n;const t=(n=e==null?void 0:e.metadata)==null?void 0:n.artifact;return!t||typeof t!="object"||typeof t.kind!="string"?null:t},actionLabel(e){var t;return((t=e==null?void 0:e.payload)==null?void 0:t.name)||(e==null?void 0:e.text_md)||"Action"},actionDetail(e){var n,s,r,i,o,a;const t=e==null?void 0:e.payload;return t?t.state==="success"?((n=t.success)==null?void 0:n.summary)||((r=(s=t.success)==null?void 0:s.metadata)==null?void 0:r.description)||"":t.state==="rejected"?((i=t.rejected)==null?void 0:i.reason)||"Action annulée par l'utilisateur.":t.state==="failure"&&(((o=t.failure)==null?void 0:o.summary)||((a=t.failure)==null?void 0:a.error))||"":""},actionArtifact(e){var n,s;const t=(s=(n=e==null?void 0:e.payload)==null?void 0:n.success)==null?void 0:s.artifact;return!t||typeof t!="object"||typeof t.kind!="string"?null:t},systemLabel(e){var r,i,o;const t=(r=e==null?void 0:e.payload)==null?void 0:r.event,n=ff[t]||(e==null?void 0:e.text_md)||"Mise à jour de la conversation",s=((i=e==null?void 0:e.metadata)==null?void 0:i.agent_name)||((o=e==null?void 0:e.author)==null?void 0:o.name)||"";return n.replace("{name}",s||"Un agent")},scrollToBottom(){const e=this.$refs.scrollEl;e&&(e.scrollTop=e.scrollHeight)}}},gf={key:0,class:"wm-list__loadMore",role:"status","aria-live":"polite"},_f={key:1,class:"wm-list__historyEnd"},yf={key:2,class:"wm-list__sep"},vf={class:"wm-list__sep-label"},bf={key:0,class:"wm-list__sep wm-list__sep--unread"},wf={key:0,class:"wm-list__sysep"},kf={class:"wm-list__sysep-label"},Cf=["data-row-key"],Af={key:0,class:"wm-list__avatarSlot"},Sf={key:5,class:"wm-list__body"},xf={key:0},Tf={key:1,"aria-hidden":"true"},Mf={key:2},Ef={key:3,class:"wm-list__row wm-list__row--ai fade-up"},Of={class:"wm-list__avatarSlot"};function If(e,t,n,s,r,i){const o=_e("AIAvatar"),a=_e("HumanAvatar"),l=_e("ActionResult"),f=_e("ArtifactRenderer"),c=_e("Bubble"),g=_e("AttachmentPreview"),S=_e("Typing");return m(),y("div",{ref:"scrollEl",class:se(["wm-list",{"wm-list--silent":r.silentFades}]),onScrollPassive:t[0]||(t[0]=(...C)=>i.onScroll&&i.onScroll(...C))},[n.loadingMore?(m(),y("div",gf,[...t[1]||(t[1]=[u("span",{class:"wm-list__loadMore-spinner","aria-hidden":"true"},null,-1),u("span",{class:"wm-list__loadMore-lbl"},"Chargement de l'historique…",-1)])])):i.historyExhausted?(m(),y("div",_f,"Début de la conversation")):P("",!0),n.dateLabel?(m(),y("div",yf,[t[2]||(t[2]=u("div",{class:"wm-list__line"},null,-1)),u("span",vf,D(n.dateLabel),1),t[3]||(t[3]=u("div",{class:"wm-list__line"},null,-1))])):P("",!0),(m(!0),y(Q,null,xe(i.groups,(C,V)=>(m(),y(Q,{key:C.key},[C.key===i.unreadGroupKey?(m(),y("div",bf,[...t[4]||(t[4]=[u("div",{class:"wm-list__line wm-list__line--unread"},null,-1),u("span",{class:"wm-list__sep-label wm-list__sep-label--unread"},"Non lus",-1),u("div",{class:"wm-list__line wm-list__line--unread"},null,-1)])])):P("",!0),C.role==="system"||C.items.length?(m(),y("div",{key:1,class:se(["wm-list__group","wm-list__group--"+C.role])},[C.role==="system"?(m(),y("div",wf,[t[5]||(t[5]=u("div",{class:"wm-list__line wm-list__line--strong"},null,-1)),u("span",kf,D(C.systemLabel),1),t[6]||(t[6]=u("div",{class:"wm-list__line wm-list__line--strong"},null,-1))])):(m(),y(Q,{key:1},[(m(!0),y(Q,null,xe(C.items,(I,J)=>(m(),y("div",{key:`${i.messageKey(I.message)}-${I.partKey}`,"data-row-key":`${i.messageKey(I.message)}-${I.partKey}`,class:se(["wm-list__row fade-up",["wm-list__row--"+C.role,{"is-pending":I.message._pending,"is-failed":I.message._failed}]]),style:De(i.cornersStyle(C,J))},[C.role!=="user"?(m(),y("div",Af,[J===C.items.length-1?(m(),y(Q,{key:0},[C.role==="ai"?(m(),ye(o,{key:0,size:26,tail:!0})):(m(),ye(a,{key:1,name:C.agentName,"avatar-url":C.agentAvatarUrl,size:26,tail:!0},null,8,["name","avatar-url"]))],64)):P("",!0)])):P("",!0),I.renderAs==="action"?(m(),ye(l,{key:1,state:I.message.payload.state,label:i.actionLabel(I.message),detail:i.actionDetail(I.message)},null,8,["state","label","detail"])):I.renderAs==="admin-pending"?(m(),ye(l,{key:2,state:"awaiting",label:"Demande d'approbation envoyée",detail:I.message.text_md||""},null,8,["detail"])):I.renderAs==="artifact-of-action"?(m(),ye(f,{key:3,artifact:i.actionArtifact(I.message)},null,8,["artifact"])):I.renderAs==="artifact"?(m(),ye(f,{key:4,artifact:i.artifactOf(I.message)},null,8,["artifact"])):(m(),y("div",Sf,[I.message.text_md?(m(),ye(c,{key:0,role:C.role,text:I.message.text_md},null,8,["role","text"])):P("",!0),i.attachmentsOf(I.message).length?(m(),y("div",{key:1,class:se(["wm-list__atts",{"wm-list__atts--align-end":C.role==="user"}])},[(m(!0),y(Q,null,xe(i.attachmentsOf(I.message),(z,K)=>(m(),ye(g,{key:`${i.messageKey(I.message)}-att-${K}`,attachment:z},null,8,["attachment"]))),128))],2)):P("",!0)]))],14,Cf))),128)),(C.role!=="user"||i.lastTimeOf(C))&&!i.hasTrailingOverlay(C)?(m(),y("div",{key:0,class:se(["wm-list__meta",{"wm-list__meta--right":C.role==="user"}])},[C.role!=="user"?(m(),y("span",xf,D(i.roleLabel(C)),1)):P("",!0),C.role!=="user"&&i.lastTimeOf(C)?(m(),y("span",Tf,"·")):P("",!0),i.lastTimeOf(C)?(m(),y("span",Mf,D(i.lastTimeOf(C)),1)):P("",!0)],2)):P("",!0)],64))],2)):P("",!0)],64))),128)),n.streamingActive?(m(),y("div",Ef,[u("div",Of,[ge(o,{size:26,tail:!0})]),ge(S)])):P("",!0)],34)}const Rf=ve(pf,[["render",If],["__scopeId","data-v-946babe3"]]),ts=typeof navigator<"u"&&!!navigator.mediaDevices&&typeof navigator.mediaDevices.getDisplayMedia=="function",Hs=typeof window<"u"&&typeof window.MediaRecorder<"u";function Lf(){return Hs&&["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm","video/mp4"].find(t=>{var n,s;return(s=(n=window.MediaRecorder).isTypeSupported)==null?void 0:s.call(n,t)})||""}function go({audio:e}){return{video:!0,audio:!!e,selfBrowserSurface:"include",surfaceSwitching:"include",systemAudio:e?"include":"exclude"}}async function Bf(){if(!ts)return null;let e;try{e=await navigator.mediaDevices.getDisplayMedia(go({audio:!1}))}catch(t){return(t==null?void 0:t.name)!=="NotAllowedError"&&console.error("[media] screenshot picker",t),null}try{return await $f(e)}catch(t){return console.error("[media] screenshot capture",t),null}finally{e.getTracks().forEach(t=>{t.stop()})}}async function $f(e){const t=document.createElement("video");t.muted=!0,t.playsInline=!0,t.srcObject=e,await t.play(),await new Promise(a=>requestAnimationFrame(a));const n=t.videoWidth||1280,s=t.videoHeight||720,r=document.createElement("canvas");r.width=n,r.height=s,r.getContext("2d").drawImage(t,0,0,n,s);const i=await new Promise((a,l)=>{r.toBlob(f=>f?a(f):l(new Error("toBlob failed")),"image/png")}),o=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);return new File([i],`capture-${o}.png`,{type:"image/png"})}async function Pf(e={}){var f;if(!ts||!Hs)return null;let t;try{t=await navigator.mediaDevices.getDisplayMedia(go({audio:!0}))}catch(c){return(c==null?void 0:c.name)!=="NotAllowedError"&&console.error("[media] record picker",c),null}const n=Lf();let s;try{s=n?new window.MediaRecorder(t,{mimeType:n}):new window.MediaRecorder(t)}catch(c){return console.error("[media] recorder init",c),t.getTracks().forEach(g=>{g.stop()}),null}const r=[];let i=null,o=!1;s.addEventListener("dataavailable",c=>{c.data&&c.data.size>0&&r.push(c.data)}),s.addEventListener("stop",()=>{var c,g;if(i&&clearInterval(i),t.getTracks().forEach(S=>{S.stop()}),r.length){const S=s.mimeType||n||"video/webm",C=new Blob(r,{type:S}),V=/mp4/.test(S)?"mp4":"webm",I=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),J=new File([C],`ecran-${I}.${V}`,{type:S});(c=e.onfinalize)==null||c.call(e,J)}else(g=e.oncancel)==null||g.call(e)}),t.getVideoTracks().forEach(c=>{c.addEventListener("ended",()=>a(),{once:!0})});function a(){if(!o&&(o=!0,s.state!=="inactive"))try{s.stop()}catch(c){console.error("[media] recorder stop",c)}}try{s.start(1e3)}catch(c){return console.error("[media] recorder start",c),t.getTracks().forEach(g=>{g.stop()}),null}(f=e.onstart)==null||f.call(e);const l=Date.now();return i=setInterval(()=>{var c;(c=e.ontick)==null||c.call(e,Date.now()-l)},500),{stop:a,get state(){return s.state}}}const Nf=[{action:"file",label:"Joindre un fichier",path:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"},{action:"screenshot",label:"Capture d'écran",path:"M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z M12 17a4 4 0 100-8 4 4 0 000 8z"},{action:"record",label:"Enregistrer l'écran",path:"M23 7l-7 5 7 5V7z M1 5a2 2 0 012-2h12a2 2 0 012 2v14a2 2 0 01-2 2H3a2 2 0 01-2-2V5z"}],Ff={name:"WmComposer",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Écrivez votre message…"},disabled:{type:Boolean,default:!1},attachLabel:{type:String,default:"Joindre"}},emits:["update:modelValue","send","attach"],data(){return{local:this.modelValue,attachOpen:!1,recording:!1,recordingElapsed:0,recorder:null}},computed:{canSend(){return!this.disabled&&!!this.local.trim()},attachItems(){return Nf.map(e=>({...e,disabled:e.action==="screenshot"&&!ts||e.action==="record"&&(!ts||!Hs)}))},recordingElapsedLabel(){const e=Math.floor(this.recordingElapsed/1e3),t=Math.floor(e/60),n=e%60;return`${t}:${n.toString().padStart(2,"0")}`}},watch:{modelValue(e){e!==this.local&&(this.local=e,this.$nextTick(()=>this.autosize()))},local(e){this.$emit("update:modelValue",e)}},mounted(){this.autosize()},beforeUnmount(){if(this.recorder)try{this.recorder.stop()}catch{}},methods:{focus(){const e=this.$refs.inputEl;if(!(!e||this.disabled))try{e.focus({preventScroll:!0})}catch{e.focus()}},onSubmit(){if(!this.canSend)return;const e=this.local.trim();this.local="",this.$emit("send",e),this.$nextTick(()=>this.autosize())},onKeydown(e){e.key==="Enter"&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&!e.isComposing&&(e.preventDefault(),this.onSubmit())},autosize(){const e=this.$refs.inputEl;e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)},onFile(e){const t=Array.from(e.target.files||[]);for(const n of t)this.$emit("attach",n);e.target.value=""},onAttachAction(e){this.attachOpen=!1,e==="file"?this.pickFile():e==="screenshot"?this.captureScreenshot():e==="record"&&this.startRecording()},pickFile(){var e;(e=this.$refs.fileEl)==null||e.click()},async captureScreenshot(){if(this.disabled)return;const e=await Bf();e&&this.$emit("attach",e)},async startRecording(){if(this.recording||this.disabled)return;this.recordingElapsed=0;const e=await Pf({onstart:()=>{this.recording=!0},ontick:t=>{this.recordingElapsed=t},onfinalize:t=>{this.$emit("attach",t),this.recording=!1,this.recordingElapsed=0,this.recorder=null},oncancel:()=>{this.recording=!1,this.recordingElapsed=0,this.recorder=null}});e&&(this.recorder=e)},stopRecording(){if(this.recorder)try{this.recorder.stop()}catch(e){console.error("[composer] stop recording",e)}}}},Df={class:"wm-compose-wrap"},jf={key:0,class:"wm-rec"},Uf={class:"wm-rec__lbl"},Hf={key:1,class:"wm-compose__menu",role:"menu"},Vf=["disabled","onClick"],Kf={class:"wm-compose__menuIcon"},Wf={viewBox:"0 0 24 24",width:"14",height:"14","aria-hidden":"true"},qf=["d"],zf=["placeholder","disabled"],Gf={class:"wm-compose__actions"},Yf=["title","aria-label","disabled"],Jf=["disabled"];function Xf(e,t,n,s,r,i){return m(),y("div",Df,[r.recording?(m(),y("div",jf,[t[8]||(t[8]=u("span",{class:"wm-rec__dot","aria-hidden":"true"},null,-1)),u("span",Uf,"Enregistrement · "+D(i.recordingElapsedLabel),1),u("button",{type:"button",class:"wm-rec__stop",onClick:t[0]||(t[0]=(...o)=>i.stopRecording&&i.stopRecording(...o))},"Arrêter")])):P("",!0),u("form",{class:se(["wm-compose",{"has-attach":r.attachOpen}]),onSubmit:t[7]||(t[7]=vt((...o)=>i.onSubmit&&i.onSubmit(...o),["prevent"]))},[u("input",{ref:"fileEl",type:"file",hidden:"",multiple:"",onChange:t[1]||(t[1]=(...o)=>i.onFile&&i.onFile(...o))},null,544),r.attachOpen?(m(),y("div",{key:0,class:"wm-compose__overlay",onClick:t[2]||(t[2]=o=>r.attachOpen=!1)})):P("",!0),r.attachOpen?(m(),y("div",Hf,[(m(!0),y(Q,null,xe(i.attachItems,o=>(m(),y("button",{key:o.action,type:"button",class:"wm-compose__menuItem",disabled:o.disabled,onClick:a=>i.onAttachAction(o.action)},[u("span",Kf,[(m(),y("svg",Wf,[u("path",{d:o.path,stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,8,qf)]))]),u("span",null,D(o.label),1)],8,Vf))),128))])):P("",!0),at(u("textarea",{ref:"inputEl","onUpdate:modelValue":t[3]||(t[3]=o=>r.local=o),class:"wm-compose__input",rows:"3",placeholder:n.placeholder,disabled:n.disabled,onKeydown:t[4]||(t[4]=(...o)=>i.onKeydown&&i.onKeydown(...o)),onInput:t[5]||(t[5]=(...o)=>i.autosize&&i.autosize(...o))},null,40,zf),[[Ot,r.local]]),u("div",Gf,[u("button",{type:"button",class:se(["wm-compose__icon",{"is-open":r.attachOpen}]),title:n.attachLabel,"aria-label":n.attachLabel,disabled:r.recording,onClick:t[6]||(t[6]=o=>r.attachOpen=!r.attachOpen)},[...t[9]||(t[9]=[u("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)])],10,Yf),u("button",{type:"submit",class:se(["wm-compose__send",{"is-empty":!i.canSend}]),disabled:!i.canSend,"aria-label":"Envoyer"},[...t[10]||(t[10]=[u("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"})],-1)])],10,Jf)])],34)])}const Qf=ve(Ff,[["render",Xf],["__scopeId","data-v-14fa9ec0"]]),Zf={name:"WmSuggestionChips",props:{items:{type:Array,default:()=>[]},baseDelay:{type:Number,default:360},stepDelay:{type:Number,default:90}},emits:["select"],computed:{batchKey(){return this.items.map(e=>(e==null?void 0:e.label)||(e==null?void 0:e.text)||"").join("§")}}},eh=["onClick"];function th(e,t,n,s,r,i){return n.items.length?(m(),y("div",{key:i.batchKey,class:"wm-chips"},[(m(!0),y(Q,null,xe(n.items,(o,a)=>(m(),y("button",{key:a,type:"button",class:"wm-chip",style:De({animationDelay:n.baseDelay+a*n.stepDelay+"ms"}),onClick:l=>e.$emit("select",o)},D(o.label),13,eh))),128))])):P("",!0)}const nh=ve(Zf,[["render",th],["__scopeId","data-v-55aa529d"]]),sh={name:"WmApprovalCard",components:{AIAvatar:pn},props:{action:{type:String,required:!0},detail:{type:String,default:""},callbacks:{type:Array,default:()=>[]}},emits:["callback"],computed:{approveCallback(){return this.callbacks.find(e=>e.id==="approve"||e.style==="primary")||this.callbacks[0]},rejectCallback(){return this.callbacks.find(e=>e.id==="reject"||e.style==="danger"||e.style==="neutral")||(this.callbacks.length>1?this.callbacks[1]:null)},approveId(){var e;return(e=this.approveCallback)==null?void 0:e.id},rejectId(){var e;return(e=this.rejectCallback)==null?void 0:e.id},approveLabel(){var e;return((e=this.approveCallback)==null?void 0:e.label)||"Autoriser"},rejectLabel(){var e;return((e=this.rejectCallback)==null?void 0:e.label)||"Refuser"}}},rh={class:"wm-approval"},ih={class:"wm-approval__head"},oh={class:"wm-approval__icon"},ah={class:"wm-approval__main"},lh={class:"wm-approval__title"},ch={key:0,class:"wm-approval__detail"},uh={class:"wm-approval__actions"};function dh(e,t,n,s,r,i){const o=_e("AIAvatar");return m(),y("div",rh,[u("div",ih,[u("div",oh,[ge(o,{size:24})]),u("div",ah,[u("div",lh,D(n.action),1),n.detail?(m(),y("div",ch,D(n.detail),1)):P("",!0)])]),u("div",uh,[i.rejectId?(m(),y("button",{key:0,type:"button",class:"wm-approval__btn wm-approval__btn--neutral",onClick:t[0]||(t[0]=a=>e.$emit("callback",i.rejectId))},D(i.rejectLabel),1)):P("",!0),i.approveId?(m(),y("button",{key:1,type:"button",class:"wm-approval__btn wm-approval__btn--primary",onClick:t[1]||(t[1]=a=>e.$emit("callback",i.approveId))},D(i.approveLabel),1)):P("",!0)])])}const fh=ve(sh,[["render",dh],["__scopeId","data-v-b1be139c"]]);let _o=0;const hh=new Set(["text","textarea","number","boolean","select","multiselect","date"]),mh={name:"WmFormCard",components:{AIAvatar:pn},props:{form:{type:Object,required:!0},readOnly:{type:Boolean,default:!1},initialValues:{type:Object,default:null}},emits:["submit"],data(){return _o+=1,{_uid:_o,values:{},busy:!1,error:""}},computed:{normalizedFields(){var t;return(Array.isArray((t=this.form)==null?void 0:t.fields)?this.form.fields:[]).filter(n=>!(!(n!=null&&n.key)||!(n!=null&&n.label)||!hh.has(n==null?void 0:n.type)||(n.type==="select"||n.type==="multiselect")&&(!Array.isArray(n.options)||n.options.length===0)))}},created(){this.resetValues()},methods:{resetValues(){const e=this.initialValues&&typeof this.initialValues=="object"?this.initialValues:{},t={};for(const n of this.normalizedFields){if(e[n.key]!==void 0){t[n.key]=e[n.key];continue}n.type==="boolean"?t[n.key]=!1:n.type==="multiselect"?t[n.key]=[]:t[n.key]=""}this.values=t,this.error=""},toggleMulti(e,t,n){const s=Array.isArray(this.values[e])?this.values[e].slice():[],r=s.indexOf(t);n&&r===-1?s.push(t):!n&&r!==-1&&s.splice(r,1),this.values={...this.values,[e]:s}},validate(){for(const e of this.normalizedFields){if(!e.required)continue;const t=this.values[e.key];if(e.type!=="boolean"){if(e.type==="multiselect"){if(!Array.isArray(t)||t.length===0)return`« ${e.label} » est requis.`;continue}if(t==null||t==="")return`« ${e.label} » est requis.`}}return""},async onSubmit(){if(this.readOnly||this.busy)return;const e=this.validate();if(e){this.error=e;return}this.error="",this.busy=!0;try{await this.$emit("submit",{values:this.values})}finally{this.busy=!1}}}},ph={class:"wm-form"},gh={class:"wm-form__head"},_h={class:"wm-form__icon"},yh={class:"wm-form__main"},vh={class:"wm-form__title"},bh={key:0,class:"wm-form__detail"},wh=["for"],kh={key:0,class:"wm-form__req","aria-hidden":"true"},Ch=["id","onUpdate:modelValue","placeholder","required","disabled"],Ah=["id","onUpdate:modelValue","placeholder","required","disabled"],Sh=["id","onUpdate:modelValue","placeholder","required","disabled"],xh=["id","onUpdate:modelValue","required","disabled"],Th={key:4,class:"wm-form__bool"},Mh=["id","onUpdate:modelValue","disabled"],Eh=["id","onUpdate:modelValue","required","disabled"],Oh={value:"",disabled:""},Ih=["value"],Rh={key:6,class:"wm-form__multi"},Lh=["value","checked","disabled","onChange"],Bh={key:0,class:"wm-form__err"},$h=["disabled"],Ph={key:0,class:"wm-form__spinner","aria-hidden":"true"},Nh={key:2,class:"wm-form__doneLbl"};function Fh(e,t,n,s,r,i){const o=_e("AIAvatar");return m(),y("div",ph,[u("div",gh,[u("div",_h,[ge(o,{size:24})]),u("div",yh,[u("div",vh,D(n.form.title||"Formulaire"),1),n.form.description?(m(),y("div",bh,D(n.form.description),1)):P("",!0)])]),u("form",{class:"wm-form__body",onSubmit:t[0]||(t[0]=vt((...a)=>i.onSubmit&&i.onSubmit(...a),["prevent"]))},[(m(!0),y(Q,null,xe(i.normalizedFields,a=>(m(),y("div",{key:a.key,class:"wm-form__field"},[u("label",{for:`wm-f-${r._uid}-${a.key}`,class:"wm-form__label"},[Gn(D(a.label),1),a.required?(m(),y("span",kh,"*")):P("",!0)],8,wh),a.type==="text"?at((m(),y("input",{key:0,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"text",class:"wm-form__input",placeholder:a.placeholder||"",required:a.required,disabled:n.readOnly||r.busy},null,8,Ch)),[[Ot,r.values[a.key]]]):a.type==="textarea"?at((m(),y("textarea",{key:1,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,class:"wm-form__textarea",rows:"3",placeholder:a.placeholder||"",required:a.required,disabled:n.readOnly||r.busy},null,8,Ah)),[[Ot,r.values[a.key]]]):a.type==="number"?at((m(),y("input",{key:2,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"number",class:"wm-form__input",placeholder:a.placeholder||"",required:a.required,disabled:n.readOnly||r.busy},null,8,Sh)),[[Ot,r.values[a.key],void 0,{number:!0}]]):a.type==="date"?at((m(),y("input",{key:3,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"date",class:"wm-form__input",required:a.required,disabled:n.readOnly||r.busy},null,8,xh)),[[Ot,r.values[a.key]]]):a.type==="boolean"?(m(),y("label",Th,[at(u("input",{id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"checkbox",disabled:n.readOnly||r.busy},null,8,Mh),[[Jl,r.values[a.key]]]),u("span",null,D(a.placeholder||"Oui"),1)])):a.type==="select"?at((m(),y("select",{key:5,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,class:"wm-form__select",required:a.required,disabled:n.readOnly||r.busy},[u("option",Oh,D(a.placeholder||"Choisir…"),1),(m(!0),y(Q,null,xe(a.options,l=>(m(),y("option",{key:l.value,value:l.value},D(l.label),9,Ih))),128))],8,Eh)),[[Xl,r.values[a.key]]]):a.type==="multiselect"?(m(),y("div",Rh,[(m(!0),y(Q,null,xe(a.options,l=>(m(),y("label",{key:l.value,class:"wm-form__multiItem"},[u("input",{type:"checkbox",value:l.value,checked:Array.isArray(r.values[a.key])&&r.values[a.key].includes(l.value),disabled:n.readOnly||r.busy,onChange:f=>i.toggleMulti(a.key,l.value,f.target.checked)},null,40,Lh),u("span",null,D(l.label),1)]))),128))])):P("",!0)]))),128)),r.error?(m(),y("div",Bh,D(r.error),1)):P("",!0),n.readOnly?(m(),y("div",Nh,"Réponse envoyée")):(m(),y("button",{key:1,type:"submit",class:"wm-form__submit",disabled:r.busy},[r.busy?(m(),y("span",Ph)):P("",!0),u("span",null,D(r.busy?"Envoi…":n.form.submit_label||"Envoyer"),1)],8,$h))],32)])}const Dh=ve(mh,[["render",Fh],["__scopeId","data-v-64b40f76"]]),jh={name:"WmFeedback",props:{busy:{type:Boolean,default:!1},done:{type:Boolean,default:!1}},emits:["submit"],data(){return{sel:null,options:[{v:1,e:"😞",l:"Pas bien"},{v:2,e:"😐",l:"Moyen"},{v:3,e:"🙂",l:"Bien"},{v:4,e:"😄",l:"Super"},{v:5,e:"🤩",l:"Excellent"}]}},methods:{onSend(){!this.sel||this.busy||this.$emit("submit",{rating:this.sel})}}},Uh={class:"wm-fb"},Hh={class:"wm-fb__row"},Vh=["onClick"],Kh={class:"wm-fb__emoji"},Wh={class:"wm-fb__label"},qh=["disabled"],zh={key:1,class:"wm-fb__done"};function Gh(e,t,n,s,r,i){return m(),y("div",Uh,[n.done?(m(),y("div",zh,[...t[3]||(t[3]=[Yn('<div class="wm-fb__check" data-v-6f45ff3b><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-6f45ff3b><path d="M20 6L9 17l-5-5" data-v-6f45ff3b></path></svg></div><div class="wm-fb__doneTitle" data-v-6f45ff3b>Merci pour votre retour !</div><div class="wm-fb__doneSub" data-v-6f45ff3b>Votre avis a bien été pris en compte.</div>',3)])])):(m(),y(Q,{key:0},[t[1]||(t[1]=u("div",{class:"wm-fb__title"},"Comment s'est passée cette conversation ?",-1)),t[2]||(t[2]=u("div",{class:"wm-fb__sub"},"Votre avis nous aide à améliorer l'assistant.",-1)),u("div",Hh,[(m(!0),y(Q,null,xe(r.options,o=>(m(),y("button",{key:o.v,type:"button",class:se(["wm-fb__opt",{"is-selected":r.sel===o.v}]),onClick:a=>r.sel=o.v},[u("span",Kh,D(o.e),1),u("span",Wh,D(o.l),1)],10,Vh))),128))]),u("button",{type:"button",class:"wm-fb__send",disabled:!r.sel||n.busy,onClick:t[0]||(t[0]=(...o)=>i.onSend&&i.onSend(...o))},D(n.busy?"Envoi…":"Envoyer mon avis"),9,qh)],64))])}const Yh=ve(jh,[["render",Gh],["__scopeId","data-v-6f45ff3b"]]),Jh={name:"WmMoreMenu",props:{canRename:{type:Boolean,default:!0},canExport:{type:Boolean,default:!0},soundEnabled:{type:Boolean,default:!0},browserNotifEnabled:{type:Boolean,default:!1},statusUrl:{type:String,default:""},helpUrl:{type:String,default:""}},emits:["close","action","sound-toggle","browser-notif-toggle"],data(){return{soundOn:this.soundEnabled,browserNotifOn:this.browserNotifEnabled}},watch:{soundEnabled(e){this.soundOn=!!e},browserNotifEnabled(e){this.browserNotifOn=!!e}},methods:{emit(e){this.$emit("action",e)},toggleSound(){this.soundOn=!this.soundOn,this.$emit("sound-toggle",this.soundOn)},toggleBrowserNotif(){this.browserNotifOn=!this.browserNotifOn,this.$emit("browser-notif-toggle",this.browserNotifOn)}}},Xh={class:"wm-mm"},Qh={class:"wm-mm__pop",role:"menu"},Zh={key:0,class:"wm-mm__section"},em={key:1,class:"wm-mm__sep"},tm={class:"wm-mm__section"},nm={class:"wm-mm__section"};function sm(e,t,n,s,r,i){return m(),y("div",Xh,[u("div",{class:"wm-mm__scrim",onClick:t[0]||(t[0]=o=>e.$emit("close"))}),u("div",Qh,[n.canRename||n.canExport?(m(),y("div",Zh,[n.canRename?(m(),y("button",{key:0,type:"button",class:"wm-mm__item",onClick:t[1]||(t[1]=o=>i.emit("rename"))},[...t[7]||(t[7]=[Yn('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M12 20h9" data-v-3a73911b></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Modifier le titre</span>',2)])])):P("",!0),n.canExport?(m(),y("button",{key:1,type:"button",class:"wm-mm__item",onClick:t[2]||(t[2]=o=>i.emit("export"))},[...t[8]||(t[8]=[Yn('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Exporter la transcription</span><span class="wm-mm__hint" data-v-3a73911b>.txt</span>',3)])])):P("",!0)])):P("",!0),n.canRename||n.canExport?(m(),y("div",em)):P("",!0),u("div",tm,[u("button",{type:"button",class:"wm-mm__item",onClick:t[3]||(t[3]=(...o)=>i.toggleSound&&i.toggleSound(...o))},[t[10]||(t[10]=Yn('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M11 5L6 9H2v6h4l5 4V5z" data-v-3a73911b></path><path d="M15.54 8.46a5 5 0 010 7.07M19.07 4.93a10 10 0 010 14.14" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Son</span>',2)),u("span",{class:se(["wm-mm__toggle",{"wm-mm__toggle--on":r.soundOn}])},[...t[9]||(t[9]=[u("span",{class:"wm-mm__knob"},null,-1)])],2)]),u("button",{type:"button",class:"wm-mm__item",onClick:t[4]||(t[4]=(...o)=>i.toggleBrowserNotif&&i.toggleBrowserNotif(...o))},[t[12]||(t[12]=u("span",{class:"wm-mm__icon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 10-12 0v3.2c0 .5-.2 1-.6 1.4L4 17h5m6 0a3 3 0 11-6 0"})])],-1)),t[13]||(t[13]=u("span",{class:"wm-mm__label"},"Notifications navigateur",-1)),u("span",{class:se(["wm-mm__toggle",{"wm-mm__toggle--on":r.browserNotifOn}])},[...t[11]||(t[11]=[u("span",{class:"wm-mm__knob"},null,-1)])],2)])]),t[16]||(t[16]=u("div",{class:"wm-mm__sep"},null,-1)),u("div",nm,[n.statusUrl?(m(),y("button",{key:0,type:"button",class:"wm-mm__item",onClick:t[5]||(t[5]=o=>i.emit("status"))},[...t[14]||(t[14]=[u("span",{class:"wm-mm__icon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM10 6v4l3 2"})])],-1),u("span",{class:"wm-mm__label"},"Statut des services",-1)])])):P("",!0),n.helpUrl?(m(),y("button",{key:1,type:"button",class:"wm-mm__item",onClick:t[6]||(t[6]=o=>i.emit("help"))},[...t[15]||(t[15]=[u("span",{class:"wm-mm__icon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M9 11a3 3 0 116 0c0 2-3 2-3 5M12 19h.01M12 22a10 10 0 110-20 10 10 0 010 20z"})])],-1),u("span",{class:"wm-mm__label"},"Centre d'aide",-1)])])):P("",!0)])])])}const rm=ve(Jh,[["render",sm],["__scopeId","data-v-3a73911b"]]),im={name:"WmRenameDialog",props:{title:{type:String,default:"Modifier le titre"},initialValue:{type:String,default:""},placeholder:{type:String,default:"Titre de la conversation"}},emits:["close","submit"],data(){return{value:this.initialValue||""}},computed:{canSubmit(){const e=(this.value||"").trim();return!!e&&e!==(this.initialValue||"").trim()}},mounted(){this.$nextTick(()=>{const e=this.$refs.input;if(e){e.focus();try{e.select()}catch{}}})},methods:{onSubmit(){this.canSubmit&&this.$emit("submit",this.value.trim())}}},om={class:"wm-dialog"},am={class:"wm-dialog__card",role:"dialog","aria-modal":"true"},lm={class:"wm-dialog__head"},cm={class:"wm-dialog__title"},um={class:"wm-dialog__body"},dm=["placeholder"],fm={class:"wm-dialog__actions"},hm=["disabled"];function mm(e,t,n,s,r,i){return m(),y("div",om,[u("div",{class:"wm-dialog__scrim",onClick:t[0]||(t[0]=o=>e.$emit("close"))}),u("div",am,[u("div",lm,[u("div",cm,D(n.title),1),u("button",{type:"button",class:"wm-dialog__close","aria-label":"Fermer",onClick:t[1]||(t[1]=o=>e.$emit("close"))},[...t[7]||(t[7]=[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),u("div",um,[at(u("input",{ref:"input","onUpdate:modelValue":t[2]||(t[2]=o=>r.value=o),type:"text",class:"wm-dialog__input",placeholder:n.placeholder,maxlength:120,onKeydown:[t[3]||(t[3]=Qn(vt((...o)=>i.onSubmit&&i.onSubmit(...o),["prevent"]),["enter"])),t[4]||(t[4]=Qn(vt(o=>e.$emit("close"),["prevent"]),["esc"]))]},null,40,dm),[[Ot,r.value]])]),u("div",fm,[u("button",{type:"button",class:"wm-dialog__btn",onClick:t[5]||(t[5]=o=>e.$emit("close"))},"Annuler"),u("button",{type:"button",class:"wm-dialog__btn wm-dialog__btn--primary",disabled:!i.canSubmit,onClick:t[6]||(t[6]=(...o)=>i.onSubmit&&i.onSubmit(...o))},"Enregistrer",8,hm)])])])}const pm=ve(im,[["render",mm],["__scopeId","data-v-4f4b37c9"]]),yo="ww-messenger-tokens",gm={name:"Messenger",components:{Launcher:Jc,Header:gu,Onboarding:Ku,MessageList:Rf,Composer:Qf,SuggestionChips:nh,ApprovalCard:fh,FormCard:Dh,Feedback:Yh,MoreMenu:rm,RenameDialog:pm},mixins:[kc,Mc,Ec,Ic],provide(){return{signAttachmentFn:e=>{var t,n;return((n=(t=this.store)==null?void 0:t.signAttachment)==null?void 0:n.call(t,e))||null}}},props:{baseUrl:{type:String,default:lo},widgetId:{type:String,default:""},userId:{type:String,default:""},userHash:{type:String,default:""},customer:{type:Object,default:null},displayMode:{type:String,default:"floating"},devtools:{type:Boolean,default:!1}},data(){return{transport:null,store:null,isOpen:!1,draft:"",busy:!1,bootError:null,pendingAttachments:[],feedbackBusy:!1,feedbackDone:!1,convOpenedAt:0,moreOpen:!1,renameDialogOpen:!1,draftConv:null,activeConvId:null,showOnboarding:!1,dismissedPeeks:{},floatHeight:0,floatRO:null}},computed:{isEditor(){return!!this.devtools},isEmbedded(){return this.displayMode==="embedded"},error(){var e;return this.bootError||((e=this.s)==null?void 0:e.error)||null},canBoot(){return!!(this.baseUrl&&this.widgetId&&this.userId&&this.userHash)},s(){var e;return((e=this.store)==null?void 0:e.state)||null},ready(){var e;return!!((e=this.s)!=null&&e.ready)},allConversations(){var t;const e=(t=this.s)==null?void 0:t.conversations;return Array.isArray(e)?e:[]},drawerConversations(){var t;const e=((t=this.s)==null?void 0:t.messagesByConv)||{};return this.allConversations.map(n=>{var a;const s=e[n.id]||[],r=bt(n.last_read_message_id);let i=0,o=null;for(let l=s.length-1;l>=0;l--){const f=s[l];if(!f)continue;if(((a=f.author)==null?void 0:a.type)==="user")break;const c=bt(f.id);if(c!=null){if(r!=null&&c<=r)break;!o&&f.author&&(o=f.author),i++}}return{...n,_preview:yc(n,s),_unread:i>0,_unreadCount:i,_lastAuthor:o}})},unreadCount(){return this.drawerConversations.filter(e=>e._unread).length},openThreads(){var t;const e=((t=this.s)==null?void 0:t.messagesByConv)||{};return this.drawerConversations.filter(n=>n.status!=="resolved").map(n=>({id:n.id,title:n.name||"Nouvelle conversation",preview:n._preview||"Nouveau message",unread:!!n._unread,_ts:fo(n,e[n.id]||[])})).sort((n,s)=>n._ts<s._ts?1:n._ts>s._ts?-1:0)},latestUnreads(){var n;const e=((n=this.s)==null?void 0:n.messagesByConv)||{},t=[];for(const s of this.drawerConversations){if(!s._unread)continue;const r=fo(s,e[s.id]||[]),i=s._lastAuthor,o=!i||i.type==="agent_ia",a=(i==null?void 0:i.name)||(o?this.agentName:"")||"",l=(i==null?void 0:i.avatar_url)||(o?this.agentAvatarUrl:null);t.push({convId:s.id,preview:s._preview||"Vous avez un nouveau message",ts:r,count:s._unreadCount||1,senderName:a,senderAvatarUrl:l})}return t.sort((s,r)=>s.ts<r.ts?1:s.ts>r.ts?-1:0),t},launcherPeeks(){if(this.isOpen||this.isEmbedded)return[];const e=this.dismissedPeeks||{};return this.latestUnreads.filter(t=>e[t.convId]!==t.ts)},isViewingThread(){return(this.isOpen||this.isEmbedded)&&!!this.currentConv},currentConv(){if(this.draftConv)return this.draftConv;if(this.showOnboarding)return null;const e=this.allConversations;if(!e.length)return null;if(this.activeConvId!=null){const t=e.find(n=>n.id===this.activeConvId);if(t)return t}return e[0]||null},canBack(){return!!this.currentConv},statusUrl(){var n;const e=(n=this.widget)==null?void 0:n.quick_links;if(!Array.isArray(e))return"";const t=e.find(s=>s.icon==="status"&&s.url);return(t==null?void 0:t.url)||""},helpUrl(){var n;const e=(n=this.widget)==null?void 0:n.quick_links;if(!Array.isArray(e))return"";const t=e.find(s=>(s.icon==="chat"||s.icon==="help")&&s.url);return(t==null?void 0:t.url)||""},widget(){var e,t;return((t=(e=this.s)==null?void 0:e.config)==null?void 0:t.widget)||null},widgetWelcomeMessage(){var e;return((e=this.widget)==null?void 0:e.welcome_message)||""},agentName(){var e,t,n;return((n=(t=(e=this.s)==null?void 0:e.config)==null?void 0:t.agent)==null?void 0:n.name)||""},agentAvatarUrl(){var e,t,n;return((n=(t=(e=this.s)==null?void 0:e.config)==null?void 0:t.agent)==null?void 0:n.avatar_url)||null},quickLinks(){var t;const e=(t=this.widget)==null?void 0:t.quick_links;return Array.isArray(e)?e:[]},teamMembers(){var t;const e=(t=this.widget)==null?void 0:t.team_members;return Array.isArray(e)?e:[]},responseLabel(){var e;return((e=this.widget)==null?void 0:e.response_time_label)||""},humanMessageAuthor(){var t,n,s;if(!this.currentConv)return null;const e=((t=this.s.messagesByConv)==null?void 0:t[this.currentConv.id])||[];for(let r=e.length-1;r>=0;r--)if(((s=(n=e[r])==null?void 0:n.author)==null?void 0:s.type)==="agent_human")return e[r].author;return null},humanAgentName(){var e;return((e=this.humanMessageAuthor)==null?void 0:e.name)||""},humanAgentAvatarUrl(){var e;return((e=this.humanMessageAuthor)==null?void 0:e.avatar_url)||null},isEscalated(){return!!this.humanMessageAuthor},isWaitingHuman(){var t;const e=(t=this.currentConv)==null?void 0:t.status;return e==="waiting"||e==="handled"},headerTitle(){var e,t;return((e=this.currentConv)==null?void 0:e.name)||((t=this.widget)==null?void 0:t.name)||"Nouvelle conversation"},composerPlaceholder(){return this.isEscalated&&this.humanAgentName?`Répondre à ${this.humanAgentName.split(" ")[0]}…`:this.isWaitingHuman?"Un agent prend le relais…":"Écrivez votre message…"},displayedMessages(){const e=this.currentConv;if(!e)return[];const t=this.revealedAt;return(this.s.messagesByConv[e.id]||[]).filter(n=>{var s,r,i,o,a;return(n==null?void 0:n.type)==="action"&&((s=n==null?void 0:n.payload)==null?void 0:s.state)==="pending"||Zn(n)&&!(t[n.id]>0)?!1:(n==null?void 0:n.type)==="action"||(n==null?void 0:n.type)==="system"||((r=n==null?void 0:n.payload)==null?void 0:r.type)==="system"||Array.isArray((i=n==null?void 0:n.payload)==null?void 0:i.attachments)&&n.payload.attachments.length||(o=n==null?void 0:n.metadata)!=null&&o.artifact||(a=n==null?void 0:n.metadata)!=null&&a.form?!0:typeof(n==null?void 0:n.text_md)=="string"&&n.text_md.trim().length>0})},streamingActive(){var n,s,r;const e=this.currentConv;return e?Object.keys(((n=this.s)==null?void 0:n.streamingByMsgId)||{}).length>0?!0:this.actionInFlight?!1:(((r=(s=this.s)==null?void 0:s.messagesByConv)==null?void 0:r[e.id])||[]).some(i=>Zn(i)&&!(this.revealedAt[i.id]>0)):!1},currentConvMessages(){var t,n,s;const e=(t=this.currentConv)==null?void 0:t.id;return e?((s=(n=this.s)==null?void 0:n.messagesByConv)==null?void 0:s[e])||[]:[]},pendingApproval(){return!this.currentConv||!this.store||this.actionInFlight?null:this.store.getPendingApproval(this.currentConv.id)},approvalReady(){return this.pendingApproval?this.pendingApproval.id===this.approvalLatchId?!0:!(this.streamingActive||!this.approvalSettled):!1},approvalTitle(){var e,t,n;return((t=(e=this.pendingApproval)==null?void 0:e.payload)==null?void 0:t.name)||((n=this.pendingApproval)==null?void 0:n.text_md)||"Confirmer l'action"},approvalDetail(){var s,r,i,o,a,l;const e=(i=(r=(s=this.pendingApproval)==null?void 0:s.payload)==null?void 0:r.pending)==null?void 0:i.user_explanation;if(typeof e=="string"&&e.trim())return e.trim();const t=(l=(a=(o=this.pendingApproval)==null?void 0:o.payload)==null?void 0:a.pending)==null?void 0:l.prepared_params;if(!t||typeof t!="object")return"";const n=Object.entries(t);return n.length?n.slice(0,2).map(([f,c])=>`${f}: ${c}`).join(" · "):""},actionInFlight(){var e,t;return!this.currentConv||!this.store?null:((t=(e=this.store).getActionInFlight)==null?void 0:t.call(e,this.currentConv.id))||null},actionInFlightName(){var t;const e=this.actionInFlight;return e?((t=e.payload)==null?void 0:t.name)||e.text_md||"Action":""},suggestions(){return!this.currentConv||!this.store?[]:this.streamingActive?[]:this.pendingForm?[]:this.store.getLatestSuggestions(this.currentConv.id)},pendingForm(){var e,t;return!this.currentConv||!this.store||this.pendingApproval||this.actionInFlight||this.streamingActive||!this.approvalSettled?null:((t=(e=this.store).getLatestForm)==null?void 0:t.call(e,this.currentConv.id))||null},showFeedback(){var t;const e=this.currentConv;return e?this.feedbackDone?!0:e.status!=="resolved"?!1:!((t=e.metadata)!=null&&t.feedback):!1},floatVisible(){return this.approvalReady||!!this.pendingForm||this.showFeedback||this.suggestions.length>0},dateLabel(){var n,s,r;const e=this.currentConv;let t=new Date;if(e){const o=((r=(((s=(n=this.s)==null?void 0:n.messagesByConv)==null?void 0:s[e.id])||[]).find(a=>a==null?void 0:a.created_at))==null?void 0:r.created_at)||e.created_at;if(o){const a=new Date(o);Number.isNaN(a.getTime())||(t=a)}}return`Aujourd'hui · ${ao(t)}`},paginationState(){var n,s,r;const e=(n=this.currentConv)==null?void 0:n.id,t=e?(r=(s=this.s)==null?void 0:s.paginationByConv)==null?void 0:r[e]:null;return{loading:!!(t!=null&&t.loading),hasMore:!!(t!=null&&t.nextCursor)}}},watch:{latestUnreads:{handler(e){const t=new Set(e.map(o=>o.convId)),n=this.dismissedPeeks||{},s=Object.keys(n);if(!s.length)return;const r={};let i=!1;for(const o of s)t.has(o)?r[o]=n[o]:i=!0;i&&(this.dismissedPeeks=r)},deep:!0},"currentConv.id":{handler(e){var t;this.resetRevealQueue(),this.convOpenedAt=Date.now(),this.moreOpen=!1,this.renameDialogOpen=!1,this.resetApprovalPacing(),this.isViewingThread&&(this.unreadAnchorId=bt((t=this.currentConv)==null?void 0:t.last_read_message_id),this.unreadBoundaryTs=e?new Date().toISOString():"")},immediate:!0},isViewingThread(e,t){var n;e&&!t?(this.unreadAnchorId=bt((n=this.currentConv)==null?void 0:n.last_read_message_id),this.unreadBoundaryTs=new Date().toISOString()):e||(this.unreadAnchorId=null,this.unreadBoundaryTs="")},pendingApproval:{handler(e,t){if(e&&!t){const n=e!=null&&e.created_at?Date.parse(e.created_at):NaN;if(!(Number.isFinite(n)&&n>=this.convOpenedAt)){this.resetApprovalPacing();return}this.bumpApprovalSettle(2600)}else!e&&t&&this.resetApprovalPacing()},immediate:!1},streamingActive(e,t){e!==t&&this.pendingApproval&&this.pendingApproval.id!==this.approvalLatchId&&this.bumpApprovalSettle()},approvalReady(e){e&&this.pendingApproval&&(this.approvalLatchId=this.pendingApproval.id)},floatVisible:{handler(e){this.$nextTick(()=>this.syncFloatObserver(e))},immediate:!0},currentConvMessages(e){this.paceMessages(e),(this.isOpen||this.isEmbedded)&&this.currentConv&&this.markConvRead(this.currentConv)}},async mounted(){if(typeof document<"u"&&!document.getElementById(yo)){const e=document.createElement("style");e.id=yo,e.textContent=pc,document.head.appendChild(e)}await this.boot(),this.isEmbedded&&this.store&&await this.open()},beforeUnmount(){this.cancelReveals(),this.disconnectFloatRO(),this.resetApprovalPacing(),this.teardownNotifications(),this.store&&this.store.destroy()},methods:{async boot(){if(!this.canBoot){console.warn("[messenger] boot skipped — missing creds");return}try{this.transport=ws(uc({baseUrl:this.baseUrl,widgetId:this.widgetId,userId:this.userId,userHash:this.userHash})),this.store=ws(mc(this.transport)),this.hydrateNotifPref(),this.setupNotifications(),await this.store.start(),this.customer&&typeof this.customer=="object"&&await this.store.applyCustomer(this.customer)}catch(e){console.error("[ww-messenger] bootstrap failed",e),this.bootError=(e==null?void 0:e.message)||String(e)}},async refresh(){this.store&&this.store.destroy(),this.cancelReveals(),this.teardownNotifications(),this.convOpenedAt=0,this.transport=null,this.store=null,this.isOpen=!1,this.draft="",this.busy=!1,this.bootError=null,this.pendingAttachments=[],this.feedbackBusy=!1,this.feedbackDone=!1,this.moreOpen=!1,this.renameDialogOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!1,await this.boot(),this.isEmbedded&&this.store&&await this.open()},syncFloatObserver(e){if(this.disconnectFloatRO(),!e){this.floatHeight=0;return}const t=this.$refs.floatEl;if(t){if(typeof ResizeObserver>"u"){this.floatHeight=Math.ceil(t.getBoundingClientRect().height+8);return}this.floatRO=new ResizeObserver(n=>{const s=n[0];if(!s)return;const r=Math.ceil(s.contentRect.height+8);r!==this.floatHeight&&(this.floatHeight=r,this.$nextTick(()=>{var i,o;(o=(i=this.$refs.messageList)==null?void 0:i.scrollToBottom)==null||o.call(i)}))}),this.floatRO.observe(t)}},disconnectFloatRO(){if(this.floatRO){try{this.floatRO.disconnect()}catch{}this.floatRO=null}},async open(){this.isOpen=!0,this.store&&this.store.setPanelOpen(!0);const e=this.currentConv;if(e&&!e._draft){this.activeConvId==null&&(this.activeConvId=e.id);try{await this.store.openConversation(e.id)}catch(t){console.error("[ww-messenger] load messages failed",t)}this.markConvRead(e)}},close(){this.isOpen=!1,this.store&&this.store.setPanelOpen(!1)},async openFromPeek(e){var n,s;const t=e||((n=this.latestUnreads[0])==null?void 0:n.convId);t&&t!==((s=this.currentConv)==null?void 0:s.id)&&(this.draftConv=null,this.activeConvId=t,this.showOnboarding=!1),await this.open()},dismissPeek(e){const t=this.latestUnreads.find(n=>n.convId===e);t&&(this.dismissedPeeks={...this.dismissedPeeks,[e]:t.ts})},startConv(){this.draftConv={id:"__draft__",_draft:!0,name:"",created_at:new Date().toISOString()},this.activeConvId=null,this.showOnboarding=!1,this.focusComposer()},async ensureRealConv(){const e=this.currentConv;if(!e)return null;if(!e._draft)return e;if(this.busy)return null;this.busy=!0;try{const t=await this.store.createConversation({});return this.draftConv=null,this.activeConvId=t.id,await this.store.openConversation(t.id),this.markConvRead(t),t}catch(t){return console.error("[ww-messenger] create conv failed",t),this.bootError=(t==null?void 0:t.message)||String(t),null}finally{this.busy=!1}},focusComposer(){this.$nextTick(()=>{var e;return(e=this.$refs.composer)==null?void 0:e.focus()})},toggleMore(){this.moreOpen=!this.moreOpen},goHome(){this.moreOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!0},async onDrawerPick(e){if(!(e!=null&&e.id)||!this.store)return;this.draftConv=null,this.activeConvId=e.id,this.showOnboarding=!1;try{await this.store.openConversation(e.id)}catch(n){console.error("[ww-messenger] open conv failed",n)}const t=this.allConversations.find(n=>n.id===e.id);t&&this.markConvRead(t)},async onMoreAction(e){var t,n;switch(this.moreOpen=!1,e){case"rename":this.openRenameDialog();break;case"export":wc(this.currentConv,this.currentConv?(n=(t=this.s)==null?void 0:t.messagesByConv)==null?void 0:n[this.currentConv.id]:[]);break;case"status":if(this.statusUrl)try{window.open(this.statusUrl,"_blank","noopener")}catch{}break;case"help":if(this.helpUrl)try{window.open(this.helpUrl,"_blank","noopener")}catch{}break}},openRenameDialog(){const e=this.currentConv;!e||e._draft||(this.renameDialogOpen=!0)},async onRenameSubmit(e){const t=this.currentConv;if(this.renameDialogOpen=!1,!t||t._draft||!this.store)return;const n=(e||"").trim();if(!(!n||n===t.name))try{await this.store.patchConversation(t.id,{name:n})}catch(s){console.error("[ww-messenger] rename failed",s)}},async onSend(e){let t=this.currentConv;if(!t&&(this.startConv(),t=this.currentConv,!t)||t._draft&&(t=await this.ensureRealConv(),!t))return;const n=t.id,s=this.pendingAttachments.slice();this.pendingAttachments=[],this.unreadAnchorId=null,this.unreadBoundaryTs="",await this.store.send(n,e,{attachments:s.length?s:void 0})},async onSuggestion(e){const t=e==null?void 0:e.label;t&&await this.onSend(t)},async onLoadMore(){var t;const e=(t=this.currentConv)==null?void 0:t.id;!e||!this.store||await this.store.loadMore(e)},async onApprovalCallback(e){const t=this.pendingApproval;t&&await this.store.clickCallback(t.id,e)},async onFormSubmit({values:e}){const t=this.pendingForm;if(!(t!=null&&t.form))return;const n=gc(t.form,e);if(!n)return;let s=this.currentConv;s&&(s._draft&&(s=await this.ensureRealConv(),!s)||await this.store.send(s.id,n,{metadata:{artifact:_c(t.form,e)}}))},async onAttach(e){if(!(!e||!this.transport))try{const t=await this.transport.uploadAttachment(e);this.pendingAttachments.push({type:t.type||"file",path:t.path,name:e.name||"fichier",mime_type:e.type,size_bytes:e.size})}catch(t){console.error("[ww-messenger] attachment upload failed",t)}},async onQuickLink(e){if(e){if(e.url){try{window.open(e.url,"_blank","noopener")}catch{}return}this.currentConv||this.startConv(),await this.onSend(e.label)}},async onFeedback({rating:e,comment:t}){if(this.currentConv){this.feedbackBusy=!0;try{await this.store.submitFeedback(this.currentConv.id,{rating:e,comment:t}),this.feedbackDone=!0}catch(n){console.error("[ww-messenger] feedback failed",n)}finally{this.feedbackBusy=!1}}}}},_m={key:0,class:"wm-loading","aria-busy":"true","aria-live":"polite"},ym={key:0,class:"wm-state"},vm={class:"wm-state__err"},bm={class:"wm-state__errSub"},wm={class:"wm-bottom"},km={key:0,ref:"floatEl",class:"wm-float"},Cm={key:1,class:"wm-actionWait",role:"status","aria-live":"polite"},Am={class:"wm-actionWait__lbl"},Sm={key:2,class:"wm-attached"},xm=["onClick"];function Tm(e,t,n,s,r,i){const o=_e("Launcher"),a=_e("Header"),l=_e("Onboarding"),f=_e("MessageList"),c=_e("ApprovalCard"),g=_e("FormCard"),S=_e("Feedback"),C=_e("SuggestionChips"),V=_e("Composer"),I=_e("MoreMenu"),J=_e("RenameDialog");return m(),y("div",{class:se(["wm-root",`wm-root--${n.displayMode}`])},[!r.isOpen&&!i.isEmbedded?(m(),ye(o,{key:0,"unread-count":i.unreadCount,peeks:i.launcherPeeks,onOpen:i.openFromPeek,onDismiss:i.dismissPeek},null,8,["unread-count","peeks","onOpen","onDismiss"])):P("",!0),r.isOpen||i.isEmbedded?(m(),y("section",{key:1,class:se(["wm-panel",`wm-panel--${n.displayMode}`]),style:De(r.floatHeight?{"--wm-float-h":r.floatHeight+"px"}:null),role:"dialog","aria-label":"Messenger"},[!i.ready&&!i.error?(m(),y("div",_m,[i.isEmbedded?P("",!0):(m(),y("button",{key:0,type:"button",class:"wm-loading__close","aria-label":"Réduire",onClick:t[0]||(t[0]=(...z)=>i.close&&i.close(...z))},[...t[5]||(t[5]=[u("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])),t[6]||(t[6]=u("div",{class:"wm-loading__spinner","aria-hidden":"true"},null,-1))])):(m(),y(Q,{key:1},[ge(a,{title:i.headerTitle,"team-members":i.teamMembers,"response-label":i.responseLabel,"show-identity":!!i.currentConv,"show-back":i.canBack,"show-close":!i.isEmbedded,"more-active":r.moreOpen,onBack:i.goHome,onMore:i.toggleMore,onClose:i.close},null,8,["title","team-members","response-label","show-identity","show-back","show-close","more-active","onBack","onMore","onClose"]),i.error?(m(),y("div",ym,[u("div",vm,[t[8]||(t[8]=u("div",{class:"wm-state__errIcon"},[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})])],-1)),u("div",null,[t[7]||(t[7]=u("div",{class:"wm-state__errTitle"},"Connexion impossible",-1)),u("div",bm,D(i.error),1)])])])):i.currentConv?(m(),y(Q,{key:2},[ge(f,{ref:"messageList",messages:i.displayedMessages,"streaming-active":i.streamingActive,"date-label":i.dateLabel,"conversation-id":i.currentConv?i.currentConv.id:null,"loading-more":i.paginationState.loading,"has-more":i.paginationState.hasMore,"unread-anchor-id":e.unreadAnchorId,"unread-boundary-ts":e.unreadBoundaryTs,onLoadMore:i.onLoadMore},null,8,["messages","streaming-active","date-label","conversation-id","loading-more","has-more","unread-anchor-id","unread-boundary-ts","onLoadMore"]),u("div",wm,[i.floatVisible?(m(),y("div",km,[i.approvalReady?(m(),ye(c,{key:0,action:i.approvalTitle,detail:i.approvalDetail,callbacks:i.pendingApproval.callbacks,onCallback:i.onApprovalCallback},null,8,["action","detail","callbacks","onCallback"])):i.pendingForm?(m(),ye(g,{key:i.pendingForm.message&&i.pendingForm.message.id,form:i.pendingForm.form,onSubmit:i.onFormSubmit},null,8,["form","onSubmit"])):i.showFeedback?(m(),ye(S,{key:2,busy:r.feedbackBusy,done:r.feedbackDone,onSubmit:i.onFeedback},null,8,["busy","done","onSubmit"])):(m(),ye(C,{key:3,items:i.suggestions,onSelect:i.onSuggestion},null,8,["items","onSelect"]))],512)):P("",!0),i.actionInFlight?(m(),y("div",Cm,[t[9]||(t[9]=u("span",{class:"wm-actionWait__spinner","aria-hidden":"true"},null,-1)),u("span",Am,D(i.actionInFlightName)+" en cours, veuillez patienter…",1)])):(m(),ye(V,{key:2,ref:"composer",modelValue:r.draft,"onUpdate:modelValue":t[1]||(t[1]=z=>r.draft=z),placeholder:i.composerPlaceholder,disabled:!!i.pendingApproval,"attach-label":"Joindre un fichier",onSend:i.onSend,onAttach:i.onAttach},null,8,["modelValue","placeholder","disabled","onSend","onAttach"]))]),r.moreOpen?(m(),ye(I,{key:0,"can-rename":!!i.currentConv&&!i.currentConv._draft,"can-export":!!i.currentConv&&!i.currentConv._draft,"sound-enabled":e.soundEnabled,"browser-notif-enabled":e.browserNotifEnabled,"status-url":i.statusUrl,"help-url":i.helpUrl,onClose:t[2]||(t[2]=z=>r.moreOpen=!1),onSoundToggle:e.onSoundToggle,onBrowserNotifToggle:e.onBrowserNotifToggle,onAction:i.onMoreAction},null,8,["can-rename","can-export","sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):P("",!0),r.renameDialogOpen&&i.currentConv&&!i.currentConv._draft?(m(),ye(J,{key:1,"initial-value":i.currentConv.name||"",title:"Modifier le titre de la conversation",onClose:t[3]||(t[3]=z=>r.renameDialogOpen=!1),onSubmit:i.onRenameSubmit},null,8,["initial-value","onSubmit"])):P("",!0),r.pendingAttachments.length?(m(),y("div",Sm,[(m(!0),y(Q,null,xe(r.pendingAttachments,(z,K)=>(m(),y("div",{key:K,class:"wm-attached__chip"},[t[11]||(t[11]=u("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)),u("span",null,D(z.name),1),u("button",{type:"button","aria-label":"Retirer",onClick:X=>r.pendingAttachments.splice(K,1)},[...t[10]||(t[10]=[u("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])],8,xm)]))),128))])):P("",!0)],64)):(m(),ye(l,{key:1,"welcome-message":i.widgetWelcomeMessage,"agent-name":i.agentName,"quick-links":i.quickLinks,"open-threads":i.openThreads,busy:r.busy,onStart:i.startConv,onSelect:i.onQuickLink,onResume:i.onDrawerPick},null,8,["welcome-message","agent-name","quick-links","open-threads","busy","onStart","onSelect","onResume"])),r.moreOpen&&!i.currentConv?(m(),ye(I,{key:3,"can-rename":!1,"can-export":!1,"sound-enabled":e.soundEnabled,"browser-notif-enabled":e.browserNotifEnabled,"status-url":i.statusUrl,"help-url":i.helpUrl,onClose:t[4]||(t[4]=z=>r.moreOpen=!1),onSoundToggle:e.onSoundToggle,onBrowserNotifToggle:e.onBrowserNotifToggle,onAction:i.onMoreAction},null,8,["sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):P("",!0)],64))],6)):P("",!0)],2)}const Mm=ve(gm,[["render",Tm],["__scopeId","data-v-4500d0e5"]]),Em="0.3.11";let wt=null,It=null,Vs="";function Om(e){if(e instanceof Element)return e;if(typeof e=="string"){const n=document.querySelector(e);if(n)return n}const t=document.createElement("div");return t.setAttribute("data-messenger-root",""),document.body.appendChild(t),t}function Im(e){return{baseUrl:String(e.baseUrl||lo).trim(),widgetId:String(e.widgetId||"").trim(),userId:String(e.userId||"").trim(),userHash:String(e.userHash||"").trim(),displayMode:e.displayMode||"floating",devtools:!!e.devtools,target:e.target||null,customer:e.customer&&typeof e.customer=="object"?e.customer:null}}function Rm(e={}){const t=Im(e);if(!t.baseUrl||!t.widgetId||!t.userId||!t.userHash)return Ks(),null;const n=JSON.stringify({...t,target:typeof t.target=="string"?t.target:!!t.target});return wt&&n===Vs||(Ks(),It=Om(t.target),wt=sc(Mm,{baseUrl:t.baseUrl,widgetId:t.widgetId,userId:t.userId,userHash:t.userHash,displayMode:t.displayMode,devtools:t.devtools,customer:t.customer}),wt.mount(It),Vs=n),wt}function Ks(){if(wt){try{wt.unmount()}catch{}wt=null}It&&It.hasAttribute&&It.hasAttribute("data-messenger-root")&&It.remove(),It=null,Vs=""}return Kt.destroy=Ks,Kt.init=Rm,Kt.version=Em,Object.defineProperty(Kt,Symbol.toStringTag,{value:"Module"}),Kt}({});
76
+ `)}return r}const sf={name:"WmBubble",props:{role:{type:String,default:"ai"},text:{type:String,default:""}},computed:{rendered(){return nf(this.text)}}},rf=["innerHTML"];function of(e,t,n,s,r,i){return m(),y("div",{class:se(["wm-bubble","wm-bubble--"+n.role])},[La(e.$slots,"default",{},()=>[u("span",{innerHTML:i.rendered},null,8,rf)])],2)}const af=ve(sf,[["render",of],["__scopeId","data-v-5c9e9f2b"]]),lf={name:"WmTyping"},cf={class:"wm-typing"};function uf(e,t,n,s,r,i){return m(),y("div",cf,[...t[0]||(t[0]=[u("span",{style:{"animation-delay":"0s"}},null,-1),u("span",{style:{"animation-delay":"0.2s"}},null,-1),u("span",{style:{"animation-delay":"0.4s"}},null,-1)])])}const df=ve(lf,[["render",uf],["__scopeId","data-v-df2447fd"]]);function gn(e){return e?e.client_msg_id||e.id:""}const ff={transferred_to_human:"Conversation transférée à un humain",assigned:"{name} a rejoint la conversation",unassigned:"L'agent a quitté la conversation",resolved:"Conversation résolue",reopened:"Conversation rouverte",idle:"Conversation en pause"},hf=80,mf=200,pf={name:"WmMessageList",components:{AIAvatar:pn,HumanAvatar:ho,Bubble:af,Typing:df,ActionResult:nd,AttachmentPreview:Zd,ArtifactRenderer:Ud},props:{messages:{type:Array,default:()=>[]},streamingActive:{type:Boolean,default:!1},dateLabel:{type:String,default:""},conversationId:{type:[String,Number],default:null},loadingMore:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},unreadAnchorId:{type:Number,default:null},unreadBoundaryTs:{type:String,default:""}},emits:["load-more"],data(){return{silentFades:!1,widthByKey:Object.freeze({})}},computed:{historyExhausted(){return!this.hasMore&&!this.loadingMore&&this.messages.length>=20},groups(){var n,s,r,i;const e=[];for(const o of this.messages){const a=this.roleOf(o);if(a==="system"){if(((n=o==null?void 0:o.payload)==null?void 0:n.event)==="action_admin_pending"){const c=e[e.length-1];c&&c.role==="ai"?c.messages.push(o):e.push({key:`g-${gn(o)}`,role:"ai",agentName:"",agentAvatarUrl:null,messages:[o],items:[]});continue}e.push({key:`sys-${gn(o)}`,role:a,messages:[o],items:[],systemLabel:this.systemLabel(o)});continue}const l=e[e.length-1];l&&l.role===a&&(a==="ai"||l.agentName===(((s=o==null?void 0:o.author)==null?void 0:s.name)||""))?l.messages.push(o):e.push({key:`g-${gn(o)}`,role:a,agentName:((r=o==null?void 0:o.author)==null?void 0:r.name)||"",agentAvatarUrl:((i=o==null?void 0:o.author)==null?void 0:i.avatar_url)||null,messages:[o],items:[]})}for(const o of e){if(o.role==="system")continue;const a=[];for(const l of o.messages)for(const f of this.itemsOf(l))a.push(f);o.items=a}const t=[];for(const o of e){if(o.role!=="system"&&!o.items.length)continue;const a=t[t.length-1];if(a&&a.role!=="system"&&a.role===o.role&&(o.role==="ai"||a.agentName===o.agentName)){a.messages.push(...o.messages),a.items.push(...o.items);continue}t.push(o)}return t},unreadGroupKey(){if(this.unreadAnchorId==null)return null;const e=this.unreadAnchorId,t=this.unreadBoundaryTs;for(const n of this.groups){if(n.role==="user"||n.role==="system"||!n.items.length)continue;const s=n.messages[0];if(!s)continue;const r=bt(s.id);if(r!=null&&!(r<=e)&&!(t&&s.created_at&&s.created_at>t))return n.key}return null}},watch:{messages:{handler:"snapshotAndRestore",deep:!0},loadingMore(e){e||(this._pendingLoadMore=!1),this.silentFades=!0,clearTimeout(this._silenceTimer),e||(this._silenceTimer=setTimeout(()=>{this.silentFades=!1},250)),this.snapshotAndRestore()},streamingActive:"snapshotAndRestore"},mounted(){this._lastSeenConvId=this.conversationId,this.scrollToBottom(),this._measureFrame=null,this._ro=new ResizeObserver(()=>this.scheduleMeasure()),this.$refs.scrollEl&&this._ro.observe(this.$refs.scrollEl),this.$nextTick(()=>this.measureRows())},beforeUnmount(){var e;(e=this._ro)==null||e.disconnect(),this._measureFrame&&cancelAnimationFrame(this._measureFrame),clearTimeout(this._silenceTimer)},updated(){this.scheduleMeasure()},methods:{messageKey:gn,isAtBottom(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=hf},onScroll(){const e=this.$refs.scrollEl;e&&(this.loadingMore||!this.hasMore||this._pendingLoadMore||e.scrollTop<=mf&&(this._pendingLoadMore=!0,this.$emit("load-more")))},snapshotAndRestore(){const e=this.$refs.scrollEl;if(!e||this._scrollSnap)return;const t=this._lastSeenConvId!==this.conversationId;this._lastSeenConvId=this.conversationId;const n=this.isAtBottom(e);let s=null;if(!t&&!n){const i=this.pickAnchor(e);if(i!=null&&i.el){const o=e.getBoundingClientRect().top;s={el:i.el,relY:i.el.getBoundingClientRect().top-o}}}const r={forceBottom:t,wasPinned:n,anchor:s};this._scrollSnap=r,this.$nextTick(()=>{if(this._scrollSnap=null,r.forceBottom||r.wasPinned){e.scrollTop=e.scrollHeight;return}if(!r.anchor)return;const i=()=>{var f;const o=r.anchor;if(!((f=o.el)!=null&&f.isConnected))return;const l=o.el.getBoundingClientRect().top-e.getBoundingClientRect().top-o.relY;Math.abs(l)>.5&&(e.scrollTop+=l)};i(),requestAnimationFrame(()=>{i(),requestAnimationFrame(i)})})},pickAnchor(e){const t=e.scrollTop;let n=null;for(const s of e.children)if(s.classList.contains("wm-list__group")&&(n||(n=s),s.offsetTop+s.offsetHeight>=t))return{el:s,offsetTop:s.offsetTop};return n?{el:n,offsetTop:n.offsetTop}:null},roleOf(e){var n,s;if((e==null?void 0:e.type)==="system"||((n=e==null?void 0:e.payload)==null?void 0:n.type)==="system")return"system";const t=(s=e==null?void 0:e.author)==null?void 0:s.type;return t==="user"?"user":t==="agent_human"?"human":"ai"},roleLabel(e){return e.role==="human"?e.agentName||"Agent":"Assistant IA"},itemsOf(e){var t;if(!e)return[];if(e.type==="system"&&((t=e==null?void 0:e.payload)==null?void 0:t.event)==="action_admin_pending")return[{message:e,partKey:"main",renderAs:"admin-pending",kind:{top:"bubble",bottom:"bubble"}}];if(e.type==="action"&&e.payload&&e.payload.state!=="pending"){const n=[{message:e,partKey:"main",renderAs:"action",kind:{top:"bubble",bottom:"bubble"}}];return this.actionArtifact(e)&&n.push({message:e,partKey:"artifact",renderAs:"artifact-of-action",kind:{top:"card",bottom:"card"}}),n}return this.artifactOf(e)?[{message:e,partKey:"main",renderAs:"artifact",kind:{top:"card",bottom:"card"}}]:e.text_md||this.attachmentsOf(e).length?[{message:e,partKey:"main",renderAs:"bubble",kind:{top:"bubble",bottom:"bubble"}}]:[]},cornersFor(e,t){var j,te,le;const n=e.items,s=(j=n[t])==null?void 0:j.kind,r=(te=n[t-1])==null?void 0:te.kind,i=(le=n[t+1])==null?void 0:le.kind,o=e.role==="user",a=14,l=4,f=r==null?void 0:r.bottom,c=i==null?void 0:i.top,g=this.widthByKey[this.rowKeyOf(e,t)],S=this.widthByKey[this.rowKeyOf(e,t-1)],C=this.widthByKey[this.rowKeyOf(e,t+1)],V=.5,I=(we,be,q)=>we!=null&&g!=null?we+V>=g:be===q||be==="card"&&q==="bubble";let J=a,z=a,K=a,X=a;return o?(f&&(z=l),(c||!i)&&(K=l),f&&I(S,f,s==null?void 0:s.top)&&(J=l),c&&I(C,c,s==null?void 0:s.bottom)&&(X=l)):(f&&(J=l),(c||!i)&&(X=l),f&&I(S,f,s==null?void 0:s.top)&&(z=l),c&&I(C,c,s==null?void 0:s.bottom)&&(K=l)),{tl:J,tr:z,br:K,bl:X}},cornersStyle(e,t){if(e.items.length<2)return null;const n=this.cornersFor(e,t);return{"--wm-r-tl":`${n.tl}px`,"--wm-r-tr":`${n.tr}px`,"--wm-r-br":`${n.br}px`,"--wm-r-bl":`${n.bl}px`}},rowKeyOf(e,t){var s;const n=(s=e==null?void 0:e.items)==null?void 0:s[t];return n?`${gn(n.message)}-${n.partKey}`:""},scheduleMeasure(){this._measureFrame||(this._measureFrame=requestAnimationFrame(()=>{this._measureFrame=null,this.measureRows()}))},measureRows(){const e=this.$refs.scrollEl;if(!e)return;const t={};for(const i of e.querySelectorAll(".wm-list__row[data-row-key]")){const o=i.dataset.rowKey;if(!o)continue;const a=i.querySelector(".wm-bubble, .wm-result, .wm-art, .wm-list__body");if(!a)continue;const l=a.getBoundingClientRect().width;l>0&&(t[o]=l)}const n=this.widthByKey,s=Object.keys(n),r=Object.keys(t);if(s.length===r.length){let i=!0;for(const o of r)if(Math.abs((n[o]??0)-t[o])>.5){i=!1;break}if(i)return}this.widthByKey=Object.freeze(t)},lastTimeOf(e){const t=e.items[e.items.length-1],n=(t==null?void 0:t.message)||e.messages[e.messages.length-1];if(!(n!=null&&n.created_at))return"";try{return ao(new Date(n.created_at))}catch{return""}},hasTrailingOverlay(e){if(!e.messages.length)return!1;const t=e.messages[e.messages.length-1],n=e.items[e.items.length-1];return!!t&&(n==null?void 0:n.message)!==t},attachmentsOf(e){var n;const t=(n=e==null?void 0:e.payload)==null?void 0:n.attachments;return Array.isArray(t)?t:[]},artifactOf(e){var n;const t=(n=e==null?void 0:e.metadata)==null?void 0:n.artifact;return!t||typeof t!="object"||typeof t.kind!="string"?null:t},actionLabel(e){var t;return((t=e==null?void 0:e.payload)==null?void 0:t.name)||(e==null?void 0:e.text_md)||"Action"},actionDetail(e){var n,s,r,i,o,a;const t=e==null?void 0:e.payload;return t?t.state==="success"?((n=t.success)==null?void 0:n.summary)||((r=(s=t.success)==null?void 0:s.metadata)==null?void 0:r.description)||"":t.state==="rejected"?((i=t.rejected)==null?void 0:i.reason)||"Action annulée par l'utilisateur.":t.state==="failure"&&(((o=t.failure)==null?void 0:o.summary)||((a=t.failure)==null?void 0:a.error))||"":""},actionArtifact(e){var n,s;const t=(s=(n=e==null?void 0:e.payload)==null?void 0:n.success)==null?void 0:s.artifact;return!t||typeof t!="object"||typeof t.kind!="string"?null:t},systemLabel(e){var r,i,o;const t=(r=e==null?void 0:e.payload)==null?void 0:r.event,n=ff[t]||(e==null?void 0:e.text_md)||"Mise à jour de la conversation",s=((i=e==null?void 0:e.metadata)==null?void 0:i.agent_name)||((o=e==null?void 0:e.author)==null?void 0:o.name)||"";return n.replace("{name}",s||"Un agent")},scrollToBottom(){const e=this.$refs.scrollEl;e&&(e.scrollTop=e.scrollHeight)}}},gf={key:0,class:"wm-list__loadMore",role:"status","aria-live":"polite"},_f={key:1,class:"wm-list__historyEnd"},yf={key:2,class:"wm-list__sep"},vf={class:"wm-list__sep-label"},bf={key:0,class:"wm-list__sep wm-list__sep--unread"},wf={key:0,class:"wm-list__sysep"},kf={class:"wm-list__sysep-label"},Cf=["data-row-key"],Af={key:0,class:"wm-list__avatarSlot"},Sf={key:5,class:"wm-list__body"},xf={key:0},Tf={key:1,"aria-hidden":"true"},Mf={key:2},Ef={key:3,class:"wm-list__row wm-list__row--ai fade-up"},Of={class:"wm-list__avatarSlot"};function If(e,t,n,s,r,i){const o=_e("AIAvatar"),a=_e("HumanAvatar"),l=_e("ActionResult"),f=_e("ArtifactRenderer"),c=_e("Bubble"),g=_e("AttachmentPreview"),S=_e("Typing");return m(),y("div",{ref:"scrollEl",class:se(["wm-list",{"wm-list--silent":r.silentFades}]),onScrollPassive:t[0]||(t[0]=(...C)=>i.onScroll&&i.onScroll(...C))},[n.loadingMore?(m(),y("div",gf,[...t[1]||(t[1]=[u("span",{class:"wm-list__loadMore-spinner","aria-hidden":"true"},null,-1),u("span",{class:"wm-list__loadMore-lbl"},"Chargement de l'historique…",-1)])])):i.historyExhausted?(m(),y("div",_f,"Début de la conversation")):P("",!0),n.dateLabel?(m(),y("div",yf,[t[2]||(t[2]=u("div",{class:"wm-list__line"},null,-1)),u("span",vf,D(n.dateLabel),1),t[3]||(t[3]=u("div",{class:"wm-list__line"},null,-1))])):P("",!0),(m(!0),y(Q,null,xe(i.groups,(C,V)=>(m(),y(Q,{key:C.key},[C.key===i.unreadGroupKey?(m(),y("div",bf,[...t[4]||(t[4]=[u("div",{class:"wm-list__line wm-list__line--unread"},null,-1),u("span",{class:"wm-list__sep-label wm-list__sep-label--unread"},"Non lus",-1),u("div",{class:"wm-list__line wm-list__line--unread"},null,-1)])])):P("",!0),C.role==="system"||C.items.length?(m(),y("div",{key:1,class:se(["wm-list__group","wm-list__group--"+C.role])},[C.role==="system"?(m(),y("div",wf,[t[5]||(t[5]=u("div",{class:"wm-list__line wm-list__line--strong"},null,-1)),u("span",kf,D(C.systemLabel),1),t[6]||(t[6]=u("div",{class:"wm-list__line wm-list__line--strong"},null,-1))])):(m(),y(Q,{key:1},[(m(!0),y(Q,null,xe(C.items,(I,J)=>(m(),y("div",{key:`${i.messageKey(I.message)}-${I.partKey}`,"data-row-key":`${i.messageKey(I.message)}-${I.partKey}`,class:se(["wm-list__row fade-up",["wm-list__row--"+C.role,{"is-pending":I.message._pending,"is-failed":I.message._failed}]]),style:De(i.cornersStyle(C,J))},[C.role!=="user"?(m(),y("div",Af,[J===C.items.length-1?(m(),y(Q,{key:0},[C.role==="ai"?(m(),ye(o,{key:0,size:26,tail:!0})):(m(),ye(a,{key:1,name:C.agentName,"avatar-url":C.agentAvatarUrl,size:26,tail:!0},null,8,["name","avatar-url"]))],64)):P("",!0)])):P("",!0),I.renderAs==="action"?(m(),ye(l,{key:1,state:I.message.payload.state,label:i.actionLabel(I.message),detail:i.actionDetail(I.message)},null,8,["state","label","detail"])):I.renderAs==="admin-pending"?(m(),ye(l,{key:2,state:"awaiting",label:"Demande d'approbation envoyée",detail:I.message.text_md||""},null,8,["detail"])):I.renderAs==="artifact-of-action"?(m(),ye(f,{key:3,artifact:i.actionArtifact(I.message)},null,8,["artifact"])):I.renderAs==="artifact"?(m(),ye(f,{key:4,artifact:i.artifactOf(I.message)},null,8,["artifact"])):(m(),y("div",Sf,[I.message.text_md?(m(),ye(c,{key:0,role:C.role,text:I.message.text_md},null,8,["role","text"])):P("",!0),i.attachmentsOf(I.message).length?(m(),y("div",{key:1,class:se(["wm-list__atts",{"wm-list__atts--align-end":C.role==="user"}])},[(m(!0),y(Q,null,xe(i.attachmentsOf(I.message),(z,K)=>(m(),ye(g,{key:`${i.messageKey(I.message)}-att-${K}`,attachment:z},null,8,["attachment"]))),128))],2)):P("",!0)]))],14,Cf))),128)),(C.role!=="user"||i.lastTimeOf(C))&&!i.hasTrailingOverlay(C)?(m(),y("div",{key:0,class:se(["wm-list__meta",{"wm-list__meta--right":C.role==="user"}])},[C.role!=="user"?(m(),y("span",xf,D(i.roleLabel(C)),1)):P("",!0),C.role!=="user"&&i.lastTimeOf(C)?(m(),y("span",Tf,"·")):P("",!0),i.lastTimeOf(C)?(m(),y("span",Mf,D(i.lastTimeOf(C)),1)):P("",!0)],2)):P("",!0)],64))],2)):P("",!0)],64))),128)),n.streamingActive?(m(),y("div",Ef,[u("div",Of,[ge(o,{size:26,tail:!0})]),ge(S)])):P("",!0)],34)}const Rf=ve(pf,[["render",If],["__scopeId","data-v-946babe3"]]),ts=typeof navigator<"u"&&!!navigator.mediaDevices&&typeof navigator.mediaDevices.getDisplayMedia=="function",Hs=typeof window<"u"&&typeof window.MediaRecorder<"u";function Lf(){return Hs&&["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm","video/mp4"].find(t=>{var n,s;return(s=(n=window.MediaRecorder).isTypeSupported)==null?void 0:s.call(n,t)})||""}function go({audio:e}){return{video:!0,audio:!!e,selfBrowserSurface:"include",surfaceSwitching:"include",systemAudio:e?"include":"exclude"}}async function Bf(){if(!ts)return null;let e;try{e=await navigator.mediaDevices.getDisplayMedia(go({audio:!1}))}catch(t){return(t==null?void 0:t.name)!=="NotAllowedError"&&console.error("[media] screenshot picker",t),null}try{return await $f(e)}catch(t){return console.error("[media] screenshot capture",t),null}finally{e.getTracks().forEach(t=>{t.stop()})}}async function $f(e){const t=document.createElement("video");t.muted=!0,t.playsInline=!0,t.srcObject=e,await t.play(),await new Promise(a=>requestAnimationFrame(a));const n=t.videoWidth||1280,s=t.videoHeight||720,r=document.createElement("canvas");r.width=n,r.height=s,r.getContext("2d").drawImage(t,0,0,n,s);const i=await new Promise((a,l)=>{r.toBlob(f=>f?a(f):l(new Error("toBlob failed")),"image/png")}),o=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);return new File([i],`capture-${o}.png`,{type:"image/png"})}async function Pf(e={}){var f;if(!ts||!Hs)return null;let t;try{t=await navigator.mediaDevices.getDisplayMedia(go({audio:!0}))}catch(c){return(c==null?void 0:c.name)!=="NotAllowedError"&&console.error("[media] record picker",c),null}const n=Lf();let s;try{s=n?new window.MediaRecorder(t,{mimeType:n}):new window.MediaRecorder(t)}catch(c){return console.error("[media] recorder init",c),t.getTracks().forEach(g=>{g.stop()}),null}const r=[];let i=null,o=!1;s.addEventListener("dataavailable",c=>{c.data&&c.data.size>0&&r.push(c.data)}),s.addEventListener("stop",()=>{var c,g;if(i&&clearInterval(i),t.getTracks().forEach(S=>{S.stop()}),r.length){const S=s.mimeType||n||"video/webm",C=new Blob(r,{type:S}),V=/mp4/.test(S)?"mp4":"webm",I=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),J=new File([C],`ecran-${I}.${V}`,{type:S});(c=e.onfinalize)==null||c.call(e,J)}else(g=e.oncancel)==null||g.call(e)}),t.getVideoTracks().forEach(c=>{c.addEventListener("ended",()=>a(),{once:!0})});function a(){if(!o&&(o=!0,s.state!=="inactive"))try{s.stop()}catch(c){console.error("[media] recorder stop",c)}}try{s.start(1e3)}catch(c){return console.error("[media] recorder start",c),t.getTracks().forEach(g=>{g.stop()}),null}(f=e.onstart)==null||f.call(e);const l=Date.now();return i=setInterval(()=>{var c;(c=e.ontick)==null||c.call(e,Date.now()-l)},500),{stop:a,get state(){return s.state}}}const Nf=[{action:"file",label:"Joindre un fichier",path:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"},{action:"screenshot",label:"Capture d'écran",path:"M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z M12 17a4 4 0 100-8 4 4 0 000 8z"},{action:"record",label:"Enregistrer l'écran",path:"M23 7l-7 5 7 5V7z M1 5a2 2 0 012-2h12a2 2 0 012 2v14a2 2 0 01-2 2H3a2 2 0 01-2-2V5z"}],Ff={name:"WmComposer",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Écrivez votre message…"},disabled:{type:Boolean,default:!1},attachLabel:{type:String,default:"Joindre"}},emits:["update:modelValue","send","attach"],data(){return{local:this.modelValue,attachOpen:!1,recording:!1,recordingElapsed:0,recorder:null}},computed:{canSend(){return!this.disabled&&!!this.local.trim()},attachItems(){return Nf.map(e=>({...e,disabled:e.action==="screenshot"&&!ts||e.action==="record"&&(!ts||!Hs)}))},recordingElapsedLabel(){const e=Math.floor(this.recordingElapsed/1e3),t=Math.floor(e/60),n=e%60;return`${t}:${n.toString().padStart(2,"0")}`}},watch:{modelValue(e){e!==this.local&&(this.local=e,this.$nextTick(()=>this.autosize()))},local(e){this.$emit("update:modelValue",e)}},mounted(){this.autosize()},beforeUnmount(){if(this.recorder)try{this.recorder.stop()}catch{}},methods:{focus(){const e=this.$refs.inputEl;if(!(!e||this.disabled))try{e.focus({preventScroll:!0})}catch{e.focus()}},onSubmit(){if(!this.canSend)return;const e=this.local.trim();this.local="",this.$emit("send",e),this.$nextTick(()=>this.autosize())},onKeydown(e){e.key==="Enter"&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&!e.isComposing&&(e.preventDefault(),this.onSubmit())},autosize(){const e=this.$refs.inputEl;e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)},onFile(e){const t=Array.from(e.target.files||[]);for(const n of t)this.$emit("attach",n);e.target.value=""},onAttachAction(e){this.attachOpen=!1,e==="file"?this.pickFile():e==="screenshot"?this.captureScreenshot():e==="record"&&this.startRecording()},pickFile(){var e;(e=this.$refs.fileEl)==null||e.click()},async captureScreenshot(){if(this.disabled)return;const e=await Bf();e&&this.$emit("attach",e)},async startRecording(){if(this.recording||this.disabled)return;this.recordingElapsed=0;const e=await Pf({onstart:()=>{this.recording=!0},ontick:t=>{this.recordingElapsed=t},onfinalize:t=>{this.$emit("attach",t),this.recording=!1,this.recordingElapsed=0,this.recorder=null},oncancel:()=>{this.recording=!1,this.recordingElapsed=0,this.recorder=null}});e&&(this.recorder=e)},stopRecording(){if(this.recorder)try{this.recorder.stop()}catch(e){console.error("[composer] stop recording",e)}}}},Df={class:"wm-compose-wrap"},jf={key:0,class:"wm-rec"},Uf={class:"wm-rec__lbl"},Hf={key:1,class:"wm-compose__menu",role:"menu"},Vf=["disabled","onClick"],Kf={class:"wm-compose__menuIcon"},Wf={viewBox:"0 0 24 24",width:"14",height:"14","aria-hidden":"true"},qf=["d"],zf=["placeholder","disabled"],Gf={class:"wm-compose__actions"},Yf=["title","aria-label","disabled"],Jf=["disabled"];function Xf(e,t,n,s,r,i){return m(),y("div",Df,[r.recording?(m(),y("div",jf,[t[8]||(t[8]=u("span",{class:"wm-rec__dot","aria-hidden":"true"},null,-1)),u("span",Uf,"Enregistrement · "+D(i.recordingElapsedLabel),1),u("button",{type:"button",class:"wm-rec__stop",onClick:t[0]||(t[0]=(...o)=>i.stopRecording&&i.stopRecording(...o))},"Arrêter")])):P("",!0),u("form",{class:se(["wm-compose",{"has-attach":r.attachOpen}]),onSubmit:t[7]||(t[7]=vt((...o)=>i.onSubmit&&i.onSubmit(...o),["prevent"]))},[u("input",{ref:"fileEl",type:"file",hidden:"",multiple:"",onChange:t[1]||(t[1]=(...o)=>i.onFile&&i.onFile(...o))},null,544),r.attachOpen?(m(),y("div",{key:0,class:"wm-compose__overlay",onClick:t[2]||(t[2]=o=>r.attachOpen=!1)})):P("",!0),r.attachOpen?(m(),y("div",Hf,[(m(!0),y(Q,null,xe(i.attachItems,o=>(m(),y("button",{key:o.action,type:"button",class:"wm-compose__menuItem",disabled:o.disabled,onClick:a=>i.onAttachAction(o.action)},[u("span",Kf,[(m(),y("svg",Wf,[u("path",{d:o.path,stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,8,qf)]))]),u("span",null,D(o.label),1)],8,Vf))),128))])):P("",!0),at(u("textarea",{ref:"inputEl","onUpdate:modelValue":t[3]||(t[3]=o=>r.local=o),class:"wm-compose__input",rows:"3",placeholder:n.placeholder,disabled:n.disabled,onKeydown:t[4]||(t[4]=(...o)=>i.onKeydown&&i.onKeydown(...o)),onInput:t[5]||(t[5]=(...o)=>i.autosize&&i.autosize(...o))},null,40,zf),[[Ot,r.local]]),u("div",Gf,[u("button",{type:"button",class:se(["wm-compose__icon",{"is-open":r.attachOpen}]),title:n.attachLabel,"aria-label":n.attachLabel,disabled:r.recording,onClick:t[6]||(t[6]=o=>r.attachOpen=!r.attachOpen)},[...t[9]||(t[9]=[u("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)])],10,Yf),u("button",{type:"submit",class:se(["wm-compose__send",{"is-empty":!i.canSend}]),disabled:!i.canSend,"aria-label":"Envoyer"},[...t[10]||(t[10]=[u("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"})],-1)])],10,Jf)])],34)])}const Qf=ve(Ff,[["render",Xf],["__scopeId","data-v-14fa9ec0"]]),Zf={name:"WmSuggestionChips",props:{items:{type:Array,default:()=>[]},baseDelay:{type:Number,default:360},stepDelay:{type:Number,default:90}},emits:["select"],computed:{batchKey(){return this.items.map(e=>(e==null?void 0:e.label)||(e==null?void 0:e.text)||"").join("§")}}},eh=["onClick"];function th(e,t,n,s,r,i){return n.items.length?(m(),y("div",{key:i.batchKey,class:"wm-chips"},[(m(!0),y(Q,null,xe(n.items,(o,a)=>(m(),y("button",{key:a,type:"button",class:"wm-chip",style:De({animationDelay:n.baseDelay+a*n.stepDelay+"ms"}),onClick:l=>e.$emit("select",o)},D(o.label),13,eh))),128))])):P("",!0)}const nh=ve(Zf,[["render",th],["__scopeId","data-v-55aa529d"]]),sh={name:"WmApprovalCard",components:{AIAvatar:pn},props:{action:{type:String,required:!0},detail:{type:String,default:""},callbacks:{type:Array,default:()=>[]}},emits:["callback"],computed:{approveCallback(){return this.callbacks.find(e=>e.id==="approve"||e.style==="primary")||this.callbacks[0]},rejectCallback(){return this.callbacks.find(e=>e.id==="reject"||e.style==="danger"||e.style==="neutral")||(this.callbacks.length>1?this.callbacks[1]:null)},approveId(){var e;return(e=this.approveCallback)==null?void 0:e.id},rejectId(){var e;return(e=this.rejectCallback)==null?void 0:e.id},approveLabel(){var e;return((e=this.approveCallback)==null?void 0:e.label)||"Autoriser"},rejectLabel(){var e;return((e=this.rejectCallback)==null?void 0:e.label)||"Refuser"}}},rh={class:"wm-approval"},ih={class:"wm-approval__head"},oh={class:"wm-approval__icon"},ah={class:"wm-approval__main"},lh={class:"wm-approval__title"},ch={key:0,class:"wm-approval__detail"},uh={class:"wm-approval__actions"};function dh(e,t,n,s,r,i){const o=_e("AIAvatar");return m(),y("div",rh,[u("div",ih,[u("div",oh,[ge(o,{size:24})]),u("div",ah,[u("div",lh,D(n.action),1),n.detail?(m(),y("div",ch,D(n.detail),1)):P("",!0)])]),u("div",uh,[i.rejectId?(m(),y("button",{key:0,type:"button",class:"wm-approval__btn wm-approval__btn--neutral",onClick:t[0]||(t[0]=a=>e.$emit("callback",i.rejectId))},D(i.rejectLabel),1)):P("",!0),i.approveId?(m(),y("button",{key:1,type:"button",class:"wm-approval__btn wm-approval__btn--primary",onClick:t[1]||(t[1]=a=>e.$emit("callback",i.approveId))},D(i.approveLabel),1)):P("",!0)])])}const fh=ve(sh,[["render",dh],["__scopeId","data-v-b1be139c"]]);let _o=0;const hh=new Set(["text","textarea","number","boolean","select","multiselect","date"]),mh={name:"WmFormCard",components:{AIAvatar:pn},props:{form:{type:Object,required:!0},readOnly:{type:Boolean,default:!1},initialValues:{type:Object,default:null}},emits:["submit"],data(){return _o+=1,{_uid:_o,values:{},busy:!1,error:""}},computed:{normalizedFields(){var t;return(Array.isArray((t=this.form)==null?void 0:t.fields)?this.form.fields:[]).filter(n=>!(!(n!=null&&n.key)||!(n!=null&&n.label)||!hh.has(n==null?void 0:n.type)||(n.type==="select"||n.type==="multiselect")&&(!Array.isArray(n.options)||n.options.length===0)))}},created(){this.resetValues()},methods:{resetValues(){const e=this.initialValues&&typeof this.initialValues=="object"?this.initialValues:{},t={};for(const n of this.normalizedFields){if(e[n.key]!==void 0){t[n.key]=e[n.key];continue}n.type==="boolean"?t[n.key]=!1:n.type==="multiselect"?t[n.key]=[]:t[n.key]=""}this.values=t,this.error=""},toggleMulti(e,t,n){const s=Array.isArray(this.values[e])?this.values[e].slice():[],r=s.indexOf(t);n&&r===-1?s.push(t):!n&&r!==-1&&s.splice(r,1),this.values={...this.values,[e]:s}},validate(){for(const e of this.normalizedFields){if(!e.required)continue;const t=this.values[e.key];if(e.type!=="boolean"){if(e.type==="multiselect"){if(!Array.isArray(t)||t.length===0)return`« ${e.label} » est requis.`;continue}if(t==null||t==="")return`« ${e.label} » est requis.`}}return""},async onSubmit(){if(this.readOnly||this.busy)return;const e=this.validate();if(e){this.error=e;return}this.error="",this.busy=!0;try{await this.$emit("submit",{values:this.values})}finally{this.busy=!1}}}},ph={class:"wm-form"},gh={class:"wm-form__head"},_h={class:"wm-form__icon"},yh={class:"wm-form__main"},vh={class:"wm-form__title"},bh={key:0,class:"wm-form__detail"},wh=["for"],kh={key:0,class:"wm-form__req","aria-hidden":"true"},Ch=["id","onUpdate:modelValue","placeholder","required","disabled"],Ah=["id","onUpdate:modelValue","placeholder","required","disabled"],Sh=["id","onUpdate:modelValue","placeholder","required","disabled"],xh=["id","onUpdate:modelValue","required","disabled"],Th={key:4,class:"wm-form__bool"},Mh=["id","onUpdate:modelValue","disabled"],Eh=["id","onUpdate:modelValue","required","disabled"],Oh={value:"",disabled:""},Ih=["value"],Rh={key:6,class:"wm-form__multi"},Lh=["value","checked","disabled","onChange"],Bh={key:0,class:"wm-form__err"},$h=["disabled"],Ph={key:0,class:"wm-form__spinner","aria-hidden":"true"},Nh={key:2,class:"wm-form__doneLbl"};function Fh(e,t,n,s,r,i){const o=_e("AIAvatar");return m(),y("div",ph,[u("div",gh,[u("div",_h,[ge(o,{size:24})]),u("div",yh,[u("div",vh,D(n.form.title||"Formulaire"),1),n.form.description?(m(),y("div",bh,D(n.form.description),1)):P("",!0)])]),u("form",{class:"wm-form__body",onSubmit:t[0]||(t[0]=vt((...a)=>i.onSubmit&&i.onSubmit(...a),["prevent"]))},[(m(!0),y(Q,null,xe(i.normalizedFields,a=>(m(),y("div",{key:a.key,class:"wm-form__field"},[u("label",{for:`wm-f-${r._uid}-${a.key}`,class:"wm-form__label"},[Gn(D(a.label),1),a.required?(m(),y("span",kh,"*")):P("",!0)],8,wh),a.type==="text"?at((m(),y("input",{key:0,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"text",class:"wm-form__input",placeholder:a.placeholder||"",required:a.required,disabled:n.readOnly||r.busy},null,8,Ch)),[[Ot,r.values[a.key]]]):a.type==="textarea"?at((m(),y("textarea",{key:1,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,class:"wm-form__textarea",rows:"3",placeholder:a.placeholder||"",required:a.required,disabled:n.readOnly||r.busy},null,8,Ah)),[[Ot,r.values[a.key]]]):a.type==="number"?at((m(),y("input",{key:2,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"number",class:"wm-form__input",placeholder:a.placeholder||"",required:a.required,disabled:n.readOnly||r.busy},null,8,Sh)),[[Ot,r.values[a.key],void 0,{number:!0}]]):a.type==="date"?at((m(),y("input",{key:3,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"date",class:"wm-form__input",required:a.required,disabled:n.readOnly||r.busy},null,8,xh)),[[Ot,r.values[a.key]]]):a.type==="boolean"?(m(),y("label",Th,[at(u("input",{id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,type:"checkbox",disabled:n.readOnly||r.busy},null,8,Mh),[[Jl,r.values[a.key]]]),u("span",null,D(a.placeholder||"Oui"),1)])):a.type==="select"?at((m(),y("select",{key:5,id:`wm-f-${r._uid}-${a.key}`,"onUpdate:modelValue":l=>r.values[a.key]=l,class:"wm-form__select",required:a.required,disabled:n.readOnly||r.busy},[u("option",Oh,D(a.placeholder||"Choisir…"),1),(m(!0),y(Q,null,xe(a.options,l=>(m(),y("option",{key:l.value,value:l.value},D(l.label),9,Ih))),128))],8,Eh)),[[Xl,r.values[a.key]]]):a.type==="multiselect"?(m(),y("div",Rh,[(m(!0),y(Q,null,xe(a.options,l=>(m(),y("label",{key:l.value,class:"wm-form__multiItem"},[u("input",{type:"checkbox",value:l.value,checked:Array.isArray(r.values[a.key])&&r.values[a.key].includes(l.value),disabled:n.readOnly||r.busy,onChange:f=>i.toggleMulti(a.key,l.value,f.target.checked)},null,40,Lh),u("span",null,D(l.label),1)]))),128))])):P("",!0)]))),128)),r.error?(m(),y("div",Bh,D(r.error),1)):P("",!0),n.readOnly?(m(),y("div",Nh,"Réponse envoyée")):(m(),y("button",{key:1,type:"submit",class:"wm-form__submit",disabled:r.busy},[r.busy?(m(),y("span",Ph)):P("",!0),u("span",null,D(r.busy?"Envoi…":n.form.submit_label||"Envoyer"),1)],8,$h))],32)])}const Dh=ve(mh,[["render",Fh],["__scopeId","data-v-64b40f76"]]),jh={name:"WmFeedback",props:{busy:{type:Boolean,default:!1},done:{type:Boolean,default:!1}},emits:["submit"],data(){return{sel:null,options:[{v:1,e:"😞",l:"Pas bien"},{v:2,e:"😐",l:"Moyen"},{v:3,e:"🙂",l:"Bien"},{v:4,e:"😄",l:"Super"},{v:5,e:"🤩",l:"Excellent"}]}},methods:{onSend(){!this.sel||this.busy||this.$emit("submit",{rating:this.sel})}}},Uh={class:"wm-fb"},Hh={class:"wm-fb__row"},Vh=["onClick"],Kh={class:"wm-fb__emoji"},Wh={class:"wm-fb__label"},qh=["disabled"],zh={key:1,class:"wm-fb__done"};function Gh(e,t,n,s,r,i){return m(),y("div",Uh,[n.done?(m(),y("div",zh,[...t[3]||(t[3]=[Yn('<div class="wm-fb__check" data-v-6f45ff3b><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-6f45ff3b><path d="M20 6L9 17l-5-5" data-v-6f45ff3b></path></svg></div><div class="wm-fb__doneTitle" data-v-6f45ff3b>Merci pour votre retour !</div><div class="wm-fb__doneSub" data-v-6f45ff3b>Votre avis a bien été pris en compte.</div>',3)])])):(m(),y(Q,{key:0},[t[1]||(t[1]=u("div",{class:"wm-fb__title"},"Comment s'est passée cette conversation ?",-1)),t[2]||(t[2]=u("div",{class:"wm-fb__sub"},"Votre avis nous aide à améliorer l'assistant.",-1)),u("div",Hh,[(m(!0),y(Q,null,xe(r.options,o=>(m(),y("button",{key:o.v,type:"button",class:se(["wm-fb__opt",{"is-selected":r.sel===o.v}]),onClick:a=>r.sel=o.v},[u("span",Kh,D(o.e),1),u("span",Wh,D(o.l),1)],10,Vh))),128))]),u("button",{type:"button",class:"wm-fb__send",disabled:!r.sel||n.busy,onClick:t[0]||(t[0]=(...o)=>i.onSend&&i.onSend(...o))},D(n.busy?"Envoi…":"Envoyer mon avis"),9,qh)],64))])}const Yh=ve(jh,[["render",Gh],["__scopeId","data-v-6f45ff3b"]]),Jh={name:"WmMoreMenu",props:{canRename:{type:Boolean,default:!0},canExport:{type:Boolean,default:!0},soundEnabled:{type:Boolean,default:!0},browserNotifEnabled:{type:Boolean,default:!1},statusUrl:{type:String,default:""},helpUrl:{type:String,default:""}},emits:["close","action","sound-toggle","browser-notif-toggle"],data(){return{soundOn:this.soundEnabled,browserNotifOn:this.browserNotifEnabled}},watch:{soundEnabled(e){this.soundOn=!!e},browserNotifEnabled(e){this.browserNotifOn=!!e}},methods:{emit(e){this.$emit("action",e)},toggleSound(){this.soundOn=!this.soundOn,this.$emit("sound-toggle",this.soundOn)},toggleBrowserNotif(){this.browserNotifOn=!this.browserNotifOn,this.$emit("browser-notif-toggle",this.browserNotifOn)}}},Xh={class:"wm-mm"},Qh={class:"wm-mm__pop",role:"menu"},Zh={key:0,class:"wm-mm__section"},em={key:1,class:"wm-mm__sep"},tm={class:"wm-mm__section"},nm={class:"wm-mm__section"};function sm(e,t,n,s,r,i){return m(),y("div",Xh,[u("div",{class:"wm-mm__scrim",onClick:t[0]||(t[0]=o=>e.$emit("close"))}),u("div",Qh,[n.canRename||n.canExport?(m(),y("div",Zh,[n.canRename?(m(),y("button",{key:0,type:"button",class:"wm-mm__item",onClick:t[1]||(t[1]=o=>i.emit("rename"))},[...t[7]||(t[7]=[Yn('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M12 20h9" data-v-3a73911b></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Modifier le titre</span>',2)])])):P("",!0),n.canExport?(m(),y("button",{key:1,type:"button",class:"wm-mm__item",onClick:t[2]||(t[2]=o=>i.emit("export"))},[...t[8]||(t[8]=[Yn('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Exporter la transcription</span><span class="wm-mm__hint" data-v-3a73911b>.txt</span>',3)])])):P("",!0)])):P("",!0),n.canRename||n.canExport?(m(),y("div",em)):P("",!0),u("div",tm,[u("button",{type:"button",class:"wm-mm__item",onClick:t[3]||(t[3]=(...o)=>i.toggleSound&&i.toggleSound(...o))},[t[10]||(t[10]=Yn('<span class="wm-mm__icon" data-v-3a73911b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3a73911b><path d="M11 5L6 9H2v6h4l5 4V5z" data-v-3a73911b></path><path d="M15.54 8.46a5 5 0 010 7.07M19.07 4.93a10 10 0 010 14.14" data-v-3a73911b></path></svg></span><span class="wm-mm__label" data-v-3a73911b>Son</span>',2)),u("span",{class:se(["wm-mm__toggle",{"wm-mm__toggle--on":r.soundOn}])},[...t[9]||(t[9]=[u("span",{class:"wm-mm__knob"},null,-1)])],2)]),u("button",{type:"button",class:"wm-mm__item",onClick:t[4]||(t[4]=(...o)=>i.toggleBrowserNotif&&i.toggleBrowserNotif(...o))},[t[12]||(t[12]=u("span",{class:"wm-mm__icon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 10-12 0v3.2c0 .5-.2 1-.6 1.4L4 17h5m6 0a3 3 0 11-6 0"})])],-1)),t[13]||(t[13]=u("span",{class:"wm-mm__label"},"Notifications navigateur",-1)),u("span",{class:se(["wm-mm__toggle",{"wm-mm__toggle--on":r.browserNotifOn}])},[...t[11]||(t[11]=[u("span",{class:"wm-mm__knob"},null,-1)])],2)])]),t[16]||(t[16]=u("div",{class:"wm-mm__sep"},null,-1)),u("div",nm,[n.statusUrl?(m(),y("button",{key:0,type:"button",class:"wm-mm__item",onClick:t[5]||(t[5]=o=>i.emit("status"))},[...t[14]||(t[14]=[u("span",{class:"wm-mm__icon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM10 6v4l3 2"})])],-1),u("span",{class:"wm-mm__label"},"Statut des services",-1)])])):P("",!0),n.helpUrl?(m(),y("button",{key:1,type:"button",class:"wm-mm__item",onClick:t[6]||(t[6]=o=>i.emit("help"))},[...t[15]||(t[15]=[u("span",{class:"wm-mm__icon"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M9 11a3 3 0 116 0c0 2-3 2-3 5M12 19h.01M12 22a10 10 0 110-20 10 10 0 010 20z"})])],-1),u("span",{class:"wm-mm__label"},"Centre d'aide",-1)])])):P("",!0)])])])}const rm=ve(Jh,[["render",sm],["__scopeId","data-v-3a73911b"]]),im={name:"WmRenameDialog",props:{title:{type:String,default:"Modifier le titre"},initialValue:{type:String,default:""},placeholder:{type:String,default:"Titre de la conversation"}},emits:["close","submit"],data(){return{value:this.initialValue||""}},computed:{canSubmit(){const e=(this.value||"").trim();return!!e&&e!==(this.initialValue||"").trim()}},mounted(){this.$nextTick(()=>{const e=this.$refs.input;if(e){e.focus();try{e.select()}catch{}}})},methods:{onSubmit(){this.canSubmit&&this.$emit("submit",this.value.trim())}}},om={class:"wm-dialog"},am={class:"wm-dialog__card",role:"dialog","aria-modal":"true"},lm={class:"wm-dialog__head"},cm={class:"wm-dialog__title"},um={class:"wm-dialog__body"},dm=["placeholder"],fm={class:"wm-dialog__actions"},hm=["disabled"];function mm(e,t,n,s,r,i){return m(),y("div",om,[u("div",{class:"wm-dialog__scrim",onClick:t[0]||(t[0]=o=>e.$emit("close"))}),u("div",am,[u("div",lm,[u("div",cm,D(n.title),1),u("button",{type:"button",class:"wm-dialog__close","aria-label":"Fermer",onClick:t[1]||(t[1]=o=>e.$emit("close"))},[...t[7]||(t[7]=[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),u("div",um,[at(u("input",{ref:"input","onUpdate:modelValue":t[2]||(t[2]=o=>r.value=o),type:"text",class:"wm-dialog__input",placeholder:n.placeholder,maxlength:120,onKeydown:[t[3]||(t[3]=Qn(vt((...o)=>i.onSubmit&&i.onSubmit(...o),["prevent"]),["enter"])),t[4]||(t[4]=Qn(vt(o=>e.$emit("close"),["prevent"]),["esc"]))]},null,40,dm),[[Ot,r.value]])]),u("div",fm,[u("button",{type:"button",class:"wm-dialog__btn",onClick:t[5]||(t[5]=o=>e.$emit("close"))},"Annuler"),u("button",{type:"button",class:"wm-dialog__btn wm-dialog__btn--primary",disabled:!i.canSubmit,onClick:t[6]||(t[6]=(...o)=>i.onSubmit&&i.onSubmit(...o))},"Enregistrer",8,hm)])])])}const pm=ve(im,[["render",mm],["__scopeId","data-v-4f4b37c9"]]),yo="ww-messenger-tokens",gm={name:"Messenger",components:{Launcher:Jc,Header:gu,Onboarding:Ku,MessageList:Rf,Composer:Qf,SuggestionChips:nh,ApprovalCard:fh,FormCard:Dh,Feedback:Yh,MoreMenu:rm,RenameDialog:pm},mixins:[kc,Mc,Ec,Ic],provide(){return{signAttachmentFn:e=>{var t,n;return((n=(t=this.store)==null?void 0:t.signAttachment)==null?void 0:n.call(t,e))||null}}},props:{baseUrl:{type:String,default:lo},widgetId:{type:String,default:""},userId:{type:String,default:""},userHash:{type:String,default:""},customer:{type:Object,default:null},displayMode:{type:String,default:"floating"},devtools:{type:Boolean,default:!1}},data(){return{transport:null,store:null,isOpen:!1,draft:"",busy:!1,bootError:null,pendingAttachments:[],feedbackBusy:!1,feedbackDone:!1,convOpenedAt:0,moreOpen:!1,renameDialogOpen:!1,draftConv:null,activeConvId:null,showOnboarding:!1,dismissedPeeks:{},floatHeight:0,floatRO:null}},computed:{isEditor(){return!!this.devtools},isEmbedded(){return this.displayMode==="embedded"},error(){var e;return this.bootError||((e=this.s)==null?void 0:e.error)||null},canBoot(){return!!(this.baseUrl&&this.widgetId&&this.userId&&this.userHash)},s(){var e;return((e=this.store)==null?void 0:e.state)||null},ready(){var e;return!!((e=this.s)!=null&&e.ready)},allConversations(){var t;const e=(t=this.s)==null?void 0:t.conversations;return Array.isArray(e)?e:[]},drawerConversations(){var t;const e=((t=this.s)==null?void 0:t.messagesByConv)||{};return this.allConversations.map(n=>{var a;const s=e[n.id]||[],r=bt(n.last_read_message_id);let i=0,o=null;for(let l=s.length-1;l>=0;l--){const f=s[l];if(!f)continue;if(((a=f.author)==null?void 0:a.type)==="user")break;const c=bt(f.id);if(c!=null){if(r!=null&&c<=r)break;!o&&f.author&&(o=f.author),i++}}return{...n,_preview:yc(n,s),_unread:i>0,_unreadCount:i,_lastAuthor:o}})},unreadCount(){return this.drawerConversations.filter(e=>e._unread).length},openThreads(){var t;const e=((t=this.s)==null?void 0:t.messagesByConv)||{};return this.drawerConversations.filter(n=>n.status!=="resolved").map(n=>({id:n.id,title:n.name||"Nouvelle conversation",preview:n._preview||"Nouveau message",unread:!!n._unread,_ts:fo(n,e[n.id]||[])})).sort((n,s)=>n._ts<s._ts?1:n._ts>s._ts?-1:0)},latestUnreads(){var n;const e=((n=this.s)==null?void 0:n.messagesByConv)||{},t=[];for(const s of this.drawerConversations){if(!s._unread)continue;const r=fo(s,e[s.id]||[]),i=s._lastAuthor,o=!i||i.type==="agent_ia",a=(i==null?void 0:i.name)||(o?this.agentName:"")||"",l=(i==null?void 0:i.avatar_url)||(o?this.agentAvatarUrl:null);t.push({convId:s.id,preview:s._preview||"Vous avez un nouveau message",ts:r,count:s._unreadCount||1,senderName:a,senderAvatarUrl:l})}return t.sort((s,r)=>s.ts<r.ts?1:s.ts>r.ts?-1:0),t},launcherPeeks(){if(this.isOpen||this.isEmbedded)return[];const e=this.dismissedPeeks||{};return this.latestUnreads.filter(t=>e[t.convId]!==t.ts)},isViewingThread(){return(this.isOpen||this.isEmbedded)&&!!this.currentConv},currentConv(){if(this.draftConv)return this.draftConv;if(this.showOnboarding)return null;const e=this.allConversations;if(!e.length)return null;if(this.activeConvId!=null){const t=e.find(n=>n.id===this.activeConvId);if(t)return t}return e[0]||null},canBack(){return!!this.currentConv},statusUrl(){var n;const e=(n=this.widget)==null?void 0:n.quick_links;if(!Array.isArray(e))return"";const t=e.find(s=>s.icon==="status"&&s.url);return(t==null?void 0:t.url)||""},helpUrl(){var n;const e=(n=this.widget)==null?void 0:n.quick_links;if(!Array.isArray(e))return"";const t=e.find(s=>(s.icon==="chat"||s.icon==="help")&&s.url);return(t==null?void 0:t.url)||""},widget(){var e,t;return((t=(e=this.s)==null?void 0:e.config)==null?void 0:t.widget)||null},widgetWelcomeMessage(){var e;return((e=this.widget)==null?void 0:e.welcome_message)||""},agentName(){var e,t,n;return((n=(t=(e=this.s)==null?void 0:e.config)==null?void 0:t.agent)==null?void 0:n.name)||""},agentAvatarUrl(){var e,t,n;return((n=(t=(e=this.s)==null?void 0:e.config)==null?void 0:t.agent)==null?void 0:n.avatar_url)||null},quickLinks(){var t;const e=(t=this.widget)==null?void 0:t.quick_links;return Array.isArray(e)?e:[]},teamMembers(){var t;const e=(t=this.widget)==null?void 0:t.team_members;return Array.isArray(e)?e:[]},responseLabel(){var e;return((e=this.widget)==null?void 0:e.response_time_label)||""},humanMessageAuthor(){var t,n,s;if(!this.currentConv)return null;const e=((t=this.s.messagesByConv)==null?void 0:t[this.currentConv.id])||[];for(let r=e.length-1;r>=0;r--)if(((s=(n=e[r])==null?void 0:n.author)==null?void 0:s.type)==="agent_human")return e[r].author;return null},humanAgentName(){var e;return((e=this.humanMessageAuthor)==null?void 0:e.name)||""},humanAgentAvatarUrl(){var e;return((e=this.humanMessageAuthor)==null?void 0:e.avatar_url)||null},isEscalated(){return!!this.humanMessageAuthor},isWaitingHuman(){var t;const e=(t=this.currentConv)==null?void 0:t.status;return e==="waiting"||e==="handled"},headerTitle(){var e,t;return((e=this.currentConv)==null?void 0:e.name)||((t=this.widget)==null?void 0:t.name)||"Nouvelle conversation"},composerPlaceholder(){return this.isEscalated&&this.humanAgentName?`Répondre à ${this.humanAgentName.split(" ")[0]}…`:this.isWaitingHuman?"Un agent prend le relais…":"Écrivez votre message…"},displayedMessages(){const e=this.currentConv;if(!e)return[];const t=this.revealedAt;return(this.s.messagesByConv[e.id]||[]).filter(n=>{var s,r,i,o,a;return(n==null?void 0:n.type)==="action"&&((s=n==null?void 0:n.payload)==null?void 0:s.state)==="pending"||Zn(n)&&!(t[n.id]>0)?!1:(n==null?void 0:n.type)==="action"||(n==null?void 0:n.type)==="system"||((r=n==null?void 0:n.payload)==null?void 0:r.type)==="system"||Array.isArray((i=n==null?void 0:n.payload)==null?void 0:i.attachments)&&n.payload.attachments.length||(o=n==null?void 0:n.metadata)!=null&&o.artifact||(a=n==null?void 0:n.metadata)!=null&&a.form?!0:typeof(n==null?void 0:n.text_md)=="string"&&n.text_md.trim().length>0})},streamingActive(){var n,s,r;const e=this.currentConv;return e?Object.keys(((n=this.s)==null?void 0:n.streamingByMsgId)||{}).length>0?!0:this.actionInFlight?!1:(((r=(s=this.s)==null?void 0:s.messagesByConv)==null?void 0:r[e.id])||[]).some(i=>Zn(i)&&!(this.revealedAt[i.id]>0)):!1},currentConvMessages(){var t,n,s;const e=(t=this.currentConv)==null?void 0:t.id;return e?((s=(n=this.s)==null?void 0:n.messagesByConv)==null?void 0:s[e])||[]:[]},pendingApproval(){return!this.currentConv||!this.store||this.actionInFlight?null:this.store.getPendingApproval(this.currentConv.id)},approvalReady(){return this.pendingApproval?this.pendingApproval.id===this.approvalLatchId?!0:!(this.streamingActive||!this.approvalSettled):!1},approvalTitle(){var e,t,n;return((t=(e=this.pendingApproval)==null?void 0:e.payload)==null?void 0:t.name)||((n=this.pendingApproval)==null?void 0:n.text_md)||"Confirmer l'action"},approvalDetail(){var s,r,i,o,a,l;const e=(i=(r=(s=this.pendingApproval)==null?void 0:s.payload)==null?void 0:r.pending)==null?void 0:i.user_explanation;if(typeof e=="string"&&e.trim())return e.trim();const t=(l=(a=(o=this.pendingApproval)==null?void 0:o.payload)==null?void 0:a.pending)==null?void 0:l.prepared_params;if(!t||typeof t!="object")return"";const n=Object.entries(t);return n.length?n.slice(0,2).map(([f,c])=>`${f}: ${c}`).join(" · "):""},actionInFlight(){var e,t;return!this.currentConv||!this.store?null:((t=(e=this.store).getActionInFlight)==null?void 0:t.call(e,this.currentConv.id))||null},actionInFlightName(){var t;const e=this.actionInFlight;return e?((t=e.payload)==null?void 0:t.name)||e.text_md||"Action":""},suggestions(){return!this.currentConv||!this.store?[]:this.streamingActive?[]:this.pendingForm?[]:this.store.getLatestSuggestions(this.currentConv.id)},pendingForm(){var e,t;return!this.currentConv||!this.store||this.pendingApproval||this.actionInFlight||this.streamingActive||!this.approvalSettled?null:((t=(e=this.store).getLatestForm)==null?void 0:t.call(e,this.currentConv.id))||null},showFeedback(){var t;const e=this.currentConv;return e?this.feedbackDone?!0:e.status!=="resolved"?!1:!((t=e.metadata)!=null&&t.feedback):!1},floatVisible(){return this.approvalReady||!!this.pendingForm||this.showFeedback||this.suggestions.length>0},dateLabel(){var n,s,r;const e=this.currentConv;let t=new Date;if(e){const o=((r=(((s=(n=this.s)==null?void 0:n.messagesByConv)==null?void 0:s[e.id])||[]).find(a=>a==null?void 0:a.created_at))==null?void 0:r.created_at)||e.created_at;if(o){const a=new Date(o);Number.isNaN(a.getTime())||(t=a)}}return`Aujourd'hui · ${ao(t)}`},paginationState(){var n,s,r;const e=(n=this.currentConv)==null?void 0:n.id,t=e?(r=(s=this.s)==null?void 0:s.paginationByConv)==null?void 0:r[e]:null;return{loading:!!(t!=null&&t.loading),hasMore:!!(t!=null&&t.nextCursor)}}},watch:{latestUnreads:{handler(e){const t=new Set(e.map(o=>o.convId)),n=this.dismissedPeeks||{},s=Object.keys(n);if(!s.length)return;const r={};let i=!1;for(const o of s)t.has(o)?r[o]=n[o]:i=!0;i&&(this.dismissedPeeks=r)},deep:!0},"currentConv.id":{handler(e){var t;this.resetRevealQueue(),this.convOpenedAt=Date.now(),this.moreOpen=!1,this.renameDialogOpen=!1,this.resetApprovalPacing(),this.isViewingThread&&(this.unreadAnchorId=bt((t=this.currentConv)==null?void 0:t.last_read_message_id),this.unreadBoundaryTs=e?new Date().toISOString():"")},immediate:!0},isViewingThread(e,t){var n;e&&!t?(this.unreadAnchorId=bt((n=this.currentConv)==null?void 0:n.last_read_message_id),this.unreadBoundaryTs=new Date().toISOString()):e||(this.unreadAnchorId=null,this.unreadBoundaryTs="")},pendingApproval:{handler(e,t){if(e&&!t){const n=e!=null&&e.created_at?Date.parse(e.created_at):NaN;if(!(Number.isFinite(n)&&n>=this.convOpenedAt)){this.resetApprovalPacing();return}this.bumpApprovalSettle(2600)}else!e&&t&&this.resetApprovalPacing()},immediate:!1},streamingActive(e,t){e!==t&&this.pendingApproval&&this.pendingApproval.id!==this.approvalLatchId&&this.bumpApprovalSettle()},approvalReady(e){e&&this.pendingApproval&&(this.approvalLatchId=this.pendingApproval.id)},floatVisible:{handler(e){this.$nextTick(()=>this.syncFloatObserver(e))},immediate:!0},currentConvMessages(e){this.paceMessages(e),(this.isOpen||this.isEmbedded)&&this.currentConv&&this.markConvRead(this.currentConv)}},async mounted(){if(typeof document<"u"&&!document.getElementById(yo)){const e=document.createElement("style");e.id=yo,e.textContent=pc,document.head.appendChild(e)}await this.boot(),this.isEmbedded&&this.store&&await this.open()},beforeUnmount(){this.cancelReveals(),this.disconnectFloatRO(),this.resetApprovalPacing(),this.teardownNotifications(),this.store&&this.store.destroy()},methods:{async boot(){if(!this.canBoot){console.warn("[messenger] boot skipped — missing creds");return}try{this.transport=ws(uc({baseUrl:this.baseUrl,widgetId:this.widgetId,userId:this.userId,userHash:this.userHash})),this.store=ws(mc(this.transport)),this.hydrateNotifPref(),this.setupNotifications(),await this.store.start(),this.customer&&typeof this.customer=="object"&&await this.store.applyCustomer(this.customer)}catch(e){console.error("[ww-messenger] bootstrap failed",e),this.bootError=(e==null?void 0:e.message)||String(e)}},async refresh(){this.store&&this.store.destroy(),this.cancelReveals(),this.teardownNotifications(),this.convOpenedAt=0,this.transport=null,this.store=null,this.isOpen=!1,this.draft="",this.busy=!1,this.bootError=null,this.pendingAttachments=[],this.feedbackBusy=!1,this.feedbackDone=!1,this.moreOpen=!1,this.renameDialogOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!1,await this.boot(),this.isEmbedded&&this.store&&await this.open()},syncFloatObserver(e){if(this.disconnectFloatRO(),!e){this.floatHeight=0;return}const t=this.$refs.floatEl;if(t){if(typeof ResizeObserver>"u"){this.floatHeight=Math.ceil(t.getBoundingClientRect().height+8);return}this.floatRO=new ResizeObserver(n=>{const s=n[0];if(!s)return;const r=Math.ceil(s.contentRect.height+8);r!==this.floatHeight&&(this.floatHeight=r,this.$nextTick(()=>{var i,o;(o=(i=this.$refs.messageList)==null?void 0:i.scrollToBottom)==null||o.call(i)}))}),this.floatRO.observe(t)}},disconnectFloatRO(){if(this.floatRO){try{this.floatRO.disconnect()}catch{}this.floatRO=null}},async open(){this.isOpen=!0,this.store&&this.store.setPanelOpen(!0);const e=this.currentConv;if(e&&!e._draft){this.activeConvId==null&&(this.activeConvId=e.id);try{await this.store.openConversation(e.id)}catch(t){console.error("[ww-messenger] load messages failed",t)}this.markConvRead(e)}},close(){this.isOpen=!1,this.store&&this.store.setPanelOpen(!1)},async openFromPeek(e){var n,s;const t=e||((n=this.latestUnreads[0])==null?void 0:n.convId);t&&t!==((s=this.currentConv)==null?void 0:s.id)&&(this.draftConv=null,this.activeConvId=t,this.showOnboarding=!1),await this.open()},dismissPeek(e){const t=this.latestUnreads.find(n=>n.convId===e);t&&(this.dismissedPeeks={...this.dismissedPeeks,[e]:t.ts})},startConv(){this.draftConv={id:"__draft__",_draft:!0,name:"",created_at:new Date().toISOString()},this.activeConvId=null,this.showOnboarding=!1,this.focusComposer()},async ensureRealConv(){const e=this.currentConv;if(!e)return null;if(!e._draft)return e;if(this.busy)return null;this.busy=!0;try{const t=await this.store.createConversation({});return this.draftConv=null,this.activeConvId=t.id,await this.store.openConversation(t.id),this.markConvRead(t),t}catch(t){return console.error("[ww-messenger] create conv failed",t),this.bootError=(t==null?void 0:t.message)||String(t),null}finally{this.busy=!1}},focusComposer(){this.$nextTick(()=>{var e;return(e=this.$refs.composer)==null?void 0:e.focus()})},toggleMore(){this.moreOpen=!this.moreOpen},goHome(){this.moreOpen=!1,this.draftConv=null,this.activeConvId=null,this.showOnboarding=!0},async onDrawerPick(e){if(!(e!=null&&e.id)||!this.store)return;this.draftConv=null,this.activeConvId=e.id,this.showOnboarding=!1;try{await this.store.openConversation(e.id)}catch(n){console.error("[ww-messenger] open conv failed",n)}const t=this.allConversations.find(n=>n.id===e.id);t&&this.markConvRead(t)},async onMoreAction(e){var t,n;switch(this.moreOpen=!1,e){case"rename":this.openRenameDialog();break;case"export":wc(this.currentConv,this.currentConv?(n=(t=this.s)==null?void 0:t.messagesByConv)==null?void 0:n[this.currentConv.id]:[]);break;case"status":if(this.statusUrl)try{window.open(this.statusUrl,"_blank","noopener")}catch{}break;case"help":if(this.helpUrl)try{window.open(this.helpUrl,"_blank","noopener")}catch{}break}},openRenameDialog(){const e=this.currentConv;!e||e._draft||(this.renameDialogOpen=!0)},async onRenameSubmit(e){const t=this.currentConv;if(this.renameDialogOpen=!1,!t||t._draft||!this.store)return;const n=(e||"").trim();if(!(!n||n===t.name))try{await this.store.patchConversation(t.id,{name:n})}catch(s){console.error("[ww-messenger] rename failed",s)}},async onSend(e){let t=this.currentConv;if(!t&&(this.startConv(),t=this.currentConv,!t)||t._draft&&(t=await this.ensureRealConv(),!t))return;const n=t.id,s=this.pendingAttachments.slice();this.pendingAttachments=[],this.unreadAnchorId=null,this.unreadBoundaryTs="",await this.store.send(n,e,{attachments:s.length?s:void 0})},async onSuggestion(e){const t=e==null?void 0:e.label;t&&await this.onSend(t)},async onLoadMore(){var t;const e=(t=this.currentConv)==null?void 0:t.id;!e||!this.store||await this.store.loadMore(e)},async onApprovalCallback(e){const t=this.pendingApproval;t&&await this.store.clickCallback(t.id,e)},async onFormSubmit({values:e}){const t=this.pendingForm;if(!(t!=null&&t.form))return;const n=gc(t.form,e);if(!n)return;let s=this.currentConv;s&&(s._draft&&(s=await this.ensureRealConv(),!s)||await this.store.send(s.id,n,{metadata:{artifact:_c(t.form,e)}}))},async onAttach(e){if(!(!e||!this.transport))try{const t=await this.transport.uploadAttachment(e);this.pendingAttachments.push({type:t.type||"file",path:t.path,name:e.name||"fichier",mime_type:e.type,size_bytes:e.size})}catch(t){console.error("[ww-messenger] attachment upload failed",t)}},async onQuickLink(e){if(e){if(e.url){try{window.open(e.url,"_blank","noopener")}catch{}return}this.currentConv||this.startConv(),await this.onSend(e.label)}},async onFeedback({rating:e,comment:t}){if(this.currentConv){this.feedbackBusy=!0;try{await this.store.submitFeedback(this.currentConv.id,{rating:e,comment:t}),this.feedbackDone=!0}catch(n){console.error("[ww-messenger] feedback failed",n)}finally{this.feedbackBusy=!1}}}}},_m={key:0,class:"wm-loading","aria-busy":"true","aria-live":"polite"},ym={key:0,class:"wm-state"},vm={class:"wm-state__err"},bm={class:"wm-state__errSub"},wm={class:"wm-bottom"},km={key:0,ref:"floatEl",class:"wm-float"},Cm={key:1,class:"wm-actionWait",role:"status","aria-live":"polite"},Am={class:"wm-actionWait__lbl"},Sm={key:2,class:"wm-attached"},xm=["onClick"];function Tm(e,t,n,s,r,i){const o=_e("Launcher"),a=_e("Header"),l=_e("Onboarding"),f=_e("MessageList"),c=_e("ApprovalCard"),g=_e("FormCard"),S=_e("Feedback"),C=_e("SuggestionChips"),V=_e("Composer"),I=_e("MoreMenu"),J=_e("RenameDialog");return m(),y("div",{class:se(["wm-root",`wm-root--${n.displayMode}`])},[!r.isOpen&&!i.isEmbedded?(m(),ye(o,{key:0,"unread-count":i.unreadCount,peeks:i.launcherPeeks,onOpen:i.openFromPeek,onDismiss:i.dismissPeek},null,8,["unread-count","peeks","onOpen","onDismiss"])):P("",!0),r.isOpen||i.isEmbedded?(m(),y("section",{key:1,class:se(["wm-panel",`wm-panel--${n.displayMode}`]),style:De(r.floatHeight?{"--wm-float-h":r.floatHeight+"px"}:null),role:"dialog","aria-label":"Messenger"},[!i.ready&&!i.error?(m(),y("div",_m,[i.isEmbedded?P("",!0):(m(),y("button",{key:0,type:"button",class:"wm-loading__close","aria-label":"Réduire",onClick:t[0]||(t[0]=(...z)=>i.close&&i.close(...z))},[...t[5]||(t[5]=[u("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])),t[6]||(t[6]=u("div",{class:"wm-loading__spinner","aria-hidden":"true"},null,-1))])):(m(),y(Q,{key:1},[ge(a,{title:i.headerTitle,"team-members":i.teamMembers,"response-label":i.responseLabel,"show-identity":!!i.currentConv,"show-back":i.canBack,"show-close":!i.isEmbedded,"more-active":r.moreOpen,onBack:i.goHome,onMore:i.toggleMore,onClose:i.close},null,8,["title","team-members","response-label","show-identity","show-back","show-close","more-active","onBack","onMore","onClose"]),i.error?(m(),y("div",ym,[u("div",vm,[t[8]||(t[8]=u("div",{class:"wm-state__errIcon"},[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})])],-1)),u("div",null,[t[7]||(t[7]=u("div",{class:"wm-state__errTitle"},"Connexion impossible",-1)),u("div",bm,D(i.error),1)])])])):i.currentConv?(m(),y(Q,{key:2},[ge(f,{ref:"messageList",messages:i.displayedMessages,"streaming-active":i.streamingActive,"date-label":i.dateLabel,"conversation-id":i.currentConv?i.currentConv.id:null,"loading-more":i.paginationState.loading,"has-more":i.paginationState.hasMore,"unread-anchor-id":e.unreadAnchorId,"unread-boundary-ts":e.unreadBoundaryTs,onLoadMore:i.onLoadMore},null,8,["messages","streaming-active","date-label","conversation-id","loading-more","has-more","unread-anchor-id","unread-boundary-ts","onLoadMore"]),u("div",wm,[i.floatVisible?(m(),y("div",km,[i.approvalReady?(m(),ye(c,{key:0,action:i.approvalTitle,detail:i.approvalDetail,callbacks:i.pendingApproval.callbacks,onCallback:i.onApprovalCallback},null,8,["action","detail","callbacks","onCallback"])):i.pendingForm?(m(),ye(g,{key:i.pendingForm.message&&i.pendingForm.message.id,form:i.pendingForm.form,onSubmit:i.onFormSubmit},null,8,["form","onSubmit"])):i.showFeedback?(m(),ye(S,{key:2,busy:r.feedbackBusy,done:r.feedbackDone,onSubmit:i.onFeedback},null,8,["busy","done","onSubmit"])):(m(),ye(C,{key:3,items:i.suggestions,onSelect:i.onSuggestion},null,8,["items","onSelect"]))],512)):P("",!0),i.actionInFlight?(m(),y("div",Cm,[t[9]||(t[9]=u("span",{class:"wm-actionWait__spinner","aria-hidden":"true"},null,-1)),u("span",Am,D(i.actionInFlightName)+" en cours, veuillez patienter…",1)])):(m(),ye(V,{key:2,ref:"composer",modelValue:r.draft,"onUpdate:modelValue":t[1]||(t[1]=z=>r.draft=z),placeholder:i.composerPlaceholder,disabled:!!i.pendingApproval,"attach-label":"Joindre un fichier",onSend:i.onSend,onAttach:i.onAttach},null,8,["modelValue","placeholder","disabled","onSend","onAttach"]))]),r.moreOpen?(m(),ye(I,{key:0,"can-rename":!!i.currentConv&&!i.currentConv._draft,"can-export":!!i.currentConv&&!i.currentConv._draft,"sound-enabled":e.soundEnabled,"browser-notif-enabled":e.browserNotifEnabled,"status-url":i.statusUrl,"help-url":i.helpUrl,onClose:t[2]||(t[2]=z=>r.moreOpen=!1),onSoundToggle:e.onSoundToggle,onBrowserNotifToggle:e.onBrowserNotifToggle,onAction:i.onMoreAction},null,8,["can-rename","can-export","sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):P("",!0),r.renameDialogOpen&&i.currentConv&&!i.currentConv._draft?(m(),ye(J,{key:1,"initial-value":i.currentConv.name||"",title:"Modifier le titre de la conversation",onClose:t[3]||(t[3]=z=>r.renameDialogOpen=!1),onSubmit:i.onRenameSubmit},null,8,["initial-value","onSubmit"])):P("",!0),r.pendingAttachments.length?(m(),y("div",Sm,[(m(!0),y(Q,null,xe(r.pendingAttachments,(z,K)=>(m(),y("div",{key:K,class:"wm-attached__chip"},[t[11]||(t[11]=u("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})],-1)),u("span",null,D(z.name),1),u("button",{type:"button","aria-label":"Retirer",onClick:X=>r.pendingAttachments.splice(K,1)},[...t[10]||(t[10]=[u("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[u("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])],8,xm)]))),128))])):P("",!0)],64)):(m(),ye(l,{key:1,"welcome-message":i.widgetWelcomeMessage,"agent-name":i.agentName,"quick-links":i.quickLinks,"open-threads":i.openThreads,busy:r.busy,onStart:i.startConv,onSelect:i.onQuickLink,onResume:i.onDrawerPick},null,8,["welcome-message","agent-name","quick-links","open-threads","busy","onStart","onSelect","onResume"])),r.moreOpen&&!i.currentConv?(m(),ye(I,{key:3,"can-rename":!1,"can-export":!1,"sound-enabled":e.soundEnabled,"browser-notif-enabled":e.browserNotifEnabled,"status-url":i.statusUrl,"help-url":i.helpUrl,onClose:t[4]||(t[4]=z=>r.moreOpen=!1),onSoundToggle:e.onSoundToggle,onBrowserNotifToggle:e.onBrowserNotifToggle,onAction:i.onMoreAction},null,8,["sound-enabled","browser-notif-enabled","status-url","help-url","onSoundToggle","onBrowserNotifToggle","onAction"])):P("",!0)],64))],6)):P("",!0)],2)}const Mm=ve(gm,[["render",Tm],["__scopeId","data-v-4500d0e5"]]),Em="0.3.12";let wt=null,It=null,Vs="";function Om(e){if(e instanceof Element)return e;if(typeof e=="string"){const n=document.querySelector(e);if(n)return n}const t=document.createElement("div");return t.setAttribute("data-messenger-root",""),document.body.appendChild(t),t}function Im(e){return{baseUrl:String(e.baseUrl||lo).trim(),widgetId:String(e.widgetId||"").trim(),userId:String(e.userId||"").trim(),userHash:String(e.userHash||"").trim(),displayMode:e.displayMode||"floating",devtools:!!e.devtools,target:e.target||null,customer:e.customer&&typeof e.customer=="object"?e.customer:null}}function Rm(e={}){const t=Im(e);if(!t.baseUrl||!t.widgetId||!t.userId||!t.userHash)return Ks(),null;const n=JSON.stringify({...t,target:typeof t.target=="string"?t.target:!!t.target});return wt&&n===Vs||(Ks(),It=Om(t.target),wt=sc(Mm,{baseUrl:t.baseUrl,widgetId:t.widgetId,userId:t.userId,userHash:t.userHash,displayMode:t.displayMode,devtools:t.devtools,customer:t.customer}),wt.mount(It),Vs=n),wt}function Ks(){if(wt){try{wt.unmount()}catch{}wt=null}It&&It.hasAttribute&&It.hasAttribute("data-messenger-root")&&It.remove(),It=null,Vs=""}return Kt.destroy=Ks,Kt.init=Rm,Kt.version=Em,Object.defineProperty(Kt,Symbol.toStringTag,{value:"Module"}),Kt}({});
package/dist/messenger.js CHANGED
@@ -5051,7 +5051,7 @@ function aa(e, t, n, i, r, s) {
5051
5051
  ], 6)) : w("", !0)
5052
5052
  ], 2);
5053
5053
  }
5054
- const da = /* @__PURE__ */ $(Yi, [["render", aa], ["__scopeId", "data-v-4500d0e5"]]), ca = "0.3.11";
5054
+ const da = /* @__PURE__ */ $(Yi, [["render", aa], ["__scopeId", "data-v-4500d0e5"]]), ca = "0.3.12";
5055
5055
  export {
5056
5056
  ne as AIAvatar,
5057
5057
  ue as AVATAR_COLORS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@_solaris/messenger-widget",
3
- "version": "0.3.11",
3
+ "version": "0.3.12",
4
4
  "description": "Embeddable chat messenger widget — Vue 3 library + standalone embed build. Wired to the messenger-server (HMAC + widgetId).",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",