@smart-cloud/ai-kit-ui 1.1.10 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import{Alert as Ht,Anchor as kn,Button as We,Collapse as bn,Divider as yn,Group
5
5
  initial-value: 0deg;
6
6
  }
7
7
  `,n.head.appendChild(r)}function tn(n){let r=5381;for(let l=0;l<n.length;l++)r=(r<<5)+r^n.charCodeAt(l);return(r>>>0).toString(36)}var ya="ai-kit-style-text";function Aa({stylesheets:n,className:r,innerCSS:l,children:o,rootElementId:u,mode:T="local",overlayRootId:R="ai-kit-overlay-root"}){let M=Za(null),[J,$]=ka(null),[F,B]=ka(null),oe=Pt(()=>[...n].join("|"),[n]),f=Pt(()=>l?tn(l):"",[l]);$a(()=>{if(!M.current)return;let U=T==="overlay"?va():M.current.ownerDocument,N;if(T==="overlay"){let I=U.getElementById(R);I||(I=U.createElement("div"),I.id=R,I.style.position="fixed",I.style.inset="0",I.style.width="0",I.style.height="0",I.style.zIndex="2147483647",I.style.pointerEvents="none",U.body.appendChild(I)),N=I}else N=M.current;let Z=N.shadowRoot??N.attachShadow({mode:"open"}),z=Z.querySelector(`#${CSS.escape(u)}`);z||(z=U.createElement("div"),z.id=u,z.style.margin="0",T==="overlay"&&(z.style.pointerEvents="auto"),Z.appendChild(z));let ee=()=>z.getAttribute("data-mantine-color-scheme"),g=()=>z.getAttribute("data-ai-kit-variation"),p=()=>{N.setAttribute("data-ai-kit-variation",g()||"default"),N.setAttribute("data-mantine-color-scheme",ee()||"auto")};p();let ne=new MutationObserver(p);ne.observe(z,{attributes:!0,attributeFilter:["data-mantine-color-scheme"]});let S=window.matchMedia?.("(prefers-color-scheme: dark)"),q=()=>p();S?.addEventListener?.("change",q),en(),Xa(U,z,Z,oe?oe.split("|"):[]);let A=Z.getElementById(ya);if(l)if(A)(A.getAttribute("data-hash")||"")!==f&&(A.setAttribute("data-hash",f),A.textContent=l);else{let I=U.createElement("style");I.id=ya,I.setAttribute("data-hash",f),I.textContent=l,z.appendChild(I)}else A&&A.remove();return $(Z),B(z),()=>{ne.disconnect(),S?.removeEventListener?.("change",q)}},[T,R,u,oe,l,f]);let i=Pt(()=>F?Va({key:T==="overlay"?"ai-kit-ov":"ai-kit-local",container:F}):null,[F,T]);return Ta("div",{ref:M,className:r,style:{outline:"none",boxShadow:"none",backgroundColor:"transparent"},children:F&&J&&i?Qa(Ta(_a,{value:i,children:o({rootElement:F,shadowRoot:J})}),F):null})}import{jsx as wt}from"react/jsx-runtime";function ut(n,r){let l=o=>{let{store:u,variation:T,showOpenButton:R,colors:M,colorMode:J,primaryColor:$,primaryShade:F,className:B,innerCSS:oe,language:f,direction:i}={...o,...r},U=Ut(()=>Dt(u).getLanguage()),N=Ut(()=>Dt(u).getDirection()),Z=Ut(()=>Dt(u).getCustomTranslations()),[z]=wa(new URLSearchParams(window.location.search).get("language")??""),[ee]=wa(new URLSearchParams(window.location.search).get("direction")??""),g=Kt(()=>{Et.putVocabularies(Z||{});let A=U||z||f;if(!A||A==="system"){Et.setLanguage("");return}return Et.setLanguage(A),A},[f,z,U,Z]),p=Kt(()=>{let A=N||ee||i;return!A||A==="auto"?g==="ar"||g==="he"?"rtl":"ltr":A},[g,i,N,ee]),ne=Kt(()=>[WpSuite?.constants?.aiKit?.mantineCssHref,WpSuite?.constants?.aiKit?.aiKitUiCssHref],[WpSuite]),S;M&&(S={},Object.keys(M).forEach(A=>{S[A]=an(M[A])}));let q=nn({respectReducedMotion:!0,...S&&{colors:S},...$&&[...Object.keys(je.colors),...Object.keys(S||{})].includes($)&&{primaryColor:$},...F&&Object.keys(F).length>0&&{primaryShade:{light:F.light??(typeof je.primaryShade=="object"?je.primaryShade.light:je.primaryShade??6),dark:F.dark??(typeof je.primaryShade=="object"?je.primaryShade.dark:je.primaryShade??6)}},components:{Button:{styles:{root:{borderRadius:"inherit"}}},Tooltip:{defaultProps:{withinPortal:!1,zIndex:100002}},Modal:{defaultProps:{withinPortal:!1,zIndex:100002}},Select:{defaultProps:{comboboxProps:{withinPortal:!1,floatingStrategy:"fixed",positionDependencies:[],position:"bottom",middlewares:{flip:!1,shift:{padding:10,boundary:"clippingAncestors"}}}}}}});return wt(Aa,{mode:T==="modal"&&!R?"overlay":"local",variation:T,overlayRootId:"ai-kit-overlay-root",stylesheets:ne,innerCSS:oe,className:B,rootElementId:T==="modal"&&!R?"ai-kit-portal-root":"ai-kit-inline-root",children:({rootElement:A})=>(A.setAttribute("data-ai-kit-variation",T||"default"),A.setAttribute("dir",p),g&&A.setAttribute("lang",g),wt(rn,{initialDirection:p,children:wt(on,{defaultColorScheme:J,theme:q,cssVariablesSelector:`#${A.id}`,getRootElement:()=>A,children:wt(n,{...o,language:g,rootElement:A})})}))})};return l.displayName=`withAiKitShell(${n.displayName??n.name??"Component"})`,l}import{jsx as Ra}from"react/jsx-runtime";function Bt({enabled:n=!0,working:r=!1,variation:l="default",children:o}){return Ra("div",{className:"ai-kit-feature-border","data-ai-kit-active":!!(n&&r)?"true":"false","data-ai-kit-variation":l,children:Ra("div",{className:"ai-kit-feature-border__content",children:o})})}import{Tooltip as sn}from"@mantine/core";import{useMemo as ln}from"react";import{I18n as dt}from"aws-amplify/utils";import{jsx as Rt}from"react/jsx-runtime";function un(n){let r=[...n].sort((u,T)=>u.startIndex-T.startIndex),l=[],o=-1;for(let u of r)typeof u.startIndex!="number"||typeof u.endIndex!="number"||u.startIndex<0||u.endIndex<=u.startIndex||u.startIndex<o||(l.push(u),o=u.endIndex);return l}function za({original:n,corrections:r}){let l=ln(()=>{let o=un(r||[]),u=[],T=0;for(let R of o){R.startIndex>T&&u.push({kind:"plain",text:n.slice(T,R.startIndex)});let M=n.slice(R.startIndex,R.endIndex);u.push({kind:"corr",original:M,corr:R}),T=R.endIndex}return T<n.length&&u.push({kind:"plain",text:n.slice(T)}),u},[n,r]);return Rt("div",{style:{padding:12,border:"1px solid rgba(0,0,0,0.1)",borderRadius:6,background:"rgba(0,0,0,0.02)",whiteSpace:"pre-wrap",lineHeight:1.5},children:l.map((o,u)=>{if(o.kind==="plain")return Rt("span",{children:o.text},u);let T=(o.corr.replacement??o.corr.correction??"").trim(),R=(o.corr.explanation??"").trim(),M=(o.corr.type??"").trim(),J=[M?dt.get("Type")+": - "+dt.get(M):"",T?dt.get("Replace with")+": "+T:"",R?dt.get("Why")+": "+R:""].filter(Boolean).join(`
8
- `);return Rt(sn,{label:J||dt.get("Suggested change"),multiline:!0,children:Rt("span",{style:{textDecoration:"underline",textDecorationStyle:"wavy",cursor:"help",padding:"0 1px"},children:o.original})},u)})})}import dn,{defaultSchema as gn}from"rehype-sanitize";import cn from"rehype-stringify";import mn from"remark-gfm";import pn from"remark-parse";import hn from"remark-rehype";import{unified as fn}from"unified";var Nt=async n=>String(await fn().use(pn).use(mn).use(hn,{allowDangerousHtml:!1}).use(dn,gn).use(cn).process(n));import{Fragment as ct,jsx as s,jsxs as H}from"react/jsx-runtime";e.putVocabularies(st);var It=Rn(),Kn={type:"object",properties:{title:{type:"string",minLength:1,maxLength:60},excerpt:{type:"string",minLength:1,maxLength:155}},required:["title","excerpt"],additionalProperties:!1},Bn={type:"object",properties:{alt:{type:"string",minLength:1,maxLength:125},title:{type:"string",minLength:1,maxLength:80},caption:{type:"string",minLength:1,maxLength:150},description:{type:"string",minLength:1,maxLength:300}},required:["alt","title","caption","description"],additionalProperties:!1};function Nn(n){let r=(n??"").trim();return r&&r.toLowerCase().split("-")[0]||null}async function Ot(n,r){let l=await La({text:n},{signal:r.signal,onStatus:r.onStatus,context:r.context,modeOverride:r.modeOverride});return Nn(l.result?.candidates?.[0]?.detectedLanguage)??"en"}async function Gn(n,r){let l=lt(n||"").trim();if(!l)return{};try{let o=JSON.parse(l);return{alt_text:typeof o.alt=="string"?r&&r!=="en"?(await xe({text:o.alt,sourceLanguage:"en",targetLanguage:r})).result:o.alt:"",title:typeof o.title=="string"?r&&r!=="en"?(await xe({text:o.title,sourceLanguage:"en",targetLanguage:r})).result:o.title:"",caption:typeof o.caption=="string"?r&&r!=="en"?(await xe({text:o.caption,sourceLanguage:"en",targetLanguage:r})).result:o.caption:"",description:typeof o.description=="string"?r&&r!=="en"?(await xe({text:o.description,sourceLanguage:"en",targetLanguage:r})).result:o.description:""}}catch(o){return console.warn("AI Kit: failed to parse JSON metadata output",o),{}}}async function On(n,r){let l=lt(n||"").trim();if(!l)return{};try{let o=JSON.parse(l);return{title:typeof o.title=="string"?r&&r!=="en"?(await xe({text:o.title,sourceLanguage:"en",targetLanguage:r})).result:o.title:"",excerpt:typeof o.excerpt=="string"?r&&r!=="en"?(await xe({text:o.excerpt,sourceLanguage:"en",targetLanguage:r})).result:o.excerpt:""}}catch(o){return console.warn("AI Kit: failed to parse JSON metadata output",o),{}}}var Hn=n=>{let{allowOverride:r,autoRun:l=!0,editable:o=!0,variation:u=n.variation||"default",title:T,showOpenButton:R=!1,showOpenButtonTitle:M=!0,showOpenButtonIcon:J=!0,openButtonTitle:$,openButtonIcon:F,showRegenerateOnBackendButton:B=!0,acceptButtonTitle:oe=n.acceptButtonTitle||"Accept",optionsDisplay:f=n.optionsDisplay||"collapse",mode:i,context:U,modeOverride:N,colorMode:Z,default:z,onClose:ee,onAccept:g,language:p,rootElement:ne}=n,S={text:r?.text??!0,instructions:r?.instructions??!0,tone:r?.tone??!0,length:r?.length??!0,type:r?.type??!0,outputLanguage:r?.outputLanguage??!0,outputFormat:r?.outputFormat??!0},q=gt(()=>!!(i==="write"&&S?.text||(i==="write"||i==="rewrite"||i==="generateImageMetadata"||i==="generatePostMetadata")&&S?.instructions||(i==="write"||i==="rewrite")&&S?.tone||(i==="write"||i==="rewrite"||i==="summarize")&&S?.length||i==="summarize"&&S?.type||S?.outputLanguage),[S]),[A,I]=ae(!R),[se,be]=ae(!1),[Re,mt]=ae(!1),[Ve,le]=ae(null),[x,G]=ae(null),[ye,ue]=ae(z?.text),[Be]=ae(z?.image),[V,at]=ae(z?.instructions),[re,Me]=ae(z?.inputLanguage),[ze,Te]=ae(z?.outputFormat),[w,pt]=ae(z?.outputLanguage),[he,_e]=ae(z?.length),[de,ge]=ae(z?.tone),[ce,ht]=ae(z?.type),Se=Ln(!1),Ne=gt(()=>{p&&e.setLanguage(p||"en");let a;switch(i){default:case"summarize":a=e.get("Summarize");break;case"proofread":a=e.get("Proofread");break;case"write":a=e.get("Write");break;case"rewrite":a=e.get("Rewrite");break;case"translate":a=e.get("Translate");break;case"generatePostMetadata":a=e.get("Generate Post Metadata");break;case"generateImageMetadata":a=e.get("Generate Image Metadata");break}return a},[i,p]),ft=Ee(a=>{if(!a)return null;let b=a.step,v=e.get((a.message??"").trim()),P=typeof a.progress=="number"?a.progress:null,O=P==null?null:Math.round(P*100);switch(b){case"decide":return v||e.get("Checking capabilities...");case"on-device:init":return v||e.get("Initializing on-device AI...");case"on-device:download":return v||(O==null?e.get("Downloading model..."):e.get("Downloading model...")+" "+O+"%");case"on-device:ready":return v||e.get("On-device model ready.");case"on-device:run":return v||e.get("Generating...");case"backend:request":return v||e.get("Sending request to backend...");case"backend:waiting":return v||e.get("Waiting for backend response...");case"backend:response":return v||e.get("Received backend response.");case"done":return v||e.get("Done.");case"error":return v||e.get("Something went wrong.");default:return v||e.get("Working...")}},[p]),fe=gt(()=>ye??z?.getText,[ye,z]),ke=gt(()=>{let a=typeof fe=="function"?fe():fe;switch(i){case"generateImageMetadata":return!!Be;case"translate":return!!(a&&a.trim().length>0)&&w&&re!==w;case"summarize":case"proofread":case"rewrite":case"write":case"generatePostMetadata":return!!(a&&a.trim().length>0);default:return!1}},[fe,i,Be,re,w]),h=At(),nt=ft(h.statusEvent),Ie=Ee(async a=>{if(ke){q&&i!=="proofread"&&ke&&be(!1),le(null),G(null);try{let b=typeof fe=="function"?fe():fe;switch(i){case"summarize":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=(w&&w!=="auto"?w:null)||He(),D={text:b.trim(),format:ze==="plain-text"?"plain-text":"markdown",length:he,type:ce,outputLanguage:C};return(await In(D,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"proofread":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=[];try{let yt=(await La({text:b.trim()},{signal:P,onStatus:O})).result?.candidates?.filter(Oe=>Oe.confidence&&Oe.confidence>.1).map(Oe=>Oe.detectedLanguage);C.push(...yt)}catch{C.push("en")}let D={text:b.trim(),expectedInputLanguages:C};return(await zn(D,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"translate":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=re??"auto";C==="auto"&&(C=await Ot(b.trim(),{signal:P}),Me(C));let D=(w&&w!=="auto"?w:null)||He();if(D===C)throw le(e.get("Input and output languages cannot be the same.")),new Error(e.get("Input and output languages cannot be the same."));let Q={text:b.trim(),sourceLanguage:C,targetLanguage:D};return(await xe(Q,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"rewrite":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=(w&&w!=="auto"?w:null)||He();w==="auto"&&(C=await Ot(b.trim(),{signal:P}),pt(C));let D={text:b.trim(),context:V?.trim()||void 0,format:ze==="plain-text"?"plain-text":"markdown",tone:de,length:he,outputLanguage:C};return(await Sn(D,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"write":{let v=(w&&w!=="auto"?w:null)||He(),P={prompt:b.trim(),context:V?.trim()||void 0,format:ze==="plain-text"?"plain-text":"markdown",tone:de,length:he,outputLanguage:v},O=await h.run(async({signal:C,onStatus:D})=>{let Q=await Ot(b.trim()+`
8
+ `);return Rt(sn,{label:J||dt.get("Suggested change"),multiline:!0,children:Rt("span",{style:{textDecoration:"underline",textDecorationStyle:"wavy",cursor:"help",padding:"0 1px"},children:o.original})},u)})})}import dn,{defaultSchema as gn}from"rehype-sanitize";import cn from"rehype-stringify";import mn from"remark-gfm";import pn from"remark-parse";import hn from"remark-rehype";import{unified as fn}from"unified";var Nt=async n=>String(await fn().use(pn).use(mn).use(hn,{allowDangerousHtml:!1}).use(dn,gn).use(cn).process(n));import{Fragment as ct,jsx as s,jsxs as H}from"react/jsx-runtime";e.putVocabularies(st);var It=Rn(),Kn={type:"object",properties:{title:{type:"string",minLength:1,maxLength:60},excerpt:{type:"string",minLength:1,maxLength:155}},required:["title","excerpt"],additionalProperties:!1},Bn={type:"object",properties:{alt:{type:"string",minLength:1,maxLength:125},title:{type:"string",minLength:1,maxLength:80},caption:{type:"string",minLength:1,maxLength:150},description:{type:"string",minLength:1,maxLength:300}},required:["alt","title","caption","description"],additionalProperties:!1};function Nn(n){let r=(n??"").trim();return r&&r.toLowerCase().split("-")[0]||null}async function Ot(n,r){let l=await La({text:n},{signal:r.signal,onStatus:r.onStatus,context:r.context,modeOverride:r.modeOverride});return Nn(l.result?.candidates?.[0]?.detectedLanguage)??"en"}async function Gn(n,r){let l=lt(n||"").trim();if(!l)return{};try{let o=JSON.parse(l);return{alt_text:typeof o.alt=="string"?r&&r!=="en"?(await xe({text:o.alt,sourceLanguage:"en",targetLanguage:r})).result:o.alt:"",title:typeof o.title=="string"?r&&r!=="en"?(await xe({text:o.title,sourceLanguage:"en",targetLanguage:r})).result:o.title:"",caption:typeof o.caption=="string"?r&&r!=="en"?(await xe({text:o.caption,sourceLanguage:"en",targetLanguage:r})).result:o.caption:"",description:typeof o.description=="string"?r&&r!=="en"?(await xe({text:o.description,sourceLanguage:"en",targetLanguage:r})).result:o.description:""}}catch(o){return console.warn("AI Kit: failed to parse JSON metadata output",o),{}}}async function On(n,r){let l=lt(n||"").trim();if(!l)return{};try{let o=JSON.parse(l);return{title:typeof o.title=="string"?r&&r!=="en"?(await xe({text:o.title,sourceLanguage:"en",targetLanguage:r})).result:o.title:"",excerpt:typeof o.excerpt=="string"?r&&r!=="en"?(await xe({text:o.excerpt,sourceLanguage:"en",targetLanguage:r})).result:o.excerpt:""}}catch(o){return console.warn("AI Kit: failed to parse JSON metadata output",o),{}}}var Hn=n=>{let{allowOverride:r,autoRun:l=!0,editable:o=!0,variation:u=n.variation||"default",title:T,showOpenButton:R=!1,showOpenButtonTitle:M=!0,showOpenButtonIcon:J=!0,openButtonTitle:$,openButtonIcon:F,showRegenerateOnBackendButton:B=!0,acceptButtonTitle:oe=n.acceptButtonTitle||"Accept",optionsDisplay:f=n.optionsDisplay||"collapse",mode:i,context:U,modeOverride:N,colorMode:Z,default:z,onClose:ee,onAccept:g,language:p,rootElement:ne}=n,S={text:r?.text??!0,instructions:r?.instructions??!0,tone:r?.tone??!0,length:r?.length??!0,type:r?.type??!0,outputLanguage:r?.outputLanguage??!0,outputFormat:r?.outputFormat??!0},q=gt(()=>!!(i==="write"&&S?.text||(i==="write"||i==="rewrite"||i==="generateImageMetadata"||i==="generatePostMetadata")&&S?.instructions||(i==="write"||i==="rewrite")&&S?.tone||(i==="write"||i==="rewrite"||i==="summarize")&&S?.length||i==="summarize"&&S?.type||S?.outputLanguage),[S]),[A,I]=ae(!R),[se,ye]=ae(!1),[Re,mt]=ae(!1),[Ve,le]=ae(null),[x,G]=ae(null),[Te,ue]=ae(z?.text),[Be]=ae(z?.image),[V,at]=ae(z?.instructions),[re,Me]=ae(z?.inputLanguage),[ze,ve]=ae(z?.outputFormat),[w,pt]=ae(z?.outputLanguage),[he,_e]=ae(z?.length),[de,ge]=ae(z?.tone),[ce,ht]=ae(z?.type),Se=Ln(!1),Ne=gt(()=>{p&&e.setLanguage(p||"en");let a;switch(i){default:case"summarize":a=e.get("Summarize");break;case"proofread":a=e.get("Proofread");break;case"write":a=e.get("Write");break;case"rewrite":a=e.get("Rewrite");break;case"translate":a=e.get("Translate");break;case"generatePostMetadata":a=e.get("Generate Post Metadata");break;case"generateImageMetadata":a=e.get("Generate Image Metadata");break}return a},[i,p]),ft=Ee(a=>{if(!a)return null;let b=a.step,v=e.get((a.message??"").trim()),P=typeof a.progress=="number"?a.progress:null,O=P==null?null:Math.round(P*100);switch(b){case"decide":return v||e.get("Checking capabilities...");case"on-device:init":return v||e.get("Initializing on-device AI...");case"on-device:download":return v||(O==null?e.get("Downloading model..."):e.get("Downloading model...")+" "+O+"%");case"on-device:ready":return v||e.get("On-device model ready.");case"on-device:run":return v||e.get("Generating...");case"backend:request":return v||e.get("Sending request to backend...");case"backend:waiting":return v||e.get("Waiting for backend response...");case"backend:response":return v||e.get("Received backend response.");case"done":return v||e.get("Done.");case"error":return v||e.get("Something went wrong.");default:return v||e.get("Working...")}},[p]),fe=gt(()=>Te??z?.getText,[Te,z]),ke=gt(()=>{let a=typeof fe=="function"?fe():fe;switch(i){case"generateImageMetadata":return!!Be;case"translate":return!!(a&&a.trim().length>0)&&w&&re!==w;case"summarize":case"proofread":case"rewrite":case"write":case"generatePostMetadata":return!!(a&&a.trim().length>0);default:return!1}},[fe,i,Be,re,w]),h=At(),nt=ft(h.statusEvent),Ie=Ee(async a=>{if(ke){q&&i!=="proofread"&&ke&&ye(!1),le(null),G(null);try{let b=typeof fe=="function"?fe():fe;switch(i){case"summarize":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=(w&&w!=="auto"?w:null)||He(),D={text:b.trim(),format:ze==="plain-text"?"plain-text":"markdown",length:he,type:ce,outputLanguage:C};return(await In(D,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"proofread":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=[];try{let yt=(await La({text:b.trim()},{signal:P,onStatus:O})).result?.candidates?.filter(Oe=>Oe.confidence&&Oe.confidence>.1).map(Oe=>Oe.detectedLanguage);C.push(...yt)}catch{C.push("en")}let D={text:b.trim(),expectedInputLanguages:C};return(await zn(D,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"translate":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=re??"auto";C==="auto"&&(C=await Ot(b.trim(),{signal:P}),Me(C));let D=(w&&w!=="auto"?w:null)||He();if(D===C)throw le(e.get("Input and output languages cannot be the same.")),new Error(e.get("Input and output languages cannot be the same."));let Q={text:b.trim(),sourceLanguage:C,targetLanguage:D};return(await xe(Q,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"rewrite":{let v=await h.run(async({signal:P,onStatus:O})=>{let C=(w&&w!=="auto"?w:null)||He();w==="auto"&&(C=await Ot(b.trim(),{signal:P}),pt(C));let D={text:b.trim(),context:V?.trim()||void 0,format:ze==="plain-text"?"plain-text":"markdown",tone:de,length:he,outputLanguage:C};return(await Sn(D,{signal:P,onStatus:O,context:U,modeOverride:a})).result});G(v??"");break}case"write":{let v=(w&&w!=="auto"?w:null)||He(),P={prompt:b.trim(),context:V?.trim()||void 0,format:ze==="plain-text"?"plain-text":"markdown",tone:de,length:he,outputLanguage:v},O=await h.run(async({signal:C,onStatus:D})=>{let Q=await Ot(b.trim()+`
9
9
  `+(V?.trim()||""),{signal:C});return Q!==v&&Q!=="en"&&(P.prompt=(await xe({text:P.prompt,sourceLanguage:Q,targetLanguage:"en"})).result,V&&(P.context=(await xe({text:V,sourceLanguage:Q,targetLanguage:"en"})).result)),(await xn(P,{signal:C,onStatus:D,context:U,modeOverride:a})).result});G(O??"");break}case"generatePostMetadata":{let v=[{role:"system",content:`You generate SEO metadata for a WordPress post.
10
10
  Return ONLY a minified JSON object with keys: title, excerpt.
11
11
  Constraints: title <= 60 chars, excerpt <= 155 chars.
@@ -28,4 +28,4 @@ Guidelines:
28
28
  - caption: optional context users might see below the image; keep short.
29
29
  - description: 1\u20132 short sentences; can include context/usage if known.
30
30
  `+(V?`
31
- Follow these additional instructions: ${V}`:"")},{role:"user",content:"What can you see on this image according to the optional knowledge base and shared context?"}].filter(Boolean),P=await h.run(async({signal:D,onStatus:Q})=>(await Sa({messages:v,images:[Be],outputLanguage:"en",responseConstraint:Bn},{signal:D,onStatus:Q,context:U,modeOverride:a})).result);if(!P){G("");return}let O=(w&&w!=="auto"?w:null)||He(),C=lt(P).trim();try{let D=await Gn(C,O);G(D)}catch(D){G(C),console.warn("AI Kit: failed to parse SEO JSON",D)}break}}}catch(b){le(b instanceof Error?b.message:e.get("An unknown error occurred."))}}},[p,h,V,he,w,ye,de,U,i,ce,re,ke,q]),kt=Ee(async()=>{await Ie("backend-only")},[Ie]),Ce=Ee(a=>{switch(i){case"proofread":return s(Mn,{className:a});case"translate":return s(Pn,{className:a});case"summarize":return s(En,{className:a});case"rewrite":case"write":return s(Dn,{className:a});case"generateImageMetadata":case"generatePostMetadata":return s(Un,{className:a});default:return s(wn,{mode:i,className:a})}},[i]),Y=Ee(()=>{switch(i){case"proofread":return h.lastSource?e.get("Proofread again"):e.get("Proofread");case"translate":return h.lastSource?e.get("Translate again"):e.get("Translate");case"rewrite":return h.lastSource?e.get("Rewrite again"):e.get("Rewrite");case"summarize":return h.lastSource?e.get("Summarize again"):e.get("Summarize");default:return h.lastSource?e.get("Regenerate"):e.get("Generate")}},[p,h.lastSource,i]),rt=Ee(()=>{switch(i){case"proofread":return e.get("Proofread on Backend");case"translate":return e.get("Translate on Backend");case"rewrite":return e.get("Rewrite on Backend");case"summarize":return e.get("Summarize on Backend");default:return e.get("Regenerate on Backend")}},[p,i]),ve=Ee(async()=>{I(!1),G(null),le(null),Se.current=!1,h.reset(),R||ee()},[ee,Se,h,R]),xt=Ee(async()=>{h.busy&&h.cancel()},[h]);St(()=>{!A||!l||!ke||h.busy||x||Se.current||(Se.current=!0,queueMicrotask(()=>{Ie(N)}))},[h.busy,ke,l,x,Ie,N]),St(()=>{q&&i!=="proofread"&&(ke||be(!0))},[q,ke,i]),St(()=>{let a=!0;return(async()=>{try{await Cn();let b=await fa();a&&mt(b)}catch(b){console.error(b),a&&mt(!1)}})(),()=>{a=!1}},[]);let Lt=gt(()=>{let a=[];if(i==="translate"){let b=zt.find(v=>v.value===re)?.label;a.push(e.get("Input language")+": "+(b?e.get(b):"auto"))}if(w&&S?.outputLanguage){let b=zt.find(v=>v.value===w)?.label;a.push(e.get("Output language")+": "+(b?e.get(b):w))}return i==="summarize"&&ce&&S?.type&&a.push(e.get("Type")+": "+e.get(ce)),(i==="write"||i==="rewrite")&&de&&S?.tone&&a.push(e.get("Tone")+": "+e.get(de)),(i==="write"||i==="rewrite"||i==="summarize")&&he&&S?.length&&a.push(e.get("Length")+": "+e.get(he)),V?.trim()&&S?.instructions&&a.push(e.get("Instructions")+": \u2713"),a.length?a.join(" \u2022 "):e.get("No overrides")},[p,i,re,w,ce,de,he,V]),Ae={label:{fontSize:11,opacity:.85},description:{fontSize:11,opacity:.65,marginTop:2},input:{fontSize:12}},$e=u==="modal"?Fe.Root:Pe,Ge=u==="modal"?Fe.Content:Pe,it=u==="modal"?Fe.Body:Pe,Ze=f==="collapse"?bn:Ke,bt=f==="horizontal"?Pe:Ke;return St(()=>{if(!(u!=="modal"||!A))return document.body.style.overflow="hidden",document.body.onkeydown=a=>{a.key==="Escape"&&(a.preventDefault(),ve())},()=>{document.body.style.overflow="",document.body.onkeydown=null}},[ve,u]),H(ct,{children:[R&&s(We,{leftSection:J&&(F?s("span",{dangerouslySetInnerHTML:{__html:F}}):Ce()),className:M?"ai-feature-open-button":"ai-feature-open-button-no-title",variant:"filled",disabled:A,onClick:()=>I(!0),"data-ai-kit-open-button":!0,children:M&&e.get($||Ne)}),A&&H($e,{opened:!0,className:"ai-feature-root",onClose:ve,padding:"md",gap:"md",size:"md",portalProps:u==="modal"?{target:ne,reuseTargetNode:!0}:void 0,"data-ai-kit-theme":Z,"data-ai-kit-variation":u,children:[u==="modal"&&s(Fe.Overlay,{}),H(Ge,{w:"100%",style:{left:0},children:[u==="modal"&&H(Fe.Header,{style:{zIndex:1e3},children:[Ce("ai-feature-title-icon"),s(Fe.Title,{children:e.get(T||Ne)}),s(Fe.CloseButton,{})]}),s(it,{w:"100%",style:{zIndex:1001},children:H(Bt,{enabled:u!=="modal",working:h.busy,variation:u,children:[H(Ke,{gap:"sm",mb:"sm",p:"sm",children:[Ve&&s(Ht,{color:"red",children:e.get(Ve)}),q&&i!=="proofread"&&H(vn,{withBorder:!0,p:"sm",mt:"md",className:"ai-feature-options","data-options-display":f,children:[H(Pe,{justify:"space-between",align:"center",className:"ai-feature-options-summary",onClick:f==="collapse"?()=>be(a=>!a):void 0,children:[f==="collapse"&&H(Ke,{gap:0,children:[s(Gt,{size:"sm",fw:600,style:{lineHeight:1.1},children:e.get("Options")}),s(Gt,{size:"xs",c:"dimmed",style:{marginTop:2},children:Lt})]}),f==="collapse"&&s(We,{variant:"subtle",size:"xs",style:{minWidth:"fit-content"},onClick:a=>{a.stopPropagation(),be(b=>!b)},children:se?e.get("Hide"):e.get("Show")})]}),H(Ze,{in:se,children:[f==="collapse"&&s(yn,{my:"sm"}),H(bt,{gap:"xs",justify:"space-between",children:[i==="write"&&S?.text&&s(Ue,{label:e.get("The topic or subject for the AI to write about."),disabled:f!=="horizontal",position:"top",children:s(De,{size:"xs",className:"ai-feature-option",styles:Ae,disabled:h.busy,label:e.get("Topic"),description:f!=="horizontal"?e.get("The topic or subject for the AI to write about."):void 0,value:ye||"",onChange:a=>ue(a.target.value)})}),(i==="write"||i==="rewrite"||i==="generateImageMetadata"||i==="generatePostMetadata")&&S?.instructions&&s(Ue,{label:e.get("Additional instructions to guide the AI."),disabled:f!=="horizontal",position:"top",children:s(De,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:Ae,label:e.get("Instructions"),description:f!=="horizontal"?e.get("Additional instructions to guide the AI."):void 0,value:V||"",onChange:a=>at(a.target.value)})}),i==="translate"&&s(Ue,{label:e.get("The language of the input text."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",styles:Ae,className:"ai-feature-option",label:e.get("Input language"),description:f!=="horizontal"?e.get("The language of the input text."):void 0,data:[{value:"auto",label:e.get("Auto-detect")},...zt.map(a=>({value:a.value,label:e.get(a.label)})).sort((a,b)=>a.label.localeCompare(b.label))],value:re||"auto",onChange:a=>Me(a)})}),S?.outputLanguage&&s(Ue,{label:e.get("The language AI-Kit should use for generated text by default (when applicable)."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",styles:Ae,className:"ai-feature-option",label:e.get("Output language"),description:f!=="horizontal"?e.get("The language AI-Kit should use for generated text by default (when applicable)."):void 0,data:[...[i==="rewrite"?{value:"auto",label:e.get("Auto-detect")}:void 0].filter(Boolean),...zt.map(a=>({value:a.value,label:e.get(a.label)})).sort((a,b)=>a.label.localeCompare(b.label))],value:w||It.settings.defaultOutputLanguage||(i==="rewrite"?"auto":""),onChange:a=>pt(a)})}),i==="summarize"&&S?.type&&s(Ue,{label:e.get("The summary style to generate."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:Ae,label:e.get("Type"),description:f!=="horizontal"?e.get("The summary style to generate."):void 0,data:[{value:"headline",label:e.get("Headline")},{value:"key-points",label:e.get("Key Points")},{value:"teaser",label:e.get("Teaser")},{value:"tldr",label:e.get("TL;DR")}],value:ce||"key-points",onChange:a=>ht(a)})}),(i==="write"||i==="rewrite")&&S?.tone&&s(Ue,{label:e.get("The tone or style for the AI to use."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:Ae,label:e.get("Tone"),description:f!=="horizontal"?e.get("The tone or style for the AI to use."):void 0,data:i==="write"?[{value:"neutral",label:e.get("Neutral")},{value:"formal",label:e.get("Formal")},{value:"casual",label:e.get("Casual")}]:[{value:"as-is",label:e.get("As-Is")},{value:"more-formal",label:e.get("More formal")},{value:"more-casual",label:e.get("More casual")}],value:de||(i==="write"?"neutral":"as-is"),onChange:a=>ge(a)})}),(i==="write"||i==="rewrite"||i==="summarize")&&S?.length&&s(Ue,{label:e.get("The target output length."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:Ae,label:e.get("Length"),description:f!=="horizontal"?e.get("The target output length."):void 0,data:i==="write"||i==="summarize"?[{value:"short",label:e.get("Short")},{value:"medium",label:e.get("Medium")},{value:"long",label:e.get("Long")}]:[{value:"as-is",label:e.get("As-Is")},{value:"shorter",label:e.get("Shorter")},{value:"longer",label:e.get("Longer")}],value:he||(i==="rewrite"?"as-is":"short"),onChange:a=>_e(a)})}),i==="summarize"||i==="write"||i==="rewrite"&&S?.outputFormat&&s(Ue,{label:e.get("The format for the generated output."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:Ae,label:e.get("Output format"),description:f!=="horizontal"?e.get("The format for the generated output."):void 0,data:[{value:"plain-text",label:e.get("Plain Text")},{value:"markdown",label:e.get("Markdown")},{value:"html",label:e.get("HTML")}],value:ze||"markdown",onChange:a=>Te(a)})})]})]})]}),h.busy&&nt&&s(Bt,{enabled:u==="modal",working:h.busy,variation:u,children:H(Pe,{justify:"center",align:"center",gap:"sm",m:"sm",pr:"lg",children:[s(Tn,{size:"sm"}),s(jt.Label,{className:"ai-feature-status-text",children:nt??"VALAMILYEN SZ\xD6VEG"})]})}),x&&H(Ke,{mt:"md",children:[i==="proofread"&&(x.corrections.length===0?s(Ht,{color:"green",children:e.get("No issues found. Your text looks great!")}):H(ct,{children:[s("p",{style:{marginTop:0,opacity:.85},children:e.get("Hover highlights to see explanations.")}),s(za,{original:ye,corrections:x.corrections}),x.correctedInput?H(ct,{children:[s("h4",{style:{marginTop:16,marginBottom:8},children:e.get("Corrected")}),s(Pe,{c:"pre",className:"ai-feature-generated-content",children:x.correctedInput})]}):null]})),i==="generateImageMetadata"&&H(ct,{children:[s(De,{readOnly:!o,label:e.get("Alt Text"),description:e.get("The alt text for the image."),value:x.alt_text||"",onChange:a=>G({...x,alt_text:a.target.value})}),s(De,{readOnly:!o,label:e.get("Title"),description:e.get("The title for the image."),value:x.title||"",onChange:a=>G({...x,title:a.target.value})}),s(De,{readOnly:!o,label:e.get("Caption"),description:e.get("The caption for the image."),value:x.caption||"",onChange:a=>G({...x,caption:a.target.value})}),s(De,{readOnly:!o,label:e.get("Description"),description:e.get("The description for the image."),value:x.description||"",onChange:a=>G({...x,description:a.target.value})})]}),i==="generatePostMetadata"&&H(ct,{children:[s(De,{readOnly:!o,label:e.get("Title"),description:e.get("The title for the post."),value:x.title||"",onChange:a=>G({...x,title:a.target.value})}),s(De,{readOnly:!o,label:e.get("Excerpt"),description:e.get("The excerpt for the post."),value:x.excerpt||"",onChange:a=>G({...x,excerpt:a.target.value})})]}),i!=="proofread"&&i!=="generateImageMetadata"&&i!=="generatePostMetadata"&&typeof x=="string"&&s(xa,{value:x,editable:!!o,onChange:a=>{G(a)}})]}),x===""&&s(xa,{value:x,editable:!1})]}),H(Pe,{className:"ai-kit-actions",gap:"sm",mb:"sm",p:"sm",children:[h.busy&&s(We,{variant:"outline",size:"sm",onClick:xt,"data-ai-kit-cancel-button":!0,children:e.get("Cancel")}),!h.busy&&s(We,{variant:"filled",size:"sm",disabled:!ke,onClick:()=>Ie(),"data-ai-kit-generate-button":!0,children:Y()}),!h.busy&&h.lastSource==="on-device"&&Re&&B&&s(We,{variant:"filled",size:"sm",disabled:!ke,onClick:kt,"data-ai-kit-regenerate-on-backend-button":!0,children:rt()}),!h.busy&&g&&s(We,{variant:"outline",size:"sm",disabled:!x||i==="proofread"&&x.corrections.length===0,onClick:async()=>{g(ze==="html"?await Nt(x):x),ve()},"data-ai-kit-accept-button":!0,children:e.get(oe)}),s(We,{variant:"default",size:"sm",onClick:ve,"data-ai-kit-close-button":!0,children:e.get("Close")})]}),s("div",{style:{display:It.settings?.enablePoweredBy?"flex":"none",justifyContent:It.settings?.enablePoweredBy?"flex-end":void 0,padding:0,marginRight:"var(--ai-kit-spacing-sm)",marginBottom:u==="default"?"var(--ai-kit-spacing-sm)":void 0},className:It.settings?.enablePoweredBy?void 0:"sr-only",children:H(Gt,{c:"p",ta:"right",fs:"italic",fz:"xs",children:["Powered by"," ",s(kn,{href:"https://wpsuite.io/ai-kit/",target:"_blank",td:"none",fz:"xs",fw:400,children:"WPSuite AI-Kit"})]})})]})})]})]})]})};function xa(n){let{value:r,editable:l,onChange:o}=n;return l?H(Ke,{p:0,gap:"sm",children:[s(jt.Label,{children:e.get("Generated content")}),s(An,{value:r,onChange:u=>o?.(u.currentTarget.value),autosize:!0,minRows:2,maxRows:12,p:0,className:"ai-feature-generated-content ai-feature-editor"}),s(jt.Label,{children:e.get("Preview")}),s(Ke,{className:"ai-feature-generated-content ai-feature-preview",children:s(Ia,{remarkPlugins:[Ca],children:r})})]}):s(Ke,{className:"ai-feature-generated-content",children:r?s(Ia,{remarkPlugins:[Ca],children:r}):s(Ht,{color:"yellow",children:e.get("No content generated.")})})}var jn=ut(Hn);import{ActionIcon as Ma,Anchor as Wn,Button as Le,Group as X,Input as Fn,List as Pa,Modal as qe,Stack as Ye,Text as me,Textarea as qn}from"@mantine/core";import{IconMaximize as Yn,IconMessage as Jn,IconMinimize as Vn,IconPaperclip as _n,IconPencil as $n,IconPlayerStop as Zn,IconSend as Qn,IconTrash as Xn}from"@tabler/icons-react";import{getStoreSelect as er,sendChatMessage as tr,sendFeedbackMessage as ar}from"@smart-cloud/ai-kit-core";import{useSelect as nr}from"@wordpress/data";import{I18n as m}from"aws-amplify/utils";import{useCallback as j,useEffect as _,useMemo as W,useRef as ie,useState as pe}from"react";import rr from"react-markdown";import ir from"remark-gfm";import{jsx as c,jsxs as K}from"react/jsx-runtime";m.putVocabularies(st);var Ct=1440*60*1e3,or="localstorage",Je=`ai-kit-chatbot-history-v1:${typeof window<"u"?window.location.hostname:"unknown"}`,sr={modalTitle:"AI Assistant",userLabel:"User",assistantLabel:"Assistant",askMeLabel:"Ask me",sendLabel:"Send",cancelLabel:"Cancel",resetLabel:"Reset",confirmLabel:"Confirm",clickAgainToConfirmLabel:"Click again to confirm",notSentLabel:"Not sent",editLabel:"Edit",readyLabel:"Ready.",readyEmptyLabel:"I'm ready to assist you.",addLabel:"Add",addImageLabel:"Add image",removeImageLabel:"Remove image",closeChatLabel:"Close chat",maximizeLabel:"Maximize",restoreSizeLabel:"Restore size",referencesLabel:"References",referenceLabel:"Reference",acceptResponseLabel:"Accept response",rejectResponseLabel:"Reject response",placeholder:"Ask anything\u2026",emptyResponseLabel:"Empty response",unexpectedErrorLabel:"Unexpected error"};function Wt(n){return`${n}-${Math.random().toString(36).slice(2)}-${Date.now().toString(36)}`}var lr=4,ur=5*1024*1024,dr=n=>{let r=(n?.name||"").toString(),l=(n?.code||"").toString(),o=(n?.message||"").toString();return r==="AbortError"||l==="ABORT_ERR"||/abort|aborted|cancel/i.test(o)},gr=n=>{if(!n)return null;let r=n.step,l=m.get((n.message??"").trim()),o=typeof n.progress=="number"?n.progress:null,u=o==null?null:Math.round(o*100);switch(r){case"decide":return l||m.get("Checking capabilities...");case"on-device:init":return l||m.get("Initializing on-device AI...");case"on-device:download":return u==null?l||m.get("Downloading model..."):l||`${m.get("Downloading model...")} ${u}%`;case"on-device:ready":return l||m.get("On-device model ready...");case"on-device:run":return l||m.get("Running on-device...");case"backend:request":return l||m.get("Sending request to server...");case"backend:waiting":return l||m.get("Waiting for response...");case"backend:response":return l||m.get("Receiving response...");case"done":return l||m.get("Done.");case"error":return l||m.get("An error occurred.");default:return l||null}};function Ft(n){if(typeof window>"u")return null;try{return n==="localstorage"?window.localStorage:n==="sessionstorage"?window.sessionStorage:null}catch{return null}}var cr=n=>{let{rootElement:r,store:l,previewMode:o,title:u,openButtonTitle:T,openButtonIcon:R,showOpenButtonTitle:M=!0,showOpenButtonIcon:J=!0,className:$,colorMode:F,language:B,onClose:oe,placeholder:f,maxImages:i,maxImageBytes:U,historyStorage:N=or,labels:Z,openButtonIconLayout:z="top",openButtonPosition:ee="bottom-right"}=n,g=W(()=>({...sr,...Z||{}}),[Z]),p=At(),[ne,S]=pe(""),[q,A]=pe([]),[I,se]=pe([]),[be,Re]=pe(null),[mt,Ve]=pe(!1),[le,x]=pe(!1),[G,ye]=pe(!1),[ue,Be]=pe(!1),[V,at]=pe(!0),[re,Me]=pe(null),ze=ie(re);_(()=>{ze.current=re},[re]);let Te=ie(null),w=ie(!1),[pt,he]=pe(null),_e=ie(null),de=ie(null),ge=ie(null),ce=ie(null),ht=ie(null),[Se,Ne]=pe(null),ft=ie(ne),fe=ie(q),ke=ie(I),h=ie(Se);_(()=>{ft.current=ne},[ne]),_(()=>{fe.current=q},[q]),_(()=>{ke.current=I},[I]),_(()=>{h.current=Se},[Se]),_(()=>{B&&(console.log(`AiChatbot: setting language to ${B}`),m.setLanguage(B||"en"))},[B]);let nt=nr(()=>er(l).isShowChatbotPreview()),Ie=W(()=>Math.max(0,i??lr),[i]),kt=W(()=>Math.max(0,U??ur),[U]),Ce=I.length>0,Y=W(()=>p.busy&&re==="chat",[p.busy,re]),rt=W(()=>Y?!1:ne.trim().length>0,[ne,Y]),ve=W(()=>{let t=T||g.askMeLabel;return m.get(t)},[T,g.askMeLabel,B]),xt=W(()=>{let t=u||g.modalTitle;return m.get(t)},[u,g.modalTitle,B]),Lt=W(()=>{let t=f||g.placeholder;return m.get(t)},[f,g.placeholder,B]),Ae=W(()=>{let t="ai-docs-ask",d=`ai-open-btn--${ee}`;return $?`${t} ${d} ${$}`:`${t} ${d}`},[$,ee]),$e=j(()=>{let t=ht.current;if(t)try{let d=window.innerHeight||document.documentElement.clientHeight,k=360,y=1e3,te=Math.floor(d*.8),L=Math.max(k,Math.min(te,y));t.style.height=`${L}px`;let E=ce.current;E&&E.offsetHeight}catch{}},[]),Ge=j(()=>{let t=ce.current;t&&window.setTimeout(()=>{try{t.scrollTop=t.scrollHeight}catch{}},50)},[]),it=j(()=>{Be(!1),le&&x(!1),ye(!1),oe?.()},[le,oe]);_(()=>{if(ue)return $e(),window.addEventListener("resize",$e),()=>window.removeEventListener("resize",$e)},[ue,$e]),_(()=>{if(ue)return document.body.style.overflow="hidden",document.body.onkeydown=t=>{t.key==="Escape"&&(t.preventDefault(),it())},()=>{document.body.style.overflow="",document.body.onkeydown=null}},[ue,it]);let Ze=W(()=>typeof window>"u"||typeof URL.createObjectURL!="function"?q.map(t=>({file:t,url:""})):q.map(t=>({file:t,url:URL.createObjectURL(t)})),[q]);_(()=>{Ce||at(!0)},[Ce]),_(()=>()=>{typeof window>"u"||typeof URL.revokeObjectURL!="function"||Ze.forEach(({url:t})=>{t&&URL.revokeObjectURL(t)})},[Ze]),_(()=>{let t=ce.current;if(!t)return;let d=()=>{let k=t.scrollHeight-(t.scrollTop+t.clientHeight);at(k<20)};return t.addEventListener("scroll",d),()=>{t.removeEventListener("scroll",d)}},[ue]),_(()=>{if(!V)return;let t=ce.current;t&&t.scrollHeight>t.clientHeight&&(t.scrollTop=t.scrollHeight)},[I,p.busy,V]);let bt=W(()=>p.busy?gr(p.statusEvent)||m.get("Working\u2026"):null,[p.busy,p.statusEvent,B]),a=W(()=>{for(let t=I.length-1;t>=0;t--){let d=I[t];if(d.role==="user"&&d.clientStatus==="canceled")return d.id}return null},[I]),b=j(t=>{se(d=>{let k=[...d].map((L,E)=>({m:L,i:E})).reverse().find(L=>L.m.role==="user"&&L.m.clientStatus==="pending")?.i;if(k==null)return d;let y=d.slice(),te=y[k];return y[k]={...te,clientStatus:t??void 0},y})},[se]),v=j(()=>{if(!(!p.busy||ze.current!=="chat")){w.current=!0;try{p.cancel()}catch{}b("canceled"),Me(null),Re(null),Ge()}},[p,b,Ge]),P=j(t=>{let d=fe.current,k=Array.from(t.target.files||[]),y=Math.max(0,Ie-d.length),te=k.slice(0,y).filter(L=>{let E=/image\/(jpeg|png|gif|webp)/i.test(L.type),ot=L.size<=kt,Xe=!d.find(we=>we.name===L.name&&we.size===L.size&&we.lastModified===L.lastModified);return E&&ot&&Xe});te.length&&A(L=>[...L,...te]),t.currentTarget.value=""},[Ie,kt]),O=j(t=>{A(d=>d.filter((k,y)=>y!==t))},[]),C=ie(null);_(()=>{if(be)return C.current&&(window.clearTimeout(C.current),C.current=null),C.current=window.setTimeout(()=>{Re(null),C.current=null},6e3),()=>{C.current&&(window.clearTimeout(C.current),C.current=null)}},[be]);let D=j(()=>{se([]),Re(null),ge.current=null,Ne(null),at(!0),Ve(!1);let t=Ft(N);if(t)try{t.removeItem(Je)}catch{}},[N]),Q=j(()=>{Ve(!0)},[]),Qe=j(()=>{p.busy&&ze.current==="chat"&&v(),D()},[p.busy,v,D]),yt=j(()=>{Ve(!1)},[]),Oe=j(async(t,d)=>{if(!p.busy)try{let k=ge.current&&Date.now()-ge.current.storedAt<Ct?ge.current.id:void 0;if(!k)return;Me("feedback"),Re(null),await p.run(async({signal:y,onStatus:te})=>(await ar({sessionId:k,feedbackMessageId:t,feedbackType:d},{signal:y,onStatus:te}),null)),Re(null)}catch(k){let y=k?.message?.trim()||m.get("An error occurred.");Re(y),console.error("Failed to send feedback",k)}finally{Me(k=>k==="feedback"?null:k)}},[p,B]),qt=j((t,d)=>{se(k=>k.map(y=>y.id!==t||y.role!=="assistant"?y:y.feedback===d?{...y,feedback:void 0}:{...y,feedback:d})),Oe(t,d)},[Oe]),Tt=j(async()=>{let t=ft.current.trim();if(!t||p.busy)return;w.current=!1,Re(null),Me("chat");let d=fe.current,k=Wt("user"),y=Date.now(),te={id:k,role:"user",content:t,createdAt:y,clientStatus:"pending"};S(""),A([]),_e.current&&(_e.current.value=""),se(L=>[...L,te]),ue||Be(!0),Ge();try{let L=ge.current&&Date.now()-ge.current.storedAt<Ct?ge.current.id:void 0,E=await p.run(async({signal:Xe,onStatus:we})=>await tr({sessionId:L,message:t,images:d},{signal:Xe,onStatus:we}));if(w.current){b("canceled");return}if(!E)throw new Error(m.get(g.emptyResponseLabel));E.sessionId&&(ge.current={id:E.sessionId,storedAt:Date.now()});let ot={id:E.metadata?.messageId||Wt("assistant"),role:"assistant",content:E.result||"",citations:E.citations,createdAt:Date.now()};se(Xe=>[...Xe.map(vt=>vt.id===k?{...vt,clientStatus:void 0}:vt),ot]),Ne(y)}catch(L){if(w.current||dr(L)){b("canceled");return}let E=L?.message?.trim()||m.get(g.unexpectedErrorLabel);se(ot=>[...ot.map(we=>we.id===k?{...we,clientStatus:void 0}:we),{id:Wt("assistant-error"),role:"assistant",content:`\u26A0\uFE0F ${E}`,createdAt:Date.now()}]),Ne(y)}finally{Me(L=>L==="chat"?null:L),w.current=!1,de.current&&de.current.focus(),Ge()}},[p,ue,Ge,b,g.emptyResponseLabel,g.unexpectedErrorLabel,B]),Da=j(t=>{t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),rt&&Tt())},[Tt,rt]),Ua=j(()=>{Be(!0)},[]);_(()=>()=>{Te.current!=null&&(cancelAnimationFrame(Te.current),Te.current=null)},[]);let Ea=j(()=>{x(t=>{let d=!t;return Te.current!=null&&(cancelAnimationFrame(Te.current),Te.current=null),d?(ye(!0),requestAnimationFrame(()=>{Te.current=requestAnimationFrame(()=>{ye(!1),Te.current=null})})):ye(!1),d})},[]),Ka=j(t=>{S(t.content),se(d=>d.filter(k=>k.id!==t.id)),queueMicrotask(()=>de.current?.focus())},[]),Yt=W(()=>J?R?c("span",{dangerouslySetInnerHTML:{__html:R}}):c(Jn,{size:18}):null,[J,R]),Ba=W(()=>{let t=Yt,d=M?c(me,{inherit:!0,children:ve}):null;if(!J&&!d)return null;if(!J)return d;if(!M)return t;switch(z){case"top":return K(Ye,{gap:4,align:"center",children:[t,d]});case"bottom":return K(Ye,{gap:4,align:"center",children:[d,t]});case"right":return K(X,{gap:6,align:"center",children:[d,t]});default:return K(X,{gap:6,align:"center",children:[t,d]})}},[Yt,J,M,ve,z]),Na=W(()=>Y,[Y]),Ga=W(()=>!Y,[Y]),Oa=W(()=>be||(Ce?m.get(g.readyLabel):m.get(g.readyEmptyLabel)),[be,Ce,g.readyLabel,g.readyEmptyLabel,B]),Ha=W(()=>Y?m.get(g.cancelLabel):m.get(g.sendLabel),[Y,g.cancelLabel,g.sendLabel,B]),ja=W(()=>Y?c(Zn,{size:18}):c(Qn,{size:18}),[Y]),Wa=j(()=>{if(Y){v();return}Tt()},[Y,v,Tt]);return _(()=>{let t=Ft(N);if(t)try{let d=t.getItem(Je);if(!d)return;let k=JSON.parse(d),y=typeof k?.lastUserSentAt=="number"?k.lastUserSentAt:null;if(!y||Date.now()-y>Ct){t.removeItem(Je);return}let L=(Array.isArray(k.messages)?k.messages:[]).map(E=>E?.role==="user"&&E.clientStatus==="pending"?{...E,clientStatus:"canceled"}:E);se(L),Ne(y),k.session&&k.session.id&&(ge.current=k.session)}catch{try{t.removeItem(Je)}catch{}}},[N]),_(()=>{let t=Ft(N);if(!t)return;if(N==="nostorage"){try{t.removeItem(Je)}catch{}return}let d=h.current;if(!d)return;if(Date.now()-d>Ct){try{t.removeItem(Je)}catch{}return}let k={version:1,lastUserSentAt:d,session:ge.current,messages:I};try{t.setItem(Je,JSON.stringify(k))}catch{}},[I,Se,N]),o&&!nt||!o&&nt?null:K(X,{className:Ae,children:[!ue&&c(Le,{variant:"filled",className:M?"ai-launcher-button ai-launcher-text":"ai-launcher-button",onClick:Ua,"aria-label":ve,title:ve,"data-ai-kit-open-button":!0,children:Ba}),ue&&c(qe.Root,{ref:ht,opened:ue,onClose:it,className:"ai-chat-container"+(le?" maximized":"")+(le&&G?" ai-max-enter":""),portalProps:{target:r,reuseTargetNode:!0},"data-ai-kit-theme":F,"data-ai-kit-variation":"modal",children:K(qe.Body,{className:"ai-chat-container-internal",children:[K(qe.Header,{className:"ai-chat-header-bar",children:[c(qe.Title,{className:"ai-chat-title",children:xt}),K(X,{gap:"4px",align:"center",justify:"center",children:[typeof window<"u"&&window.innerWidth>600&&c(Ma,{variant:"subtle",c:"var(--ai-kit-chat-icon-color, var(--ai-kit-color-text))",onClick:Ea,title:le?m.get(g.restoreSizeLabel):m.get(g.maximizeLabel),"aria-label":le?m.get(g.restoreSizeLabel):m.get(g.maximizeLabel),children:le?c(Vn,{size:16}):c(Yn,{size:16})}),c(qe.CloseButton,{"aria-label":m.get(g.closeChatLabel)})]})]}),K(qe.Body,{className:"ai-chat-scroll",ref:ce,children:[I.map(t=>{let d=t.role==="user",k=d&&t.clientStatus==="canceled"&&t.id===a;return c(X,{justify:d?"flex-end":"flex-start",className:"ai-chat-row "+t.role,onMouseEnter:()=>he(t.id),onMouseLeave:()=>he(y=>y===t.id?null:y),children:K(Ye,{gap:4,style:{alignItems:d?"flex-end":"flex-start"},children:[K(Ye,{className:"ai-chat-bubble",children:[K(me,{className:"ai-chat-header",children:[c(me,{fw:"bolder",size:"xs",children:d?m.get(g.userLabel):m.get(g.assistantLabel)}),c(me,{size:"xs",children:new Date(t.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]}),t.role==="assistant"?c(rr,{remarkPlugins:[ir],children:t.content}):c(me,{size:"sm",miw:"100px",children:t.content})]}),k&&K(X,{justify:"flex-end",gap:"xs",children:[c(me,{size:"xs",c:"dimmed",children:c("em",{children:m.get(g.notSentLabel)})}),pt===t.id&&c(Ma,{size:"sm",variant:"subtle",onClick:()=>Ka(t),title:m.get(g.editLabel),"aria-label":m.get(g.editLabel),children:c($n,{size:14})})]}),t.citations&&t.citations.length>0&&K(Ye,{className:"ai-citations",children:[c(me,{fw:"bold",size:"sm",mb:"xs",children:m.get(g.referencesLabel)}),c(Pa,{spacing:"xs",size:"sm",children:t.citations.map((y,te)=>{let L=y.sourceUrl||y.url,E=y.title||L||`${m.get(g.referenceLabel)} #${te+1}`;return K(Pa.Item,{children:[L?c(Wn,{href:L,target:"_blank",rel:"noreferrer",children:E}):c(me,{children:E}),y.snippet?c(me,{size:"xs",c:"dimmed",mt:4,children:y.snippet}):null]},te)})})]}),t.role==="assistant"&&K(X,{className:"ai-feedback",gap:"xs",children:[c(Le,{className:t.feedback==="accepted"?"active":void 0,onClick:()=>qt(t.id,"accepted"),"aria-label":m.get(g.acceptResponseLabel),disabled:p.busy,children:"\u{1F44D}"}),c(Le,{type:"button",className:t.feedback==="rejected"?"active":void 0,onClick:()=>qt(t.id,"rejected"),"aria-label":m.get(g.rejectResponseLabel),disabled:p.busy,children:"\u{1F44E}"})]})]})},t.id)}),Na&&c(X,{justify:"flex-start",className:"ai-chat-row assistant status",children:K(Ye,{className:"ai-chat-bubble typing",children:[bt?c(me,{size:"sm",c:"dimmed",children:c("em",{children:bt})}):null,K("div",{className:"typing-indicator",children:[c("span",{}),c("span",{}),c("span",{})]})]})})]}),Ga&&c(X,{className:"ai-status-line",children:c(me,{className:"ai-status-text",children:c("em",{children:Oa})})}),K(Ye,{className:"ai-box ai-box-open",children:[K(qe,{opened:mt,onClose:yt,centered:!0,title:m.get("Reset conversation"),withinPortal:!1,children:[c(me,{size:"sm",children:m.get("Are you sure you want to reset the conversation?")}),K(X,{justify:"flex-end",mt:"md",children:[c(Le,{variant:"default",onClick:yt,children:m.get("No")}),c(Le,{color:"red",onClick:Qe,disabled:!Ce&&!Y,children:m.get("Yes")})]})]}),c(X,{children:c(qn,{className:"ai-message",ref:de,placeholder:Lt,value:ne,onChange:t=>{S(t.target.value)},onKeyDown:Da,rows:3})}),K(X,{className:"ai-actions",justify:"space-between",w:"100%",children:[c(X,{justify:"flex-start",children:c(Le,{variant:"light",leftSection:c(Xn,{size:18}),onClick:Q,disabled:!Ce&&!Y,children:m.get(g.resetLabel)})}),K(X,{justify:"flex-end",children:[c(Le,{variant:"outline",leftSection:c(_n,{size:18}),onClick:()=>_e.current?.click(),disabled:q.length>=Ie,title:m.get(g.addImageLabel),children:m.get(g.addLabel)}),c(Fn,{ref:_e,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",style:{display:"none"},multiple:!0,onChange:P}),c(Le,{leftSection:ja,variant:"filled",onClick:Wa,disabled:!Y&&!rt,children:Ha})]})]}),Ze.length>0&&c(X,{className:"ai-thumbs",mt:"xs",gap:"xs",children:Ze.map(({url:t},d)=>c("div",{className:"thumb",style:{backgroundImage:t?`url(${t})`:void 0,backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat",overflow:"visible"},children:c(Le,{variant:"white",onClick:()=>O(d),"aria-label":m.get(g.removeImageLabel),mt:"-xs",mr:"-xs",size:"xs",p:0,className:"remove-image-button",title:m.get(g.removeImageLabel),children:"X"})},d))})]})]})})]})},mr=ut(cr,{showOpenButton:!0,variation:"modal"});export{mr as AiChatbot,jn as AiFeature,fa as isBackendConfigured,Nt as markdownToHtml,He as readDefaultOutputLanguage,lt as stripCodeFence,st as translations,At as useAiRun,ut as withAiKitShell};
31
+ Follow these additional instructions: ${V}`:"")},{role:"user",content:"What can you see on this image according to the optional knowledge base and shared context?"}].filter(Boolean),P=await h.run(async({signal:D,onStatus:Q})=>(await Sa({messages:v,images:[Be],outputLanguage:"en",responseConstraint:Bn},{signal:D,onStatus:Q,context:U,modeOverride:a})).result);if(!P){G("");return}let O=(w&&w!=="auto"?w:null)||He(),C=lt(P).trim();try{let D=await Gn(C,O);G(D)}catch(D){G(C),console.warn("AI Kit: failed to parse SEO JSON",D)}break}}}catch(b){le(b instanceof Error?b.message:e.get("An unknown error occurred."))}}},[p,h,V,he,w,Te,de,U,i,ce,re,ke,q]),kt=Ee(async()=>{await Ie("backend-only")},[Ie]),Ce=Ee(a=>{switch(i){case"proofread":return s(Mn,{className:a});case"translate":return s(Pn,{className:a});case"summarize":return s(En,{className:a});case"rewrite":case"write":return s(Dn,{className:a});case"generateImageMetadata":case"generatePostMetadata":return s(Un,{className:a});default:return s(wn,{mode:i,className:a})}},[i]),Y=Ee(()=>{switch(i){case"proofread":return h.lastSource?e.get("Proofread again"):e.get("Proofread");case"translate":return h.lastSource?e.get("Translate again"):e.get("Translate");case"rewrite":return h.lastSource?e.get("Rewrite again"):e.get("Rewrite");case"summarize":return h.lastSource?e.get("Summarize again"):e.get("Summarize");default:return h.lastSource?e.get("Regenerate"):e.get("Generate")}},[p,h.lastSource,i]),rt=Ee(()=>{switch(i){case"proofread":return e.get("Proofread on Backend");case"translate":return e.get("Translate on Backend");case"rewrite":return e.get("Rewrite on Backend");case"summarize":return e.get("Summarize on Backend");default:return e.get("Regenerate on Backend")}},[p,i]),Ae=Ee(async()=>{I(!1),G(null),le(null),Se.current=!1,h.reset(),R||ee()},[ee,Se,h,R]),xt=Ee(async()=>{h.busy&&h.cancel()},[h]);St(()=>{!A||!l||!ke||h.busy||x||Se.current||(Se.current=!0,queueMicrotask(()=>{Ie(N)}))},[h.busy,ke,l,x,Ie,N]),St(()=>{q&&i!=="proofread"&&(ke||ye(!0))},[q,ke,i]),St(()=>{let a=!0;return(async()=>{try{await Cn();let b=await fa();a&&mt(b)}catch(b){console.error(b),a&&mt(!1)}})(),()=>{a=!1}},[]);let Lt=gt(()=>{let a=[];if(i==="translate"){let b=zt.find(v=>v.value===re)?.label;a.push(e.get("Input language")+": "+(b?e.get(b):"auto"))}if(w&&S?.outputLanguage){let b=zt.find(v=>v.value===w)?.label;a.push(e.get("Output language")+": "+(b?e.get(b):w))}return i==="summarize"&&ce&&S?.type&&a.push(e.get("Type")+": "+e.get(ce)),(i==="write"||i==="rewrite")&&de&&S?.tone&&a.push(e.get("Tone")+": "+e.get(de)),(i==="write"||i==="rewrite"||i==="summarize")&&he&&S?.length&&a.push(e.get("Length")+": "+e.get(he)),V?.trim()&&S?.instructions&&a.push(e.get("Instructions")+": \u2713"),a.length?a.join(" \u2022 "):e.get("No overrides")},[p,i,re,w,ce,de,he,V]),be={label:{fontSize:11,opacity:.85},description:{fontSize:11,opacity:.65,marginTop:2},input:{fontSize:12}},$e=u==="modal"?Fe.Root:Pe,Ge=u==="modal"?Fe.Content:Pe,it=u==="modal"?Fe.Body:Pe,Ze=f==="collapse"?bn:Ke,bt=f==="horizontal"?Pe:Ke;return St(()=>{if(!(u!=="modal"||!A))return document.body.style.overflow="hidden",document.body.onkeydown=a=>{a.key==="Escape"&&(a.preventDefault(),Ae())},()=>{document.body.style.overflow="",document.body.onkeydown=null}},[Ae,u]),H(ct,{children:[R&&s(We,{leftSection:J&&(F?s("span",{dangerouslySetInnerHTML:{__html:F}}):Ce()),className:M?"ai-feature-open-button":"ai-feature-open-button-no-title",variant:"filled",disabled:A,onClick:()=>I(!0),"data-ai-kit-open-button":!0,children:M&&e.get($||Ne)}),A&&H($e,{opened:!0,className:"ai-feature-root",onClose:Ae,padding:"md",gap:"md",size:"md",portalProps:u==="modal"?{target:ne,reuseTargetNode:!0}:void 0,"data-ai-kit-theme":Z,"data-ai-kit-variation":u,children:[u==="modal"&&s(Fe.Overlay,{}),H(Ge,{w:"100%",style:{left:0},children:[u==="modal"&&H(Fe.Header,{style:{zIndex:1e3},children:[Ce("ai-feature-title-icon"),s(Fe.Title,{children:e.get(T||Ne)}),s(Fe.CloseButton,{})]}),s(it,{w:"100%",style:{zIndex:1001},children:H(Bt,{enabled:u!=="modal",working:h.busy,variation:u,children:[H(Ke,{gap:"sm",mb:"sm",p:"sm",children:[Ve&&s(Ht,{color:"red",children:e.get(Ve)}),q&&i!=="proofread"&&H(vn,{withBorder:!0,p:"sm",mt:"md",className:"ai-feature-options","data-options-display":f,children:[H(Pe,{justify:"space-between",align:"center",className:"ai-feature-options-summary",onClick:f==="collapse"?()=>ye(a=>!a):void 0,children:[f==="collapse"&&H(Ke,{gap:0,children:[s(Gt,{size:"sm",fw:600,style:{lineHeight:1.1},children:e.get("Options")}),s(Gt,{size:"xs",c:"dimmed",style:{marginTop:2},children:Lt})]}),f==="collapse"&&s(We,{variant:"subtle",size:"xs",style:{minWidth:"fit-content"},onClick:a=>{a.stopPropagation(),ye(b=>!b)},children:se?e.get("Hide"):e.get("Show")})]}),H(Ze,{in:se,children:[f==="collapse"&&s(yn,{my:"sm"}),H(bt,{gap:"xs",justify:"space-between",children:[i==="write"&&S?.text&&s(Ue,{label:e.get("The topic or subject for the AI to write about."),disabled:f!=="horizontal",position:"top",children:s(De,{size:"xs",className:"ai-feature-option",styles:be,disabled:h.busy,label:e.get("Topic"),description:f!=="horizontal"?e.get("The topic or subject for the AI to write about."):void 0,value:Te||"",onChange:a=>ue(a.target.value)})}),(i==="write"||i==="rewrite"||i==="generateImageMetadata"||i==="generatePostMetadata")&&S?.instructions&&s(Ue,{label:e.get("Additional instructions to guide the AI."),disabled:f!=="horizontal",position:"top",children:s(De,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:be,label:e.get("Instructions"),description:f!=="horizontal"?e.get("Additional instructions to guide the AI."):void 0,value:V||"",onChange:a=>at(a.target.value)})}),i==="translate"&&s(Ue,{label:e.get("The language of the input text."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",styles:be,className:"ai-feature-option",label:e.get("Input language"),description:f!=="horizontal"?e.get("The language of the input text."):void 0,data:[{value:"auto",label:e.get("Auto-detect")},...zt.map(a=>({value:a.value,label:e.get(a.label)})).sort((a,b)=>a.label.localeCompare(b.label))],value:re||"auto",onChange:a=>Me(a)})}),S?.outputLanguage&&s(Ue,{label:e.get("The language AI-Kit should use for generated text by default (when applicable)."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",styles:be,className:"ai-feature-option",label:e.get("Output language"),description:f!=="horizontal"?e.get("The language AI-Kit should use for generated text by default (when applicable)."):void 0,data:[...[i==="rewrite"?{value:"auto",label:e.get("Auto-detect")}:void 0].filter(Boolean),...zt.map(a=>({value:a.value,label:e.get(a.label)})).sort((a,b)=>a.label.localeCompare(b.label))],value:w||It.settings.defaultOutputLanguage||(i==="rewrite"?"auto":""),onChange:a=>pt(a)})}),i==="summarize"&&S?.type&&s(Ue,{label:e.get("The summary style to generate."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:be,label:e.get("Type"),description:f!=="horizontal"?e.get("The summary style to generate."):void 0,data:[{value:"headline",label:e.get("Headline")},{value:"key-points",label:e.get("Key Points")},{value:"teaser",label:e.get("Teaser")},{value:"tldr",label:e.get("TL;DR")}],value:ce||"key-points",onChange:a=>ht(a)})}),(i==="write"||i==="rewrite")&&S?.tone&&s(Ue,{label:e.get("The tone or style for the AI to use."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:be,label:e.get("Tone"),description:f!=="horizontal"?e.get("The tone or style for the AI to use."):void 0,data:i==="write"?[{value:"neutral",label:e.get("Neutral")},{value:"formal",label:e.get("Formal")},{value:"casual",label:e.get("Casual")}]:[{value:"as-is",label:e.get("As-Is")},{value:"more-formal",label:e.get("More formal")},{value:"more-casual",label:e.get("More casual")}],value:de||(i==="write"?"neutral":"as-is"),onChange:a=>ge(a)})}),(i==="write"||i==="rewrite"||i==="summarize")&&S?.length&&s(Ue,{label:e.get("The target output length."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:be,label:e.get("Length"),description:f!=="horizontal"?e.get("The target output length."):void 0,data:i==="write"||i==="summarize"?[{value:"short",label:e.get("Short")},{value:"medium",label:e.get("Medium")},{value:"long",label:e.get("Long")}]:[{value:"as-is",label:e.get("As-Is")},{value:"shorter",label:e.get("Shorter")},{value:"longer",label:e.get("Longer")}],value:he||(i==="rewrite"?"as-is":"short"),onChange:a=>_e(a)})}),i==="summarize"||i==="write"||i==="rewrite"&&S?.outputFormat&&s(Ue,{label:e.get("The format for the generated output."),disabled:f!=="horizontal",position:"top",children:s(tt,{disabled:h.busy,size:"xs",className:"ai-feature-option",styles:be,label:e.get("Output format"),description:f!=="horizontal"?e.get("The format for the generated output."):void 0,data:[{value:"plain-text",label:e.get("Plain Text")},{value:"markdown",label:e.get("Markdown")},{value:"html",label:e.get("HTML")}],value:ze||"markdown",onChange:a=>ve(a)})})]})]})]}),h.busy&&nt&&s(Bt,{enabled:u==="modal",working:h.busy,variation:u,children:H(Pe,{justify:"center",align:"center",gap:"sm",m:"sm",pr:"lg",children:[s(Tn,{size:"sm"}),s(jt.Label,{className:"ai-feature-status-text",children:nt??"VALAMILYEN SZ\xD6VEG"})]})}),x&&H(Ke,{mt:"md",children:[i==="proofread"&&(x.corrections.length===0?s(Ht,{color:"green",children:e.get("No issues found. Your text looks great!")}):H(ct,{children:[s("p",{style:{marginTop:0,opacity:.85},children:e.get("Hover highlights to see explanations.")}),s(za,{original:Te,corrections:x.corrections}),x.correctedInput?H(ct,{children:[s("h4",{style:{marginTop:16,marginBottom:8},children:e.get("Corrected")}),s(Pe,{c:"pre",className:"ai-feature-generated-content",children:x.correctedInput})]}):null]})),i==="generateImageMetadata"&&H(ct,{children:[s(De,{readOnly:!o,label:e.get("Alt Text"),description:e.get("The alt text for the image."),value:x.alt_text||"",onChange:a=>G({...x,alt_text:a.target.value})}),s(De,{readOnly:!o,label:e.get("Title"),description:e.get("The title for the image."),value:x.title||"",onChange:a=>G({...x,title:a.target.value})}),s(De,{readOnly:!o,label:e.get("Caption"),description:e.get("The caption for the image."),value:x.caption||"",onChange:a=>G({...x,caption:a.target.value})}),s(De,{readOnly:!o,label:e.get("Description"),description:e.get("The description for the image."),value:x.description||"",onChange:a=>G({...x,description:a.target.value})})]}),i==="generatePostMetadata"&&H(ct,{children:[s(De,{readOnly:!o,label:e.get("Title"),description:e.get("The title for the post."),value:x.title||"",onChange:a=>G({...x,title:a.target.value})}),s(De,{readOnly:!o,label:e.get("Excerpt"),description:e.get("The excerpt for the post."),value:x.excerpt||"",onChange:a=>G({...x,excerpt:a.target.value})})]}),i!=="proofread"&&i!=="generateImageMetadata"&&i!=="generatePostMetadata"&&typeof x=="string"&&s(xa,{value:x,editable:!!o,onChange:a=>{G(a)}})]}),x===""&&s(xa,{value:x,editable:!1})]}),H(Pe,{className:"ai-kit-actions",gap:"sm",mb:"sm",p:"sm",children:[h.busy&&s(We,{variant:"outline",size:"sm",onClick:xt,"data-ai-kit-cancel-button":!0,children:e.get("Cancel")}),!h.busy&&s(We,{variant:"filled",size:"sm",disabled:!ke,onClick:()=>Ie(),"data-ai-kit-generate-button":!0,children:Y()}),!h.busy&&h.lastSource==="on-device"&&Re&&B&&s(We,{variant:"filled",size:"sm",disabled:!ke,onClick:kt,"data-ai-kit-regenerate-on-backend-button":!0,children:rt()}),!h.busy&&g&&s(We,{variant:"outline",size:"sm",disabled:!x||i==="proofread"&&x.corrections.length===0,onClick:async()=>{g(ze==="html"?await Nt(x):x),Ae()},"data-ai-kit-accept-button":!0,children:e.get(oe)}),s(We,{variant:"default",size:"sm",onClick:Ae,"data-ai-kit-close-button":!0,children:e.get("Close")})]}),s("div",{style:{display:It.settings?.enablePoweredBy?"flex":"none",justifyContent:It.settings?.enablePoweredBy?"flex-end":void 0,padding:0,marginRight:"var(--ai-kit-spacing-sm)",marginBottom:u==="default"?"var(--ai-kit-spacing-sm)":void 0},className:It.settings?.enablePoweredBy?void 0:"sr-only",children:H(Gt,{c:"p",ta:"right",fs:"italic",fz:"xs",children:["Powered by"," ",s(kn,{href:"https://wpsuite.io/ai-kit/",target:"_blank",td:"none",fz:"xs",fw:400,children:"WPSuite AI-Kit"})]})})]})})]})]})]})};function xa(n){let{value:r,editable:l,onChange:o}=n;return l?H(Ke,{p:0,gap:"sm",children:[s(jt.Label,{children:e.get("Generated content")}),s(An,{value:r,onChange:u=>o?.(u.currentTarget.value),autosize:!0,minRows:2,maxRows:12,p:0,className:"ai-feature-generated-content ai-feature-editor"}),s(jt.Label,{children:e.get("Preview")}),s(Ke,{className:"ai-feature-generated-content ai-feature-preview",children:s(Ia,{remarkPlugins:[Ca],children:r})})]}):s(Ke,{className:"ai-feature-generated-content",children:r?s(Ia,{remarkPlugins:[Ca],children:r}):s(Ht,{color:"yellow",children:e.get("No content generated.")})})}var jn=ut(Hn);import{ActionIcon as Ma,Anchor as Wn,Button as Le,Group as X,Input as Fn,List as Pa,Modal as qe,Stack as Ye,Text as me,Textarea as qn}from"@mantine/core";import{IconMaximize as Yn,IconMessage as Jn,IconMinimize as Vn,IconPaperclip as _n,IconPencil as $n,IconPlayerStop as Zn,IconSend as Qn,IconTrash as Xn}from"@tabler/icons-react";import{getStoreSelect as er,sendChatMessage as tr,sendFeedbackMessage as ar}from"@smart-cloud/ai-kit-core";import{useSelect as nr}from"@wordpress/data";import{I18n as m}from"aws-amplify/utils";import{useCallback as j,useEffect as _,useMemo as W,useRef as ie,useState as pe}from"react";import rr from"react-markdown";import ir from"remark-gfm";import{jsx as c,jsxs as K}from"react/jsx-runtime";m.putVocabularies(st);var Ct=1440*60*1e3,or="localstorage",Je=`ai-kit-chatbot-history-v1:${typeof window<"u"?window.location.hostname:"unknown"}`,sr={modalTitle:"AI Assistant",userLabel:"User",assistantLabel:"Assistant",askMeLabel:"Ask me",sendLabel:"Send",cancelLabel:"Cancel",resetLabel:"Reset",confirmLabel:"Confirm",clickAgainToConfirmLabel:"Click again to confirm",notSentLabel:"Not sent",editLabel:"Edit",readyLabel:"Ready.",readyEmptyLabel:"I'm ready to assist you.",addLabel:"Add",addImageLabel:"Add image",removeImageLabel:"Remove image",closeChatLabel:"Close chat",maximizeLabel:"Maximize",restoreSizeLabel:"Restore size",referencesLabel:"References",referenceLabel:"Reference",acceptResponseLabel:"Accept response",rejectResponseLabel:"Reject response",placeholder:"Ask anything\u2026",emptyResponseLabel:"Empty response",unexpectedErrorLabel:"Unexpected error"};function Wt(n){return`${n}-${Math.random().toString(36).slice(2)}-${Date.now().toString(36)}`}var lr=4,ur=5*1024*1024,dr=n=>{let r=(n?.name||"").toString(),l=(n?.code||"").toString(),o=(n?.message||"").toString();return r==="AbortError"||l==="ABORT_ERR"||/abort|aborted|cancel/i.test(o)},gr=n=>{if(!n)return null;let r=n.step,l=m.get((n.message??"").trim()),o=typeof n.progress=="number"?n.progress:null,u=o==null?null:Math.round(o*100);switch(r){case"decide":return l||m.get("Checking capabilities...");case"on-device:init":return l||m.get("Initializing on-device AI...");case"on-device:download":return u==null?l||m.get("Downloading model..."):l||`${m.get("Downloading model...")} ${u}%`;case"on-device:ready":return l||m.get("On-device model ready...");case"on-device:run":return l||m.get("Running on-device...");case"backend:request":return l||m.get("Sending request to server...");case"backend:waiting":return l||m.get("Waiting for response...");case"backend:response":return l||m.get("Receiving response...");case"done":return l||m.get("Done.");case"error":return l||m.get("An error occurred.");default:return l||null}};function Ft(n){if(typeof window>"u")return null;try{return n==="localstorage"?window.localStorage:n==="sessionstorage"?window.sessionStorage:null}catch{return null}}var cr=n=>{let{rootElement:r,store:l,previewMode:o,title:u,openButtonTitle:T,openButtonIcon:R,showOpenButtonTitle:M=!0,showOpenButtonIcon:J=!0,className:$,colorMode:F,language:B,onClose:oe,placeholder:f,maxImages:i,maxImageBytes:U,historyStorage:N=or,labels:Z,openButtonIconLayout:z="top",openButtonPosition:ee="bottom-right"}=n,g=W(()=>({...sr,...Z||{}}),[Z]),p=At(),[ne,S]=pe(""),[q,A]=pe([]),[I,se]=pe([]),[ye,Re]=pe(null),[mt,Ve]=pe(!1),[le,x]=pe(!1),[G,Te]=pe(!1),[ue,Be]=pe(!1),[V,at]=pe(!0),[re,Me]=pe(null),ze=ie(re);_(()=>{ze.current=re},[re]);let ve=ie(null),w=ie(!1),[pt,he]=pe(null),_e=ie(null),de=ie(null),ge=ie(null),ce=ie(null),ht=ie(null),[Se,Ne]=pe(null),ft=ie(ne),fe=ie(q),ke=ie(I),h=ie(Se);_(()=>{ft.current=ne},[ne]),_(()=>{fe.current=q},[q]),_(()=>{ke.current=I},[I]),_(()=>{h.current=Se},[Se]),_(()=>{B&&(console.log(`AiChatbot: setting language to ${B}`),m.setLanguage(B||"en"))},[B]);let nt=nr(()=>er(l).isShowChatbotPreview()),Ie=W(()=>Math.max(0,i??lr),[i]),kt=W(()=>Math.max(0,U??ur),[U]),Ce=I.length>0,Y=W(()=>p.busy&&re==="chat",[p.busy,re]),rt=W(()=>Y?!1:ne.trim().length>0,[ne,Y]),Ae=W(()=>{let t=T||g.askMeLabel;return m.get(t)},[T,g.askMeLabel,B]),xt=W(()=>{let t=u||g.modalTitle;return m.get(t)},[u,g.modalTitle,B]),Lt=W(()=>{let t=f||g.placeholder;return m.get(t)},[f,g.placeholder,B]),be=W(()=>{let t="ai-docs-ask",d=`ai-open-btn--${ee}`;return $?`${t} ${d} ${$}`:`${t} ${d}`},[$,ee]),$e=j(()=>{let t=ht.current;if(t)try{let d=window.innerHeight||document.documentElement.clientHeight,k=360,y=1e3,te=Math.floor(d*.8),L=Math.max(k,Math.min(te,y));t.style.height=`${L}px`;let E=ce.current;E&&E.offsetHeight}catch{}},[]),Ge=j(()=>{let t=ce.current;t&&window.setTimeout(()=>{try{t.scrollTop=t.scrollHeight}catch{}},50)},[]),it=j(()=>{Be(!1),le&&x(!1),Te(!1),oe?.()},[le,oe]);_(()=>{if(ue)return $e(),window.addEventListener("resize",$e),()=>window.removeEventListener("resize",$e)},[ue,$e]),_(()=>{if(ue)return document.body.style.overflow="hidden",document.body.onkeydown=t=>{t.key==="Escape"&&(t.preventDefault(),it())},()=>{document.body.style.overflow="",document.body.onkeydown=null}},[ue,it]);let Ze=W(()=>typeof window>"u"||typeof URL.createObjectURL!="function"?q.map(t=>({file:t,url:""})):q.map(t=>({file:t,url:URL.createObjectURL(t)})),[q]);_(()=>{Ce||at(!0)},[Ce]),_(()=>()=>{typeof window>"u"||typeof URL.revokeObjectURL!="function"||Ze.forEach(({url:t})=>{t&&URL.revokeObjectURL(t)})},[Ze]),_(()=>{let t=ce.current;if(!t)return;let d=()=>{let k=t.scrollHeight-(t.scrollTop+t.clientHeight);at(k<20)};return t.addEventListener("scroll",d),()=>{t.removeEventListener("scroll",d)}},[ue]),_(()=>{if(!V)return;let t=ce.current;t&&t.scrollHeight>t.clientHeight&&(t.scrollTop=t.scrollHeight)},[I,p.busy,V]);let bt=W(()=>p.busy?gr(p.statusEvent)||m.get("Working\u2026"):null,[p.busy,p.statusEvent,B]),a=W(()=>{for(let t=I.length-1;t>=0;t--){let d=I[t];if(d.role==="user"&&d.clientStatus==="canceled")return d.id}return null},[I]),b=j(t=>{se(d=>{let k=[...d].map((L,E)=>({m:L,i:E})).reverse().find(L=>L.m.role==="user"&&L.m.clientStatus==="pending")?.i;if(k==null)return d;let y=d.slice(),te=y[k];return y[k]={...te,clientStatus:t??void 0},y})},[se]),v=j(()=>{if(!(!p.busy||ze.current!=="chat")){w.current=!0;try{p.cancel()}catch{}b("canceled"),Me(null),Re(null),Ge()}},[p,b,Ge]),P=j(t=>{let d=fe.current,k=Array.from(t.target.files||[]),y=Math.max(0,Ie-d.length),te=k.slice(0,y).filter(L=>{let E=/image\/(jpeg|png|gif|webp)/i.test(L.type),ot=L.size<=kt,Xe=!d.find(we=>we.name===L.name&&we.size===L.size&&we.lastModified===L.lastModified);return E&&ot&&Xe});te.length&&A(L=>[...L,...te]),t.currentTarget.value=""},[Ie,kt]),O=j(t=>{A(d=>d.filter((k,y)=>y!==t))},[]),C=ie(null);_(()=>{if(ye)return C.current&&(window.clearTimeout(C.current),C.current=null),C.current=window.setTimeout(()=>{Re(null),C.current=null},6e3),()=>{C.current&&(window.clearTimeout(C.current),C.current=null)}},[ye]);let D=j(()=>{se([]),Re(null),ge.current=null,Ne(null),at(!0),Ve(!1);let t=Ft(N);if(t)try{t.removeItem(Je)}catch{}},[N]),Q=j(()=>{Ve(!0)},[]),Qe=j(()=>{p.busy&&ze.current==="chat"&&v(),D()},[p.busy,v,D]),yt=j(()=>{Ve(!1)},[]),Oe=j(async(t,d)=>{if(!p.busy)try{let k=ge.current&&Date.now()-ge.current.storedAt<Ct?ge.current.id:void 0;if(!k)return;Me("feedback"),Re(null),await p.run(async({signal:y,onStatus:te})=>(await ar({sessionId:k,feedbackMessageId:t,feedbackType:d},{signal:y,onStatus:te}),null)),Re(null)}catch(k){let y=k?.message?.trim()||m.get("An error occurred.");Re(y),console.error("Failed to send feedback",k)}finally{Me(k=>k==="feedback"?null:k)}},[p,B]),qt=j((t,d)=>{se(k=>k.map(y=>y.id!==t||y.role!=="assistant"?y:y.feedback===d?{...y,feedback:void 0}:{...y,feedback:d})),Oe(t,d)},[Oe]),Tt=j(async()=>{let t=ft.current.trim();if(!t||p.busy)return;w.current=!1,Re(null),Me("chat");let d=fe.current,k=Wt("user"),y=Date.now(),te={id:k,role:"user",content:t,createdAt:y,clientStatus:"pending"};S(""),A([]),_e.current&&(_e.current.value=""),se(L=>[...L,te]),ue||Be(!0),Ge();try{let L=ge.current&&Date.now()-ge.current.storedAt<Ct?ge.current.id:void 0,E=await p.run(async({signal:Xe,onStatus:we})=>await tr({sessionId:L,message:t,images:d},{signal:Xe,onStatus:we}));if(w.current){b("canceled");return}if(!E)throw new Error(m.get(g.emptyResponseLabel));E.sessionId&&(ge.current={id:E.sessionId,storedAt:Date.now()});let ot={id:E.metadata?.messageId||Wt("assistant"),role:"assistant",content:E.result||"",citations:E.citations,createdAt:Date.now()};se(Xe=>[...Xe.map(vt=>vt.id===k?{...vt,clientStatus:void 0}:vt),ot]),Ne(y)}catch(L){if(w.current||dr(L)){b("canceled");return}let E=L?.message?.trim()||m.get(g.unexpectedErrorLabel);se(ot=>[...ot.map(we=>we.id===k?{...we,clientStatus:void 0}:we),{id:Wt("assistant-error"),role:"assistant",content:`\u26A0\uFE0F ${E}`,createdAt:Date.now()}]),Ne(y)}finally{Me(L=>L==="chat"?null:L),w.current=!1,de.current&&de.current.focus(),Ge()}},[p,ue,Ge,b,g.emptyResponseLabel,g.unexpectedErrorLabel,B]),Da=j(t=>{t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),rt&&Tt())},[Tt,rt]),Ua=j(()=>{Be(!0)},[]);_(()=>()=>{ve.current!=null&&(cancelAnimationFrame(ve.current),ve.current=null)},[]);let Ea=j(()=>{x(t=>{let d=!t;return ve.current!=null&&(cancelAnimationFrame(ve.current),ve.current=null),d?(Te(!0),requestAnimationFrame(()=>{ve.current=requestAnimationFrame(()=>{Te(!1),ve.current=null})})):Te(!1),d})},[]),Ka=j(t=>{S(t.content),se(d=>d.filter(k=>k.id!==t.id)),queueMicrotask(()=>de.current?.focus())},[]),Yt=W(()=>J?R?c("span",{dangerouslySetInnerHTML:{__html:R}}):c(Jn,{size:18}):null,[J,R]),Ba=W(()=>{let t=Yt,d=M?c(me,{inherit:!0,children:Ae}):null;if(!J&&!d)return null;if(!J)return d;if(!M)return t;switch(z){case"top":return K(Ye,{gap:4,align:"center",children:[t,d]});case"bottom":return K(Ye,{gap:4,align:"center",children:[d,t]});case"right":return K(X,{gap:6,align:"center",children:[d,t]});default:return K(X,{gap:6,align:"center",children:[t,d]})}},[Yt,J,M,Ae,z]),Na=W(()=>Y,[Y]),Ga=W(()=>!Y,[Y]),Oa=W(()=>ye||(Ce?m.get(g.readyLabel):m.get(g.readyEmptyLabel)),[ye,Ce,g.readyLabel,g.readyEmptyLabel,B]),Ha=W(()=>Y?m.get(g.cancelLabel):m.get(g.sendLabel),[Y,g.cancelLabel,g.sendLabel,B]),ja=W(()=>Y?c(Zn,{size:18}):c(Qn,{size:18}),[Y]),Wa=j(()=>{if(Y){v();return}Tt()},[Y,v,Tt]);return _(()=>{let t=Ft(N);if(t)try{let d=t.getItem(Je);if(!d)return;let k=JSON.parse(d),y=typeof k?.lastUserSentAt=="number"?k.lastUserSentAt:null;if(!y||Date.now()-y>Ct){t.removeItem(Je);return}let L=(Array.isArray(k.messages)?k.messages:[]).map(E=>E?.role==="user"&&E.clientStatus==="pending"?{...E,clientStatus:"canceled"}:E);se(L),Ne(y),k.session&&k.session.id&&(ge.current=k.session)}catch{try{t.removeItem(Je)}catch{}}},[N]),_(()=>{let t=Ft(N);if(!t)return;if(N==="nostorage"){try{t.removeItem(Je)}catch{}return}let d=h.current;if(!d)return;if(Date.now()-d>Ct){try{t.removeItem(Je)}catch{}return}let k={version:1,lastUserSentAt:d,session:ge.current,messages:I};try{t.setItem(Je,JSON.stringify(k))}catch{}},[I,Se,N]),o&&!nt||!o&&nt?null:K(X,{className:be,children:[!ue&&c(Le,{variant:"filled",className:M?"ai-launcher-button ai-launcher-text":"ai-launcher-button",onClick:Ua,"aria-label":Ae,title:Ae,"data-ai-kit-open-button":!0,children:Ba}),ue&&c(qe.Root,{ref:ht,opened:ue,onClose:it,className:be+" ai-chat-container"+(le?" maximized":"")+(le&&G?" ai-max-enter":""),portalProps:{target:r,reuseTargetNode:!0},"data-ai-kit-theme":F,"data-ai-kit-variation":"modal",children:K(qe.Body,{className:"ai-chat-container-internal",children:[K(qe.Header,{className:"ai-chat-header-bar",children:[c(qe.Title,{className:"ai-chat-title",children:xt}),K(X,{gap:"4px",align:"center",justify:"center",children:[typeof window<"u"&&window.innerWidth>600&&c(Ma,{variant:"subtle",c:"var(--ai-kit-chat-icon-color, var(--ai-kit-color-text))",onClick:Ea,title:le?m.get(g.restoreSizeLabel):m.get(g.maximizeLabel),"aria-label":le?m.get(g.restoreSizeLabel):m.get(g.maximizeLabel),children:le?c(Vn,{size:16}):c(Yn,{size:16})}),c(qe.CloseButton,{"aria-label":m.get(g.closeChatLabel)})]})]}),K(qe.Body,{className:"ai-chat-scroll",ref:ce,children:[I.map(t=>{let d=t.role==="user",k=d&&t.clientStatus==="canceled"&&t.id===a;return c(X,{justify:d?"flex-end":"flex-start",className:"ai-chat-row "+t.role,onMouseEnter:()=>he(t.id),onMouseLeave:()=>he(y=>y===t.id?null:y),children:K(Ye,{gap:4,style:{alignItems:d?"flex-end":"flex-start"},children:[K(Ye,{className:"ai-chat-bubble",children:[K(me,{className:"ai-chat-header",children:[c(me,{fw:"bolder",size:"xs",children:d?m.get(g.userLabel):m.get(g.assistantLabel)}),c(me,{size:"xs",children:new Date(t.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]}),t.role==="assistant"?c(rr,{remarkPlugins:[ir],children:t.content}):c(me,{size:"sm",miw:"100px",children:t.content})]}),k&&K(X,{justify:"flex-end",gap:"xs",children:[c(me,{size:"xs",c:"dimmed",children:c("em",{children:m.get(g.notSentLabel)})}),pt===t.id&&c(Ma,{size:"sm",variant:"subtle",onClick:()=>Ka(t),title:m.get(g.editLabel),"aria-label":m.get(g.editLabel),children:c($n,{size:14})})]}),t.citations&&t.citations.length>0&&K(Ye,{className:"ai-citations",children:[c(me,{fw:"bold",size:"sm",mb:"xs",children:m.get(g.referencesLabel)}),c(Pa,{spacing:"xs",size:"sm",children:t.citations.map((y,te)=>{let L=y.sourceUrl||y.url,E=y.title||L||`${m.get(g.referenceLabel)} #${te+1}`;return K(Pa.Item,{children:[L?c(Wn,{href:L,target:"_blank",rel:"noreferrer",children:E}):c(me,{children:E}),y.snippet?c(me,{size:"xs",c:"dimmed",mt:4,children:y.snippet}):null]},te)})})]}),t.role==="assistant"&&K(X,{className:"ai-feedback",gap:"xs",children:[c(Le,{className:t.feedback==="accepted"?"active":void 0,onClick:()=>qt(t.id,"accepted"),"aria-label":m.get(g.acceptResponseLabel),disabled:p.busy,children:"\u{1F44D}"}),c(Le,{type:"button",className:t.feedback==="rejected"?"active":void 0,onClick:()=>qt(t.id,"rejected"),"aria-label":m.get(g.rejectResponseLabel),disabled:p.busy,children:"\u{1F44E}"})]})]})},t.id)}),Na&&c(X,{justify:"flex-start",className:"ai-chat-row assistant status",children:K(Ye,{className:"ai-chat-bubble typing",children:[bt?c(me,{size:"sm",c:"dimmed",children:c("em",{children:bt})}):null,K("div",{className:"typing-indicator",children:[c("span",{}),c("span",{}),c("span",{})]})]})})]}),Ga&&c(X,{className:"ai-status-line",children:c(me,{className:"ai-status-text",children:c("em",{children:Oa})})}),K(Ye,{className:"ai-box ai-box-open",children:[K(qe,{opened:mt,onClose:yt,centered:!0,title:m.get("Reset conversation"),withinPortal:!1,children:[c(me,{size:"sm",children:m.get("Are you sure you want to reset the conversation?")}),K(X,{justify:"flex-end",mt:"md",children:[c(Le,{variant:"default",onClick:yt,children:m.get("No")}),c(Le,{color:"red",onClick:Qe,disabled:!Ce&&!Y,children:m.get("Yes")})]})]}),c(X,{children:c(qn,{className:"ai-message",ref:de,placeholder:Lt,value:ne,onChange:t=>{S(t.target.value)},onKeyDown:Da,rows:3})}),K(X,{className:"ai-actions",justify:"space-between",w:"100%",children:[c(X,{justify:"flex-start",children:c(Le,{variant:"light",leftSection:c(Xn,{size:18}),onClick:Q,disabled:!Ce&&!Y,children:m.get(g.resetLabel)})}),K(X,{justify:"flex-end",children:[c(Le,{variant:"outline",leftSection:c(_n,{size:18}),onClick:()=>_e.current?.click(),disabled:q.length>=Ie,title:m.get(g.addImageLabel),children:m.get(g.addLabel)}),c(Fn,{ref:_e,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",style:{display:"none"},multiple:!0,onChange:P}),c(Le,{leftSection:ja,variant:"filled",onClick:Wa,disabled:!Y&&!rt,children:Ha})]})]}),Ze.length>0&&c(X,{className:"ai-thumbs",mt:"xs",gap:"xs",children:Ze.map(({url:t},d)=>c("div",{className:"thumb",style:{backgroundImage:t?`url(${t})`:void 0,backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat",overflow:"visible"},children:c(Le,{variant:"white",onClick:()=>O(d),"aria-label":m.get(g.removeImageLabel),mt:"-xs",mr:"-xs",size:"xs",p:0,className:"remove-image-button",title:m.get(g.removeImageLabel),children:"X"})},d))})]})]})})]})},mr=ut(cr,{showOpenButton:!0,variation:"modal"});export{mr as AiChatbot,jn as AiFeature,fa as isBackendConfigured,Nt as markdownToHtml,He as readDefaultOutputLanguage,lt as stripCodeFence,st as translations,At as useAiRun,ut as withAiKitShell};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smart-cloud/ai-kit-ui",
3
- "version": "1.1.10",
3
+ "version": "1.1.11",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -1065,7 +1065,8 @@ const AiChatbotBase: FC<AiChatbotProps & AiKitShellInjectedProps> = (props) => {
1065
1065
  opened={opened}
1066
1066
  onClose={closeModal}
1067
1067
  className={
1068
- "ai-chat-container" +
1068
+ rootClassName +
1069
+ " ai-chat-container" +
1069
1070
  (isMaximized ? " maximized" : "") +
1070
1071
  (isMaximized && maxEnter ? " ai-max-enter" : "")
1071
1072
  }