"use client"; 'use strict';var react=require('react'),rehypeHarden=require('rehype-harden'),ke=require('rehype-katex'),pn=require('rehype-raw'),un=require('rehype-sanitize'),fn=require('remark-cjk-friendly'),gn=require('remark-cjk-friendly-gfm-strikethrough'),bn=require('remark-gfm'),xe=require('remark-math'),hn=require('remend'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),hastUtilToJsxRuntime=require('hast-util-to-jsx-runtime'),Oo=require('remark-parse'),Ho=require('remark-rehype'),unified=require('unified'),marked=require('marked'),Tt=require('shiki/langs/bash.mjs'),Zo=require('shiki/langs/css.mjs'),Mt=require('shiki/langs/go.mjs'),Go=require('shiki/langs/html.mjs'),Yo=require('shiki/langs/javascript.mjs'),Qo=require('shiki/langs/json.mjs'),en=require('shiki/langs/jsx.mjs'),Pt=require('shiki/langs/markdown.mjs'),Nt=require('shiki/langs/python.mjs'),Rt=require('shiki/langs/shellscript.mjs'),tn=require('shiki/langs/sql.mjs'),on=require('shiki/langs/toml.mjs'),nn=require('shiki/langs/tsx.mjs'),rn=require('shiki/langs/typescript.mjs'),St=require('shiki/langs/yaml.mjs');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ke__default=/*#__PURE__*/_interopDefault(ke);var pn__default=/*#__PURE__*/_interopDefault(pn);var un__default=/*#__PURE__*/_interopDefault(un);var fn__default=/*#__PURE__*/_interopDefault(fn);var gn__default=/*#__PURE__*/_interopDefault(gn);var bn__default=/*#__PURE__*/_interopDefault(bn);var xe__default=/*#__PURE__*/_interopDefault(xe);var hn__default=/*#__PURE__*/_interopDefault(hn);var Oo__default=/*#__PURE__*/_interopDefault(Oo);var Ho__default=/*#__PURE__*/_interopDefault(Ho);var Tt__default=/*#__PURE__*/_interopDefault(Tt);var Zo__default=/*#__PURE__*/_interopDefault(Zo);var Mt__default=/*#__PURE__*/_interopDefault(Mt);var Go__default=/*#__PURE__*/_interopDefault(Go);var Yo__default=/*#__PURE__*/_interopDefault(Yo);var Qo__default=/*#__PURE__*/_interopDefault(Qo);var en__default=/*#__PURE__*/_interopDefault(en);var Pt__default=/*#__PURE__*/_interopDefault(Pt);var Nt__default=/*#__PURE__*/_interopDefault(Nt);var Rt__default=/*#__PURE__*/_interopDefault(Rt);var tn__default=/*#__PURE__*/_interopDefault(tn);var on__default=/*#__PURE__*/_interopDefault(on);var nn__default=/*#__PURE__*/_interopDefault(nn);var rn__default=/*#__PURE__*/_interopDefault(rn);var St__default=/*#__PURE__*/_interopDefault(St);var $t=300,zt="300px",Ft=500;function ve(e={}){let{immediate:t=false,debounceDelay:n=$t,rootMargin:o=zt,idleTimeout:a=Ft}=e,[r,c]=react.useState(false),s=react.useRef(null),l=react.useRef(null),i=react.useRef(null),d=react.useMemo(()=>g=>{let u=Date.now();return window.setTimeout(()=>{g({didTimeout:false,timeRemaining:()=>Math.max(0,50-(Date.now()-u))});},1)},[]),m=react.useMemo(()=>typeof window!="undefined"&&window.requestIdleCallback?(g,u)=>window.requestIdleCallback(g,u):d,[d]),p=react.useMemo(()=>typeof window!="undefined"&&window.cancelIdleCallback?g=>window.cancelIdleCallback(g):g=>{clearTimeout(g);},[]);return react.useEffect(()=>{if(t){c(true);return}let g=s.current;if(!g)return;l.current&&(clearTimeout(l.current),l.current=null),i.current&&(p(i.current),i.current=null);let u=()=>{l.current&&(clearTimeout(l.current),l.current=null),i.current&&(p(i.current),i.current=null);},b=M=>{i.current=m(v=>{v.timeRemaining()>0||v.didTimeout?(c(true),M.disconnect()):i.current=m(()=>{c(true),M.disconnect();},{timeout:a/2});},{timeout:a});},y=M=>{u(),l.current=window.setTimeout(()=>{var S,E;let v=M.takeRecords();(v.length===0||((E=(S=v.at(-1))==null?void 0:S.isIntersecting)!=null?E:false))&&b(M);},n);},k=(M,v)=>{M.isIntersecting?y(v):u();},T=new IntersectionObserver(M=>{for(let v of M)k(v,T);},{rootMargin:o,threshold:0});return T.observe(g),()=>{l.current&&clearTimeout(l.current),i.current&&p(i.current),T.disconnect();}},[t,n,o,a,p,m]),{shouldRender:r,containerRef:s}}var f=(...e)=>tailwindMerge.twMerge(clsx.clsx(e)),L=(e,t,n)=>{let o=typeof t=="string"?new Blob([t],{type:n}):t,a=URL.createObjectURL(o),r=document.createElement("a");r.href=a,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(a);};var Wt=react.createContext({code:""}),U=()=>react.useContext(Wt);var le=({onCopy:e,onError:t,timeout:n=2e3,children:o,className:a,code:r,...c})=>{let[s,l]=react.useState(false),i=react.useRef(0),{code:d}=U(),{isAnimating:m}=react.useContext(P),p=r!=null?r:d,g=async()=>{var b;if(typeof window=="undefined"||!((b=navigator==null?void 0:navigator.clipboard)!=null&&b.writeText)){t==null||t(new Error("Clipboard API not available"));return}try{s||(await navigator.clipboard.writeText(p),l(!0),e==null||e(),i.current=window.setTimeout(()=>l(!1),n));}catch(y){t==null||t(y);}};react.useEffect(()=>()=>{window.clearTimeout(i.current);},[]);let u=s?lucideReact.CheckIcon:lucideReact.CopyIcon;return jsxRuntime.jsx("button",{className:f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",a),"data-streamdown":"code-block-copy-button",disabled:m,onClick:g,title:"Copy Code",type:"button",...c,children:o!=null?o:jsxRuntime.jsx(u,{size:14})})};var Te={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",\u6587\u8A00:"wy"},Pe=({onDownload:e,onError:t,language:n,children:o,className:a,code:r,...c})=>{let{code:s}=U(),{isAnimating:l}=react.useContext(P),i=r!=null?r:s,m=`file.${n&&n in Te?Te[n]:"txt"}`,p="text/plain",g=()=>{try{L(m,i,p),e==null||e();}catch(u){t==null||t(u);}};return jsxRuntime.jsx("button",{className:f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",a),"data-streamdown":"code-block-download-button",disabled:l,onClick:g,title:"Download file",type:"button",...c,children:o!=null?o:jsxRuntime.jsx(lucideReact.DownloadIcon,{size:14})})};var de=()=>jsxRuntime.jsxs("div",{className:"w-full divide-y divide-border overflow-hidden rounded-xl border border-border",children:[jsxRuntime.jsx("div",{className:"h-[46px] w-full bg-muted/80"}),jsxRuntime.jsx("div",{className:"flex w-full items-center justify-center p-4",children:jsxRuntime.jsx(lucideReact.Loader2Icon,{className:"size-4 animate-spin"})})]});var so=/\.[^/.]+$/,Ne=({node:e,className:t,src:n,alt:o,...a})=>{let r=async()=>{if(n)try{let s=await(await fetch(n)).blob(),i=new URL(n,window.location.origin).pathname.split("/").pop()||"",d=i.split(".").pop(),m=i.includes(".")&&d!==void 0&&d.length<=4,p="";if(m)p=i;else {let g=s.type,u="png";g.includes("jpeg")||g.includes("jpg")?u="jpg":g.includes("png")?u="png":g.includes("svg")?u="svg":g.includes("gif")?u="gif":g.includes("webp")&&(u="webp"),p=`${(o||i||"image").replace(so,"")}.${u}`;}L(p,s,s.type);}catch(c){console.error("Failed to download image:",c);}};return n?jsxRuntime.jsxs("div",{className:"group relative my-4 inline-block","data-streamdown":"image-wrapper",children:[jsxRuntime.jsx("img",{alt:o,className:f("max-w-full rounded-lg",t),"data-streamdown":"image",src:n,...a}),jsxRuntime.jsx("div",{className:"pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block"}),jsxRuntime.jsx("button",{className:f("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:r,title:"Download image",type:"button",children:jsxRuntime.jsx(lucideReact.DownloadIcon,{size:14})})]}):null};var Z=async e=>{let n={...{startOnLoad:false,theme:"default",securityLevel:"strict",fontFamily:"monospace",suppressErrorRendering:true},...e},a=(await import('mermaid')).default;return a.initialize(n),a},Re=(e,t)=>{var o;let n=(o=void 0)!=null?o:5;return new Promise((a,r)=>{let c="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e))),s=new Image;s.crossOrigin="anonymous",s.onload=()=>{let l=document.createElement("canvas"),i=s.width*n,d=s.height*n;l.width=i,l.height=d;let m=l.getContext("2d");if(!m){r(new Error("Failed to create 2D canvas context for PNG export"));return}m.drawImage(s,0,0,i,d),l.toBlob(p=>{if(!p){r(new Error("Failed to create PNG blob"));return}a(p);},"image/png");},s.onerror=()=>r(new Error("Failed to load SVG image")),s.src=c;})};var Ee=({chart:e,children:t,className:n,onDownload:o,config:a,onError:r})=>{let[c,s]=react.useState(false),l=react.useRef(null),{isAnimating:i}=react.useContext(P),d=async m=>{try{if(m==="mmd"){L("diagram.mmd",e,"text/plain"),s(!1),o==null||o(m);return}let p=await Z(a),g=e.split("").reduce((y,k)=>(y<<5)-y+k.charCodeAt(0)|0,0),u=`mermaid-${Math.abs(g)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:b}=await p.render(u,e);if(!b){r==null||r(new Error("SVG not found. Please wait for the diagram to render."));return}if(m==="svg"){L("diagram.svg",b,"image/svg+xml"),s(!1),o==null||o(m);return}if(m==="png"){let y=await Re(b);L("diagram.png",y,"image/png"),o==null||o(m),s(!1);return}}catch(p){r==null||r(p);}};return react.useEffect(()=>{let m=p=>{l.current&&!l.current.contains(p.target)&&s(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),jsxRuntime.jsxs("div",{className:"relative",ref:l,children:[jsxRuntime.jsx("button",{className:f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",n),disabled:i,onClick:()=>s(!c),title:"Download diagram",type:"button",children:t!=null?t:jsxRuntime.jsx(lucideReact.DownloadIcon,{size:14})}),c?jsxRuntime.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:[jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>d("svg"),title:"Download diagram as SVG",type:"button",children:"SVG"}),jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>d("png"),title:"Download diagram as PNG",type:"button",children:"PNG"}),jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>d("mmd"),title:"Download diagram as MMD",type:"button",children:"MMD"})]}):null]})};var _=0,ho=()=>{_+=1,_===1&&(document.body.style.overflow="hidden");},yo=()=>{_=Math.max(0,_-1),_===0&&(document.body.style.overflow="");},je=({chart:e,config:t,onFullscreen:n,onExit:o,className:a,...r})=>{let[c,s]=react.useState(false),{isAnimating:l,controls:i}=react.useContext(P),d=(()=>{if(typeof i=="boolean")return i;let p=i.mermaid;return p===false?false:p===true||p===void 0?true:p.panZoom!==false})(),m=()=>{s(!c);};return react.useEffect(()=>{if(c){ho();let p=g=>{g.key==="Escape"&&s(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),yo();}}},[c]),react.useEffect(()=>{c?n==null||n():o&&o();},[c,n,o]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{className:f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",a),disabled:l,onClick:m,title:"View fullscreen",type:"button",...r,children:jsxRuntime.jsx(lucideReact.Maximize2Icon,{size:14})}),c?jsxRuntime.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"button",tabIndex:0,children:[jsxRuntime.jsx("button",{className:"absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground",onClick:m,title:"Exit fullscreen",type:"button",children:jsxRuntime.jsx(lucideReact.XIcon,{size:20})}),jsxRuntime.jsx("div",{className:"flex size-full items-center justify-center p-4",onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:jsxRuntime.jsx(Le,{chart:e,className:"size-full [&_svg]:h-auto [&_svg]:w-auto",config:t,fullscreen:true,showControls:d})})]}):null]})};var G=e=>{var r,c;let t=[],n=[],o=e.querySelectorAll("thead th");for(let s of o)t.push(((r=s.textContent)==null?void 0:r.trim())||"");let a=e.querySelectorAll("tbody tr");for(let s of a){let l=[],i=s.querySelectorAll("td");for(let d of i)l.push(((c=d.textContent)==null?void 0:c.trim())||"");n.push(l);}return {headers:t,rows:n}},Y=e=>{let{headers:t,rows:n}=e,o=s=>{let l=false,i=false;for(let d of s){if(d==='"'){l=true,i=true;break}(d===","||d===` `)&&(l=true);}return l?i?`"${s.replace(/"/g,'""')}"`:`"${s}"`:s},a=t.length>0?n.length+1:n.length,r=new Array(a),c=0;t.length>0&&(r[c]=t.map(o).join(","),c+=1);for(let s of n)r[c]=s.map(o).join(","),c+=1;return r.join(` `)},Be=e=>{let{headers:t,rows:n}=e,o=s=>{let l=false;for(let d of s)if(d===" "||d===` `||d==="\r"){l=true;break}if(!l)return s;let i=[];for(let d of s)d===" "?i.push("\\t"):d===` `?i.push("\\n"):d==="\r"?i.push("\\r"):i.push(d);return i.join("")},a=t.length>0?n.length+1:n.length,r=new Array(a),c=0;t.length>0&&(r[c]=t.map(o).join(" "),c+=1);for(let s of n)r[c]=s.map(o).join(" "),c+=1;return r.join(` `)},me=e=>{let t=false;for(let o of e)if(o==="\\"||o==="|"){t=true;break}if(!t)return e;let n=[];for(let o of e)o==="\\"?n.push("\\\\"):o==="|"?n.push("\\|"):n.push(o);return n.join("")},Ae=e=>{let{headers:t,rows:n}=e;if(t.length===0)return "";let o=new Array(n.length+2),a=0,r=t.map(s=>me(s));o[a]=`| ${r.join(" | ")} |`,a+=1;let c=new Array(t.length);for(let s=0;sme(i));o[a]=`| ${l.join(" | ")} |`,a+=1;}return o.join(` `)};var $e=({children:e,className:t,onCopy:n,onError:o,timeout:a=2e3})=>{let[r,c]=react.useState(false),[s,l]=react.useState(false),i=react.useRef(null),d=react.useRef(0),{isAnimating:m}=react.useContext(P),p=async u=>{var b,y;if(typeof window=="undefined"||!((b=navigator==null?void 0:navigator.clipboard)!=null&&b.write)){o==null||o(new Error("Clipboard API not available"));return}try{let k=(y=i.current)==null?void 0:y.closest('[data-streamdown="table-wrapper"]'),T=k==null?void 0:k.querySelector("table");if(!T){o==null||o(new Error("Table not found"));return}let M=G(T),v=u==="csv"?Y(M):Be(M),R=new ClipboardItem({"text/plain":new Blob([v],{type:"text/plain"}),"text/html":new Blob([T.outerHTML],{type:"text/html"})});await navigator.clipboard.write([R]),l(!0),c(!1),n==null||n(u),d.current=window.setTimeout(()=>l(!1),a);}catch(k){o==null||o(k);}};react.useEffect(()=>{let u=b=>{i.current&&!i.current.contains(b.target)&&c(false);};return document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u),window.clearTimeout(d.current);}},[]);let g=s?lucideReact.CheckIcon:lucideReact.CopyIcon;return jsxRuntime.jsxs("div",{className:"relative",ref:i,children:[jsxRuntime.jsx("button",{className:f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>c(!r),title:"Copy table",type:"button",children:e!=null?e:jsxRuntime.jsx(g,{size:14})}),r?jsxRuntime.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:[jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>p("csv"),title:"Copy table as CSV",type:"button",children:"CSV"}),jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>p("tsv"),title:"Copy table as TSV",type:"button",children:"TSV"})]}):null]})};var Fe=({children:e,className:t,onDownload:n,onError:o})=>{let[a,r]=react.useState(false),c=react.useRef(null),{isAnimating:s}=react.useContext(P),l=i=>{var d;try{let m=(d=c.current)==null?void 0:d.closest('[data-streamdown="table-wrapper"]'),p=m==null?void 0:m.querySelector("table");if(!p){o==null||o(new Error("Table not found"));return}let g=G(p),u=i==="csv"?Y(g):Ae(g);L(`table.${i==="csv"?"csv":"md"}`,u,i==="csv"?"text/csv":"text/markdown"),r(!1),n==null||n(i);}catch(m){o==null||o(m);}};return react.useEffect(()=>{let i=d=>{c.current&&!c.current.contains(d.target)&&r(false);};return document.addEventListener("mousedown",i),()=>{document.removeEventListener("mousedown",i);}},[]),jsxRuntime.jsxs("div",{className:"relative",ref:c,children:[jsxRuntime.jsx("button",{className:f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:s,onClick:()=>r(!a),title:"Download table",type:"button",children:e!=null?e:jsxRuntime.jsx(lucideReact.DownloadIcon,{size:14})}),a?jsxRuntime.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:[jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>l("csv"),title:"Download table as CSV",type:"button",children:"CSV"}),jsxRuntime.jsx("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>l("markdown"),title:"Download table as Markdown",type:"button",children:"Markdown"})]}):null]})};var Xe=({children:e,className:t,showControls:n,...o})=>jsxRuntime.jsxs("div",{className:"my-4 flex flex-col space-y-2","data-streamdown":"table-wrapper",children:[n?jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-1",children:[jsxRuntime.jsx($e,{}),jsxRuntime.jsx(Fe,{})]}):null,jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsx("table",{className:f("w-full border-collapse border border-border",t),"data-streamdown":"table",...o,children:e})})]});var So=react.lazy(()=>import('./code-block-N3EJBPUA.cjs').then(e=>({default:e.CodeBlock}))),Eo=react.lazy(()=>import('./mermaid-6CK27YD2.cjs').then(e=>({default:e.Mermaid}))),Do=/language-([^\s]+)/;function ne(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let n=e.position.start,o=t.position.start,a=e.position.end,r=t.position.end;return (n==null?void 0:n.line)===(o==null?void 0:o.line)&&(n==null?void 0:n.column)===(o==null?void 0:o.column)&&(a==null?void 0:a.line)===(r==null?void 0:r.line)&&(a==null?void 0:a.column)===(r==null?void 0:r.column)}function C(e,t){return e.className===t.className&&ne(e.node,t.node)}var ue=(e,t)=>typeof e=="boolean"?e:e[t]!==false,oe=(e,t)=>{if(typeof e=="boolean")return e;let n=e.mermaid;return n===false?false:n===true||n===void 0?true:n[t]!==false},fe=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("ol",{className:f("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...o,children:e}),(e,t)=>C(e,t));fe.displayName="MarkdownOl";var Ue=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("li",{className:f("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...o,children:e}),(e,t)=>e.className===t.className&&ne(e.node,t.node));Ue.displayName="MarkdownLi";var Ke=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("ul",{className:f("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...o,children:e}),(e,t)=>C(e,t));Ke.displayName="MarkdownUl";var Ze=react.memo(({className:e,node:t,...n})=>jsxRuntime.jsx("hr",{className:f("my-6 border-border",e),"data-streamdown":"horizontal-rule",...n}),(e,t)=>C(e,t));Ze.displayName="MarkdownHr";var Ge=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("span",{className:f("font-semibold",t),"data-streamdown":"strong",...o,children:e}),(e,t)=>C(e,t));Ge.displayName="MarkdownStrong";var Ye=react.memo(({children:e,className:t,href:n,node:o,...a})=>{let r=n==="streamdown:incomplete-link";return jsxRuntime.jsx("a",{className:f("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":r,"data-streamdown":"link",href:n,rel:"noreferrer",target:"_blank",...a,children:e})},(e,t)=>C(e,t)&&e.href===t.href);Ye.displayName="MarkdownA";var Qe=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("h1",{className:f("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...o,children:e}),(e,t)=>C(e,t));Qe.displayName="MarkdownH1";var et=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("h2",{className:f("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...o,children:e}),(e,t)=>C(e,t));et.displayName="MarkdownH2";var tt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("h3",{className:f("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...o,children:e}),(e,t)=>C(e,t));tt.displayName="MarkdownH3";var ot=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("h4",{className:f("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...o,children:e}),(e,t)=>C(e,t));ot.displayName="MarkdownH4";var nt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("h5",{className:f("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...o,children:e}),(e,t)=>C(e,t));nt.displayName="MarkdownH5";var rt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("h6",{className:f("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...o,children:e}),(e,t)=>C(e,t));rt.displayName="MarkdownH6";var st=react.memo(({children:e,className:t,node:n,...o})=>{let{controls:a}=react.useContext(P),r=ue(a,"table");return jsxRuntime.jsx(Xe,{className:t,"data-streamdown":"table-wrapper",showControls:r,...o,children:e})},(e,t)=>C(e,t));st.displayName="MarkdownTable";var at=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("thead",{className:f("bg-muted/80",t),"data-streamdown":"table-header",...o,children:e}),(e,t)=>C(e,t));at.displayName="MarkdownThead";var it=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("tbody",{className:f("divide-y divide-border bg-muted/40",t),"data-streamdown":"table-body",...o,children:e}),(e,t)=>C(e,t));it.displayName="MarkdownTbody";var lt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("tr",{className:f("border-border border-b",t),"data-streamdown":"table-row",...o,children:e}),(e,t)=>C(e,t));lt.displayName="MarkdownTr";var ct=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("th",{className:f("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...o,children:e}),(e,t)=>C(e,t));ct.displayName="MarkdownTh";var dt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("td",{className:f("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...o,children:e}),(e,t)=>C(e,t));dt.displayName="MarkdownTd";var mt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("blockquote",{className:f("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...o,children:e}),(e,t)=>C(e,t));mt.displayName="MarkdownBlockquote";var pt=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("sup",{className:f("text-sm",t),"data-streamdown":"superscript",...o,children:e}),(e,t)=>C(e,t));pt.displayName="MarkdownSup";var ut=react.memo(({children:e,className:t,node:n,...o})=>jsxRuntime.jsx("sub",{className:f("text-sm",t),"data-streamdown":"subscript",...o,children:e}),(e,t)=>C(e,t));ut.displayName="MarkdownSub";var ft=react.memo(({children:e,className:t,node:n,...o})=>{if("data-footnotes"in o){let r=l=>{var p,g;if(!react.isValidElement(l))return false;let i=Array.isArray(l.props.children)?l.props.children:[l.props.children],d=false,m=false;for(let u of i)if(u){if(typeof u=="string")u.trim()!==""&&(d=true);else if(react.isValidElement(u))if(((p=u.props)==null?void 0:p["data-footnote-backref"])!==void 0)m=true;else {let b=Array.isArray(u.props.children)?u.props.children:[u.props.children];for(let y of b){if(typeof y=="string"&&y.trim()!==""){d=true;break}if(react.isValidElement(y)&&((g=y.props)==null?void 0:g["data-footnote-backref"])===void 0){d=true;break}}}}return m&&!d},c=Array.isArray(e)?e.map(l=>{if(!react.isValidElement(l))return l;if(l.type===fe){let d=(Array.isArray(l.props.children)?l.props.children:[l.props.children]).filter(m=>!r(m));return d.length===0?null:{...l,props:{...l.props,children:d}}}return l}):e;return (Array.isArray(c)?c.some(l=>l!==null):c!==null)?jsxRuntime.jsx("section",{className:t,...o,children:c}):null}return jsxRuntime.jsx("section",{className:t,...o,children:e})},(e,t)=>C(e,t));ft.displayName="MarkdownSection";var Io=({node:e,className:t,children:n,...o})=>{var m,p,g;let a=((m=e==null?void 0:e.position)==null?void 0:m.start.line)===((p=e==null?void 0:e.position)==null?void 0:p.end.line),{mermaid:r,controls:c}=react.useContext(P);if(a)return jsxRuntime.jsx("code",{className:f("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...o,children:n});let s=t==null?void 0:t.match(Do),l=(g=s==null?void 0:s.at(1))!=null?g:"",i="";if(react.isValidElement(n)&&n.props&&typeof n.props=="object"&&"children"in n.props&&typeof n.props.children=="string"?i=n.props.children:typeof n=="string"&&(i=n),l==="mermaid"){let u=ue(c,"mermaid"),b=oe(c,"download"),y=oe(c,"copy"),k=oe(c,"fullscreen"),T=oe(c,"panZoom"),M=u&&(b||y||k);return jsxRuntime.jsx(react.Suspense,{fallback:jsxRuntime.jsx(de,{}),children:jsxRuntime.jsxs("div",{className:f("group relative my-4 h-auto rounded-xl border p-4",t),"data-streamdown":"mermaid-block",children:[M?jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-2",children:[b?jsxRuntime.jsx(Ee,{chart:i,config:r==null?void 0:r.config}):null,y?jsxRuntime.jsx(le,{code:i}):null,k?jsxRuntime.jsx(je,{chart:i,config:r==null?void 0:r.config}):null]}):null,jsxRuntime.jsx(Eo,{chart:i,config:r==null?void 0:r.config,showControls:T})]})})}let d=ue(c,"code");return jsxRuntime.jsx(react.Suspense,{fallback:jsxRuntime.jsx(de,{}),children:jsxRuntime.jsx(So,{className:f("overflow-x-auto border-border border-t",t),code:i,language:l,children:d?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Pe,{code:i,language:l}),jsxRuntime.jsx(le,{})]}):null})})},gt=react.memo(Io,(e,t)=>e.className===t.className&&ne(e.node,t.node));gt.displayName="MarkdownCode";var bt=react.memo(Ne,(e,t)=>e.className===t.className&&ne(e.node,t.node));bt.displayName="MarkdownImg";var ht=react.memo(({children:e,className:t,node:n,...o})=>{var c;let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");return r.length===1&&react.isValidElement(r[0])&&((c=r[0].props.node)==null?void 0:c.tagName)==="img"?jsxRuntime.jsx(jsxRuntime.Fragment,{children:e}):jsxRuntime.jsx("p",{className:t,...o,children:e})},(e,t)=>C(e,t));ht.displayName="MarkdownParagraph";var yt={ol:fe,li:Ue,ul:Ke,hr:Ze,strong:Ge,a:Ye,h1:Qe,h2:et,h3:tt,h4:ot,h5:nt,h6:rt,table:st,thead:at,tbody:it,tr:lt,th:ct,td:dt,blockquote:mt,code:gt,img:bt,pre:({children:e})=>e,sup:pt,sub:ut,p:ht,section:ft};var kt=[],xt={allowDangerousHtml:true},re=new WeakMap,ge=class{constructor(){this.cache=new Map;this.keyCache=new WeakMap;this.maxSize=100;}generateCacheKey(t){let n=this.keyCache.get(t);if(n)return n;let o=t.rehypePlugins,a=t.remarkPlugins,r=t.remarkRehypeOptions;if(!(o||a||r)){let m="default";return this.keyCache.set(t,m),m}let c=m=>{if(!m||m.length===0)return "";let p="";for(let g=0;g0&&(p+=","),Array.isArray(u)){let[b,y]=u;if(typeof b=="function"){let k=re.get(b);k||(k=b.name,re.set(b,k)),p+=k;}else p+=String(b);p+=":",p+=JSON.stringify(y);}else if(typeof u=="function"){let b=re.get(u);b||(b=u.name,re.set(u,b)),p+=b;}else p+=String(u);}return p},s=c(o),l=c(a),i=r?JSON.stringify(r):"",d=`${l}::${s}::${i}`;return this.keyCache.set(t,d),d}get(t){let n=this.generateCacheKey(t),o=this.cache.get(n);return o&&(this.cache.delete(n),this.cache.set(n,o)),o}set(t,n){let o=this.generateCacheKey(t);if(this.cache.size>=this.maxSize){let a=this.cache.keys().next().value;a&&this.cache.delete(a);}this.cache.set(o,n);}clear(){this.cache.clear();}},vt=new ge,be=e=>{let t=$o(e),n=e.children||"";return Fo(t.runSync(t.parse(n),n),e)},$o=e=>{let t=vt.get(e);if(t)return t;let n=zo(e);return vt.set(e,n),n},zo=e=>{let t=e.rehypePlugins||kt,n=e.remarkPlugins||kt,o=e.remarkRehypeOptions?{...xt,...e.remarkRehypeOptions}:xt;return unified.unified().use(Oo__default.default).use(n).use(Ho__default.default,o).use(t)},Fo=(e,t)=>hastUtilToJsxRuntime.toJsxRuntime(e,{Fragment:jsxRuntime.Fragment,components:t.components,ignoreInvalidStyle:true,jsx:jsxRuntime.jsx,jsxs:jsxRuntime.jsxs,passKeys:true,passNode:true});var Xo=/\[\^[^\]\s]{1,200}\](?!:)/,_o=/\[\^[^\]\s]{1,200}\]:/,Jo=/<\/(\w+)>/,Wo=/<(\w+)[\s>]/,he=e=>{let t=0;for(;t{let t=e.length-1;for(;t>=0&&(e[t]===" "||e[t]===" "||e[t]===` `||e[t]==="\r");)t-=1;return t>=1&&e[t]==="$"&&e[t-1]==="$"},ye=e=>{let t=0;for(let n=0;n{let t=Xo.test(e),n=_o.test(e);if(t||n)return [e];let o=marked.Lexer.lex(e,{gfm:true}),a=[],r=[];for(let c of o){let s=c.raw,l=a.length;if(r.length>0){if(a[l-1]+=s,c.type==="html"){let d=s.match(Jo);if(d){let m=d[1];r.at(-1)===m&&r.pop();}}continue}if(c.type==="html"&&c.block){let d=s.match(Wo);if(d){let m=d[1];s.includes(``)||r.push(m);}}if(s.trim()==="$$"&&l>0){let d=a[l-1],m=he(d),p=ye(d);if(m&&p%2===1){a[l-1]=d+s;continue}}if(l>0&&Uo(s)){let d=a[l-1],m=he(d),p=ye(d),g=ye(s);if(m&&p%2===1&&!he(s)&&g===1){a[l-1]=d+s;continue}}a.push(s);}return a};var Ct={name:"streamdown",version:"1.6.10",type:"module",main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"}},files:["dist","README.md"],homepage:"https://streamdown.ai",repository:{type:"git",url:"git+https://github.com/vercel/streamdown.git",directory:"packages/streamdown"},scripts:{build:"tsup",postbuild:"node scripts/postbuild.js",test:"vitest run","test:ui":"vitest --ui run","test:coverage":"vitest --coverage run",bench:"vitest bench --run > results.txt","bench:ui":"vitest bench --ui --run"},author:"Hayden Bleasel ",license:"Apache-2.0",description:"A drop-in replacement for react-markdown, designed for AI-powered streaming.",devDependencies:{"@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.0","@types/hast":"^3.0.4","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.2","@vitest/coverage-v8":"^4.0.15",jsdom:"^27.3.0",react:"^19.2.1","react-dom":"^19.2.1","react-markdown":"^10.1.0",tsup:"^8.5.1",vitest:"^4.0.15"},peerDependencies:{react:"^18.0.0 || ^19.0.0"},dependencies:{clsx:"^2.1.1","hast-util-to-jsx-runtime":"^2.3.6","html-url-attributes":"^3.0.1","lucide-react":"^0.560.0",marked:"^17.0.1",mermaid:"^11.12.2","rehype-harden":"^1.1.7","rehype-katex":"^7.0.1","rehype-raw":"^7.0.0","rehype-sanitize":"^6.0.0","remark-cjk-friendly":"^1.2.3","remark-cjk-friendly-gfm-strikethrough":"^1.2.3","remark-gfm":"^4.0.1","remark-math":"^6.0.0","remark-parse":"^11.0.0","remark-rehype":"^11.1.2",remend:"workspace:*",shiki:"^3.19.0","tailwind-merge":"^3.4.0",unified:"^11.0.5","unist-util-visit":"^5.0.0"}};var Et={javascript:Yo__default.default,typescript:rn__default.default,jsx:en__default.default,tsx:nn__default.default,html:Go__default.default,css:Zo__default.default,json:Qo__default.default,bash:Tt__default.default,shellscript:Rt__default.default,shell:Rt__default.default,sh:Tt__default.default,yaml:St__default.default,yml:St__default.default,toml:on__default.default,python:Nt__default.default,py:Nt__default.default,markdown:Pt__default.default,md:Pt__default.default,sql:tn__default.default,go:Mt__default.default,golang:Mt__default.default},sn=e=>e in Et;var yn=/[^$]\$[^$]/,wn=/^\$[^$]/,kn=/[^$]\$$/,xn={raw:pn__default.default,sanitize:[un__default.default,{}],katex:[ke__default.default,{errorColor:"var(--color-muted-foreground)"}],harden:[rehypeHarden.harden,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:true}]},vn={gfm:[bn__default.default,{}],math:[xe__default.default,{singleDollarTextMath:false}],cjkFriendly:[fn__default.default,{}],cjkFriendlyGfmStrikethrough:[gn__default.default,{}]},Cn=Object.values(xn),Tn=Object.values(vn),Mn={block:" \u258B",circle:" \u25CF"},Pn={shikiTheme:["github-light","github-dark"],controls:true,isAnimating:false,mode:"streaming",mermaid:void 0,cdnUrl:void 0},P=react.createContext(Pn),Lt=react.memo(({content:e,...t})=>jsxRuntime.jsx(be,{...t,children:e}),(e,t)=>{if(e.content!==t.content||e.index!==t.index)return false;if(e.components!==t.components){let n=Object.keys(e.components||{}),o=Object.keys(t.components||{});if(n.length!==o.length||n.some(a=>{var r,c;return ((r=e.components)==null?void 0:r[a])!==((c=t.components)==null?void 0:c[a])}))return false}return !(e.rehypePlugins!==t.rehypePlugins||e.remarkPlugins!==t.remarkPlugins)});Lt.displayName="Block";var Nn=["github-light","github-dark"],Rn=e=>Array.isArray(e)&&e.some(t=>Array.isArray(t)?t[0]===ke__default.default:t===ke__default.default),Sn=e=>{if(!Array.isArray(e))return false;let t=e.find(n=>Array.isArray(n)?n[0]===xe__default.default:n===xe__default.default);return t&&Array.isArray(t)&&t[1]?t[1].singleDollarTextMath===true:false},En=(e,t)=>{let n=e.includes("$$"),o=t&&(yn.test(e)||wn.test(e)||kn.test(e));return n||o},Dn=/^\^/,In=()=>{let e=Ct.dependencies["rehype-katex"].replace(Dn,"").split(".")[0],n={7:"0.16.22"}[e]||"0.16.22",o=document.createElement("link");o.rel="stylesheet",o.href=`/cdn/katex/${n}/katex.min.css`,document.head.appendChild(o);},Ln=react.memo(({children:e,mode:t="streaming",parseIncompleteMarkdown:n=true,components:o,rehypePlugins:a=Cn,remarkPlugins:r=Tn,className:c,shikiTheme:s=Nn,mermaid:l,controls:i=true,isAnimating:d=false,BlockComponent:m=Lt,parseMarkdownIntoBlocksFn:p=we,caret:g,cdnUrl:u,remend:b,...y})=>{let k=react.useId(),[T,M]=react.useTransition(),[v,R]=react.useState([]),S=react.useMemo(()=>typeof e!="string"?"":t==="streaming"&&n?hn__default.default(e,b):e,[e,t,n,b]),E=react.useMemo(()=>p(S),[S,p]);react.useEffect(()=>{t==="streaming"?M(()=>{R(E);}):R(E);},[E,t]);let I=t==="streaming"?v:E,$=react.useMemo(()=>I.map((N,j)=>`${k}-${j}`),[I.length,k]),B=react.useMemo(()=>({shikiTheme:s,controls:i,isAnimating:d,mode:t,mermaid:l,cdnUrl:u}),[s,i,d,t,l,u]),A=react.useMemo(()=>({...yt,...o}),[o]);react.useEffect(()=>{if(!Rn(a))return;let j=Sn(r);En(typeof e=="string"?e:"",j)&&In();},[a,r,e]);let w=react.useMemo(()=>g&&d?{"--streamdown-caret":`"${Mn[g]}"`}:void 0,[g,d]);return t==="static"?jsxRuntime.jsx(P.Provider,{value:B,children:jsxRuntime.jsx("div",{className:f("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",c),children:jsxRuntime.jsx(be,{components:A,rehypePlugins:a,remarkPlugins:r,...y,children:e})})}):jsxRuntime.jsx(P.Provider,{value:B,children:jsxRuntime.jsx("div",{className:f("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",g?"*:last:after:inline *:last:after:align-baseline *:last:after:content-(--streamdown-caret)":null,c),style:w,children:I.map((N,j)=>jsxRuntime.jsx(m,{components:A,content:N,index:j,rehypePlugins:a,remarkPlugins:r,shouldParseIncompleteMarkdown:n,...y},$[j]))})})},(e,t)=>e.children===t.children&&e.shikiTheme===t.shikiTheme&&e.isAnimating===t.isAnimating&&e.mode===t.mode);Ln.displayName="Streamdown";var Ot=({children:e,className:t,minZoom:n=.5,maxZoom:o=3,zoomStep:a=.1,showControls:r=true,initialZoom:c=1,fullscreen:s=false})=>{let l=react.useRef(null),i=react.useRef(null),[d,m]=react.useState(c),[p,g]=react.useState({x:0,y:0}),[u,b]=react.useState(false),[y,k]=react.useState({x:0,y:0}),[T,M]=react.useState({x:0,y:0}),v=react.useCallback(w=>{m(N=>Math.max(n,Math.min(o,N+w)));},[n,o]),R=react.useCallback(()=>{v(a);},[v,a]),S=react.useCallback(()=>{v(-a);},[v,a]),E=react.useCallback(()=>{m(c),g({x:0,y:0});},[c]),I=react.useCallback(w=>{w.preventDefault();let N=w.deltaY>0?-a:a;v(N);},[v,a]),$=react.useCallback(w=>{if(w.button!==0||w.isPrimary===false)return;b(true),k({x:w.clientX,y:w.clientY}),M(p);let N=w.currentTarget;N instanceof HTMLElement&&N.setPointerCapture(w.pointerId);},[p]),B=react.useCallback(w=>{if(!u)return;w.preventDefault();let N=w.clientX-y.x,j=w.clientY-y.y;g({x:T.x+N,y:T.y+j});},[u,y,T]),A=react.useCallback(w=>{b(false);let N=w.currentTarget;N instanceof HTMLElement&&N.releasePointerCapture(w.pointerId);},[]);return react.useEffect(()=>{let w=l.current;if(w)return w.addEventListener("wheel",I,{passive:false}),()=>{w.removeEventListener("wheel",I);}},[I]),react.useEffect(()=>{let w=i.current;if(w&&u)return document.body.style.userSelect="none",w.addEventListener("pointermove",B,{passive:false}),w.addEventListener("pointerup",A),w.addEventListener("pointercancel",A),()=>{document.body.style.userSelect="",w.removeEventListener("pointermove",B),w.removeEventListener("pointerup",A),w.removeEventListener("pointercancel",A);}},[u,B,A]),jsxRuntime.jsxs("div",{className:f("relative flex flex-col",s?"h-full w-full":"min-h-28 w-full",t),ref:l,style:{cursor:u?"grabbing":"grab"},children:[r?jsxRuntime.jsxs("div",{className:f("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/90 p-1 shadow-sm backdrop-blur-sm",s?"bottom-4 left-4":"bottom-2 left-2"),children:[jsxRuntime.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:d>=o,onClick:R,title:"Zoom in",type:"button",children:jsxRuntime.jsx(lucideReact.ZoomInIcon,{size:16})}),jsxRuntime.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:d<=n,onClick:S,title:"Zoom out",type:"button",children:jsxRuntime.jsx(lucideReact.ZoomOutIcon,{size:16})}),jsxRuntime.jsx("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:E,title:"Reset zoom and pan",type:"button",children:jsxRuntime.jsx(lucideReact.RotateCcwIcon,{size:16})})]}):null,jsxRuntime.jsx("div",{className:f("flex-1 origin-center transition-transform duration-150 ease-out",s?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:$,ref:i,role:"application",style:{transform:`translate(${p.x}px, ${p.y}px) scale(${d})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})};var Le=({chart:e,className:t,config:n,fullscreen:o=false,showControls:a=true})=>{let[r,c]=react.useState(null),[s,l]=react.useState(false),[i,d]=react.useState(""),[m,p]=react.useState(""),[g,u]=react.useState(0),{mermaid:b}=react.useContext(P),y=b==null?void 0:b.errorComponent,{shouldRender:k,containerRef:T}=ve({immediate:o});if(react.useEffect(()=>{if(!k)return;(async()=>{try{c(null),l(!0);let R=await Z(n),S=e.split("").reduce(($,B)=>($<<5)-$+B.charCodeAt(0)|0,0),E=`mermaid-${Math.abs(S)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:I}=await R.render(E,e);d(I),p(I);}catch(R){if(!(m||i)){let S=R instanceof Error?R.message:"Failed to render Mermaid chart";c(S);}}finally{l(false);}})();},[e,n,g,k]),!(k||i||m))return jsxRuntime.jsx("div",{className:f("my-4 min-h-[200px]",t),ref:T});if(s&&!i&&!m)return jsxRuntime.jsx("div",{className:f("my-4 flex justify-center p-4",t),ref:T,children:jsxRuntime.jsxs("div",{className:"flex items-center space-x-2 text-muted-foreground",children:[jsxRuntime.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-current border-b-2"}),jsxRuntime.jsx("span",{className:"text-sm",children:"Loading diagram..."})]})});if(r&&!i&&!m){let v=()=>u(R=>R+1);return y?jsxRuntime.jsx("div",{ref:T,children:jsxRuntime.jsx(y,{chart:e,error:r,retry:v})}):jsxRuntime.jsxs("div",{className:f("rounded-lg border border-red-200 bg-red-50 p-4",t),ref:T,children:[jsxRuntime.jsxs("p",{className:"font-mono text-red-700 text-sm",children:["Mermaid Error: ",r]}),jsxRuntime.jsxs("details",{className:"mt-2",children:[jsxRuntime.jsx("summary",{className:"cursor-pointer text-red-600 text-xs",children:"Show Code"}),jsxRuntime.jsx("pre",{className:"mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs",children:e})]})]})}let M=i||m;return jsxRuntime.jsx("div",{className:"size-full",ref:T,children:jsxRuntime.jsx(Ot,{className:f(o?"size-full overflow-hidden":"my-4 overflow-hidden",t),fullscreen:o,maxZoom:3,minZoom:.5,showControls:a,zoomStep:.1,children:jsxRuntime.jsx("div",{"aria-label":"Mermaid chart",className:f("flex justify-center",o?"size-full items-center":null),dangerouslySetInnerHTML:{__html:M},role:"img"})})})}; exports.a=f;exports.b=Wt;exports.c=Le;exports.d=Et;exports.e=sn;exports.f=Ct;exports.g=we;exports.h=xn;exports.i=vn;exports.j=P;exports.k=Lt;exports.l=Ln;