import{A as e,B as t,C as n,Ct as r,Q as i,R as a,St as o,T as s,U as c,_ as l,b as u,bt as d,dt as f,g as p,v as m,y as h,yt as g,z as _}from"../modules/shiki-CRDHBXw7.js";import{tt as v}from"../useNav-0H1CZeft.js";import{u as y}from"../modules/vue-jGGq3ahv.js";import{a as b,l as x,n as S}from"./context-Dpnqq1ol.js";import{d as C,u as w}from"../index-BRVUm3_6.js";import{a as T,i as E}from"../modules/unplugin-icons-BOSF4mXp.js";var D=s({__name:`TitleIcon`,props:{title:{}},setup(e){let n={pnpm:`i-vscode-icons:file-type-light-pnpm`,npm:`i-vscode-icons:file-type-npm`,yarn:`i-vscode-icons:file-type-yarn`,bun:`i-vscode-icons:file-type-bun`,deno:`i-vscode-icons:file-type-deno`,vue:`i-vscode-icons:file-type-vue`,svelte:`i-vscode-icons:file-type-svelte`,angular:`i-vscode-icons:file-type-angular`,react:`i-vscode-icons:file-type-reactjs`,next:`i-vscode-icons:file-type-light-next`,nuxt:`i-vscode-icons:file-type-nuxt`,solid:`logos:solidjs-icon`,astro:`i-vscode-icons:file-type-light-astro`,rollup:`i-vscode-icons:file-type-rollup`,webpack:`i-vscode-icons:file-type-webpack`,vite:`i-vscode-icons:file-type-vite`,esbuild:`i-vscode-icons:file-type-esbuild`,"package.json":`i-vscode-icons:file-type-node`,"tsconfig.json":`i-vscode-icons:file-type-tsconfig`,".npmrc":`i-vscode-icons:file-type-npm`,".editorconfig":`i-vscode-icons:file-type-editorconfig`,".eslintrc":`i-vscode-icons:file-type-eslint`,".eslintignore":`i-vscode-icons:file-type-eslint`,"eslint.config":`i-vscode-icons:file-type-eslint`,".gitignore":`i-vscode-icons:file-type-git`,".gitattributes":`i-vscode-icons:file-type-git`,".env":`i-vscode-icons:file-type-dotenv`,".env.example":`i-vscode-icons:file-type-dotenv`,".vscode":`i-vscode-icons:file-type-vscode`,"tailwind.config":`vscode-icons:file-type-tailwind`,"uno.config":`i-vscode-icons:file-type-unocss`,"unocss.config":`i-vscode-icons:file-type-unocss`,".oxlintrc":`i-vscode-icons:file-type-oxlint`,"vue.config":`i-vscode-icons:file-type-vueconfig`,".mts":`i-vscode-icons:file-type-typescript`,".cts":`i-vscode-icons:file-type-typescript`,".ts":`i-vscode-icons:file-type-typescript`,".tsx":`i-vscode-icons:file-type-typescript`,".mjs":`i-vscode-icons:file-type-js`,".cjs":`i-vscode-icons:file-type-js`,".json":`i-vscode-icons:file-type-json`,".js":`i-vscode-icons:file-type-js`,".jsx":`i-vscode-icons:file-type-js`,".md":`i-vscode-icons:file-type-markdown`,".py":`i-vscode-icons:file-type-python`,".ico":`i-vscode-icons:file-type-favicon`,".html":`i-vscode-icons:file-type-html`,".css":`i-vscode-icons:file-type-css`,".scss":`i-vscode-icons:file-type-scss`,".yml":`i-vscode-icons:file-type-light-yaml`,".yaml":`i-vscode-icons:file-type-light-yaml`,".php":`i-vscode-icons:file-type-php`,".svg":`i-vscode-icons:file-type-svg`};function r(e){let t=e.match(/~([^~]+)~/g);if(t&&t.length>0)return t[0].slice(1,-1);let r=Object.keys(n).sort((e,t)=>t.length-e.length);for(let t of r)if(e.toLowerCase().includes(t.toLowerCase()))return n[t];return``}return(n,i)=>r(e.title)?(t(),u(`div`,{key:0,class:d([`w-3.5 h-3.5 relative`,r(e.title)])},null,2)):h(`v-if`,!0)}}),O=[`data-title`],k={key:0,class:`slidev-code-block-title`},A={class:`leading-1em`},j=[`title`],M=s({__name:`CodeBlockWrapper`,props:{ranges:{type:Array,default:()=>[]},finally:{type:[String,Number],default:`last`},startLine:{type:Number,default:1},lines:{type:Boolean,default:v.lineNumbers},at:{type:[String,Number],default:`+1`},maxHeight:{type:String,default:void 0},title:{type:String,default:``}},setup(s){let M=s,{$frontmatter:N,$clicksContext:P}=S(),F=p(()=>N?.codeCopy??v.codeCopy),I=f(),L=w();_(()=>{P.unregister(L)}),i(()=>{I.value?.classList.toggle(`slidev-code-line-numbers`,M.lines)}),a(()=>{if(!P||!M.ranges?.length)return;let e=P.calculateSince(M.at,M.ranges.length-1);P.register(L,e);let t=p(()=>e?Math.max(0,P.current-e.start+1):x),n=p(()=>M.finally===`last`?M.ranges.at(-1):M.finally.toString());i(()=>{if(!I.value)return;let e=M.ranges[t.value]??n.value,r=e===`hide`;I.value.classList.toggle(b,r),r&&(e=M.ranges[t.value+1]??n.value);let i=I.value.querySelector(`.shiki`),a=Array.from(i.querySelectorAll(`code > .line`)),o=a.length;if(C(e,o,M.startLine,e=>[a[e]]),M.maxHeight){let e=Array.from(i.querySelectorAll(`.line.highlighted`));e.reduce((e,t)=>t.offsetHeight+e,0)>I.value.offsetHeight?e[0].scrollIntoView({behavior:`smooth`,block:`start`}):e.length>0&&e[Math.round((e.length-1)/2)].scrollIntoView({behavior:`smooth`,block:`center`})}})});let{copied:R,copy:z}=y();function B(){let e=I.value?.querySelector(`.slidev-code`)?.textContent;e&&z(e)}let V=e(`activeTitle`,null),H=p(()=>V===null&&M.title);return(e,i)=>{let a=E,f=T;return t(),u(`div`,{ref_key:`el`,ref:I,class:d([`slidev-code-wrapper relative group`,{"slidev-code-line-numbers":M.lines,active:g(V)===s.title}]),style:o({"max-height":M.maxHeight,"overflow-y":M.maxHeight?`scroll`:void 0,"--start":M.startLine}),"data-title":s.title},[H.value?(t(),u(`div`,k,[n(D,{title:s.title},null,8,[`title`]),l(`div`,A,r(s.title.replace(/~([^~]+)~/g,``).trim()),1)])):h(`v-if`,!0),c(e.$slots,`default`),F.value?(t(),u(`button`,{key:1,class:d([`slidev-code-copy absolute right-0 transition opacity-0 group-hover:opacity-20 hover:!opacity-100`,H.value?`top-10`:`top-0`]),title:g(R)?`Copied`:`Copy`,onClick:i[0]||=e=>B()},[g(R)?(t(),m(a,{key:0,class:`p-2 w-8 h-8`})):(t(),m(f,{key:1,class:`p-2 w-8 h-8`}))],10,j)):h(`v-if`,!0)],14,O)}}});export{M as t};