@doderasoftware/restify-ai 0.1.0-beta.2 → 0.1.0-beta.3

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.
@@ -57,7 +57,7 @@ ${e}</tr>
57
57
  Please report this to https://github.com/markedjs/marked.`,e){const s="<p>An error occurred:</p><pre>"+ie(r.message+"",!0)+"</pre>";return n?Promise.resolve(s):s}if(n)return Promise.reject(r);throw r}}}const Ne=new wr;function _(o,e){return Ne.parse(o,e)}_.options=_.setOptions=function(o){return Ne.setOptions(o),_.defaults=Ne.defaults,hn(_.defaults),_},_.getDefaults=Mt,_.defaults=Me,_.use=function(...o){return Ne.use(...o),_.defaults=Ne.defaults,hn(_.defaults),_},_.walkTokens=function(o,e){return Ne.walkTokens(o,e)},_.parseInline=Ne.parseInline,_.Parser=ce,_.parser=ce.parse,_.Renderer=lt,_.TextRenderer=zt,_.Lexer=le,_.lexer=le.lex,_.Tokenizer=rt,_.Hooks=Ke,_.parse=_,_.options,_.setOptions,_.use,_.walkTokens,_.parseInline,ce.parse,le.lex;/*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */const{entries:Bn,setPrototypeOf:Ln,isFrozen:br,getPrototypeOf:Er,getOwnPropertyDescriptor:Cr}=Object;let{freeze:ne,seal:ue,create:$t}=Object,{apply:_t,construct:Ot}=typeof Reflect<"u"&&Reflect;ne||(ne=function(e){return e}),ue||(ue=function(e){return e}),_t||(_t=function(e,n){for(var r=arguments.length,s=new Array(r>2?r-2:0),a=2;a<r;a++)s[a-2]=arguments[a];return e.apply(n,s)}),Ot||(Ot=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return new e(...r)});const ct=re(Array.prototype.forEach),Sr=re(Array.prototype.lastIndexOf),Dn=re(Array.prototype.pop),Ge=re(Array.prototype.push),Tr=re(Array.prototype.splice),ut=re(String.prototype.toLowerCase),Pt=re(String.prototype.toString),Vt=re(String.prototype.match),Qe=re(String.prototype.replace),Ar=re(String.prototype.indexOf),Mr=re(String.prototype.trim),de=re(Object.prototype.hasOwnProperty),oe=re(RegExp.prototype.test),Ze=Nr(TypeError);function re(o){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return _t(o,e,r)}}function Nr(o){return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return Ot(o,n)}}function I(o,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ut;Ln&&Ln(o,null);let r=e.length;for(;r--;){let s=e[r];if(typeof s=="string"){const a=n(s);a!==s&&(br(e)||(e[r]=a),s=a)}o[s]=!0}return o}function Rr(o){for(let e=0;e<o.length;e++)de(o,e)||(o[e]=null);return o}function ge(o){const e=$t(null);for(const[n,r]of Bn(o))de(o,n)&&(Array.isArray(r)?e[n]=Rr(r):r&&typeof r=="object"&&r.constructor===Object?e[n]=ge(r):e[n]=r);return e}function Ye(o,e){for(;o!==null;){const r=Cr(o,e);if(r){if(r.get)return re(r.get);if(typeof r.value=="function")return re(r.value)}o=Er(o)}function n(){return null}return n}const In=ne(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Ft=ne(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Ht=ne(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Br=ne(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Ut=ne(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Lr=ne(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),zn=ne(["#text"]),$n=ne(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),qt=ne(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),_n=ne(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),dt=ne(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Dr=ue(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Ir=ue(/<%[\w\W]*|[\w\W]*%>/gm),zr=ue(/\$\{[\w\W]*/gm),$r=ue(/^data-[\-\w.\u00B7-\uFFFF]+$/),_r=ue(/^aria-[\-\w]+$/),On=ue(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Or=ue(/^(?:\w+script|data):/i),Pr=ue(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Pn=ue(/^html$/i),Vr=ue(/^[a-z][.\w]*(-[.\w]+)+$/i);var Vn=Object.freeze({__proto__:null,ARIA_ATTR:_r,ATTR_WHITESPACE:Pr,CUSTOM_ELEMENT:Vr,DATA_ATTR:$r,DOCTYPE_NAME:Pn,ERB_EXPR:Ir,IS_ALLOWED_URI:On,IS_SCRIPT_OR_DATA:Or,MUSTACHE_EXPR:Dr,TMPLIT_EXPR:zr});const Xe={element:1,text:3,progressingInstruction:7,comment:8,document:9},Fr=function(){return typeof window>"u"?null:window},Hr=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const s="data-tt-policy-suffix";n&&n.hasAttribute(s)&&(r=n.getAttribute(s));const a="dompurify"+(r?"#"+r:"");try{return e.createPolicy(a,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},Fn=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Hn(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Fr();const e=R=>Hn(R);if(e.version="3.3.0",e.removed=[],!o||!o.document||o.document.nodeType!==Xe.document||!o.Element)return e.isSupported=!1,e;let{document:n}=o;const r=n,s=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:i,Node:l,Element:d,NodeFilter:u,NamedNodeMap:p=o.NamedNodeMap||o.MozNamedAttrMap,HTMLFormElement:h,DOMParser:x,trustedTypes:y}=o,f=d.prototype,E=Ye(f,"cloneNode"),g=Ye(f,"remove"),m=Ye(f,"nextSibling"),b=Ye(f,"childNodes"),C=Ye(f,"parentNode");if(typeof i=="function"){const R=n.createElement("template");R.content&&R.content.ownerDocument&&(n=R.content.ownerDocument)}let w,z="";const{implementation:$,createNodeIterator:F,createDocumentFragment:S,getElementsByTagName:T}=n,{importNode:N}=r;let D=Fn();e.isSupported=typeof Bn=="function"&&typeof C=="function"&&$&&$.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:M,ERB_EXPR:Q,TMPLIT_EXPR:fe,DATA_ATTR:Re,ARIA_ATTR:ye,IS_SCRIPT_OR_DATA:Be,ATTR_WHITESPACE:pt,CUSTOM_ELEMENT:Wt}=Vn;let{IS_ALLOWED_URI:ft}=Vn,j=null;const Je=I({},[...In,...Ft,...Ht,...Ut,...zn]);let Z=null;const mt=I({},[...$n,...qt,..._n,...dt]);let v=Object.seal($t(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Le=null,ze=null;const ke=Object.seal($t(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ht=!0,$e=!0,L=!1,V=!0,H=!1,G=!0,W=!1,K=!1,se=!1,me=!1,gt=!1,yt=!1,to=!0,no=!1;const _a="user-content-";let Kt=!0,et=!1,_e={},Oe=null;const oo=I({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let ro=null;const so=I({},["audio","video","img","source","image","track"]);let Gt=null;const ao=I({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),kt="http://www.w3.org/1998/Math/MathML",xt="http://www.w3.org/2000/svg",xe="http://www.w3.org/1999/xhtml";let Pe=xe,Qt=!1,Zt=null;const Oa=I({},[kt,xt,xe],Pt);let wt=I({},["mi","mo","mn","ms","mtext"]),bt=I({},["annotation-xml"]);const Pa=I({},["title","style","font","a","script"]);let tt=null;const Va=["application/xhtml+xml","text/html"],Fa="text/html";let X=null,Ve=null;const Ha=n.createElement("form"),io=function(c){return c instanceof RegExp||c instanceof Function},Yt=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ve&&Ve===c)){if((!c||typeof c!="object")&&(c={}),c=ge(c),tt=Va.indexOf(c.PARSER_MEDIA_TYPE)===-1?Fa:c.PARSER_MEDIA_TYPE,X=tt==="application/xhtml+xml"?Pt:ut,j=de(c,"ALLOWED_TAGS")?I({},c.ALLOWED_TAGS,X):Je,Z=de(c,"ALLOWED_ATTR")?I({},c.ALLOWED_ATTR,X):mt,Zt=de(c,"ALLOWED_NAMESPACES")?I({},c.ALLOWED_NAMESPACES,Pt):Oa,Gt=de(c,"ADD_URI_SAFE_ATTR")?I(ge(ao),c.ADD_URI_SAFE_ATTR,X):ao,ro=de(c,"ADD_DATA_URI_TAGS")?I(ge(so),c.ADD_DATA_URI_TAGS,X):so,Oe=de(c,"FORBID_CONTENTS")?I({},c.FORBID_CONTENTS,X):oo,Le=de(c,"FORBID_TAGS")?I({},c.FORBID_TAGS,X):ge({}),ze=de(c,"FORBID_ATTR")?I({},c.FORBID_ATTR,X):ge({}),_e=de(c,"USE_PROFILES")?c.USE_PROFILES:!1,ht=c.ALLOW_ARIA_ATTR!==!1,$e=c.ALLOW_DATA_ATTR!==!1,L=c.ALLOW_UNKNOWN_PROTOCOLS||!1,V=c.ALLOW_SELF_CLOSE_IN_ATTR!==!1,H=c.SAFE_FOR_TEMPLATES||!1,G=c.SAFE_FOR_XML!==!1,W=c.WHOLE_DOCUMENT||!1,me=c.RETURN_DOM||!1,gt=c.RETURN_DOM_FRAGMENT||!1,yt=c.RETURN_TRUSTED_TYPE||!1,se=c.FORCE_BODY||!1,to=c.SANITIZE_DOM!==!1,no=c.SANITIZE_NAMED_PROPS||!1,Kt=c.KEEP_CONTENT!==!1,et=c.IN_PLACE||!1,ft=c.ALLOWED_URI_REGEXP||On,Pe=c.NAMESPACE||xe,wt=c.MATHML_TEXT_INTEGRATION_POINTS||wt,bt=c.HTML_INTEGRATION_POINTS||bt,v=c.CUSTOM_ELEMENT_HANDLING||{},c.CUSTOM_ELEMENT_HANDLING&&io(c.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(v.tagNameCheck=c.CUSTOM_ELEMENT_HANDLING.tagNameCheck),c.CUSTOM_ELEMENT_HANDLING&&io(c.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(v.attributeNameCheck=c.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),c.CUSTOM_ELEMENT_HANDLING&&typeof c.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(v.allowCustomizedBuiltInElements=c.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),H&&($e=!1),gt&&(me=!0),_e&&(j=I({},zn),Z=[],_e.html===!0&&(I(j,In),I(Z,$n)),_e.svg===!0&&(I(j,Ft),I(Z,qt),I(Z,dt)),_e.svgFilters===!0&&(I(j,Ht),I(Z,qt),I(Z,dt)),_e.mathMl===!0&&(I(j,Ut),I(Z,_n),I(Z,dt))),c.ADD_TAGS&&(typeof c.ADD_TAGS=="function"?ke.tagCheck=c.ADD_TAGS:(j===Je&&(j=ge(j)),I(j,c.ADD_TAGS,X))),c.ADD_ATTR&&(typeof c.ADD_ATTR=="function"?ke.attributeCheck=c.ADD_ATTR:(Z===mt&&(Z=ge(Z)),I(Z,c.ADD_ATTR,X))),c.ADD_URI_SAFE_ATTR&&I(Gt,c.ADD_URI_SAFE_ATTR,X),c.FORBID_CONTENTS&&(Oe===oo&&(Oe=ge(Oe)),I(Oe,c.FORBID_CONTENTS,X)),Kt&&(j["#text"]=!0),W&&I(j,["html","head","body"]),j.table&&(I(j,["tbody"]),delete Le.tbody),c.TRUSTED_TYPES_POLICY){if(typeof c.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ze('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof c.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ze('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=c.TRUSTED_TYPES_POLICY,z=w.createHTML("")}else w===void 0&&(w=Hr(y,s)),w!==null&&typeof z=="string"&&(z=w.createHTML(""));ne&&ne(c),Ve=c}},lo=I({},[...Ft,...Ht,...Br]),co=I({},[...Ut,...Lr]),Ua=function(c){let k=C(c);(!k||!k.tagName)&&(k={namespaceURI:Pe,tagName:"template"});const A=ut(c.tagName),U=ut(k.tagName);return Zt[c.namespaceURI]?c.namespaceURI===xt?k.namespaceURI===xe?A==="svg":k.namespaceURI===kt?A==="svg"&&(U==="annotation-xml"||wt[U]):!!lo[A]:c.namespaceURI===kt?k.namespaceURI===xe?A==="math":k.namespaceURI===xt?A==="math"&&bt[U]:!!co[A]:c.namespaceURI===xe?k.namespaceURI===xt&&!bt[U]||k.namespaceURI===kt&&!wt[U]?!1:!co[A]&&(Pa[A]||!lo[A]):!!(tt==="application/xhtml+xml"&&Zt[c.namespaceURI]):!1},he=function(c){Ge(e.removed,{element:c});try{C(c).removeChild(c)}catch{g(c)}},De=function(c,k){try{Ge(e.removed,{attribute:k.getAttributeNode(c),from:k})}catch{Ge(e.removed,{attribute:null,from:k})}if(k.removeAttribute(c),c==="is")if(me||gt)try{he(k)}catch{}else try{k.setAttribute(c,"")}catch{}},uo=function(c){let k=null,A=null;if(se)c="<remove></remove>"+c;else{const Y=Vt(c,/^[\r\n\t ]+/);A=Y&&Y[0]}tt==="application/xhtml+xml"&&Pe===xe&&(c='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+c+"</body></html>");const U=w?w.createHTML(c):c;if(Pe===xe)try{k=new x().parseFromString(U,tt)}catch{}if(!k||!k.documentElement){k=$.createDocument(Pe,"template",null);try{k.documentElement.innerHTML=Qt?z:U}catch{}}const te=k.body||k.documentElement;return c&&A&&te.insertBefore(n.createTextNode(A),te.childNodes[0]||null),Pe===xe?T.call(k,W?"html":"body")[0]:W?k.documentElement:te},po=function(c){return F.call(c.ownerDocument||c,c,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Xt=function(c){return c instanceof h&&(typeof c.nodeName!="string"||typeof c.textContent!="string"||typeof c.removeChild!="function"||!(c.attributes instanceof p)||typeof c.removeAttribute!="function"||typeof c.setAttribute!="function"||typeof c.namespaceURI!="string"||typeof c.insertBefore!="function"||typeof c.hasChildNodes!="function")},fo=function(c){return typeof l=="function"&&c instanceof l};function we(R,c,k){ct(R,A=>{A.call(e,c,k,Ve)})}const mo=function(c){let k=null;if(we(D.beforeSanitizeElements,c,null),Xt(c))return he(c),!0;const A=X(c.nodeName);if(we(D.uponSanitizeElement,c,{tagName:A,allowedTags:j}),G&&c.hasChildNodes()&&!fo(c.firstElementChild)&&oe(/<[/\w!]/g,c.innerHTML)&&oe(/<[/\w!]/g,c.textContent)||c.nodeType===Xe.progressingInstruction||G&&c.nodeType===Xe.comment&&oe(/<[/\w]/g,c.data))return he(c),!0;if(!(ke.tagCheck instanceof Function&&ke.tagCheck(A))&&(!j[A]||Le[A])){if(!Le[A]&&go(A)&&(v.tagNameCheck instanceof RegExp&&oe(v.tagNameCheck,A)||v.tagNameCheck instanceof Function&&v.tagNameCheck(A)))return!1;if(Kt&&!Oe[A]){const U=C(c)||c.parentNode,te=b(c)||c.childNodes;if(te&&U){const Y=te.length;for(let ae=Y-1;ae>=0;--ae){const be=E(te[ae],!0);be.__removalCount=(c.__removalCount||0)+1,U.insertBefore(be,m(c))}}}return he(c),!0}return c instanceof d&&!Ua(c)||(A==="noscript"||A==="noembed"||A==="noframes")&&oe(/<\/no(script|embed|frames)/i,c.innerHTML)?(he(c),!0):(H&&c.nodeType===Xe.text&&(k=c.textContent,ct([M,Q,fe],U=>{k=Qe(k,U," ")}),c.textContent!==k&&(Ge(e.removed,{element:c.cloneNode()}),c.textContent=k)),we(D.afterSanitizeElements,c,null),!1)},ho=function(c,k,A){if(to&&(k==="id"||k==="name")&&(A in n||A in Ha))return!1;if(!($e&&!ze[k]&&oe(Re,k))){if(!(ht&&oe(ye,k))){if(!(ke.attributeCheck instanceof Function&&ke.attributeCheck(k,c))){if(!Z[k]||ze[k]){if(!(go(c)&&(v.tagNameCheck instanceof RegExp&&oe(v.tagNameCheck,c)||v.tagNameCheck instanceof Function&&v.tagNameCheck(c))&&(v.attributeNameCheck instanceof RegExp&&oe(v.attributeNameCheck,k)||v.attributeNameCheck instanceof Function&&v.attributeNameCheck(k,c))||k==="is"&&v.allowCustomizedBuiltInElements&&(v.tagNameCheck instanceof RegExp&&oe(v.tagNameCheck,A)||v.tagNameCheck instanceof Function&&v.tagNameCheck(A))))return!1}else if(!Gt[k]){if(!oe(ft,Qe(A,pt,""))){if(!((k==="src"||k==="xlink:href"||k==="href")&&c!=="script"&&Ar(A,"data:")===0&&ro[c])){if(!(L&&!oe(Be,Qe(A,pt,"")))){if(A)return!1}}}}}}}return!0},go=function(c){return c!=="annotation-xml"&&Vt(c,Wt)},yo=function(c){we(D.beforeSanitizeAttributes,c,null);const{attributes:k}=c;if(!k||Xt(c))return;const A={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Z,forceKeepAttr:void 0};let U=k.length;for(;U--;){const te=k[U],{name:Y,namespaceURI:ae,value:be}=te,Fe=X(Y),Jt=be;let ee=Y==="value"?Jt:Mr(Jt);if(A.attrName=Fe,A.attrValue=ee,A.keepAttr=!0,A.forceKeepAttr=void 0,we(D.uponSanitizeAttribute,c,A),ee=A.attrValue,no&&(Fe==="id"||Fe==="name")&&(De(Y,c),ee=_a+ee),G&&oe(/((--!?|])>)|<\/(style|title|textarea)/i,ee)){De(Y,c);continue}if(Fe==="attributename"&&Vt(ee,"href")){De(Y,c);continue}if(A.forceKeepAttr)continue;if(!A.keepAttr){De(Y,c);continue}if(!V&&oe(/\/>/i,ee)){De(Y,c);continue}H&&ct([M,Q,fe],xo=>{ee=Qe(ee,xo," ")});const ko=X(c.nodeName);if(!ho(ko,Fe,ee)){De(Y,c);continue}if(w&&typeof y=="object"&&typeof y.getAttributeType=="function"&&!ae)switch(y.getAttributeType(ko,Fe)){case"TrustedHTML":{ee=w.createHTML(ee);break}case"TrustedScriptURL":{ee=w.createScriptURL(ee);break}}if(ee!==Jt)try{ae?c.setAttributeNS(ae,Y,ee):c.setAttribute(Y,ee),Xt(c)?he(c):Dn(e.removed)}catch{De(Y,c)}}we(D.afterSanitizeAttributes,c,null)},qa=function R(c){let k=null;const A=po(c);for(we(D.beforeSanitizeShadowDOM,c,null);k=A.nextNode();)we(D.uponSanitizeShadowNode,k,null),mo(k),yo(k),k.content instanceof a&&R(k.content);we(D.afterSanitizeShadowDOM,c,null)};return e.sanitize=function(R){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},k=null,A=null,U=null,te=null;if(Qt=!R,Qt&&(R="<!-->"),typeof R!="string"&&!fo(R))if(typeof R.toString=="function"){if(R=R.toString(),typeof R!="string")throw Ze("dirty is not a string, aborting")}else throw Ze("toString is not a function");if(!e.isSupported)return R;if(K||Yt(c),e.removed=[],typeof R=="string"&&(et=!1),et){if(R.nodeName){const be=X(R.nodeName);if(!j[be]||Le[be])throw Ze("root node is forbidden and cannot be sanitized in-place")}}else if(R instanceof l)k=uo("<!---->"),A=k.ownerDocument.importNode(R,!0),A.nodeType===Xe.element&&A.nodeName==="BODY"||A.nodeName==="HTML"?k=A:k.appendChild(A);else{if(!me&&!H&&!W&&R.indexOf("<")===-1)return w&&yt?w.createHTML(R):R;if(k=uo(R),!k)return me?null:yt?z:""}k&&se&&he(k.firstChild);const Y=po(et?R:k);for(;U=Y.nextNode();)mo(U),yo(U),U.content instanceof a&&qa(U.content);if(et)return R;if(me){if(gt)for(te=S.call(k.ownerDocument);k.firstChild;)te.appendChild(k.firstChild);else te=k;return(Z.shadowroot||Z.shadowrootmode)&&(te=N.call(r,te,!0)),te}let ae=W?k.outerHTML:k.innerHTML;return W&&j["!doctype"]&&k.ownerDocument&&k.ownerDocument.doctype&&k.ownerDocument.doctype.name&&oe(Pn,k.ownerDocument.doctype.name)&&(ae="<!DOCTYPE "+k.ownerDocument.doctype.name+`>
58
58
  `+ae),H&&ct([M,Q,fe],be=>{ae=Qe(ae,be," ")}),w&&yt?w.createHTML(ae):ae},e.setConfig=function(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Yt(R),K=!0},e.clearConfig=function(){Ve=null,K=!1},e.isValidAttribute=function(R,c,k){Ve||Yt({});const A=X(R),U=X(c);return ho(A,U,k)},e.addHook=function(R,c){typeof c=="function"&&Ge(D[R],c)},e.removeHook=function(R,c){if(c!==void 0){const k=Sr(D[R],c);return k===-1?void 0:Tr(D[R],k,1)[0]}return Dn(D[R])},e.removeHooks=function(R){D[R]=[]},e.removeAllHooks=function(){D=Fn()},e}var Ur=Hn();function Un(){return{parseMarkdown:e=>{if(!e||typeof e!="string")return"";const n=ln(e),r=_.parse(n,{async:!1,breaks:!0,gfm:!0});return Ur.sanitize(r,{ALLOWED_TAGS:["p","br","strong","em","b","i","code","pre","ul","ol","li","h1","h2","h3","h4","h5","h6","a","blockquote","span","div","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","class","target","rel","data-mention-id","data-mention-type"],ALLOW_UNKNOWN_PROTOCOLS:!1,FORBID_ATTR:["onerror","onload","onclick","onmouseover"],KEEP_CONTENT:!0})}}}function qr(){let o=null;function e(a){const i=a||document.querySelector("[data-rai-chat-container]");i&&requestAnimationFrame(()=>{i.scrollTo({top:i.scrollHeight,behavior:"smooth"})})}function n(a,i=100){const{scrollTop:l,scrollHeight:d,clientHeight:u}=a;return d-l-u<i}function r(a){a&&(s(),o=new MutationObserver(()=>{(a.scrollTop===0||n(a))&&requestAnimationFrame(()=>{a.scrollTo({top:a.scrollHeight,behavior:"smooth"})})}),o.observe(a,{childList:!0,subtree:!0}))}function s(){o&&(o.disconnect(),o=null)}return t.onUnmounted(()=>{s()}),{scrollToBottom:e,setupAutoScroll:r,cleanupAutoScroll:s}}function vr(){const o=Ce(),e=t.computed(()=>o.error),n=t.computed(()=>{var a,i;return((a=e.value)==null?void 0:a.message)!==null&&((i=e.value)==null?void 0:i.message)!==void 0});return{errorState:e,hasError:n,retry:async()=>await o.retry(),clearError:()=>{o.clearError()}}}function vt(){const o=Ce(),e=t.computed(()=>o.pageContext);function n(a){o.setPageContext(a)}function r(){o.setPageContext(null)}function s(a){const i=o.pageContext;i&&o.setPageContext({...i,...a,metadata:{...i.metadata,...a.metadata}})}return{context:e,setContext:n,clearContext:r,updateContext:s}}const pe=[],qn={id:"default",matcher:()=>!0,priority:0,getSuggestions:()=>{const o=q();return(o==null?void 0:o.defaultSuggestions)||[]}};function jr(){pe.length=0;const o=q();o!=null&&o.suggestionProviders&&pe.push(...o.suggestionProviders),pe.push(qn)}function Wr(o,e){const n=[...pe].sort((r,s)=>(s.priority||0)-(r.priority||0));for(const r of n)if(r.matcher&&r.matcher(o,e)||r.routes&&r.routes.some(a=>a.endsWith("*")?o.startsWith(a.slice(0,-1)):o===a||o.startsWith(a+"/")))return r;return qn}function vn(o,e){pe.length===0&&jr();const n=Wr(o,e),r=e||{pageType:"default",routePath:o};return n.extractContext&&(r.metadata={...r.metadata,...n.extractContext(o)}),n.getSuggestions(r)||[]}function Kr(o){const e=pe.findIndex(n=>n.id===o.id);if(e>=0)pe[e]=o;else{const n=pe.findIndex(r=>r.id==="default");n>=0?pe.splice(n,0,o):pe.push(o)}}const Gr=Kr;function jt(){const{context:o}=vt(),e=Ce(),n=t.computed(()=>{var d;if(e.quota.remaining===0){const u=q();return(u==null?void 0:u.enableSupportMode)!==!1?[{id:"contact-support-quota",title:J("contactSupport"),description:J("noQuota"),prompt:"I need help with my account",className:"rai-suggestion--warning",isSupportRequest:!0}]:[]}const a=((d=o.value)==null?void 0:d.routePath)||(typeof window<"u"?window.location.pathname:"/"),i=vn(a,o.value)||[],l=q();return l!=null&&l.can?i.filter(u=>!(u.permission&&!l.can(u.permission))):i}),r=t.computed(()=>o.value!==null&&o.value.pageType!=="default");function s(a){return typeof a.prompt=="function"?a.prompt(o.value||{pageType:"default"}):a.prompt}return{suggestions:n,hasContextualSuggestions:r,resolvePrompt:s}}function Qr(o,e){const{setContext:n,clearContext:r,updateContext:s}=vt();function a(){if(!e)return{};const l={};for(const[d,u]of Object.entries(e))l[d]=t.isRef(u)?u.value:u;return l}function i(){const l={pageType:o,routePath:typeof window<"u"?window.location.pathname:void 0,metadata:a()};n(l)}return t.onMounted(()=>{i()}),t.onUnmounted(()=>{r()}),e&&t.watch(()=>a(),l=>{s({metadata:l})},{deep:!0}),{setupContext:i}}function Zr(o){const e=o.toLowerCase().split("+");return{key:e.pop()||"",meta:e.includes("cmd")||e.includes("meta")||e.includes("command"),ctrl:e.includes("ctrl")||e.includes("control"),shift:e.includes("shift"),alt:e.includes("alt")||e.includes("option"),mod:e.includes("mod")}}function Yr(o,e){const n=o.key.toLowerCase();if(e.mod){const u=navigator.platform.toUpperCase().indexOf("MAC")>=0||navigator.userAgent.toUpperCase().indexOf("MAC")>=0?o.metaKey:o.ctrlKey,p=e.shift?o.shiftKey:!o.shiftKey,h=e.alt?o.altKey:!o.altKey;return n===e.key&&u&&p&&h}const r=e.meta?o.metaKey:!o.metaKey,s=e.ctrl?o.ctrlKey:!o.ctrlKey,a=e.shift?o.shiftKey:!o.shiftKey,i=e.alt?o.altKey:!o.altKey;let l=r&&s&&a&&i;return(e.meta&&!e.ctrl||!e.meta&&e.ctrl)&&(l=(o.metaKey||o.ctrlKey)&&a&&i),n===e.key&&l}function jn(o){const{onToggle:e,enabled:n=!0}=o,r=t.ref(!1),s=o.shortcut!==void 0?o.shortcut:Te("keyboardShortcut")??"mod+g";if(s===null)return{isActive:r};const a=Zr(s);function i(l){if(!n)return;const d=l.target,u=d.tagName==="INPUT"||d.tagName==="TEXTAREA",p=d.isContentEditable,h=d.closest("[data-ai-input]");if(!((u||p)&&!h)&&Yr(l,a)){l.preventDefault(),l.stopPropagation();const x=q();if(x!=null&&x.canToggle&&!x.canToggle())return;r.value=!r.value,e()}}return t.onMounted(()=>{window.addEventListener("keydown",i,!0)}),t.onUnmounted(()=>{window.removeEventListener("keydown",i,!0)}),{isActive:r}}function Xr(o){const e=Ce();return jn({onToggle:()=>{o?o.value=!o.value:e.showChat=!e.showChat}})}function Jr(o,e){const n=t.ref(J("loadingText"));let r=[];function s(){return[J("loadingText"),J("analyzingText"),J("craftingText")]}function a(){return[0,2e3,5e3]}function i(){r.forEach(u=>clearTimeout(u)),r=[]}function l(){i();const u=e==null?void 0:e(),p=(u==null?void 0:u.messages)??s();n.value=p[0]||J("loadingText")}function d(){i();const u=e==null?void 0:e(),p=(u==null?void 0:u.messages)??s(),h=(u==null?void 0:u.intervals)??a();n.value=p[0]||J("loadingText");let x=0;for(let y=1;y<p.length;y++){x+=h[y]||2e3;const f=y,E=window.setTimeout(()=>{o()&&(n.value=p[f])},x);r.push(E)}}return t.onUnmounted(()=>{i()}),{loadingMessage:n,startLoadingText:d,resetLoadingText:l,clearLoadingTextTimers:i}}function es(o){const{getHistoryLength:e,getStoreLimit:n,getConfig:r,getTexts:s,onStartNewChat:a,onNewChatEmit:i}=o,l=t.ref({showWarning:!1,isReached:!1,pendingMessage:null}),d=t.computed(()=>{var C;return((C=r())==null?void 0:C.limit)??n()}),u=t.computed(()=>{var C;return((C=r())==null?void 0:C.showWarningAt)??d.value-2}),p=t.computed(()=>Math.max(0,d.value-e())),h=t.computed(()=>p.value<=d.value-u.value&&p.value>0),x=t.computed(()=>p.value===0),y=t.computed(()=>{var C,w;return l.value.isReached?((C=s())==null?void 0:C.historyLimitReachedTitle)??"Chat Limit Reached":((w=s())==null?void 0:w.historyLimitWarningTitle)??"Approaching Chat Limit"}),f=t.computed(()=>{var C,w,z,$;return l.value.isReached?((C=r())==null?void 0:C.limitMessage)??((w=s())==null?void 0:w.historyLimitReachedMessage)??"You have reached the maximum number of messages in this conversation. Start a new chat to continue.":((z=r())==null?void 0:z.warningMessage)??(($=s())==null?void 0:$.historyLimitWarningMessage)??`You have ${p.value} message${p.value===1?"":"s"} remaining in this conversation.`});function E(){l.value.showWarning=!1,l.value.isReached=!1,l.value.pendingMessage=null}async function g(){l.value.showWarning=!1;const C=r();if(C!=null&&C.onLimitReached&&!await C.onLimitReached())return l.value.isReached=!1,null;if(a(),i(),l.value.isReached=!1,l.value.pendingMessage){const w=l.value.pendingMessage;return l.value.pendingMessage=null,w}return null}function m(){return x.value?(l.value.isReached=!0,l.value.showWarning=!0,!1):(h.value&&!l.value.showWarning&&(l.value.showWarning=!0),!0)}function b(C){l.value.pendingMessage=C}return{showHistoryLimitWarning:t.computed(()=>l.value.showWarning),historyLimitReached:t.computed(()=>l.value.isReached),historyLimit:d,remainingMessages:p,historyLimitDialogTitle:y,historyLimitDialogMessage:f,dismissHistoryLimitWarning:E,handleHistoryLimitAction:g,checkHistoryLimit:m,setPendingMessage:b}}function ts(){const o=Ce(),e=t.ref([]),n=t.ref(!1),r=t.ref(0),s=Te("maxAttachments")||5,a=Te("maxFileSize")||10*1024*1024,i=Te("acceptedFileTypes")||"image/*,.pdf,.txt,.doc,.docx,.xls,.xlsx,.csv",l=t.computed(()=>e.value.length>0),d=t.computed(()=>e.value.some(S=>S.uploading)),u=t.computed(()=>e.value.length<s);function p(S){return(S.type||"").startsWith("image/")?!0:/(png|jpe?g|gif|webp)$/i.test(S.name)}function h(S){if(S==null)return"";const T=typeof S=="string"?parseInt(S,10):S;return Number.isNaN(T)?"":T>=1024*1024?`${(T/(1024*1024)).toFixed(1)} MB`:T>=1024?`${Math.round(T/1024)} KB`:`${T} B`}function x(S){var fe;const T=crypto.randomUUID(),N=S.type.startsWith("image/")?URL.createObjectURL(S):void 0,D=q(),M=!!((fe=D==null?void 0:D.endpoints)!=null&&fe.uploadFile),Q={id:T,name:S.name,type:S.type,size:S.size,uploading:M,progress:M?0:100,previewUrl:N};e.value.push(Q),M&&y(S,T)}async function y(S,T){try{const N=await o.uploadFile(S),D=e.value.findIndex(M=>M.id===T);if(D===-1)return;if(N){const M=e.value[D].previewUrl;e.value[D]={...e.value[D],id:N.id||T,url:N.url,extractedText:N.extractedText,uploading:!1,progress:100,previewUrl:M||N.previewUrl}}else f(T)}catch{f(T)}}function f(S){const T=e.value.findIndex(D=>D.id===S);if(T===-1)return;const[N]=e.value.splice(T,1);N!=null&&N.previewUrl&&URL.revokeObjectURL(N.previewUrl)}function E(){e.value.forEach(S=>{S.previewUrl&&URL.revokeObjectURL(S.previewUrl)}),e.value=[]}function g(){return e.value.filter(S=>!S.uploading).map(S=>({id:S.id,name:S.name,url:S.url,type:S.type,size:S.size}))}function m(S){if(!S)return;const T=Array.from(S);for(const N of T){if(e.value.length>=s)break;N.size>a||x(N)}}function b(S){var T;return Array.from(((T=S.dataTransfer)==null?void 0:T.types)||[]).includes("Files")}function C(S){b(S)&&(r.value+=1,n.value=!0)}function w(S){b(S)||S.preventDefault()}function z(S){b(S)&&(r.value=Math.max(0,r.value-1),r.value===0&&(n.value=!1))}function $(S){var T;b(S)&&(r.value=0,n.value=!1,m(((T=S.dataTransfer)==null?void 0:T.files)||null))}function F(S){const T=S.target,N=T.files;N&&N.length&&m(N),T.value=""}return t.onBeforeUnmount(()=>{E()}),{attachments:e,isDraggingFiles:n,hasAttachments:l,isUploading:d,canAddMore:u,acceptedFileTypes:i,isImage:p,formatFileSize:h,removeAttachment:f,clearAttachments:E,buildPayload:g,processFiles:m,handleFileSelect:F,handleDragEnter:C,handleDragOver:w,handleDragLeave:z,handleDrop:$}}function ns(o,e,n){const r=t.ref(!1),s=t.ref([]),a=t.ref(0),i=t.ref({inMention:!1,query:"",startPos:0}),l=t.ref([]),d=t.computed(()=>{const E=q();return(E==null?void 0:E.mentionProviders)||[]});function u(E){const g=n();if(!g)return;const m=g.selectionStart,b=cn(E,m);i.value=b,b.inMention&&b.query.length>=0?p(b.query):(r.value=!1,s.value=[])}async function p(E){const g=pn();if(g.length===0){r.value=!1;return}const m=[];for(const b of g)try{const C=await b.search(E);m.push(...C.map(w=>({...w,type:b.type})))}catch(C){console.warn(`Mention provider ${b.type} failed:`,C)}s.value=m.slice(0,10),r.value=m.length>0,a.value=0}function h(E){const{startPos:g}=i.value,m=o(),b=n(),C=m.slice(0,g),w=m.slice((b==null?void 0:b.selectionStart)||g),z=E.name||E.label||E.title||E.id;e(`${C}@${z} ${w}`),l.value.push({id:E.id,name:z,type:E.type,metadata:E.attributes}),r.value=!1,s.value=[],setTimeout(()=>{const $=n();$==null||$.focus();const F=C.length+z.length+2;$==null||$.setSelectionRange(F,F)},0)}function x(E){if(!r.value||s.value.length===0)return!1;if(E.key==="ArrowDown")return E.preventDefault(),a.value=Math.min(a.value+1,s.value.length-1),!0;if(E.key==="ArrowUp")return E.preventDefault(),a.value=Math.max(a.value-1,0),!0;if(E.key==="Enter"||E.key==="Tab"){E.preventDefault();const g=s.value[a.value];return g&&h(g),!0}return E.key==="Escape"?(E.preventDefault(),r.value=!1,!0):!1}function y(){l.value=[]}function f(){return[...l.value]}return{showMentions:r,mentionItems:s,selectedMentionIndex:a,mentionProviders:d,checkForMentions:u,handleMentionSelect:h,handleMentionKeyDown:x,clearMentions:y,getMentions:f}}function os(o,e,n,r,s){const a=t.ref(!1),i=t.ref(-1),l=t.ref(null);function d(){setTimeout(()=>{const y=l.value;if(!y)return;const f=y.querySelector(`li:nth-child(${i.value+1})`);f&&f.scrollIntoView({block:"nearest",behavior:"smooth"})},0)}function u(y){const f=o();if(!a.value||f.length===0)return!1;if(y.key==="ArrowDown")return y.preventDefault(),i.value=Math.min(i.value+1,f.length-1),d(),!0;if(y.key==="ArrowUp")return y.preventDefault(),i.value=Math.max(i.value-1,0),d(),!0;if(y.key==="Enter"&&i.value>=0){y.preventDefault();const E=f[i.value];return E&&p(E),!0}return y.key==="Escape"?(y.preventDefault(),a.value=!1,i.value=-1,!0):!1}function p(y){s(y),a.value=!1,i.value=-1}function h(){const y=r(),f=e(),E=n(),g=o();y&&!f&&E&&g.length>0?a.value=!0:a.value=!1}function x(){a.value=!1,i.value=-1}return{showSuggestions:a,selectedSuggestionIndex:i,dropdownRef:l,handleSuggestionKeyDown:u,handleSuggestionClick:p,updateSuggestionsVisibility:h,hideSuggestions:x}}function rs(o,e=300){function n(){const r=o();if(!r)return;r.style.height="auto";const s=Math.min(r.scrollHeight,e);r.style.height=`${s}px`,r.style.overflowY=r.scrollHeight>e?"auto":"hidden"}return t.onMounted(()=>{setTimeout(n,0)}),{adjustTextareaHeight:n}}const Wn=t.defineComponent({__name:"AiAvatar",props:{ui:{}},setup(o){return(e,n)=>{var r;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["w-6 h-6 min-w-[24px] flex items-center justify-center rounded-full border border-gray-300 dark:border-gray-600",(r=o.ui)==null?void 0:r.container])},[t.renderSlot(e.$slots,"default",{},()=>{var s;return[(t.openBlock(),t.createElementBlock("svg",{class:t.normalizeClass(["w-4 h-4 text-gray-400 dark:text-gray-500",(s=o.ui)==null?void 0:s.icon]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[...n[0]||(n[0]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"},null,-1)])],2))]})],2)}}}),ss=t.defineComponent({__name:"UserAvatar",props:{ui:{}},setup(o){return(e,n)=>{var r;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["w-8 h-8 rounded-full bg-gray-200 dark:bg-gray-700 flex items-center justify-center flex-shrink-0",(r=o.ui)==null?void 0:r.container])},[t.renderSlot(e.$slots,"default",{},()=>{var s;return[(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",class:t.normalizeClass(["w-5 h-5 text-gray-500 dark:text-gray-400",(s=o.ui)==null?void 0:s.icon])},[...n[0]||(n[0]=[t.createElementVNode("path",{"fill-rule":"evenodd",d:"M7.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM3.751 20.105a8.25 8.25 0 0 1 16.498 0 .75.75 0 0 1-.437.695A18.683 18.683 0 0 1 12 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 0 1-.437-.695Z","clip-rule":"evenodd"},null,-1)])],2))]})],2)}}}),as=["onClick","onMouseenter"],Kn=t.defineComponent({__name:"MentionList",props:{items:{},selectedIndex:{default:0},providers:{default:()=>[]},ui:{},texts:{}},emits:["select","update:selectedIndex"],setup(o,{emit:e}){const n=o,r=t.computed(()=>n.ui||{}),s=e,a=t.ref(n.selectedIndex);t.watch(()=>n.selectedIndex,g=>{a.value=g}),t.watch(a,g=>{s("update:selectedIndex",g)});const i=t.computed(()=>{const g={};return n.items.forEach(m=>{const b=m.type||"default";g[b]||(g[b]=[]),g[b].push(m)}),g});function l(g){return n.providers.find(m=>m.type===g)||dn(g)}function d(g){const m=l(g);return(m==null?void 0:m.label)||g.charAt(0).toUpperCase()+g.slice(1)+"s"}function u(g,m){let b=0;const C=Object.keys(i.value);for(const w of C){if(w===g)return b+m;b+=i.value[w].length}return b}function p(g){s("select",g)}function h(g){a.value=g,s("update:selectedIndex",g)}function x(g){const m=l(g.type);return At(g,m)}function y(g){const m=l(g.type);return un(g,m)}function f(g){const m={employee:"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400",job:"bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400",candidate:"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400",project:"bg-orange-100 dark:bg-orange-900/30 text-orange-600 dark:text-orange-400",default:"bg-primary/10 text-primary"};return m[g]||m.default}function E(g){return g.split(" ").map(m=>m[0]).join("").slice(0,2).toUpperCase()}return(g,m)=>o.items.length>0?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["absolute bottom-full left-0 right-0 mb-2 bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 shadow-lg max-h-60 overflow-y-auto z-50",r.value.root])},[t.createElementVNode("div",{class:t.normalizeClass(["p-2",r.value.container])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.value,(b,C)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:C},[Object.keys(i.value).length>1?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wide",r.value.groupHeader])},t.toDisplayString(d(C)),3)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(b,(w,z)=>(t.openBlock(),t.createElementBlock("button",{key:w.id,type:"button",class:t.normalizeClass(["w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors mb-0.5",[r.value.item,{[r.value.itemSelected||"bg-primary/10"]:u(C,z)===a.value,"hover:bg-gray-50 dark:hover:bg-gray-700":u(C,z)!==a.value}]]),onClick:$=>p(w),onMouseenter:$=>h(u(C,z))},[t.renderSlot(g.$slots,"item-icon",{item:w,type:C},()=>[t.createElementVNode("span",{class:t.normalizeClass(["w-8 h-8 flex items-center justify-center rounded-full text-xs font-semibold flex-shrink-0",[r.value.itemIcon,f(w.type)]])},t.toDisplayString(E(x(w))),3)]),t.createElementVNode("div",{class:t.normalizeClass(["flex-1 min-w-0",r.value.itemContent])},[t.createElementVNode("p",{class:t.normalizeClass(["text-sm font-medium text-gray-900 dark:text-gray-100 truncate",r.value.itemName])},t.toDisplayString(x(w)),3),y(w)?(t.openBlock(),t.createElementBlock("p",{key:0,class:t.normalizeClass(["text-xs text-gray-500 dark:text-gray-400 truncate",r.value.itemSubtitle])},t.toDisplayString(y(w)),3)):t.createCommentVNode("",!0)],2)],42,as))),128))],64))),128))],2)],2)):t.createCommentVNode("",!0)}}),is=["title"],ls={key:0,class:"w-4 h-4 text-gray-500 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Gn=t.defineComponent({__name:"ChatMessageActions",props:{message:{},ui:{},texts:{}},emits:["copy"],setup(o,{emit:e}){const n=o,r=e,s=d=>{var p;return(p=n.texts)!=null&&p[d]?n.texts[d]:J({copyToClipboard:"copyToClipboard",copied:"copied"}[d])},a=t.computed(()=>n.ui||{}),i=t.ref(!1);async function l(){try{await navigator.clipboard.writeText(n.message.message),i.value=!0,r("copy",n.message),setTimeout(()=>{i.value=!1},2e3)}catch(d){console.error("Failed to copy:",d)}}return(d,u)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",a.value.container])},[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",[a.value.button,a.value.copyButton]]),title:i.value?s("copied"):s("copyToClipboard"),onClick:l},[i.value?(t.openBlock(),t.createElementBlock("svg",{key:1,class:t.normalizeClass(["w-4 h-4 text-green-500",a.value.successState]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...u[1]||(u[1]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])],2)):(t.openBlock(),t.createElementBlock("svg",ls,[...u[0]||(u[0]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184"},null,-1)])]))],10,is)],2))}}),cs={class:"h-12 w-12 flex items-center justify-center rounded-lg bg-white/20 overflow-hidden"},us=["src"],ds={key:1,class:"w-5 h-5 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},ps={class:"flex-1 min-w-0"},fs={class:"text-sm font-semibold text-white truncate"},ms={class:"text-xs text-white/70"},hs={key:0,class:"text-xs font-medium text-white/90"},gs=["src"],ys={key:1,class:"h-4 w-4 text-white",viewBox:"0 0 24 24",fill:"currentColor"},ks={class:"flex-shrink-0 mt-0.5"},xs={class:"text-gray-600 dark:text-gray-400"},ws=["id","innerHTML"],bs={class:"h-12 w-12 flex items-center justify-center rounded-lg bg-white dark:bg-gray-800 overflow-hidden border border-gray-200 dark:border-gray-600"},Es=["src"],Cs={key:1,class:"w-5 h-5 text-gray-500 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Ss={class:"flex-1 min-w-0"},Ts={class:"text-sm font-semibold text-gray-800 dark:text-gray-200 truncate"},As={class:"text-xs text-gray-500 dark:text-gray-400"},Ms={key:0,class:"text-xs font-medium text-primary"},Ns=t.defineComponent({__name:"ChatMessage",props:{message:{},showActions:{type:Boolean,default:!0},loadingText:{default:"Gathering data..."},ui:{},texts:{}},emits:["copy"],setup(o,{emit:e}){const n=o,r=e,s=m=>{var C;return(C=n.texts)!=null&&C[m]?n.texts[m]:{loadingText:"Gathering data...",showMore:"Show more",showLess:"Show less",openAttachment:"Open",attachment:"Attachment"}[m]||m},a=t.computed(()=>n.ui||{}),{parseMarkdown:i}=Un(),l=t.ref(!1),d=t.computed(()=>n.message.attachments??[]),u=t.computed(()=>d.value.length>0),p=t.computed(()=>{if(n.message.role!=="user")return!1;const m=n.message.message||"",b=m.split(`
59
59
  `).length;return m.length>200||b>4});function h(){l.value=!l.value}function x(m){return(m.type||"").startsWith("image/")?!0:/(png|jpe?g|gif|webp)$/i.test(m.name||"")}const y=t.computed(()=>{const m=q();return m!=null&&m.userAvatar?typeof m.userAvatar=="string"?m.userAvatar:typeof m.userAvatar=="function"?m.userAvatar():null:null});function f(m){if(m==null)return"";const b=typeof m=="string"?parseInt(m,10):m;return Number.isNaN(b)?"":b>=1024*1024?`${(b/(1024*1024)).toFixed(1)} MB`:b>=1024?`${Math.round(b/1024)} KB`:`${b} B`}const E=t.computed(()=>{if(n.message.role==="assistant"){let m=n.message.message;return m=m.replace(/\\n/g,`
60
- `),i(m)}return n.message.message});function g(m){r("copy",m)}return(m,b)=>{var C;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["group relative animate-in fade-in slide-in-from-bottom-2 duration-300",[a.value.root,{"flex justify-end":o.message.role==="user","flex justify-start":o.message.role==="assistant"}]])},[o.message.role==="user"?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["flex gap-3 justify-end",a.value.userMessage])},[t.createElementVNode("div",{class:t.normalizeClass(["rounded-2xl px-4 py-3 bg-primary text-white max-w-fit",a.value.userBubble])},[o.message.message?(t.openBlock(),t.createElementBlock("p",{key:0,class:t.normalizeClass(["text-sm whitespace-pre-wrap",[a.value.content,{"line-clamp-4":!l.value&&p.value}]])},t.toDisplayString(o.message.message),3)):t.createCommentVNode("",!0),p.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:t.normalizeClass(["mt-2 text-xs text-white/80 hover:text-white underline",a.value.showMoreButton]),onClick:h},t.toDisplayString(l.value?s("showLess"):s("showMore")),3)):t.createCommentVNode("",!0),u.value?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass(["mt-3 space-y-2",a.value.attachmentsContainer])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,w=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(w.url?"a":"div"),{key:w.id,href:w.url||void 0,target:w.url?"_blank":void 0,rel:"noopener noreferrer",class:t.normalizeClass(["flex items-center gap-3 rounded-xl border border-white/20 bg-white/10 p-2 transition",[a.value.attachmentItem,w.url?"hover:bg-white/20 cursor-pointer":""]])},{default:t.withCtx(()=>[t.createElementVNode("div",cs,[w.url&&x(w)?(t.openBlock(),t.createElementBlock("img",{key:0,src:w.url,class:"object-cover h-full w-full",alt:""},null,8,us)):(t.openBlock(),t.createElementBlock("svg",ds,[...b[0]||(b[0]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},null,-1)])]))]),t.createElementVNode("div",ps,[t.createElementVNode("p",fs,t.toDisplayString(w.name||s("attachment")),1),t.createElementVNode("p",ms,t.toDisplayString(f(w.size)),1)]),w.url?(t.openBlock(),t.createElementBlock("span",hs,t.toDisplayString(s("openAttachment")),1)):t.createCommentVNode("",!0)]),_:2},1032,["href","target","class"]))),128))],2)):t.createCommentVNode("",!0)],2),t.createElementVNode("div",{class:t.normalizeClass(["flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary overflow-hidden",a.value.userAvatar])},[y.value?(t.openBlock(),t.createElementBlock("img",{key:0,src:y.value,alt:"User",class:"h-full w-full object-cover"},null,8,gs)):(t.openBlock(),t.createElementBlock("svg",ys,[...b[1]||(b[1]=[t.createElementVNode("path",{"fill-rule":"evenodd",d:"M7.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM3.751 20.105a8.25 8.25 0 0 1 16.498 0 .75.75 0 0 1-.437.695A18.683 18.683 0 0 1 12 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 0 1-.437-.695Z","clip-rule":"evenodd"},null,-1)])]))],2)],2)):(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["flex items-start gap-3",a.value.assistantMessage])},[t.createElementVNode("div",ks,[t.createVNode(Wn)]),t.createElementVNode("div",{class:t.normalizeClass(["bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 px-5 py-4 shadow-sm rounded-2xl transition-all duration-200 flex-1",a.value.assistantBubble])},[o.message.loading?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["flex items-center gap-2 text-sm min-w-[150px]",a.value.loadingIndicator])},[t.createElementVNode("div",{class:t.normalizeClass(["flex space-x-1",a.value.loadingDots])},[...b[2]||(b[2]=[t.createElementVNode("div",{class:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{"animation-delay":"0ms"}},null,-1),t.createElementVNode("div",{class:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{"animation-delay":"150ms"}},null,-1),t.createElementVNode("div",{class:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{"animation-delay":"300ms"}},null,-1)])],2),t.createElementVNode("span",xs,t.toDisplayString(((C=o.texts)==null?void 0:C.loadingText)||o.loadingText),1)],2)):o.message.message?(t.openBlock(),t.createElementBlock("div",{key:1,id:o.message.id,class:t.normalizeClass(["prose prose-sm max-w-none prose-gray dark:prose-invert",a.value.content]),innerHTML:E.value},null,10,ws)):t.createCommentVNode("",!0),!o.message.loading&&u.value?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass(["mt-4 space-y-2",a.value.attachmentsContainer])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,w=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(w.url?"a":"div"),{key:w.id,href:w.url||void 0,target:w.url?"_blank":void 0,rel:"noopener noreferrer",class:t.normalizeClass(["flex items-center gap-3 rounded-xl border border-gray-200 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 p-3 transition",[a.value.attachmentItem,w.url?"hover:bg-white dark:hover:bg-gray-600 cursor-pointer":""]])},{default:t.withCtx(()=>[t.createElementVNode("div",bs,[w.url&&x(w)?(t.openBlock(),t.createElementBlock("img",{key:0,src:w.url,class:"object-cover h-full w-full",alt:""},null,8,Es)):(t.openBlock(),t.createElementBlock("svg",Cs,[...b[3]||(b[3]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},null,-1)])]))]),t.createElementVNode("div",Ss,[t.createElementVNode("p",Ts,t.toDisplayString(w.name||s("attachment")),1),t.createElementVNode("p",As,t.toDisplayString(f(w.size)),1)]),w.url?(t.openBlock(),t.createElementBlock("span",Ms,t.toDisplayString(s("openAttachment")),1)):t.createCommentVNode("",!0)]),_:2},1032,["href","target","class"]))),128))],2)):t.createCommentVNode("",!0)],2)],2)),o.message.role==="assistant"&&!o.message.loading&&!o.message.streaming&&o.showActions?(t.openBlock(),t.createBlock(Gn,{key:2,message:o.message,class:t.normalizeClass(["absolute -bottom-8 left-14",a.value.actionsContainer]),onCopy:g},null,8,["message","class"])):t.createCommentVNode("",!0)],2)}}}),Qn=(o,e)=>{const n=o.__vccOpts||o;for(const[r,s]of e)n[r]=s;return n},Zn=Qn(Ns,[["__scopeId","data-v-df348786"]]),Rs={class:"text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wide"},Bs={class:"space-y-2"},Ls=["src"],Ds={key:1,class:"w-5 h-5 text-gray-500 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Is={class:"flex-1 min-w-0"},zs={class:"text-sm font-medium text-gray-800 dark:text-gray-200 truncate"},$s={class:"text-xs text-gray-500 dark:text-gray-400"},_s={key:0,class:"mt-1 h-1 bg-gray-200 dark:bg-gray-600 rounded-full overflow-hidden"},Os={key:0,class:"text-xs text-gray-400"},Ps=["disabled","onClick"],Vs=t.defineComponent({__name:"AttachmentsPreview",props:{attachments:{},ui:{},texts:{},isImage:{type:Function},formatFileSize:{type:Function}},emits:["remove"],setup(o){return(e,n)=>{var r;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["border border-gray-200 dark:border-gray-700 rounded-2xl p-3 bg-gray-50 dark:bg-gray-800 space-y-3",o.ui.attachmentsContainer])},[t.createElementVNode("p",Rs,t.toDisplayString(((r=o.texts)==null?void 0:r.attachedFiles)||"Attached files"),1),t.createElementVNode("ul",Bs,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.attachments,s=>(t.openBlock(),t.createElementBlock("li",{key:s.id,class:t.normalizeClass(["flex items-center gap-3 rounded-xl bg-white dark:bg-gray-700 p-2 shadow-sm border border-gray-100 dark:border-gray-600",o.ui.attachmentItem])},[t.createElementVNode("div",{class:t.normalizeClass(["h-10 w-10 flex items-center justify-center rounded-lg bg-gray-100 dark:bg-gray-600 overflow-hidden",o.ui.attachmentThumbnail])},[o.isImage(s)?(t.openBlock(),t.createElementBlock("img",{key:0,src:s.previewUrl||s.url,class:"object-cover h-full w-full",alt:""},null,8,Ls)):(t.openBlock(),t.createElementBlock("svg",Ds,[...n[0]||(n[0]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},null,-1)])]))],2),t.createElementVNode("div",Is,[t.createElementVNode("p",zs,t.toDisplayString(s.name),1),t.createElementVNode("p",$s,t.toDisplayString(o.formatFileSize(s.size)),1),s.uploading?(t.openBlock(),t.createElementBlock("div",_s,[t.createElementVNode("div",{class:"h-full bg-primary transition-all",style:t.normalizeStyle({width:`${s.progress??10}%`})},null,4)])):t.createCommentVNode("",!0)]),s.uploading?(t.openBlock(),t.createElementBlock("span",Os,t.toDisplayString(Math.round(s.progress??0))+"% ",1)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["p-1 rounded-full hover:bg-gray-100 dark:hover:bg-gray-600 disabled:opacity-50 disabled:cursor-not-allowed",o.ui.attachmentRemove]),disabled:s.uploading,onClick:a=>e.$emit("remove",s.id)},[...n[1]||(n[1]=[t.createElementVNode("svg",{class:"w-4 h-4 text-gray-500 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M6 18L18 6M6 6l12 12"})],-1)])],10,Ps)],2))),128))])],2)}}}),Fs={class:"py-1"},Hs=["onClick","onMouseenter"],Us={class:"flex items-start gap-3"},qs={class:"flex-1 min-w-0"},vs={class:"text-sm font-medium text-gray-900 dark:text-gray-100"},js={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 line-clamp-2"},Ws=t.defineComponent({__name:"SuggestionsDropdown",props:{suggestions:{},selectedIndex:{},ui:{}},emits:["select","hover"],setup(o,{expose:e}){const n=t.ref(null);return e({dropdownRef:n}),(r,s)=>(t.openBlock(),t.createBlock(t.Transition,{"enter-active-class":"transition ease-out duration-100","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:t.withCtx(()=>[t.createElementVNode("div",{ref_key:"dropdownRef",ref:n,class:t.normalizeClass(["absolute bottom-full left-0 right-0 mb-2 bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 shadow-lg max-h-80 overflow-y-auto z-10",o.ui.suggestionsDropdown])},[t.createElementVNode("ul",Fs,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.suggestions,(a,i)=>(t.openBlock(),t.createElementBlock("li",{key:a.id,class:t.normalizeClass(["px-4 py-3 cursor-pointer transition-colors border-b border-gray-100 dark:border-gray-700 last:border-b-0",[o.ui.suggestionItem,{[o.ui.suggestionItemSelected||"bg-primary/10"]:i===o.selectedIndex,"hover:bg-gray-50 dark:hover:bg-gray-700":i!==o.selectedIndex}]]),onClick:l=>r.$emit("select",a),onMouseenter:l=>r.$emit("hover",i)},[t.createElementVNode("div",Us,[t.createElementVNode("div",qs,[t.createElementVNode("p",vs,t.toDisplayString(a.title),1),t.createElementVNode("p",js,t.toDisplayString(a.description),1)])])],42,Hs))),128))])],2)]),_:1}))}}),Ks={class:"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1 z-10"},Gs=["title"],Qs=["title"],Zs=["disabled"],Ys={key:0,class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Xs={key:1,class:"w-4 h-4",viewBox:"0 0 24 24",fill:"currentColor"},Js=t.defineComponent({__name:"InputActions",props:{sending:{type:Boolean},canSend:{type:Boolean},supportRequestMode:{type:Boolean},showSupportModeToggle:{type:Boolean},ui:{},texts:{}},emits:["toggle-support-mode","click"],setup(o){const e=o,n=t.computed(()=>e.sending?[e.ui.stopButton||"bg-red-500 text-white hover:bg-red-600"]:e.canSend?[e.ui.sendButtonActive||"bg-primary text-white hover:bg-primary/90"]:[e.ui.sendButtonDisabled||"bg-gray-200 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed opacity-60"]);return(r,s)=>{var a,i,l;return t.openBlock(),t.createElementBlock("div",Ks,[o.showSupportModeToggle&&!o.supportRequestMode?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["h-9 w-9 rounded-xl flex items-center justify-center text-gray-400 hover:text-primary hover:bg-gray-100 dark:hover:bg-gray-700 transition flex-shrink-0",o.ui.supportToggle]),title:((a=o.texts)==null?void 0:a.toggleSupportMode)||"Toggle support mode",onClick:s[0]||(s[0]=d=>r.$emit("toggle-support-mode"))},[...s[3]||(s[3]=[t.createElementVNode("svg",{class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"})],-1)])],10,Gs)):t.createCommentVNode("",!0),o.showSupportModeToggle&&o.supportRequestMode?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:t.normalizeClass(["h-7 px-2 rounded-lg flex items-center gap-1 text-xs font-medium bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-400 hover:bg-amber-200 dark:hover:bg-amber-900/50 transition flex-shrink-0",o.ui.supportBadge]),title:((i=o.texts)==null?void 0:i.exitSupportMode)||"Exit support mode",onClick:s[1]||(s[1]=d=>r.$emit("toggle-support-mode"))},[s[4]||(s[4]=t.createElementVNode("svg",{class:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(((l=o.texts)==null?void 0:l.supportLabel)||"Support"),1),s[5]||(s[5]=t.createElementVNode("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1))],10,Qs)):t.createCommentVNode("",!0),t.createElementVNode("button",{disabled:!o.canSend&&!o.sending,class:t.normalizeClass(["h-9 w-9 rounded-xl flex items-center justify-center transition-all duration-200 flex-shrink-0",n.value]),type:"button",onClick:s[2]||(s[2]=t.withModifiers(d=>r.$emit("click"),["prevent"]))},[o.sending?(t.openBlock(),t.createElementBlock("svg",Xs,[...s[7]||(s[7]=[t.createElementVNode("path",{"fill-rule":"evenodd",d:"M4.5 7.5a3 3 0 013-3h9a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9z","clip-rule":"evenodd"},null,-1)])])):(t.openBlock(),t.createElementBlock("svg",Ys,[...s[6]||(s[6]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5"},null,-1)])]))],10,Zs)])}}}),ea={class:"max-w-3xl mx-auto space-y-3"},ta=["accept"],na=["title"],oa={class:"flex items-center"},ra=["placeholder","disabled"],sa={key:0,class:"flex justify-center"},Yn=t.defineComponent({__name:"ChatInput",props:{modelValue:{},disabled:{type:Boolean,default:!1},sending:{type:Boolean,default:!1},placeholder:{default:"Ask me anything..."},supportPlaceholder:{default:"Describe your support request..."},minLength:{default:3},suggestions:{default:()=>[]},hasHistory:{type:Boolean,default:!1},supportRequestMode:{type:Boolean,default:!1},showSupportModeToggle:{type:Boolean,default:!1},contextLinkText:{default:""},ui:{},texts:{}},emits:["update:modelValue","submit","cancel","suggestion-select","toggle-support-mode","context-link-click"],setup(o,{emit:e}){const n=o,r=t.computed(()=>n.ui||{}),s=e,a=t.ref(n.modelValue),i=t.ref(null),l=t.ref(null),d=t.ref(!1),u=ts(),p=ns(()=>a.value,T=>{a.value=T},()=>i.value),h=os(()=>n.suggestions,()=>n.hasHistory,()=>d.value,()=>a.value,T=>{s("suggestion-select",T),t.nextTick(()=>{var N;return(N=i.value)==null?void 0:N.focus()})}),{adjustTextareaHeight:x}=rs(()=>i.value),y=t.computed(()=>n.supportRequestMode?n.supportPlaceholder:n.placeholder),f=t.computed(()=>n.showSupportModeToggle?n.supportRequestMode?{paddingLeft:"3rem",paddingRight:"8rem"}:{paddingLeft:"3rem",paddingRight:"6rem"}:{paddingLeft:"3rem",paddingRight:"3.5rem"}),E=t.computed(()=>{var N;return(((N=a.value)==null?void 0:N.trim())??"").length>=n.minLength?!0:u.hasAttachments.value}),g=t.computed(()=>!n.disabled&&!n.sending&&E.value&&!u.isUploading.value);t.watch(()=>n.modelValue,T=>{a.value=T,t.nextTick(x)}),t.watch(a,T=>{s("update:modelValue",T),t.nextTick(x),p.checkForMentions(T),h.updateSuggestionsVisibility()}),t.watch(()=>n.suggestions,()=>{h.updateSuggestionsVisibility()});function m(){x()}function b(T){if(!p.handleMentionKeyDown(T)&&!h.handleSuggestionKeyDown(T)&&T.key==="Enter"){if(T.shiftKey)return;!n.sending&&g.value&&(T.preventDefault(),C())}}function C(){if(!g.value)return;const T=u.buildPayload(),N=a.value.trim(),D=p.getMentions();s("submit",{message:N,attachments:T,mentions:D,isSupportRequest:n.supportRequestMode}),a.value="",u.clearAttachments(),p.clearMentions(),t.nextTick(x)}function w(){n.sending?s("cancel"):g.value&&C()}function z(){var T;n.disabled||n.sending||u.canAddMore.value&&((T=l.value)==null||T.click())}function $(T){h.handleSuggestionClick(T)}function F(){d.value=!0,h.updateSuggestionsVisibility()}function S(){d.value=!1,setTimeout(()=>{h.hideSuggestions(),p.showMentions.value=!1},200)}return t.onMounted(()=>{t.nextTick(x)}),(T,N)=>{var D;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["px-4 pb-4 bg-white dark:bg-gray-900 sticky bottom-0",r.value.root]),onDragenter:N[6]||(N[6]=t.withModifiers((...M)=>t.unref(u).handleDragEnter&&t.unref(u).handleDragEnter(...M),["prevent"])),onDragover:N[7]||(N[7]=t.withModifiers((...M)=>t.unref(u).handleDragOver&&t.unref(u).handleDragOver(...M),["prevent"])),onDragleave:N[8]||(N[8]=t.withModifiers((...M)=>t.unref(u).handleDragLeave&&t.unref(u).handleDragLeave(...M),["prevent"])),onDrop:N[9]||(N[9]=t.withModifiers((...M)=>t.unref(u).handleDrop&&t.unref(u).handleDrop(...M),["prevent"]))},[t.createElementVNode("form",{onSubmit:t.withModifiers(C,["prevent"]),class:t.normalizeClass(r.value.form)},[t.createElementVNode("div",ea,[t.createElementVNode("input",{ref_key:"fileInputRef",ref:l,type:"file",class:"hidden",multiple:"",accept:t.unref(u).acceptedFileTypes,onChange:N[0]||(N[0]=(...M)=>t.unref(u).handleFileSelect&&t.unref(u).handleFileSelect(...M))},null,40,ta),t.unref(u).hasAttachments.value?(t.openBlock(),t.createBlock(Vs,{key:0,attachments:t.unref(u).attachments.value,ui:r.value,texts:o.texts,"is-image":t.unref(u).isImage,"format-file-size":t.unref(u).formatFileSize,onRemove:t.unref(u).removeAttachment},null,8,["attachments","ui","texts","is-image","format-file-size","onRemove"])):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(["relative",r.value.inputContainer])},[t.unref(h).showSuggestions.value&&o.suggestions.length>0?(t.openBlock(),t.createBlock(Ws,{key:0,ref:"suggestionsHandler.dropdownRef.value",suggestions:o.suggestions,"selected-index":t.unref(h).selectedSuggestionIndex.value,ui:r.value,onSelect:$,onHover:N[1]||(N[1]=M=>t.unref(h).selectedSuggestionIndex.value=M)},null,8,["suggestions","selected-index","ui"])):t.createCommentVNode("",!0),t.createVNode(t.Transition,{"enter-active-class":"transition ease-out duration-100","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:t.withCtx(()=>[t.unref(p).showMentions.value&&t.unref(p).mentionItems.value.length>0?(t.openBlock(),t.createBlock(Kn,{key:0,items:t.unref(p).mentionItems.value,"selected-index":t.unref(p).selectedMentionIndex.value,providers:t.unref(p).mentionProviders.value,onSelect:t.unref(p).handleMentionSelect,"onUpdate:selectedIndex":N[2]||(N[2]=M=>t.unref(p).selectedMentionIndex.value=M)},null,8,["items","selected-index","providers","onSelect"])):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("div",{class:t.normalizeClass(["rounded-2xl border shadow-lg transition-all duration-200 bg-white dark:bg-gray-800",[r.value.inputWrapper,{"border-primary shadow-primary/30":d.value||t.unref(u).isDraggingFiles.value,"border-gray-200 dark:border-gray-700 shadow-gray-100 dark:shadow-gray-900":!d.value&&!t.unref(u).isDraggingFiles.value}]])},[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["absolute left-3 top-1/2 -translate-y-1/2 h-9 w-9 rounded-xl flex items-center justify-center text-gray-500 dark:text-gray-400 hover:text-primary transition z-10",r.value.attachButton]),title:((D=o.texts)==null?void 0:D.attachFiles)||"Attach files",onClick:z},[...N[10]||(N[10]=[t.createElementVNode("svg",{class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M18.375 12.739l-7.693 7.693a4.5 4.5 0 01-6.364-6.364l10.94-10.94A3 3 0 1119.5 7.372L8.552 18.32m.009-.01l-.01.01m5.699-9.941l-7.81 7.81a1.5 1.5 0 002.112 2.13"})],-1)])],10,na),t.createElementVNode("div",oa,[t.withDirectives(t.createElementVNode("textarea",{ref_key:"textareaRef",ref:i,"onUpdate:modelValue":N[3]||(N[3]=M=>a.value=M),rows:"1","data-ai-input":"",placeholder:y.value,disabled:o.disabled,class:t.normalizeClass(["block w-full bg-transparent py-3 text-sm leading-5 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 dark:placeholder:text-gray-500 border-0 focus:outline-none focus-visible:outline-none resize-none",r.value.textarea]),style:t.normalizeStyle(f.value),onInput:m,onKeydown:b,onFocus:F,onBlur:S},null,46,ra),[[t.vModelText,a.value]])]),t.createVNode(Js,{sending:o.sending,"can-send":g.value,"support-request-mode":o.supportRequestMode,"show-support-mode-toggle":o.showSupportModeToggle,ui:r.value,texts:o.texts,onToggleSupportMode:N[4]||(N[4]=M=>T.$emit("toggle-support-mode")),onClick:w},null,8,["sending","can-send","support-request-mode","show-support-mode-toggle","ui","texts"])],2)],2),t.renderSlot(T.$slots,"context-link",{},()=>[o.contextLinkText?(t.openBlock(),t.createElementBlock("div",sa,[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["text-xs text-gray-400 hover:text-primary transition-colors",r.value.contextLink]),onClick:N[5]||(N[5]=M=>T.$emit("context-link-click"))},t.toDisplayString(o.contextLinkText),3)])):t.createCommentVNode("",!0)])])],34)],34)}}}),aa=["onClick"],Xn=t.defineComponent({__name:"AiEmptyState",props:{ui:{},texts:{}},emits:["item-click"],setup(o,{emit:e}){const n=o,r=e,s=x=>{var f;return(f=n.texts)!=null&&f[x]?n.texts[x]:J({aiName:"aiName",title:"emptyStateTitle",description:"emptyStateDescription"}[x])},a=t.computed(()=>n.ui||{}),{suggestions:i,resolvePrompt:l}=jt();function d(x){const y={...x,prompt:l(x)};r("item-click",y)}function u(x){return x.gradientClass?x.gradientClass:x.className?x.className:"bg-gradient-to-br from-white to-gray-50 dark:from-gray-800 dark:to-gray-900"}function p(x){const y=x.category||"default",f={hr:"bg-blue-100 dark:bg-blue-900/30",finance:"bg-green-100 dark:bg-green-900/30",analytics:"bg-purple-100 dark:bg-purple-900/30",support:"bg-amber-100 dark:bg-amber-900/30",default:"bg-primary/10"};return f[y]||f.default}function h(x){const y=x.category||"default",f={hr:"text-blue-600 dark:text-blue-400",finance:"text-green-600 dark:text-green-400",analytics:"text-purple-600 dark:text-purple-400",support:"text-amber-600 dark:text-amber-400",default:"text-primary"};return f[y]||f.default}return(x,y)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["flex items-center justify-center p-4 h-full",a.value.root])},[t.createElementVNode("div",{class:t.normalizeClass(["w-full max-w-4xl",a.value.content])},[t.createElementVNode("div",{class:t.normalizeClass(["mb-8 text-center",a.value.header])},[t.createElementVNode("div",{class:t.normalizeClass(["mb-3 inline-flex items-center gap-2 rounded-full bg-primary/10 px-4 py-2 text-sm font-medium text-primary",a.value.badge])},[y[0]||(y[0]=t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(s("aiName")),1)],2),t.createElementVNode("h1",{class:t.normalizeClass(["mb-3 text-4xl font-bold tracking-tight text-gray-900 dark:text-white",a.value.title])},t.toDisplayString(s("title")),3),t.createElementVNode("p",{class:t.normalizeClass(["text-gray-600 dark:text-gray-400",a.value.description])},t.toDisplayString(s("description")),3)],2),t.createElementVNode("div",{class:t.normalizeClass(["mb-8 grid gap-3 sm:grid-cols-2 lg:grid-cols-3",a.value.grid])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),(f,E)=>(t.openBlock(),t.createElementBlock("button",{key:f.id||E,class:t.normalizeClass(["group relative overflow-hidden rounded-xl border border-gray-300 dark:border-gray-600 p-4 text-left transition-all hover:shadow-md hover:scale-[1.02]",[a.value.suggestionCard,u(f)]]),onClick:g=>d(f)},[t.createElementVNode("div",{class:t.normalizeClass(["mb-2 inline-flex h-10 w-10 items-center justify-center rounded-lg",[a.value.suggestionIconContainer,p(f)]])},[f.icon?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(f.icon),{key:0,class:t.normalizeClass(["h-5 w-5",[a.value.suggestionIcon,h(f)]])},null,8,["class"])):(t.openBlock(),t.createElementBlock("svg",{key:1,class:t.normalizeClass(["h-5 w-5",[a.value.suggestionIcon,h(f)]]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[...y[1]||(y[1]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"},null,-1)])],2))],2),t.createElementVNode("h3",{class:t.normalizeClass(["mb-1 text-sm font-semibold text-gray-900 dark:text-white",a.value.suggestionTitle])},t.toDisplayString(f.title),3),t.createElementVNode("p",{class:t.normalizeClass(["text-xs text-gray-600 dark:text-gray-400",a.value.suggestionDescription])},t.toDisplayString(f.description),3)],10,aa))),128))],2)],2)],2))}}),ia={class:"flex items-center gap-3"},la={key:1,class:"text-xs text-gray-400 dark:text-gray-500 font-medium"},ca={key:1,class:"flex items-center gap-2"},ua={key:0,class:"flex items-center gap-2 ml-auto mr-3"},da=["title"],pa=["title"],fa=["title"],ma={key:0,class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},ha={key:1,class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},ga=t.defineComponent({__name:"DrawerHeader",props:{ui:{},isSetupMode:{type:Boolean},showNewChatButton:{type:Boolean},hasHistory:{type:Boolean},showQuota:{type:Boolean},quota:{},showCloseButton:{type:Boolean},showMinimizeButton:{type:Boolean},showFullscreenToggle:{type:Boolean},isFullscreen:{type:Boolean},t:{type:Function}},emits:["new-chat","close","minimize","toggle-fullscreen"],setup(o){return(e,n)=>{var r,s,a,i,l,d;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["flex items-center justify-between px-4 sm:px-6 pt-4 border-b border-gray-200 dark:border-gray-700 pb-4",(r=o.ui)==null?void 0:r.header])},[t.createElementVNode("div",ia,[o.isSetupMode?(t.openBlock(),t.createElementBlock("div",ca,[...n[5]||(n[5]=[t.createElementVNode("span",{class:"flex h-2 w-2 rounded-full bg-amber-500 animate-pulse"},null,-1),t.createElementVNode("span",{class:"text-sm font-medium text-gray-700 dark:text-gray-300"},"Setup Required",-1)])])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[o.showNewChatButton&&o.hasHistory?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["inline-flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-400 transition-all duration-200 shadow-sm",(s=o.ui)==null?void 0:s.newChatButton]),onClick:n[0]||(n[0]=u=>e.$emit("new-chat"))},[n[4]||(n[4]=t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(o.t("newChat")),1)],2)):(t.openBlock(),t.createElementBlock("span",la,t.toDisplayString(o.t("keyboardShortcutHint")),1))],64))]),o.showQuota&&!o.isSetupMode?(t.openBlock(),t.createElementBlock("div",ua,[t.renderSlot(e.$slots,"quota",{},()=>{var u,p;return[o.quota.remaining>0?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(["text-xs text-green-600 dark:text-green-400",(u=o.ui)==null?void 0:u.quotaDisplay])},t.toDisplayString(o.quota.remaining)+" "+t.toDisplayString(o.t("quotaRemaining")),3)):o.quota.remaining===0?(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(["text-xs text-red-600 dark:text-red-400",(p=o.ui)==null?void 0:p.quotaDisplay])},t.toDisplayString(o.t("noQuota")),3)):t.createCommentVNode("",!0)]})])):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(["flex items-center gap-1",(a=o.ui)==null?void 0:a.headerActions])},[o.showCloseButton?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",(i=o.ui)==null?void 0:i.headerActionButton]),title:o.t("close"),onClick:n[1]||(n[1]=u=>e.$emit("close"))},[...n[6]||(n[6]=[t.createElementVNode("svg",{class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],10,da)):t.createCommentVNode("",!0),o.showMinimizeButton?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:t.normalizeClass(["p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",(l=o.ui)==null?void 0:l.headerActionButton]),title:o.t("minimize"),onClick:n[2]||(n[2]=u=>e.$emit("minimize"))},[...n[7]||(n[7]=[t.createElementVNode("svg",{class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 12h14"})],-1)])],10,pa)):t.createCommentVNode("",!0),o.showFullscreenToggle?(t.openBlock(),t.createElementBlock("button",{key:2,type:"button",class:t.normalizeClass(["p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",(d=o.ui)==null?void 0:d.headerActionButton]),title:o.isFullscreen?o.t("exitFullscreen"):o.t("fullscreen"),onClick:n[3]||(n[3]=u=>e.$emit("toggle-fullscreen"))},[o.isFullscreen?(t.openBlock(),t.createElementBlock("svg",ha,[...n[9]||(n[9]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25"},null,-1)])])):(t.openBlock(),t.createElementBlock("svg",ma,[...n[8]||(n[8]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"},null,-1)])]))],10,fa)):t.createCommentVNode("",!0)],2)],2)}}}),ya={class:"max-w-3xl mx-auto px-4 space-y-6"},ka={class:"flex justify-center"},xa={class:"inline-flex items-center gap-2 rounded-full bg-primary/10 px-4 py-2 text-sm font-medium text-primary"},wa={key:0,class:"flex justify-center"},ba=["title"],Ea=t.defineComponent({__name:"DrawerMessageList",props:{messages:{},loadingMessage:{},quota:{},error:{},ui:{},t:{type:Function}},emits:["copy","contact-support","retry"],setup(o){return(e,n)=>{var r,s,a;return t.openBlock(),t.createElementBlock("div",ya,[t.createElementVNode("div",ka,[t.createElementVNode("div",xa,[n[3]||(n[3]=t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(o.t("title")||t.unref(J)("aiName")),1)])]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.messages,(i,l)=>t.renderSlot(e.$slots,"message",{key:i.id||l,message:i,isUser:i.role==="user",isLoading:i.loading,isStreaming:i.streaming},()=>[t.createVNode(Zn,{message:i,"loading-text":o.loadingMessage,onCopy:n[0]||(n[0]=d=>e.$emit("copy",d))},null,8,["message","loading-text"])])),128)),o.quota.remaining===0?(t.openBlock(),t.createElementBlock("div",wa,[t.createElementVNode("button",{type:"button",class:"inline-flex items-center gap-2 px-6 py-3 bg-primary text-white rounded-lg hover:bg-primary/90 transition-all shadow-sm",onClick:n[1]||(n[1]=i=>e.$emit("contact-support"))},[n[4]||(n[4]=t.createElementVNode("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(t.unref(J)("contactSupport")),1)])])):t.createCommentVNode("",!0),o.error.message?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["flex items-center gap-2 text-sm text-red-600 dark:text-red-400 px-2 py-1 pb-6",(r=o.ui)==null?void 0:r.errorContainer])},[t.createElementVNode("span",{class:t.normalizeClass((s=o.ui)==null?void 0:s.errorMessage)},t.toDisplayString(o.error.message),3),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["inline-flex items-center gap-1 text-red-700 dark:text-red-300 hover:text-red-800 dark:hover:text-red-200 font-medium",(a=o.ui)==null?void 0:a.retryButton]),title:o.t("retry"),onClick:n[2]||(n[2]=i=>e.$emit("retry"))},[...n[5]||(n[5]=[t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1)])],10,ba)],2)):t.createCommentVNode("",!0)])}}}),Ca={class:"w-full max-w-md"},Sa={class:"bg-gray-900 rounded-xl overflow-hidden"},Ta={class:"flex items-center justify-between px-4 py-2 bg-gray-800/50 border-b border-gray-700"},Aa=t.defineComponent({__name:"SetupGuide",props:{copied:{type:Boolean}},emits:["copy"],setup(o){return(e,n)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[n[4]||(n[4]=t.createStaticVNode('<div class="w-14 h-14 rounded-2xl bg-primary/10 flex items-center justify-center mb-5"><svg class="w-7 h-7 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"></path></svg></div><h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-1"> Almost there! </h2><p class="text-sm text-gray-500 dark:text-gray-400 mb-6 max-w-sm text-center"> Configure the plugin in your app entry file to start using AI. </p>',3)),t.createElementVNode("div",Ca,[t.createElementVNode("div",Sa,[t.createElementVNode("div",Ta,[n[1]||(n[1]=t.createElementVNode("span",{class:"text-xs text-gray-400"},"main.ts",-1)),t.createElementVNode("button",{type:"button",class:"text-xs text-gray-400 hover:text-white transition-colors",onClick:n[0]||(n[0]=r=>e.$emit("copy"))},t.toDisplayString(o.copied?"✓ Copied":"Copy"),1)]),n[2]||(n[2]=t.createStaticVNode(`<pre class="text-xs text-gray-100 p-4 overflow-x-auto leading-relaxed"><code class="language-typescript"><span class="text-purple-400">import</span> { RestifyAiPlugin } <span class="text-purple-400">from</span> <span class="text-green-400">&#39;@doderasoftware/restify-ai&#39;</span>
60
+ `),i(m)}return n.message.message});function g(m){r("copy",m)}return(m,b)=>{var C;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["group relative animate-in fade-in slide-in-from-bottom-2 duration-300",[a.value.root,{"flex justify-end":o.message.role==="user","flex justify-start":o.message.role==="assistant"}]])},[o.message.role==="user"?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["flex gap-3 justify-end",a.value.userMessage])},[t.createElementVNode("div",{class:t.normalizeClass(["rounded-2xl px-4 py-3 bg-primary-500 text-white max-w-fit",a.value.userBubble])},[o.message.message?(t.openBlock(),t.createElementBlock("p",{key:0,class:t.normalizeClass(["text-sm whitespace-pre-wrap",[a.value.content,{"line-clamp-4":!l.value&&p.value}]])},t.toDisplayString(o.message.message),3)):t.createCommentVNode("",!0),p.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:t.normalizeClass(["mt-2 text-xs text-white/80 hover:text-white underline",a.value.showMoreButton]),onClick:h},t.toDisplayString(l.value?s("showLess"):s("showMore")),3)):t.createCommentVNode("",!0),u.value?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass(["mt-3 space-y-2",a.value.attachmentsContainer])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,w=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(w.url?"a":"div"),{key:w.id,href:w.url||void 0,target:w.url?"_blank":void 0,rel:"noopener noreferrer",class:t.normalizeClass(["flex items-center gap-3 rounded-xl border border-white/20 bg-white/10 p-2 transition",[a.value.attachmentItem,w.url?"hover:bg-white/20 cursor-pointer":""]])},{default:t.withCtx(()=>[t.createElementVNode("div",cs,[w.url&&x(w)?(t.openBlock(),t.createElementBlock("img",{key:0,src:w.url,class:"object-cover h-full w-full",alt:""},null,8,us)):(t.openBlock(),t.createElementBlock("svg",ds,[...b[0]||(b[0]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},null,-1)])]))]),t.createElementVNode("div",ps,[t.createElementVNode("p",fs,t.toDisplayString(w.name||s("attachment")),1),t.createElementVNode("p",ms,t.toDisplayString(f(w.size)),1)]),w.url?(t.openBlock(),t.createElementBlock("span",hs,t.toDisplayString(s("openAttachment")),1)):t.createCommentVNode("",!0)]),_:2},1032,["href","target","class"]))),128))],2)):t.createCommentVNode("",!0)],2),t.createElementVNode("div",{class:t.normalizeClass(["flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary-500 overflow-hidden",a.value.userAvatar])},[y.value?(t.openBlock(),t.createElementBlock("img",{key:0,src:y.value,alt:"User",class:"h-full w-full object-cover"},null,8,gs)):(t.openBlock(),t.createElementBlock("svg",ys,[...b[1]||(b[1]=[t.createElementVNode("path",{"fill-rule":"evenodd",d:"M7.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM3.751 20.105a8.25 8.25 0 0 1 16.498 0 .75.75 0 0 1-.437.695A18.683 18.683 0 0 1 12 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 0 1-.437-.695Z","clip-rule":"evenodd"},null,-1)])]))],2)],2)):(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["flex items-start gap-3",a.value.assistantMessage])},[t.createElementVNode("div",ks,[t.createVNode(Wn)]),t.createElementVNode("div",{class:t.normalizeClass(["bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 px-5 py-4 shadow-sm rounded-2xl transition-all duration-200 flex-1",a.value.assistantBubble])},[o.message.loading?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["flex items-center gap-2 text-sm min-w-[150px]",a.value.loadingIndicator])},[t.createElementVNode("div",{class:t.normalizeClass(["flex space-x-1",a.value.loadingDots])},[...b[2]||(b[2]=[t.createElementVNode("div",{class:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{"animation-delay":"0ms"}},null,-1),t.createElementVNode("div",{class:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{"animation-delay":"150ms"}},null,-1),t.createElementVNode("div",{class:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{"animation-delay":"300ms"}},null,-1)])],2),t.createElementVNode("span",xs,t.toDisplayString(((C=o.texts)==null?void 0:C.loadingText)||o.loadingText),1)],2)):o.message.message?(t.openBlock(),t.createElementBlock("div",{key:1,id:o.message.id,class:t.normalizeClass(["prose prose-sm max-w-none prose-gray dark:prose-invert",a.value.content]),innerHTML:E.value},null,10,ws)):t.createCommentVNode("",!0),!o.message.loading&&u.value?(t.openBlock(),t.createElementBlock("div",{key:2,class:t.normalizeClass(["mt-4 space-y-2",a.value.attachmentsContainer])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,w=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(w.url?"a":"div"),{key:w.id,href:w.url||void 0,target:w.url?"_blank":void 0,rel:"noopener noreferrer",class:t.normalizeClass(["flex items-center gap-3 rounded-xl border border-gray-200 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 p-3 transition",[a.value.attachmentItem,w.url?"hover:bg-white dark:hover:bg-gray-600 cursor-pointer":""]])},{default:t.withCtx(()=>[t.createElementVNode("div",bs,[w.url&&x(w)?(t.openBlock(),t.createElementBlock("img",{key:0,src:w.url,class:"object-cover h-full w-full",alt:""},null,8,Es)):(t.openBlock(),t.createElementBlock("svg",Cs,[...b[3]||(b[3]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},null,-1)])]))]),t.createElementVNode("div",Ss,[t.createElementVNode("p",Ts,t.toDisplayString(w.name||s("attachment")),1),t.createElementVNode("p",As,t.toDisplayString(f(w.size)),1)]),w.url?(t.openBlock(),t.createElementBlock("span",Ms,t.toDisplayString(s("openAttachment")),1)):t.createCommentVNode("",!0)]),_:2},1032,["href","target","class"]))),128))],2)):t.createCommentVNode("",!0)],2)],2)),o.message.role==="assistant"&&!o.message.loading&&!o.message.streaming&&o.showActions?(t.openBlock(),t.createBlock(Gn,{key:2,message:o.message,class:t.normalizeClass(["absolute -bottom-8 left-14",a.value.actionsContainer]),onCopy:g},null,8,["message","class"])):t.createCommentVNode("",!0)],2)}}}),Qn=(o,e)=>{const n=o.__vccOpts||o;for(const[r,s]of e)n[r]=s;return n},Zn=Qn(Ns,[["__scopeId","data-v-b5ba399c"]]),Rs={class:"text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wide"},Bs={class:"space-y-2"},Ls=["src"],Ds={key:1,class:"w-5 h-5 text-gray-500 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Is={class:"flex-1 min-w-0"},zs={class:"text-sm font-medium text-gray-800 dark:text-gray-200 truncate"},$s={class:"text-xs text-gray-500 dark:text-gray-400"},_s={key:0,class:"mt-1 h-1 bg-gray-200 dark:bg-gray-600 rounded-full overflow-hidden"},Os={key:0,class:"text-xs text-gray-400"},Ps=["disabled","onClick"],Vs=t.defineComponent({__name:"AttachmentsPreview",props:{attachments:{},ui:{},texts:{},isImage:{type:Function},formatFileSize:{type:Function}},emits:["remove"],setup(o){return(e,n)=>{var r;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["border border-gray-200 dark:border-gray-700 rounded-2xl p-3 bg-gray-50 dark:bg-gray-800 space-y-3",o.ui.attachmentsContainer])},[t.createElementVNode("p",Rs,t.toDisplayString(((r=o.texts)==null?void 0:r.attachedFiles)||"Attached files"),1),t.createElementVNode("ul",Bs,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.attachments,s=>(t.openBlock(),t.createElementBlock("li",{key:s.id,class:t.normalizeClass(["flex items-center gap-3 rounded-xl bg-white dark:bg-gray-700 p-2 shadow-sm border border-gray-100 dark:border-gray-600",o.ui.attachmentItem])},[t.createElementVNode("div",{class:t.normalizeClass(["h-10 w-10 flex items-center justify-center rounded-lg bg-gray-100 dark:bg-gray-600 overflow-hidden",o.ui.attachmentThumbnail])},[o.isImage(s)?(t.openBlock(),t.createElementBlock("img",{key:0,src:s.previewUrl||s.url,class:"object-cover h-full w-full",alt:""},null,8,Ls)):(t.openBlock(),t.createElementBlock("svg",Ds,[...n[0]||(n[0]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},null,-1)])]))],2),t.createElementVNode("div",Is,[t.createElementVNode("p",zs,t.toDisplayString(s.name),1),t.createElementVNode("p",$s,t.toDisplayString(o.formatFileSize(s.size)),1),s.uploading?(t.openBlock(),t.createElementBlock("div",_s,[t.createElementVNode("div",{class:"h-full bg-primary transition-all",style:t.normalizeStyle({width:`${s.progress??10}%`})},null,4)])):t.createCommentVNode("",!0)]),s.uploading?(t.openBlock(),t.createElementBlock("span",Os,t.toDisplayString(Math.round(s.progress??0))+"% ",1)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["p-1 rounded-full hover:bg-gray-100 dark:hover:bg-gray-600 disabled:opacity-50 disabled:cursor-not-allowed",o.ui.attachmentRemove]),disabled:s.uploading,onClick:a=>e.$emit("remove",s.id)},[...n[1]||(n[1]=[t.createElementVNode("svg",{class:"w-4 h-4 text-gray-500 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M6 18L18 6M6 6l12 12"})],-1)])],10,Ps)],2))),128))])],2)}}}),Fs={class:"py-1"},Hs=["onClick","onMouseenter"],Us={class:"flex items-start gap-3"},qs={class:"flex-1 min-w-0"},vs={class:"text-sm font-medium text-gray-900 dark:text-gray-100"},js={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 line-clamp-2"},Ws=t.defineComponent({__name:"SuggestionsDropdown",props:{suggestions:{},selectedIndex:{},ui:{}},emits:["select","hover"],setup(o,{expose:e}){const n=t.ref(null);return e({dropdownRef:n}),(r,s)=>(t.openBlock(),t.createBlock(t.Transition,{"enter-active-class":"transition ease-out duration-100","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:t.withCtx(()=>[t.createElementVNode("div",{ref_key:"dropdownRef",ref:n,class:t.normalizeClass(["absolute bottom-full left-0 right-0 mb-2 bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 shadow-lg max-h-80 overflow-y-auto z-10",o.ui.suggestionsDropdown])},[t.createElementVNode("ul",Fs,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.suggestions,(a,i)=>(t.openBlock(),t.createElementBlock("li",{key:a.id,class:t.normalizeClass(["px-4 py-3 cursor-pointer transition-colors border-b border-gray-100 dark:border-gray-700 last:border-b-0",[o.ui.suggestionItem,{[o.ui.suggestionItemSelected||"bg-primary/10"]:i===o.selectedIndex,"hover:bg-gray-50 dark:hover:bg-gray-700":i!==o.selectedIndex}]]),onClick:l=>r.$emit("select",a),onMouseenter:l=>r.$emit("hover",i)},[t.createElementVNode("div",Us,[t.createElementVNode("div",qs,[t.createElementVNode("p",vs,t.toDisplayString(a.title),1),t.createElementVNode("p",js,t.toDisplayString(a.description),1)])])],42,Hs))),128))])],2)]),_:1}))}}),Ks={class:"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1 z-10"},Gs=["title"],Qs=["title"],Zs=["disabled"],Ys={key:0,class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Xs={key:1,class:"w-4 h-4",viewBox:"0 0 24 24",fill:"currentColor"},Js=t.defineComponent({__name:"InputActions",props:{sending:{type:Boolean},canSend:{type:Boolean},supportRequestMode:{type:Boolean},showSupportModeToggle:{type:Boolean},ui:{},texts:{}},emits:["toggle-support-mode","click"],setup(o){const e=o,n=t.computed(()=>e.sending?[e.ui.stopButton||"bg-red-500 text-white hover:bg-red-600"]:e.canSend?[e.ui.sendButtonActive||"bg-primary-500 text-white hover:bg-primary-600"]:[e.ui.sendButtonDisabled||"bg-gray-200 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed opacity-60"]);return(r,s)=>{var a,i,l;return t.openBlock(),t.createElementBlock("div",Ks,[o.showSupportModeToggle&&!o.supportRequestMode?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["h-9 w-9 rounded-xl flex items-center justify-center text-gray-400 hover:text-primary hover:bg-gray-100 dark:hover:bg-gray-700 transition flex-shrink-0",o.ui.supportToggle]),title:((a=o.texts)==null?void 0:a.toggleSupportMode)||"Toggle support mode",onClick:s[0]||(s[0]=d=>r.$emit("toggle-support-mode"))},[...s[3]||(s[3]=[t.createElementVNode("svg",{class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"})],-1)])],10,Gs)):t.createCommentVNode("",!0),o.showSupportModeToggle&&o.supportRequestMode?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:t.normalizeClass(["h-7 px-2 rounded-lg flex items-center gap-1 text-xs font-medium bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-400 hover:bg-amber-200 dark:hover:bg-amber-900/50 transition flex-shrink-0",o.ui.supportBadge]),title:((i=o.texts)==null?void 0:i.exitSupportMode)||"Exit support mode",onClick:s[1]||(s[1]=d=>r.$emit("toggle-support-mode"))},[s[4]||(s[4]=t.createElementVNode("svg",{class:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(((l=o.texts)==null?void 0:l.supportLabel)||"Support"),1),s[5]||(s[5]=t.createElementVNode("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1))],10,Qs)):t.createCommentVNode("",!0),t.createElementVNode("button",{disabled:!o.canSend&&!o.sending,class:t.normalizeClass(["h-9 w-9 rounded-xl flex items-center justify-center transition-all duration-200 flex-shrink-0",n.value]),type:"button",onClick:s[2]||(s[2]=t.withModifiers(d=>r.$emit("click"),["prevent"]))},[o.sending?(t.openBlock(),t.createElementBlock("svg",Xs,[...s[7]||(s[7]=[t.createElementVNode("path",{"fill-rule":"evenodd",d:"M4.5 7.5a3 3 0 013-3h9a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9z","clip-rule":"evenodd"},null,-1)])])):(t.openBlock(),t.createElementBlock("svg",Ys,[...s[6]||(s[6]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5"},null,-1)])]))],10,Zs)])}}}),ea={class:"max-w-3xl mx-auto space-y-3"},ta=["accept"],na=["title"],oa={class:"flex items-center"},ra=["placeholder","disabled"],sa={key:0,class:"flex justify-center"},Yn=t.defineComponent({__name:"ChatInput",props:{modelValue:{},disabled:{type:Boolean,default:!1},sending:{type:Boolean,default:!1},placeholder:{default:"Ask me anything..."},supportPlaceholder:{default:"Describe your support request..."},minLength:{default:3},suggestions:{default:()=>[]},hasHistory:{type:Boolean,default:!1},supportRequestMode:{type:Boolean,default:!1},showSupportModeToggle:{type:Boolean,default:!1},contextLinkText:{default:""},ui:{},texts:{}},emits:["update:modelValue","submit","cancel","suggestion-select","toggle-support-mode","context-link-click"],setup(o,{emit:e}){const n=o,r=t.computed(()=>n.ui||{}),s=e,a=t.ref(n.modelValue),i=t.ref(null),l=t.ref(null),d=t.ref(!1),u=ts(),p=ns(()=>a.value,T=>{a.value=T},()=>i.value),h=os(()=>n.suggestions,()=>n.hasHistory,()=>d.value,()=>a.value,T=>{s("suggestion-select",T),t.nextTick(()=>{var N;return(N=i.value)==null?void 0:N.focus()})}),{adjustTextareaHeight:x}=rs(()=>i.value),y=t.computed(()=>n.supportRequestMode?n.supportPlaceholder:n.placeholder),f=t.computed(()=>n.showSupportModeToggle?n.supportRequestMode?{paddingLeft:"3rem",paddingRight:"8rem"}:{paddingLeft:"3rem",paddingRight:"6rem"}:{paddingLeft:"3rem",paddingRight:"3.5rem"}),E=t.computed(()=>{var N;return(((N=a.value)==null?void 0:N.trim())??"").length>=n.minLength?!0:u.hasAttachments.value}),g=t.computed(()=>!n.disabled&&!n.sending&&E.value&&!u.isUploading.value);t.watch(()=>n.modelValue,T=>{a.value=T,t.nextTick(x)}),t.watch(a,T=>{s("update:modelValue",T),t.nextTick(x),p.checkForMentions(T),h.updateSuggestionsVisibility()}),t.watch(()=>n.suggestions,()=>{h.updateSuggestionsVisibility()});function m(){x()}function b(T){if(!p.handleMentionKeyDown(T)&&!h.handleSuggestionKeyDown(T)&&T.key==="Enter"){if(T.shiftKey)return;!n.sending&&g.value&&(T.preventDefault(),C())}}function C(){if(!g.value)return;const T=u.buildPayload(),N=a.value.trim(),D=p.getMentions();s("submit",{message:N,attachments:T,mentions:D,isSupportRequest:n.supportRequestMode}),a.value="",u.clearAttachments(),p.clearMentions(),t.nextTick(x)}function w(){n.sending?s("cancel"):g.value&&C()}function z(){var T;n.disabled||n.sending||u.canAddMore.value&&((T=l.value)==null||T.click())}function $(T){h.handleSuggestionClick(T)}function F(){d.value=!0,h.updateSuggestionsVisibility()}function S(){d.value=!1,setTimeout(()=>{h.hideSuggestions(),p.showMentions.value=!1},200)}return t.onMounted(()=>{t.nextTick(x)}),(T,N)=>{var D;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["px-4 pb-4 bg-white dark:bg-gray-900 sticky bottom-0",r.value.root]),onDragenter:N[6]||(N[6]=t.withModifiers((...M)=>t.unref(u).handleDragEnter&&t.unref(u).handleDragEnter(...M),["prevent"])),onDragover:N[7]||(N[7]=t.withModifiers((...M)=>t.unref(u).handleDragOver&&t.unref(u).handleDragOver(...M),["prevent"])),onDragleave:N[8]||(N[8]=t.withModifiers((...M)=>t.unref(u).handleDragLeave&&t.unref(u).handleDragLeave(...M),["prevent"])),onDrop:N[9]||(N[9]=t.withModifiers((...M)=>t.unref(u).handleDrop&&t.unref(u).handleDrop(...M),["prevent"]))},[t.createElementVNode("form",{onSubmit:t.withModifiers(C,["prevent"]),class:t.normalizeClass(r.value.form)},[t.createElementVNode("div",ea,[t.createElementVNode("input",{ref_key:"fileInputRef",ref:l,type:"file",class:"hidden",multiple:"",accept:t.unref(u).acceptedFileTypes,onChange:N[0]||(N[0]=(...M)=>t.unref(u).handleFileSelect&&t.unref(u).handleFileSelect(...M))},null,40,ta),t.unref(u).hasAttachments.value?(t.openBlock(),t.createBlock(Vs,{key:0,attachments:t.unref(u).attachments.value,ui:r.value,texts:o.texts,"is-image":t.unref(u).isImage,"format-file-size":t.unref(u).formatFileSize,onRemove:t.unref(u).removeAttachment},null,8,["attachments","ui","texts","is-image","format-file-size","onRemove"])):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(["relative",r.value.inputContainer])},[t.unref(h).showSuggestions.value&&o.suggestions.length>0?(t.openBlock(),t.createBlock(Ws,{key:0,ref:"suggestionsHandler.dropdownRef.value",suggestions:o.suggestions,"selected-index":t.unref(h).selectedSuggestionIndex.value,ui:r.value,onSelect:$,onHover:N[1]||(N[1]=M=>t.unref(h).selectedSuggestionIndex.value=M)},null,8,["suggestions","selected-index","ui"])):t.createCommentVNode("",!0),t.createVNode(t.Transition,{"enter-active-class":"transition ease-out duration-100","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:t.withCtx(()=>[t.unref(p).showMentions.value&&t.unref(p).mentionItems.value.length>0?(t.openBlock(),t.createBlock(Kn,{key:0,items:t.unref(p).mentionItems.value,"selected-index":t.unref(p).selectedMentionIndex.value,providers:t.unref(p).mentionProviders.value,onSelect:t.unref(p).handleMentionSelect,"onUpdate:selectedIndex":N[2]||(N[2]=M=>t.unref(p).selectedMentionIndex.value=M)},null,8,["items","selected-index","providers","onSelect"])):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("div",{class:t.normalizeClass(["rounded-2xl border shadow-lg transition-all duration-200 bg-white dark:bg-gray-800",[r.value.inputWrapper,{"border-primary shadow-primary/30":d.value||t.unref(u).isDraggingFiles.value,"border-gray-200 dark:border-gray-700 shadow-gray-100 dark:shadow-gray-900":!d.value&&!t.unref(u).isDraggingFiles.value}]])},[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["absolute left-3 top-1/2 -translate-y-1/2 h-9 w-9 rounded-xl flex items-center justify-center text-gray-500 dark:text-gray-400 hover:text-primary transition z-10",r.value.attachButton]),title:((D=o.texts)==null?void 0:D.attachFiles)||"Attach files",onClick:z},[...N[10]||(N[10]=[t.createElementVNode("svg",{class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M18.375 12.739l-7.693 7.693a4.5 4.5 0 01-6.364-6.364l10.94-10.94A3 3 0 1119.5 7.372L8.552 18.32m.009-.01l-.01.01m5.699-9.941l-7.81 7.81a1.5 1.5 0 002.112 2.13"})],-1)])],10,na),t.createElementVNode("div",oa,[t.withDirectives(t.createElementVNode("textarea",{ref_key:"textareaRef",ref:i,"onUpdate:modelValue":N[3]||(N[3]=M=>a.value=M),rows:"1","data-ai-input":"",placeholder:y.value,disabled:o.disabled,class:t.normalizeClass(["block w-full bg-transparent py-3 text-sm leading-5 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 dark:placeholder:text-gray-500 border-0 focus:outline-none focus-visible:outline-none resize-none",r.value.textarea]),style:t.normalizeStyle(f.value),onInput:m,onKeydown:b,onFocus:F,onBlur:S},null,46,ra),[[t.vModelText,a.value]])]),t.createVNode(Js,{sending:o.sending,"can-send":g.value,"support-request-mode":o.supportRequestMode,"show-support-mode-toggle":o.showSupportModeToggle,ui:r.value,texts:o.texts,onToggleSupportMode:N[4]||(N[4]=M=>T.$emit("toggle-support-mode")),onClick:w},null,8,["sending","can-send","support-request-mode","show-support-mode-toggle","ui","texts"])],2)],2),t.renderSlot(T.$slots,"context-link",{},()=>[o.contextLinkText?(t.openBlock(),t.createElementBlock("div",sa,[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["text-xs text-gray-400 hover:text-primary transition-colors",r.value.contextLink]),onClick:N[5]||(N[5]=M=>T.$emit("context-link-click"))},t.toDisplayString(o.contextLinkText),3)])):t.createCommentVNode("",!0)])])],34)],34)}}}),aa=["onClick"],Xn=t.defineComponent({__name:"AiEmptyState",props:{ui:{},texts:{}},emits:["item-click"],setup(o,{emit:e}){const n=o,r=e,s=x=>{var f;return(f=n.texts)!=null&&f[x]?n.texts[x]:J({aiName:"aiName",title:"emptyStateTitle",description:"emptyStateDescription"}[x])},a=t.computed(()=>n.ui||{}),{suggestions:i,resolvePrompt:l}=jt();function d(x){const y={...x,prompt:l(x)};r("item-click",y)}function u(x){return x.gradientClass?x.gradientClass:x.className?x.className:"bg-gradient-to-br from-white to-gray-50 dark:from-gray-800 dark:to-gray-900"}function p(x){const y=x.category||"default",f={hr:"bg-blue-100 dark:bg-blue-900/30",finance:"bg-green-100 dark:bg-green-900/30",analytics:"bg-purple-100 dark:bg-purple-900/30",support:"bg-amber-100 dark:bg-amber-900/30",default:"bg-primary/10"};return f[y]||f.default}function h(x){const y=x.category||"default",f={hr:"text-blue-600 dark:text-blue-400",finance:"text-green-600 dark:text-green-400",analytics:"text-purple-600 dark:text-purple-400",support:"text-amber-600 dark:text-amber-400",default:"text-primary"};return f[y]||f.default}return(x,y)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["flex items-center justify-center p-4 h-full",a.value.root])},[t.createElementVNode("div",{class:t.normalizeClass(["w-full max-w-4xl",a.value.content])},[t.createElementVNode("div",{class:t.normalizeClass(["mb-8 text-center",a.value.header])},[t.createElementVNode("div",{class:t.normalizeClass(["mb-3 inline-flex items-center gap-2 rounded-full bg-primary/10 px-4 py-2 text-sm font-medium text-primary",a.value.badge])},[y[0]||(y[0]=t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(s("aiName")),1)],2),t.createElementVNode("h1",{class:t.normalizeClass(["mb-3 text-4xl font-bold tracking-tight text-gray-900 dark:text-white",a.value.title])},t.toDisplayString(s("title")),3),t.createElementVNode("p",{class:t.normalizeClass(["text-gray-600 dark:text-gray-400",a.value.description])},t.toDisplayString(s("description")),3)],2),t.createElementVNode("div",{class:t.normalizeClass(["mb-8 grid gap-3 sm:grid-cols-2 lg:grid-cols-3",a.value.grid])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),(f,E)=>(t.openBlock(),t.createElementBlock("button",{key:f.id||E,class:t.normalizeClass(["group relative overflow-hidden rounded-xl border border-gray-300 dark:border-gray-600 p-4 text-left transition-all hover:shadow-md hover:scale-[1.02]",[a.value.suggestionCard,u(f)]]),onClick:g=>d(f)},[t.createElementVNode("div",{class:t.normalizeClass(["mb-2 inline-flex h-10 w-10 items-center justify-center rounded-lg",[a.value.suggestionIconContainer,p(f)]])},[f.icon?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(f.icon),{key:0,class:t.normalizeClass(["h-5 w-5",[a.value.suggestionIcon,h(f)]])},null,8,["class"])):(t.openBlock(),t.createElementBlock("svg",{key:1,class:t.normalizeClass(["h-5 w-5",[a.value.suggestionIcon,h(f)]]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[...y[1]||(y[1]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"},null,-1)])],2))],2),t.createElementVNode("h3",{class:t.normalizeClass(["mb-1 text-sm font-semibold text-gray-900 dark:text-white",a.value.suggestionTitle])},t.toDisplayString(f.title),3),t.createElementVNode("p",{class:t.normalizeClass(["text-xs text-gray-600 dark:text-gray-400",a.value.suggestionDescription])},t.toDisplayString(f.description),3)],10,aa))),128))],2)],2)],2))}}),ia={class:"flex items-center gap-3"},la={key:1,class:"text-xs text-gray-400 dark:text-gray-500 font-medium"},ca={key:1,class:"flex items-center gap-2"},ua={key:0,class:"flex items-center gap-2 ml-auto mr-3"},da=["title"],pa=["title"],fa=["title"],ma={key:0,class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},ha={key:1,class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},ga=t.defineComponent({__name:"DrawerHeader",props:{ui:{},isSetupMode:{type:Boolean},showNewChatButton:{type:Boolean},hasHistory:{type:Boolean},showQuota:{type:Boolean},quota:{},showCloseButton:{type:Boolean},showMinimizeButton:{type:Boolean},showFullscreenToggle:{type:Boolean},isFullscreen:{type:Boolean},t:{type:Function}},emits:["new-chat","close","minimize","toggle-fullscreen"],setup(o){return(e,n)=>{var r,s,a,i,l,d;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["flex items-center justify-between px-4 sm:px-6 pt-4 border-b border-gray-200 dark:border-gray-700 pb-4",(r=o.ui)==null?void 0:r.header])},[t.createElementVNode("div",ia,[o.isSetupMode?(t.openBlock(),t.createElementBlock("div",ca,[...n[5]||(n[5]=[t.createElementVNode("span",{class:"flex h-2 w-2 rounded-full bg-amber-500 animate-pulse"},null,-1),t.createElementVNode("span",{class:"text-sm font-medium text-gray-700 dark:text-gray-300"},"Setup Required",-1)])])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[o.showNewChatButton&&o.hasHistory?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["inline-flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-400 transition-all duration-200 shadow-sm",(s=o.ui)==null?void 0:s.newChatButton]),onClick:n[0]||(n[0]=u=>e.$emit("new-chat"))},[n[4]||(n[4]=t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(o.t("newChat")),1)],2)):(t.openBlock(),t.createElementBlock("span",la,t.toDisplayString(o.t("keyboardShortcutHint")),1))],64))]),o.showQuota&&!o.isSetupMode?(t.openBlock(),t.createElementBlock("div",ua,[t.renderSlot(e.$slots,"quota",{},()=>{var u,p;return[o.quota.remaining>0?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass(["text-xs text-green-600 dark:text-green-400",(u=o.ui)==null?void 0:u.quotaDisplay])},t.toDisplayString(o.quota.remaining)+" "+t.toDisplayString(o.t("quotaRemaining")),3)):o.quota.remaining===0?(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(["text-xs text-red-600 dark:text-red-400",(p=o.ui)==null?void 0:p.quotaDisplay])},t.toDisplayString(o.t("noQuota")),3)):t.createCommentVNode("",!0)]})])):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(["flex items-center gap-1",(a=o.ui)==null?void 0:a.headerActions])},[o.showCloseButton?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",(i=o.ui)==null?void 0:i.headerActionButton]),title:o.t("close"),onClick:n[1]||(n[1]=u=>e.$emit("close"))},[...n[6]||(n[6]=[t.createElementVNode("svg",{class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],10,da)):t.createCommentVNode("",!0),o.showMinimizeButton?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:t.normalizeClass(["p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",(l=o.ui)==null?void 0:l.headerActionButton]),title:o.t("minimize"),onClick:n[2]||(n[2]=u=>e.$emit("minimize"))},[...n[7]||(n[7]=[t.createElementVNode("svg",{class:"w-5 h-5 text-gray-600 dark:text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 12h14"})],-1)])],10,pa)):t.createCommentVNode("",!0),o.showFullscreenToggle?(t.openBlock(),t.createElementBlock("button",{key:2,type:"button",class:t.normalizeClass(["p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors",(d=o.ui)==null?void 0:d.headerActionButton]),title:o.isFullscreen?o.t("exitFullscreen"):o.t("fullscreen"),onClick:n[3]||(n[3]=u=>e.$emit("toggle-fullscreen"))},[o.isFullscreen?(t.openBlock(),t.createElementBlock("svg",ha,[...n[9]||(n[9]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25"},null,-1)])])):(t.openBlock(),t.createElementBlock("svg",ma,[...n[8]||(n[8]=[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"},null,-1)])]))],10,fa)):t.createCommentVNode("",!0)],2)],2)}}}),ya={class:"max-w-3xl mx-auto px-4 space-y-6"},ka={class:"flex justify-center"},xa={class:"inline-flex items-center gap-2 rounded-full bg-primary/10 px-4 py-2 text-sm font-medium text-primary"},wa={key:0,class:"flex justify-center"},ba=["title"],Ea=t.defineComponent({__name:"DrawerMessageList",props:{messages:{},loadingMessage:{},quota:{},error:{},ui:{},t:{type:Function}},emits:["copy","contact-support","retry"],setup(o){return(e,n)=>{var r,s,a;return t.openBlock(),t.createElementBlock("div",ya,[t.createElementVNode("div",ka,[t.createElementVNode("div",xa,[n[3]||(n[3]=t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1.5"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(o.t("title")||t.unref(J)("aiName")),1)])]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.messages,(i,l)=>t.renderSlot(e.$slots,"message",{key:i.id||l,message:i,isUser:i.role==="user",isLoading:i.loading,isStreaming:i.streaming},()=>[t.createVNode(Zn,{message:i,"loading-text":o.loadingMessage,onCopy:n[0]||(n[0]=d=>e.$emit("copy",d))},null,8,["message","loading-text"])])),128)),o.quota.remaining===0?(t.openBlock(),t.createElementBlock("div",wa,[t.createElementVNode("button",{type:"button",class:"inline-flex items-center gap-2 px-6 py-3 bg-primary-500 text-white rounded-lg hover:bg-primary-600 transition-all shadow-sm",onClick:n[1]||(n[1]=i=>e.$emit("contact-support"))},[n[4]||(n[4]=t.createElementVNode("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})],-1)),t.createElementVNode("span",null,t.toDisplayString(t.unref(J)("contactSupport")),1)])])):t.createCommentVNode("",!0),o.error.message?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["flex items-center gap-2 text-sm text-red-600 dark:text-red-400 px-2 py-1 pb-6",(r=o.ui)==null?void 0:r.errorContainer])},[t.createElementVNode("span",{class:t.normalizeClass((s=o.ui)==null?void 0:s.errorMessage)},t.toDisplayString(o.error.message),3),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["inline-flex items-center gap-1 text-red-700 dark:text-red-300 hover:text-red-800 dark:hover:text-red-200 font-medium",(a=o.ui)==null?void 0:a.retryButton]),title:o.t("retry"),onClick:n[2]||(n[2]=i=>e.$emit("retry"))},[...n[5]||(n[5]=[t.createElementVNode("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1)])],10,ba)],2)):t.createCommentVNode("",!0)])}}}),Ca={class:"w-full max-w-md"},Sa={class:"bg-gray-900 rounded-xl overflow-hidden"},Ta={class:"flex items-center justify-between px-4 py-2 bg-gray-800/50 border-b border-gray-700"},Aa=t.defineComponent({__name:"SetupGuide",props:{copied:{type:Boolean}},emits:["copy"],setup(o){return(e,n)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[n[4]||(n[4]=t.createStaticVNode('<div class="w-14 h-14 rounded-2xl bg-primary/10 flex items-center justify-center mb-5"><svg class="w-7 h-7 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09Z"></path></svg></div><h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-1"> Almost there! </h2><p class="text-sm text-gray-500 dark:text-gray-400 mb-6 max-w-sm text-center"> Configure the plugin in your app entry file to start using AI. </p>',3)),t.createElementVNode("div",Ca,[t.createElementVNode("div",Sa,[t.createElementVNode("div",Ta,[n[1]||(n[1]=t.createElementVNode("span",{class:"text-xs text-gray-400"},"main.ts",-1)),t.createElementVNode("button",{type:"button",class:"text-xs text-gray-400 hover:text-white transition-colors",onClick:n[0]||(n[0]=r=>e.$emit("copy"))},t.toDisplayString(o.copied?"✓ Copied":"Copy"),1)]),n[2]||(n[2]=t.createStaticVNode(`<pre class="text-xs text-gray-100 p-4 overflow-x-auto leading-relaxed"><code class="language-typescript"><span class="text-purple-400">import</span> { RestifyAiPlugin } <span class="text-purple-400">from</span> <span class="text-green-400">&#39;@doderasoftware/restify-ai&#39;</span>
61
61
 
62
62
  app.<span class="text-yellow-300">use</span>(RestifyAiPlugin, {
63
63
  <span class="text-blue-300">endpoints</span>: {
@@ -65,7 +65,7 @@ app.<span class="text-yellow-300">use</span>(RestifyAiPlugin, {
65
65
  <span class="text-blue-300">quota</span>: <span class="text-green-400">&#39;/api/ai/quota&#39;</span>, <span class="text-gray-500">// optional</span>
66
66
  },
67
67
  <span class="text-blue-300">getAuthToken</span>: () =&gt; <span class="text-yellow-300">getToken</span>(),
68
- })</code></pre>`,1))]),n[3]||(n[3]=t.createElementVNode("p",{class:"text-xs text-gray-400 dark:text-gray-500 mt-4 text-center"},[t.createTextVNode(" Need help? Check the "),t.createElementVNode("a",{href:"https://github.com/doderasoftware/restify-ai",target:"_blank",class:"text-primary hover:underline"},"documentation")],-1))])],64))}}),Ma={key:0,class:"absolute inset-0 bg-black/50 flex items-center justify-center z-10"},Na={key:0,class:"flex items-center gap-3 mb-4"},Ra={class:"text-lg font-semibold text-gray-900 dark:text-white"},Ba={key:1,class:"text-lg font-semibold text-gray-900 dark:text-white mb-2"},La={class:"text-sm text-gray-600 dark:text-gray-400 mb-6"},Da={class:"flex justify-end gap-3"},Jn=t.defineComponent({__name:"ConfirmDialog",props:{show:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{},ui:{},icon:{default:null},confirmVariant:{default:"danger"}},emits:["confirm","cancel"],setup(o){const e=o,n=t.computed(()=>{var s,a;return e.icon==="warning"?(s=e.ui)==null?void 0:s.historyLimitModal:(a=e.ui)==null?void 0:a.closeConfirmModal}),r=t.computed(()=>{var i,l;const s=e.confirmVariant==="danger"?"bg-red-600 hover:bg-red-700":"bg-primary hover:bg-primary/90",a=e.confirmVariant==="danger"?(i=e.ui)==null?void 0:i.closeConfirmButton:(l=e.ui)==null?void 0:l.historyLimitButton;return[s,a]});return(s,a)=>(t.openBlock(),t.createBlock(t.Transition,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition ease-in duration-150","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:t.withCtx(()=>{var i;return[o.show?(t.openBlock(),t.createElementBlock("div",Ma,[t.createElementVNode("div",{class:t.normalizeClass(["bg-white dark:bg-gray-800 rounded-xl p-6 m-4 max-w-sm w-full shadow-xl",n.value])},[o.icon==="warning"?(t.openBlock(),t.createElementBlock("div",Na,[a[2]||(a[2]=t.createElementVNode("div",{class:"flex-shrink-0 w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center"},[t.createElementVNode("svg",{class:"w-5 h-5 text-amber-600 dark:text-amber-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})])],-1)),t.createElementVNode("h3",Ra,t.toDisplayString(o.title),1)])):(t.openBlock(),t.createElementBlock("h3",Ba,t.toDisplayString(o.title),1)),t.createElementVNode("p",La,t.toDisplayString(o.message),1),t.createElementVNode("div",Da,[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-700 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors",(i=o.ui)==null?void 0:i.cancelButton]),onClick:a[0]||(a[0]=l=>s.$emit("cancel"))},t.toDisplayString(o.cancelText),3),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["px-4 py-2 text-sm font-medium text-white rounded-lg transition-colors",r.value]),onClick:a[1]||(a[1]=l=>s.$emit("confirm"))},t.toDisplayString(o.confirmText),3)])],2)])):t.createCommentVNode("",!0)]}),_:1}))}}),Ia={key:0,class:"flex-1 flex flex-col items-center justify-center p-6 overflow-y-auto"},za={key:0,class:"flex-1 flex flex-col overflow-y-auto"},$a=Qn(t.defineComponent({__name:"AiChatDrawer",props:{modelValue:{type:Boolean},ui:{},texts:{},width:{default:"600px"},fullscreenWidth:{default:"90vw"},topOffset:{default:"0"},position:{default:"right"},showBackdrop:{type:Boolean,default:!1},closeOnBackdropClick:{type:Boolean,default:!1},closeOnEscape:{type:Boolean,default:!0},showQuota:{type:Boolean,default:!0},showFullscreenToggle:{type:Boolean,default:!0},showMinimizeButton:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showNewChatButton:{type:Boolean,default:!0},confirmClose:{type:Boolean,default:!0},historyLimit:{},loadingText:{},autoFetchQuota:{type:Boolean,default:!0}},emits:["update:modelValue","close","contact-support","new-chat"],setup(o,{emit:e}){const n=o,r=e,s=t.computed({get:()=>n.modelValue,set:L=>r("update:modelValue",L)});function a(L,V){var G;const H=(G=n.texts)==null?void 0:G[L];if(H){let W=H;if(V)for(const[K,se]of Object.entries(V))W=W.replace(`{${K}}`,String(se));return W}return J(L,V)}const i=Ce(),l=t.ref(""),d=t.ref(null),u=t.ref(!1),p=t.ref(!1),h=t.ref(!1),{loadingMessage:x,startLoadingText:y,resetLoadingText:f}=Jr(()=>i.sending,()=>n.loadingText),{showHistoryLimitWarning:E,historyLimitReached:g,historyLimitDialogTitle:m,historyLimitDialogMessage:b,dismissHistoryLimitWarning:C,handleHistoryLimitAction:w,checkHistoryLimit:z,setPendingMessage:$}=es({getHistoryLength:()=>i.chatHistory.length,getStoreLimit:()=>i.chatHistoryLimit,getConfig:()=>n.historyLimit,getTexts:()=>n.texts,onStartNewChat:()=>i.clearChatHistory(),onNewChatEmit:()=>r("new-chat")}),F=t.computed(()=>!Ct()),S=t.computed(()=>Te("enableSupportMode")??!1),{suggestions:T,resolvePrompt:N}=jt(),D=t.computed(()=>{if(F.value)return[];const L=l.value.toLowerCase().trim(),V=T.value||[];let H=V;if(L){const G=new Set(["a","an","the","and","or","but","in","on","at","to","for","of","with","by"]),W=L.split(/\s+/).filter(K=>!G.has(K));W.length>0&&(H=V.filter(K=>{const se=`${K.title} ${K.description||""}`.toLowerCase();return W.every(me=>se.includes(me))}))}return H.slice(0,5).map(G=>({id:G.id,title:G.title,description:G.description||""}))}),M=t.computed(()=>({quota:i.quota,isFullscreen:u.value,hasHistory:i.chatHistory.length>0,onNewChat:Z,onClose:Be,onMinimize:ye,onToggleFullscreen:Re})),Q=t.computed(()=>({modelValue:l.value,sending:i.sending,disabled:!1,onSubmit:ke,onCancel:()=>i.cancelRequest()}));function fe(L){const V=(T.value||[]).find(H=>H.id===L.id);V&&(l.value=N(V))}function Re(){u.value=!u.value}function ye(){s.value=!1}function Be(){n.confirmClose&&!F.value&&i.chatHistory.length>0?h.value=!0:(s.value=!1,r("close"))}function pt(){h.value=!1,i.clearChatHistory(),s.value=!1,r("close")}function Wt(){r("contact-support")}function ft(){i.toggleSupportMode()}async function j(){await t.nextTick();const L=document.getElementById("rai-chat-bottom");L&&L.scrollIntoView({behavior:"smooth",block:"end"})}function Je(L){l.value=L.prompt,i.clearError()}function Z(){i.clearChatHistory(),r("new-chat")}function mt(L){}function v(){navigator.clipboard.writeText(`import { RestifyAiPlugin } from '@doderasoftware/restify-ai'
68
+ })</code></pre>`,1))]),n[3]||(n[3]=t.createElementVNode("p",{class:"text-xs text-gray-400 dark:text-gray-500 mt-4 text-center"},[t.createTextVNode(" Need help? Check the "),t.createElementVNode("a",{href:"https://github.com/doderasoftware/restify-ai",target:"_blank",class:"text-primary hover:underline"},"documentation")],-1))])],64))}}),Ma={key:0,class:"absolute inset-0 bg-black/50 flex items-center justify-center z-10"},Na={key:0,class:"flex items-center gap-3 mb-4"},Ra={class:"text-lg font-semibold text-gray-900 dark:text-white"},Ba={key:1,class:"text-lg font-semibold text-gray-900 dark:text-white mb-2"},La={class:"text-sm text-gray-600 dark:text-gray-400 mb-6"},Da={class:"flex justify-end gap-3"},Jn=t.defineComponent({__name:"ConfirmDialog",props:{show:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{},ui:{},icon:{default:null},confirmVariant:{default:"danger"}},emits:["confirm","cancel"],setup(o){const e=o,n=t.computed(()=>{var s,a;return e.icon==="warning"?(s=e.ui)==null?void 0:s.historyLimitModal:(a=e.ui)==null?void 0:a.closeConfirmModal}),r=t.computed(()=>{var i,l;const s=e.confirmVariant==="danger"?"bg-red-600 hover:bg-red-700":"bg-primary-500 hover:bg-primary-600",a=e.confirmVariant==="danger"?(i=e.ui)==null?void 0:i.closeConfirmButton:(l=e.ui)==null?void 0:l.historyLimitButton;return[s,a]});return(s,a)=>(t.openBlock(),t.createBlock(t.Transition,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition ease-in duration-150","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:t.withCtx(()=>{var i;return[o.show?(t.openBlock(),t.createElementBlock("div",Ma,[t.createElementVNode("div",{class:t.normalizeClass(["bg-white dark:bg-gray-800 rounded-xl p-6 m-4 max-w-sm w-full shadow-xl",n.value])},[o.icon==="warning"?(t.openBlock(),t.createElementBlock("div",Na,[a[2]||(a[2]=t.createElementVNode("div",{class:"flex-shrink-0 w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center"},[t.createElementVNode("svg",{class:"w-5 h-5 text-amber-600 dark:text-amber-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})])],-1)),t.createElementVNode("h3",Ra,t.toDisplayString(o.title),1)])):(t.openBlock(),t.createElementBlock("h3",Ba,t.toDisplayString(o.title),1)),t.createElementVNode("p",La,t.toDisplayString(o.message),1),t.createElementVNode("div",Da,[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-700 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors",(i=o.ui)==null?void 0:i.cancelButton]),onClick:a[0]||(a[0]=l=>s.$emit("cancel"))},t.toDisplayString(o.cancelText),3),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["px-4 py-2 text-sm font-medium text-white rounded-lg transition-colors",r.value]),onClick:a[1]||(a[1]=l=>s.$emit("confirm"))},t.toDisplayString(o.confirmText),3)])],2)])):t.createCommentVNode("",!0)]}),_:1}))}}),Ia={key:0,class:"flex-1 flex flex-col items-center justify-center p-6 overflow-y-auto"},za={key:0,class:"flex-1 flex flex-col overflow-y-auto"},$a=Qn(t.defineComponent({__name:"AiChatDrawer",props:{modelValue:{type:Boolean},ui:{},texts:{},width:{default:"600px"},fullscreenWidth:{default:"90vw"},topOffset:{default:"0"},position:{default:"right"},showBackdrop:{type:Boolean,default:!1},closeOnBackdropClick:{type:Boolean,default:!1},closeOnEscape:{type:Boolean,default:!0},showQuota:{type:Boolean,default:!0},showFullscreenToggle:{type:Boolean,default:!0},showMinimizeButton:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showNewChatButton:{type:Boolean,default:!0},confirmClose:{type:Boolean,default:!0},historyLimit:{},loadingText:{},autoFetchQuota:{type:Boolean,default:!0}},emits:["update:modelValue","close","contact-support","new-chat"],setup(o,{emit:e}){const n=o,r=e,s=t.computed({get:()=>n.modelValue,set:L=>r("update:modelValue",L)});function a(L,V){var G;const H=(G=n.texts)==null?void 0:G[L];if(H){let W=H;if(V)for(const[K,se]of Object.entries(V))W=W.replace(`{${K}}`,String(se));return W}return J(L,V)}const i=Ce(),l=t.ref(""),d=t.ref(null),u=t.ref(!1),p=t.ref(!1),h=t.ref(!1),{loadingMessage:x,startLoadingText:y,resetLoadingText:f}=Jr(()=>i.sending,()=>n.loadingText),{showHistoryLimitWarning:E,historyLimitReached:g,historyLimitDialogTitle:m,historyLimitDialogMessage:b,dismissHistoryLimitWarning:C,handleHistoryLimitAction:w,checkHistoryLimit:z,setPendingMessage:$}=es({getHistoryLength:()=>i.chatHistory.length,getStoreLimit:()=>i.chatHistoryLimit,getConfig:()=>n.historyLimit,getTexts:()=>n.texts,onStartNewChat:()=>i.clearChatHistory(),onNewChatEmit:()=>r("new-chat")}),F=t.computed(()=>!Ct()),S=t.computed(()=>Te("enableSupportMode")??!1),{suggestions:T,resolvePrompt:N}=jt(),D=t.computed(()=>{if(F.value)return[];const L=l.value.toLowerCase().trim(),V=T.value||[];let H=V;if(L){const G=new Set(["a","an","the","and","or","but","in","on","at","to","for","of","with","by"]),W=L.split(/\s+/).filter(K=>!G.has(K));W.length>0&&(H=V.filter(K=>{const se=`${K.title} ${K.description||""}`.toLowerCase();return W.every(me=>se.includes(me))}))}return H.slice(0,5).map(G=>({id:G.id,title:G.title,description:G.description||""}))}),M=t.computed(()=>({quota:i.quota,isFullscreen:u.value,hasHistory:i.chatHistory.length>0,onNewChat:Z,onClose:Be,onMinimize:ye,onToggleFullscreen:Re})),Q=t.computed(()=>({modelValue:l.value,sending:i.sending,disabled:!1,onSubmit:ke,onCancel:()=>i.cancelRequest()}));function fe(L){const V=(T.value||[]).find(H=>H.id===L.id);V&&(l.value=N(V))}function Re(){u.value=!u.value}function ye(){s.value=!1}function Be(){n.confirmClose&&!F.value&&i.chatHistory.length>0?h.value=!0:(s.value=!1,r("close"))}function pt(){h.value=!1,i.clearChatHistory(),s.value=!1,r("close")}function Wt(){r("contact-support")}function ft(){i.toggleSupportMode()}async function j(){await t.nextTick();const L=document.getElementById("rai-chat-bottom");L&&L.scrollIntoView({behavior:"smooth",block:"end"})}function Je(L){l.value=L.prompt,i.clearError()}function Z(){i.clearChatHistory(),r("new-chat")}function mt(L){}function v(){navigator.clipboard.writeText(`import { RestifyAiPlugin } from '@doderasoftware/restify-ai'
69
69
 
70
70
  app.use(RestifyAiPlugin, {
71
71
  endpoints: {
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- @keyframes rai-fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:rai-fade-in-up .3s ease-out}.scrollbar-thin::-webkit-scrollbar{width:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}.dark .scrollbar-thin::-webkit-scrollbar-thumb{background-color:#4b556380}.dark .scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.dark .scrollbar-thin{scrollbar-color:rgba(75,85,99,.5) transparent}@media (prefers-reduced-motion: reduce){.animate-in{animation:none}}[data-v-df348786] .mention{display:inline-flex;align-items:center;border-radius:.375rem;background-color:#6366f133;padding:.125rem .5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-df348786] .bg-primary .mention{background-color:#fff3;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.rai-slide-left-enter-active[data-v-e286ec63],.rai-slide-left-leave-active[data-v-e286ec63]{transition:transform .28s cubic-bezier(.32,.72,0,1)}.rai-slide-left-enter-from[data-v-e286ec63],.rai-slide-left-leave-to[data-v-e286ec63]{transform:translate(100%)}.rai-slide-right-enter-active[data-v-e286ec63],.rai-slide-right-leave-active[data-v-e286ec63]{transition:transform .28s cubic-bezier(.32,.72,0,1)}.rai-slide-right-enter-from[data-v-e286ec63],.rai-slide-right-leave-to[data-v-e286ec63]{transform:translate(-100%)}.rai-fade-enter-active[data-v-e286ec63],.rai-fade-leave-active[data-v-e286ec63]{transition:opacity .2s ease-out}.rai-fade-enter-from[data-v-e286ec63],.rai-fade-leave-to[data-v-e286ec63]{opacity:0}
1
+ @keyframes rai-fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:rai-fade-in-up .3s ease-out}.scrollbar-thin::-webkit-scrollbar{width:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}.dark .scrollbar-thin::-webkit-scrollbar-thumb{background-color:#4b556380}.dark .scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent}.dark .scrollbar-thin{scrollbar-color:rgba(75,85,99,.5) transparent}@media (prefers-reduced-motion: reduce){.animate-in{animation:none}}[data-v-b5ba399c] .mention{display:inline-flex;align-items:center;border-radius:.375rem;background-color:#6366f133;padding:.125rem .5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-b5ba399c] .bg-primary .mention{background-color:#fff3;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.rai-slide-left-enter-active[data-v-e286ec63],.rai-slide-left-leave-active[data-v-e286ec63]{transition:transform .28s cubic-bezier(.32,.72,0,1)}.rai-slide-left-enter-from[data-v-e286ec63],.rai-slide-left-leave-to[data-v-e286ec63]{transform:translate(100%)}.rai-slide-right-enter-active[data-v-e286ec63],.rai-slide-right-leave-active[data-v-e286ec63]{transition:transform .28s cubic-bezier(.32,.72,0,1)}.rai-slide-right-enter-from[data-v-e286ec63],.rai-slide-right-leave-to[data-v-e286ec63]{transform:translate(-100%)}.rai-fade-enter-active[data-v-e286ec63],.rai-fade-leave-active[data-v-e286ec63]{transition:opacity .2s ease-out}.rai-fade-enter-from[data-v-e286ec63],.rai-fade-leave-to[data-v-e286ec63]{opacity:0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doderasoftware/restify-ai",
3
- "version": "0.1.0-beta.2",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "Professional AI Chatbot Vue 3 component for Laravel Restify backends. Fully customizable with SSE streaming, file attachments, mentions, and context-aware suggestions.",
5
5
  "type": "module",
6
6
  "main": "./dist/restify-ai.umd.cjs",