1import{h as Se,u as De}from"./inertia-vendor-B1UleJax.js";import{u as R}from"./vue-i18n-D1druVO5.js";import{l as M,n as fe,I as Te,k as j,f as se,b as Z,p as le,T as de,m as X,u as Ue}from"./app-BfyP88rG.js";import{_ as Oe}from"./GlassPillTabs-BQT3AAQr.js";import{o as n,c as o,a as s,N as a,Q as m,V as w,W as D,M as C,b as S,a3 as N,O as Ae,m as W,L as pe,F as T,P as O,y as b,j as ne,J as L,ae as Q,r as A,an as ae,l as ue,f as Ve,h as ee}from"./vue-vendor-D0krlAb0.js";import{S as Y}from"./StatCard-dngY9Hh2.js";import{T as he}from"./Timeline-CqIXWoO_.js";import"./vendor-By_xewFp.js";import"./echo-vendor-BBfRIm2m.js";import"./axios-vendor-D8QQWGbA.js";import"./lodash-vendor-C9X7AA5U.js";import"./tel-input-vendor-Dsa4Ey81.js";import"./stripe-vendor-CPICCz1r.js";import"./pinia-vendor-BDcgz45G.js";/* empty css *//* empty css */const K="all",J={on_track:{label:"On track",color:"green"},attention:{label:"Attention",color:"orange"},in_clarification:{label:"In clarification",color:"yellow"},in_progress:{label:"In progress",color:"blue"},discovery:{label:"Discovery",color:"violet"},open:{label:"To do",color:"gray"},waiting_customer:{label:"Waiting for customer",color:"orange"},done:{label:"Done",color:"green"},review_required:{label:"Review required",color:"orange"},planned:{label:"Planned",color:"sky"},blocked:{label:"Blocked",color:"red"}},re={high:{label:"High",color:"red"},medium:{label:"Medium",color:"orange"},low:{label:"Low",color:"gray"}},ve={customer_brain:{label:"Customer Brain",color:"violet",icon:"sparkles"},human:{label:"Added by the team",color:"gray",icon:"user"},deal_room:{label:"Deal Room",color:"sky",icon:"dealroom-discovery"},google_calendar:{label:"Google Calendar",color:"blue",icon:"google-calendar-logo"},product_catalog:{label:"Product catalog",color:"indigo",icon:"order"}},G={meeting:{label:"Meeting",icon:"meeting-time",bubble:"bg-sky-500"},milestone:{label:"Milestone",icon:"flag",bubble:"bg-emerald-500"},decision:{label:"Decision",icon:"decision",bubble:"bg-violet-500"},risk:{label:"Risk",icon:"warning",bubble:"bg-orange-500"},blocker:{label:"Blocker",icon:"high-risk",bubble:"bg-red-500"},email:{label:"Email",icon:"email",bubble:"bg-slate-500"},feedback:{label:"Customer feedback",icon:"feedback",bubble:"bg-teal-500"},change:{label:"Change made",icon:"pencil-square",bubble:"bg-indigo-500"}},Ne=["use_new","keep_old","custom"],te="onboarding";function ge(e){return JSON.parse(JSON.stringify(e))}function je(e,i){return i===K?!0:Array.isArray(e==null?void 0:e.streamIds)&&e.streamIds.includes(i)}
1function P(e,i){return(e??[]).filter(t=>je(t,i))}function B(e,i){var t;return i?((t=(e??[]).find(l=>l.id===i))==null?void 0:t.name)??i:""}function q(e,i,t={day:"numeric",month:"short",year:"numeric"}){if(!e)return"";const l=new Date(e);return Number.isNaN(l.getTime())?"":new Intl.DateTimeFormat(i,t).format(l)}function ke(e){return(e??"").trim().split(/\s+/).filter(Boolean).slice(0,2).map(t=>t[0].toUpperCase()).join("")||"?"}function be(e,i=[]){return(e??[]).filter(t=>!i.includes(t.id))}function Ee(e,i,t=[]){const l=P(e.goals,i),c=l.length?Math.round(l.reduce((k,v)=>k+v.progress,0)/l.length):0,d=P(e.nextSteps,i).filter(k=>k.kind==="task"&&k.status!=="done").length,r=P(be(e.decisions,t),i),u=r.filter(k=>k.kind==="contradiction"||k.kind==="decision").length,x=r.filter(k=>k.kind==="blocker").length,p=r.filter(k=>k.kind==="contradiction").length;return{status:x>0||p>0?"attention":"on_track",goalProgress:c,openTasks:d,decisionsNeeded:u,activeBlockers:x}}function qe(e,i,t,l,c){if(!Ne.includes(i))throw new Error(`Unknown action "${i}"`);const d=(t??"").trim();if(i==="custom"&&d==="")throw new Error("Writing your own statement needs your wording");return{id:e.id,action:i,note:d,by:l,at:c}}function Re(e,{query:i="",type:t="all"}={}){const l=i.trim().toLowerCase();return(e??[]).filter(c=>t!=="all"&&c.type!==t?!1:l===""?!0:[c.title,c.description,c.outcome,c.sourceLabel].filter(Boolean).some(d=>d.toLowerCase().includes(l)))}const xe=e=>String(e).padStart(2,"0"),ye=e=>`${e.getUTCFullYear()}-${xe(e.getUTCMonth()+1)}-${xe(e.getUTCDate())}`;function Be(e,i){const t=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));if(i==="week"){const l=(t.getUTCDay()+6)%7;t.setUTCDate(t.getUTCDate()-l)}return i==="month"&&t.setUTCDate(1),t}function Me(e,i="day"){const t=[...e??[]].sort((c,d)=>new Date(d.date)-new Date(c.date)),l=new Map;for(const c of t){const d=Be(new Date(c.date),i),r=i==="month"?ye(d).slice(0,7):ye(d);l.has(r)||l.set(r,{key:r,start:d,entries:[]}),l.get(r).entries.push(c)}return[...l.values()]}const Le=e=>{const i=e==null?"":String(e);return/[",\n\r]/.test(i)?`"${i.replace(/"/g,'""')}"`:i};function ze(e){const i="date,type,title,description,outcome,origin,source",t=(e??[]).map(l=>[l.date,l.type,l.title,l.description,l.outcome,l.origin,l.sourceLabel].map(Le).join(","));return`${[i,...t].join(` 2`)} 3`}function Pe(e,i=new Date){return(e??[]).filter(t=>new Date(t.date)>=i).sort((t,l)=>new Date(t.date)-new Date(l.date))}function We(e,i,t,l){const c=Object.entries(i).filter(([d,r])=>(e[d]??null)!==(r??null)).map(([d,r])=>({at:l,by:t,field:d,from:e[d]??null,to:r??null}));return c.length?{...e,...i,origin:e.origin,overriddenBy:t,overriddenAt:l,versions:[...c,...e.versions??[]]}:{...e}}function Fe({type:e,date:i,title:t,description:l,streamId:c},d,r){return{id:`manual-${r}`,type:e,date:new Date(i).toISOString(),title:t,description:l??"",outcome:null,transcriptUrl:null,transcriptExcerpt:null,streamIds:[c],ownerId:null,status:"done",origin:"human",sourceLabel:`Added by ${d}`,confidence:null,versions:[]}}function He(e,i){var k;const{roles:t=[],csRoles:l=[],includeGoals:c,includeOpenItems:d,includeHistory:r}=i,u=e.handover??{},x=((k=l.find(v=>v.key==="project_lead"))==null?void 0:k.personId)??null,p=ge(e);if(p.people=p.people.map(v=>{const f=t.find(y=>y.personId===v.id);return f?{...v,role:f.projectRole}:v}),(d||r)&&!p.streams.some(v=>v.id===te)&&p.streams.push({id:te,name:"Onboarding & Ãbergabe",icon:"checklist",ownerId:x,status:"in_progress",progress:0}),c&&(u.goals??[]).forEach((v,f)=>{p.goals.some(y=>y.name===v.goal)||p.goals.push({id:`handover-goal-${f}`,streamIds:[],name:v.goal,progress:0,status:"planned",ownerId:x,nextMilestone:v.promise})}),d)for(const v of u.openItems??[]){const f=`handover-${v.id}`;p.nextSteps.some(y=>y.id===f)||p.nextSteps.push({id:f,kind:"task",title:v.title,date:new Date(v.dueDate).toISOString(),streamIds:[te],ownerId:x,participantIds:[],status:"open",priority:"medium",origin:"deal_room"})}if(r)for(const v of u.history??[]){const f=`handover-${v.id}`;p.timeline.some(y=>y.id===f)||p.timeline.push({id:f,type:"milestone",date:new Date(v.date).toISOString(),title:v.title,de
3scription:"",outcome:null,transcriptUrl:null,transcriptExcerpt:null,streamIds:[te],ownerId:x,status:"done",origin:"deal_room",sourceLabel:"Deal Room",confidence:null,versions:[]})}return p.handover={...p.handover,imported:!0,csRoles:l},p}const Ge={class:"space-y-4"},Ye={class:"flex flex-wrap items-end justify-between gap-3"},Ke={class:"min-w-0"},Je={class:"flex flex-wrap items-center gap-2"},Ze={class:"text-2xl font-semibold tracking-tight text-slate-900 dark:text-white"},Qe={class:"mt-1 text-sm text-slate-600 dark:text-slate-300"},Xe={class:"font-medium text-slate-900 dark:text-white"},et={key:0},tt={class:"overflow-x-auto pb-1"},st={__name:"CommandCenterHeader",props:{customer:{type:Object,required:!0},streams:{type:Array,required:!0},activeStream:{type:String,required:!0},activeView:{type:String,required:!0}},emits:["update:activeStream","update:activeView"],setup(e,{emit:i}){const t=e,l=i,{t:c}=R(),d=S(()=>[{value:K,label:"All streams",icon:"grid"},...t.streams.map(u=>({value:u.id,label:u.name,icon:u.icon}))]),r=S(()=>[{value:"overview",label:c("Overview")},{value:"timeline",label:c("Timeline")}]);return(u,x)=>(n(),o("div",Ge,[s("div",Ye,[s("div",Ke,[s("div",Je,[s("h1",Ze,a(u.$t("Customer Command Center")),1),m(M,{color:"yellow"},{default:w(()=>[D(a(u.$t("Demo data")),1)]),_:1}
3)]),s("p",Qe,[s("span",Xe,a(e.customer.name),1),e.customer.subtitle?(n(),o("span",et," · "+a(e.customer.subtitle),1)):C("",!0)])]),m(Oe,{"model-value":e.activeView,tabs:r.value,size:"sm","onUpdate:modelValue":x[0]||(x[0]=p=>l("update:activeView",p))},null,8,["model-value","tabs"])]),s("div",tt,[m(fe,{options:d.value,"model-value":e.activeStream,fit:"content",dense:"","onUpdate:modelValue":x[1]||(x[1]=p=>l("update:activeStream",p))},null,8,["options","model-value"])])]))}},at={class:"grid grid-cols-2 gap-4 md:grid-cols-3 xl:grid-cols-5"},lt={__name:"ManagementSummary",props:{summary:{type:Object,required:!0}},setup(e){const i=e,t=S(()=>{var l;return((l=J[i.summary.status])==null?void 0:l.label)??i.summary.status});return(l,c)=>(n(),o("div",at,[m(Y,{compact:"",icon:"summary","icon-background":e.summary.status==="on_track"?"green":"orange",title:l.$t("Overall status"),value:l.$t(t.value)},null,8,["icon-background","title","value"]),m(Y,{compact:"",icon:"target","icon-background":"blue",title:l.$t("Goal progress"),value:e.summary.goalProgress,"post-value":"%","secondary-text":l.$t("Based on confirmed milestones")},null,8,["title","value","secondary-text"]),m(Y,{compact:"",icon:"tasklist","icon-background":"purple",title:l.$t("Open tasks"),value:e.summary.openTasks},null,8,["title","value"]),m(Y,{compact:"",icon:"decision","icon-background":e.summary.decisionsNeeded?"orange":"green",title:l.$t("Decisions needed"),value:e.summary.decisionsNeeded},null,8,["icon-background","title","value"]),m(Y,{compact:"",icon:"high-risk","icon-background":e.summary.activeBlockers?"red":"green",title:l.$t("Active blockers"),value:e.summary.activeBlockers},null,8,["icon-background","title","value"])]))}},nt={key:0,class:"flex items-center justify-between gap-2 mb-1"},ot={key:0,class:"flex items-center gap-1 min-w-0"},it={key:0,class:"text-[11px] font-medium text-slate-500 dark:text-slate-400 truncate"},rt={key:1,class:"text-[11px] font-semibold tabular-nums text-slate-700 dark:text-slate-300 shrink-0"},dt={class:"h-2 w-full rounded-full bg-slate-100 dark:bg-slate-700/60 overflow-hidden"},ut={__name:"ProgressBar",props:{value:{type:Number,required:!0},label:{type:String,default:""},tooltip:{type:String,default:""},showValue:{type:Boolean,default:!0},valueSuffix:{type:String,default:"%"},displayValueOverride:{type:String,default:""},band:{type:Object,default:null}},setup(e){const i=e,t=S(()=>Math.max(0,Math.min(100,i.value))),l=S(()=>i.displayValueOverride||`${Math.round(i.value)}${i.valueSuffix}`),c=S(()=>{var d;return((d=i.band)==null?void 0:d.barClass)||"bg-sky-500"});return(d,r)=>(n(),o("div",null,[e.label||e.tooltip||e.showValue?(n(),o("div",nt,[e.label||e.tooltip?(n(),o("span",ot,[e.label?(n(),o("span",it,a(e.label),1)):C("",!0),e.tooltip?(n(),N(Te,{key:1,"tooltip-content":e.tooltip,class:"shrink-0"},null,8,["tooltip-content"])):C("",!0)])):C("",!0),e.showValue?(n(),o("span",rt,a(l.value),1)):C("",!0)])):C("",!0),s("div",dt,[s("div",{class:W(["h-full rounded-full transition-[width] duration-500",c.value]),style:Ae({width:t.value+"%"})},null,6)])]))}},ct={class:"glass-card p-5"},mt={key:0,class:"mb-4 flex items-start justify-between gap-3"},pt={class:"min-w-0"},vt={class:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},xt={key:0,class:"mt-0.5 text-xs text-slate-400 dark:text-slate-500"},yt={key:0,class:"shrink-0"},F={__name:"CommandCenterCard",props:{title:{type:String,default:""},subtitle:{type:String,default:""}},setup(e){return(i,t)=>(n(),o("section",ct,[e.title||i.$slots.action?(n(),o("header",mt,[s("div",pt,[s("h2",vt,a(i.$t(e.title)),1),e.subtitle?(n(),o("p",xt,a(e.subtitle),1)):C("",!0)]),i.$slots.action?(n(),o("div",yt,[pe(i.$slots,"action")])):C("",!0)])):C("",!0),pe(i.$slots,"default")]))}},oe={__name:"StatusBadge",props:{status:{type:String,required:!0}},setup(e){const i=e,t=S(()=>{const l=J[i.status];return l?{...l,known:!0}:{label:i.status,color:"gray",known:!1}});return(l,c)=>(n(),N(M,{color:t.value.color,"is-left-circle":""},{default:w(()=>[D(a(t.value.known?l.$t(t.value.label):t.value.label),1)]),_:1},8,["color"]))}},ft={key:0,class:"text-sm text-slate-500 dark:text-slate-400"},ht={key:1,class:"space-y-5"},gt={class:"mb-1.5 flex items-start justify-between gap-3"},kt={class:"text-sm font-medium text-slate-900 dark:text-white"},bt={class:"shrink-0 text-sm font-semibold tabular-nums text-slate-700 dark:text-slate-200"},$t={class:"mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-slate-500 dark:text-slate-400"},wt={key:0},_t={__name:"GoalProgressList",props:{goals:{type:Array,required:!0},people:{type:Array,required:!0}},setup(e){return(i,t)=>(n(),N(F,{title:"Goal progress",subtitle:i.$t("Based on confirmed milestones")},{default:w(()=>[e.goals.length?(n(),o("ul",ht,[(n(!0),o(T,null,O(e.goals,l=>(n(),o("li",{key:l.id}
3,[s("div",gt,[s("p",kt,a(l.name),1),s("span",bt,a(l.progress)+"%",1)]),m(ut,{value:l.progress,"show-value":!1},null,8,["value"]),s("div",$t,[m(oe,{status:l.status},null,8,["status"]),s("span",null,a(b(B)(e.people,l.ownerId)),1),l.nextMilestone?(n(),o("span",wt,a(i.$t("Next milestone"))+": "+a(l.nextMilestone),1)):C("",!0)])]))),128))])):(n(),o("p",ft,a(i.$t("No goals for this stream yet.")),1))]),_:1},8,["subtitle"]))}},ie={__name:"OriginBadge",props:{origin:{type:String,required:!0}},setup(e){const i=e,t=S(()=>ve[i.origin]??ve.human);return(l,c)=>(n(),N(M,{color:t.value.color},{icon:w(()=>[m(j,{name:t.value.icon,class:"size-3"},null,8,["name"])]),default:w(()=>[D(" "+a(l.$t(t.value.label)),1)]),_:1},8,["color"]))}},Ct={key:0,class:"text-sm text-slate-500 dark:text-slate-400"},It={key:1,class:"space-y-3"},St={class:"text-[11px] font-semibold uppercase tracking-wide text-slate-400 dark:text-slate-500"},Dt={class:"flex items-start justify-between gap-2"},Tt={class:"text-sm font-medium text-slate-900 dark:text-white"},Ut={class:"mt-1 flex items-center gap-1 text-xs text-slate-600 dark:text-slate-300"},Ot={key:0},At={key:0,class:"mt-1 text-xs text-slate-500 dark:text-slate-400"},Vt={class:"text-sm font-medium text-slate-900 dark:text-white"},Nt={class:"mt-1.5 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-slate-500 dark:text-slate-400"},jt={class:"flex items-center gap-1"},Et={__name:"NextSteps",props:{steps:{type:Array,required:!0},people:{type:Array,required:!0},streams:{type:Array,required:!0}},setup(e){const i=e,{locale:t}=R(),l=S(()=>Pe(i.steps.filter(r=>r.kind==="meeting")).slice(0,3)),c=S(()=>i.steps.filter(r=>r.kind==="task"&&r.status!=="done").sort((r,u)=>new Date(r.date)-new Date(u.date))),d=r=>{var u;return((u=i.streams.find(x=>{var p;return x.id===((p=r.streamIds)==null?void 0:p[0])}))==null?void 0:u.name)??""};return(r,u)=>(n(),N(F,{title:"Next steps"},{default:w(()=>[!l.value.length&&!c.value.length?(n(),o("p",Ct,a(r.$t("Nothing planned for this stream.")),1)):C("",!0),l.value.length?(n(),o("div",It,[s("p",St,a(r.$t("Upcoming meetings")),1),(n(!0),o(T,null,O(l.value,x=>(n(),o("div",{key:x.id,class:"glass-inner-panel rounded-xl p-3"},[s("div",Dt,[s("p",Tt,a(x.title),1),m(ie,{origin:x.origin},null,8,["origin"])]),s("p",Ut,[m(j,{name:"calendar",class:"size-3.5"}),D(" "+a(b(q)(x.date,b(t),{weekday:"short",day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"}))+" ",1),d(x)?(n(),o("span",Ot," · "+a(d(x)),1)):C("",!0)]),x.participantIds.length?(n(),o("p",At,a(x.participantIds.map(p=>b(B)(e.people,p)).join(", ")),1)):C("",!0)]))),128))])):C("",!0),c.value.length?(n(),o("ul",{key:2,class:W([l.value.length?"mt-5":"","divide-y divide-slate-200/70 dark:divide-slate-700/60"])},[(n(!0),o(T,null,O(c.value,x=>(n(),o("li",{key:x.id,class:"py-3 first:pt-0 last:pb-0"},[s("p",Vt,a(x.title),1),s("div",Nt,[s("span",null,a(b(B)(e.people,x.ownerId)),1),s("span",jt,[m(j,{name:"calendar",class:"size-3"}),D(" "+a(b(q)(x.date,b(t),{day:"numeric",month:"short"})),1)]),x.priority&&b(re)[x.priority]?(n(),N(M,{key:0,color:b(re)[x.priority].color},{default:w(()=>[D(a(r.$t(b(re)[x.priority].label)),1)]),_:2},1032,["color"])):C("",!0),m(oe,{status:x.status},null,8,["status"])])]))),128))],2)):C("",!0)]),_:1}))}},qt={key:0,class:"text-sm text-slate-500 dark:text-slate-400"},Rt={key:1,class:"space-y-3"},Bt={class:"flex items-center justify-between gap-2"},Mt={class:"mt-2 text-sm font-medium text-slate-900 dark:text-white"},Lt={key:0,class:"mt-1 text-xs text-slate-600 dark:text-slate-300"},zt={class:"text-slate-400"},Pt={key:1,class:"mt-1 text-xs text-slate-600 dark:text-slate-300"},Wt={key:2,class:"mt-1 text-xs text-slate-600 dark:text-slate-300"},Ft={class:"mt-2 flex flex-wrap items-center justify-between gap-2 text-xs text-slate-500 dark:text-slate-400"},Ht=["onClick"],Gt={__name:"DecisionsRisks",props:{decisions:{type:Array,required:!0},resolvedIds:{type:Array,default:()=>[]},people:{type:Array,required:!0}},emits:["review"],setup(e,{emit:i}){const t=e,l=i,{locale:c}=R(),d={contradiction:{label:"Contradiction found",color:"orange",icon:"exclamation-triangle"},decision:{label:"Decision needed",color:"violet",icon:"decision"},risk:{label:"Risk",color:"yellow",icon:"warning"},blocker:{label:"Blocker",color:"red",icon:"high-risk"}},r=S(()=>be(t.decisions,t.resolvedIds));return(u,x)=>(n(),N(F,{title:"Decisions & risks"},{default:w(()=>[r.value.length?(n(),o("ul",Rt,[(n(!0),o(T,null,O(r.value,p=>
3(n(),o("li",{key:p.id,class:"glass-inner-panel rounded-xl p-3"},[s("div",Bt,[m(M,{color:d[p.kind].color},{icon:w(()=>[m(j,{name:d[p.kind].icon,class:"size-3"},null,8,["name"])]),default:w(()=>[D(" "+a(u.$t(d[p.kind].label)),1)]),_:2},1032,["color"]),m(oe,{status:p.status},null,8,["status"])]),s("p",Mt,a(p.title),1),p.kind==="contradiction"?(n(),o("p",Lt,[D(" â"+a(p.previous.text)+"â ",1),s("span",zt,a(u.$t("vs.")),1),D(" â"+a(p.next.text)+"â ",1)])):p.recommendation?(n(),o("p",Pt,a(u.$t("Recommendation"))+": "+a(p.recommendation),1)):C("",!0),p.reason?(n(),o("p",Wt,[D(a(p.reason)+" ",1),x[0]||(x[0]=s("span",{class:"text-slate-400"},"â",-1)),D(" "+a(p.impact),1)])):C("",!0),s("div",Ft,[s("span",null,a(u.$t("Owner"))+": "+a(b(B)(e.people,p.ownerId))+" · "+a(u.$t("Due"))+" "+a(b(q)(p.dueDate,b(c),{day:"numeric",month:"short"})),1),p.kind==="contradiction"?(n(),o("button",{key:0,type:"button",class:"font-semibold text-sky-600 hover:text-sky-700 dark:text-sky-400",onClick:k=>l("review",p)},a(u.$t("Review now"))+" â ",9,Ht)):C("",!0)])]))),128))])):(n(),o("p",qt,a(u.$t("No open decisions or risks.")),1))]),_:1}))}},Yt={class:"text-base font-semibold text-slate-900 dark:text-white"},Kt={class:"flex items-center justify-between gap-2"},Jt={class:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},Zt={class:"mt-2 text-sm text-slate-900 dark:text-white"},Qt={class:"mt-2 text-xs text-slate-500 dark:text-slate-400"},Xt={key:0,class:"rounded-xl border border-sky-200/70 bg-sky-50/70 p-3 text-sm text-sky-900 dark:border-sky-800 dark:bg-sky-950/40 dark:text-sky-100"},es={class:"font-semibold"},ts={class:"space-y-2"},ss={class:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},as={class:"flex flex-wrap gap-2"},ls=["onClick"],ns=["placeholder"],os={class:"flex justify-end gap-3"},is={__name:"ContradictionDrawer",props:{open:{type:Boolean,default:!1},contradiction:{type:Object,default:null}},emits:["update:open","resolve"],setup(e,{emit:i}){const t=e,l=i,{locale:c}=R(),d=[{action:"use_new",label:"Use the new statement"},{action:"keep_old",label:"Keep the previous statement"},{action:"custom",label:"Write my own"}],r=A(null),u=A("");ne(()=>{var v;return[t.open,(v=t.contradiction)==null?void 0:v.id]},()=>{r.value=null,u.value=""});const x=S(()=>t.contradiction?[{key:"previous",label:"Previous statement",statement:t.contradiction.previous},{key:"next",label:"New statement",statement:t.contradiction.next}]:[]),p=S(()=>r.value!==null&&(r.value!=="custom"||u.value.trim()!=="")),k=()=>{p.value&&l("resolve",{action:r.value,note:u.value})};return(v,f)=>(n(),N(le,{open:e.open,title:"Contradiction review",description:"Two statements disagree. Pick the one that is true â the board uses it from now on.","hide-default-buttons":"","panel-max-width-class":"lg:max-w-lg","onUpdate:open":f[2]||(f[2]=y=>l("update:open",y)),onClose:f[3]||(f[3]=y=>l("update:open",!1))},{footer:w(()=>[s("div",os,[m(se,{onClick:f[1]||(f[1]=y=>l("update:open",!1))},{default:w(()=>[D(a(v.$t("Cancel")),1)]),_:1}),m(Z,{disabled:!p.value,onClick:k},{default:w(()=>[D(a(v.$t("Confirm")),1)]),_:1},8,["disabled"])])]),default:w(()=>[e.contradiction?(n(),o(T,{key:0},[s("p",Yt,a(e.contradiction.title),1),(n(!0),o(T,null,O(x.value,y=>(n(),o("div",{key:y.key,class:"glass-inner-panel rounded-xl p-4"}
3,[s("div",Kt,[s("p",Jt,a(v.$t(y.label)),1),m(M,{color:y.key==="next"?"sky":"gray"},{default:w(()=>[D(a(v.$t(y.key==="next"?"New":"Current")),1)]),_:2},1032,["color"])]),s("p",Zt,"â"+a(y.statement.text)+"â",1),s("p",Qt,a(y.statement.sourceLabel)+" · "+a(b(q)(y.statement.date,b(c)))+" · "+a(y.statement.author)+" · "+a(v.$t("{value}% confidence",{value:Math.round(y.statement.confidence*100)})),1)]))),128)),e.contradiction.recommendation?(n(),o("div",Xt,[s("span",es,a(v.$t("Recommendation"))+":",1),D(" "+a(e.contradiction.recommendation),1)])):C("",!0),s("div",ts,[s("p",ss,a(v.$t("What is true?")),1),s("div",as,[(n(),o(T,null,O(d,y=>s("button",{key:y.action,type:"button",class:W(["rounded-lg border px-3 py-2 text-sm font-medium transition",r.value===y.action?"border-slate-900 bg-slate-900 text-white dark:border-white dark:bg-white dark:text-slate-900":"border-slate-200 bg-white/70 text-slate-700 hover:border-slate-400 dark:border-slate-600 dark:bg-slate-800/60 dark:text-slate-200"]),onClick:$=>r.value=y.action},a(v.$t(y.label)),11,ls)),64))]),r.value==="custom"?L((n(),o("textarea",{key:0,"onUpdate:modelValue":f[0]||(f[0]=y=>u.value=y),rows:"3",class:"w-full rounded-lg border-slate-200 bg-white/80 text-sm dark:border-slate-600 dark:bg-slate-800 dark:text-white",placeholder:v.$t("Write the statement that is true")},null,8,ns)),[[Q,u.value]]):C("",!0)])],64)):C("",!0)]),_:1},8,["open"]))}},rs={class:"space-y-3"},ds={class:"min-w-0"},us={class:"text-sm font-medium text-slate-900 dark:text-white"},cs={class:"text-xs text-slate-600 dark:text-slate-300"},ms={class:"mt-4 text-xs text-slate-400 dark:text-slate-500"},ps={__name:"InternalPanel",props:{notes:{type:Array,required:!0}},setup(e){const i={positive:"bg-emerald-500",attention:"bg-amber-500",info:"bg-sky-500"};return(t,l)=>(n(),N(F,{title:"Team only"},{action:w(()=>[m(j,{name:"security-lock",class:"size-4 text-amber-500"})]),default:w(()=>[s("ul",rs,[(n(!0),o(T,null,O(e.notes,c=>(n(),o("li",{key:c.id,class:"flex gap-2"},[s("span",{class:W(["mt-1.5 size-2 shrink-0 rounded-full",i[c.tone]??"bg-slate-400"])},null,2),s("div",ds,[s("p",us,a(c.title),1),s("p",cs,a(c.text),1)])]))),128))]),s("p",ms,a(t.$t("Only visible to the Sales Automation team.")),1)]),_:1}))}},vs={class:"mb-2 text-[11px] font-semibold uppercase tracking-wide text-slate-400 dark:text-slate-500"},xs={class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-1 xl:grid-cols-2"},ys={class:"flex size-9 shrink-0 items-center justify-center rounded-full bg-slate-200 text-xs font-semibold text-slate-700 dark:bg-slate-700 dark:text-slate-200"},fs={class:"min-w-0"},hs={class:"truncate text-sm font-medium text-slate-900 dark:text-white"},gs={class:"truncate text-xs text-slate-600 dark:text-slate-300"},ks=["title"],bs={class:"text-[11px] text-slate-400 dark:text-slate-500"},$s={__name:"StakeholderList",props:{people:{type:Array,required:!0},customerName:{type:String,required:!0}},setup(e){const i=e,{locale:t}=R(),l=S(()=>["customer","us"].map(c=>({side:c,people:i.people.filter(d=>d.side===c)})).filter(c=>c.people.length));return(c,d)=>(n(),N(F,{title:"Stakeholders"},{default:w(()=>[(n(!0),o(T,null,O(l.value,r=>(n(),o("div",{key:r.side,class:"mb-4 last:mb-0"},[s("p",vs,a(r.side==="customer"?e.customerName:c.$t("Our team")),1),s("ul",xs,[(n(!0),o(T,null,O(r.people,u=>(n(),o("li",{key:u.id,class:"flex min-w-0 items-start gap-2.5"},[s("span",ys,a(b(ke)(u.name)),1),s("div",fs,[s("p",hs,a(u.name),1),s("p",gs,a(u.role),1),s("p",{class:"truncate text-xs text-slate-400 dark:text-slate-500",title:u.responsibility},a(u.responsibility),9,ks),s("p",bs,a(c.$t("{count} open",{count:u.openTasks}))+" · "+a(c.$t("active {date}",{date:b(q)(u.lastActive,b(t),{day:"numeric",month:"short"})})),1)])]))),128))])]))),128))]),_:1}))}};function $e(e,i){return{getEventKey:t=>t.id,getEventTitle:t=>t.title,getEventDescription:t=>t.outcome?e("Outcome: {text}",{text:t.outcome}):t.description,getEventDate:t=>t.date,getEventUser:t=>B(i,t.ownerId)||null,getEventType:t=>{var l;return e(((l=G[t.type])==null?void 0:l.label)??t.type)},getEventStatus:t=>J[t.status]?e(J[t.status].label):null,getStatusBadgeColor:t=>{var l;return((l=J[t.status])==null?void 0:l.color)??"gray"},getBubbleColor:t=>{var l;return((l=G[t.type])==null?void 0:l.bubble)??"bg-slate-500"},getEventIcon:t=>{var l;return((l=G[t.type])==null?void 0:l.icon)??"time"}}
3}const ws={class:"mt-2 flex flex-wrap items-center justify-between gap-2"},_s={class:"flex flex-wrap items-center gap-2 text-xs text-slate-500 dark:text-slate-400"},Cs=["onClick"],Is={__name:"ActivityFeed",props:{entries:{type:Array,required:!0},people:{type:Array,required:!0},limit:{type:Number,default:6}},emits:["open","show-all"],setup(e,{emit:i}){const t=e,l=i,{t:c}=R(),d=S(()=>[...t.entries].sort((u,x)=>new Date(x.date)-new Date(u.date)).slice(0,t.limit)),r=S(()=>$e(c,t.people));return(u,x)=>(n(),N(F,{title:"Recent activity",subtitle:u.$t("What happened with the customer, newest first")},{action:w(()=>[s("button",{type:"button",class:"text-xs font-semibold text-sky-600 hover:text-sky-700 dark:text-sky-400",onClick:x[0]||(x[0]=p=>l("show-all"))},a(u.$t("Open full timeline"))+" â ",1)]),default:w(()=>[m(he,{events:d.value,"event-config":r.value,"empty-state-title":u.$t("Nothing on the timeline yet"),"empty-state-description":u.$t("Meetings, decisions and risks appear here as they happen.")},{"event-content":w(({event:p})=>[s("div",ws,[s("div",_s,[m(ie,{origin:p.origin},null,8,["origin"]),s("span",null,a(p.sourceLabel),1)]),s("button",{type:"button",class:"text-xs font-semibold text-sky-600 hover:text-sky-700 dark:text-sky-400",onClick:k=>l("open",p)},a(u.$t("Details")),9,Cs)])]),_:1},8,["events","event-config","empty-state-title","empty-state-description"])]),_:1},8,["subtitle"]))}},Ss={key:0,class:"text-sm text-slate-500 dark:text-slate-400"},Ds={key:1,class:"grid gap-3 md:grid-cols-2 xl:grid-cols-3"},Ts={class:"flex items-start justify-between gap-2"},Us={class:"text-sm font-semibold text-slate-900 dark:text-white"},Os={class:"mt-0.5 text-xs text-slate-500 dark:text-slate-400"},As={class:"mt-3 space-y-1"},Vs={class:"truncate"},Ns={class:"shrink-0 font-semibold tabular-nums"},js={key:2,class:"mt-5"},Es={class:"mb-2 text-[11px] font-semibold uppercase tracking-wide text-slate-400 dark:text-slate-500"},qs={class:"space-y-2"},Rs={class:"font-medium text-slate-900 dark:text-white"},Bs={class:"text-xs text-slate-500 dark:text-slate-400"},Ms={__name:"PurchasedModules",props:{purchased:{type:Array,required:!0},upsell:{type:Array,default:()=>[]},streams:{type:Array,required:!0},people:{type:Array,required:!0}},setup(e){const i=e,t=l=>{var c;return((c=i.streams.find(d=>d.id===l))==null?void 0:c.name)??""};return(l,c)=>(n(),N(F,{title:"Purchased modules",subtitle:l.$t("From the signed offer, matched against the product catalog")},{default:w(()=>[e.purchased.length?(n(),o("ul",Ds,[(n(!0),o(T,null,O(e.purchased,d=>(n(),o("li",{key:d.id,class:"glass-inner-panel rounded-xl p-4"},[s("div",Ts,[s("p",Us,a(d.name),1),m(M,{color:"green","is-left-circle":"",class:"shrink-0 whitespace-nowrap"},{default:w(()=>[D(a(l.$t("In contract")),1)]),_:1})]),s("p",Os,a(t(d.streamId))+" · "+a(d.billing),1),s("ul",As,[(n(!0),o(T,null,O(d.catalogItems,r=>(n(),o("li",{key:r.name,class:"flex items-center justify-between gap-2 text-xs text-slate-700 dark:text-slate-200"},[s("span",Vs,a(r.name),1),s("span",Ns,a(r.quantity)+" Ã",1)]))),128))])]))),128))])):(n(),o("p",Ss,a(l.$t("No module of this stream is in the contract.")),1)),e.upsell.length?(n(),o("div",js,[s("p",Es,a(l.$t("Not in the contract â upsell candidates")),1),s("ul",qs,[(n(!0),o(T,null,O(e.upsell,d=>(n(),o("li",{key:d.id,class:"flex flex-wrap items-center gap-2 text-sm"},[m(M,{color:"violet"},{default:w(()=>[D(a(l.$t("Upsell candidate")),1)]),_:1}),s("span",Rs,a(d.name),1),s("span",Bs,a(d.reason)+" · "+a(b(B)(e.people,d.ownerId)),1)]))),128))])])):C("",!0)]),_:1},8,["subtitle"]))}},Ls={class:"space-y-4"},zs={class:"glass-card flex flex-wrap items-center gap-3 p-4"},Ps={class:"min-w-[14rem] flex-1"},Ws=["aria-label"],Fs={value:"all"},Hs=["value"],Gs={class:"ml-auto flex items-center gap-2"},Ys={key:0,class:"glass-card p-10 text-center"},Ks={class:"text-sm font-medium text-slate-700 dark:text-slate-200"},Js={class:"mt-1 text-xs text-slate-500 dark:text-slate-400"},Zs={class:"mb-3 text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},Qs={class:"ml-1 font-normal normal-case text-slate-400"},Xs={class:"mt-2 flex flex-wrap items-center justify-between gap-2"},ea={class:"flex flex-wrap items-center gap-2 text-xs text-slate-500 dark:text-slate-400"},ta={key:0,class:"flex items-center gap-1"},sa=["onClick"],aa={__name:"TimelinePanel",props:{entries:{type:Array,required:!0},people:{type:Array,required:!0},customerName:{type:String,required:!0}},emits:["open","add"],setup(e,{emit:i}){const t=e,l=i,{t:c,locale:d}=R(),r=A(""),u=A("all"),x=A("day"),p=[{value:"day",label:"Day"},{value:"week",label:"Week"},{value:"month",label:"Month"}],k=S(()=>Re(t.entries,{query:r.value,type:u.value})),v=S(()=>Me(k.value,x.value)),f=S(()=>$e(c,t.people)),y=g=>{if(x.value==="month")return q(g.start,d.value,{month:"long",year:"numeric",timeZone:"UTC"});const h=q(g.start,d.value,{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return x.value==="week"?c("Week of {date}",{date:h}):h},$=()=>{const g=new Blob([ze(k.value)],{type:"text/csv;charset=utf-8"}),h=URL.createObjectURL(g),I=document.createElement("a");
3I.href=h,I.download=`timeline-${t.customerName.toLowerCase().replace(/[^a-z0-9]+/g,"-")}.csv`,I.click(),URL.revokeObjectURL(h)};return(g,h)=>(n(),o("div",Ls,[s("div",zs,[s("div",Ps,[m(de,{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=I=>r.value=I),"trailing-icon":"search",placeholder:g.$t("Search the timeline"),class:"w-full"},null,8,["modelValue","placeholder"])]),L(s("select",{"onUpdate:modelValue":h[1]||(h[1]=I=>u.value=I),class:"input-style w-auto min-w-[10rem]","aria-label":g.$t("Entry type")},[s("option",Fs,a(g.$t("All types")),1),(n(!0),o(T,null,O(b(G),(I,E)=>(n(),o("option",{key:E,value:E},a(g.$t(I.label)),9,Hs))),128))],8,Ws),[[ae,u.value]]),m(fe,{modelValue:x.value,"onUpdate:modelValue":h[2]||(h[2]=I=>x.value=I),options:p,fit:"content",dense:""},null,8,["modelValue"]),s("div",Gs,[m(se,{disabled:!k.value.length,onClick:$},{default:w(()=>[m(j,{name:"export-csv",class:"mr-1.5 size-4"}),D(" "+a(g.$t("Export")),1)]),_:1},8,["disabled"]),m(Z,{onClick:h[3]||(h[3]=I=>l("add"))},{default:w(()=>[m(j,{name:"plus",class:"mr-1.5 size-4"}),D(" "+a(g.$t("Add entry")),1)]),_:1})])]),v.value.length?C("",!0):(n(),o("div",Ys,[m(j,{name:"timeline",class:"mx-auto mb-3 size-10 text-slate-400"}),s("p",Ks,a(g.$t("Nothing matches these filters")),1),s("p",Js,a(g.$t("Try another search or show all types.")),1)])),(n(!0),o(T,null,O(v.value,I=>(n(),o("section",{key:I.key,class:"glass-card p-5"},[s("h3",Zs,[D(a(y(I))+" ",1),s("span",Qs,"· "+a(g.$t("{count} entry | {count} entries",{count:I.entries.length},I.entries.length)),1)]),m(he,{events:I.entries,"event-config":f.value},{"event-content":w(({event:E})=>{var H;return[s("div",Xs,[s("div",ea,[m(ie,{origin:E.origin},null,8,["origin"]),s("span",null,a(E.sourceLabel),1),(H=E.versions)!=null&&H.length?(n(),o("span",ta,[m(j,{name:"history",class:"size-3"}),D(" "+a(g.$t("Edited")),1)])):C("",!0)]),s("button",{type:"button",class:"text-xs font-semibold text-sky-600 hover:text-sky-700 dark:text-sky-400",onClick:z=>l("open",E)},a(g.$t("Details")),9,sa)])]}),_:1},8,["events","event-config"])]))),128))]))}},la={class:"space-y-2"},na={class:"flex flex-wrap items-center gap-2"},oa={key:0,class:"text-base font-semibold text-slate-900 dark:text-white"},ia={class:"grid grid-cols-2 gap-x-4 gap-y-3 text-sm"},ra={class:"text-xs text-slate-500 dark:text-slate-400"},da={class:"text-slate-900 dark:text-white"},ua={class:"text-xs text-slate-500 dark:text-slate-400"},ca={class:"text-slate-900 dark:text-white"},ma={class:"text-xs text-slate-500 dark:text-slate-400"},pa={class:"text-slate-900 dark:text-white"},va={class:"text-xs text-slate-500 dark:text-slate-400"},xa={class:"text-slate-900 dark:text-white"},ya={key:0,class:"text-xs text-slate-500 dark:text-slate-400"},fa={class:"mb-1 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},ha={key:0,class:"whitespace-pre-line text-sm text-slate-700 dark:text-slate-200"},ga={key:0},ka={class:"mb-1 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},ba={key:0,class:"whitespace-pre-line text-sm text-slate-700 dark:text-slate-200"},$a={key:1,class:"glass-inner-panel rounded-xl p-3"},wa={class:"mb-1 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},_a={key:0,class:"whitespace-pre-line text-xs italic text-slate-700 dark:text-slate-200"},Ca=["href"],Ia={key:2,class:"mt-2 text-xs text-slate-500 dark:text-slate-400"},Sa={class:"mb-2 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},Da={key:0,class:"text-xs text-slate-500 dark:text-slate-400"},Ta={key:1,class:"space-y-2"},Ua={class:"text-slate-500 dark:text-slate-400"},Oa={class:"text-slate-400 line-through dark:text-slate-500"},Aa={class:"text-slate-800 dark:text-slate-100"},Va={class:"flex flex-wrap items-center justify-between gap-3"},Na={key:0,class:"max-w-xs text-xs text-slate-500 dark:text-slate-400"},ja={class:"ml-auto flex gap-3"},Ea={__name:"ItemDetailDrawer",props:{open:{type:Boolean,default:!1},entry:{type:Object,default:null},people:{type:Array,required:!0},streams:{type:Array,required:!0}},emits:["update:open","save"],setup(e,{emit:i}){const t=e,l=i,{locale:c}=R(),d={title:"Title",description:"Description",outcome:"Outcome"},r=A(!1),u=ue({title:"",description:"",outcome:""});ne(()=>{var f;return[t.open,(f=t.entry)==null?void 0:f.id]},()=>{r.value=!1});const x=S(()=>{var f,y;return G[(f=t.entry)==null?void 0:f.type]??{label:((y=t.entry)==null?void 0:y.type)??"",icon:"time"}}),p=S(()=>{var f;return(((f=t.entry)==null?void 0:f.streamIds)??[]).map(y=>{var $;return(($=t.streams.find(g=>g.id===y))==null?void 0:$.name)??y}).join(", ")}),k=()=>{Object.assign(u,{title:t.entry.title??"",description:t.entry.description??"",outcome:t.entry.outcome??""}),r.value=!0},v=()=>{l("save",{title:u.title.trim(),description:u.description,outcome:u.outcome.trim()===""?null:u.outcome}),r.value=!1};return(f,y)=>(n(),N(le,{open:e.open,title:"Timeline entry","hide-default-buttons":"","panel-max-width-class":"lg:max-w-lg","onUpdate:open":y[5]||(y[5]=$=>l("update:open",$)),onClose:y[6]||(y[6]=$=>l("update:open",!1))},{footer:w(()=>[s("div",Va,[r.value?(n(),o("p",Na,a(f.$t("Your edit is kept as a new version. The original stays in the history.")),1)):C("",!0),s("div",ja,[r.value?(n(),o(T,{key:0},[m(se,{onClick:y[3]||(y[3]=$=>r.value=!1)},{default:w(()=>[D(a(f.$t("Cancel")),1)]),_:1}),m(Z,{disabled:!u.title.trim(),onClick:v},{default:w(()=>[D(a(f.$t("Save")),1)]),_:1},8,["disabled"])],64)):(n(),o(T,{key:1},[m(se,{onClick:y[4]||(y[4]=$=>l("update:open",!1))},{default:w(()=>[D(a(f.$t("Close")),1)]),_:1}),m(Z,{onClick:k},{default:w(()=>[m(j,{name:"pencil",class:"mr-1.5 size-4"}),D(" "+a(f.$t("Edit")),1)]),_:1})],64))])])]),default:w(()=>{var $;return[e.entry?(n(),o(T,{key:0},[s("div",la,[s("div",na,[m(M,{color:"gray"},{icon:w(()=>[m(j,{name:x.value.icon,class:"size-3"},null,8,["name"])]),default:w(()=>
3[D(" "+a(f.$t(x.value.label)),1)]),_:1}),m(oe,{status:e.entry.status},null,8,["status"]),m(ie,{origin:e.entry.origin},null,8,["origin"])]),r.value?(n(),N(de,{key:1,modelValue:u.title,"onUpdate:modelValue":y[0]||(y[0]=g=>u.title=g),class:"w-full"},null,8,["modelValue"])):(n(),o("p",oa,a(e.entry.title),1))]),s("dl",ia,[s("div",null,[s("dt",ra,a(f.$t("Date")),1),s("dd",da,a(b(q)(e.entry.date,b(c),{day:"numeric",month:"long",year:"numeric",hour:"2-digit",minute:"2-digit"})),1)]),s("div",null,[s("dt",ua,a(f.$t("Owner")),1),s("dd",ca,a(b(B)(e.people,e.entry.ownerId)||"â"),1)]),s("div",null,[s("dt",ma,a(f.$t("Stream")),1),s("dd",pa,a(p.value),1)]),s("div",null,[s("dt",va,a(f.$t("Source")),1),s("dd",xa,[D(a(e.entry.sourceLabel)+" ",1),e.entry.confidence!==null?(n(),o("span",ya," · "+a(f.$t("{value}% confidence",{value:Math.round(e.entry.confidence*100)})),1)):C("",!0)])])]),s("div",null,[s("p",fa,a(f.$t("Description")),1),r.value?L((n(),o("textarea",{key:1,"onUpdate:modelValue":y[1]||(y[1]=g=>u.description=g),rows:"3",class:"input-style w-full"},null,512)),[[Q,u.description]]):(n(),o("p",ha,a(e.entry.description||"â"),1))]),e.entry.outcome||r.value?(n(),o("div",ga,[s("p",ka,a(f.$t("Outcome")),1),r.value?L((n(),o("textarea",{key:1,"onUpdate:modelValue":y[2]||(y[2]=g=>u.outcome=g),rows:"3",class:"input-style w-full"},null,512)),[[Q,u.outcome]]):(n(),o("p",ba,a(e.entry.outcome),1))])):C("",!0),e.entry.type==="meeting"?(n(),o("div",$a,[s("p",wa,[m(j,{name:"microphone-unmute",class:"size-3.5"}),D(" "+a(f.$t("Transcript")),1)]),e.entry.transcriptExcerpt?(n(),o("p",_a,a(e.entry.transcriptExcerpt),1)):C("",!0),e.entry.transcriptUrl?(n(),o("a",{key:1,href:e.entry.transcriptUrl,target:"_blank",rel:"noopener",class:"mt-2 inline-block text-xs font-semibold text-sky-600 hover:text-sky-700 dark:text-sky-400"},a(f.$t("Open transcript"))+" â ",9,Ca)):(n(),o("p",Ia,a(f.$t("The full transcript is not linked yet.")),1))])):C("",!0),s("div",null,[s("p",Sa,a(f.$t("Version history")),1),($=e.entry.versions)!=null&&$.length?(n(),o("ol",Ta,[(n(!0),o(T,null,O(e.entry.versions,(g,h)=>(n(),o("li",{key:h,class:"text-xs"},[s("p",Ua,a(f.$t("{field} changed by {name}",{field:f.$t(d[g.field]??g.field),name:g.by}))+" · "+a(b(q)(g.at,b(c),{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"})),1),s("p",Oa,a(g.from||"â"),1),s("p",Aa,a(g.to||"â"),1)]))),128))])):(n(),o("p",Da,a(f.$t("No changes yet. Edits by the team are kept here, the original stays visible.")),1))])],64)):C("",!0)]}),_:1},8,["open"]))}},qa={class:"space-y-4"},Ra={class:"block"},Ba={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-300"},Ma=["value"],La={class:"grid grid-cols-2 gap-3"},za={class:"block"},Pa={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-300"},Wa={class:"block"},Fa={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-300"},Ha=["value"],Ga={class:"block"},Ya={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-300"},Ka={class:"block"},Ja={class:"mb-1 block text-xs font-medium text-slate-600 dark:text-slate-300"},Za={key:0,class:"text-xs text-red-600 dark:text-red-400"},Qa={__name:"TimelineEntryDrawer",props:{open:{type:Boolean,default:!1},streams:{type:Array,required:!0}},emits:["update:open","save"],setup(e,{emit:i}){const t=e,l=i,c=()=>new Date().toISOString().slice(0,10),d=ue({type:"meeting",date:c(),streamId:"",title:"",description:""}),r=A(!1);ne(()=>t.open,p=>{var k;p&&(Object.assign(d,{type:"meeting",date:c(),streamId:((k=t.streams[0])==null?void 0:k.id)??"",title:"",description:""}),r.value=!1)});const u=S(()=>d.title.trim()!==""&&d.date!==""&&d.streamId!==""),x=()=>{r.value=!0,u.value&&l("save",{...d,title:d.title.trim()})};return(p,k)=>(n(),N(le,{open:e.open,"max-step":0,title:"Add a timeline entry",description:"Something the Customer Brain has not picked up yet. It is marked as added by the team.","submit-text":"Add entry","onUpdate:open":k[5]||(k[5]=v=>l("update:open",v)),onClose:k[6]||(k[6]=v=>l("update:open",!1)),onSubmit:x},{default:w(()=>[s("div",qa,[s("label",Ra,[s("span",Ba,a(p.$t("Type")),1),L(s("select",{"onUpdate:modelValue":k[0]||(k[0]=v=>d.type=v),class:"input-style w-full"},[(n(!0),o(T,null,O(b(G),(v,f)=>(n(),o("option",{key:f,value:f}
3,a(p.$t(v.label)),9,Ma))),128))],512),[[ae,d.type]])]),s("div",La,[s("label",za,[s("span",Pa,a(p.$t("Date")),1),L(s("input",{"onUpdate:modelValue":k[1]||(k[1]=v=>d.date=v),type:"date",class:"input-style w-full"},null,512),[[Q,d.date]])]),s("label",Wa,[s("span",Fa,a(p.$t("Stream")),1),L(s("select",{"onUpdate:modelValue":k[2]||(k[2]=v=>d.streamId=v),class:"input-style w-full"},[(n(!0),o(T,null,O(e.streams,v=>(n(),o("option",{key:v.id,value:v.id},a(v.name),9,Ha))),128))],512),[[ae,d.streamId]])])]),s("label",Ga,[s("span",Ya,a(p.$t("Title")),1),m(de,{modelValue:d.title,"onUpdate:modelValue":k[3]||(k[3]=v=>d.title=v),class:"w-full"},null,8,["modelValue"])]),s("label",Ka,[s("span",Ja,a(p.$t("Description")),1),L(s("textarea",{"onUpdate:modelValue":k[4]||(k[4]=v=>d.description=v),rows:"4",class:"input-style w-full"},null,512),[[Q,d.description]])]),r.value&&!u.value?(n(),o("p",Za,a(p.$t("A title, a date and a stream are needed.")),1)):C("",!0)])]),_:1},8,["open"]))}},Xa={key:0,class:"glass-card flex flex-wrap items-center justify-between gap-4 border-l-4 border-l-sky-500 p-4"},el={class:"flex min-w-0 items-center gap-3"},tl={class:"flex size-10 shrink-0 items-center justify-center rounded-xl bg-sky-500/10 text-sky-600 dark:text-sky-400"},sl={class:"min-w-0"},al={class:"flex flex-wrap items-center gap-2"},ll={class:"text-sm font-semibold text-slate-900 dark:text-white"},nl={class:"truncate text-xs text-slate-500 dark:text-slate-400"},ol={__name:"HandoverCard",props:{handover:{type:Object,required:!0}},emits:["review"],setup(e,{emit:i}){const t=e,l=i,{locale:c}=R(),d=S(()=>new Intl.NumberFormat(c.value,{style:"currency",currency:"EUR",maximumFractionDigits:0}).format(t.handover.arr));return(r,u)=>e.handover.available&&!e.handover.imported?(n(),o("div",Xa,[s("div",el,[s("span",tl,[m(j,{name:"dealroom-discovery",class:"size-5"})]),s("div",sl,[s("div",al,[s("p",ll,a(r.$t("Won deal ready for handover")),1),m(M,{color:"yellow"},{default:w(()=>[D(a(r.$t("Internal")),1)]),_:1})]),s("p",nl,a(e.handover.dealName)+" · "+a(r.$t("won on {date}",{date:b(q)(e.handover.wonAt,b(c))}))+" · "+a(d.value)+" "+a(r.$t("ARR")),1)])]),m(Z,{onClick:u[0]||(u[0]=x=>l("review"))},{default:w(()=>[D(a(r.$t("Review & import"))+" â",1)]),_:1})])):C("",!0)}},il={class:"space-y-3"},rl={class:"flex min-w-0 items-center gap-2.5"},dl={class:"flex size-8 shrink-0 items-center justify-center rounded-full bg-slate-200 text-xs font-semibold text-slate-700 dark:bg-slate-700 dark:text-slate-200"},ul={class:"min-w-0 text-sm"},cl={class:"font-medium text-slate-900 dark:text-white"},ml={class:"font-normal text-slate-500 dark:text-slate-400"},pl={class:"text-xs text-slate-600 dark:text-slate-300"},vl={class:"space-y-3"},xl={class:"font-medium text-slate-900 dark:text-white"},yl=["onUpdate:modelValue"],fl=["value"],hl={class:"space-y-3"},gl={class:"flex items-center justify-between gap-3"},kl={class:"text-xs text-slate-500 dark:text-slate-400"},bl={class:"font-medium text-slate-900 dark:text-white"},$l={class:"space-y-3"},wl={class:"flex items-center justify-between gap-3"},_l={class:"shrink-0 text-xs text-slate-500 dark:text-slate-400"},Cl={class:"space-y-3 pb-2"},Il={class:"flex items-center justify-between gap-3"},Sl={class:"shrink-0 text-xs text-slate-500 dark:text-slate-400"},Dl={__name:"HandoverDrawer",props:{open:{type:Boolean,default:!1},handover:{type:Object,required:!0},people:{type:Array,required:!0}},emits:["update:open","confirm"],setup(e,{emit:i}){const t=e,l=i,{t:c,locale:d}=R(),r=Ve({props:{icon:String,title:String,hint:{type:String,default:""}},setup:$=>()=>ee("div",{class:"min-w-0"},[ee("p",{class:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400"},[ee(j,{name:$.icon,class:"size-3.5"}),c($.title)]),$.hint?ee("p",{class:"mt-0.5 text-xs text-slate-400 dark:text-slate-500"},c($.hint)):null])}),u=ue({}),x=A([]),p=A(!0),k=A(!0),v=A(!0),f=S(()=>t.people.filter($=>$.side==="us"));ne(()=>t.open,$=>{$&&(t.handover.roles.forEach(g=>{u[g.personId]=!0}),x.value=t.handover.csRoles.map(g=>({...g})),p.value=!0,k.value=!0,v.value=!0)},{immediate:!0});const y=()=>
3{l("confirm",{roles:t.handover.roles.filter($=>u[$.personId]),csRoles:x.value.map($=>({...$})),includeGoals:p.value,includeOpenItems:k.value,includeHistory:v.value})};return($,g)=>(n(),N(le,{open:e.open,"max-step":0,title:"Deal handover",description:"AI suggests, you confirm. Nothing reaches the board until you import it.","submit-text":"Import into the board","panel-max-width-class":"lg:max-w-xl","onUpdate:open":g[3]||(g[3]=h=>l("update:open",h)),onClose:g[4]||(g[4]=h=>l("update:open",!1)),onSubmit:y},{default:w(()=>[s("section",il,[m(b(r),{icon:"users",title:"The people behind the deal",hint:"Buying committee becomes the project team"}),(n(!0),o(T,null,O(e.handover.roles,h=>(n(),o("div",{key:h.personId,class:"glass-inner-panel flex items-center justify-between gap-3 rounded-xl p-3"},[s("div",rl,[s("span",dl,a(b(ke)(b(B)(e.people,h.personId))),1),s("div",ul,[s("p",cl,[D(a(b(B)(e.people,h.personId))+" ",1),s("span",ml,"· "+a(h.dealRole),1)]),s("p",pl,"â "+a($.$t("becomes {role}",{role:h.projectRole})),1)])]),m(X,{modelValue:u[h.personId],"onUpdate:modelValue":I=>u[h.personId]=I,"aria-label":$.$t("Take over {name}",{name:b(B)(e.people,h.personId)})},null,8,["modelValue","onUpdate:modelValue","aria-label"])]))),128))]),s("section",vl,[m(b(r),{icon:"workspace",title:"Care after the handover",hint:"Who runs the account on our side"}),(n(!0),o(T,null,O(x.value,h=>(n(),o("label",{key:h.key,class:"glass-inner-panel flex items-center justify-between gap-3 rounded-xl p-3 text-sm"},[s("span",xl,a($.$t(h.label)),1),L(s("select",{"onUpdate:modelValue":I=>h.personId=I,class:"input-style w-44"},[(n(!0),o(T,null,O(f.value,I=>(n(),o("option",{key:I.id,value:I.id},a(I.name),9,fl))),128))],8,yl),[[ae,h.personId]])]))),128))]),s("section",hl,[s("div",gl,[m(b(r),{icon:"target",title:"What was promised becomes a goal"}),m(X,{modelValue:p.value,"onUpdate:modelValue":g[0]||(g[0]=h=>p.value=h),"aria-label":$.$t("What was promised becomes a goal")},null,8,["modelValue","aria-label"])]),s("ul",{class:W(["space-y-2 text-sm",{"opacity-40":!p.value}])},[(n(!0),o(T,null,O(e.handover.goals,h=>(n(),o("li",{key:h.goal,class:"glass-inner-panel rounded-xl p-3"},[s("p",kl,a(h.promise),1),s("p",bl,"â "+a(h.goal),1)]))),128))],2)]),s("section",$l,[s("div",wl,[m(b(r),{icon:"checklist",title:"Open items become a new stream",hint:"Onboarding & handover"}),m(X,{modelValue:k.value,"onUpdate:modelValue":g[1]||(g[1]=h=>k.value=h),"aria-label":$.$t("Open items become a new stream")},null,8,["modelValue","aria-label"])]),s("ul",{class:W(["space-y-1 text-sm",{"opacity-40":!k.value}])},[(n(!0),o(T,null,O(e.handover.openItems,h=>(n(),o("li",{key:h.id,class:"flex justify-between gap-3 text-slate-700 dark:text-slate-200"},[s("span",null,a(h.title),1),s("span",_l,a($.$t("by {date}",{date:b(q)(h.dueDate,b(d),{day:"numeric",month:"short"})})),1)]))),128))],2)]),s("section",Cl,[s("div",Il,[m(b(r),{icon:"history",title:"Deal history goes onto the timeline"}),m(X,{modelValue:v.value,"onUpdate:modelValue":g[2]||(g[2]=h=>v.value=h),"aria-label":$.$t("Deal history goes onto the timeline")},null,8,["modelValue","aria-label"])]),s("ul",{class:W(["space-y-1 text-sm",{"opacity-40":!v.value}])},[(n(!0),o(T,null,O(e.handover.history,h=>(n(),o("li",{key:h.id,class:"flex justify-between gap-3 text-slate-700 dark:text-slate-200"},[s("span",null,a(h.title),1),s("span",Sl,a(b(q)(h.date,b(d))),1)]))),128))],2)])]),_:1},8,["open"]))}},Tl={class:"px-4 pb-16 pt-2 sm:px-6 lg:px-8"},Ul={key:0,class:"mt-6 grid grid-cols-12 gap-4"},Ol={class:"col-span-12 space-y-4"},Al={class:"col-span-12 space-y-4 lg:col-span-7 xl:col-span-8"},Vl={class:"col-span-12 space-y-4 lg:col-span-5 xl:col-span-4"},Nl={key:1,class:"mt-6"},Zl={__name:"Index",props:{board:{type:Object,required:!0}},setup(e){const t=A(ge(e.board)),l=A(K),c=A("overview"),d=A([]),r=S(()=>d.value.map(V=>V.id)),u=S(()=>Ee(t.value,l.value,r.value)),x=S(()=>P(t.value.goals,l.value)),p=S(()=>P(t.value.nextSteps,l.value)),k=S(()=>P(t.value.decisions,l.value)),v=S(()=>P(t.value.timeline,l.value)),f=S(()=>t.value.modules.purchased.filter(V=>l.value===K||V.streamId===l.value)),y=A(null),$=A(!1),g=A(!1),h=De(),{t:I}=R(),{addNotification:E}=Ue(),H=S(()=>{var V,_,U,ce,me;return((U=(_=(V=h.props.auth)==null?void 0:V.user)==null?void 0:_.full_name)==null?void 0:U.trim())||((me=(ce=h.props.auth)==null?void 0:ce.user)==null?void 0:me.name)||I("Team")}),z=A(null),we=({action:V,note:_})=>
3{d.value.push(qe(z.value,V,_,H.value,new Date().toISOString())),z.value=null,E(I("Contradiction resolved"),"success")},_e=V=>{const _=We(y.value,V,H.value,new Date().toISOString());t.value.timeline=t.value.timeline.map(U=>U.id===_.id?_:U),y.value=_,E(I("Change saved as a new version"),"success")},Ce=V=>{t.value.timeline=[Fe(V,H.value,new Date().toISOString()),...t.value.timeline],$.value=!1,E(I("Entry added to the timeline"),"success")},Ie=V=>{t.value=He(t.value,V),g.value=!1,E(I("Handover imported into the board"),"success")};return(V,_)=>(n(),o(T,null,[m(b(Se),{title:V.$t("Customer Command Center")},null,8,["title"]),s("div",Tl,[m(st,{"active-stream":l.value,"onUpdate:activeStream":_[0]||(_[0]=U=>l.value=U),"active-view":c.value,"onUpdate:activeView":_[1]||(_[1]=U=>c.value=U),customer:t.value.customer,streams:t.value.streams},null,8,["active-stream","active-view","customer","streams"]),c.value==="overview"?(n(),o("div",Ul,[s("div",Ol,[m(ol,{handover:t.value.handover,onReview:_[2]||(_[2]=U=>g.value=!0)},null,8,["handover"]),m(lt,{summary:u.value},null,8,["summary"])]),s("div",Al,[m(_t,{goals:x.value,people:t.value.people},null,8,["goals","people"]),m(Is,{entries:v.value,people:t.value.people,onOpen:_[3]||(_[3]=U=>y.value=U),onShowAll:_[4]||(_[4]=U=>c.value="timeline")},null,8,["entries","people"]),m(Ms,{purchased:f.value,upsell:l.value===b(K)?t.value.modules.upsell:[],streams:t.value.streams,people:t.value.people},null,8,["purchased","upsell","streams","people"])]),s("div",Vl,[m(Et,{steps:p.value,people:t.value.people,streams:t.value.streams},null,8,["steps","people","streams"]),m(Gt,{decisions:k.value,"resolved-ids":r.value,people:t.value.people,onReview:_[5]||(_[5]=U=>z.value=U)},null,8,["decisions","resolved-ids","people"]),m(ps,{notes:t.value.internalNotes},null,8,["notes"]),m($s,{people:t.value.people,"customer-name":t.value.customer.name},null,8,["people","customer-name"])])])):(n(),o("div",Nl,[m(aa,{entries:v.value,people:t.value.people,"customer-name":t.value.customer.name,onOpen:_[6]||(_[6]=U=>y.value=U),onAdd:_[7]||(_[7]=U=>$.value=!0)},null,8,["entries","people","customer-name"])]))]),m(Ea,{open:y.value!==null,entry:y.value,people:t.value.people,streams:t.value.streams,"onUpdate:open":_[8]||(_[8]=U=>{U||(y.value=null)}),onSave:_e},null,8,["open","entry","people","streams"]),m(Dl,{open:g.value,"onUpdate:open":_[9]||(_[9]=U=>g.value=U),handover:t.value.handover,people:t.value.people,onConfirm:Ie},null,8,["open","handover","people"]),m(Qa,{open:$.value,"onUpdate:open":_[10]||(_[10]=U=>$.value=U),streams:t.value.streams,onSave:Ce},null,8,["open","streams"]),m(is,{open:z.value!==null,contradiction:z.value,"onUpdate:open":_[11]||(_[11]=U=>{U||(z.value=null)}),onResolve:we},null,8,["open","contradiction"])],64))}};export{Zl as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.