You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

vue-hi-code

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-hi-code - npm Package Compare versions

Comparing version
1.5.1
to
1.5.2
+1
-0
dist/README.md

@@ -52,2 +52,3 @@ # vue-hi-code

| colorVariableKeyword | string | no | "#559AD3" |
| colorSpecial | string | no | "#559AD3" |
| content | string | yes | |

@@ -54,0 +55,0 @@ | copyIconColor | string | no | "#CCCCCC" |

+1
-1

@@ -1,1 +0,1 @@

.code-wrapper[data-v-78fba7e8]{position:relative;display:block}.code-copy[data-v-78fba7e8]{align-items:center;background:transparent;border-radius:.5rem;border:none;cursor:pointer;display:flex;justify-content:center;padding:.3rem;position:absolute;right:.5rem;top:.5rem}.code-copy[data-v-78fba7e8]:hover{background:#ffffff10;box-shadow:0 6px 12px #1a1a1a80}.code-icon[data-v-78fba7e8]{position:absolute;top:.5rem;left:.5rem}.code-container[data-v-78fba7e8]{background-color:var(--background-color);border-radius:var(--border-radius);color:var(--base-text-color);font-family:var(--font-family);font-size:var(--font-size);overflow-x:auto;overflow-y:hidden;overflow:auto;padding:var(--padding);white-space:pre-wrap;word-wrap:break-word;line-height:var(--line-height)}.code-container-icon-notitle[data-v-78fba7e8]{padding-top:3rem}.error-wrapper[data-v-78fba7e8]{background:var(--color-error);border-radius:var(--border-radius);display:block;height:100%;left:0;opacity:.2;pointer-events:none;position:absolute;top:0;width:100%}[data-v-78fba7e8] .code-title{border-bottom:1px solid grey;color:var(--color-title);font-family:var(--title-font-family);font-size:var(--title-font-size);padding:.5rem 0 1rem}[data-v-78fba7e8] .code-title-with-icon{border-bottom:1px solid grey;color:var(--color-title);font-family:var(--title-font-family);font-size:var(--title-font-size);padding:.5rem 0 1rem 2rem}[data-v-78fba7e8] .code-keyword{color:var(--color-keywords)}[data-v-78fba7e8] .code-variable-keyword{color:var(--color-variable-keyword)}[data-v-78fba7e8] .code-function{color:var(--color-function)}[data-v-78fba7e8] .code-number{color:var(--color-number)}[data-v-78fba7e8] .code-string{color:var(--color-string)}[data-v-78fba7e8] .code-string *{color:var(--color-string)!important}[data-v-78fba7e8] .code-parens{color:var(--color-parenthesis)}[data-v-78fba7e8] .code-curly-bracket{color:var(--color-curly-bracket)}[data-v-78fba7e8] .code-punctuation{color:var(--color-punctuation)}[data-v-78fba7e8] .code-brackets{color:var(--color-brackets)}[data-v-78fba7e8] .code-js-reserved{color:var(--color-js-reserved)}[data-v-78fba7e8] .code-comment{color:var(--color-comment);font-style:italic}[data-v-78fba7e8] .code-comment *{color:var(--color-comment)!important}[data-v-78fba7e8] .code-tag-name{color:var(--color-html-tag)}[data-v-78fba7e8] .selector{color:var(--color-css-selector)}[data-v-78fba7e8] .code-line-number{color:var(--color-line-number);display:inline-block;font-size:.8rem;font-style:normal;margin-right:.5em;text-align:right;width:3ch}
.code-wrapper[data-v-72563edf]{position:relative;display:block}.code-copy[data-v-72563edf]{align-items:center;background:transparent;border-radius:.5rem;border:none;cursor:pointer;display:flex;justify-content:center;padding:.3rem;position:absolute;right:.5rem;top:.5rem}.code-copy[data-v-72563edf]:hover{background:#ffffff10;box-shadow:0 6px 12px #1a1a1a80}.code-icon[data-v-72563edf]{position:absolute;top:.5rem;left:.5rem}.code-container[data-v-72563edf]{background-color:var(--background-color);border-radius:var(--border-radius);color:var(--base-text-color);font-family:var(--font-family);font-size:var(--font-size);overflow-x:auto;overflow-y:hidden;overflow:auto;padding:var(--padding);white-space:pre-wrap;word-wrap:break-word;line-height:var(--line-height)}.code-container-icon-notitle[data-v-72563edf]{padding-top:3rem}.error-wrapper[data-v-72563edf]{background:var(--color-error);border-radius:var(--border-radius);display:block;height:100%;left:0;opacity:.2;pointer-events:none;position:absolute;top:0;width:100%}[data-v-72563edf] .code-title{border-bottom:1px solid grey;color:var(--color-title);font-family:var(--title-font-family);font-size:var(--title-font-size);padding:.5rem 0 1rem}[data-v-72563edf] .code-title-with-icon{border-bottom:1px solid grey;color:var(--color-title);font-family:var(--title-font-family);font-size:var(--title-font-size);padding:.5rem 0 1rem 2rem}[data-v-72563edf] .code-keyword{color:var(--color-keywords)}[data-v-72563edf] .code-variable-keyword{color:var(--color-variable-keyword)}[data-v-72563edf] .code-function{color:var(--color-function)}[data-v-72563edf] .code-number{color:var(--color-number)}[data-v-72563edf] .code-special{color:var(--color-special)}[data-v-72563edf] .code-string{color:var(--color-string)}[data-v-72563edf] .code-string *{color:var(--color-string)!important}[data-v-72563edf] .code-parens{color:var(--color-parenthesis)}[data-v-72563edf] .code-curly-bracket{color:var(--color-curly-bracket)}[data-v-72563edf] .code-punctuation{color:var(--color-punctuation)}[data-v-72563edf] .code-brackets{color:var(--color-brackets)}[data-v-72563edf] .code-js-reserved{color:var(--color-js-reserved)}[data-v-72563edf] .code-comment{color:var(--color-comment);font-style:italic}[data-v-72563edf] .code-comment *{color:var(--color-comment)!important}[data-v-72563edf] .code-tag-name{color:var(--color-html-tag)}[data-v-72563edf] .selector{color:var(--color-css-selector)}[data-v-72563edf] .code-line-number{color:var(--color-line-number);display:inline-block;font-size:.8rem;font-style:normal;margin-right:.5em;text-align:right;width:3ch}

@@ -1,6 +0,6 @@

"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),N=["height","width"],x=["stroke","stroke-width"],$={__name:"IconCopy",props:{size:{type:Number,default:24},stroke:{type:String,default:"#CCCCCC"},strokeWidth:{type:Number,default:1.5}},setup(e){return(g,o)=>(t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 20 20",height:e.size,width:e.size,style:{background:"transparent"}},[t.createElementVNode("path",{stroke:e.stroke,"stroke-width":e.strokeWidth,fill:"none",d:"M 18 16 C 18 17 17 18 16 18 L 8 18 C 7 18 6 17 6 16 L 6 8 C 6 7 7 6 8 6 L 16 6 C 17 6 18 7 18 8 L 18 16 M 6 14 L 4 14 C 3 14 2 13 2 12 L 2 4 C 2 3 3 2 4 2 L 12 2 C 13 2 14 3 14 4 L 14 6","stroke-linecap":"round","stroke-linejoin":"round"},null,8,x)],8,N))}},B={key:0,width:"24px",height:"24px",viewBox:"0 0 256 256",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMinYMin meet",fill:"#000000"},M={key:1,xmlns:"http://www.w3.org/2000/svg",fill:"none",width:"26px",height:"26px",viewBox:"0 0 512 512"},V={key:2,viewBox:"0 0 362.73401 511.99998",height:"32px",width:"32px"},z={key:3,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:"32px",width:"32px"},R={key:4,xmlns:"http://www.w3.org/2000/svg",height:"32px",width:"32px",style:{fill:"transparent",overflow:"hidden"},viewBox:"0 0 1024 1024",version:"1.1"},P={__name:"IconLang",props:{language:{type:String}},setup(e){return(g,o)=>e.language==="javascript"?(t.openBlock(),t.createElementBlock("svg",B,o[0]||(o[0]=[t.createElementVNode("title",null,"javascript Logo",-1),t.createElementVNode("path",{d:"M0 0h256v256H0V0z",fill:"#F7DF1E"},null,-1),t.createElementVNode("path",{d:"M67.312 213.932l19.59-11.856c3.78 6.701 7.218 12.371 15.465 12.371 7.905 0 12.89-3.092 12.89-15.12v-81.798h24.057v82.138c0 24.917-14.606 36.259-35.916 36.259-19.245 0-30.416-9.967-36.087-21.996M152.381 211.354l19.588-11.341c5.157 8.421 11.859 14.607 23.715 14.607 9.969 0 16.325-4.984 16.325-11.858 0-8.248-6.53-11.17-17.528-15.98l-6.013-2.58c-17.357-7.387-28.87-16.667-28.87-36.257 0-18.044 13.747-31.792 35.228-31.792 15.294 0 26.292 5.328 34.196 19.247L210.29 147.43c-4.125-7.389-8.591-10.31-15.465-10.31-7.046 0-11.514 4.468-11.514 10.31 0 7.217 4.468 10.14 14.778 14.608l6.014 2.577c20.45 8.765 31.963 17.7 31.963 37.804 0 21.654-17.012 33.51-39.867 33.51-22.339 0-36.774-10.654-43.819-24.574"},null,-1)]))):e.language==="typescript"?(t.openBlock(),t.createElementBlock("svg",M,o[1]||(o[1]=[t.createElementVNode("title",null,"Typescript Logo",-1),t.createElementVNode("rect",{fill:"#3178c6",height:"512",rx:"50",width:"512"},null,-1),t.createElementVNode("rect",{fill:"#3178c6",height:"512",rx:"50",width:"512"},null,-1),t.createElementVNode("path",{"clip-rule":"evenodd",d:"m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z",fill:"#fff","fill-rule":"evenodd"},null,-1)]))):e.language==="css"?(t.openBlock(),t.createElementBlock("svg",V,o[2]||(o[2]=[t.createStaticVNode('<title>CSS3 Logo</title><g transform="translate(-193.633,-276.3622)"><g transform="translate(119,276.3622)"><polygon id="polygon2989" points="437.367,100.62 404.321,470.819 255.778,512 107.644,470.877 74.633,100.62 " style="fill:#264de4;"></polygon><polygon id="polygon2991" points="376.03,447.246 404.27,130.894 256,130.894 256,480.523 " style="fill:#2965f1;"></polygon><polygon id="polygon2993" points="150.31,268.217 154.38,313.627 256,313.627 256,268.217 " style="fill:#ebebeb;"></polygon><polygon id="polygon2995" points="256,176.305 255.843,176.305 142.132,176.305 146.26,221.716 256,221.716 " style="fill:#ebebeb;"></polygon><polygon id="polygon2997" points="256,433.399 256,386.153 255.801,386.206 205.227,372.55 201.994,336.333 177.419,336.333 156.409,336.333 162.771,407.634 255.791,433.457 " style="fill:#ebebeb;"></polygon><path id="path2999" d="m 160,0 55,0 0,23 -32,0 0,23 32,0 0,23 -55,0 z" fill="#8A8A8A"></path><path id="path3001" d="m 226,0 55,0 0,20 -32,0 0,4 32,0 0,46 -55,0 0,-21 32,0 0,-4 -32,0 z" fill="#8A8A8A"></path><path id="path3003" d="m 292,0 55,0 0,20 -32,0 0,4 32,0 0,46 -55,0 0,-21 32,0 0,-4 -32,0 z" fill="#8A8A8A"></path><polygon id="polygon3005" points="311.761,313.627 306.49,372.521 255.843,386.191 255.843,433.435 348.937,407.634 349.62,399.962 360.291,280.411 361.399,268.217 369.597,176.305 255.843,176.305 255.843,221.716 319.831,221.716 315.699,268.217 255.843,268.217 255.843,313.627 " style="fill:#ffffff;"></polygon></g></g>',2)]))):e.language==="html"?(t.openBlock(),t.createElementBlock("svg",z,o[3]||(o[3]=[t.createStaticVNode('<title>HTML5 Logo</title><path d="M108.4 0h23v22.8h21.2V0h23v69h-23V46h-21v23h-23.2M206 23h-20.3V0h63.7v23H229v46h-23M259.5 0h24.1l14.8 24.3L313.2 0h24.1v69h-23V34.8l-16.1 24.8l-16.1-24.8v34.2h-22.6M348.7 0h23v46.2h32.6V69h-55.6" fill="#8A8A8A"></path><path fill="#e44d26" d="M107.6 471l-33-370.4h362.8l-33 370.2L255.7 512"></path><path fill="#f16529" d="M256 480.5V131H404.3L376 447"></path><path fill="#ebebeb" d="M142 176.3h114v45.4h-64.2l4.2 46.5h60v45.3H154.4M156.4 336.3H202l3.2 36.3 50.8 13.6v47.4l-93.2-26"></path><path fill="#fff" d="M369.6 176.3H255.8v45.4h109.6M361.3 268.2H255.8v45.4h56l-5.3 59-50.7 13.6v47.2l93-25.8"></path>',6)]))):e.language==="error"?(t.openBlock(),t.createElementBlock("svg",R,o[4]||(o[4]=[t.createElementVNode("path",{d:"M512 853.333333a341.333333 341.333333 0 1 1 341.333333-341.333333 341.333333 341.333333 0 0 1-341.333333 341.333333z m0-768a426.666667 426.666667 0 1 0 426.666667 426.666667A426.666667 426.666667 0 0 0 512 85.333333z m110.506667 256L512 451.84 401.493333 341.333333 341.333333 401.493333 451.84 512 341.333333 622.506667 401.493333 682.666667 512 572.16 622.506667 682.666667 682.666667 622.506667 572.16 512 682.666667 401.493333z",fill:"#E46962"},null,-1)]))):t.createCommentVNode("",!0)}},T=(e,g)=>{const o=e.__vccOpts||e;for(const[h,y]of g)o[h]=y;return o},H={class:"code-wrapper"},D={key:0,class:"code-icon"},I=["aria-label"],O=["innerHTML"],F={__name:"vue-hi-code",props:{content:{type:[String,Number],required:!0},language:{type:String,required:!0},title:{type:String,default:""},withLineNumbers:{type:Boolean,default:!1},colorLineNumber:{type:String,default:"#8A8A8A"},withCopy:{type:Boolean,default:!0},copyIconColor:{type:String,default:"#CCCCCC"},copyIconSize:{type:Number,default:20},copyIconStrokeWidth:{type:Number,default:1.5},borderRadius:{type:String,default:"0.3rem"},padding:{type:String,default:"1rem"},lineHeight:{type:String,default:"1.4rem"},fontFamily:{type:String,default:"'Fira Code', monospace"},fontSize:{type:String,default:"1rem"},titleFontSize:{type:String,default:"1rem"},titleFontFamily:{type:String,default:"Verdana, Geneva, Tahoma, sans-serif"},colorTitle:{type:String,default:"#E1E5E8"},backgroundColor:{type:String,default:"#2A2A2A"},baseTextColor:{type:String,default:"#CCCCCC"},colorKeywords:{type:String,default:"#B37BAE"},colorVariableKeyword:{type:String,default:"#559AD3"},colorFunction:{type:String,default:"#DCDCAA"},colorNumber:{type:String,default:"#AEC6A1"},colorString:{type:String,default:"#CD9077"},colorParenthesis:{type:String,default:"#8A8A8A"},colorCurlyBrackets:{type:String,default:"#8A8A8A"},colorPunctuation:{type:String,default:"#E1E5E8"},colorBrackets:{type:String,default:"#559AD3"},colorJsReserved:{type:String,default:"rgb(78, 201, 176)"},colorComment:{type:String,default:"#8A8A8A"},colorHtmlTag:{type:String,default:"#559AD3"},colorError:{type:String,default:"#E46962"},colorCssSelector:{type:String,default:"#D7BA7D"},showIcon:{type:Boolean,default:!1}},emits:["copy"],setup(e,{emit:g}){const o=e,h=g,y=t.computed(()=>k(o.content,o.language));function k(l,i){if(i==="html"){const d=/(<\/?)([a-zA-Z0-9-]+)([^<]*?)(\/?>)/g;l=l.replace(d,(r,p,m,f,b)=>{const v=`<span class="code-tag-name">${m}</span>`;return`&lt;${p==="</"?"/":""}`+v+f+`${b==="/>"?" /":""}&gt;`}),l=l.replace(/<!--[\s\S]*?-->/g,r=>`<span class="code-comment">${r.replace(/</g,"&lt;").replace(/>/g,"&gt;")}</span>`)}else if(i==="css")l=l.replace(/\/\*[\s\S]*?\*\//g,'<span class="code-comment">$&</span>').replace(new RegExp("(?<=\\}[\\s]*)\\/*([\\s\\S]*?)(?=\\{)","g"),(d,r)=>`
<span class="selector">${r.trim()} </span>`).replace(/^([^\{]+)\s*(?=\{)/g,(d,r)=>`<span class="selector">${r.trim()} </span>`).replace(/<\/span>\s*(?=\w)/g,`</span>
`);else if(["javascript","typescript"].includes(i)){l=String(l).replace(/</g,"‹").replace(/>/g,"›");const d=["const","let","var","function","return","if","else","for","while","switch","case","break","continue","try","catch","throw","class","extends","import","export","default","new","async","await"],r=["type","interface","enum","implements","public","private","protected","readonly","abstract","namespace","declare","module","from","as","keyof","infer","instanceof","typeof","never","unknown","any","void","boolean","number","string","symbol","bigint"],p=Array.from(new Set([...d,...i==="typescript"?r:[]])),m=new RegExp(`\\b(?:${p.join("|")})\\b(?!\\s*[:?])`,"g"),f=/\b([a-zA-Z_]\w*)\s*(?=\()/g,b=/(["'`])(?:(?=(\\?))\2.)*?\1/g,v=/(\/\*[\s\S]*?\*\/|\/\/.*)/g,C=new RegExp("(?<![\"'`])\\b(?:const|let|var)\\b\\s+([A-Za-z_$][\\w$]*)(?![\"'`])(?=(?:[^\"'`]*[\"'`][^\"'`]*[\"'`])*[^\"'`]*$)","g"),S=/\b\d+(\.\d+)?\b/g,n={keys:[],vars:[],strs:[],comms:[],nums:[]};let s=l.replace(C,(a,c)=>(n.keys.push(a.split(" ")[0]),n.vars.push(c),`__KEYWORD_PLACEHOLDER_${n.keys.length-1}__ ${c}`)).replace(b,a=>(n.strs.push(a),`__STRING_PLACEHOLDER_${n.strs.length-1}__`)).replace(v,a=>(n.comms.push(a),`__COMMENT_PLACEHOLDER_${n.comms.length-1}__`)).replace(S,a=>(n.nums.push(a),`__NUMBER_PLACEHOLDER_${n.nums.length-1}__`));s=s.replace(m,'<span class="code-keyword">$&</span>').replace(f,'<span class="code-function">$1</span>'),s=s.replace(/__COMMENT_PLACEHOLDER_(\d+)__/g,(a,c)=>`<span class="code-comment">${n.comms[c]}</span>`).replace(/__STRING_PLACEHOLDER_(\d+)__/g,(a,c)=>`<span class="code-string">${n.strs[c]}</span>`).replace(/__KEYWORD_PLACEHOLDER_(\d+)__/g,(a,c)=>`<span class="code-variable-keyword">${n.keys[c]}</span>`).replace(/__NUMBER_PLACEHOLDER_(\d+)__/g,(a,c)=>`<span class="code-number">${n.nums[c]}</span>`).replace(/\(/g,'<span class="code-parens">(</span>').replace(/\)/g,'<span class="code-parens">)</span>').replace(/\{/g,'<span class="code-curly-bracket">{</span>').replace(/\}/g,'<span class="code-curly-bracket">}</span>').replace(/\[/g,'<span class="code-brackets">[</span>').replace(/\]/g,'<span class="code-brackets">]</span>').replace(/;/g,'<span class="code-punctuation">;</span>').replace(/\./g,'<span class="code-punctuation">.</span>').replace(/,/g,'<span class="code-punctuation">,</span>'),s=s.replace(/‹/g,"<span>&lt;</span>").replace(/›/g,"<span>&gt;</span>");const E=["Array","String","RegExp","Date","Promise","Map","Set","WeakMap","WeakSet","Symbol","Math","JSON","Reflect","Proxy"],A=["Partial","Required","Readonly","Record","Pick","Omit","Exclude","Extract","NonNullable","Parameters","ReturnType","InstanceType","ConstructorParameters","ThisType"],L=new RegExp(`\\b(?:${[...E,...A].join("|")})\\b`,"g");s=s.replace(L,'<span class="code-js-reserved">$&</span>'),l=s}else i==="error"&&(l=`<div class="code-error">${l}</div>`);let u=l;return o.title&&(u=`<div class="code-title ${o.showIcon?"code-title-with-icon":""}">${o.title}</div>
${l}`),o.withLineNumbers&&(u=u.split(`
`).map((r,p)=>o.title&&p===0?r:`<span class="code-line-number">${p+(o.title?0:1)}</span> ${r}`).join(`
`)),{code:l,codeWithTitle:u}}async function w(){try{await navigator.clipboard.writeText(o.content),h("copy",o.content)}catch(l){console.error("Failed to copy text: ",l)}}return(l,i)=>(t.openBlock(),t.createElementBlock("code",H,[e.showIcon?(t.openBlock(),t.createElementBlock("div",D,[t.createVNode(P,{language:e.language},null,8,["language"])])):t.createCommentVNode("",!0),e.withCopy?(t.openBlock(),t.createElementBlock("button",{key:1,class:"code-copy",onClick:w,"aria-label":"Copy code: "+o.title},[t.createVNode($,{stroke:e.copyIconColor,size:e.copyIconSize,"stroke-width":e.copyIconStrokeWidth},null,8,["stroke","size","stroke-width"])],8,I)):t.createCommentVNode("",!0),t.createElementVNode("pre",{innerHTML:y.value.codeWithTitle,class:t.normalizeClass(`code-container ${e.showIcon&&!e.title?"code-container-icon-notitle":""}`),ref:"codeContent",style:t.normalizeStyle({"--background-color":e.backgroundColor,"--base-text-color":e.baseTextColor,"--border-radius":e.borderRadius,"--color-brackets":e.colorBrackets,"--color-comment":e.colorComment,"--color-function":e.colorFunction,"--color-html-tag":e.colorHtmlTag,"--color-keywords":e.colorKeywords,"--color-line-number":e.colorLineNumber,"--color-number":e.colorNumber,"--color-parenthesis":e.colorParenthesis,"--color-curly-bracket":e.colorCurlyBrackets,"--color-punctuation":e.colorPunctuation,"--color-string":e.colorString,"--color-title":e.colorTitle,"--color-js-reserved":e.colorJsReserved,"--color-variable-keyword":e.colorVariableKeyword,"--font-family":e.fontFamily,"--font-size":e.fontSize,"--line-height":e.lineHeight,"--padding":e.padding,"--title-font-family":e.titleFontFamily,"--title-font-size":e.titleFontSize,"--color-css-selector":e.colorCssSelector})},null,14,O),e.language==="error"?(t.openBlock(),t.createElementBlock("div",{key:2,class:"error-wrapper",style:t.normalizeStyle({"--color-error":e.colorError,"--border-radius":e.borderRadius})},null,4)):t.createCommentVNode("",!0)]))}},j=T(F,[["__scopeId","data-v-78fba7e8"]]);exports.VueHiCode=j;
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),N=["height","width"],x=["stroke","stroke-width"],B={__name:"IconCopy",props:{size:{type:Number,default:24},stroke:{type:String,default:"#CCCCCC"},strokeWidth:{type:Number,default:1.5}},setup(e){return(g,l)=>(t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 20 20",height:e.size,width:e.size,style:{background:"transparent"}},[t.createElementVNode("path",{stroke:e.stroke,"stroke-width":e.strokeWidth,fill:"none",d:"M 18 16 C 18 17 17 18 16 18 L 8 18 C 7 18 6 17 6 16 L 6 8 C 6 7 7 6 8 6 L 16 6 C 17 6 18 7 18 8 L 18 16 M 6 14 L 4 14 C 3 14 2 13 2 12 L 2 4 C 2 3 3 2 4 2 L 12 2 C 13 2 14 3 14 4 L 14 6","stroke-linecap":"round","stroke-linejoin":"round"},null,8,x)],8,N))}},P={key:0,width:"24px",height:"24px",viewBox:"0 0 256 256",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMinYMin meet",fill:"#000000"},M={key:1,xmlns:"http://www.w3.org/2000/svg",fill:"none",width:"26px",height:"26px",viewBox:"0 0 512 512"},R={key:2,viewBox:"0 0 362.73401 511.99998",height:"32px",width:"32px"},V={key:3,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:"32px",width:"32px"},z={key:4,xmlns:"http://www.w3.org/2000/svg",height:"32px",width:"32px",style:{fill:"transparent",overflow:"hidden"},viewBox:"0 0 1024 1024",version:"1.1"},H={__name:"IconLang",props:{language:{type:String}},setup(e){return(g,l)=>e.language==="javascript"?(t.openBlock(),t.createElementBlock("svg",P,l[0]||(l[0]=[t.createElementVNode("title",null,"javascript Logo",-1),t.createElementVNode("path",{d:"M0 0h256v256H0V0z",fill:"#F7DF1E"},null,-1),t.createElementVNode("path",{d:"M67.312 213.932l19.59-11.856c3.78 6.701 7.218 12.371 15.465 12.371 7.905 0 12.89-3.092 12.89-15.12v-81.798h24.057v82.138c0 24.917-14.606 36.259-35.916 36.259-19.245 0-30.416-9.967-36.087-21.996M152.381 211.354l19.588-11.341c5.157 8.421 11.859 14.607 23.715 14.607 9.969 0 16.325-4.984 16.325-11.858 0-8.248-6.53-11.17-17.528-15.98l-6.013-2.58c-17.357-7.387-28.87-16.667-28.87-36.257 0-18.044 13.747-31.792 35.228-31.792 15.294 0 26.292 5.328 34.196 19.247L210.29 147.43c-4.125-7.389-8.591-10.31-15.465-10.31-7.046 0-11.514 4.468-11.514 10.31 0 7.217 4.468 10.14 14.778 14.608l6.014 2.577c20.45 8.765 31.963 17.7 31.963 37.804 0 21.654-17.012 33.51-39.867 33.51-22.339 0-36.774-10.654-43.819-24.574"},null,-1)]))):e.language==="typescript"?(t.openBlock(),t.createElementBlock("svg",M,l[1]||(l[1]=[t.createElementVNode("title",null,"Typescript Logo",-1),t.createElementVNode("rect",{fill:"#3178c6",height:"512",rx:"50",width:"512"},null,-1),t.createElementVNode("rect",{fill:"#3178c6",height:"512",rx:"50",width:"512"},null,-1),t.createElementVNode("path",{"clip-rule":"evenodd",d:"m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z",fill:"#fff","fill-rule":"evenodd"},null,-1)]))):e.language==="css"?(t.openBlock(),t.createElementBlock("svg",R,l[2]||(l[2]=[t.createStaticVNode('<title>CSS3 Logo</title><g transform="translate(-193.633,-276.3622)"><g transform="translate(119,276.3622)"><polygon id="polygon2989" points="437.367,100.62 404.321,470.819 255.778,512 107.644,470.877 74.633,100.62 " style="fill:#264de4;"></polygon><polygon id="polygon2991" points="376.03,447.246 404.27,130.894 256,130.894 256,480.523 " style="fill:#2965f1;"></polygon><polygon id="polygon2993" points="150.31,268.217 154.38,313.627 256,313.627 256,268.217 " style="fill:#ebebeb;"></polygon><polygon id="polygon2995" points="256,176.305 255.843,176.305 142.132,176.305 146.26,221.716 256,221.716 " style="fill:#ebebeb;"></polygon><polygon id="polygon2997" points="256,433.399 256,386.153 255.801,386.206 205.227,372.55 201.994,336.333 177.419,336.333 156.409,336.333 162.771,407.634 255.791,433.457 " style="fill:#ebebeb;"></polygon><path id="path2999" d="m 160,0 55,0 0,23 -32,0 0,23 32,0 0,23 -55,0 z" fill="#8A8A8A"></path><path id="path3001" d="m 226,0 55,0 0,20 -32,0 0,4 32,0 0,46 -55,0 0,-21 32,0 0,-4 -32,0 z" fill="#8A8A8A"></path><path id="path3003" d="m 292,0 55,0 0,20 -32,0 0,4 32,0 0,46 -55,0 0,-21 32,0 0,-4 -32,0 z" fill="#8A8A8A"></path><polygon id="polygon3005" points="311.761,313.627 306.49,372.521 255.843,386.191 255.843,433.435 348.937,407.634 349.62,399.962 360.291,280.411 361.399,268.217 369.597,176.305 255.843,176.305 255.843,221.716 319.831,221.716 315.699,268.217 255.843,268.217 255.843,313.627 " style="fill:#ffffff;"></polygon></g></g>',2)]))):e.language==="html"?(t.openBlock(),t.createElementBlock("svg",V,l[3]||(l[3]=[t.createStaticVNode('<title>HTML5 Logo</title><path d="M108.4 0h23v22.8h21.2V0h23v69h-23V46h-21v23h-23.2M206 23h-20.3V0h63.7v23H229v46h-23M259.5 0h24.1l14.8 24.3L313.2 0h24.1v69h-23V34.8l-16.1 24.8l-16.1-24.8v34.2h-22.6M348.7 0h23v46.2h32.6V69h-55.6" fill="#8A8A8A"></path><path fill="#e44d26" d="M107.6 471l-33-370.4h362.8l-33 370.2L255.7 512"></path><path fill="#f16529" d="M256 480.5V131H404.3L376 447"></path><path fill="#ebebeb" d="M142 176.3h114v45.4h-64.2l4.2 46.5h60v45.3H154.4M156.4 336.3H202l3.2 36.3 50.8 13.6v47.4l-93.2-26"></path><path fill="#fff" d="M369.6 176.3H255.8v45.4h109.6M361.3 268.2H255.8v45.4h56l-5.3 59-50.7 13.6v47.2l93-25.8"></path>',6)]))):e.language==="error"?(t.openBlock(),t.createElementBlock("svg",z,l[4]||(l[4]=[t.createElementVNode("path",{d:"M512 853.333333a341.333333 341.333333 0 1 1 341.333333-341.333333 341.333333 341.333333 0 0 1-341.333333 341.333333z m0-768a426.666667 426.666667 0 1 0 426.666667 426.666667A426.666667 426.666667 0 0 0 512 85.333333z m110.506667 256L512 451.84 401.493333 341.333333 341.333333 401.493333 451.84 512 341.333333 622.506667 401.493333 682.666667 512 572.16 622.506667 682.666667 682.666667 622.506667 572.16 512 682.666667 401.493333z",fill:"#E46962"},null,-1)]))):t.createCommentVNode("",!0)}},T=(e,g)=>{const l=e.__vccOpts||e;for(const[h,y]of g)l[h]=y;return l},D={class:"code-wrapper"},_={key:0,class:"code-icon"},I=["aria-label"],O=["innerHTML"],F={__name:"vue-hi-code",props:{content:{type:[String,Number],required:!0},language:{type:String,required:!0},title:{type:String,default:""},withLineNumbers:{type:Boolean,default:!1},colorLineNumber:{type:String,default:"#8A8A8A"},withCopy:{type:Boolean,default:!0},copyIconColor:{type:String,default:"#CCCCCC"},copyIconSize:{type:Number,default:20},copyIconStrokeWidth:{type:Number,default:1.5},borderRadius:{type:String,default:"0.3rem"},padding:{type:String,default:"1rem"},lineHeight:{type:String,default:"1.4rem"},fontFamily:{type:String,default:"'Fira Code', monospace"},fontSize:{type:String,default:"1rem"},titleFontSize:{type:String,default:"1rem"},titleFontFamily:{type:String,default:"Verdana, Geneva, Tahoma, sans-serif"},colorTitle:{type:String,default:"#E1E5E8"},backgroundColor:{type:String,default:"#2A2A2A"},baseTextColor:{type:String,default:"#CCCCCC"},colorKeywords:{type:String,default:"#B37BAE"},colorVariableKeyword:{type:String,default:"#559AD3"},colorSpecial:{type:String,default:"#559AD3"},colorFunction:{type:String,default:"#DCDCAA"},colorNumber:{type:String,default:"#AEC6A1"},colorString:{type:String,default:"#CD9077"},colorParenthesis:{type:String,default:"#8A8A8A"},colorCurlyBrackets:{type:String,default:"#8A8A8A"},colorPunctuation:{type:String,default:"#E1E5E8"},colorBrackets:{type:String,default:"#559AD3"},colorJsReserved:{type:String,default:"rgb(78, 201, 176)"},colorComment:{type:String,default:"#8A8A8A"},colorHtmlTag:{type:String,default:"#559AD3"},colorError:{type:String,default:"#E46962"},colorCssSelector:{type:String,default:"#D7BA7D"},showIcon:{type:Boolean,default:!1}},emits:["copy"],setup(e,{emit:g}){const l=e,h=g,y=t.computed(()=>k(l.content,l.language));function k(o,i){if(i==="html"){const d=/(<\/?)([a-zA-Z0-9-]+)([^<]*?)(\/?>)/g;o=o.replace(d,(c,p,m,f,b)=>{const v=`<span class="code-tag-name">${m}</span>`;return`&lt;${p==="</"?"/":""}`+v+f+`${b==="/>"?" /":""}&gt;`}),o=o.replace(/<!--[\s\S]*?-->/g,c=>`<span class="code-comment">${c.replace(/</g,"&lt;").replace(/>/g,"&gt;")}</span>`)}else if(i==="css")o=o.replace(/\/\*[\s\S]*?\*\//g,'<span class="code-comment">$&</span>').replace(new RegExp("(?<=\\}[\\s]*)\\/*([\\s\\S]*?)(?=\\{)","g"),(d,c)=>`
<span class="selector">${c.trim()} </span>`).replace(/^([^\{]+)\s*(?=\{)/g,(d,c)=>`<span class="selector">${c.trim()} </span>`).replace(/<\/span>\s*(?=\w)/g,`</span>
`);else if(["javascript","typescript"].includes(i)){o=String(o).replace(/</g,"‹").replace(/>/g,"›");const d=["const","let","var","function","return","if","else","for","while","switch","case","break","continue","try","catch","throw","class","extends","import","export","default","new","async","await"],c=["type","interface","enum","implements","public","private","protected","readonly","abstract","namespace","declare","module","from","as","keyof","infer","instanceof","typeof","never","unknown","any","void","boolean","number","string","symbol","bigint"],p=Array.from(new Set([...d,...i==="typescript"?c:[]])),m=new RegExp(`\\b(?:${p.join("|")})\\b(?!\\s*[:?])`,"g"),f=/\b([a-zA-Z_]\w*)\s*(?=\()/g,b=/(["'`])(?:(?=(\\?))\2.)*?\1/g,v=/(\/\*[\s\S]*?\*\/|\/\/.*)/g,C=new RegExp("(?<![\"'`])\\b(?:const|let|var)\\b\\s+([A-Za-z_$][\\w$]*)(?![\"'`])(?=(?:[^\"'`]*[\"'`][^\"'`]*[\"'`])*[^\"'`]*$)","g"),S=/\b\d+(\.\d+)?\b/g,E=new RegExp("(?<![\\w$])(?:-?Infinity|NaN|null|undefined)(?![\\w$])","g"),n={keys:[],vars:[],strs:[],comms:[],nums:[],special:[]};let s=o.replace(C,(r,a)=>(n.keys.push(r.split(" ")[0]),n.vars.push(a),`__KEYWORD_PLACEHOLDER_${n.keys.length-1}__ ${a}`)).replace(b,r=>(n.strs.push(r),`__STRING_PLACEHOLDER_${n.strs.length-1}__`)).replace(v,r=>(n.comms.push(r),`__COMMENT_PLACEHOLDER_${n.comms.length-1}__`)).replace(S,r=>(n.nums.push(r),`__NUMBER_PLACEHOLDER_${n.nums.length-1}__`)).replace(E,r=>(n.special.push(r),`__SPECIAL_PLACEHOLDER_${n.special.length-1}__`));s=s.replace(m,'<span class="code-keyword">$&</span>').replace(f,'<span class="code-function">$1</span>'),s=s.replace(/__COMMENT_PLACEHOLDER_(\d+)__/g,(r,a)=>`<span class="code-comment">${n.comms[a]}</span>`).replace(/__STRING_PLACEHOLDER_(\d+)__/g,(r,a)=>`<span class="code-string">${n.strs[a]}</span>`).replace(/__KEYWORD_PLACEHOLDER_(\d+)__/g,(r,a)=>`<span class="code-variable-keyword">${n.keys[a]}</span>`).replace(/__NUMBER_PLACEHOLDER_(\d+)__/g,(r,a)=>`<span class="code-number">${n.nums[a]}</span>`).replace(/__SPECIAL_PLACEHOLDER_(\d+)__/g,(r,a)=>`<span class="code-special">${n.special[a]}</span>`).replace(/\(/g,'<span class="code-parens">(</span>').replace(/\)/g,'<span class="code-parens">)</span>').replace(/\{/g,'<span class="code-curly-bracket">{</span>').replace(/\}/g,'<span class="code-curly-bracket">}</span>').replace(/\[/g,'<span class="code-brackets">[</span>').replace(/\]/g,'<span class="code-brackets">]</span>').replace(/;/g,'<span class="code-punctuation">;</span>').replace(/\./g,'<span class="code-punctuation">.</span>').replace(/,/g,'<span class="code-punctuation">,</span>'),s=s.replace(/‹/g,"<span>&lt;</span>").replace(/›/g,"<span>&gt;</span>");const A=["Array","String","RegExp","Date","Promise","Map","Set","WeakMap","WeakSet","Symbol","Math","JSON","Reflect","Proxy"],L=["Partial","Required","Readonly","Record","Pick","Omit","Exclude","Extract","NonNullable","Parameters","ReturnType","InstanceType","ConstructorParameters","ThisType"],$=new RegExp(`\\b(?:${[...A,...L].join("|")})\\b`,"g");s=s.replace($,'<span class="code-js-reserved">$&</span>'),o=s}else i==="error"&&(o=`<div class="code-error">${o}</div>`);let u=o;return l.title&&(u=`<div class="code-title ${l.showIcon?"code-title-with-icon":""}">${l.title}</div>
${o}`),l.withLineNumbers&&(u=u.split(`
`).map((c,p)=>l.title&&p===0?c:`<span class="code-line-number">${p+(l.title?0:1)}</span> ${c}`).join(`
`)),{code:o,codeWithTitle:u}}async function w(){try{await navigator.clipboard.writeText(l.content),h("copy",l.content)}catch(o){console.error("Failed to copy text: ",o)}}return(o,i)=>(t.openBlock(),t.createElementBlock("code",D,[e.showIcon?(t.openBlock(),t.createElementBlock("div",_,[t.createVNode(H,{language:e.language},null,8,["language"])])):t.createCommentVNode("",!0),e.withCopy?(t.openBlock(),t.createElementBlock("button",{key:1,class:"code-copy",onClick:w,"aria-label":"Copy code: "+l.title},[t.createVNode(B,{stroke:e.copyIconColor,size:e.copyIconSize,"stroke-width":e.copyIconStrokeWidth},null,8,["stroke","size","stroke-width"])],8,I)):t.createCommentVNode("",!0),t.createElementVNode("pre",{innerHTML:y.value.codeWithTitle,class:t.normalizeClass(`code-container ${e.showIcon&&!e.title?"code-container-icon-notitle":""}`),ref:"codeContent",style:t.normalizeStyle({"--background-color":e.backgroundColor,"--base-text-color":e.baseTextColor,"--border-radius":e.borderRadius,"--color-brackets":e.colorBrackets,"--color-comment":e.colorComment,"--color-function":e.colorFunction,"--color-html-tag":e.colorHtmlTag,"--color-keywords":e.colorKeywords,"--color-line-number":e.colorLineNumber,"--color-number":e.colorNumber,"--color-special":e.colorSpecial,"--color-parenthesis":e.colorParenthesis,"--color-curly-bracket":e.colorCurlyBrackets,"--color-punctuation":e.colorPunctuation,"--color-string":e.colorString,"--color-title":e.colorTitle,"--color-js-reserved":e.colorJsReserved,"--color-variable-keyword":e.colorVariableKeyword,"--font-family":e.fontFamily,"--font-size":e.fontSize,"--line-height":e.lineHeight,"--padding":e.padding,"--title-font-family":e.titleFontFamily,"--title-font-size":e.titleFontSize,"--color-css-selector":e.colorCssSelector})},null,14,O),e.language==="error"?(t.openBlock(),t.createElementBlock("div",{key:2,class:"error-wrapper",style:t.normalizeStyle({"--color-error":e.colorError,"--border-radius":e.borderRadius})},null,4)):t.createCommentVNode("",!0)]))}},j=T(F,[["__scopeId","data-v-72563edf"]]);exports.VueHiCode=j;

@@ -1,3 +0,3 @@

import { createElementBlock as c, openBlock as i, createElementVNode as s, createCommentVNode as f, createStaticVNode as k, computed as P, createVNode as A, normalizeStyle as E, normalizeClass as H } from "vue";
const T = ["height", "width"], B = ["stroke", "stroke-width"], D = {
import { createElementBlock as c, openBlock as i, createElementVNode as s, createCommentVNode as f, createStaticVNode as k, computed as H, createVNode as A, normalizeStyle as E, normalizeClass as T } from "vue";
const D = ["height", "width"], B = ["stroke", "stroke-width"], _ = {
__name: "IconCopy",

@@ -33,3 +33,3 @@ props: {

}, null, 8, B)
], 8, T));
], 8, D));
}

@@ -121,6 +121,6 @@ }, I = {

return t;
}, _ = { class: "code-wrapper" }, G = {
}, G = { class: "code-wrapper" }, q = {
key: 0,
class: "code-icon"
}, q = ["aria-label"], J = ["innerHTML"], U = {
}, J = ["aria-label"], U = ["innerHTML"], Y = {
__name: "vue-hi-code",

@@ -217,2 +217,6 @@ props: {

},
colorSpecial: {
type: String,
default: "#559AD3"
},
colorFunction: {

@@ -274,16 +278,16 @@ type: String,

setup(e, { emit: h }) {
const t = e, m = h, b = P(() => L(t.content, t.language));
function L(o, p) {
if (p === "html") {
const t = e, m = h, b = H(() => L(t.content, t.language));
function L(l, d) {
if (d === "html") {
const g = /(<\/?)([a-zA-Z0-9-]+)([^<]*?)(\/?>)/g;
o = o.replace(g, (n, u, v, w, C) => {
l = l.replace(g, (a, u, v, w, C) => {
const S = `<span class="code-tag-name">${v}</span>`;
return `&lt;${u === "</" ? "/" : ""}` + S + w + `${C === "/>" ? " /" : ""}&gt;`;
}), o = o.replace(/<!--[\s\S]*?-->/g, (n) => `<span class="code-comment">${n.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</span>`);
} else if (p === "css")
o = o.replace(/\/\*[\s\S]*?\*\//g, '<span class="code-comment">$&</span>').replace(new RegExp("(?<=\\}[\\s]*)\\/*([\\s\\S]*?)(?=\\{)", "g"), (g, n) => `
<span class="selector">${n.trim()} </span>`).replace(/^([^\{]+)\s*(?=\{)/g, (g, n) => `<span class="selector">${n.trim()} </span>`).replace(/<\/span>\s*(?=\w)/g, `</span>
}), l = l.replace(/<!--[\s\S]*?-->/g, (a) => `<span class="code-comment">${a.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</span>`);
} else if (d === "css")
l = l.replace(/\/\*[\s\S]*?\*\//g, '<span class="code-comment">$&</span>').replace(new RegExp("(?<=\\}[\\s]*)\\/*([\\s\\S]*?)(?=\\{)", "g"), (g, a) => `
<span class="selector">${a.trim()} </span>`).replace(/^([^\{]+)\s*(?=\{)/g, (g, a) => `<span class="selector">${a.trim()} </span>`).replace(/<\/span>\s*(?=\w)/g, `</span>
`);
else if (["javascript", "typescript"].includes(p)) {
o = String(o).replace(/</g, "‹").replace(/>/g, "›");
else if (["javascript", "typescript"].includes(d)) {
l = String(l).replace(/</g, "‹").replace(/>/g, "›");
const g = [

@@ -314,3 +318,3 @@ "const",

"await"
], n = [
], a = [
"type",

@@ -346,7 +350,7 @@ "interface",

...g,
...p === "typescript" ? n : []
...d === "typescript" ? a : []
])
), v = new RegExp(`\\b(?:${u.join("|")})\\b(?!\\s*[:?])`, "g"), w = /\b([a-zA-Z_]\w*)\s*(?=\()/g, C = /(["'`])(?:(?=(\\?))\2.)*?\1/g, S = /(\/\*[\s\S]*?\*\/|\/\/.*)/g, $ = new RegExp("(?<![\"'`])\\b(?:const|let|var)\\b\\s+([A-Za-z_$][\\w$]*)(?![\"'`])(?=(?:[^\"'`]*[\"'`][^\"'`]*[\"'`])*[^\"'`]*$)", "g"), M = /\b\d+(\.\d+)?\b/g, l = { keys: [], vars: [], strs: [], comms: [], nums: [] };
let d = o.replace($, (r, a) => (l.keys.push(r.split(" ")[0]), l.vars.push(a), `__KEYWORD_PLACEHOLDER_${l.keys.length - 1}__ ${a}`)).replace(C, (r) => (l.strs.push(r), `__STRING_PLACEHOLDER_${l.strs.length - 1}__`)).replace(S, (r) => (l.comms.push(r), `__COMMENT_PLACEHOLDER_${l.comms.length - 1}__`)).replace(M, (r) => (l.nums.push(r), `__NUMBER_PLACEHOLDER_${l.nums.length - 1}__`));
d = d.replace(v, '<span class="code-keyword">$&</span>').replace(w, '<span class="code-function">$1</span>'), d = d.replace(/__COMMENT_PLACEHOLDER_(\d+)__/g, (r, a) => `<span class="code-comment">${l.comms[a]}</span>`).replace(/__STRING_PLACEHOLDER_(\d+)__/g, (r, a) => `<span class="code-string">${l.strs[a]}</span>`).replace(/__KEYWORD_PLACEHOLDER_(\d+)__/g, (r, a) => `<span class="code-variable-keyword">${l.keys[a]}</span>`).replace(/__NUMBER_PLACEHOLDER_(\d+)__/g, (r, a) => `<span class="code-number">${l.nums[a]}</span>`).replace(/\(/g, '<span class="code-parens">(</span>').replace(/\)/g, '<span class="code-parens">)</span>').replace(/\{/g, '<span class="code-curly-bracket">{</span>').replace(/\}/g, '<span class="code-curly-bracket">}</span>').replace(/\[/g, '<span class="code-brackets">[</span>').replace(/\]/g, '<span class="code-brackets">]</span>').replace(/;/g, '<span class="code-punctuation">;</span>').replace(/\./g, '<span class="code-punctuation">.</span>').replace(/,/g, '<span class="code-punctuation">,</span>'), d = d.replace(/‹/g, "<span>&lt;</span>").replace(/›/g, "<span>&gt;</span>");
), v = new RegExp(`\\b(?:${u.join("|")})\\b(?!\\s*[:?])`, "g"), w = /\b([a-zA-Z_]\w*)\s*(?=\()/g, C = /(["'`])(?:(?=(\\?))\2.)*?\1/g, S = /(\/\*[\s\S]*?\*\/|\/\/.*)/g, x = new RegExp("(?<![\"'`])\\b(?:const|let|var)\\b\\s+([A-Za-z_$][\\w$]*)(?![\"'`])(?=(?:[^\"'`]*[\"'`][^\"'`]*[\"'`])*[^\"'`]*$)", "g"), P = /\b\d+(\.\d+)?\b/g, M = new RegExp("(?<![\\w$])(?:-?Infinity|NaN|null|undefined)(?![\\w$])", "g"), o = { keys: [], vars: [], strs: [], comms: [], nums: [], special: [] };
let p = l.replace(x, (n, r) => (o.keys.push(n.split(" ")[0]), o.vars.push(r), `__KEYWORD_PLACEHOLDER_${o.keys.length - 1}__ ${r}`)).replace(C, (n) => (o.strs.push(n), `__STRING_PLACEHOLDER_${o.strs.length - 1}__`)).replace(S, (n) => (o.comms.push(n), `__COMMENT_PLACEHOLDER_${o.comms.length - 1}__`)).replace(P, (n) => (o.nums.push(n), `__NUMBER_PLACEHOLDER_${o.nums.length - 1}__`)).replace(M, (n) => (o.special.push(n), `__SPECIAL_PLACEHOLDER_${o.special.length - 1}__`));
p = p.replace(v, '<span class="code-keyword">$&</span>').replace(w, '<span class="code-function">$1</span>'), p = p.replace(/__COMMENT_PLACEHOLDER_(\d+)__/g, (n, r) => `<span class="code-comment">${o.comms[r]}</span>`).replace(/__STRING_PLACEHOLDER_(\d+)__/g, (n, r) => `<span class="code-string">${o.strs[r]}</span>`).replace(/__KEYWORD_PLACEHOLDER_(\d+)__/g, (n, r) => `<span class="code-variable-keyword">${o.keys[r]}</span>`).replace(/__NUMBER_PLACEHOLDER_(\d+)__/g, (n, r) => `<span class="code-number">${o.nums[r]}</span>`).replace(/__SPECIAL_PLACEHOLDER_(\d+)__/g, (n, r) => `<span class="code-special">${o.special[r]}</span>`).replace(/\(/g, '<span class="code-parens">(</span>').replace(/\)/g, '<span class="code-parens">)</span>').replace(/\{/g, '<span class="code-curly-bracket">{</span>').replace(/\}/g, '<span class="code-curly-bracket">}</span>').replace(/\[/g, '<span class="code-brackets">[</span>').replace(/\]/g, '<span class="code-brackets">]</span>').replace(/;/g, '<span class="code-punctuation">;</span>').replace(/\./g, '<span class="code-punctuation">.</span>').replace(/,/g, '<span class="code-punctuation">,</span>'), p = p.replace(/‹/g, "<span>&lt;</span>").replace(/›/g, "<span>&gt;</span>");
const R = [

@@ -367,3 +371,3 @@ "Array",

"Proxy"
], z = [
], N = [
"Partial",

@@ -383,26 +387,26 @@ "Required",

"ThisType"
], N = new RegExp(
`\\b(?:${[...R, ...z].join("|")})\\b`,
], z = new RegExp(
`\\b(?:${[...R, ...N].join("|")})\\b`,
"g"
);
d = d.replace(N, '<span class="code-js-reserved">$&</span>'), o = d;
} else p === "error" && (o = `<div class="code-error">${o}</div>`);
let y = o;
p = p.replace(z, '<span class="code-js-reserved">$&</span>'), l = p;
} else d === "error" && (l = `<div class="code-error">${l}</div>`);
let y = l;
return t.title && (y = `<div class="code-title ${t.showIcon ? "code-title-with-icon" : ""}">${t.title}</div>
${o}`), t.withLineNumbers && (y = y.split(`
`).map((n, u) => t.title && u === 0 ? n : `<span class="code-line-number">${u + (t.title ? 0 : 1)}</span> ${n}`).join(`
${l}`), t.withLineNumbers && (y = y.split(`
`).map((a, u) => t.title && u === 0 ? a : `<span class="code-line-number">${u + (t.title ? 0 : 1)}</span> ${a}`).join(`
`)), {
code: o,
code: l,
codeWithTitle: y
};
}
async function x() {
async function $() {
try {
await navigator.clipboard.writeText(t.content), m("copy", t.content);
} catch (o) {
console.error("Failed to copy text: ", o);
} catch (l) {
console.error("Failed to copy text: ", l);
}
}
return (o, p) => (i(), c("code", _, [
e.showIcon ? (i(), c("div", G, [
return (l, d) => (i(), c("code", G, [
e.showIcon ? (i(), c("div", q, [
A(j, { language: e.language }, null, 8, ["language"])

@@ -413,6 +417,6 @@ ])) : f("", !0),

class: "code-copy",
onClick: x,
onClick: $,
"aria-label": "Copy code: " + t.title
}, [
A(D, {
A(_, {
stroke: e.copyIconColor,

@@ -422,6 +426,6 @@ size: e.copyIconSize,

}, null, 8, ["stroke", "size", "stroke-width"])
], 8, q)) : f("", !0),
], 8, J)) : f("", !0),
s("pre", {
innerHTML: b.value.codeWithTitle,
class: H(`code-container ${e.showIcon && !e.title ? "code-container-icon-notitle" : ""}`),
class: T(`code-container ${e.showIcon && !e.title ? "code-container-icon-notitle" : ""}`),
ref: "codeContent",

@@ -439,2 +443,3 @@ style: E({

"--color-number": e.colorNumber,
"--color-special": e.colorSpecial,
"--color-parenthesis": e.colorParenthesis,

@@ -456,3 +461,3 @@ "--color-curly-bracket": e.colorCurlyBrackets,

})
}, null, 14, J),
}, null, 14, U),
e.language === "error" ? (i(), c("div", {

@@ -468,5 +473,5 @@ key: 2,

}
}, Z = /* @__PURE__ */ K(U, [["__scopeId", "data-v-78fba7e8"]]);
}, Q = /* @__PURE__ */ K(Y, [["__scopeId", "data-v-72563edf"]]);
export {
Z as VueHiCode
Q as VueHiCode
};
{
"name": "vue-hi-code",
"version": "1.5.1",
"version": "1.5.2",
"private": false,

@@ -60,4 +60,4 @@ "type": "module",

"vite-plugin-vue-devtools": "^8.0.3",
"vitest": "^3.0.2"
"vitest": "^4.0.6"
}
}

@@ -52,2 +52,3 @@ # vue-hi-code

| colorVariableKeyword | string | no | "#559AD3" |
| colorSpecial | string | no | "#559AD3" |
| content | string | yes | |

@@ -54,0 +55,0 @@ | copyIconColor | string | no | "#CCCCCC" |