@waniwani/sdk 0.11.18 → 0.11.19

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.
@@ -118,7 +118,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
118
118
  `)},hy=e=>{let t=!1;for(let r of e)if(r==="\\"||r==="|"){t=!0;break}if(!t)return e;let a=[];for(let r of e)r==="\\"?a.push("\\\\"):r==="|"?a.push("\\|"):a.push(r);return a.join("")},J4=e=>{let{headers:t,rows:a}=e;if(t.length===0)return"";let r=new Array(a.length+2),n=0,o=t.map(i=>hy(i));r[n]=`| ${o.join(" | ")} |`,n+=1;let l=new Array(t.length);for(let i=0;i<t.length;i+=1)l[i]="---";r[n]=`| ${l.join(" | ")} |`,n+=1;for(let i of a)if(i.length<t.length){let s=new Array(t.length);for(let u=0;u<t.length;u+=1)s[u]=u<i.length?hy(i[u]):"";r[n]=`| ${s.join(" | ")} |`,n+=1}else{let s=i.map(u=>hy(u));r[n]=`| ${s.join(" | ")} |`,n+=1}return r.join(`
119
119
  `)},ez=({children:e,className:t,onCopy:a,onError:r,timeout:n=2e3})=>{let[o,l]=(0,E.useState)(!1),[i,s]=(0,E.useState)(!1),u=(0,E.useRef)(null),c=(0,E.useRef)(0),{isAnimating:d}=(0,E.useContext)(Zt),f=async g=>{var v,C;if(typeof window>"u"||!((v=navigator?.clipboard)!=null&&v.write)){r?.(new Error("Clipboard API not available"));return}try{let y=(C=u.current)==null?void 0:C.closest('[data-streamdown="table-wrapper"]'),x=y?.querySelector("table");if(!x){r?.(new Error("Table not found"));return}let h=wA(x),w=g==="csv"?bA(h):Y4(h),k=new ClipboardItem({"text/plain":new Blob([w],{type:"text/plain"}),"text/html":new Blob([x.outerHTML],{type:"text/html"})});await navigator.clipboard.write([k]),s(!0),l(!1),a?.(g),c.current=window.setTimeout(()=>s(!1),n)}catch(y){r?.(y)}};(0,E.useEffect)(()=>{let g=v=>{let C=v.composedPath();u.current&&!C.includes(u.current)&&l(!1)};return document.addEventListener("mousedown",g),()=>{document.removeEventListener("mousedown",g),window.clearTimeout(c.current)}},[]);let p=i?wy:by;return(0,A.jsxs)("div",{className:"relative",ref:u,children:[(0,A.jsx)("button",{className:Y("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:d,onClick:()=>l(!o),title:"Copy table",type:"button",children:e??(0,A.jsx)(p,{size:14})}),o?(0,A.jsxs)("div",{className:"absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg",children:[(0,A.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>f("csv"),title:"Copy table as CSV",type:"button",children:"CSV"}),(0,A.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>f("tsv"),title:"Copy table as TSV",type:"button",children:"TSV"})]}):null]})},tz=({children:e,className:t,onDownload:a,onError:r})=>{let[n,o]=(0,E.useState)(!1),l=(0,E.useRef)(null),{isAnimating:i}=(0,E.useContext)(Zt),s=u=>{var c;try{let d=(c=l.current)==null?void 0:c.closest('[data-streamdown="table-wrapper"]'),f=d?.querySelector("table");if(!f){r?.(new Error("Table not found"));return}let p=wA(f),g=u==="csv"?bA(p):J4(p);Al(`table.${u==="csv"?"csv":"md"}`,g,u==="csv"?"text/csv":"text/markdown"),o(!1),a?.(u)}catch(d){r?.(d)}};return(0,E.useEffect)(()=>{let u=c=>{let d=c.composedPath();l.current&&!d.includes(l.current)&&o(!1)};return document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[]),(0,A.jsxs)("div",{className:"relative",ref:l,children:[(0,A.jsx)("button",{className:Y("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>o(!n),title:"Download table",type:"button",children:e??(0,A.jsx)(Ad,{size:14})}),n?(0,A.jsxs)("div",{className:"absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg",children:[(0,A.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>s("csv"),title:"Download table as CSV",type:"button",children:"CSV"}),(0,A.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>s("markdown"),title:"Download table as Markdown",type:"button",children:"Markdown"})]}):null]})},az=({children:e,className:t,showControls:a,...r})=>(0,A.jsxs)("div",{className:"my-4 flex flex-col space-y-2","data-streamdown":"table-wrapper",children:[a?(0,A.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,A.jsx)(ez,{}),(0,A.jsx)(tz,{})]}):null,(0,A.jsx)("div",{className:"overflow-x-auto",children:(0,A.jsx)("table",{className:Y("w-full border-collapse border border-border",t),"data-streamdown":"table",...r,children:e})})]}),rz=(0,E.lazy)(()=>Promise.resolve().then(()=>(lA(),oA)).then(e=>({default:e.CodeBlock}))),nz=(0,E.lazy)(()=>Promise.resolve().then(()=>(uA(),sA)).then(e=>({default:e.Mermaid}))),oz=/language-([^\s]+)/;vy=(e,t)=>typeof e=="boolean"?e:e[t]!==!1,kd=(e,t)=>{if(typeof e=="boolean")return e;let a=e.mermaid;return a===!1?!1:a===!0||a===void 0?!0:a[t]!==!1},Cy=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("ol",{className:Y("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...r,children:e}),(e,t)=>mt(e,t));Cy.displayName="MarkdownOl";SA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("li",{className:Y("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...r,children:e}),(e,t)=>e.className===t.className&&Md(e.node,t.node));SA.displayName="MarkdownLi";CA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("ul",{className:Y("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...r,children:e}),(e,t)=>mt(e,t));CA.displayName="MarkdownUl";IA=(0,E.memo)(({className:e,node:t,...a})=>(0,A.jsx)("hr",{className:Y("my-6 border-border",e),"data-streamdown":"horizontal-rule",...a}),(e,t)=>mt(e,t));IA.displayName="MarkdownHr";LA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("span",{className:Y("font-semibold",t),"data-streamdown":"strong",...r,children:e}),(e,t)=>mt(e,t));LA.displayName="MarkdownStrong";lz=({children:e,className:t,href:a,node:r,...n})=>{let{linkSafety:o}=(0,E.useContext)(Zt),[l,i]=(0,E.useState)(!1),s=a==="streamdown:incomplete-link",u=(0,E.useCallback)(async p=>{if(!(!(o!=null&&o.enabled&&a)||s)){if(p.preventDefault(),o.onLinkCheck&&await o.onLinkCheck(a)){window.open(a,"_blank","noreferrer");return}i(!0)}},[o,a,s]),c=(0,E.useCallback)(()=>{a&&window.open(a,"_blank","noreferrer")},[a]),d=(0,E.useCallback)(()=>{i(!1)},[]),f={url:a??"",isOpen:l,onClose:d,onConfirm:c};return o!=null&&o.enabled&&a?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("button",{className:Y("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":s,"data-streamdown":"link",onClick:u,type:"button",children:e}),o.renderModal?o.renderModal(f):(0,A.jsx)(W4,{...f})]}):(0,A.jsx)("a",{className:Y("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":s,"data-streamdown":"link",href:a,rel:"noreferrer",target:"_blank",...n,children:e})},kA=(0,E.memo)(lz,(e,t)=>mt(e,t)&&e.href===t.href);kA.displayName="MarkdownA";TA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("h1",{className:Y("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...r,children:e}),(e,t)=>mt(e,t));TA.displayName="MarkdownH1";AA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("h2",{className:Y("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...r,children:e}),(e,t)=>mt(e,t));AA.displayName="MarkdownH2";MA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("h3",{className:Y("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...r,children:e}),(e,t)=>mt(e,t));MA.displayName="MarkdownH3";EA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("h4",{className:Y("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...r,children:e}),(e,t)=>mt(e,t));EA.displayName="MarkdownH4";RA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("h5",{className:Y("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...r,children:e}),(e,t)=>mt(e,t));RA.displayName="MarkdownH5";DA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("h6",{className:Y("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...r,children:e}),(e,t)=>mt(e,t));DA.displayName="MarkdownH6";_A=(0,E.memo)(({children:e,className:t,node:a,...r})=>{let{controls:n}=(0,E.useContext)(Zt),o=vy(n,"table");return(0,A.jsx)(az,{className:t,showControls:o,...r,children:e})},(e,t)=>mt(e,t));_A.displayName="MarkdownTable";OA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("thead",{className:Y("bg-muted/80",t),"data-streamdown":"table-header",...r,children:e}),(e,t)=>mt(e,t));OA.displayName="MarkdownThead";PA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("tbody",{className:Y("divide-y divide-border bg-muted/40",t),"data-streamdown":"table-body",...r,children:e}),(e,t)=>mt(e,t));PA.displayName="MarkdownTbody";NA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("tr",{className:Y("border-border border-b",t),"data-streamdown":"table-row",...r,children:e}),(e,t)=>mt(e,t));NA.displayName="MarkdownTr";BA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("th",{className:Y("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...r,children:e}),(e,t)=>mt(e,t));BA.displayName="MarkdownTh";UA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("td",{className:Y("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...r,children:e}),(e,t)=>mt(e,t));UA.displayName="MarkdownTd";zA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("blockquote",{className:Y("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...r,children:e}),(e,t)=>mt(e,t));zA.displayName="MarkdownBlockquote";qA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("sup",{className:Y("text-sm",t),"data-streamdown":"superscript",...r,children:e}),(e,t)=>mt(e,t));qA.displayName="MarkdownSup";FA=(0,E.memo)(({children:e,className:t,node:a,...r})=>(0,A.jsx)("sub",{className:Y("text-sm",t),"data-streamdown":"subscript",...r,children:e}),(e,t)=>mt(e,t));FA.displayName="MarkdownSub";HA=(0,E.memo)(({children:e,className:t,node:a,...r})=>{if("data-footnotes"in r){let n=l=>{var i,s;if(!(0,E.isValidElement)(l))return!1;let u=Array.isArray(l.props.children)?l.props.children:[l.props.children],c=!1,d=!1;for(let f of u)if(f){if(typeof f=="string")f.trim()!==""&&(c=!0);else if((0,E.isValidElement)(f))if(((i=f.props)==null?void 0:i["data-footnote-backref"])!==void 0)d=!0;else{let p=Array.isArray(f.props.children)?f.props.children:[f.props.children];for(let g of p){if(typeof g=="string"&&g.trim()!==""){c=!0;break}if((0,E.isValidElement)(g)&&((s=g.props)==null?void 0:s["data-footnote-backref"])===void 0){c=!0;break}}}}return d&&!c},o=Array.isArray(e)?e.map(l=>{if(!(0,E.isValidElement)(l))return l;if(l.type===Cy){let i=(Array.isArray(l.props.children)?l.props.children:[l.props.children]).filter(s=>!n(s));return i.length===0?null:{...l,props:{...l.props,children:i}}}return l}):e;return(Array.isArray(o)?o.some(l=>l!==null):o!==null)?(0,A.jsx)("section",{className:t,...r,children:o}):null}return(0,A.jsx)("section",{className:t,...r,children:e})},(e,t)=>mt(e,t));HA.displayName="MarkdownSection";iz=({node:e,className:t,children:a,...r})=>{var n,o,l;let i=((n=e?.position)==null?void 0:n.start.line)===((o=e?.position)==null?void 0:o.end.line),{mermaid:s,controls:u}=(0,E.useContext)(Zt),c=Sy();if(i)return(0,A.jsx)("code",{className:Y("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...r,children:a});let d=t?.match(oz),f=(l=d?.at(1))!=null?l:"",p="";if((0,E.isValidElement)(a)&&a.props&&typeof a.props=="object"&&"children"in a.props&&typeof a.props.children=="string"?p=a.props.children:typeof a=="string"&&(p=a),f==="mermaid"&&c){let v=vy(u,"mermaid"),C=kd(u,"download"),y=kd(u,"copy"),x=kd(u,"fullscreen"),h=kd(u,"panZoom"),w=v&&(C||y||x);return(0,A.jsx)(E.Suspense,{fallback:(0,A.jsx)(pA,{}),children:(0,A.jsxs)("div",{className:Y("group relative my-4 h-auto rounded-xl border p-4",t),"data-streamdown":"mermaid-block",children:[w?(0,A.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[C?(0,A.jsx)($4,{chart:p,config:s?.config}):null,y?(0,A.jsx)(dA,{code:p}):null,x?(0,A.jsx)(K4,{chart:p,config:s?.config}):null]}):null,(0,A.jsx)(nz,{chart:p,config:s?.config,showControls:h})]})})}let g=vy(u,"code");return(0,A.jsx)(E.Suspense,{fallback:(0,A.jsx)(pA,{}),children:(0,A.jsx)(rz,{className:Y("overflow-x-auto border-border border-t",t),code:p,language:f,children:g?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(F4,{code:p,language:f}),(0,A.jsx)(dA,{})]}):null})})},jA=(0,E.memo)(iz,(e,t)=>e.className===t.className&&Md(e.node,t.node));jA.displayName="MarkdownCode";VA=(0,E.memo)(j4,(e,t)=>e.className===t.className&&Md(e.node,t.node));VA.displayName="MarkdownImg";GA=(0,E.memo)(({children:e,className:t,node:a,...r})=>{var n,o;let l=(Array.isArray(e)?e:[e]).filter(i=>i!=null&&i!=="");if(l.length===1&&(0,E.isValidElement)(l[0])){let i=l[0].props.node,s=i?.tagName;if(s==="img")return(0,A.jsx)(A.Fragment,{children:e});if(s==="code"&&((n=i?.position)==null?void 0:n.start.line)!==((o=i?.position)==null?void 0:o.end.line))return(0,A.jsx)(A.Fragment,{children:e})}return(0,A.jsx)("p",{className:t,...r,children:e})},(e,t)=>mt(e,t));GA.displayName="MarkdownParagraph";sz={ol:Cy,li:SA,ul:CA,hr:IA,strong:LA,a:kA,h1:TA,h2:AA,h3:MA,h4:EA,h5:RA,h6:DA,table:_A,thead:OA,tbody:PA,tr:NA,th:BA,td:UA,blockquote:zA,code:jA,img:VA,pre:({children:e})=>e,sup:qA,sub:FA,p:GA,section:HA},mA=[],hA={allowDangerousHtml:!0},Td=new WeakMap,uz=class{constructor(){this.cache=new Map,this.keyCache=new WeakMap,this.maxSize=100}generateCacheKey(e){let t=this.keyCache.get(e);if(t)return t;let a=e.rehypePlugins,r=e.remarkPlugins,n=e.remarkRehypeOptions;if(!(a||r||n)){let c="default";return this.keyCache.set(e,c),c}let o=c=>{if(!c||c.length===0)return"";let d="";for(let f=0;f<c.length;f+=1){let p=c[f];if(f>0&&(d+=","),Array.isArray(p)){let[g,v]=p;if(typeof g=="function"){let C=Td.get(g);C||(C=g.name,Td.set(g,C)),d+=C}else d+=String(g);d+=":",d+=JSON.stringify(v)}else if(typeof p=="function"){let g=Td.get(p);g||(g=p.name,Td.set(p,g)),d+=g}else d+=String(p)}return d},l=o(a),i=o(r),s=n?JSON.stringify(n):"",u=`${i}::${l}::${s}`;return this.keyCache.set(e,u),u}get(e){let t=this.generateCacheKey(e),a=this.cache.get(t);return a&&(this.cache.delete(t),this.cache.set(t,a)),a}set(e,t){let a=this.generateCacheKey(e);if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r)}this.cache.set(a,t)}clear(){this.cache.clear()}},gA=new uz,WA=e=>{let t=cz(e),a=e.children||"";return fz(t.runSync(t.parse(a),a),e)},cz=e=>{let t=gA.get(e);if(t)return t;let a=dz(e);return gA.set(e,a),a},dz=e=>{let t=e.rehypePlugins||mA,a=e.remarkPlugins||mA,r=e.remarkRehypeOptions?{...hA,...e.remarkRehypeOptions}:hA;return ey().use(cd).use(a).use(md,r).use(t)},fz=(e,t)=>_g(e,{Fragment:A.Fragment,components:t.components,ignoreInvalidStyle:!0,jsx:A.jsx,jsxs:A.jsxs,passKeys:!0,passNode:!0}),pz=/\[\^[^\]\s]{1,200}\](?!:)/,mz=/\[\^[^\]\s]{1,200}\]:/,hz=/<\/(\w+)>/,gz=/<(\w+)[\s>]/,gy=e=>{let t=0;for(;t<e.length&&(e[t]===" "||e[t]===" "||e[t]===`
120
120
  `||e[t]==="\r");)t+=1;return t+1<e.length&&e[t]==="$"&&e[t+1]==="$"},yz=e=>{let t=e.length-1;for(;t>=0&&(e[t]===" "||e[t]===" "||e[t]===`
121
- `||e[t]==="\r");)t-=1;return t>=1&&e[t]==="$"&&e[t-1]==="$"},yy=e=>{let t=0;for(let a=0;a<e.length-1;a+=1)e[a]==="$"&&e[a+1]==="$"&&(t+=1,a+=1);return t},XA=e=>{let t=pz.test(e),a=mz.test(e);if(t||a)return[e];let r=xa.lex(e,{gfm:!0}),n=[],o=[];for(let l of r){let i=l.raw,s=n.length;if(o.length>0){if(n[s-1]+=i,l.type==="html"){let u=i.match(hz);if(u){let c=u[1];o.at(-1)===c&&o.pop()}}continue}if(l.type==="html"&&l.block){let u=i.match(gz);if(u){let c=u[1];i.includes(`</${c}>`)||o.push(c)}}if(i.trim()==="$$"&&s>0){let u=n[s-1],c=gy(u),d=yy(u);if(c&&d%2===1){n[s-1]=u+i;continue}}if(s>0&&yz(i)){let u=n[s-1],c=gy(u),d=yy(u),f=yy(i);if(c&&d%2===1&&!gy(i)&&f===1){n[s-1]=u+i;continue}}n.push(i)}return n},$A={raw:T0,sanitize:[Ec,{}],harden:[L0,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},ZA={gfm:[td,{}]},xz=Object.values($A),vz=Object.values(ZA),wz={block:" \u258B",circle:" \u25CF"},bz={shikiTheme:["github-light","github-dark"],controls:!0,isAnimating:!1,mode:"streaming",mermaid:void 0,linkSafety:{enabled:!0}},Zt=(0,E.createContext)(bz),Iy=(0,E.memo)(({content:e,shouldParseIncompleteMarkdown:t,index:a,...r})=>(0,A.jsx)(WA,{...r,children:e}),(e,t)=>{if(e.content!==t.content||e.index!==t.index)return!1;if(e.components!==t.components){let a=Object.keys(e.components||{}),r=Object.keys(t.components||{});if(a.length!==r.length||a.some(n=>{var o,l;return((o=e.components)==null?void 0:o[n])!==((l=t.components)==null?void 0:l[n])}))return!1}return!(e.rehypePlugins!==t.rehypePlugins||e.remarkPlugins!==t.remarkPlugins)});Iy.displayName="Block";Sz=["github-light","github-dark"],Ed=(0,E.memo)(({children:e,mode:t="streaming",parseIncompleteMarkdown:a=!0,components:r,rehypePlugins:n=xz,remarkPlugins:o=vz,className:l,shikiTheme:i=Sz,mermaid:s,controls:u=!0,isAnimating:c=!1,BlockComponent:d=Iy,parseMarkdownIntoBlocksFn:f=XA,caret:p,plugins:g,remend:v,linkSafety:C={enabled:!0},...y})=>{let x=(0,E.useId)(),[h,w]=(0,E.useTransition)(),k=(0,E.useMemo)(()=>typeof e!="string"?"":t==="streaming"&&a?z1(e,v):e,[e,t,a,v]),I=(0,E.useMemo)(()=>f(k),[k,f]),[M,_]=(0,E.useState)(I);(0,E.useEffect)(()=>{t==="streaming"?w(()=>{_(I)}):_(I)},[I,t]);let P=t==="streaming"?M:I,T=(0,E.useMemo)(()=>P.map((K,me)=>`${x}-${me}`),[P.length,x]),H=(0,E.useMemo)(()=>{var K,me;return{shikiTheme:(me=(K=g?.code)==null?void 0:K.getThemes())!=null?me:i,controls:u,isAnimating:c,mode:t,mermaid:s,linkSafety:C}},[i,u,c,t,s,C,g?.code]),R=(0,E.useMemo)(()=>({...sz,...r}),[r]),B=(0,E.useMemo)(()=>{let K=[];return g!=null&&g.cjk&&(K=[...K,...g.cjk.remarkPluginsBefore]),K=[...K,...o],g!=null&&g.cjk&&(K=[...K,...g.cjk.remarkPluginsAfter]),g!=null&&g.math&&(K=[...K,g.math.remarkPlugin]),K},[o,g?.math,g?.cjk]),j=(0,E.useMemo)(()=>g!=null&&g.math?[...n,g.math.rehypePlugin]:n,[n,g?.math]),V=(0,E.useMemo)(()=>p&&c?{"--streamdown-caret":`"${wz[p]}"`}:void 0,[p,c]);return t==="static"?(0,A.jsx)(xy.Provider,{value:g??null,children:(0,A.jsx)(Zt.Provider,{value:H,children:(0,A.jsx)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",l),children:(0,A.jsx)(WA,{components:R,rehypePlugins:j,remarkPlugins:B,...y,children:e})})})}):(0,A.jsx)(xy.Provider,{value:g??null,children:(0,A.jsx)(Zt.Provider,{value:H,children:(0,A.jsxs)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",p?"*:last:after:inline *:last:after:align-baseline *:last:after:content-(--streamdown-caret)":null,l),style:V,children:[P.length===0&&p&&c&&(0,A.jsx)("span",{}),P.map((K,me)=>(0,A.jsx)(d,{components:R,content:K,index:me,rehypePlugins:j,remarkPlugins:B,shouldParseIncompleteMarkdown:a,...y},T[me]))]})})})},(e,t)=>e.children===t.children&&e.shikiTheme===t.shikiTheme&&e.isAnimating===t.isAnimating&&e.mode===t.mode&&e.plugins===t.plugins&&e.className===t.className&&e.linkSafety===t.linkSafety);Ed.displayName="Streamdown";Cz=({children:e,className:t,minZoom:a=.5,maxZoom:r=3,zoomStep:n=.1,showControls:o=!0,initialZoom:l=1,fullscreen:i=!1})=>{let s=(0,E.useRef)(null),u=(0,E.useRef)(null),[c,d]=(0,E.useState)(l),[f,p]=(0,E.useState)({x:0,y:0}),[g,v]=(0,E.useState)(!1),[C,y]=(0,E.useState)({x:0,y:0}),[x,h]=(0,E.useState)({x:0,y:0}),w=(0,E.useCallback)(R=>{d(B=>Math.max(a,Math.min(r,B+R)))},[a,r]),k=(0,E.useCallback)(()=>{w(n)},[w,n]),I=(0,E.useCallback)(()=>{w(-n)},[w,n]),M=(0,E.useCallback)(()=>{d(l),p({x:0,y:0})},[l]),_=(0,E.useCallback)(R=>{R.preventDefault();let B=R.deltaY>0?-n:n;w(B)},[w,n]),P=(0,E.useCallback)(R=>{if(R.button!==0||R.isPrimary===!1)return;v(!0),y({x:R.clientX,y:R.clientY}),h(f);let B=R.currentTarget;B instanceof HTMLElement&&B.setPointerCapture(R.pointerId)},[f]),T=(0,E.useCallback)(R=>{if(!g)return;R.preventDefault();let B=R.clientX-C.x,j=R.clientY-C.y;p({x:x.x+B,y:x.y+j})},[g,C,x]),H=(0,E.useCallback)(R=>{v(!1);let B=R.currentTarget;B instanceof HTMLElement&&B.releasePointerCapture(R.pointerId)},[]);return(0,E.useEffect)(()=>{let R=s.current;if(R)return R.addEventListener("wheel",_,{passive:!1}),()=>{R.removeEventListener("wheel",_)}},[_]),(0,E.useEffect)(()=>{let R=u.current;if(R&&g)return document.body.style.userSelect="none",R.addEventListener("pointermove",T,{passive:!1}),R.addEventListener("pointerup",H),R.addEventListener("pointercancel",H),()=>{document.body.style.userSelect="",R.removeEventListener("pointermove",T),R.removeEventListener("pointerup",H),R.removeEventListener("pointercancel",H)}},[g,T,H]),(0,A.jsxs)("div",{className:Y("relative flex flex-col",i?"h-full w-full":"min-h-28 w-full",t),ref:s,style:{cursor:g?"grabbing":"grab"},children:[o?(0,A.jsxs)("div",{className:Y("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/90 p-1 shadow-sm backdrop-blur-sm",i?"bottom-4 left-4":"bottom-2 left-2"),children:[(0,A.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c>=r,onClick:k,title:"Zoom in",type:"button",children:(0,A.jsx)(z4,{size:16})}),(0,A.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c<=a,onClick:I,title:"Zoom out",type:"button",children:(0,A.jsx)(q4,{size:16})}),(0,A.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:M,title:"Reset zoom and pan",type:"button",children:(0,A.jsx)(U4,{size:16})})]}):null,(0,A.jsx)("div",{className:Y("flex-1 origin-center transition-transform duration-150 ease-out",i?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:P,ref:u,role:"application",style:{transform:`translate(${f.x}px, ${f.y}px) scale(${c})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})},my=({chart:e,className:t,config:a,fullscreen:r=!1,showControls:n=!0})=>{let[o,l]=(0,E.useState)(null),[i,s]=(0,E.useState)(!1),[u,c]=(0,E.useState)(""),[d,f]=(0,E.useState)(""),[p,g]=(0,E.useState)(0),{mermaid:v}=(0,E.useContext)(Zt),C=Sy(),y=v?.errorComponent,{shouldRender:x,containerRef:h}=P4({immediate:r});if((0,E.useEffect)(()=>{if(x){if(!C){l("Mermaid plugin not available. Please add the mermaid plugin to enable diagram rendering.");return}(async()=>{try{l(null),s(!0);let k=C.getMermaid(a),I=e.split("").reduce((P,T)=>(P<<5)-P+T.charCodeAt(0)|0,0),M=`mermaid-${Math.abs(I)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:_}=await k.render(M,e);c(_),f(_)}catch(k){if(!(d||u)){let I=k instanceof Error?k.message:"Failed to render Mermaid chart";l(I)}}finally{s(!1)}})()}},[e,a,p,x,C]),!(x||u||d))return(0,A.jsx)("div",{className:Y("my-4 min-h-[200px]",t),ref:h});if(i&&!u&&!d)return(0,A.jsx)("div",{className:Y("my-4 flex justify-center p-4",t),ref:h,children:(0,A.jsxs)("div",{className:"flex items-center space-x-2 text-muted-foreground",children:[(0,A.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-current border-b-2"}),(0,A.jsx)("span",{className:"text-sm",children:"Loading diagram..."})]})});if(o&&!u&&!d)return y?(0,A.jsx)("div",{ref:h,children:(0,A.jsx)(y,{chart:e,error:o,retry:()=>g(I=>I+1)})}):(0,A.jsxs)("div",{className:Y("rounded-lg border border-red-200 bg-red-50 p-4",t),ref:h,children:[(0,A.jsxs)("p",{className:"font-mono text-red-700 text-sm",children:["Mermaid Error: ",o]}),(0,A.jsxs)("details",{className:"mt-2",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-red-600 text-xs",children:"Show Code"}),(0,A.jsx)("pre",{className:"mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs",children:e})]})]});let w=u||d;return(0,A.jsx)("div",{className:Y("size-full",t),"data-streamdown":"mermaid",ref:h,children:(0,A.jsx)(Cz,{className:Y(r?"size-full overflow-hidden":"my-4 overflow-hidden",t),fullscreen:r,maxZoom:3,minZoom:.5,showControls:n,zoomStep:.1,children:(0,A.jsx)("div",{"aria-label":"Mermaid chart",className:Y("flex justify-center",r?"size-full items-center":null),dangerouslySetInnerHTML:{__html:w},role:"img"})})})}});var o2=Ut((qJ,n2)=>{"use strict";function KF(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let a,r=0;return function(...o){clearTimeout(a);let l=Date.now(),i=l-r,s=t-i;s<=0?(r=l,e.apply(this,o)):a=setTimeout(()=>{r=Date.now(),e.apply(this,o)},s)}}n2.exports=KF});var Jy=F(Ze(),1),U2=F(jS(),1);var z_="https://app.waniwani.ai/api/mcp/chat",q_={api:z_};function F_(){if(document.currentScript instanceof HTMLScriptElement)return document.currentScript;let e=document.querySelectorAll("script[src]");for(let t of e)if(t instanceof HTMLScriptElement&&/embed/i.test(t.src))return t;return null}function hc(){let e=F_();if(!e)return{};let t=h=>e.getAttribute(h)??void 0,a=h=>{let w=e.getAttribute(h);if(w==null)return;let k=w.trim().toLowerCase();if(k==="true"||k==="1"||k==="")return!0;if(k==="false"||k==="0")return!1},r={},n=t("data-api");n&&(r.api=n);let o=t("data-token");o&&(r.token=o);let l=t("data-title");l&&(r.title=l);let i=t("data-welcome-message");i&&(r.welcomeMessage=i);let s=t("data-placeholder");s&&(r.placeholder=s);let u=t("data-mcp-server-url");u&&(r.mcpServerUrl=u);let c=t("data-channel-id");c&&(r.channelId=c);let d=a("data-show-tool-calls");d!==void 0&&(r.showToolCalls=d);let f=t("data-css");f&&(r.css=f);let p=t("data-suggestions");p&&(r.suggestions=p.split(",").map(h=>h.trim()).filter(Boolean));let g=a("data-enable-thread-history");g!==void 0&&(r.enableThreadHistory=g);let v=t("data-primary-color"),C=t("data-background-color"),y=t("data-text-color"),x=t("data-font-family");return(v||C||y||x)&&(r.theme={},v&&(r.theme.primaryColor=v),C&&(r.theme.backgroundColor=C),y&&(r.theme.textColor=y),x&&(r.theme.fontFamily=x)),r}function Gm(e){if(!e)return{};let t={};for(let a in e)e[a]!==void 0&&(t[a]=e[a]);return t}function gc(e,t,a){let r=a??hc(),n={token:"",...q_,...Gm(t),...Gm(r),...Gm(e),theme:{...t?.theme??{},...r.theme,...e?.theme}};if(!n.token)throw new Error("[WaniWani] Missing required config: `token`. Set data-token on the script tag or pass it to WaniWani.chat.init().");return n}function VS(e){if(!e.theme)return;let t=e.theme;return{...t.primaryColor?{primaryColor:t.primaryColor}:{},...t.backgroundColor?{backgroundColor:t.backgroundColor}:{},...t.textColor?{textColor:t.textColor}:{},...t.fontFamily?{fontFamily:t.fontFamily}:{}}}var On=F(Ze(),1);var xc=F(Ze());var yc=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();var GS=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var WS=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,r)=>r?r.toUpperCase():a.toLowerCase());var Wm=e=>{let t=WS(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Ui=F(Ze());var XS={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var $S=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var ZS=(0,Ui.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:n="",children:o,iconNode:l,...i},s)=>(0,Ui.createElement)("svg",{ref:s,...XS,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:yc("lucide",n),...!o&&!$S(i)&&{"aria-hidden":"true"},...i},[...l.map(([u,c])=>(0,Ui.createElement)(u,c)),...Array.isArray(o)?o:[o]]));var rt=(e,t)=>{let a=(0,xc.forwardRef)(({className:r,...n},o)=>(0,xc.createElement)(ZS,{ref:o,iconNode:t,className:yc(`lucide-${GS(Wm(e))}`,`lucide-${e}`,r),...n}));return a.displayName=Wm(e),a};var H_=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],zi=rt("arrow-down",H_);var j_=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],qi=rt("arrow-up",j_);var V_=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],xn=rt("braces",V_);var G_=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Fi=rt("check",G_);var W_=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Hi=rt("chevron-down",W_);var X_=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ji=rt("chevron-right",X_);var $_=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],Vi=rt("clipboard-copy",$_);var Z_=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Gi=rt("file",Z_);var Q_=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],Wi=rt("loader",Q_);var K_=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Xi=rt("paperclip",K_);var Y_=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],$i=rt("square",Y_);var J_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ao=rt("x",J_);var nt=F(Ze(),1);var Zi=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,a)=>(a&=63,a<36?t+=a.toString(36):a<62?t+=(a-26).toString(36).toUpperCase():a>62?t+="-":t+="_",t),"");var je=F(Ze(),1);Xm();Zm();var eO=KS({prefix:"ww"});function Q(...e){return eO(vc(e))}var t0=F(ce(),1),ar=({className:e,variant:t="default",size:a="default",type:r="button",...n})=>(0,t0.jsx)("button",{type:r,className:Q("ww:inline-flex ww:cursor-pointer ww:items-center ww:justify-center ww:rounded-md ww:font-medium ww:transition-colors ww:disabled:pointer-events-none ww:disabled:opacity-50",t==="default"&&"ww:bg-primary ww:text-primary-foreground ww:hover:bg-primary/90",t==="outline"&&"ww:border ww:border-border ww:bg-background ww:hover:bg-accent ww:hover:text-accent-foreground",t==="ghost"&&"ww:hover:bg-accent ww:hover:text-accent-foreground",a==="default"&&"ww:h-9 ww:px-4 ww:py-2 ww:text-sm",a==="sm"&&"ww:h-8 ww:px-3 ww:text-xs",a==="icon"&&"ww:size-9 ww:!rounded-full",a==="icon-sm"&&"ww:size-7 ww:!rounded-full",e),...n});var Wt=F(ce(),1),rO=async e=>{try{let a=await(await fetch(e)).blob();return new Promise(r=>{let n=new FileReader;n.onloadend=()=>r(n.result),n.onerror=()=>r(null),n.readAsDataURL(a)})}catch{return null}},a0=(0,je.createContext)(null),r0=()=>{let e=(0,je.useContext)(a0);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},n0=({className:e,accept:t,multiple:a,globalDrop:r,maxFiles:n,maxFileSize:o,onSubmit:l,children:i,...s})=>{let u=(0,je.useRef)(null),c=(0,je.useRef)(null),[d,f]=(0,je.useState)([]),p=(0,je.useRef)(d);(0,je.useEffect)(()=>{p.current=d},[d]);let g=(0,je.useCallback)(()=>{u.current?.click()},[]),v=(0,je.useCallback)(k=>{let I=[...k];if(I.length===0)return;let M=P=>o?P.size<=o:!0,_=I.filter(M);f(P=>{let T=typeof n=="number"?Math.max(0,n-P.length):void 0,H=typeof T=="number"?_.slice(0,T):_;return[...P,...H.map(R=>({filename:R.name,id:Zi(),mediaType:R.type,type:"file",url:URL.createObjectURL(R)}))]})},[n,o]),C=(0,je.useCallback)(k=>{f(I=>{let M=I.find(_=>_.id===k);return M?.url&&URL.revokeObjectURL(M.url),I.filter(_=>_.id!==k)})},[]),y=(0,je.useCallback)(()=>{f(k=>{for(let I of k)I.url&&URL.revokeObjectURL(I.url);return[]})},[]);(0,je.useEffect)(()=>()=>{for(let k of p.current)k.url&&URL.revokeObjectURL(k.url)},[]);let x=(0,je.useCallback)(k=>{k.currentTarget.files&&v(k.currentTarget.files),k.currentTarget.value=""},[v]);(0,je.useEffect)(()=>{if(!r)return;let k=M=>{M.dataTransfer?.types?.includes("Files")&&M.preventDefault()},I=M=>{M.dataTransfer?.types?.includes("Files")&&M.preventDefault(),M.dataTransfer?.files&&M.dataTransfer.files.length>0&&v(M.dataTransfer.files)};return document.addEventListener("dragover",k),document.addEventListener("drop",I),()=>{document.removeEventListener("dragover",k),document.removeEventListener("drop",I)}},[v,r]);let h=(0,je.useCallback)(async k=>{k.preventDefault();let I=k.currentTarget,_=new FormData(I).get("message")||"";I.reset();let P=await Promise.all(d.map(async({id:T,...H})=>{if(H.url?.startsWith("blob:")){let R=await rO(H.url);return{...H,url:R??H.url}}return H}));try{let T=l({files:P,text:_},k);T instanceof Promise&&await T,y()}catch{}},[d,l,y]),w=(0,je.useMemo)(()=>({add:v,clear:y,files:d,openFileDialog:g,remove:C}),[d,v,C,y,g]);return(0,Wt.jsxs)(a0.Provider,{value:w,children:[(0,Wt.jsx)("input",{accept:t,"aria-label":"Upload files",className:"ww:hidden",multiple:a,onChange:x,ref:u,title:"Upload files",type:"file"}),(0,Wt.jsx)("form",{className:Q("ww:flex ww:w-full ww:flex-col ww:rounded-lg ww:border ww:border-border ww:bg-background",e),onSubmit:h,ref:c,...s,children:i})]})};var o0=({onChange:e,onKeyDown:t,className:a,placeholder:r="What would you like to know?",...n})=>{let o=r0(),[l,i]=(0,je.useState)(!1),s=(0,je.useCallback)(c=>{if(t?.(c),!c.defaultPrevented){if(c.key==="Enter"){if(l||c.nativeEvent.isComposing||c.shiftKey)return;c.preventDefault();let{form:d}=c.currentTarget;if(d?.querySelector('button[type="submit"]')?.disabled)return;d?.requestSubmit()}if(c.key==="Backspace"&&c.currentTarget.value===""&&o.files.length>0){c.preventDefault();let d=o.files.at(-1);d&&o.remove(d.id)}}},[t,l,o]),u=(0,je.useCallback)(c=>{let d=c.clipboardData?.items;if(!d)return;let f=[];for(let p of d)if(p.kind==="file"){let g=p.getAsFile();g&&f.push(g)}f.length>0&&(c.preventDefault(),o.add(f))},[o]);return(0,Wt.jsx)("textarea",{className:Q("ww:field-sizing-content ww:max-h-48 ww:min-h-0 ww:w-full ww:resize-none ww:border-0 ww:bg-transparent ww:px-3 ww:py-2 ww:text-sm ww:outline-none ww:placeholder:text-muted-foreground",a),name:"message",onCompositionEnd:()=>i(!1),onCompositionStart:()=>i(!0),onKeyDown:s,onPaste:u,placeholder:r,onChange:e,...n})},l0=({className:e,status:t,onStop:a,onClick:r,children:n,...o})=>{let l=t==="submitted"||t==="streaming",i=(0,Wt.jsx)(qi,{className:"ww:size-4"});t==="submitted"?i=(0,Wt.jsx)(Wi,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(i=(0,Wt.jsx)($i,{className:"ww:size-4"}));let s=(0,je.useCallback)(u=>{if(l&&a){u.preventDefault(),a();return}r?.(u)},[l,a,r]);return(0,Wt.jsx)(ar,{"aria-label":l?"Stop":"Submit",className:Q("ww:bg-foreground ww:text-background ww:hover:bg-foreground ww:rounded-full",e),onClick:s,size:"icon-sm",type:l&&a?"button":"submit",variant:"ghost",...o,children:n??i})},i0=({className:e,children:t,...a})=>{let r=r0();return r.files.length>0?(0,Wt.jsxs)(ar,{className:Q("ww:group ww:relative",e),onClick:()=>r.clear(),size:"icon-sm",type:"button",variant:"ghost","aria-label":"Remove all attachments",...a,children:[(0,Wt.jsx)("span",{className:"ww:flex ww:size-5 ww:items-center ww:justify-center ww:rounded-full ww:bg-primary ww:text-[10px] ww:font-medium ww:text-primary-foreground ww:transition-opacity ww:group-hover:opacity-0",children:r.files.length}),(0,Wt.jsx)(ao,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):(0,Wt.jsx)(ar,{className:Q(e),onClick:()=>r.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??(0,Wt.jsx)(Xi,{className:"ww:size-4"})})};var bc=F(Ze(),1);var ro=F(ce(),1),s0=({className:e,...t})=>(0,ro.jsx)("div",{className:Q("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),u0=({className:e,...t})=>(0,ro.jsx)("li",{className:Q("ww:group ww:flex ww:items-center ww:gap-2 ww:rounded-md ww:px-2 ww:py-1 ww:text-sm ww:transition-colors ww:hover:bg-muted",e),...t}),c0=({className:e,...t})=>(0,ro.jsx)("span",{className:Q("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),d0=({className:e,...t})=>(0,ro.jsx)("span",{className:Q("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),f0=({className:e,...t})=>(0,ro.jsx)("div",{className:Q("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),p0=({className:e,...t})=>(0,ro.jsx)(ar,{className:Q("ww:size-auto ww:rounded ww:p-1 ww:text-muted-foreground ww:hover:bg-muted-foreground/10 ww:hover:text-foreground",e),size:"icon",type:"button",variant:"ghost",...t});var _a=F(ce(),1),m0=(0,bc.memo)(({message:e,onRemove:t})=>{let a=(0,bc.useCallback)(()=>t(e.id),[t,e.id]);return(0,_a.jsxs)(u0,{children:[(0,_a.jsx)(c0,{}),(0,_a.jsx)(d0,{children:e.text||"(attachment)"}),(0,_a.jsx)(f0,{children:(0,_a.jsx)(p0,{"aria-label":"Remove from queue",onClick:a,children:(0,_a.jsx)(ao,{className:"ww:size-3"})})})]})});m0.displayName="ChatQueueItem";function h0({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:(0,_a.jsxs)(s0,{className:Q("ww:border-t ww:border-border",a),children:[(0,_a.jsxs)("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),(0,_a.jsx)("ul",{children:e.map(r=>(0,_a.jsx)(m0,{message:r,onRemove:t},r.id))})]})}var vn=F(ce(),1),g0=({files:e,className:t,...a})=>e.length===0?null:(0,vn.jsx)("div",{className:Q("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((r,n)=>(0,vn.jsx)(nO,{file:r},n))});function nO({file:e}){return e.mediaType?.startsWith("image/")&&e.url?(0,vn.jsx)("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):(0,vn.jsxs)("span",{className:"ww:inline-flex ww:items-center ww:gap-1.5 ww:rounded ww:bg-background/20 ww:px-2 ww:py-1 ww:text-xs",children:[(0,vn.jsx)(Gi,{className:"ww:size-3 ww:shrink-0"}),(0,vn.jsx)("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}var Qm=F(ce(),1),Km=({className:e,size:t=5,...a})=>(0,Qm.jsx)("div",{className:Q("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(r=>(0,Qm.jsx)("div",{className:"ww:rounded-full ww:bg-muted-foreground/60",style:{width:t,height:t,animation:"ww-pulse 1.4s ease-in-out infinite",animationDelay:`${r*.2}s`}},r))});var y0={name:"cjk-noop",type:"cjk",remarkPluginsBefore:[],remarkPluginsAfter:[],remarkPlugins:[]};var x0={name:"shiki-noop",type:"code-highlighter",supportsLanguage:()=>!1,getSupportedLanguages:()=>[],getThemes:()=>["github-light","github-dark"],highlight:()=>null};var QA=F(Ze(),1);Ld();var Cs=F(ce(),1),Rd=({className:e,from:t,children:a,...r})=>(0,Cs.jsx)("div",{className:Q("ww:group ww:flex ww:w-full",t==="user"?"is-user ww:ml-auto ww:max-w-[80%] ww:flex-col ww:items-end":"is-assistant ww:flex-col",e),...r,children:(0,Cs.jsx)("div",{className:Q("ww:flex ww:min-w-0 ww:flex-col ww:gap-2","ww:w-full"),children:a})}),Dd=({children:e,className:t,...a})=>(0,Cs.jsx)("div",{className:Q("ww:flex ww:w-fit ww:min-w-0 ww:max-w-full ww:flex-col ww:gap-2 ww:overflow-hidden ww:text-base","ww:group-[.is-user]:ml-auto ww:group-[.is-user]:rounded-lg ww:group-[.is-user]:bg-user-bubble ww:group-[.is-user]:px-4 ww:group-[.is-user]:py-3 ww:group-[.is-user]:text-primary-foreground","ww:group-[.is-assistant]:text-foreground",t),...a,children:e}),Iz={cjk:y0,code:x0},_d=(0,QA.memo)(({className:e,...t})=>(0,Cs.jsx)(Ed,{className:Q("ww:size-full ww:[&>*:first-child]:mt-0 ww:[&>*:last-child]:mb-0",e),plugins:Iz,...t}),(e,t)=>e.children===t.children);_d.displayName="MessageResponse";var YA=F(ce(),1);function KA({className:e,text:t,...a}){return t?(0,YA.jsx)("pre",{className:Q("ww:mb-2 ww:overflow-x-auto ww:whitespace-pre-wrap ww:break-words ww:text-xs ww:font-mono ww:text-muted-foreground",e),...a,children:t}):null}var Tt=F(Ze(),1);var ue=F(ce(),1);function Lz(e,t=80){if(e==null)return String(e);if(typeof e!="object")return String(e).slice(0,t);if(Array.isArray(e))return`Array(${e.length})`;let a=JSON.stringify(e);if(a.length<=t)return a;let r=Object.entries(e),n=[],o=t-2;for(let[l,i]of r){if(o<=8)break;let s=l.length>4?`${l.slice(0,4)}\u2026`:l,u;typeof i=="string"?u=i.length>2?`'${i.slice(0,1)}\u2026`:`'${i}'`:Array.isArray(i)?u=`Array(${i.length})`:typeof i=="object"&&i!==null?u="{\u2026}":u=String(i);let c=`${s}\u2009${u}`;n.push(c),o-=c.length+3}return`{${n.join(", ")}}`}function kz({text:e,className:t}){let[a,r]=(0,Tt.useState)(!1),n=(0,Tt.useRef)(null);(0,Tt.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]);let o=(0,Tt.useCallback)(async l=>{l.stopPropagation();try{await navigator.clipboard.writeText(e),r(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>r(!1),2e3)}catch{}},[e]);return(0,ue.jsx)(ar,{variant:"ghost",size:"sm",onClick:o,className:Q("ww:h-auto ww:gap-1 ww:px-1.5 ww:py-0.5 ww:text-xs ww:text-muted-foreground ww:hover:text-foreground",t),children:a?(0,ue.jsxs)(ue.Fragment,{children:[(0,ue.jsx)(Fi,{className:"ww:size-3.5"}),(0,ue.jsx)("span",{children:"Copied"})]}):(0,ue.jsxs)(ue.Fragment,{children:[(0,ue.jsx)(Vi,{className:"ww:size-3.5"}),(0,ue.jsx)("span",{children:"Copy"})]})})}function tM({data:e,label:t,className:a,...r}){let[n,o]=(0,Tt.useState)(!1),l=(0,Tt.useMemo)(()=>JSON.stringify(e,null,2),[e]),i=Lz(e);return(0,ue.jsxs)("div",{className:Q("ww:rounded-lg ww:bg-tool-card",a),...r,children:[(0,ue.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:px-3 ww:pt-2.5 ww:pb-1.5",children:[(0,ue.jsx)("span",{className:"ww:text-xs ww:font-medium ww:text-muted-foreground",children:t}),(0,ue.jsx)(kz,{text:l})]}),(0,ue.jsxs)("button",{type:"button",onClick:()=>o(s=>!s),className:"ww:flex ww:w-full ww:items-start ww:gap-2 ww:px-3 ww:pb-3 ww:text-left",children:[(0,ue.jsx)(ji,{className:Q("ww:mt-0.5 ww:size-3.5 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-150",n&&"ww:rotate-90")}),n?(0,ue.jsx)("pre",{className:"ww:overflow-x-auto ww:text-xs ww:font-mono ww:text-foreground ww:whitespace-pre-wrap ww:break-all",children:(0,ue.jsx)("code",{children:l})}):(0,ue.jsx)("span",{className:"ww:truncate ww:text-xs ww:font-mono ww:text-foreground/80",children:i})]})]})}var ky=(0,Tt.createContext)({open:!1,toggle:()=>{}});function aM({className:e,defaultOpen:t=!1,children:a,...r}){let[n,o]=(0,Tt.useState)(t);return(0,ue.jsx)(ky.Provider,{value:{open:n,toggle:()=>o(l=>!l)},children:(0,ue.jsx)("div",{className:Q("ww:mb-4 ww:w-full",e),"data-state":n?"open":"closed",...r,children:a})})}function rM({className:e,title:t,state:a,...r}){let{open:n,toggle:o}=(0,Tt.useContext)(ky),l=a==="input-available"||a==="input-streaming";return(0,ue.jsxs)("button",{type:"button",onClick:o,className:Q("ww:flex ww:w-full ww:items-center ww:justify-between ww:gap-3 ww:py-1.5",e),"aria-expanded":n,...r,children:[(0,ue.jsxs)("div",{className:"ww:flex ww:min-w-0 ww:items-center ww:gap-2",children:[(0,ue.jsx)(xn,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,ue.jsx)("span",{className:"ww:truncate ww:text-sm ww:font-medium",children:t}),l&&(0,ue.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]}),(0,ue.jsx)(Hi,{className:Q("ww:size-4 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-200",n&&"ww:rotate-180")})]})}function nM({className:e,title:t,state:a,...r}){let n=a==="input-available"||a==="input-streaming";return(0,ue.jsxs)("div",{className:Q("ww:mb-4 ww:flex ww:items-center ww:gap-2 ww:py-1.5 ww:text-sm ww:text-muted-foreground ww:italic",e),...r,children:[(0,ue.jsx)("span",{className:"ww:truncate",children:t}),n&&(0,ue.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]})}function oM({className:e,children:t,...a}){let{open:r}=(0,Tt.useContext)(ky);return(0,ue.jsx)("div",{className:Q("ww:grid ww:transition-[grid-template-rows,opacity] ww:duration-200 ww:ease-out",r?"ww:grid-rows-[1fr] ww:opacity-100":"ww:grid-rows-[0fr] ww:opacity-0"),children:(0,ue.jsx)("div",{className:"ww:min-h-0 ww:overflow-hidden",children:(0,ue.jsx)("div",{className:Q("ww:mt-2 ww:space-y-3 ww:rounded-lg ww:border ww:border-border ww:bg-background ww:p-3",e),...a,children:t})})})}function lM({className:e,input:t,debug:a,...r}){let n=(0,Tt.useMemo)(()=>{if(!a&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:o,...l}=t;return l}return t},[t,a]);return(0,ue.jsx)(tM,{data:n,label:"Request",className:e,...r})}function Ly(e){if(!(typeof e!="object"||e===null))return e}function iM(e){return Ly(e?.ui)}function sM(e){return Ly(Ly(e)?._meta)}function JA(e){if(!e)return;let t=iM(e)?.resourceUri;if(typeof t=="string"&&t.length>0)return t;let a=e["ui/resourceUri"];if(typeof a=="string"&&a.length>0)return a;let r=e["openai/outputTemplate"];if(typeof r=="string"&&r.length>0)return r}function eM(e){return iM(e)?.autoHeight===!0}function Od(e,t,a){if(e){let r=JA(a?.[e]?._meta);if(r)return r}return JA(sM(t))}function uM(e,t,a){return e&&eM(a?.[e]?._meta)?!0:eM(sM(t))}function cM({className:e,output:t,errorText:a,debug:r,...n}){let o=(0,Tt.useMemo)(()=>{if(!r&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:l,...i}=t;return i}return t},[t,r]);return t||a?a?(0,ue.jsxs)("div",{className:Q("ww:space-y-2",e),...n,children:[(0,ue.jsx)("h4",{className:"ww:text-xs ww:font-medium ww:uppercase ww:tracking-wide ww:text-muted-foreground",children:"Error"}),(0,ue.jsx)("div",{className:"ww:rounded-lg ww:bg-destructive/10 ww:p-3 ww:text-xs ww:text-destructive",children:a})]}):(0,ue.jsx)(tM,{data:o,label:"Response",className:e,...n}):null}var Xe=F(Ze(),1);function Ml(e){if(!e)return!1;let t=Array.isArray(e.content)&&e.content.length>0,a=typeof e.structuredContent=="object"&&e.structuredContent!==null&&Object.keys(e.structuredContent).length>0;return t||a}function dM(e,t){return!Ml(e)&&!Ml(t)?null:Ml(e)?Ml(t)?{...e.content||t.content?{content:[...e.content??[],...t.content??[]]}:{},...e.structuredContent||t.structuredContent?{structuredContent:{...e.structuredContent??{},...t.structuredContent??{}}}:{}}:{...e.content?{content:[...e.content]}:{},...e.structuredContent?{structuredContent:{...e.structuredContent}}:{}}:{...t?.content?{content:[...t.content]}:{},...t?.structuredContent?{structuredContent:{...t.structuredContent}}:{}}}var pM=F(ce(),1),Tz="/api/mcp/resource",Az=500,Mz=0,Ez=16,Rz="2026-01-26",Dz=300,_z=3e3,Oz=3;function Pz(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Nz(e,t,a){return Od(e,t,a)?!1:t._meta?.["waniwani/autoInjectResultText"]!==!1}function fM({resourceUri:e,toolInput:t,toolResult:a,resourceEndpoint:r=Tz,chatSessionId:n,isDark:o=!1,className:l,autoHeight:i=!1,onOpenLink:s,onFollowUp:u,onCallTool:c,onDisplayModeChange:d,isFullscreen:f=!1,toolDefinitions:p}){let g=(0,Xe.useRef)(null),v=(0,Xe.useRef)(t),C=(0,Xe.useRef)(a),y=(0,Xe.useRef)({width:0,height:0}),x=(0,Xe.useRef)(null),h=(0,Xe.useRef)(!1),w=(0,Xe.useRef)(0),k=(0,Xe.useRef)("inline"),[I,M]=(0,Xe.useState)(Mz),[_,P]=(0,Xe.useState)(void 0),T=(0,Xe.useRef)(s),H=(0,Xe.useRef)(u),R=(0,Xe.useRef)(c),B=(0,Xe.useRef)(d),j=(0,Xe.useRef)(n),V=(0,Xe.useRef)(p);v.current=t,C.current=a,T.current=s,H.current=u,R.current=c,B.current=d,j.current=n,V.current=p;let K=(0,Xe.useCallback)(ye=>i?Math.max(ye+Ez,0):Math.min(Math.max(ye,50),Az),[i]),me=(0,Xe.useMemo)(()=>{let ye=r.includes("?")?"&":"?";return`${r}${ye}uri=${encodeURIComponent(e)}`},[r,e]),Re=(0,Xe.useRef)(o);return Re.current=o,(0,Xe.useEffect)(()=>{if(!h.current)return;let ye=g.current;ye?.contentWindow&&ye.contentWindow.postMessage({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{theme:o?"dark":"light"}},"*")},[o]),(0,Xe.useEffect)(()=>{let ye=g.current;if(!ye)return;let S=!1,st=!1,ot=null,L=null,$=setTimeout(()=>{if(S||st||w.current>=Oz)return;w.current+=1;let De=new URL(ye.src);De.searchParams.set("_retry",String(w.current)),ye.src=De.toString()},_z),ee=De=>{ye.contentWindow?.postMessage(De,"*")},lt=De=>{if(S||De.source!==ye.contentWindow)return;let ae=De.data;if(!ae||typeof ae!="object"||ae.jsonrpc!=="2.0")return;let Ae=ae.method,se=ae.id;if(Ae==="ui/initialize"&&se!=null){st=!0,clearTimeout($),ee({jsonrpc:"2.0",id:se,result:{protocolVersion:ae.params?.protocolVersion??Rz,hostInfo:{name:"WaniWani Chat",version:"1.0.0"},hostCapabilities:{openLinks:{},message:{text:{}},tools:{},updateModelContext:{text:{},structuredContent:{}}},hostContext:{theme:Re.current?"dark":"light",displayMode:k.current}}});return}if(Ae==="ui/notifications/initialized"){h.current=!0;let be=v.current,Ie=C.current,Se=Ie._meta&&typeof Ie._meta=="object"?Ie._meta:null,Ve=Pz(j.current),it=Se&&typeof Se.waniwani=="object"&&Se.waniwani!==null?Se.waniwani:null,Ht=it||Ve?{...it??{},...Ve?{sessionId:Ve}:{}}:void 0,za=Se||Ht?{...Se??{},...Ht?{waniwani:Ht}:{}}:void 0;ee({jsonrpc:"2.0",method:"ui/notifications/tool-input",params:{arguments:be}});let Hr=Ie.content??[{type:"text",text:JSON.stringify(Ie)}];ee({jsonrpc:"2.0",method:"ui/notifications/tool-result",params:{content:Hr,structuredContent:Ie.structuredContent,_meta:za,meta:za}});return}if(Ae==="ui/notifications/size-changed"){let be=ae.params,Ie=typeof be?.height=="number"?be.height:void 0,Se=typeof be?.width=="number"?be.width:void 0,Ve=y.current,it=Ie!==void 0&&Ie!==Ve.height,Ht=Se!==void 0&&Se!==Ve.width;if(!it&&!Ht)return;if(it&&Ie!==void 0){Ve.height=Ie;let za=K(Ie),Hr=ye.getBoundingClientRect().height;if(x.current&&(x.current.cancel(),x.current=null),M(za),ye.animate&&Math.abs(Hr-za)>2){let cr=ye.animate([{height:`${Hr}px`},{height:`${za}px`}],{duration:Dz,easing:"ease-out",fill:"forwards"});x.current=cr,cr.onfinish=()=>{x.current===cr&&(cr.cancel(),x.current=null)}}}Ht&&i&&Se!==void 0&&(Ve.width=Se,P(Se));return}if(Ae==="ui/open-link"&&se!=null){let be=ae.params?.url;typeof be=="string"&&(T.current?T.current(be):window.open(be,"_blank","noopener,noreferrer")),ee({jsonrpc:"2.0",id:se,result:{}});return}if(Ae==="ui/message"&&se!=null){if(H.current&&ae.params){let be=ae.params,Ie=ot;if(ot=null,L){clearTimeout(L.timer);let Se=L.text;L=null;let Ve=(be.content??[]).map(it=>it.text??"").join("").trim();be={...be,content:[{type:"text",text:`${Ve}
121
+ `||e[t]==="\r");)t-=1;return t>=1&&e[t]==="$"&&e[t-1]==="$"},yy=e=>{let t=0;for(let a=0;a<e.length-1;a+=1)e[a]==="$"&&e[a+1]==="$"&&(t+=1,a+=1);return t},XA=e=>{let t=pz.test(e),a=mz.test(e);if(t||a)return[e];let r=xa.lex(e,{gfm:!0}),n=[],o=[];for(let l of r){let i=l.raw,s=n.length;if(o.length>0){if(n[s-1]+=i,l.type==="html"){let u=i.match(hz);if(u){let c=u[1];o.at(-1)===c&&o.pop()}}continue}if(l.type==="html"&&l.block){let u=i.match(gz);if(u){let c=u[1];i.includes(`</${c}>`)||o.push(c)}}if(i.trim()==="$$"&&s>0){let u=n[s-1],c=gy(u),d=yy(u);if(c&&d%2===1){n[s-1]=u+i;continue}}if(s>0&&yz(i)){let u=n[s-1],c=gy(u),d=yy(u),f=yy(i);if(c&&d%2===1&&!gy(i)&&f===1){n[s-1]=u+i;continue}}n.push(i)}return n},$A={raw:T0,sanitize:[Ec,{}],harden:[L0,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},ZA={gfm:[td,{}]},xz=Object.values($A),vz=Object.values(ZA),wz={block:" \u258B",circle:" \u25CF"},bz={shikiTheme:["github-light","github-dark"],controls:!0,isAnimating:!1,mode:"streaming",mermaid:void 0,linkSafety:{enabled:!0}},Zt=(0,E.createContext)(bz),Iy=(0,E.memo)(({content:e,shouldParseIncompleteMarkdown:t,index:a,...r})=>(0,A.jsx)(WA,{...r,children:e}),(e,t)=>{if(e.content!==t.content||e.index!==t.index)return!1;if(e.components!==t.components){let a=Object.keys(e.components||{}),r=Object.keys(t.components||{});if(a.length!==r.length||a.some(n=>{var o,l;return((o=e.components)==null?void 0:o[n])!==((l=t.components)==null?void 0:l[n])}))return!1}return!(e.rehypePlugins!==t.rehypePlugins||e.remarkPlugins!==t.remarkPlugins)});Iy.displayName="Block";Sz=["github-light","github-dark"],Ed=(0,E.memo)(({children:e,mode:t="streaming",parseIncompleteMarkdown:a=!0,components:r,rehypePlugins:n=xz,remarkPlugins:o=vz,className:l,shikiTheme:i=Sz,mermaid:s,controls:u=!0,isAnimating:c=!1,BlockComponent:d=Iy,parseMarkdownIntoBlocksFn:f=XA,caret:p,plugins:g,remend:v,linkSafety:C={enabled:!0},...y})=>{let x=(0,E.useId)(),[h,w]=(0,E.useTransition)(),k=(0,E.useMemo)(()=>typeof e!="string"?"":t==="streaming"&&a?z1(e,v):e,[e,t,a,v]),I=(0,E.useMemo)(()=>f(k),[k,f]),[M,_]=(0,E.useState)(I);(0,E.useEffect)(()=>{t==="streaming"?w(()=>{_(I)}):_(I)},[I,t]);let P=t==="streaming"?M:I,T=(0,E.useMemo)(()=>P.map((K,me)=>`${x}-${me}`),[P.length,x]),H=(0,E.useMemo)(()=>{var K,me;return{shikiTheme:(me=(K=g?.code)==null?void 0:K.getThemes())!=null?me:i,controls:u,isAnimating:c,mode:t,mermaid:s,linkSafety:C}},[i,u,c,t,s,C,g?.code]),R=(0,E.useMemo)(()=>({...sz,...r}),[r]),B=(0,E.useMemo)(()=>{let K=[];return g!=null&&g.cjk&&(K=[...K,...g.cjk.remarkPluginsBefore]),K=[...K,...o],g!=null&&g.cjk&&(K=[...K,...g.cjk.remarkPluginsAfter]),g!=null&&g.math&&(K=[...K,g.math.remarkPlugin]),K},[o,g?.math,g?.cjk]),j=(0,E.useMemo)(()=>g!=null&&g.math?[...n,g.math.rehypePlugin]:n,[n,g?.math]),V=(0,E.useMemo)(()=>p&&c?{"--streamdown-caret":`"${wz[p]}"`}:void 0,[p,c]);return t==="static"?(0,A.jsx)(xy.Provider,{value:g??null,children:(0,A.jsx)(Zt.Provider,{value:H,children:(0,A.jsx)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",l),children:(0,A.jsx)(WA,{components:R,rehypePlugins:j,remarkPlugins:B,...y,children:e})})})}):(0,A.jsx)(xy.Provider,{value:g??null,children:(0,A.jsx)(Zt.Provider,{value:H,children:(0,A.jsxs)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",p?"*:last:after:inline *:last:after:align-baseline *:last:after:content-(--streamdown-caret)":null,l),style:V,children:[P.length===0&&p&&c&&(0,A.jsx)("span",{}),P.map((K,me)=>(0,A.jsx)(d,{components:R,content:K,index:me,rehypePlugins:j,remarkPlugins:B,shouldParseIncompleteMarkdown:a,...y},T[me]))]})})})},(e,t)=>e.children===t.children&&e.shikiTheme===t.shikiTheme&&e.isAnimating===t.isAnimating&&e.mode===t.mode&&e.plugins===t.plugins&&e.className===t.className&&e.linkSafety===t.linkSafety);Ed.displayName="Streamdown";Cz=({children:e,className:t,minZoom:a=.5,maxZoom:r=3,zoomStep:n=.1,showControls:o=!0,initialZoom:l=1,fullscreen:i=!1})=>{let s=(0,E.useRef)(null),u=(0,E.useRef)(null),[c,d]=(0,E.useState)(l),[f,p]=(0,E.useState)({x:0,y:0}),[g,v]=(0,E.useState)(!1),[C,y]=(0,E.useState)({x:0,y:0}),[x,h]=(0,E.useState)({x:0,y:0}),w=(0,E.useCallback)(R=>{d(B=>Math.max(a,Math.min(r,B+R)))},[a,r]),k=(0,E.useCallback)(()=>{w(n)},[w,n]),I=(0,E.useCallback)(()=>{w(-n)},[w,n]),M=(0,E.useCallback)(()=>{d(l),p({x:0,y:0})},[l]),_=(0,E.useCallback)(R=>{R.preventDefault();let B=R.deltaY>0?-n:n;w(B)},[w,n]),P=(0,E.useCallback)(R=>{if(R.button!==0||R.isPrimary===!1)return;v(!0),y({x:R.clientX,y:R.clientY}),h(f);let B=R.currentTarget;B instanceof HTMLElement&&B.setPointerCapture(R.pointerId)},[f]),T=(0,E.useCallback)(R=>{if(!g)return;R.preventDefault();let B=R.clientX-C.x,j=R.clientY-C.y;p({x:x.x+B,y:x.y+j})},[g,C,x]),H=(0,E.useCallback)(R=>{v(!1);let B=R.currentTarget;B instanceof HTMLElement&&B.releasePointerCapture(R.pointerId)},[]);return(0,E.useEffect)(()=>{let R=s.current;if(R)return R.addEventListener("wheel",_,{passive:!1}),()=>{R.removeEventListener("wheel",_)}},[_]),(0,E.useEffect)(()=>{let R=u.current;if(R&&g)return document.body.style.userSelect="none",R.addEventListener("pointermove",T,{passive:!1}),R.addEventListener("pointerup",H),R.addEventListener("pointercancel",H),()=>{document.body.style.userSelect="",R.removeEventListener("pointermove",T),R.removeEventListener("pointerup",H),R.removeEventListener("pointercancel",H)}},[g,T,H]),(0,A.jsxs)("div",{className:Y("relative flex flex-col",i?"h-full w-full":"min-h-28 w-full",t),ref:s,style:{cursor:g?"grabbing":"grab"},children:[o?(0,A.jsxs)("div",{className:Y("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/90 p-1 shadow-sm backdrop-blur-sm",i?"bottom-4 left-4":"bottom-2 left-2"),children:[(0,A.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c>=r,onClick:k,title:"Zoom in",type:"button",children:(0,A.jsx)(z4,{size:16})}),(0,A.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c<=a,onClick:I,title:"Zoom out",type:"button",children:(0,A.jsx)(q4,{size:16})}),(0,A.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:M,title:"Reset zoom and pan",type:"button",children:(0,A.jsx)(U4,{size:16})})]}):null,(0,A.jsx)("div",{className:Y("flex-1 origin-center transition-transform duration-150 ease-out",i?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:P,ref:u,role:"application",style:{transform:`translate(${f.x}px, ${f.y}px) scale(${c})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})},my=({chart:e,className:t,config:a,fullscreen:r=!1,showControls:n=!0})=>{let[o,l]=(0,E.useState)(null),[i,s]=(0,E.useState)(!1),[u,c]=(0,E.useState)(""),[d,f]=(0,E.useState)(""),[p,g]=(0,E.useState)(0),{mermaid:v}=(0,E.useContext)(Zt),C=Sy(),y=v?.errorComponent,{shouldRender:x,containerRef:h}=P4({immediate:r});if((0,E.useEffect)(()=>{if(x){if(!C){l("Mermaid plugin not available. Please add the mermaid plugin to enable diagram rendering.");return}(async()=>{try{l(null),s(!0);let k=C.getMermaid(a),I=e.split("").reduce((P,T)=>(P<<5)-P+T.charCodeAt(0)|0,0),M=`mermaid-${Math.abs(I)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:_}=await k.render(M,e);c(_),f(_)}catch(k){if(!(d||u)){let I=k instanceof Error?k.message:"Failed to render Mermaid chart";l(I)}}finally{s(!1)}})()}},[e,a,p,x,C]),!(x||u||d))return(0,A.jsx)("div",{className:Y("my-4 min-h-[200px]",t),ref:h});if(i&&!u&&!d)return(0,A.jsx)("div",{className:Y("my-4 flex justify-center p-4",t),ref:h,children:(0,A.jsxs)("div",{className:"flex items-center space-x-2 text-muted-foreground",children:[(0,A.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-current border-b-2"}),(0,A.jsx)("span",{className:"text-sm",children:"Loading diagram..."})]})});if(o&&!u&&!d)return y?(0,A.jsx)("div",{ref:h,children:(0,A.jsx)(y,{chart:e,error:o,retry:()=>g(I=>I+1)})}):(0,A.jsxs)("div",{className:Y("rounded-lg border border-red-200 bg-red-50 p-4",t),ref:h,children:[(0,A.jsxs)("p",{className:"font-mono text-red-700 text-sm",children:["Mermaid Error: ",o]}),(0,A.jsxs)("details",{className:"mt-2",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-red-600 text-xs",children:"Show Code"}),(0,A.jsx)("pre",{className:"mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs",children:e})]})]});let w=u||d;return(0,A.jsx)("div",{className:Y("size-full",t),"data-streamdown":"mermaid",ref:h,children:(0,A.jsx)(Cz,{className:Y(r?"size-full overflow-hidden":"my-4 overflow-hidden",t),fullscreen:r,maxZoom:3,minZoom:.5,showControls:n,zoomStep:.1,children:(0,A.jsx)("div",{"aria-label":"Mermaid chart",className:Y("flex justify-center",r?"size-full items-center":null),dangerouslySetInnerHTML:{__html:w},role:"img"})})})}});var o2=Ut((qJ,n2)=>{"use strict";function KF(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let a,r=0;return function(...o){clearTimeout(a);let l=Date.now(),i=l-r,s=t-i;s<=0?(r=l,e.apply(this,o)):a=setTimeout(()=>{r=Date.now(),e.apply(this,o)},s)}}n2.exports=KF});var Jy=F(Ze(),1),U2=F(jS(),1);var z_="https://app.waniwani.ai/api/mcp/chat",q_={api:z_};function F_(){if(document.currentScript instanceof HTMLScriptElement)return document.currentScript;let e=document.querySelectorAll("script[src]");for(let t of e)if(t instanceof HTMLScriptElement&&/embed/i.test(t.src))return t;return null}function hc(){let e=F_();if(!e)return{};let t=h=>e.getAttribute(h)??void 0,a=h=>{let w=e.getAttribute(h);if(w==null)return;let k=w.trim().toLowerCase();if(k==="true"||k==="1"||k==="")return!0;if(k==="false"||k==="0")return!1},r={},n=t("data-api");n&&(r.api=n);let o=t("data-token");o&&(r.token=o);let l=t("data-title");l&&(r.title=l);let i=t("data-welcome-message");i&&(r.welcomeMessage=i);let s=t("data-placeholder");s&&(r.placeholder=s);let u=t("data-mcp-server-url");u&&(r.mcpServerUrl=u);let c=t("data-channel-id");c&&(r.channelId=c);let d=a("data-show-tool-calls");d!==void 0&&(r.showToolCalls=d);let f=t("data-css");f&&(r.css=f);let p=t("data-suggestions");p&&(r.suggestions=p.split(",").map(h=>h.trim()).filter(Boolean));let g=a("data-enable-thread-history");g!==void 0&&(r.enableThreadHistory=g);let v=t("data-primary-color"),C=t("data-background-color"),y=t("data-text-color"),x=t("data-font-family");return(v||C||y||x)&&(r.theme={},v&&(r.theme.primaryColor=v),C&&(r.theme.backgroundColor=C),y&&(r.theme.textColor=y),x&&(r.theme.fontFamily=x)),r}function Gm(e){if(!e)return{};let t={};for(let a in e)e[a]!==void 0&&(t[a]=e[a]);return t}function gc(e,t,a){let r=a??hc(),n={token:"",...q_,...Gm(t),...Gm(r),...Gm(e),theme:{...t?.theme??{},...r.theme,...e?.theme}};if(!n.token)throw new Error("[WaniWani] Missing required config: `token`. Set data-token on the script tag or pass it to WaniWani.chat.init().");return n}function VS(e){if(!(!e.theme||Object.keys(e.theme).length===0))return e.theme}var On=F(Ze(),1);var xc=F(Ze());var yc=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();var GS=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var WS=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,r)=>r?r.toUpperCase():a.toLowerCase());var Wm=e=>{let t=WS(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Ui=F(Ze());var XS={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var $S=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var ZS=(0,Ui.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:n="",children:o,iconNode:l,...i},s)=>(0,Ui.createElement)("svg",{ref:s,...XS,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:yc("lucide",n),...!o&&!$S(i)&&{"aria-hidden":"true"},...i},[...l.map(([u,c])=>(0,Ui.createElement)(u,c)),...Array.isArray(o)?o:[o]]));var rt=(e,t)=>{let a=(0,xc.forwardRef)(({className:r,...n},o)=>(0,xc.createElement)(ZS,{ref:o,iconNode:t,className:yc(`lucide-${GS(Wm(e))}`,`lucide-${e}`,r),...n}));return a.displayName=Wm(e),a};var H_=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],zi=rt("arrow-down",H_);var j_=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],qi=rt("arrow-up",j_);var V_=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],xn=rt("braces",V_);var G_=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Fi=rt("check",G_);var W_=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Hi=rt("chevron-down",W_);var X_=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ji=rt("chevron-right",X_);var $_=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],Vi=rt("clipboard-copy",$_);var Z_=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Gi=rt("file",Z_);var Q_=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],Wi=rt("loader",Q_);var K_=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Xi=rt("paperclip",K_);var Y_=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],$i=rt("square",Y_);var J_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ao=rt("x",J_);var nt=F(Ze(),1);var Zi=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,a)=>(a&=63,a<36?t+=a.toString(36):a<62?t+=(a-26).toString(36).toUpperCase():a>62?t+="-":t+="_",t),"");var je=F(Ze(),1);Xm();Zm();var eO=KS({prefix:"ww"});function Q(...e){return eO(vc(e))}var t0=F(ce(),1),ar=({className:e,variant:t="default",size:a="default",type:r="button",...n})=>(0,t0.jsx)("button",{type:r,className:Q("ww:inline-flex ww:cursor-pointer ww:items-center ww:justify-center ww:rounded-md ww:font-medium ww:transition-colors ww:disabled:pointer-events-none ww:disabled:opacity-50",t==="default"&&"ww:bg-primary ww:text-primary-foreground ww:hover:bg-primary/90",t==="outline"&&"ww:border ww:border-border ww:bg-background ww:hover:bg-accent ww:hover:text-accent-foreground",t==="ghost"&&"ww:hover:bg-accent ww:hover:text-accent-foreground",a==="default"&&"ww:h-9 ww:px-4 ww:py-2 ww:text-sm",a==="sm"&&"ww:h-8 ww:px-3 ww:text-xs",a==="icon"&&"ww:size-9 ww:!rounded-full",a==="icon-sm"&&"ww:size-7 ww:!rounded-full",e),...n});var Wt=F(ce(),1),rO=async e=>{try{let a=await(await fetch(e)).blob();return new Promise(r=>{let n=new FileReader;n.onloadend=()=>r(n.result),n.onerror=()=>r(null),n.readAsDataURL(a)})}catch{return null}},a0=(0,je.createContext)(null),r0=()=>{let e=(0,je.useContext)(a0);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},n0=({className:e,accept:t,multiple:a,globalDrop:r,maxFiles:n,maxFileSize:o,onSubmit:l,children:i,...s})=>{let u=(0,je.useRef)(null),c=(0,je.useRef)(null),[d,f]=(0,je.useState)([]),p=(0,je.useRef)(d);(0,je.useEffect)(()=>{p.current=d},[d]);let g=(0,je.useCallback)(()=>{u.current?.click()},[]),v=(0,je.useCallback)(k=>{let I=[...k];if(I.length===0)return;let M=P=>o?P.size<=o:!0,_=I.filter(M);f(P=>{let T=typeof n=="number"?Math.max(0,n-P.length):void 0,H=typeof T=="number"?_.slice(0,T):_;return[...P,...H.map(R=>({filename:R.name,id:Zi(),mediaType:R.type,type:"file",url:URL.createObjectURL(R)}))]})},[n,o]),C=(0,je.useCallback)(k=>{f(I=>{let M=I.find(_=>_.id===k);return M?.url&&URL.revokeObjectURL(M.url),I.filter(_=>_.id!==k)})},[]),y=(0,je.useCallback)(()=>{f(k=>{for(let I of k)I.url&&URL.revokeObjectURL(I.url);return[]})},[]);(0,je.useEffect)(()=>()=>{for(let k of p.current)k.url&&URL.revokeObjectURL(k.url)},[]);let x=(0,je.useCallback)(k=>{k.currentTarget.files&&v(k.currentTarget.files),k.currentTarget.value=""},[v]);(0,je.useEffect)(()=>{if(!r)return;let k=M=>{M.dataTransfer?.types?.includes("Files")&&M.preventDefault()},I=M=>{M.dataTransfer?.types?.includes("Files")&&M.preventDefault(),M.dataTransfer?.files&&M.dataTransfer.files.length>0&&v(M.dataTransfer.files)};return document.addEventListener("dragover",k),document.addEventListener("drop",I),()=>{document.removeEventListener("dragover",k),document.removeEventListener("drop",I)}},[v,r]);let h=(0,je.useCallback)(async k=>{k.preventDefault();let I=k.currentTarget,_=new FormData(I).get("message")||"";I.reset();let P=await Promise.all(d.map(async({id:T,...H})=>{if(H.url?.startsWith("blob:")){let R=await rO(H.url);return{...H,url:R??H.url}}return H}));try{let T=l({files:P,text:_},k);T instanceof Promise&&await T,y()}catch{}},[d,l,y]),w=(0,je.useMemo)(()=>({add:v,clear:y,files:d,openFileDialog:g,remove:C}),[d,v,C,y,g]);return(0,Wt.jsxs)(a0.Provider,{value:w,children:[(0,Wt.jsx)("input",{accept:t,"aria-label":"Upload files",className:"ww:hidden",multiple:a,onChange:x,ref:u,title:"Upload files",type:"file"}),(0,Wt.jsx)("form",{className:Q("ww:flex ww:w-full ww:flex-col ww:rounded-lg ww:border ww:border-border ww:bg-background",e),onSubmit:h,ref:c,...s,children:i})]})};var o0=({onChange:e,onKeyDown:t,className:a,placeholder:r="What would you like to know?",...n})=>{let o=r0(),[l,i]=(0,je.useState)(!1),s=(0,je.useCallback)(c=>{if(t?.(c),!c.defaultPrevented){if(c.key==="Enter"){if(l||c.nativeEvent.isComposing||c.shiftKey)return;c.preventDefault();let{form:d}=c.currentTarget;if(d?.querySelector('button[type="submit"]')?.disabled)return;d?.requestSubmit()}if(c.key==="Backspace"&&c.currentTarget.value===""&&o.files.length>0){c.preventDefault();let d=o.files.at(-1);d&&o.remove(d.id)}}},[t,l,o]),u=(0,je.useCallback)(c=>{let d=c.clipboardData?.items;if(!d)return;let f=[];for(let p of d)if(p.kind==="file"){let g=p.getAsFile();g&&f.push(g)}f.length>0&&(c.preventDefault(),o.add(f))},[o]);return(0,Wt.jsx)("textarea",{className:Q("ww:field-sizing-content ww:max-h-48 ww:min-h-0 ww:w-full ww:resize-none ww:border-0 ww:bg-transparent ww:px-3 ww:py-2 ww:text-sm ww:outline-none ww:placeholder:text-muted-foreground",a),name:"message",onCompositionEnd:()=>i(!1),onCompositionStart:()=>i(!0),onKeyDown:s,onPaste:u,placeholder:r,onChange:e,...n})},l0=({className:e,status:t,onStop:a,onClick:r,children:n,...o})=>{let l=t==="submitted"||t==="streaming",i=(0,Wt.jsx)(qi,{className:"ww:size-4"});t==="submitted"?i=(0,Wt.jsx)(Wi,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(i=(0,Wt.jsx)($i,{className:"ww:size-4"}));let s=(0,je.useCallback)(u=>{if(l&&a){u.preventDefault(),a();return}r?.(u)},[l,a,r]);return(0,Wt.jsx)(ar,{"aria-label":l?"Stop":"Submit",className:Q("ww:bg-foreground ww:text-background ww:hover:bg-foreground ww:rounded-full",e),onClick:s,size:"icon-sm",type:l&&a?"button":"submit",variant:"ghost",...o,children:n??i})},i0=({className:e,children:t,...a})=>{let r=r0();return r.files.length>0?(0,Wt.jsxs)(ar,{className:Q("ww:group ww:relative",e),onClick:()=>r.clear(),size:"icon-sm",type:"button",variant:"ghost","aria-label":"Remove all attachments",...a,children:[(0,Wt.jsx)("span",{className:"ww:flex ww:size-5 ww:items-center ww:justify-center ww:rounded-full ww:bg-primary ww:text-[10px] ww:font-medium ww:text-primary-foreground ww:transition-opacity ww:group-hover:opacity-0",children:r.files.length}),(0,Wt.jsx)(ao,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):(0,Wt.jsx)(ar,{className:Q(e),onClick:()=>r.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??(0,Wt.jsx)(Xi,{className:"ww:size-4"})})};var bc=F(Ze(),1);var ro=F(ce(),1),s0=({className:e,...t})=>(0,ro.jsx)("div",{className:Q("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),u0=({className:e,...t})=>(0,ro.jsx)("li",{className:Q("ww:group ww:flex ww:items-center ww:gap-2 ww:rounded-md ww:px-2 ww:py-1 ww:text-sm ww:transition-colors ww:hover:bg-muted",e),...t}),c0=({className:e,...t})=>(0,ro.jsx)("span",{className:Q("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),d0=({className:e,...t})=>(0,ro.jsx)("span",{className:Q("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),f0=({className:e,...t})=>(0,ro.jsx)("div",{className:Q("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),p0=({className:e,...t})=>(0,ro.jsx)(ar,{className:Q("ww:size-auto ww:rounded ww:p-1 ww:text-muted-foreground ww:hover:bg-muted-foreground/10 ww:hover:text-foreground",e),size:"icon",type:"button",variant:"ghost",...t});var _a=F(ce(),1),m0=(0,bc.memo)(({message:e,onRemove:t})=>{let a=(0,bc.useCallback)(()=>t(e.id),[t,e.id]);return(0,_a.jsxs)(u0,{children:[(0,_a.jsx)(c0,{}),(0,_a.jsx)(d0,{children:e.text||"(attachment)"}),(0,_a.jsx)(f0,{children:(0,_a.jsx)(p0,{"aria-label":"Remove from queue",onClick:a,children:(0,_a.jsx)(ao,{className:"ww:size-3"})})})]})});m0.displayName="ChatQueueItem";function h0({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:(0,_a.jsxs)(s0,{className:Q("ww:border-t ww:border-border",a),children:[(0,_a.jsxs)("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),(0,_a.jsx)("ul",{children:e.map(r=>(0,_a.jsx)(m0,{message:r,onRemove:t},r.id))})]})}var vn=F(ce(),1),g0=({files:e,className:t,...a})=>e.length===0?null:(0,vn.jsx)("div",{className:Q("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((r,n)=>(0,vn.jsx)(nO,{file:r},n))});function nO({file:e}){return e.mediaType?.startsWith("image/")&&e.url?(0,vn.jsx)("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):(0,vn.jsxs)("span",{className:"ww:inline-flex ww:items-center ww:gap-1.5 ww:rounded ww:bg-background/20 ww:px-2 ww:py-1 ww:text-xs",children:[(0,vn.jsx)(Gi,{className:"ww:size-3 ww:shrink-0"}),(0,vn.jsx)("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}var Qm=F(ce(),1),Km=({className:e,size:t=5,...a})=>(0,Qm.jsx)("div",{className:Q("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(r=>(0,Qm.jsx)("div",{className:"ww:rounded-full ww:bg-muted-foreground/60",style:{width:t,height:t,animation:"ww-pulse 1.4s ease-in-out infinite",animationDelay:`${r*.2}s`}},r))});var y0={name:"cjk-noop",type:"cjk",remarkPluginsBefore:[],remarkPluginsAfter:[],remarkPlugins:[]};var x0={name:"shiki-noop",type:"code-highlighter",supportsLanguage:()=>!1,getSupportedLanguages:()=>[],getThemes:()=>["github-light","github-dark"],highlight:()=>null};var QA=F(Ze(),1);Ld();var Cs=F(ce(),1),Rd=({className:e,from:t,children:a,...r})=>(0,Cs.jsx)("div",{className:Q("ww:group ww:flex ww:w-full",t==="user"?"is-user ww:ml-auto ww:max-w-[80%] ww:flex-col ww:items-end":"is-assistant ww:flex-col",e),...r,children:(0,Cs.jsx)("div",{className:Q("ww:flex ww:min-w-0 ww:flex-col ww:gap-2","ww:w-full"),children:a})}),Dd=({children:e,className:t,...a})=>(0,Cs.jsx)("div",{className:Q("ww:flex ww:w-fit ww:min-w-0 ww:max-w-full ww:flex-col ww:gap-2 ww:overflow-hidden ww:text-base","ww:group-[.is-user]:ml-auto ww:group-[.is-user]:rounded-lg ww:group-[.is-user]:bg-user-bubble ww:group-[.is-user]:px-4 ww:group-[.is-user]:py-3 ww:group-[.is-user]:text-primary-foreground","ww:group-[.is-assistant]:text-foreground",t),...a,children:e}),Iz={cjk:y0,code:x0},_d=(0,QA.memo)(({className:e,...t})=>(0,Cs.jsx)(Ed,{className:Q("ww:size-full ww:[&>*:first-child]:mt-0 ww:[&>*:last-child]:mb-0",e),plugins:Iz,...t}),(e,t)=>e.children===t.children);_d.displayName="MessageResponse";var YA=F(ce(),1);function KA({className:e,text:t,...a}){return t?(0,YA.jsx)("pre",{className:Q("ww:mb-2 ww:overflow-x-auto ww:whitespace-pre-wrap ww:break-words ww:text-xs ww:font-mono ww:text-muted-foreground",e),...a,children:t}):null}var Tt=F(Ze(),1);var ue=F(ce(),1);function Lz(e,t=80){if(e==null)return String(e);if(typeof e!="object")return String(e).slice(0,t);if(Array.isArray(e))return`Array(${e.length})`;let a=JSON.stringify(e);if(a.length<=t)return a;let r=Object.entries(e),n=[],o=t-2;for(let[l,i]of r){if(o<=8)break;let s=l.length>4?`${l.slice(0,4)}\u2026`:l,u;typeof i=="string"?u=i.length>2?`'${i.slice(0,1)}\u2026`:`'${i}'`:Array.isArray(i)?u=`Array(${i.length})`:typeof i=="object"&&i!==null?u="{\u2026}":u=String(i);let c=`${s}\u2009${u}`;n.push(c),o-=c.length+3}return`{${n.join(", ")}}`}function kz({text:e,className:t}){let[a,r]=(0,Tt.useState)(!1),n=(0,Tt.useRef)(null);(0,Tt.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]);let o=(0,Tt.useCallback)(async l=>{l.stopPropagation();try{await navigator.clipboard.writeText(e),r(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>r(!1),2e3)}catch{}},[e]);return(0,ue.jsx)(ar,{variant:"ghost",size:"sm",onClick:o,className:Q("ww:h-auto ww:gap-1 ww:px-1.5 ww:py-0.5 ww:text-xs ww:text-muted-foreground ww:hover:text-foreground",t),children:a?(0,ue.jsxs)(ue.Fragment,{children:[(0,ue.jsx)(Fi,{className:"ww:size-3.5"}),(0,ue.jsx)("span",{children:"Copied"})]}):(0,ue.jsxs)(ue.Fragment,{children:[(0,ue.jsx)(Vi,{className:"ww:size-3.5"}),(0,ue.jsx)("span",{children:"Copy"})]})})}function tM({data:e,label:t,className:a,...r}){let[n,o]=(0,Tt.useState)(!1),l=(0,Tt.useMemo)(()=>JSON.stringify(e,null,2),[e]),i=Lz(e);return(0,ue.jsxs)("div",{className:Q("ww:rounded-lg ww:bg-tool-card",a),...r,children:[(0,ue.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:px-3 ww:pt-2.5 ww:pb-1.5",children:[(0,ue.jsx)("span",{className:"ww:text-xs ww:font-medium ww:text-muted-foreground",children:t}),(0,ue.jsx)(kz,{text:l})]}),(0,ue.jsxs)("button",{type:"button",onClick:()=>o(s=>!s),className:"ww:flex ww:w-full ww:items-start ww:gap-2 ww:px-3 ww:pb-3 ww:text-left",children:[(0,ue.jsx)(ji,{className:Q("ww:mt-0.5 ww:size-3.5 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-150",n&&"ww:rotate-90")}),n?(0,ue.jsx)("pre",{className:"ww:overflow-x-auto ww:text-xs ww:font-mono ww:text-foreground ww:whitespace-pre-wrap ww:break-all",children:(0,ue.jsx)("code",{children:l})}):(0,ue.jsx)("span",{className:"ww:truncate ww:text-xs ww:font-mono ww:text-foreground/80",children:i})]})]})}var ky=(0,Tt.createContext)({open:!1,toggle:()=>{}});function aM({className:e,defaultOpen:t=!1,children:a,...r}){let[n,o]=(0,Tt.useState)(t);return(0,ue.jsx)(ky.Provider,{value:{open:n,toggle:()=>o(l=>!l)},children:(0,ue.jsx)("div",{className:Q("ww:mb-4 ww:w-full",e),"data-state":n?"open":"closed",...r,children:a})})}function rM({className:e,title:t,state:a,...r}){let{open:n,toggle:o}=(0,Tt.useContext)(ky),l=a==="input-available"||a==="input-streaming";return(0,ue.jsxs)("button",{type:"button",onClick:o,className:Q("ww:flex ww:w-full ww:items-center ww:justify-between ww:gap-3 ww:py-1.5",e),"aria-expanded":n,...r,children:[(0,ue.jsxs)("div",{className:"ww:flex ww:min-w-0 ww:items-center ww:gap-2",children:[(0,ue.jsx)(xn,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,ue.jsx)("span",{className:"ww:truncate ww:text-sm ww:font-medium",children:t}),l&&(0,ue.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]}),(0,ue.jsx)(Hi,{className:Q("ww:size-4 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-200",n&&"ww:rotate-180")})]})}function nM({className:e,title:t,state:a,...r}){let n=a==="input-available"||a==="input-streaming";return(0,ue.jsxs)("div",{className:Q("ww:mb-4 ww:flex ww:items-center ww:gap-2 ww:py-1.5 ww:text-sm ww:text-muted-foreground ww:italic",e),...r,children:[(0,ue.jsx)("span",{className:"ww:truncate",children:t}),n&&(0,ue.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]})}function oM({className:e,children:t,...a}){let{open:r}=(0,Tt.useContext)(ky);return(0,ue.jsx)("div",{className:Q("ww:grid ww:transition-[grid-template-rows,opacity] ww:duration-200 ww:ease-out",r?"ww:grid-rows-[1fr] ww:opacity-100":"ww:grid-rows-[0fr] ww:opacity-0"),children:(0,ue.jsx)("div",{className:"ww:min-h-0 ww:overflow-hidden",children:(0,ue.jsx)("div",{className:Q("ww:mt-2 ww:space-y-3 ww:rounded-lg ww:border ww:border-border ww:bg-background ww:p-3",e),...a,children:t})})})}function lM({className:e,input:t,debug:a,...r}){let n=(0,Tt.useMemo)(()=>{if(!a&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:o,...l}=t;return l}return t},[t,a]);return(0,ue.jsx)(tM,{data:n,label:"Request",className:e,...r})}function Ly(e){if(!(typeof e!="object"||e===null))return e}function iM(e){return Ly(e?.ui)}function sM(e){return Ly(Ly(e)?._meta)}function JA(e){if(!e)return;let t=iM(e)?.resourceUri;if(typeof t=="string"&&t.length>0)return t;let a=e["ui/resourceUri"];if(typeof a=="string"&&a.length>0)return a;let r=e["openai/outputTemplate"];if(typeof r=="string"&&r.length>0)return r}function eM(e){return iM(e)?.autoHeight===!0}function Od(e,t,a){if(e){let r=JA(a?.[e]?._meta);if(r)return r}return JA(sM(t))}function uM(e,t,a){return e&&eM(a?.[e]?._meta)?!0:eM(sM(t))}function cM({className:e,output:t,errorText:a,debug:r,...n}){let o=(0,Tt.useMemo)(()=>{if(!r&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:l,...i}=t;return i}return t},[t,r]);return t||a?a?(0,ue.jsxs)("div",{className:Q("ww:space-y-2",e),...n,children:[(0,ue.jsx)("h4",{className:"ww:text-xs ww:font-medium ww:uppercase ww:tracking-wide ww:text-muted-foreground",children:"Error"}),(0,ue.jsx)("div",{className:"ww:rounded-lg ww:bg-destructive/10 ww:p-3 ww:text-xs ww:text-destructive",children:a})]}):(0,ue.jsx)(tM,{data:o,label:"Response",className:e,...n}):null}var Xe=F(Ze(),1);function Ml(e){if(!e)return!1;let t=Array.isArray(e.content)&&e.content.length>0,a=typeof e.structuredContent=="object"&&e.structuredContent!==null&&Object.keys(e.structuredContent).length>0;return t||a}function dM(e,t){return!Ml(e)&&!Ml(t)?null:Ml(e)?Ml(t)?{...e.content||t.content?{content:[...e.content??[],...t.content??[]]}:{},...e.structuredContent||t.structuredContent?{structuredContent:{...e.structuredContent??{},...t.structuredContent??{}}}:{}}:{...e.content?{content:[...e.content]}:{},...e.structuredContent?{structuredContent:{...e.structuredContent}}:{}}:{...t?.content?{content:[...t.content]}:{},...t?.structuredContent?{structuredContent:{...t.structuredContent}}:{}}}var pM=F(ce(),1),Tz="/api/mcp/resource",Az=500,Mz=0,Ez=16,Rz="2026-01-26",Dz=300,_z=3e3,Oz=3;function Pz(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Nz(e,t,a){return Od(e,t,a)?!1:t._meta?.["waniwani/autoInjectResultText"]!==!1}function fM({resourceUri:e,toolInput:t,toolResult:a,resourceEndpoint:r=Tz,chatSessionId:n,isDark:o=!1,className:l,autoHeight:i=!1,onOpenLink:s,onFollowUp:u,onCallTool:c,onDisplayModeChange:d,isFullscreen:f=!1,toolDefinitions:p}){let g=(0,Xe.useRef)(null),v=(0,Xe.useRef)(t),C=(0,Xe.useRef)(a),y=(0,Xe.useRef)({width:0,height:0}),x=(0,Xe.useRef)(null),h=(0,Xe.useRef)(!1),w=(0,Xe.useRef)(0),k=(0,Xe.useRef)("inline"),[I,M]=(0,Xe.useState)(Mz),[_,P]=(0,Xe.useState)(void 0),T=(0,Xe.useRef)(s),H=(0,Xe.useRef)(u),R=(0,Xe.useRef)(c),B=(0,Xe.useRef)(d),j=(0,Xe.useRef)(n),V=(0,Xe.useRef)(p);v.current=t,C.current=a,T.current=s,H.current=u,R.current=c,B.current=d,j.current=n,V.current=p;let K=(0,Xe.useCallback)(ye=>i?Math.max(ye+Ez,0):Math.min(Math.max(ye,50),Az),[i]),me=(0,Xe.useMemo)(()=>{let ye=r.includes("?")?"&":"?";return`${r}${ye}uri=${encodeURIComponent(e)}`},[r,e]),Re=(0,Xe.useRef)(o);return Re.current=o,(0,Xe.useEffect)(()=>{if(!h.current)return;let ye=g.current;ye?.contentWindow&&ye.contentWindow.postMessage({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{theme:o?"dark":"light"}},"*")},[o]),(0,Xe.useEffect)(()=>{let ye=g.current;if(!ye)return;let S=!1,st=!1,ot=null,L=null,$=setTimeout(()=>{if(S||st||w.current>=Oz)return;w.current+=1;let De=new URL(ye.src);De.searchParams.set("_retry",String(w.current)),ye.src=De.toString()},_z),ee=De=>{ye.contentWindow?.postMessage(De,"*")},lt=De=>{if(S||De.source!==ye.contentWindow)return;let ae=De.data;if(!ae||typeof ae!="object"||ae.jsonrpc!=="2.0")return;let Ae=ae.method,se=ae.id;if(Ae==="ui/initialize"&&se!=null){st=!0,clearTimeout($),ee({jsonrpc:"2.0",id:se,result:{protocolVersion:ae.params?.protocolVersion??Rz,hostInfo:{name:"WaniWani Chat",version:"1.0.0"},hostCapabilities:{openLinks:{},message:{text:{}},tools:{},updateModelContext:{text:{},structuredContent:{}}},hostContext:{theme:Re.current?"dark":"light",displayMode:k.current}}});return}if(Ae==="ui/notifications/initialized"){h.current=!0;let be=v.current,Ie=C.current,Se=Ie._meta&&typeof Ie._meta=="object"?Ie._meta:null,Ve=Pz(j.current),it=Se&&typeof Se.waniwani=="object"&&Se.waniwani!==null?Se.waniwani:null,Ht=it||Ve?{...it??{},...Ve?{sessionId:Ve}:{}}:void 0,za=Se||Ht?{...Se??{},...Ht?{waniwani:Ht}:{}}:void 0;ee({jsonrpc:"2.0",method:"ui/notifications/tool-input",params:{arguments:be}});let Hr=Ie.content??[{type:"text",text:JSON.stringify(Ie)}];ee({jsonrpc:"2.0",method:"ui/notifications/tool-result",params:{content:Hr,structuredContent:Ie.structuredContent,_meta:za,meta:za}});return}if(Ae==="ui/notifications/size-changed"){let be=ae.params,Ie=typeof be?.height=="number"?be.height:void 0,Se=typeof be?.width=="number"?be.width:void 0,Ve=y.current,it=Ie!==void 0&&Ie!==Ve.height,Ht=Se!==void 0&&Se!==Ve.width;if(!it&&!Ht)return;if(it&&Ie!==void 0){Ve.height=Ie;let za=K(Ie),Hr=ye.getBoundingClientRect().height;if(x.current&&(x.current.cancel(),x.current=null),M(za),ye.animate&&Math.abs(Hr-za)>2){let cr=ye.animate([{height:`${Hr}px`},{height:`${za}px`}],{duration:Dz,easing:"ease-out",fill:"forwards"});x.current=cr,cr.onfinish=()=>{x.current===cr&&(cr.cancel(),x.current=null)}}}Ht&&i&&Se!==void 0&&(Ve.width=Se,P(Se));return}if(Ae==="ui/open-link"&&se!=null){let be=ae.params?.url;typeof be=="string"&&(T.current?T.current(be):window.open(be,"_blank","noopener,noreferrer")),ee({jsonrpc:"2.0",id:se,result:{}});return}if(Ae==="ui/message"&&se!=null){if(H.current&&ae.params){let be=ae.params,Ie=ot;if(ot=null,L){clearTimeout(L.timer);let Se=L.text;L=null;let Ve=(be.content??[]).map(it=>it.text??"").join("").trim();be={...be,content:[{type:"text",text:`${Ve}
122
122
 
123
123
  ${Se}`}]}}H.current({...be,...Ie?{modelContext:Ie}:{}})}ee({jsonrpc:"2.0",id:se,result:{}});return}if(Ae==="ui/update-model-context"&&se!=null){ot=dM(ot,ae.params),ee({jsonrpc:"2.0",id:se,result:{}});return}if(Ae==="tools/call"&&se!=null){let be=R.current;if(!be){ee({jsonrpc:"2.0",id:se,error:{code:-32601,message:"tools/call not supported"}});return}let Ie=ae.params?.name;be({name:Ie,arguments:ae.params?.arguments??{}}).then(Se=>{ee({jsonrpc:"2.0",id:se,result:Se});let Ve=Se.content?.map(it=>it.text??"").join("").trim();Ve&&Nz(Ie,Se,V.current)&&(L&&clearTimeout(L.timer),L={text:Ve,timer:setTimeout(()=>{if(S)return;let it=ot;ot=null,L=null,H.current?.({role:"user",content:[{type:"text",text:Ve}],...it?{modelContext:it}:{}})},500)})}).catch(Se=>{let Ve=Se instanceof Error?Se.message:"Tool call failed";ee({jsonrpc:"2.0",id:se,error:{code:-32e3,message:Ve}})});return}if(Ae==="ui/request-display-mode"&&se!=null){let be=ae.params?.mode,Ie=be==="fullscreen"||be==="inline"||be==="pip"?be:"inline";k.current=Ie,ee({jsonrpc:"2.0",id:se,result:{mode:Ie}}),ee({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{displayMode:Ie}}),B.current?.(Ie);return}if(Ae==="ui/resource-teardown"&&se!=null){ee({jsonrpc:"2.0",id:se,result:{}});return}Ae==="ping"&&se!=null&&ee({jsonrpc:"2.0",id:se,result:{}})};return window.addEventListener("message",lt),()=>{S=!0,clearTimeout($),L&&clearTimeout(L.timer),window.removeEventListener("message",lt)}},[i,K]),(0,pM.jsx)("iframe",{ref:g,src:me,sandbox:"allow-scripts allow-forms allow-same-origin",className:Q(!f&&"ww:rounded-md ww:border ww:border-border",l),style:{height:f?"100%":I,minWidth:f||!_?void 0:`min(${_}px, 100%)`,width:"100%",border:"none",colorScheme:o?"dark":"auto"},title:"MCP App"})}var En=F(ce(),1);function mM({icon:e,title:t,description:a,suggestions:r,onSuggestionSelect:n}){return(0,En.jsxs)("div",{className:"ww:flex ww:flex-col ww:items-center ww:justify-center ww:py-12 ww:px-6 ww:text-center ww:min-h-full",children:[e&&(0,En.jsx)("div",{className:"ww:mb-4 ww:flex ww:items-center ww:justify-center ww:size-12 ww:rounded-xl ww:bg-foreground ww:text-background",children:e}),(0,En.jsx)("h2",{className:"ww:text-lg ww:font-semibold ww:text-foreground",children:t}),a&&(0,En.jsx)("p",{className:"ww:mt-1 ww:text-sm ww:text-muted-foreground ww:max-w-sm",children:a}),r&&r.length>0&&(0,En.jsx)("div",{className:"ww:mt-6 ww:w-full ww:max-w-md ww:flex ww:flex-col ww:gap-2",children:r.map((o,l)=>(0,En.jsx)("button",{type:"button",onClick:()=>n?.(o),className:Q("ww:w-full ww:text-left ww:rounded-xl ww:border ww:border-border ww:bg-background ww:px-4 ww:py-3 ww:text-sm","ww:text-foreground ww:hover:bg-accent ww:hover:border-primary/30","ww:transition-all ww:duration-200 ww:ease-out ww:cursor-pointer","ww:animate-[ww-fade-in_0.2s_ease-out_both]"),style:{animationDelay:`${l*50}ms`},children:o},o))})]})}var hM=F(Ze(),1);var Is=F(ce(),1),Pd=class extends hM.Component{constructor(){super(...arguments);Le(this,"state",{hasError:!1})}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(a){console.warn("[WaniWani] Widget failed to render:",a.message)}render(){return this.state.hasError?(0,Is.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:rounded-md ww:border ww:border-border ww:bg-muted/50 ww:px-4 ww:py-3 ww:text-sm ww:text-muted-foreground",children:[(0,Is.jsx)("span",{children:"Widget failed to load"}),(0,Is.jsx)("button",{type:"button",onClick:()=>this.setState({hasError:!1}),className:"ww:text-xs ww:font-medium ww:text-primary ww:hover:underline",children:"Retry"})]}):this.props.children}};var Oe=F(ce(),1);function gM(e){return e?e.replace(/[-_]/g," ").replace(/^\w/,t=>t.toUpperCase()):"Tool"}function yM({messages:e,status:t,welcomeMessage:a,welcome:r,onSuggestionSelect:n,resourceEndpoint:o,chatSessionId:l,isDark:i,onFollowUp:s,onCallTool:u,onWidgetDisplayModeChange:c,fullscreenToolCallId:d,debug:f,showToolCalls:p=!0,toolDefinitions:g}){let v=t==="submitted"||t==="streaming",C=e[e.length-1],y=e.length>0,x=v&&(!y||C.role==="user"),h=d!=null;return(0,Oe.jsxs)(Oe.Fragment,{children:[!h&&(!y&&r?(0,Oe.jsx)(mM,{...r,onSuggestionSelect:n}):a&&(0,Oe.jsx)(Rd,{from:"assistant",children:(0,Oe.jsx)(Dd,{children:(0,Oe.jsx)(_d,{children:a})})})),e.map(w=>{let k=w.parts.filter(R=>R.type==="text"),I=w.parts.filter(R=>R.type==="reasoning"),M=w.parts.filter(R=>R.type==="file"),_=w.parts.filter(R=>"toolCallId"in R),P=w===C&&w.role==="assistant",T=k.length>0,H=h?_.some(R=>R.toolCallId===d):!1;return h&&!H?(0,Oe.jsx)("div",{style:{display:"none"}},w.id):(0,Oe.jsxs)(Rd,{from:w.role,children:[!H&&I.map((R,B)=>(0,Oe.jsx)(KA,{text:R.text},`reasoning-${w.id}-${B}`)),_.map(R=>{let B="output"in R?R.output:void 0,j=Od(R.toolName,B,g),V=uM(R.toolName,B,g),K=R.toolCallId===d;return(0,Oe.jsxs)("div",{style:K?{position:"absolute",inset:0,zIndex:10,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ww-color-background)"}:void 0,children:[(0,Oe.jsx)("div",{style:K?{display:"none"}:void 0,children:p?(0,Oe.jsxs)(aM,{children:[(0,Oe.jsx)(rM,{title:R.title??gM(R.toolName),state:R.state}),(0,Oe.jsxs)(oM,{children:[(0,Oe.jsx)(lM,{input:R.input,debug:f}),B!==void 0&&(0,Oe.jsx)(cM,{output:B,errorText:"errorText"in R?R.errorText:void 0,debug:f})]})]}):(0,Oe.jsx)(nM,{title:R.title??gM(R.toolName),state:R.state})}),j&&o&&B!==void 0&&(0,Oe.jsx)(Pd,{children:(0,Oe.jsx)(fM,{isFullscreen:K,resourceUri:j,toolInput:R.input??{},toolResult:{content:B.content,structuredContent:B.structuredContent,_meta:B._meta},resourceEndpoint:o,chatSessionId:l,isDark:i,autoHeight:V,toolDefinitions:g,onFollowUp:s,onCallTool:u,onDisplayModeChange:c?me=>c(me,{toolCallId:R.toolCallId,resourceUri:j,toolInput:R.input??{},toolResult:{content:B.content,structuredContent:B.structuredContent,_meta:B._meta},autoHeight:V}):void 0})})]},R.toolCallId)}),!H&&(0,Oe.jsx)("div",{children:(0,Oe.jsxs)(Dd,{children:[M.length>0&&(0,Oe.jsx)(g0,{files:M}),T?k.map((R,B)=>(0,Oe.jsx)(_d,{children:R.type==="text"?R.text:""},`${w.id}-${B}`)):P&&v&&(0,Oe.jsx)(Km,{})]})})]},w.id)}),!h&&x&&(0,Oe.jsx)(Rd,{from:"assistant",children:(0,Oe.jsx)(Dd,{children:(0,Oe.jsx)(Km,{})})})]})}var El=F(ce(),1),Bz="https://app.waniwani.ai/assets/waniwani-logo.svg",Uz="https://waniwani.ai";function xM(){return(0,El.jsx)("div",{className:"ww:pt-2 ww:pb-1 ww:flex ww:justify-center",children:(0,El.jsxs)("a",{href:Uz,target:"_blank",rel:"noopener noreferrer",className:"ww:flex ww:items-center ww:gap-1.5 ww:text-[11px] ww:text-muted-foreground ww:opacity-70 hover:ww:opacity-100 ww:transition-opacity",children:[(0,El.jsx)("span",{children:"powered by"}),(0,El.jsx)("img",{src:Bz,alt:"WaniWani",width:72,height:10,className:"ww:h-2.5 ww:w-auto"})]})})}var Ls=F(ce(),1);function vM({suggestions:e,isLoading:t,onSelect:a,className:r,...n}){return e.length===0&&!t?null:(0,Ls.jsx)("div",{className:Q("ww:px-4 ww:py-2",r),...n,children:(0,Ls.jsx)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl ww:flex ww:flex-wrap ww:gap-2",children:t?[0,1,2].map(o=>(0,Ls.jsx)("div",{className:"ww:h-7 ww:rounded-full ww:bg-accent ww:animate-pulse",style:{width:`${60+o*20}px`}},o)):e.map((o,l)=>(0,Ls.jsx)("button",{type:"button",onClick:()=>a(o),className:Q("ww:rounded-full ww:border ww:border-border ww:bg-background ww:px-3 ww:py-1 ww:text-xs","ww:text-foreground ww:hover:bg-accent ww:hover:border-primary/30","ww:transition-all ww:duration-200 ww:ease-out ww:cursor-pointer","ww:animate-[ww-fade-in_0.2s_ease-out_both]"),style:{animationDelay:`${l*50}ms`},children:o},o))})})}var Rl=F(Ze(),1),Te=F(ce(),1),wM=20;function zz(e){let t=Date.parse(e);if(Number.isNaN(t))return"";let a=Date.now()-t;return a<6e4?"just now":a<60*6e4?`${Math.floor(a/6e4)}m ago`:a<1440*6e4?`${Math.floor(a/(60*6e4))}h ago`:`${Math.floor(a/(1440*6e4))}d ago`}function qz(){return(0,Te.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"New chat",children:[(0,Te.jsx)("title",{children:"New chat"}),(0,Te.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,Te.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}function Fz(){return(0,Te.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Thread history",children:[(0,Te.jsx)("title",{children:"Thread history"}),(0,Te.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,Te.jsx)("polyline",{points:"3 4 3 9 8 9"}),(0,Te.jsx)("line",{x1:"12",y1:"7",x2:"12",y2:"12"}),(0,Te.jsx)("line",{x1:"12",y1:"12",x2:"15",y2:"14"})]})}function Hz(){return(0,Te.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Delete thread",children:[(0,Te.jsx)("title",{children:"Delete thread"}),(0,Te.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,Te.jsx)("path",{d:"M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6"}),(0,Te.jsx)("path",{d:"M10 11v6"}),(0,Te.jsx)("path",{d:"M14 11v6"})]})}function bM({threads:e,activeThreadId:t,onNewThread:a,onSelectThread:r,onDeleteThread:n}){let[o,l]=(0,Rl.useState)(!1),i=(0,Rl.useRef)(null);(0,Rl.useEffect)(()=>{if(!o)return;let c=d=>{let f=i.current;f&&(d.composedPath().includes(f)||l(!1))};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[o]);let s=e.slice(0,wM),u=Math.max(0,e.length-wM);return(0,Te.jsxs)("div",{ref:i,className:"ww:relative ww:flex ww:items-center ww:gap-1",children:[(0,Te.jsx)("button",{type:"button",onClick:a,title:"New chat","aria-label":"New chat",className:"ww:p-1.5 ww:rounded-md ww:text-muted-foreground hover:ww:text-foreground hover:ww:bg-foreground/5 ww:transition-colors ww:cursor-pointer",children:(0,Te.jsx)(qz,{})}),(0,Te.jsx)("button",{type:"button",onClick:()=>l(c=>!c),title:"Thread history","aria-label":"Thread history","aria-expanded":o,className:"ww:p-1.5 ww:rounded-md ww:text-muted-foreground hover:ww:text-foreground hover:ww:bg-foreground/5 ww:transition-colors ww:cursor-pointer",children:(0,Te.jsx)(Fz,{})}),o&&(0,Te.jsxs)("div",{role:"menu",className:"ww:absolute ww:right-0 ww:top-full ww:mt-1 ww:w-72 ww:max-h-80 ww:overflow-y-auto ww:rounded-lg ww:border ww:border-border ww:bg-background ww:shadow-lg ww:z-50",children:[s.length===0&&(0,Te.jsx)("div",{className:"ww:px-3 ww:py-3 ww:text-xs ww:text-muted-foreground",children:"No previous chats yet."}),s.map(c=>{let d=c.threadId===t;return(0,Te.jsxs)("div",{className:`ww:flex ww:items-center ww:gap-2 ww:px-3 ww:py-2 ww:text-xs hover:ww:bg-foreground/5 ${d?"ww:bg-foreground/5":""}`,children:[(0,Te.jsxs)("button",{type:"button",onClick:()=>{r(c.threadId),l(!1)},className:"ww:flex-1 ww:min-w-0 ww:text-left ww:cursor-pointer",children:[(0,Te.jsx)("div",{className:"ww:truncate ww:text-foreground ww:font-medium",children:c.title}),(0,Te.jsx)("div",{className:"ww:text-[10px] ww:text-muted-foreground",children:zz(c.updatedAt)})]}),(0,Te.jsx)("button",{type:"button",onClick:f=>{f.stopPropagation(),n(c.threadId)},title:"Delete thread","aria-label":"Delete thread",className:"ww:p-1 ww:rounded ww:text-muted-foreground hover:ww:text-foreground hover:ww:bg-foreground/10 ww:transition-colors ww:cursor-pointer",children:(0,Te.jsx)(Hz,{})})]},c.threadId)}),u>0&&(0,Te.jsxs)("div",{className:"ww:px-3 ww:py-2 ww:text-[10px] ww:text-muted-foreground ww:border-t ww:border-border",children:[u," older thread",u===1?"":"s"," hidden"]})]})]})}var Nd=F(Ze(),1);function SM(e){let t=(0,Nd.useRef)(e);return t.current=e,(0,Nd.useCallback)(async a=>{let{api:r,headers:n,onCallTool:o,sessionId:l}=t.current;if(o)return o(a);let i=`${r??"/api/waniwani"}/tool`,s=typeof l=="string"&&l.trim().length>0?l.trim():void 0,u=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json",...s?{"X-Session-Id":s}:{},...n},body:JSON.stringify(a)});if(!u.ok)throw new Error(`Tool call failed: ${u.status} ${u.statusText}`);return u.json()},[])}var Ua=F(Ze(),1);var KM="vercel.ai.error",jz=Symbol.for(KM),CM,IM,we=class YM extends(IM=Error,CM=jz,IM){constructor({name:t,message:a,cause:r}){super(a),this[CM]=!0,this.name=t,this.cause=r}static isInstance(t){return YM.hasMarker(t,KM)}static hasMarker(t,a){let r=Symbol.for(a);return t!=null&&typeof t=="object"&&r in t&&typeof t[r]=="boolean"&&t[r]===!0}},JM="AI_APICallError",eE=`vercel.ai.error.${JM}`,Vz=Symbol.for(eE),LM,kM,cY=class extends(kM=we,LM=Vz,kM){constructor({message:e,url:t,requestBodyValues:a,statusCode:r,responseHeaders:n,responseBody:o,cause:l,isRetryable:i=r!=null&&(r===408||r===409||r===429||r>=500),data:s}){super({name:JM,message:e,cause:l}),this[LM]=!0,this.url=t,this.requestBodyValues=a,this.statusCode=r,this.responseHeaders=n,this.responseBody=o,this.isRetryable=i,this.data=s}static isInstance(e){return we.hasMarker(e,eE)}},tE="AI_EmptyResponseBodyError",aE=`vercel.ai.error.${tE}`,Gz=Symbol.for(aE),TM,AM,dY=class extends(AM=we,TM=Gz,AM){constructor({message:e="Empty response body"}={}){super({name:tE,message:e}),this[TM]=!0}static isInstance(e){return we.hasMarker(e,aE)}};function rE(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var nE="AI_InvalidArgumentError",oE=`vercel.ai.error.${nE}`,Wz=Symbol.for(oE),MM,EM,lE=class extends(EM=we,MM=Wz,EM){constructor({message:e,cause:t,argument:a}){super({name:nE,message:e,cause:t}),this[MM]=!0,this.argument=a}static isInstance(e){return we.hasMarker(e,oE)}},iE="AI_InvalidPromptError",sE=`vercel.ai.error.${iE}`,Xz=Symbol.for(sE),RM,DM,fY=class extends(DM=we,RM=Xz,DM){constructor({prompt:e,message:t,cause:a}){super({name:iE,message:`Invalid prompt: ${t}`,cause:a}),this[RM]=!0,this.prompt=e}static isInstance(e){return we.hasMarker(e,sE)}},uE="AI_InvalidResponseDataError",cE=`vercel.ai.error.${uE}`,$z=Symbol.for(cE),_M,OM,pY=class extends(OM=we,_M=$z,OM){constructor({data:e,message:t=`Invalid response data: ${JSON.stringify(e)}.`}){super({name:uE,message:t}),this[_M]=!0,this.data=e}static isInstance(e){return we.hasMarker(e,cE)}},dE="AI_JSONParseError",fE=`vercel.ai.error.${dE}`,Zz=Symbol.for(fE),PM,NM,Ay=class extends(NM=we,PM=Zz,NM){constructor({text:e,cause:t}){super({name:dE,message:`JSON parsing failed: Text: ${e}.
124
124
  Error message: ${rE(t)}`,cause:t}),this[PM]=!0,this.text=e}static isInstance(e){return we.hasMarker(e,fE)}},pE="AI_LoadAPIKeyError",mE=`vercel.ai.error.${pE}`,Qz=Symbol.for(mE),BM,UM,mY=class extends(UM=we,BM=Qz,UM){constructor({message:e}){super({name:pE,message:e}),this[BM]=!0}static isInstance(e){return we.hasMarker(e,mE)}},hE="AI_LoadSettingError",gE=`vercel.ai.error.${hE}`,Kz=Symbol.for(gE),zM,qM,hY=class extends(qM=we,zM=Kz,qM){constructor({message:e}){super({name:hE,message:e}),this[zM]=!0}static isInstance(e){return we.hasMarker(e,gE)}},yE="AI_NoContentGeneratedError",xE=`vercel.ai.error.${yE}`,Yz=Symbol.for(xE),FM,HM,gY=class extends(HM=we,FM=Yz,HM){constructor({message:e="No content generated."}={}){super({name:yE,message:e}),this[FM]=!0}static isInstance(e){return we.hasMarker(e,xE)}},vE="AI_NoSuchModelError",wE=`vercel.ai.error.${vE}`,Jz=Symbol.for(wE),jM,VM,yY=class extends(VM=we,jM=Jz,VM){constructor({errorName:e=vE,modelId:t,modelType:a,message:r=`No such ${a}: ${t}`}){super({name:e,message:r}),this[jM]=!0,this.modelId=t,this.modelType=a}static isInstance(e){return we.hasMarker(e,wE)}},bE="AI_TooManyEmbeddingValuesForCallError",SE=`vercel.ai.error.${bE}`,eq=Symbol.for(SE),GM,WM,xY=class extends(WM=we,GM=eq,WM){constructor(e){super({name:bE,message:`Too many values for a single embedding call. The ${e.provider} model "${e.modelId}" can only embed up to ${e.maxEmbeddingsPerCall} values per call, but ${e.values.length} values were provided.`}),this[GM]=!0,this.provider=e.provider,this.modelId=e.modelId,this.maxEmbeddingsPerCall=e.maxEmbeddingsPerCall,this.values=e.values}static isInstance(e){return we.hasMarker(e,SE)}},CE="AI_TypeValidationError",IE=`vercel.ai.error.${CE}`,tq=Symbol.for(IE),XM,$M,lr=class Ty extends($M=we,XM=tq,$M){constructor({value:t,cause:a,context:r}){let n="Type validation failed";if(r?.field&&(n+=` for ${r.field}`),r?.entityName||r?.entityId){n+=" (";let o=[];r.entityName&&o.push(r.entityName),r.entityId&&o.push(`id: "${r.entityId}"`),n+=o.join(", "),n+=")"}super({name:CE,message:`${n}: Value: ${JSON.stringify(t)}.