1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[27031],{27031:function(e,t,a){a.d(t,{em:function(){return _},lw:function(){return M},Wk:function(){return P},lU:function(){return F},L6:function(){return z},pZ:function(){return W},QO:function(){return A},Ry:function(){return Z},vV:function(){return L},hh:function(){return $},Og:function(){return R},Bo:function(){return q},Y2:function(){return j},WX:function(){return y},eA:function(){return v}});var n=a(57437),r=a(2265),s=a(26799),l=a(93448),i=a(12381),o=a(74291),c=a(23675),d=a(71488),u=a(31810),m=a(37157),p=a(14438),h=a(55788),b=a(67044);let f=r.memo(function(e){let{email:t,content:a,onMarked:s,helpfulState:l}=e,{t:f}=(0,h.$G)(),[g,x]=(0,r.useState)(!1),[y,w]=(0,r.useState)(null),[j,v]=(0,r.useState)(""),[k,N]=(0,r.useState)(""),[S,C]=(0,r.useState)(!1),T="positive"===l,I="negative"===l,D=async e=>{null==s||s(e),w(e);try{let n=new FormData;n.append("email",t),n.append("feedbackType",e),n.append("comment",""),n.append("content",a||"");let r=await (0,b.h)("/api/crm/mark",{method:"POST",body:n});(await r.json()).success}catch(e){}},_=async()=>{if(y){C(!0);try{let e=new FormData;e.append("email",t),e.append("feedbackType",y),e.append("content",a||""),"negative"===y?(["It didn't relate to my question","It was harmful or unsafe","It wasn't useful"].includes(j)?(e.append("comment",j),e.append("presetOption",j)):e.append("comment",""),e.append("betterAnswer",k||"")):e.append("comment",j);let n=await (0,b.h)("/api/crm/mark",{method:"POST",body:e});(await n.json()).success?("positive"===y?p.Am.success(f("Thank you for your detailed feedback!")):p.Am.success(f("Feedback submitted successfully, thank you!")),x(!1),v(""),w(null)):p.Am.error(f("Submission failed, please try again"))}catch(e){p.Am.error(f("Submission failed, please try again"))}finally{C(!1)}}};return(0,n.jsx)(d.TooltipProvider,{children:(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsxs)("div",{className:"flex gap-2 mt-2 flex-row items-center",children:[(0,n.jsxs)(d.Tooltip,{children:[(0,n.jsx)(d.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(i.z,{variant:"outline",size:"sm",onClick:()=>D("positive"),className:"flex items-center w-8 h-8 p-0 ".concat(T?"text-brand hover:text-brand/80 bg-brand/10 border-brand":"text-gray-500 hover:text-gray-700 hover:bg-gray-50"),disabled:T,children:(0,n.jsx)(u.Z,{className:"w-4 h-4"})})}),(0,n.jsx)(d.TooltipContent,{side:"top",className:"bg-gray-900 text-white border-gray-700",children:(0,n.jsx)("p",{children:T?f("Liked"):f("Helpful")})})]}),(0,n.jsxs)(d.Tooltip,{children:[(0,n.jsx)(d.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(i.z,{variant:"outline",size:"sm",onClick:()=>D("negative"),className:"flex items-center w-8 h-8 p-0 ".concat(I?"text-brand hover:text-brand/80 bg-brand/10 border-brand":"text-gray-500 hover:text-gray-700 hover:bg-gray-50"),disabled:I,children:(0,n.jsx)(m.Z,{className:"w-4 h-4"})})}),(0,n.jsx)(d.TooltipContent,{side:"top",className:"bg-gray-900 text-white border-gray-700",children:(0,n.jsx)("p",{children:I?f("Feedback sent"):f("Not helpful")})})]}),(T||I)&&(0,n.jsx)("div",{children:(0,n.jsx)("button",{onClick:()=>{w(l),x(!0)},className:"text-brand hover:text-brand/80 underline text-sm",children:f("Tell us more")})})]}),(0,n.jsx)(o.Dialog,{open:g,onOpenChange:x,children:(0,n.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,n.jsx)(o.fK,{children:(0,n.jsx)(o.$N,{children:f("Leave feedback")})}),(0,n.jsxs)("div",{className:"space-y-4",children:["positive"===y?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-gray-600",children:f("We're happy to know that helped! We value your feedback, so feel free to tell us more about your positive experience with the assistant.")}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium mb-2 block",children:f("What did you like about the assistant or its response?")}),(0,n.jsx)(c.g,{value:j,onChange:e=>v(e.target.value),placeholder:"",className:"min-h-[100px]"})]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-gray-600",children:f("We're working hard to improve the quality of our answers. You can help by answering the following questions:")}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium mb-3 block",children:f("What was wrong with the answer provided?")}),(0,n.jsxs)("div",{className:"space-y-2 mb-4",children:[(0,n.jsx)("button",{type:"button",onClick:()=>v("It didn't relate to my question"),className:"w-full p-3 text-left border rounded-lg transition-colors ".concat("It didn't relate to my question"===j?"border-blue-500 bg-blue-50 text-blue-700":"border-gray-300 hover:bg-gray-50"),children:f("It didn't relate to my question")}),(0,n.jsx)("button",{type:"button",onClick:()=>v("It was harmful or unsafe"),className:"w-full p-3 text-left border rounded-lg transition-colors ".concat("It was harmful or unsafe"===j?"border-blue-500 bg-blue-50 text-blue-700":"border-gray-300 hover:bg-gray-50"),children:f("It was harmful or unsafe")}),(0,n.jsx)("button",{type:"button",onClick:()=>v("It wasn't useful"),className:"w-full p-3 text-left border rounded-lg transition-colors ".concat("It wasn't useful"===j?"border-blue-500 bg-blue-50 text-blue-700":"border-gray-300 hover:bg-gray-50"),children:f("It wasn't useful")})]})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("label",{className:"text-sm font-medium mb-2 block",children:[f("What would have been a better answer?")," ",(0,n.jsxs)("span",{className:"text-gray-500",children:["(",f("optional"),")"]})]}),(0,n.jsx)(c.g,{value:k,onChange:e=>N(e.target.value),placeholder:"",className:"min-h-[100px]"})]})]}),(0,n.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,n.jsx)(i.z,{variant:"outline",onClick:()=>x(!1),disabled:S,children:f("Cancel")}),(0,n.jsx)(i.z,{onClick:_,disabled:S,className:"positive"===y?"bg-green-600 hover:bg-green-700":"bg-blue-600 hover:bg-blue-700",children:S?f("Submitting..."):f("Submit Feedback")})]})]})]})})]})})});var g=a(59625),x=a(14696);let y=(0,g.Ue)((e,t)=>({helpfulStates:{},userEmail:"",setUserEmail:t=>{e({userEmail:t})},updateHelpfulState:(t,a)=>{e(e=>({helpfulStates:{...e.helpfulStates,[t]:a}})),(async()=>{try{let e=(await (0,x.b6)()).find(e=>e.id===t);if(e){let t={...e,helpfulState:a};await (0,x.uk)(t)}}catch(e){}})()},initializeHelpfulStates:t=>{let a={};
1t.forEach(e=>{e.helpfulState&&(a[e.id]=e.helpfulState)}),e({helpfulStates:a})},getHelpfulState:e=>t().helpfulStates[e]})),w=e=>{let{getHelpfulState:t,updateHelpfulState:a}=y(),n=t(e);return{helpfulState:n,updateHelpfulState:(0,r.useCallback)(t=>a(e,t),[e,a]),isHelpful:"positive"===n,isNotHelpful:"negative"===n,hasState:!!n}},j=()=>{let{initializeHelpfulStates:e}=y();return{initializeHelpfulStates:e}},v=()=>{let{userEmail:e,setUserEmail:t}=y();return{userEmail:e,setUserEmail:t}},k=()=>y(e=>e.userEmail);var N=a(48736);let S=[{name:"Jay",image:"https://cdn.llamagen.ai/web_public/media/under-30kb/team/jay-mini-fdcacf4548.webp",title:"Head of Support"},{image:"https://cdn.llamagen.ai/web_public/media/thumbnails/web-public-team-monica-20241211-w40.webp"},{name:"Velika",image:"https://cdn.llamagen.ai/web_public/media/under-30kb/team/velika-fe3f013f24.webp",title:"Head of Product Design"}],C=e=>e.replace(/(https?:\/\/[^\s]+)/g,'<a href="$1" target="_blank" rel="noopener noreferrer" class="text-blue-600 hover:text-blue-800 underline">$1</a>'),T=r.memo(e=>{let{msg:t}=e,{helpfulState:a,updateHelpfulState:r}=w(t.id),i=k(),o=t.attachments||[],c=t.text.trim().length>0,d=()=>0===o.length?null:(0,n.jsx)("div",{className:(0,l.cn)("mt-2 grid gap-2","user"===t.sender?"justify-items-end":"justify-items-start"),children:o.map(e=>{let t=e.type.startsWith("image/");return(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:(0,l.cn)("block overflow-hidden border border-black/10 bg-white text-left transition hover:border-black/20",t?"max-w-[240px] rounded-[20px]":"max-w-[260px] rounded-2xl px-3 py-2"),children:t?(0,n.jsx)("img",{src:e.url,alt:e.name,className:"max-h-[220px] w-full object-cover",loading:"lazy"}):(0,n.jsxs)("span",{className:"flex items-center gap-2 text-sm text-[#2D2D2D]",children:[(0,n.jsx)(N.Z,{className:"h-4 w-4 flex-none text-gray-500"}),(0,n.jsx)("span",{className:"min-w-0 truncate",children:e.name})]})},e.id)})});return(0,n.jsxs)(s.E.div,{initial:{opacity:0,y:15,scale:.98},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-10,scale:.98},transition:{type:"spring",stiffness:500,damping:30,mass:.8,duration:.25},className:"flex mb-4 ".concat("user"===t.sender?"justify-end":"justify-start"),children:["agent"===t.sender&&(0,n.jsx)("div",{className:"w-6 h-6 rounded-full overflow-hidden mr-2 flex-shrink-0",children:(0,n.jsx)("img",{src:S[0].image,alt:"Agent",width:24,height:24,className:"rounded-full"})}),(0,n.jsx)("div",{className:"user"===t.sender?"flex max-w-[82%] flex-col items-end":"flex-1",children:"agent"===t.sender&&t.isAIReply?(0,n.jsxs)(n.Fragment,{children:[c&&(0,n.jsx)("div",{className:(0,l.cn)("max-w-[80%] rounded-[20px] px-4 py-3 text-[15px]","bg-[#f5f5f5] text-[#2D2D2D] rounded-bl-[4px]"),dangerouslySetInnerHTML:{__html:C(t.text)}}),d(),(0,n.jsx)(f,{content:t.text,email:i,helpfulState:a,onMarked:r})]}):(0,n.jsxs)(n.Fragment,{children:["user"===t.sender&&d(),c&&(0,n.jsx)("div",{className:(0,l.cn)("rounded-[20px] text-[15px]","user"===t.sender?"mt-2 bg-[#f1f1f1] text-[#111111] relative text-left py-3 px-4 max-w-[280px] rounded-br-[4px]":"bg-[#f5f5f5] text-[#2D2D2D] rounded-bl-[4px] max-w-[80%] px-4 py-3"),dangerouslySetInnerHTML:{__html:C(t.text)}}),"agent"===t.sender&&d()]})})]},t.id)},(e,t)=>e.msg.id===t.msg.id&&e.msg.text===t.msg.text&&e.msg.sender===t.msg.sender&&e.msg.isAIReply===t.msg.isAIReply&&e.msg.attachments===t.msg.attachments);T.displayName="MessageItem";var I=a(48614);let D=0,_=r.memo(e=>{let{messages:t}=e,[a,s]=(0,r.useState)(0);(0,r.useEffect)(()=>(E(()=>{D=0,s(e=>e+1)}),()=>{O()}),[]);let{renderedMessages:l,newMessages:i}=(0,r.useMemo)(()=>({renderedMessages:t.slice(0,D),newMessages:t.slice(D)}),[t,a]);return(0,r.useEffect)(()=>{if(i.length>0){let e=setTimeout(()=>{D=t.length},300);return()=>clearTimeout(e)}},[i.length,t.length]),(0,n.jsxs)(n.Fragment,{children:[l.map(e=>(0,n.jsx)(T,{msg:e},e.id)),(0,n.jsx)(I.M,{initial:!1,children:i.map(e=>(0,n.jsx)(T,{msg:e},e.id))})]})}),A=()=>{D=0,null==H||H()},H=null,E=e=>{H=e},O=()=>{H=null},F=[{name:"Jay",image:"https://cdn.llamagen.ai/web_public/media/under-30kb/team/jay-mini-fdcacf4548.
1webp",title:"Head of Support"},{image:"https://cdn.llamagen.ai/web_public/media/thumbnails/web-public-team-monica-20241211-w40.webp"},{name:"Velika",image:"https://cdn.llamagen.ai/web_public/media/under-30kb/team/velika-fe3f013f24.webp",title:"Head of Product Design"}],M="https://help.llamagen.ai/",P="llamagen:open-customer-chat",z={initial:{scale:.8,opacity:0},animate:{scale:1,opacity:1,transition:{type:"spring",stiffness:300,damping:20}},exit:{scale:.8,opacity:0,transition:{duration:.2}},hover:{scale:1.05,transition:{duration:.2}},tap:{scale:.95,transition:{duration:.1}}},W={hidden:{opacity:0,y:20,scale:.95},visible:{opacity:1,y:0,scale:1,transition:{type:"spring",stiffness:300,damping:25,delayChildren:.1,staggerChildren:.05}},exit:{opacity:0,y:20,scale:.95,transition:{duration:.2}}},q={open:{rotate:0},closed:{rotate:180}},L=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),Z=e=>{if(!e)try{return new(window.AudioContext||window.webkitAudioContext)}catch(e){return null}return e},$=async e=>{try{let t=Z(e);if(!t)return;"suspended"===t.state&&await t.resume();let a=new Audio("https://s.llamagen.ai/u/clr8t07zt0000l208uya2628n/covers/submit.mp3");a.volume=.5,a.preload="auto";let n=a.play();void 0!==n&&n.then(()=>{}).catch(e=>{})}catch(e){}},R=function(e){var t;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"smooth";null===(t=e.current)||void 0===t||t.scrollIntoView({behavior:a})}},14696:function(e,t,a){a.d(t,{F8:function(){return m},OZ:function(){return f},_8:function(){return h},b6:function(){return u},i6:function(){return p},uk:function(){return d},wo:function(){return b}});var n=a(90960);let r="messages",s="askaiMessages",l="artworkMessages",i="customerChatState",o="state",c=window.indexedDB?(0,n.X3)("LlamaGenCustomerChatDB",4,{upgrade(e){e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"id"}),e.objectStoreNames.contains(s)||e.createObjectStore(s,{keyPath:"id"}),e.objectStoreNames.contains(l)||e.createObjectStore(l,{keyPath:"id"}).createIndex("by_artwork","artworkId"),e.objectStoreNames.contains(i)||e.createObjectStore(i,{keyPath:"key"})}}):Promise.resolve(null),d=async e=>{try{let t=await c;t&&await t.put(r,e)}catch(e){}},u=async()=>{try{let e=await c;if(!e)return[];let t=await e.getAll(r);return t.forEach(e=>e.timestamp=new Date(e.timestamp)),t.sort((e,t)=>e.timestamp.getTime()-t.timestamp.getTime()),t}catch(e){return[]}},m=async(e,t,a)=>{try{let n=await c;if(!n)return!1;let s=n.transaction([i,r],"readwrite"),l=s.objectStore(i),d=s.objectStore(r),u=new Date().toISOString(),m=new Map(a.map(e=>[e.id,e])),p=[l.put({key:o,sessions:e,activeSessionId:t,updatedAt:u}),d.clear(),...Array.from(m.values()).map(e=>d.put(e))];return await Promise.all(p),await s.done,!0}catch(e){return!1}},p=async()=>{try{let e=await c;if(!e)return null;return await e.get(i,o)||null}catch(e){return null}},h=async e=>{try{let t=await c;t&&await t.put(s,e)}catch(e){}},b=async()=>{try{let e=await c;if(!e)return[];let t=await e.getAll(s);return t.forEach(e=>e.timestamp=new Date(e.timestamp)),t.sort((e,t)=>e.timestamp.getTime()-t.timestamp.getTime()),t}catch(e){return[]}},f=async()=>{try{let e=await c;e&&await e.clear(s)}catch(e){}}}}]);
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.