nuxt-seo-utils 8.1.1 → 8.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/devtools/200.html +1 -1
  3. package/dist/devtools/404.html +1 -1
  4. package/dist/devtools/_nuxt/{BjpcrkP-.js → BFYrtQoE.js} +1 -1
  5. package/dist/devtools/_nuxt/{C61WGw4L.js → BMEK-YQR.js} +1 -1
  6. package/dist/devtools/_nuxt/{DN5tfAN_.js → C9Hi2KVm.js} +1 -1
  7. package/dist/devtools/_nuxt/{DtDZComy.js → CFjIu9of.js} +6 -6
  8. package/dist/devtools/_nuxt/CrqYYvHl.js +1 -0
  9. package/dist/devtools/_nuxt/{B1gSLANq.js → DDqZOOL4.js} +1 -1
  10. package/dist/devtools/_nuxt/DevtoolsMetric.oOth40om.css +1 -0
  11. package/dist/devtools/_nuxt/builds/latest.json +1 -1
  12. package/dist/devtools/_nuxt/builds/meta/668e2166-bb07-4e7f-a101-55cab3316289.json +1 -0
  13. package/dist/devtools/_nuxt/debug.B_vyUEY4.css +1 -0
  14. package/dist/devtools/_nuxt/dmEKVLxd.js +14 -0
  15. package/dist/devtools/_nuxt/{entry.BHKjHnLW.css → entry.p5YGwGey.css} +1 -1
  16. package/dist/devtools/_nuxt/identity.Dl98KbLG.css +1 -0
  17. package/dist/devtools/_nuxt/index.BrQ8jYVK.css +1 -0
  18. package/dist/devtools/_nuxt/tools.wDkYv7qK.css +1 -0
  19. package/dist/devtools/_nuxt/tuRrUv9a.js +1 -0
  20. package/dist/devtools/debug/index.html +1 -1
  21. package/dist/devtools/docs/index.html +1 -1
  22. package/dist/devtools/identity/index.html +1 -1
  23. package/dist/devtools/index.html +1 -1
  24. package/dist/devtools/social/index.html +1 -1
  25. package/dist/module.json +1 -1
  26. package/dist/module.mjs +71 -48
  27. package/package.json +5 -5
  28. package/dist/devtools/_nuxt/Bl0_HI6u.js +0 -1
  29. package/dist/devtools/_nuxt/CmgL04_4.js +0 -17
  30. package/dist/devtools/_nuxt/DevtoolsMetric.DvYdw-4s.css +0 -1
  31. package/dist/devtools/_nuxt/Dv_MQXNa.js +0 -1
  32. package/dist/devtools/_nuxt/builds/meta/abeb9f59-bc22-40fa-a6c2-2b431f13f6bb.json +0 -1
  33. package/dist/devtools/_nuxt/debug.DzhmKJN4.css +0 -1
  34. package/dist/devtools/_nuxt/identity.fDdIs9v0.css +0 -1
  35. package/dist/devtools/_nuxt/index.STyrn0Qm.css +0 -1
  36. package/dist/devtools/_nuxt/tools.Dhk_g_S8.css +0 -1
@@ -0,0 +1 @@
1
+ import{d as K,u as Q,s as Y,q as G,v as H,x as Z,o as l,g as i,c as h,y as ee,w as c,b as r,e as te,F as k,i as t,n as _,z as b,j as a,A as se,p as ae,a as v,B as M,m as $,k as oe,C as ne,r as I,f as u,l as le}from"./CFjIu9of.js";import{_ as re,S as p,e as ie,a as ce,t as ue,d as ge,p as ve}from"./tuRrUv9a.js";import{_ as de}from"./BFYrtQoE.js";const _e={class:"space-y-5 stagger-children"},pe={class:"seo-score-ring"},me={viewBox:"0 0 36 36",class:"seo-score-ring__svg"},he=["stroke-dasharray"],fe={class:"seo-score-ring__text"},xe={class:"font-medium text-sm"},ye={class:"text-xs text-[var(--color-text-muted)]"},we={class:"serp-preview-container"},ke={class:"serp-preview"},be={class:"flex items-center gap-3 mb-2"},Te={class:"serp-preview__favicon"},Ce={class:"text-xs text-gray-600 dark:text-[#bdc1c6] leading-tight"},Se={class:"serp-preview__title"},Me={class:"serp-preview__description"},$e={class:"grid md:grid-cols-2 gap-4"},Ae={class:"space-y-3"},Ee={class:"flex items-center justify-between"},Ne={class:"text-xs font-mono text-[var(--color-text-muted)]"},Be={class:"seo-progress-track"},Le={class:"text-xs text-[var(--color-text-muted)] truncate"},Re={class:"space-y-3"},De={class:"flex items-center justify-between"},ze={class:"text-xs font-mono text-[var(--color-text-muted)]"},He={class:"seo-progress-track"},Ie={class:"text-xs text-[var(--color-text-muted)] truncate"},Oe={class:"space-y-1"},Ue={class:"min-w-0"},Ge={class:"text-sm font-mono"},Pe={class:"text-xs text-[var(--color-text-muted)]"},Xe={class:"space-y-5"},We={class:"seo-category-header"},Fe={class:"seo-checklist"},Ve={class:"text-sm font-mono flex-1 min-w-0 truncate"},je={key:0,class:"seo-checklist__value"},Je={class:"seo-meta-table"},qe={class:"text-sm font-mono shrink-0 text-[var(--color-text)]"},Ke={class:"text-xs text-[var(--color-text-muted)] truncate min-w-0 flex-1 text-right font-mono"},Qe=K({__name:"index",setup(Ye){const P=/\/$/,{copy:X,copied:W}=Q(),A=I(!1),T=I(null),e=I(null),E=u(()=>e.value?.title.length||0),N=u(()=>e.value?.description.length||0),f=u(()=>ue(E.value)),x=u(()=>ge(N.value)),F=u(()=>{if(!e.value?.url)return"";try{const s=new URL(e.value.url);return s.hostname+(s.pathname==="/"?"":s.pathname.replace(P,""))}catch{return e.value.url}}),B=u(()=>e.value?[{category:"Basic",name:"title",present:!!e.value.title,value:e.value.title},{category:"Basic",name:"description",present:!!e.value.description,value:e.value.description},{category:"Basic",name:"canonical",present:!!e.value.canonical,value:e.value.canonical},{category:"Open Graph",name:"og:title",present:!!e.value.ogTags["og:title"],value:e.value.ogTags["og:title"]},{category:"Open Graph",name:"og:description",present:!!e.value.ogTags["og:description"],value:e.value.ogTags["og:description"]},{category:"Open Graph",name:"og:image",present:!!e.value.ogTags["og:image"],value:e.value.ogTags["og:image"]},{category:"Open Graph",name:"og:url",present:!!e.value.ogTags["og:url"],value:e.value.ogTags["og:url"]},{category:"Twitter",name:"twitter:card",present:!!e.value.twitterTags["twitter:card"],value:e.value.twitterTags["twitter:card"]},{category:"Twitter",name:"twitter:title",present:!!e.value.twitterTags["twitter:title"],value:e.value.twitterTags["twitter:title"],fallback:e.value.ogTags["og:title"]?"og:title":void 0},{category:"Twitter",name:"twitter:image",present:!!e.value.twitterTags["twitter:image"],value:e.value.twitterTags["twitter:image"],fallback:e.value.ogTags["og:image"]?"og:image":void 0}]:[]),V=u(()=>{const s={};return B.value.forEach(o=>{s[o.category]||(s[o.category]=[]),s[o.category].push(o)}),s}),y=u(()=>({present:B.value.filter(o=>o.present||o.fallback).length,total:B.value.length})),j=u(()=>{const{present:s,total:o}=y.value;return o>0?Math.round(s/o*100):0}),d=u(()=>{if(!e.value)return[];const s=[];return e.value.title||s.push({tag:"title",severity:"error",message:"No title tag found."}),e.value.description||s.push({tag:"meta description",severity:"warning",message:"Missing meta description."}),e.value.ogTags["og:title"]||s.push({tag:"og:title",severity:"warning",message:"Missing og:title for social sharing."}),e.value.ogTags["og:description"]||s.push({tag:"og:description",severity:"warning",message:"Missing og:description for social sharing."}),e.value.ogTags["og:image"]||s.push({tag:"og:image",severity:"warning",message:"Missing og:image. Posts with images get higher click rates."}),e.value.canonical||s.push({tag:"canonical",severity:"warning",message:"Missing canonical URL."}),s}),L=u(()=>{if(!e.value)return null;const s=d.value.some(w=>w.severity==="error")||f.value==="error"||x.value==="error",o=d.value.length>0||f.value==="warning"||x.value==="warning";return s?{variant:"warning",message:"Issues found",icon:"carbon:warning-alt"}:o?{variant:"warning",message:"Some suggestions",icon:"carbon:warning"}:{variant:"success",message:"Looking good!",icon:"carbon:checkmark-filled"}});function O(s){return s==="success"?"Good":s==="warning"?"Needs work":"Too long"}async function U(){A.value=!0,T.value=null,e.value=null;try{const s=window.parent?.location?.origin||window.location.origin,o=await fetch(`${s}${H.value}`,{headers:{Accept:"text/html"}});if(!o.ok)throw new Error(`HTTP ${o.status}`);const w=await o.text(),C=ve(w);e.value={...C,url:`${s}${H.value}`}}catch(s){T.value=s.message||"Failed to fetch page"}finally{A.value=!1}}return Y([()=>G.value,H,Z],()=>{G.value&&U()},{immediate:!0}),(s,o)=>{const w=ee,C=te,J=re,R=se,m=ae,D=de,z=ne,q=ce;return l(),i("div",_e,[A.value?(l(),h(w,{key:0})):T.value?(l(),h(J,{key:1,error:T.value,title:"Failed to check page"},{default:c(()=>[r(C,{size:"sm",variant:"ghost",icon:"carbon:reset",label:"Retry",onClick:U})]),_:1},8,["error"])):e.value?(l(),i(k,{key:2},[t("div",{class:_(["seo-status-card",`seo-status-card--${L.value?.variant}`])},[t("div",pe,[(l(),i("svg",me,[o[1]||(o[1]=t("circle",{cx:"18",cy:"18",r:"15.5",fill:"none",stroke:"var(--color-border-subtle)","stroke-width":"2.5"},null,-1)),t("circle",{cx:"18",cy:"18",r:"15.5",fill:"none",class:_(["seo-score-ring__progress",`seo-score-ring__progress--${L.value?.variant}`]),"stroke-width":"2.5","stroke-linecap":"round","stroke-dasharray":`${j.value*.974}, 100`,transform:"rotate(-90 18 18)"},null,10,he)])),t("span",fe,[b(a(y.value.present),1),o[2]||(o[2]=t("span",{class:"seo-score-ring__separator"},"/",-1)),b(a(y.value.total),1)])]),t("div",null,[t("p",xe,a(L.value?.message),1),t("p",ye,a(y.value.present)+" of "+a(y.value.total)+" essential tags present ",1)])],2),r(m,{icon:"carbon:search",text:"Google Search Preview"},{default:c(()=>[t("div",we,[t("div",ke,[t("div",be,[t("div",Te,[r(R,{name:"carbon:earth",class:"w-3.5 h-3.5 text-gray-400"})]),t("div",null,[t("div",Ce,a(F.value),1)])]),t("h3",Se,a(e.value.title||"No title found"),1),t("p",Me,a(e.value.description||"No description found"),1)])])]),_:1}),t("div",$e,[r(m,{icon:"carbon:text-short-paragraph",text:"Title",collapse:!1},{default:c(()=>[t("div",Ae,[t("div",Ee,[t("span",{class:_(["seo-length-status",`seo-length-status--${f.value}`])},a(O(f.value)),3),t("span",Ne,a(E.value)+"/"+a(v(p).TITLE_MAX_CHARS)+" chars · ~"+a(v(ie)(e.value.title))+"px ",1)]),t("div",Be,[t("div",{class:_(["seo-progress-fill",`seo-progress-fill--${f.value}`]),style:M({width:`${Math.min(100,E.value/v(p).TITLE_MAX_CHARS*100)}%`})},null,6),t("div",{class:"seo-progress-marker",style:M({left:`${30/v(p).TITLE_MAX_CHARS*100}%`})},null,4)]),t("p",Le,a(e.value.title||"Not set"),1)])]),_:1}),r(m,{icon:"carbon:text-long-paragraph",text:"Description",collapse:!1},{default:c(()=>[t("div",Re,[t("div",De,[t("span",{class:_(["seo-length-status",`seo-length-status--${x.value}`])},a(O(x.value)),3),t("span",ze,a(N.value)+"/"+a(v(p).DESC_MAX_CHARS)+" chars ",1)]),t("div",He,[t("div",{class:_(["seo-progress-fill",`seo-progress-fill--${x.value}`]),style:M({width:`${Math.min(100,N.value/v(p).DESC_MAX_CHARS*100)}%`})},null,6),t("div",{class:"seo-progress-marker",style:M({left:`${v(p).DESC_WARN_CHARS/v(p).DESC_MAX_CHARS*100}%`})},null,4)]),t("p",Ie,a(e.value.description||"Not set"),1)])]),_:1})]),d.value.length?(l(),h(m,{key:0,icon:"carbon:warning",text:"Missing Tags"},{actions:c(()=>[r(D,{value:d.value.filter(n=>n.severity==="error").length,label:"errors",variant:d.value.some(n=>n.severity==="error")?"danger":void 0},null,8,["value","variant"]),r(D,{value:d.value.filter(n=>n.severity==="warning").length,label:"warnings",variant:d.value.some(n=>n.severity==="warning")?"warning":void 0},null,8,["value","variant"])]),default:c(()=>[t("div",Oe,[(l(!0),i(k,null,$(d.value,n=>(l(),i("div",{key:n.tag,class:"seo-issue-row"},[r(R,{name:n.severity==="error"?"carbon:close-filled":"carbon:warning-filled",class:_(["text-base mt-0.5 shrink-0",n.severity==="error"?"text-red-500":"text-amber-500"])},null,8,["name","class"]),t("div",Ue,[t("span",Ge,a(n.tag),1),t("p",Pe,a(n.message),1)])]))),128))])]),_:1})):oe("",!0),r(m,{icon:"carbon:task",text:"Essential Tags Checklist"},{default:c(()=>[t("div",Xe,[(l(!0),i(k,null,$(V.value,(n,S)=>(l(),i("div",{key:S},[t("div",We,[t("span",null,a(S),1)]),t("div",Fe,[(l(!0),i(k,null,$(n,g=>(l(),i("div",{key:g.name,class:"seo-checklist__item"},[r(R,{name:g.present?"carbon:checkmark-filled":g.fallback?"carbon:information-filled":"carbon:close-filled",class:_(["text-sm shrink-0",g.present?"text-green-500":g.fallback?"text-gray-400":"text-red-400"])},null,8,["name","class"]),t("span",Ve,a(g.name),1),g.value?(l(),i("span",je,a(g.value),1)):g.fallback?(l(),h(z,{key:1,color:"neutral",variant:"subtle",size:"xs"},{default:c(()=>[b(" falls back to "+a(g.fallback),1)]),_:2},1024)):(l(),h(z,{key:2,color:"neutral",variant:"subtle",size:"xs"},{default:c(()=>[...o[3]||(o[3]=[b(" missing ",-1)])]),_:1}))]))),128))])]))),128))])]),_:1}),r(m,{icon:"carbon:list",text:"All Meta Tags"},{actions:c(()=>[r(D,{value:e.value.allMeta.length,label:"tags"},null,8,["value"]),r(C,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",label:v(W)?"Copied!":"Copy JSON",onClick:o[0]||(o[0]=n=>v(X)(JSON.stringify({title:e.value.title,description:e.value.description,canonical:e.value.canonical,og:e.value.ogTags,twitter:e.value.twitterTags},null,2)))},null,8,["label"])]),default:c(()=>[t("div",Je,[(l(!0),i(k,null,$(e.value.allMeta,(n,S)=>(l(),i("div",{key:n.name+S,class:"seo-meta-table__row"},[r(z,{color:n.type==="property"?"primary":n.type==="name"?"neutral":"warning",variant:"subtle",size:"xs"},{default:c(()=>[b(a(n.type),1)]),_:2},1032,["color"]),t("span",qe,a(n.name),1),t("span",Ke,a(n.content),1)]))),128))])]),_:1})],64)):(l(),h(q,{key:3,icon:"carbon:plug",title:"Waiting for connection",description:"Waiting for connection to host app..."}))])}}}),st=le(Qe,[["__scopeId","data-v-270956ec"]]);export{st as default};
@@ -1 +1 @@
1
- import{d as c,o as t,g as n,i as l,l as r,c as a}from"./DtDZComy.js";const _={class:"h-full max-h-full overflow-hidden"},u=["src","title"],i=c({__name:"DevtoolsDocs",props:{url:{}},setup(e){return(s,o)=>(t(),n("div",_,[l("iframe",{src:e.url,title:`Documentation - ${e.url}`,class:"w-full h-full border-none",style:{"min-height":"calc(100vh - 100px)"}},null,8,u)]))}}),m=Object.assign(i,{__name:"DevtoolsDocs"}),d={};function f(e,s){const o=m;return t(),a(o,{url:"https://nuxtseo.com/docs/seo-utils"})}const p=r(d,[["render",f]]);export{p as default};
1
+ import{d as c,o as t,g as n,i as l,l as r,c as a}from"./CFjIu9of.js";const _={class:"h-full max-h-full overflow-hidden"},u=["src","title"],i=c({__name:"DevtoolsDocs",props:{url:{}},setup(e){return(s,o)=>(t(),n("div",_,[l("iframe",{src:e.url,title:`Documentation - ${e.url}`,class:"w-full h-full border-none",style:{"min-height":"calc(100vh - 100px)"}},null,8,u)]))}}),m=Object.assign(i,{__name:"DevtoolsDocs"}),d={};function f(e,s){const o=m;return t(),a(o,{url:"https://nuxtseo.com/docs/seo-utils"})}const p=r(d,[["render",f]]);export{p as default};
@@ -0,0 +1 @@
1
+ .devtools-metric[data-v-a55b9946]{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:.75rem;font-variant-numeric:tabular-nums;font-weight:500;gap:.375rem;padding:.25rem .625rem}.devtools-metric-icon[data-v-a55b9946]{flex-shrink:0;font-size:.875rem}.devtools-metric-value[data-v-a55b9946]{font-family:var(--font-mono);font-weight:600}.devtools-metric-label[data-v-a55b9946]{color:inherit;opacity:.7}.devtools-metric-default[data-v-a55b9946]{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);color:var(--color-text)}.devtools-metric-success[data-v-a55b9946]{background:#6bc6701f;color:#107823}.dark .devtools-metric-success[data-v-a55b9946]{background:#10782326;color:#57cb60}.devtools-metric-warning[data-v-a55b9946]{background:#e1b75c1f;color:#906b00;color:oklch(55% .15 85)}.dark .devtools-metric-warning[data-v-a55b9946]{background:#906b0026;background:oklch(55% .12 85/.15);color:#d9a514}.devtools-metric-danger[data-v-a55b9946]{background:#ce70691a;color:#b94642}.dark .devtools-metric-danger[data-v-a55b9946]{background:#843c3826;color:#df7f78}.devtools-metric-info[data-v-a55b9946]{background:#8cdee21a;color:#007277;color:oklch(50% .12 200)}.dark .devtools-metric-info[data-v-a55b9946]{background:#00444726;background:oklch(35% .08 200/.15);color:#40b1b7}
@@ -1 +1 @@
1
- {"id":"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb","timestamp":1774543150883}
1
+ {"id":"668e2166-bb07-4e7f-a101-55cab3316289","timestamp":1774587854022}
@@ -0,0 +1 @@
1
+ {"id":"668e2166-bb07-4e7f-a101-55cab3316289","timestamp":1774587854022,"prerendered":[]}
@@ -0,0 +1 @@
1
+ .devtools-snippet[data-v-6466b502]{margin:.5rem .75rem}.devtools-snippet-header[data-v-6466b502]{align-items:center;display:flex;justify-content:space-between;margin-bottom:.375rem}.devtools-snippet-label[data-v-6466b502]{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:-.01em}.devtools-snippet-block[data-v-6466b502]{border-radius:var(--radius-sm);font-size:.6875rem;line-height:1.6;max-height:300px;overflow-y:auto;padding:.5rem .625rem!important}.devtools-kv-row[data-v-7156e643]{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:.625rem 1.25rem;transition:background-color .15s ease}.devtools-kv-row.devtools-kv-stacked[data-v-7156e643]{align-items:flex-start;flex-direction:column;gap:.375rem}.devtools-kv-row[data-v-7156e643]:hover{background:var(--color-surface-sunken)}.devtools-kv-striped[data-v-7156e643]:nth-child(2n){background:oklch(from var(--color-surface-sunken) l c h/.5)}.devtools-kv-key[data-v-7156e643]{color:var(--color-text-muted);flex-shrink:0;font-family:var(--font-mono);font-size:.8125rem}.devtools-kv-value-wrap[data-v-7156e643]{align-items:center;display:flex;gap:.5rem;min-width:0}.devtools-kv-value-wrap-full[data-v-7156e643]{width:100%}.devtools-kv-value[data-v-7156e643]{font-size:.8125rem;overflow-wrap:break-word;text-align:right;word-break:break-all}.devtools-kv-snippet[data-v-7156e643]{margin:0!important;width:100%}.devtools-kv-true[data-v-7156e643]{color:var(--seo-green)}.devtools-kv-false[data-v-7156e643]{color:#dc655f}.devtools-kv-empty[data-v-7156e643]{color:var(--color-text-subtle);font-style:italic}
@@ -0,0 +1,14 @@
1
+ import{d as H,u as J,s as j,q as A,v as W,x as K,o,g as i,c as P,y as Q,w as x,b as r,e as X,F as f,i as e,n as B,z as p,j as a,A as Y,m as S,k as h,a as E,p as Z,B as ee,r as G,f as v,l as se}from"./CFjIu9of.js";import{_ as te,a as oe,p as ae}from"./tuRrUv9a.js";import{_ as ne}from"./BFYrtQoE.js";const ie={class:"space-y-5 stagger-children"},le={class:"id-hero__left"},re={class:"id-score-ring"},ce={viewBox:"0 0 36 36",class:"id-score-ring__svg"},de=["stroke-dasharray"],ue={class:"id-score-ring__text"},me={class:"font-medium text-sm"},_e={class:"text-xs text-[var(--color-text-muted)]"},pe={class:"id-browser-tab"},ge={class:"id-browser-tab__chrome"},ve={class:"id-browser-tab__tab"},he=["src"],fe={class:"id-browser-tab__title"},xe={class:"id-browser-tab__bar"},be={class:"id-browser-tab__url"},ye={class:"id-group-header"},ke={class:"id-group-count"},we={class:"text-xs text-[var(--color-text-muted)] mb-3"},Ce={class:"id-icon-grid"},Se={class:"id-icon-preview"},Te=["src","alt"],ze={class:"id-icon-meta"},$e=["href"],Pe={class:"id-icon-badges"},Ie={key:0,class:"id-badge"},Ae={key:1,class:"id-badge"},Be={key:2,class:"id-badge id-badge--accent"},Ge={key:1,class:"id-empty panel-grids"},Ne={class:"id-empty__inner"},De={class:"id-empty__icon-ring"},Le={class:"id-terminal"},Me={class:"id-terminal__body"},Ue={class:"id-gen-files"},Ve={class:"id-gen-name"},We={class:"id-gen-size"},Ee={class:"id-gen-desc"},Fe={class:"hint-callout mt-4 w-full"},Re={key:0,class:"mb-5"},qe={class:"id-color-scheme-row"},Oe={class:"text-sm font-mono font-medium"},He={key:1},Je={class:"id-color-grid"},je={class:"id-color-card__meta"},Ke={class:"id-color-card__value"},Qe={key:1,class:"text-[0.625rem] text-[var(--color-text-subtle)] block mt-0.5 font-mono"},Xe={key:1,class:"hint-callout"},Ye={class:"id-guide-grid"},Ze={class:"id-guide-card"},es={class:"id-guide-card__icon"},ss={class:"id-guide-card"},ts={class:"id-guide-card__icon"},os={class:"id-file-list"},as={class:"id-file-name"},ns={class:"id-file-desc"},is={class:"id-guide-card"},ls={class:"id-guide-card__icon"},rs={class:"id-terminal__body !mt-auto !rounded-[var(--radius-sm)]"},F="npx nuxt-seo-utils icons --source <your-logo.svg>",cs=H({__name:"identity",setup(ds){const{copy:N}=J(),T=G(!1),b=G(null),d=G(null),g=v(()=>A.value?.siteConfig||null),y=v(()=>d.value?.icons||[]),D=v(()=>y.value.length>0),R=v(()=>{const n={};return y.value.forEach(s=>{const m=s.rel||"icon";n[m]||(n[m]=[]),n[m].push(s)}),n}),L={icon:{label:"Favicon",description:"Browser tab icons used across the site"},"apple-touch-icon":{label:"Apple Touch Icon",description:"High resolution icon for iOS home screen"}},k=v(()=>{if(!g.value||!d.value)return{present:0,total:0};const n=[!!g.value.name,!!g.value.url&&g.value.url!=="http://localhost:3000",!!g.value.description,D.value,d.value.ogImages.length>0,d.value.themeColors.length>0];return{present:n.filter(Boolean).length,total:n.length}}),z=v(()=>{const{present:n,total:s}=k.value;return s>0?Math.round(n/s*100):0}),M=v(()=>{const n=z.value;return n>=80?"success":(n>=50,"warning")}),U=v(()=>{const n=y.value.find(m=>m.href?.includes("favicon.ico"));return n?n.href:y.value.find(m=>m.rel==="icon")?.href||null}),q=v(()=>{if(!g.value?.url)return"localhost:3000";try{return new URL(g.value.url).hostname}catch{return g.value.url}});async function V(){T.value=!0,b.value=null,d.value=null;try{const n=window.parent?.location?.origin||window.location.origin,s=await fetch(`${n}${W.value}`,{headers:{Accept:"text/html"}});if(!s.ok)throw new Error(`HTTP ${s.status}`);const m=await s.text(),c=ae(m),$=[];c.allMeta.filter(t=>t.name==="theme-color").forEach(t=>{let _="default";const l=t.media||null;l?.includes("prefers-color-scheme: light")?_="light":l?.includes("prefers-color-scheme: dark")&&(_="dark"),$.push({color:t.content,media:l||void 0,context:_})});const u=[];c.ogTags["og:image"]&&u.push({url:c.ogTags["og:image"],width:c.ogTags["og:image:width"],height:c.ogTags["og:image:height"],alt:c.ogTags["og:image:alt"]});const w=[];c.twitterTags["twitter:image"]&&w.push({url:c.twitterTags["twitter:image"],width:c.twitterTags["twitter:image:width"],height:c.twitterTags["twitter:image:height"]});const C=c.allMeta.find(t=>t.name==="color-scheme"),I=c.iconLinks.map(t=>({...t,href:t.href.startsWith("http")?t.href:`${n}${t.href.startsWith("/")?"":"/"}${t.href}`}));d.value={icons:I,ogImages:u,twitterImages:w,themeColors:$,colorScheme:C?.content||null}}catch(n){b.value=n.message||"Failed to fetch page"}finally{T.value=!1}}j([()=>A.value,W,K],()=>{A.value&&V()},{immediate:!0});const O=[{name:"favicon.ico",size:"32x32",desc:"Browser tab"},{name:"icon-16x16.png",size:"16x16",desc:"Small favicon"},{name:"icon-32x32.png",size:"32x32",desc:"Standard favicon"},{name:"apple-touch-icon.png",size:"180x180",desc:"iOS home screen"},{name:"icon-192x192.png",size:"192x192",desc:"Android/PWA"},{name:"icon-512x512.png",size:"512x512",desc:"PWA splash"}];return(n,s)=>{const m=Q,c=X,$=te,u=Y,w=ne,C=Z,I=oe;return o(),i("div",ie,[T.value?(o(),P(m,{key:0})):b.value?(o(),P($,{key:1,error:b.value,title:"Failed to check page"},{default:x(()=>[r(c,{size:"sm",variant:"ghost",icon:"carbon:reset",label:"Retry",onClick:V})]),_:1},8,["error"])):d.value?(o(),i(f,{key:2},[e("div",{class:B(["id-hero",`id-hero--${M.value}`])},[e("div",le,[e("div",re,[(o(),i("svg",ce,[s[2]||(s[2]=e("circle",{cx:"18",cy:"18",r:"15.5",fill:"none",stroke:"var(--color-border-subtle)","stroke-width":"2.5"},null,-1)),e("circle",{cx:"18",cy:"18",r:"15.5",fill:"none",class:B(["id-score-ring__progress",`id-score-ring__progress--${M.value}`]),"stroke-width":"2.5","stroke-linecap":"round","stroke-dasharray":`${z.value*.974}, 100`,transform:"rotate(-90 18 18)"},null,10,de)])),e("span",ue,[p(a(k.value.present),1),s[3]||(s[3]=e("span",{class:"id-score-ring__sep"},"/",-1)),p(a(k.value.total),1)])]),e("div",null,[e("p",me,a(z.value>=80?"Identity configured":z.value>=50?"Partially configured":"Needs setup"),1),e("p",_e,a(k.value.present)+" of "+a(k.value.total)+" identity checks passing ",1)])]),e("div",pe,[e("div",ge,[s[4]||(s[4]=e("div",{class:"id-browser-tab__dots"},[e("span"),e("span"),e("span")],-1)),e("div",ve,[U.value?(o(),i("img",{key:0,src:U.value,class:"id-browser-tab__favicon",alt:""},null,8,he)):(o(),P(u,{key:1,name:"carbon:earth",class:"id-browser-tab__favicon-placeholder"})),e("span",fe,a(g.value?.name||"Untitled"),1)])]),e("div",xe,[r(u,{name:"carbon:locked",class:"id-browser-tab__lock"}),e("span",be,a(q.value),1)])])],2),r(C,{icon:"carbon:image",text:"Icons"},{actions:x(()=>[r(w,{value:y.value.length,label:"icons"},null,8,["value"])]),default:x(()=>[D.value?(o(!0),i(f,{key:0},S(R.value,(t,_)=>(o(),i("div",{key:_,class:"mb-5 last:mb-0"},[e("div",ye,[e("span",null,a(L[_]?.label||_),1),e("span",ke,a(t.length),1)]),e("p",we,a(L[_]?.description||""),1),e("div",Ce,[(o(!0),i(f,null,S(t,l=>(o(),i("div",{key:l.href,class:"id-icon-card"},[e("div",Se,[e("img",{src:l.href,alt:l.rel,class:"id-icon-img"},null,8,Te)]),e("div",ze,[e("a",{href:l.href,target:"_blank",class:"id-icon-href"},a(l.href),9,$e),e("div",Pe,[l.sizes?(o(),i("span",Ie,a(l.sizes),1)):h("",!0),l.type?(o(),i("span",Ae,a(l.type),1)):h("",!0),l.media?(o(),i("span",Be,a(l.media.includes("dark")?"Dark":l.media.includes("light")?"Light":l.media),1)):h("",!0)])])]))),128))])]))),128)):(o(),i("div",Ge,[e("div",Ne,[e("div",De,[r(u,{name:"carbon:image",class:"text-xl"})]),s[8]||(s[8]=e("p",{class:"font-medium text-sm mb-0.5"}," No favicons detected ",-1)),s[9]||(s[9]=e("p",{class:"text-xs text-[var(--color-text-muted)] mb-5 max-w-xs text-center"}," Generate all required icon variants from a single source image. ",-1)),e("div",Le,[s[6]||(s[6]=e("div",{class:"id-terminal__chrome"},[e("span",{class:"id-terminal__dot id-terminal__dot--red"}),e("span",{class:"id-terminal__dot id-terminal__dot--yellow"}),e("span",{class:"id-terminal__dot id-terminal__dot--green"}),e("span",{class:"id-terminal__label"},"Terminal")],-1)),e("div",Me,[s[5]||(s[5]=e("span",{class:"id-terminal__prompt"},"$",-1)),e("code",null,a(F)),r(c,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",class:"id-terminal__copy",onClick:s[0]||(s[0]=t=>E(N)(F))})])]),e("div",Ue,[(o(),i(f,null,S(O,t=>e("div",{key:t.name,class:"id-gen-row"},[r(u,{name:"carbon:arrow-right",class:"id-gen-arrow"}),e("span",Ve,a(t.name),1),e("span",We,a(t.size),1),e("span",Ee,a(t.desc),1)])),64))]),e("div",Fe,[r(u,{name:"carbon:information",class:"hint-callout-icon text-sm mt-0.5 shrink-0"}),s[7]||(s[7]=e("div",{class:"text-xs text-[var(--color-text-muted)]"},[p(" Place a source image (SVG, PNG, or JPG) in your "),e("code",{class:"id-code"},"public/"),p(" directory, then run the command above. Requires "),e("code",{class:"id-code"},"sharp"),p(" as a dev dependency: "),e("pre",{class:"id-snippet !mt-2 !mb-0"},"pnpm add -D sharp")],-1))])])]))]),_:1}),r(C,{icon:"carbon:color-palette",text:"Theme Colors"},{actions:x(()=>[r(w,{value:d.value.themeColors.length,label:"colors"},null,8,["value"])]),default:x(()=>[d.value.themeColors.length||d.value.colorScheme?(o(),i(f,{key:0},[d.value.colorScheme?(o(),i("div",Re,[s[12]||(s[12]=e("div",{class:"id-group-header"},[e("span",null,"Color Scheme")],-1)),e("div",qe,[s[11]||(s[11]=e("div",{class:"id-color-scheme-swatch"},null,-1)),e("div",null,[e("span",Oe,a(d.value.colorScheme),1),s[10]||(s[10]=e("p",{class:"text-xs text-[var(--color-text-muted)]"}," Supported color schemes for system preferences ",-1))])])])):h("",!0),d.value.themeColors.length?(o(),i("div",He,[s[13]||(s[13]=e("div",{class:"id-group-header"},[e("span",null,"Theme Colors")],-1)),e("div",Je,[(o(!0),i(f,null,S(d.value.themeColors,(t,_)=>(o(),i("div",{key:_,class:"id-color-card"},[e("div",{class:"id-color-card__swatch",style:ee({backgroundColor:t.color})},null,4),e("div",je,[e("span",Ke,a(t.color),1),t.context!=="default"?(o(),i("span",{key:0,class:B(["id-badge",t.context==="dark"?"id-badge--dark":"id-badge--light"])},a(t.context),3)):h("",!0),t.media?(o(),i("span",Qe,a(t.media),1)):h("",!0)])]))),128))])])):h("",!0)],64)):(o(),i("div",Xe,[r(u,{name:"carbon:information",class:"hint-callout-icon text-sm mt-0.5 shrink-0"}),s[14]||(s[14]=e("div",{class:"text-xs text-[var(--color-text-muted)]"},[p(" No theme colors found. Add theme color meta tags in your "),e("code",{class:"id-code"},"nuxt.config.ts"),p(": "),e("pre",{class:"id-snippet !mt-2"},`app: {
2
+ head: {
3
+ meta: [
4
+ { name: 'theme-color', content: '#00dc82' },
5
+ { name: 'theme-color', content: '#18181b',
6
+ media: '(prefers-color-scheme: dark)' }
7
+ ]
8
+ }
9
+ }`)],-1))]))]),_:1}),r(C,{icon:"carbon:book",text:"Configuration"},{default:x(()=>[e("div",Ye,[e("div",Ze,[e("div",es,[r(u,{name:"carbon:settings"})]),s[15]||(s[15]=e("h4",{class:"id-guide-card__title"}," Site Config ",-1)),s[16]||(s[16]=e("p",{class:"id-guide-card__desc"}," Core identity settings ",-1)),s[17]||(s[17]=e("pre",{class:"id-snippet !mt-auto"},`site: {
10
+ url: 'https://example.com',
11
+ name: 'My Site',
12
+ description: 'A description',
13
+ defaultLocale: 'en',
14
+ }`,-1))]),e("div",ss,[e("div",ts,[r(u,{name:"carbon:folder"})]),s[18]||(s[18]=e("h4",{class:"id-guide-card__title"}," Metadata Files ",-1)),s[19]||(s[19]=e("p",{class:"id-guide-card__desc"},[p(" Auto-detected from "),e("code",{class:"id-code"},"public/")],-1)),e("div",os,[(o(),i(f,null,S([{name:"favicon.ico",desc:"Tab icon"},{name:"icon-*.png",desc:"PNG variants"},{name:"apple-touch-icon.png",desc:"iOS icon"},{name:"og-image.png",desc:"Social share"},{name:"twitter-image.png",desc:"Twitter card"}],t=>e("div",{key:t.name,class:"id-file-row"},[r(u,{name:"carbon:document",class:"id-file-icon"}),e("span",as,a(t.name),1),e("span",ns,a(t.desc),1)])),64))])]),e("div",is,[e("div",ls,[r(u,{name:"carbon:terminal"})]),s[22]||(s[22]=e("h4",{class:"id-guide-card__title"}," Icon Generation ",-1)),s[23]||(s[23]=e("p",{class:"id-guide-card__desc"}," All variants from one source ",-1)),e("div",rs,[s[20]||(s[20]=e("span",{class:"id-terminal__prompt"},"$",-1)),s[21]||(s[21]=e("code",{class:"text-xs"},"npx nuxt-seo-utils icons --source logo.svg",-1)),r(c,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",class:"id-terminal__copy",onClick:s[1]||(s[1]=t=>E(N)("npx nuxt-seo-utils icons --source logo.svg"))})]),s[24]||(s[24]=e("p",{class:"text-[0.6875rem] text-[var(--color-text-muted)] mt-2"},[p(" Requires "),e("code",{class:"id-code"},"sharp"),p(" dev dependency. Accepts SVG, PNG, JPG, or WebP. ")],-1))])])]),_:1})],64)):!T.value&&!b.value?(o(),P(I,{key:3,icon:"carbon:identification",title:"Waiting for connection",description:"Waiting for connection to host app..."})):h("",!0)])}}}),ps=se(cs,[["__scopeId","data-v-f0aa2872"]]);export{ps as default};