1import{_ as f,o as v,c as m,a as t,F as g,r as C,n as _,t as l,f as y,g as k,A as w,i as p,j as u,k as S}from"./jNA8CX70.js";import{u as T}from"./DNP2VIvT.js";const B={class:"tool-page"},H={class:"card"},F={class:"mode-tabs"},N=["onClick"],z={class:"input-section"},D={class:"stats-grid"},V={class:"stat-card"},$={class:"stat-value"},j={class:"stat-card"},A={class:"stat-value"},E={class:"stat-card"},I={class:"stat-value"},L={class:"stat-value"},M={__name:"CharacterCounter",setup(h){const a=p(""),r=p("title"),i=u(()=>{const e=a.value.length,s=a.value.replace(/\s/g,"").length,o=a.value.trim()?a.value.trim().split(/\s+/).length:0;return{chars:e,charsNoSpaces:s,words:o}}),c=u(()=>({title:{min:30,max:60,label:"æ é¢"},description:{min:120,max:160,label:"æè¿°"},h1:{min:20,max:70,label:"H1æ é¢"},h2:{min:20,max:70,label:"H2æ é¢"},body:{min:300,max:null,label:"æ£æ"}})[r.value]),n=u(()=>{const e=i.value.chars,s=c.value;return s.max?e<s.min?{text:"太ç",color:"#ef4444"}:e>s.max?{text:"太é¿",color:"#f59e0b"}:{text:"åé",color:"#10b981"}:e<s.min?{text:"åç",color:"#f59e0b"}:{text:"åé",color:"#10b981"}}),x=async()=>{if(a.value)try{await navigator.clipboard.writeText(a.value)}catch(e){console.error("Failed to copy:",e)}},b=()=>{a.value=""};return(e,s)=>(v(),m("div",B,[s[5]||(s[5]=t("h1",{class:"page-title"},"ð¢ å符计æ°å¨",-1)),t("div",H,[t("div",F,[(v(),m(g,null,C({title:"æ é¢",description:"æè¿°",h1:"H1",h2:"H2",body:"æ£æ"},(o,d)=>t("button",{key:d,class:_(["mode-tab",{active:r.value===d}]),onClick:q=>r.value=d},l(o),11,N)),64))]),t("div",z,[y(t("textarea",{"onUpdate:modelValue":s[0]||(s[0]=o=>a.value=o),class:"form-textarea",placeholder:"è¾å
¥è¦ç»è®¡çææ¬..."},null,512),[[k,a.value]])]),t("div",D,[t("div",V,[s[1]||(s[1]=t("div",{class:"stat-label"},"å符æ°",-1)),t("div",$,l(i.value.chars),1),t("div",{class:"stat-limit",style:w({color:n.value.color})}," 建议: "+l(c.value.min)+"-"+l(c.value.max||"ä¸é"),5)]),t("div",j,[s[2]||(s[2]=t("div",{class:"stat-label"},"å符æ°(ä¸å«ç©ºæ ¼)",-1)),t("div",A,l(i.value.charsNoSpaces),1)]),t("div",E,[s[3]||(s[3]=t("div",{class:"stat-label"},"åè¯æ°",-1)),t("div",I,l(i.value.words),1)]),t("div",{class:_(["stat-card highlight",n.value.text==="åé"?"good":"warning"])},[s[4]||(s[4]=t("div",{class:"stat-label"},"ç¶æ",-1)),t("div",L,l(n.value.text),1)],2)]),t("div",{class:"actions"},[t("button",{class:"action-btn",onClick:x},"ð å¤å¶"),t("button",{class:"action-btn",onClick:b},"â æ¸
空")])])]))}},U=f(M,[["__scopeId","data-v-3987d56e"]]),K={__name:"character-counter",setup(h){return T("/seo/character-counter"),(a,r)=>(v(),S(U))}};export{K as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.