"use client"; 'use strict';var chunk54HTL4UZ_cjs=require('./chunk-54HTL4UZ.cjs'),react=require('react'),jsxRuntime=require('react/jsx-runtime'),shiki=require('shiki'),javascript=require('shiki/engine/javascript');var M=chunk54HTL4UZ_cjs.a("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),x=react.memo(({children:t,result:e,language:n,className:r,...s})=>{let o=react.useMemo(()=>({backgroundColor:e.bg,color:e.fg}),[e.bg,e.fg]);return jsxRuntime.jsx("pre",{className:chunk54HTL4UZ_cjs.a(r,"p-4 text-sm dark:bg-(--shiki-dark-bg)!"),"data-language":n,"data-streamdown":"code-block-body",style:o,...s,children:jsxRuntime.jsx("code",{className:"[counter-increment:line_0] [counter-reset:line]",children:e.tokens.map((a,c)=>jsxRuntime.jsx("span",{className:M,children:a.map((i,g)=>jsxRuntime.jsx("span",{className:"dark:bg-(--shiki-dark-bg)! dark:text-(--shiki-dark)!",style:{color:i.color,backgroundColor:i.bgColor,...i.htmlStyle},...i.htmlAttrs,children:i.content},g))},c))})})},(t,e)=>t.result===e.result&&t.language===e.language&&t.className===e.className);var N=({className:t,language:e,style:n,...r})=>jsxRuntime.jsx("div",{className:chunk54HTL4UZ_cjs.a("my-4 w-full overflow-hidden rounded-xl border border-border",t),"data-language":e,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...n},...r});var H=({language:t,children:e})=>jsxRuntime.jsxs("div",{className:"flex items-center justify-between bg-muted/80 p-3 text-muted-foreground text-xs","data-language":t,"data-streamdown":"code-block-header",children:[jsxRuntime.jsx("span",{className:"ml-1 font-mono lowercase",children:t}),jsxRuntime.jsx("div",{className:"flex items-center gap-2",children:e})]});var I=chunk54HTL4UZ_cjs.f.dependencies.shiki.replace(/^\^/,""),D=`/cdn/shiki/${I}/langs`,F=5e3,h=new Map,P=new Set,K=/JSON\.parse\(("(?:[^"\\]|\\.)*")\)/;async function $(t,e,n=F){if(e===null)return null;let r=e!=null?e:D,s=`${r}/${t}`;if(h.has(s))return h.get(s);if(P.has(s))return null;try{let o=`${r}/${t}.mjs`,a=new AbortController,c=setTimeout(()=>a.abort(),n),i=await fetch(o,{signal:a.signal});if(clearTimeout(c),!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);let g=await i.text();try{let l=g.match(K);if(!l)throw new Error("Could not find JSON.parse() in CDN response");let u=JSON.parse(l[1]),y=[JSON.parse(u)];return h.set(s,y),y}catch(l){throw new Error(`Failed to parse language grammar: ${l instanceof Error?l.message:"Unknown error"}`)}}catch(o){P.add(s);let a=o instanceof Error?o.message:"Unknown error";return console.warn(`[Streamdown] Failed to load language "${t}" from CDN: ${a}`),null}}var U=javascript.createJavaScriptRegexEngine({forgiving:true}),f=new Map,k=new Map,d=new Map,j=(t,e)=>`${t}-${e[0]}-${e[1]}`,G=(t,e,n)=>{let r=t.slice(0,100),s=t.length>100?t.slice(-100):"";return `${e}:${n[0]}:${n[1]}:${t.length}:${r}:${s}`};async function V(t,e){if(chunk54HTL4UZ_cjs.e(t))return chunk54HTL4UZ_cjs.d[t];let n=await $(t,e);return n||console.warn(`[Streamdown] Language "${t}" not found in bundled languages or CDN. Falling back to plain text.`),n}var z=(t,e,n)=>{let r=j(t,e);if(f.has(r))return f.get(r);let s=(async()=>{let o=await V(t,n);return await shiki.createHighlighter({themes:e,langs:o?[o]:["text"],engine:U})})();return f.set(r,s),s},b=({code:t,language:e,shikiTheme:n,cdnUrl:r,callback:s})=>{let o=G(t,e,n);return k.has(o)?k.get(o):(s&&(d.has(o)||d.set(o,new Set),d.get(o).add(s)),z(e,n,r).then(a=>{let i=a.getLoadedLanguages().includes(e)?e:"text",g=a.codeToTokens(t,{lang:i,themes:{light:n[0],dark:n[1]}});k.set(o,g);let l=d.get(o);if(l){for(let u of l)u(g);d.delete(o);}}).catch(a=>{console.error("Failed to highlight code:",a),d.delete(o);}),null)};var we=({code:t,language:e,className:n,children:r,...s})=>{let{shikiTheme:o,cdnUrl:a}=react.useContext(chunk54HTL4UZ_cjs.j),c=react.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:t.split(` `).map(l=>[{content:l,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[t]),[i,g]=react.useState(c);return react.useEffect(()=>{let l=b({code:t,language:e,shikiTheme:o,cdnUrl:a});if(l){g(l);return}b({code:t,language:e,shikiTheme:o,cdnUrl:a,callback:u=>{g(u);}});},[t,e,o,a]),jsxRuntime.jsx(chunk54HTL4UZ_cjs.b.Provider,{value:{code:t},children:jsxRuntime.jsxs(N,{language:e,children:[jsxRuntime.jsx(H,{language:e,children:r}),jsxRuntime.jsx(x,{className:n,language:e,result:i,...s})]})})};exports.CodeBlock=we;