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
+ .id-hero[data-v-f0aa2872]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;gap:1.25rem;justify-content:space-between;padding:1rem 1.25rem;transition:border-color .2s}.id-hero--success[data-v-f0aa2872]{border-color:#5bb66166}.id-hero--warning[data-v-f0aa2872]{border-color:#cd920066;border-color:oklch(70% .15 80/.4)}.id-hero__left[data-v-f0aa2872]{align-items:center;display:flex;gap:1rem}.id-score-ring[data-v-f0aa2872]{flex-shrink:0;height:48px;position:relative;width:48px}.id-score-ring__svg[data-v-f0aa2872]{height:100%;width:100%}.id-score-ring__progress[data-v-f0aa2872]{transition:stroke-dasharray .6s cubic-bezier(.22,1,.36,1)}.id-score-ring__progress--success[data-v-f0aa2872]{stroke:#11ad32}.id-score-ring__progress--warning[data-v-f0aa2872]{stroke:#cd9200;stroke:oklch(70% .18 80)}.id-score-ring__text[data-v-f0aa2872]{align-items:center;display:flex;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;inset:0;justify-content:center;letter-spacing:-.02em;position:absolute}.id-score-ring__sep[data-v-f0aa2872]{margin:0 .5px;opacity:.35}.id-browser-tab[data-v-f0aa2872]{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:0;font-size:0;overflow:hidden;width:220px}.id-browser-tab__chrome[data-v-f0aa2872]{align-items:center;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-subtle);display:flex;gap:.5rem;padding:.375rem .625rem}.id-browser-tab__dots[data-v-f0aa2872]{display:flex;gap:4px}.id-browser-tab__dots span[data-v-f0aa2872]{background:var(--color-border);border-radius:50%;height:6px;width:6px}.id-browser-tab__tab[data-v-f0aa2872]{align-items:center;background:var(--color-surface-sunken);border-radius:4px 4px 0 0;display:flex;gap:.25rem;max-width:140px;padding:.125rem .375rem}.id-browser-tab__favicon[data-v-f0aa2872]{flex-shrink:0;height:12px;-o-object-fit:contain;object-fit:contain;width:12px}.id-browser-tab__favicon-placeholder[data-v-f0aa2872]{color:var(--color-text-subtle);height:12px;width:12px}.id-browser-tab__title[data-v-f0aa2872]{color:var(--color-text-muted);font-size:.5625rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.id-browser-tab__bar[data-v-f0aa2872]{align-items:center;display:flex;gap:.25rem;padding:.25rem .5rem}.id-browser-tab__lock[data-v-f0aa2872]{color:var(--color-text-subtle);height:10px;width:10px}.id-browser-tab__url[data-v-f0aa2872]{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.5625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.id-hero[data-v-f0aa2872]{align-items:flex-start;flex-direction:column}.id-browser-tab[data-v-f0aa2872]{width:100%}}.id-kv-list[data-v-f0aa2872]{display:flex;flex-direction:column}.id-kv-row[data-v-f0aa2872]{align-items:center;border-radius:var(--radius-sm);display:flex;gap:1rem;justify-content:space-between;padding:.5rem .625rem;transition:background .15s}.id-kv-row[data-v-f0aa2872]:hover{background:var(--color-surface-sunken)}.id-kv-row[data-v-f0aa2872]:nth-child(2n){background:#00000004}.dark .id-kv-row[data-v-f0aa2872]:nth-child(2n){background:#ffffff04}.id-kv-row[data-v-f0aa2872]:nth-child(2n):hover{background:var(--color-surface-sunken)}.id-kv-label[data-v-f0aa2872]{color:var(--color-text-muted);font-size:.75rem;white-space:nowrap}.id-kv-value[data-v-f0aa2872]{font-size:.8125rem;min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.id-link[data-v-f0aa2872]{color:var(--seo-green);text-decoration:none;transition:text-decoration-color .15s}.id-link[data-v-f0aa2872]:hover{text-decoration:underline;text-underline-offset:2px}.id-code[data-v-f0aa2872]{border:1px solid var(--color-border-subtle);border-radius:4px;padding:.1rem .35rem}.id-code[data-v-f0aa2872],.id-snippet[data-v-f0aa2872]{background:var(--color-surface-sunken);color:var(--color-text);font-family:var(--font-mono);font-size:.6875rem}.id-snippet[data-v-f0aa2872]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);line-height:1.65;margin-top:.5rem;overflow-x:auto;padding:.625rem .75rem;white-space:pre}.id-group-header[data-v-f0aa2872]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:.5rem;margin-bottom:.625rem;padding-bottom:.375rem}.id-group-header span[data-v-f0aa2872]{color:var(--color-text-muted);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.id-group-count[data-v-f0aa2872]{color:var(--color-text-subtle)!important;font-family:var(--font-mono)!important;font-size:.625rem!important;padding:0 .3rem}.id-badge[data-v-f0aa2872],.id-group-count[data-v-f0aa2872]{background:var(--color-surface-sunken);border-radius:4px}.id-badge[data-v-f0aa2872]{align-items:center;border:1px solid var(--color-border-subtle);color:var(--color-text-muted);display:inline-flex;font-family:var(--font-mono);font-size:.625rem;font-weight:500;padding:.05rem .4rem}.id-badge--accent[data-v-f0aa2872]{background:#11ad321a;border-color:#11ad3233;color:#278733}.dark .id-badge--accent[data-v-f0aa2872]{background:#1e662626;border-color:#3e834333;color:#6bc670}.id-badge--dark[data-v-f0aa2872]{background:#13161bcc;border-color:#2b2e33;color:#babec4}.id-badge--light[data-v-f0aa2872]{background:#f2eee7cc;border-color:#d5cdc0;color:#645235}.id-icon-grid[data-v-f0aa2872]{display:grid;gap:.625rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.id-icon-card[data-v-f0aa2872]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:.75rem;padding:.625rem .75rem;transition:border-color .2s,box-shadow .2s}.id-icon-card[data-v-f0aa2872]:hover{border-color:var(--color-neutral-300);box-shadow:0 2px 12px #0000000d}.dark .id-icon-card[data-v-f0aa2872]:hover{border-color:var(--color-neutral-700);box-shadow:0 2px 12px #00000040}.id-icon-preview[data-v-f0aa2872]{align-items:center;background-color:var(--color-surface-elevated);background-image:linear-gradient(45deg,var(--color-surface-sunken) 25%,transparent 25%),linear-gradient(-45deg,var(--color-surface-sunken) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-surface-sunken) 75%),linear-gradient(-45deg,transparent 75%,var(--color-surface-sunken) 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:48px;justify-content:center;overflow:hidden;width:48px}.id-icon-img[data-v-f0aa2872]{image-rendering:auto;max-height:36px;max-width:36px;-o-object-fit:contain;object-fit:contain}.id-icon-meta[data-v-f0aa2872]{flex:1;min-width:0}.id-icon-href[data-v-f0aa2872]{color:var(--seo-green);display:block;font-family:var(--font-mono);font-size:.75rem;margin-bottom:.25rem;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.id-icon-href[data-v-f0aa2872]:hover{text-decoration:underline;text-underline-offset:2px}.id-icon-badges[data-v-f0aa2872]{display:flex;flex-wrap:wrap;gap:.25rem}.id-empty[data-v-f0aa2872]{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.id-empty__inner[data-v-f0aa2872]{align-items:center;display:flex;flex-direction:column;padding:2rem 1.5rem}.id-empty__icon-ring[data-v-f0aa2872]{align-items:center;border:2px solid var(--color-border);border-radius:50%;color:var(--color-text-subtle);display:flex;height:48px;justify-content:center;margin-bottom:1rem;width:48px}.id-empty__icon-ring[data-v-f0aa2872],.id-terminal[data-v-f0aa2872]{background:var(--color-surface-elevated)}.id-terminal[data-v-f0aa2872]{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;width:100%}.id-terminal__chrome[data-v-f0aa2872]{align-items:center;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-subtle);display:flex;gap:6px;padding:.5rem .75rem}.id-terminal__dot[data-v-f0aa2872]{border-radius:50%;height:8px;width:8px}.id-terminal__dot--red[data-v-f0aa2872]{background:#f14d4c}.id-terminal__dot--yellow[data-v-f0aa2872]{background:#eab532}.id-terminal__dot--green[data-v-f0aa2872]{background:#45ba50}.id-terminal__label[data-v-f0aa2872]{color:var(--color-text-subtle);font-size:.625rem;font-weight:600;letter-spacing:.04em;margin-left:.25rem;text-transform:uppercase}.id-terminal__body[data-v-f0aa2872]{align-items:center;background:var(--color-surface-sunken);display:flex;font-family:var(--font-mono);font-size:.75rem;gap:.5rem;padding:.75rem}.id-terminal__prompt[data-v-f0aa2872]{color:var(--seo-green);font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.id-terminal__copy[data-v-f0aa2872]{flex-shrink:0;margin-left:auto}.id-gen-files[data-v-f0aa2872]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);margin-top:1rem;overflow:hidden;width:100%}.id-gen-row[data-v-f0aa2872]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;font-size:.6875rem;gap:.5rem;padding:.375rem .625rem}.id-gen-row[data-v-f0aa2872]:last-child{border-bottom:none}.id-gen-row[data-v-f0aa2872]:nth-child(2n){background:#00000003}.dark .id-gen-row[data-v-f0aa2872]:nth-child(2n){background:#ffffff03}.id-gen-arrow[data-v-f0aa2872]{color:var(--seo-green);flex-shrink:0;height:10px;width:10px}.id-gen-name[data-v-f0aa2872]{color:var(--color-text);font-weight:500}.id-gen-name[data-v-f0aa2872],.id-gen-size[data-v-f0aa2872]{font-family:var(--font-mono)}.id-gen-size[data-v-f0aa2872]{color:var(--color-text-subtle);margin-left:auto}.id-gen-desc[data-v-f0aa2872]{color:var(--color-text-muted);text-align:right;width:7rem}.id-color-scheme-row[data-v-f0aa2872]{align-items:center;display:flex;gap:.75rem;margin-top:.5rem}.id-color-scheme-swatch[data-v-f0aa2872]{background:linear-gradient(135deg,#fff 50%,#18181b 0);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;height:2.5rem;width:2.5rem}.id-color-grid[data-v-f0aa2872]{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:.625rem}.id-color-card[data-v-f0aa2872]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex:1;gap:.75rem;min-width:200px;padding:.625rem .75rem;transition:border-color .2s}.id-color-card[data-v-f0aa2872]:hover{border-color:var(--color-neutral-300)}.dark .id-color-card[data-v-f0aa2872]:hover{border-color:var(--color-neutral-700)}.id-color-card__swatch[data-v-f0aa2872]{border:1px solid oklch(0 0 0/.1);border-radius:var(--radius-sm);box-shadow:0 1px 4px #00000014,inset 0 1px #ffffff26;flex-shrink:0;height:2.5rem;width:2.5rem}.id-color-card__meta[data-v-f0aa2872]{min-width:0}.id-color-card__value[data-v-f0aa2872]{display:block;font-family:var(--font-mono);font-size:.8125rem;font-weight:500}.id-guide-grid[data-v-f0aa2872]{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.id-guide-card[data-v-f0aa2872]{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;padding:1rem;transition:border-color .2s,box-shadow .2s}.id-guide-card[data-v-f0aa2872]:hover{border-color:var(--color-neutral-300);box-shadow:0 2px 12px #0000000a}.dark .id-guide-card[data-v-f0aa2872]:hover{border-color:var(--color-neutral-700);box-shadow:0 2px 12px #0003}.id-guide-card__icon[data-v-f0aa2872]{align-items:center;background:#11ad321a;border-radius:var(--radius-sm);color:var(--seo-green);display:flex;font-size:.875rem;height:28px;justify-content:center;margin-bottom:.625rem;width:28px}.id-guide-card__title[data-v-f0aa2872]{font-size:.8125rem;font-weight:600;margin-bottom:.125rem}.id-guide-card__desc[data-v-f0aa2872]{color:var(--color-text-muted);font-size:.6875rem;margin-bottom:.75rem}.id-file-list[data-v-f0aa2872]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);display:flex;flex-direction:column;margin-top:auto;overflow:hidden}.id-file-row[data-v-f0aa2872]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;font-size:.625rem;gap:.375rem;padding:.3rem .5rem}.id-file-row[data-v-f0aa2872]:last-child{border-bottom:none}.id-file-row[data-v-f0aa2872]:nth-child(2n){background:#00000003}.dark .id-file-row[data-v-f0aa2872]:nth-child(2n){background:#ffffff03}.id-file-icon[data-v-f0aa2872]{color:var(--color-text-subtle);flex-shrink:0;height:10px;width:10px}.id-file-name[data-v-f0aa2872]{color:var(--color-text);font-family:var(--font-mono);font-weight:500}.id-file-desc[data-v-f0aa2872]{color:var(--color-text-muted);margin-left:auto}
@@ -0,0 +1 @@
1
+ .seo-status-card[data-v-270956ec]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;gap:1rem;padding:1rem 1.25rem;transition:border-color .2s}.seo-status-card--success[data-v-270956ec]{border-color:#5bb66166}.seo-status-card--warning[data-v-270956ec]{border-color:#cd920066;border-color:oklch(70% .15 80/.4)}.seo-score-ring[data-v-270956ec]{flex-shrink:0;height:48px;position:relative;width:48px}.seo-score-ring__svg[data-v-270956ec]{height:100%;width:100%}.seo-score-ring__progress[data-v-270956ec]{transition:stroke-dasharray .6s cubic-bezier(.22,1,.36,1)}.seo-score-ring__progress--success[data-v-270956ec]{stroke:#11ad32}.seo-score-ring__progress--warning[data-v-270956ec]{stroke:#cd9200;stroke:oklch(70% .18 80)}.seo-score-ring__text[data-v-270956ec]{align-items:center;display:flex;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;inset:0;justify-content:center;letter-spacing:-.02em;position:absolute}.seo-score-ring__separator[data-v-270956ec]{margin:0 .5px;opacity:.35}.serp-preview-container[data-v-270956ec]{background:#fff;border:1px solid oklch(0 0 0/.08);border-radius:var(--radius-md);padding:1.25rem}.dark .serp-preview-container[data-v-270956ec]{background:#202124;border-color:#ffffff0f}.serp-preview__favicon[data-v-270956ec]{align-items:center;background:#0000000a;border-radius:50%;display:flex;height:26px;justify-content:center;width:26px}.dark .serp-preview__favicon[data-v-270956ec]{background:#ffffff0f}.serp-preview__title[data-v-270956ec]{color:#1a0dab;cursor:pointer;font-size:1.25rem;line-height:1.3;margin-bottom:.25rem}.serp-preview__title[data-v-270956ec]:hover{text-decoration:underline}.dark .serp-preview__title[data-v-270956ec]{color:#8ab4f8}.serp-preview__description[data-v-270956ec]{color:#4d5156;display:-webkit-box;font-size:.875rem;-webkit-line-clamp:2;line-height:1.58;-webkit-box-orient:vertical;overflow:hidden}.dark .serp-preview__description[data-v-270956ec]{color:#bdc1c6}.seo-length-status[data-v-270956ec]{align-items:center;border-radius:9999px;display:inline-flex;font-size:.6875rem;font-weight:600;letter-spacing:.01em;padding:.125rem .5rem}.seo-length-status--success[data-v-270956ec]{background:#6bc6701f;color:#107823}.dark .seo-length-status--success[data-v-270956ec]{background:#10782326;color:#57cb60}.seo-length-status--warning[data-v-270956ec]{background:#d6a54d1f;color:#946900;color:oklch(55% .15 80)}.dark .seo-length-status--warning[data-v-270956ec]{background:#94690026;background:oklch(55% .12 80/.15);color:#dfa11a}.seo-length-status--error[data-v-270956ec]{background:#dc655f1a;color:#c53637}.dark .seo-length-status--error[data-v-270956ec]{background:#9c433f26;color:#f47b74}.seo-progress-track[data-v-270956ec]{background:var(--color-surface-sunken);border-radius:3px;height:6px;overflow:visible;position:relative}.seo-progress-fill[data-v-270956ec]{border-radius:3px;height:100%;transition:width .4s cubic-bezier(.22,1,.36,1)}.seo-progress-fill--success[data-v-270956ec]{background:#11ad32;box-shadow:0 0 8px #11ad324d}.seo-progress-fill--warning[data-v-270956ec]{background:#cd9200;background:oklch(70% .18 80);box-shadow:0 0 8px #cd92004d;box-shadow:0 0 8px oklch(70% .18 80/.3)}.seo-progress-fill--error[data-v-270956ec]{background:#e64343;box-shadow:0 0 8px #e643434d}.seo-progress-marker[data-v-270956ec]{background:var(--color-text-subtle);height:10px;opacity:.4;position:absolute;top:-2px;transform:translate(-.5px);width:1px}.seo-issue-row[data-v-270956ec]{align-items:flex-start;border-radius:var(--radius-sm);display:flex;gap:.5rem;padding:.625rem .75rem;transition:background .15s}.seo-issue-row[data-v-270956ec]:hover{background:var(--color-surface-sunken)}.seo-category-header[data-v-270956ec]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:.5rem;margin-bottom:.5rem;padding-bottom:.375rem}.seo-category-header span[data-v-270956ec]{color:var(--color-text-muted);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.seo-checklist__item[data-v-270956ec]{align-items:center;border-radius:var(--radius-sm);display:flex;gap:.5rem;padding:.375rem .5rem;transition:background .15s}.seo-checklist__item[data-v-270956ec]:hover{background:var(--color-surface-sunken)}.seo-checklist__value[data-v-270956ec]{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:.6875rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seo-meta-table__row[data-v-270956ec]{align-items:center;border-radius:var(--radius-sm);display:flex;gap:.75rem;padding:.5rem .625rem;transition:background .15s}.seo-meta-table__row[data-v-270956ec]:hover{background:var(--color-surface-sunken)}.seo-meta-table__row[data-v-270956ec]:nth-child(2n){background:#00000004}.dark .seo-meta-table__row[data-v-270956ec]:nth-child(2n){background:#ffffff04}.seo-meta-table__row[data-v-270956ec]:nth-child(2n):hover{background:var(--color-surface-sunken)}
@@ -0,0 +1 @@
1
+ .devtools-error[data-v-98d242a0]{flex-direction:column;gap:.75rem;padding:3rem 1.5rem;text-align:center}.devtools-error[data-v-98d242a0],.devtools-error-icon-wrap[data-v-98d242a0]{align-items:center;display:flex;justify-content:center}.devtools-error-icon-wrap[data-v-98d242a0]{background:#dc655f1a;border-radius:var(--radius-lg);height:3rem;width:3rem}.dark .devtools-error-icon-wrap[data-v-98d242a0]{background:#843c3826}.devtools-error-icon[data-v-98d242a0]{color:#d74745;font-size:1.5rem}.dark .devtools-error-icon[data-v-98d242a0]{color:#ed756e}.devtools-error-title[data-v-98d242a0]{color:var(--color-text);font-size:.875rem;font-weight:600}.devtools-error-message[data-v-98d242a0]{color:var(--color-text-muted);font-size:.75rem;line-height:1.5;max-width:20rem}.devtools-error-actions[data-v-98d242a0]{display:flex;gap:.5rem;margin-top:.25rem}.devtools-empty[data-v-72d2ca37]{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:32rem;text-align:center}.devtools-empty-icon[data-v-72d2ca37]{align-items:center;border-radius:var(--radius-lg);display:inline-flex;height:4rem;justify-content:center;margin-bottom:1.5rem;width:4rem}.devtools-empty-icon-default[data-v-72d2ca37]{background:#11ad321f;color:var(--seo-green)}.dark .devtools-empty-icon-default[data-v-72d2ca37]{background:#11ad3226}.devtools-empty-icon-error[data-v-72d2ca37]{background:#cc272e1f;color:#cc272e}.dark .devtools-empty-icon-error[data-v-72d2ca37]{background:#cc272e26;color:#ff847d}.devtools-empty-title[data-v-72d2ca37]{color:var(--color-text);font-size:1.125rem;font-weight:600;margin-bottom:.75rem}@media(min-width:640px){.devtools-empty-title[data-v-72d2ca37]{font-size:1.25rem}}.devtools-empty-description[data-v-72d2ca37]{color:var(--color-text-muted);font-size:.875rem;line-height:1.5;margin-bottom:1.25rem}@media(min-width:640px){.devtools-empty-description[data-v-72d2ca37]{font-size:1rem}}.devtools-empty-actions[data-v-72d2ca37]{align-items:center;display:flex;flex-direction:column;gap:.75rem}
@@ -0,0 +1 @@
1
+ import{d as E,o as a,g as c,i as d,b,A as C,j as p,k as m,h as A,l as k,n as $,z as w}from"./CFjIu9of.js";const q={class:"devtools-error"},D={class:"devtools-error-icon-wrap"},M={class:"devtools-error-title"},R={key:0,class:"devtools-error-message"},N={key:1,class:"devtools-error-actions"},L=E({__name:"DevtoolsError",props:{icon:{default:"carbon:warning"},title:{default:"Something went wrong"},error:{}},setup(t){return(n,s)=>{const i=C;return a(),c("div",q,[d("div",D,[b(i,{name:t.icon,class:"devtools-error-icon"},null,8,["name"])]),d("p",M,p(t.title),1),t.error?(a(),c("p",R,p(typeof t.error=="string"?t.error:t.error.message),1)):m("",!0),n.$slots.default?(a(),c("div",N,[A(n.$slots,"default",{},void 0,!0)])):m("",!0)])}}}),P=Object.assign(k(L,[["__scopeId","data-v-98d242a0"]]),{__name:"DevtoolsError"}),X={class:"devtools-empty"},H={class:"devtools-empty-title"},O={key:0,class:"devtools-empty-description"},x={key:1,class:"devtools-empty-actions"},j=E({__name:"DevtoolsEmptyState",props:{icon:{default:"carbon:search"},title:{},description:{},variant:{default:"default"}},setup(t){return(n,s)=>{const i=C;return a(),c("div",X,[d("div",{class:$(["devtools-empty-icon",`devtools-empty-icon-${t.variant}`])},[b(i,{name:t.icon,class:"w-8 h-8","aria-hidden":"true"},null,8,["name"])],2),d("h2",H,p(t.title),1),t.description||n.$slots.description?(a(),c("p",O,[A(n.$slots,"description",{},()=>[w(p(t.description),1)],!0)])):m("",!0),n.$slots.default?(a(),c("div",x,[A(n.$slots,"default",{},void 0,!0)])):m("",!0)])}}}),V=Object.assign(k(j,[["__scopeId","data-v-72d2ca37"]]),{__name:"DevtoolsEmptyState"}),y={TITLE_MAX_CHARS:60,TITLE_WARN_CHARS:50,TITLE_MAX_PIXELS:580,DESC_MAX_CHARS:160,DESC_WARN_CHARS:150,DESC_MAX_PIXELS:920};function W(t,n=16){return Math.round(t.length*n*.55)}function B(t){const s=new DOMParser().parseFromString(t,"text/html"),i=s.querySelector("title")?.textContent?.trim()||"",I=s.querySelector('meta[name="description"]')?.getAttribute("content")?.trim()||"",T=s.querySelector('link[rel="canonical"]')?.getAttribute("href")||"",v={};s.querySelectorAll('meta[property^="og:"]').forEach(e=>{const o=e.getAttribute("property"),r=e.getAttribute("content");o&&r&&(v[o]=r)});const g={};s.querySelectorAll('meta[name^="twitter:"]').forEach(e=>{const o=e.getAttribute("name"),r=e.getAttribute("content");o&&r&&(g[o]=r)});const l=[];s.querySelectorAll("meta").forEach(e=>{const o=e.getAttribute("name"),r=e.getAttribute("property"),u=e.getAttribute("http-equiv"),h=e.getAttribute("content")||"",f=e.getAttribute("media")||void 0;o?l.push({name:o,content:h,type:"name",media:f}):r?l.push({name:r,content:h,type:"property",media:f}):u&&l.push({name:u,content:h,type:"http-equiv",media:f})});const _=[];s.querySelectorAll('script[type="application/ld+json"]').forEach(e=>{const o=e.textContent?.trim()||"";try{const r=JSON.parse(o),u=r["@type"]||(r["@graph"]?"Graph":"Unknown");_.push({type:u,data:r,raw:o})}catch{_.push({type:"Invalid JSON",data:null,raw:o})}});const S=[];return s.querySelectorAll('link[rel="icon"], link[rel="apple-touch-icon"], link[rel="shortcut icon"]').forEach(e=>{const o=e.getAttribute("href");o&&S.push({rel:e.getAttribute("rel")||"icon",href:o,type:e.getAttribute("type")||void 0,sizes:e.getAttribute("sizes")||void 0,media:e.getAttribute("media")||void 0})}),{title:i,description:I,ogTags:v,twitterTags:g,allMeta:l,canonical:T,schemas:_,iconLinks:S}}function U(t){return t>y.TITLE_MAX_CHARS?"error":t<30?"warning":"success"}function J(t){return t>y.DESC_MAX_CHARS?"error":t>y.DESC_WARN_CHARS||t<70?"warning":"success"}export{y as S,P as _,V as a,J as d,W as e,B as p,U as t};
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.BHKjHnLW.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/DtDZComy.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/DtDZComy.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774543161416,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.p5YGwGey.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/CFjIu9of.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/CFjIu9of.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"668e2166-bb07-4e7f-a101-55cab3316289",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774587864639,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.BHKjHnLW.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/DtDZComy.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/DtDZComy.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774543161418,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.p5YGwGey.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/CFjIu9of.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/CFjIu9of.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"668e2166-bb07-4e7f-a101-55cab3316289",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774587864641,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.BHKjHnLW.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/DtDZComy.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/DtDZComy.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774543161418,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.p5YGwGey.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/CFjIu9of.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/CFjIu9of.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"668e2166-bb07-4e7f-a101-55cab3316289",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774587864641,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.BHKjHnLW.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/DtDZComy.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/DtDZComy.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT_SITE_CONFIG__={_priority:{env:-15},env:"production"}</script><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774543161418,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.p5YGwGey.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/CFjIu9of.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/CFjIu9of.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT_SITE_CONFIG__={_priority:{env:-15},env:"production"}</script><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"668e2166-bb07-4e7f-a101-55cab3316289",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774587864641,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.BHKjHnLW.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/DtDZComy.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/DtDZComy.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774543161418,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.p5YGwGey.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/CFjIu9of.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/CFjIu9of.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"668e2166-bb07-4e7f-a101-55cab3316289",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774587864641,false]</script></body></html>
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.16.0"
6
6
  },
7
- "version": "8.1.1",
7
+ "version": "8.1.3",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -9,7 +9,7 @@ import { unpackMeta } from '@unhead/vue/utils';
9
9
  import { glob } from 'tinyglobby';
10
10
  import { encodePath, joinURL } from 'ufo';
11
11
  import escapeRE from 'escape-string-regexp';
12
- import { readFile } from 'node:fs/promises';
12
+ import { readFile, readdir } from 'node:fs/promises';
13
13
  import imageSize from 'image-size';
14
14
  import { setupDevToolsUI as setupDevToolsUI$1 } from 'nuxtseo-shared/devtools';
15
15
 
@@ -70,18 +70,22 @@ export {}
70
70
  });
71
71
  }
72
72
 
73
- const MetaTagFileGlobs = [
74
- "**/*og-image.{png,jpg,jpeg,gif}",
75
- "**/*opengraph-image.{png,jpg,jpeg,gif}",
76
- "**/*twitter-image.{png,jpg,jpeg,gif}",
77
- "**/*apple-icon.{jpg,jpeg,png}",
78
- "**/*apple-touch.{jpg,jpeg,png}",
79
- "**/*apple-touch-*.{jpg,jpeg,png}",
80
- "**/*apple-touch-icon.{jpg,jpeg,png}",
81
- "**/*apple-touch-icon-*.{jpg,jpeg,png}",
82
- "**/*icon.{ico,jpg,jpeg,png,svg}",
83
- "**/*icon-*.{ico,jpg,jpeg,png,svg}"
73
+ const MetaTagFileDeepGlobs = [
74
+ "**/og-image.{png,jpg,jpeg,gif}",
75
+ "**/opengraph-image.{png,jpg,jpeg,gif}",
76
+ "**/twitter-image.{png,jpg,jpeg,gif}",
77
+ "**/apple-icon.{jpg,jpeg,png}",
78
+ "**/apple-touch.{jpg,jpeg,png}",
79
+ "**/apple-touch-*.{jpg,jpeg,png}",
80
+ "**/apple-touch-icon.{jpg,jpeg,png}",
81
+ "**/apple-touch-icon-*.{jpg,jpeg,png}",
82
+ "**/icon.{ico,jpg,jpeg,png,svg}",
83
+ "**/icon-*.{ico,jpg,jpeg,png,svg}"
84
84
  ];
85
+ const META_TAG_FILE_RE = /^(?:(?:og-image|opengraph-image)\.(?:png|jpe?g|gif)|twitter-image\.(?:png|jpe?g|gif)|apple-(?:icon|touch|touch-icon)(?:-[^.]+)?\.(?:jpe?g|png)|icon(?:-[^.]+)?\.(?:ico|jpe?g|png|svg)|favicon\.ico)$/;
86
+ function isMetaTagFile(filename) {
87
+ return META_TAG_FILE_RE.test(filename);
88
+ }
85
89
 
86
90
  const INDEX_SUFFIX_RE = /-index$/;
87
91
  function generateNuxtPageFromFile(file, pagesDir) {
@@ -229,40 +233,43 @@ async function getImageDimensions(absolutePath) {
229
233
 
230
234
  const DIR_SUFFIX_RE = /\/_dir$/;
231
235
  async function generateTagsFromPageDirImages(nuxt = useNuxt()) {
232
- const pagesDir = resolve(nuxt.options.rootDir, nuxt.options.dir.pages);
233
- const files = await glob(MetaTagFileGlobs, { cwd: pagesDir, onlyFiles: true });
236
+ const pagesDirs = nuxt.options._layers.map((layer) => resolve(layer.config.rootDir, layer.config.dir?.pages || "pages")).filter((dir) => fs.existsSync(dir));
234
237
  const appendRouteRules = {};
235
238
  const devMiddlewareMap = {};
236
239
  const nitroOutputMap = [];
237
- for (const file of files) {
238
- const fileName = basename(file);
239
- const keyword = fileName.split(".")[0] || "";
240
- let { path } = generateNuxtPageFromFile(resolve(pagesDir, dirname(file)), pagesDir);
241
- const meta = await getImageMeta(pagesDir, file);
242
- if (path.endsWith("/_dir"))
243
- path = path.replace(DIR_SUFFIX_RE, "");
244
- const src = joinURL(path, fileName);
245
- if (["icon", "apple-touch-icon", "apple-icon"].includes(keyword) || keyword.startsWith("icon-")) {
246
- appendRouteRules[`${path}/**`] = {
247
- head: {
248
- link: [
249
- { rel: keyword, type: meta.type, href: src, sizes: meta.sizes }
250
- ]
251
- }
252
- };
253
- } else {
254
- appendRouteRules[`${path}/**`] = {
255
- seoMeta: {
256
- [["opengraph-image", "og-image"].includes(keyword) ? "ogImage" : "twitterImage"]: [{ url: src, ...meta, sizes: void 0 }]
257
- }
258
- };
240
+ for (const pagesDir of pagesDirs) {
241
+ const files = await glob(MetaTagFileDeepGlobs, { cwd: pagesDir, onlyFiles: true });
242
+ for (const file of files) {
243
+ const fileName = basename(file);
244
+ const keyword = fileName.split(".")[0] || "";
245
+ let { path } = generateNuxtPageFromFile(resolve(pagesDir, dirname(file)), pagesDir);
246
+ const meta = await getImageMeta(pagesDir, file);
247
+ if (path.endsWith("/_dir"))
248
+ path = path.replace(DIR_SUFFIX_RE, "");
249
+ const src = joinURL(path, fileName);
250
+ if (appendRouteRules[`${path}/**`])
251
+ continue;
252
+ if (["icon", "apple-touch-icon", "apple-icon"].includes(keyword) || keyword.startsWith("icon-")) {
253
+ appendRouteRules[`${path}/**`] = {
254
+ head: {
255
+ link: [
256
+ { rel: keyword, type: meta.type, href: src, sizes: meta.sizes }
257
+ ]
258
+ }
259
+ };
260
+ } else {
261
+ appendRouteRules[`${path}/**`] = {
262
+ seoMeta: {
263
+ [["opengraph-image", "og-image"].includes(keyword) ? "ogImage" : "twitterImage"]: [{ url: src, ...meta, sizes: void 0 }]
264
+ }
265
+ };
266
+ }
267
+ devMiddlewareMap[src] = resolve(pagesDir, file);
268
+ nitroOutputMap.push({
269
+ src: resolve(pagesDir, file),
270
+ dest: src.slice(1)
271
+ });
259
272
  }
260
- devMiddlewareMap[src] = resolve(pagesDir, file);
261
- nitroOutputMap.push({
262
- src: resolve(pagesDir, file),
263
- dest: src.slice(1)
264
- // remove leading slash
265
- });
266
273
  }
267
274
  nuxt.options.routeRules = defu(appendRouteRules, nuxt.options.routeRules);
268
275
  nuxt.options.nitro.routeRules = defu(appendRouteRules, nuxt.options.nitro.routeRules);
@@ -284,9 +291,24 @@ async function generateTagsFromPageDirImages(nuxt = useNuxt()) {
284
291
  });
285
292
  }
286
293
 
294
+ async function listMetaTagFiles(dir) {
295
+ const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
296
+ return entries.filter((e) => e.isFile() && isMetaTagFile(e.name)).map((e) => e.name);
297
+ }
287
298
  async function generateTagsFromPublicFiles(nuxt = useNuxt()) {
288
- const publicDirPath = resolve(nuxt.options.rootDir, nuxt.options.dir.public);
289
- const rootPublicFiles = (await glob(MetaTagFileGlobs, { cwd: publicDirPath, onlyFiles: true, deep: 1 })).map((file) => basename(file));
299
+ const publicDirs = nuxt.options._layers.map((layer) => resolve(layer.config.rootDir, layer.config.dir?.public || "public"));
300
+ const seen = /* @__PURE__ */ new Set();
301
+ const fileEntries = [];
302
+ for (const dir of publicDirs) {
303
+ const files = await listMetaTagFiles(dir);
304
+ for (const file of files) {
305
+ if (!seen.has(file)) {
306
+ seen.add(file);
307
+ fileEntries.push({ file, dir });
308
+ }
309
+ }
310
+ }
311
+ const rootPublicFiles = fileEntries.map((e) => e.file);
290
312
  const headConfig = defu(nuxt.options.app.head, {
291
313
  link: [],
292
314
  meta: []
@@ -301,10 +323,11 @@ async function generateTagsFromPublicFiles(nuxt = useNuxt()) {
301
323
  }
302
324
  const isIcon = (file) => file.includes("icon") && !file.endsWith(".ico");
303
325
  const isAppleTouchIcon = (file) => file.includes("apple-icon") || file.includes("apple-touch-icon") || file.includes("apple-touch");
326
+ const resolveDir = (file) => fileEntries.find((e) => e.file === file).dir;
304
327
  headConfig.link.push(
305
328
  ...await Promise.all([
306
329
  ...rootPublicFiles.filter((file) => isIcon(file) && !isAppleTouchIcon(file)).sort().map(async (iconFile) => {
307
- const meta = await getImageMeta(publicDirPath, iconFile, true);
330
+ const meta = await getImageMeta(resolveDir(iconFile), iconFile, true);
308
331
  return {
309
332
  rel: "icon",
310
333
  href: joinURL(nuxt.options.app.baseURL, iconFile),
@@ -312,7 +335,7 @@ async function generateTagsFromPublicFiles(nuxt = useNuxt()) {
312
335
  };
313
336
  }),
314
337
  ...rootPublicFiles.filter((file) => isAppleTouchIcon(file)).sort().map(async (appleIconFile) => {
315
- const meta = await getImageMeta(publicDirPath, appleIconFile, true);
338
+ const meta = await getImageMeta(resolveDir(appleIconFile), appleIconFile, true);
316
339
  return {
317
340
  rel: "apple-touch-icon",
318
341
  href: joinURL(nuxt.options.app.baseURL, appleIconFile),
@@ -328,7 +351,7 @@ async function generateTagsFromPublicFiles(nuxt = useNuxt()) {
328
351
  if (twitterImageFiles.length) {
329
352
  headConfig.meta.push(
330
353
  ...(await Promise.all(twitterImageFiles.map(async (twitterImageFile) => {
331
- const dimensions = await getImageDimensions(resolve(publicDirPath, twitterImageFile));
354
+ const dimensions = await getImageDimensions(resolve(fileEntries.find((e) => e.file === twitterImageFile).dir, twitterImageFile));
332
355
  return unpackMeta({
333
356
  twitterImage: {
334
357
  url: twitterImageFile,
@@ -346,7 +369,7 @@ async function generateTagsFromPublicFiles(nuxt = useNuxt()) {
346
369
  if (ogImageFiles.length) {
347
370
  headConfig.meta.push(
348
371
  ...(await Promise.all(ogImageFiles.map(async (src) => {
349
- const meta = await getImageMeta(publicDirPath, src, false);
372
+ const meta = await getImageMeta(fileEntries.find((e) => e.file === src).dir, src, false);
350
373
  delete meta.sizes;
351
374
  const seoMeta = {
352
375
  ogImage: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-seo-utils",
3
3
  "type": "module",
4
- "version": "8.1.1",
4
+ "version": "8.1.3",
5
5
  "description": "SEO utilities to improve your Nuxt sites discoverability and shareability",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/harlan-zw",
@@ -60,9 +60,9 @@
60
60
  "defu": "^6.1.4",
61
61
  "escape-string-regexp": "^5.0.0",
62
62
  "image-size": "^2.0.2",
63
- "nuxt-site-config": "^4.0.6",
64
- "nuxtseo-layer-devtools": "^0.5.1",
65
- "nuxtseo-shared": "^0.9.0",
63
+ "nuxt-site-config": "^4.0.7",
64
+ "nuxtseo-layer-devtools": "^5.0.1",
65
+ "nuxtseo-shared": "^5.0.1",
66
66
  "pathe": "^2.0.3",
67
67
  "pkg-types": "^2.3.0",
68
68
  "scule": "^1.3.0",
@@ -98,7 +98,7 @@
98
98
  "typescript": "^6.0.2",
99
99
  "ultrahtml": "^1.6.0",
100
100
  "unbuild": "^3.6.1",
101
- "vitest": "^4.1.1",
101
+ "vitest": "^4.1.2",
102
102
  "vue-tsc": "^3.2.6"
103
103
  },
104
104
  "scripts": {
@@ -1 +0,0 @@
1
- import{d as K,u as Q,s as Y,q as G,v as H,x as Z,o as r,g as i,c as w,y as ee,w as c,b as l,e as te,F as k,i as t,n as d,z as S,j as a,A as se,p as ae,a as u,D as M,m as $,k as oe,C as ne,r as I,f as v,l as re}from"./DtDZComy.js";import{_ as le,S as _,e as ie,a as ce,t as ue,d as ve,p as ge}from"./Dv_MQXNa.js";import{_ as de}from"./BjpcrkP-.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"},Te={class:"flex items-center gap-3 mb-2"},be={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)]"},Re={class:"seo-progress-track"},Le={class:"text-xs text-[var(--color-text-muted)] truncate"},De={class:"space-y-3"},Be={class:"flex items-center justify-between"},He={class:"text-xs font-mono text-[var(--color-text-muted)]"},Ie={class:"seo-progress-track"},ze={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)]"},We={class:"space-y-5"},Xe={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:W,copied:X}=Q(),A=I(!1),T=I(null),e=I(null),E=v(()=>e.value?.title.length||0),N=v(()=>e.value?.description.length||0),h=v(()=>ue(E.value)),f=v(()=>ve(N.value)),F=v(()=>{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}}),R=v(()=>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"]},{category:"Twitter",name:"twitter:image",present:!!e.value.twitterTags["twitter:image"],value:e.value.twitterTags["twitter:image"]}]:[]),V=v(()=>{const s={};return R.value.forEach(o=>{s[o.category]||(s[o.category]=[]),s[o.category].push(o)}),s}),x=v(()=>({present:R.value.filter(o=>o.present).length,total:R.value.length})),j=v(()=>{const{present:s,total:o}=x.value;return o>0?Math.round(s/o*100):0}),g=v(()=>{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=v(()=>{if(!e.value)return null;const s=g.value.some(y=>y.severity==="error")||h.value==="error"||f.value==="error",o=g.value.length>0||h.value==="warning"||f.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 z(s){return s==="success"?"Good":s==="warning"?"Needs work":"Too long"}async function O(){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 y=await o.text(),b=ge(y);e.value={...b,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&&O()},{immediate:!0}),(s,o)=>{const y=ee,b=te,J=le,D=se,p=ae,B=de,U=ne,q=ce;return r(),i("div",_e,[A.value?(r(),w(y,{key:0})):T.value?(r(),w(J,{key:1,error:T.value,title:"Failed to check page"},{default:c(()=>[l(b,{size:"sm",variant:"ghost",icon:"carbon:reset",label:"Retry",onClick:O})]),_:1},8,["error"])):e.value?(r(),i(k,{key:2},[t("div",{class:d(["seo-status-card",`seo-status-card--${L.value?.variant}`])},[t("div",pe,[(r(),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:d(["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,[S(a(x.value.present),1),o[2]||(o[2]=t("span",{class:"seo-score-ring__separator"},"/",-1)),S(a(x.value.total),1)])]),t("div",null,[t("p",xe,a(L.value?.message),1),t("p",ye,a(x.value.present)+" of "+a(x.value.total)+" essential tags present ",1)])],2),l(p,{icon:"carbon:search",text:"Google Search Preview"},{default:c(()=>[t("div",we,[t("div",ke,[t("div",Te,[t("div",be,[l(D,{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,[l(p,{icon:"carbon:text-short-paragraph",text:"Title",collapse:!1},{default:c(()=>[t("div",Ae,[t("div",Ee,[t("span",{class:d(["seo-length-status",`seo-length-status--${h.value}`])},a(z(h.value)),3),t("span",Ne,a(E.value)+"/"+a(u(_).TITLE_MAX_CHARS)+" chars · ~"+a(u(ie)(e.value.title))+"px ",1)]),t("div",Re,[t("div",{class:d(["seo-progress-fill",`seo-progress-fill--${h.value}`]),style:M({width:`${Math.min(100,E.value/u(_).TITLE_MAX_CHARS*100)}%`})},null,6),t("div",{class:"seo-progress-marker",style:M({left:`${u(_).TITLE_WARN_CHARS/u(_).TITLE_MAX_CHARS*100}%`})},null,4)]),t("p",Le,a(e.value.title||"Not set"),1)])]),_:1}),l(p,{icon:"carbon:text-long-paragraph",text:"Description",collapse:!1},{default:c(()=>[t("div",De,[t("div",Be,[t("span",{class:d(["seo-length-status",`seo-length-status--${f.value}`])},a(z(f.value)),3),t("span",He,a(N.value)+"/"+a(u(_).DESC_MAX_CHARS)+" chars ",1)]),t("div",Ie,[t("div",{class:d(["seo-progress-fill",`seo-progress-fill--${f.value}`]),style:M({width:`${Math.min(100,N.value/u(_).DESC_MAX_CHARS*100)}%`})},null,6),t("div",{class:"seo-progress-marker",style:M({left:`${u(_).DESC_WARN_CHARS/u(_).DESC_MAX_CHARS*100}%`})},null,4)]),t("p",ze,a(e.value.description||"Not set"),1)])]),_:1})]),g.value.length?(r(),w(p,{key:0,icon:"carbon:warning",text:"Missing Tags"},{actions:c(()=>[l(B,{value:g.value.filter(n=>n.severity==="error").length,label:"errors",variant:g.value.some(n=>n.severity==="error")?"danger":void 0},null,8,["value","variant"]),l(B,{value:g.value.filter(n=>n.severity==="warning").length,label:"warnings",variant:g.value.some(n=>n.severity==="warning")?"warning":void 0},null,8,["value","variant"])]),default:c(()=>[t("div",Oe,[(r(!0),i(k,null,$(g.value,n=>(r(),i("div",{key:n.tag,class:"seo-issue-row"},[l(D,{name:n.severity==="error"?"carbon:close-filled":"carbon:warning-filled",class:d(["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),l(p,{icon:"carbon:task",text:"Essential Tags Checklist"},{default:c(()=>[t("div",We,[(r(!0),i(k,null,$(V.value,(n,C)=>(r(),i("div",{key:C},[t("div",Xe,[t("span",null,a(C),1)]),t("div",Fe,[(r(!0),i(k,null,$(n,m=>(r(),i("div",{key:m.name,class:"seo-checklist__item"},[l(D,{name:m.present?"carbon:checkmark-filled":"carbon:close-filled",class:d(["text-sm shrink-0",m.present?"text-green-500":"text-red-400"])},null,8,["name","class"]),t("span",Ve,a(m.name),1),m.value?(r(),i("span",je,a(m.value),1)):(r(),w(U,{key:1,color:"neutral",variant:"subtle",size:"xs"},{default:c(()=>[...o[3]||(o[3]=[S(" missing ",-1)])]),_:1}))]))),128))])]))),128))])]),_:1}),l(p,{icon:"carbon:list",text:"All Meta Tags"},{actions:c(()=>[l(B,{value:e.value.allMeta.length,label:"tags"},null,8,["value"]),l(b,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",label:u(X)?"Copied!":"Copy JSON",onClick:o[0]||(o[0]=n=>u(W)(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,[(r(!0),i(k,null,$(e.value.allMeta,(n,C)=>(r(),i("div",{key:n.name+C,class:"seo-meta-table__row"},[l(U,{color:n.type==="property"?"primary":n.type==="name"?"neutral":"warning",variant:"subtle",size:"xs"},{default:c(()=>[S(a(n.type),1)]),_:2},1032,["color"]),t("span",qe,a(n.name),1),t("span",Ke,a(n.content),1)]))),128))])]),_:1})],64)):(r(),w(q,{key:3,icon:"carbon:plug",title:"Waiting for connection",description:"Waiting for connection to host app..."}))])}}}),st=re(Qe,[["__scopeId","data-v-e3945f68"]]);export{st as default};
@@ -1,17 +0,0 @@
1
- import{d as K,u as Q,s as X,q as L,v as W,x as Z,o,g as a,c as w,y as ee,w as v,b as l,e as se,F as x,i as e,n as N,z as r,j as i,A as te,m as y,B as oe,k as g,a as B,p as ae,C as ne,D as ie,r as U,f as b,l as le}from"./DtDZComy.js";import{_ as re,a as ce,p as de}from"./Dv_MQXNa.js";import{_ as ue}from"./BjpcrkP-.js";const me={class:"space-y-5 stagger-children"},_e={class:"id-hero__left"},ve={class:"id-score-ring"},pe={viewBox:"0 0 36 36",class:"id-score-ring__svg"},ge=["stroke-dasharray"],he={class:"id-score-ring__text"},fe={class:"font-medium text-sm"},xe={class:"text-xs text-[var(--color-text-muted)]"},be={class:"id-browser-tab"},ye={class:"id-browser-tab__chrome"},ke={class:"id-browser-tab__tab"},we=["src"],Se={class:"id-browser-tab__title"},Ce={class:"id-browser-tab__bar"},Te={class:"id-browser-tab__url"},Ie={class:"id-kv-list"},ze={class:"id-kv-label"},$e=["href"],Ne={class:"id-group-header"},Ae={class:"id-group-count"},Ge={class:"text-xs text-[var(--color-text-muted)] mb-3"},Pe={class:"id-icon-grid"},Be={class:"id-icon-preview"},De=["src","alt"],Le={class:"id-icon-meta"},Ue=["href"],Oe={class:"id-icon-badges"},Re={key:0,class:"id-badge"},Ee={key:1,class:"id-badge"},Me={key:2,class:"id-badge id-badge--accent"},Ve={key:1,class:"id-empty panel-grids"},We={class:"id-empty__inner"},Fe={class:"id-empty__icon-ring"},qe={class:"id-terminal"},Je={class:"id-terminal__body"},je={class:"id-gen-files"},He={class:"id-gen-name"},Ye={class:"id-gen-size"},Ke={class:"id-gen-desc"},Qe={class:"hint-callout mt-4 w-full"},Xe={key:0,class:"id-social-grid"},Ze={class:"id-social-card__header"},es={key:0,class:"text-xs font-mono text-[var(--color-text-muted)]"},ss={class:"id-social-card__preview"},ts=["src","alt"],os=["href"],as={class:"id-social-card__header"},ns={key:0,class:"text-xs font-mono text-[var(--color-text-muted)]"},is={class:"id-social-card__preview"},ls=["src"],rs=["href"],cs={key:1,class:"hint-callout"},ds={key:0,class:"mb-5"},us={class:"id-color-scheme-row"},ms={class:"text-sm font-mono font-medium"},_s={key:1},vs={class:"id-color-grid"},ps={class:"id-color-card__meta"},gs={class:"id-color-card__value"},hs={key:1,class:"text-[0.625rem] text-[var(--color-text-subtle)] block mt-0.5 font-mono"},fs={key:1,class:"hint-callout"},xs={class:"id-guide-grid"},bs={class:"id-guide-card"},ys={class:"id-guide-card__icon"},ks={class:"id-guide-card"},ws={class:"id-guide-card__icon"},Ss={class:"id-file-list"},Cs={class:"id-file-name"},Ts={class:"id-file-desc"},Is={class:"id-guide-card"},zs={class:"id-guide-card__icon"},$s={class:"id-terminal__body !mt-auto !rounded-[var(--radius-sm)]"},F="npx nuxt-seo-utils icons --source <your-logo.svg>",Ns=K({__name:"identity",setup(As){const{copy:D,copied:q}=Q(),A=U(!1),S=U(null),c=U(null),u=b(()=>L.value?.siteConfig||null),C=b(()=>c.value?.icons||[]),O=b(()=>C.value.length>0),J=b(()=>{const n={};return C.value.forEach(s=>{const h=s.rel||"icon";n[h]||(n[h]=[]),n[h].push(s)}),n}),R={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"}},j=b(()=>{if(!u.value)return[];const n=u.value;return[{key:"Site Name",value:n.name||"",mono:!0},{key:"Site URL",value:n.url||"",mono:!0,link:n.url},{key:"Description",value:n.description||"",mono:!1},{key:"Environment",value:n.env||"",mono:!0},{key:"Indexable",value:n.indexable?"Yes":"No",mono:!0},{key:"Trailing Slash",value:n.trailingSlash?"Yes":"No",mono:!0},{key:"Title Separator",value:n.titleSeparator||"",mono:!0},{key:"Default Locale",value:n.defaultLocale||"",mono:!0},{key:"Twitter",value:n.twitter||"",mono:!0}].filter(s=>s.value)}),T=b(()=>{if(!u.value||!c.value)return{present:0,total:0};const n=[!!u.value.name,!!u.value.url&&u.value.url!=="http://localhost:3000",!!u.value.description,O.value,c.value.ogImages.length>0,c.value.themeColors.length>0];return{present:n.filter(Boolean).length,total:n.length}}),G=b(()=>{const{present:n,total:s}=T.value;return s>0?Math.round(n/s*100):0}),E=b(()=>{const n=G.value;return n>=80?"success":(n>=50,"warning")}),M=b(()=>{const n=C.value.find(h=>h.href?.includes("favicon.ico"));return n?n.href:C.value.find(h=>h.rel==="icon")?.href||null}),H=b(()=>{if(!u.value?.url)return"localhost:3000";try{return new URL(u.value.url).hostname}catch{return u.value.url}});async function V(){A.value=!0,S.value=null,c.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 h=await s.text(),d=de(h),P=[];d.allMeta.filter(m=>m.name==="theme-color").forEach(m=>{let $="default";const t=m.media||null;t?.includes("prefers-color-scheme: light")?$="light":t?.includes("prefers-color-scheme: dark")&&($="dark"),P.push({color:m.content,media:t||void 0,context:$})});const _=[];d.ogTags["og:image"]&&_.push({url:d.ogTags["og:image"],width:d.ogTags["og:image:width"],height:d.ogTags["og:image:height"],alt:d.ogTags["og:image:alt"]});const I=[];d.twitterTags["twitter:image"]&&I.push({url:d.twitterTags["twitter:image"],width:d.twitterTags["twitter:image:width"],height:d.twitterTags["twitter:image:height"]});const k=d.allMeta.find(m=>m.name==="color-scheme"),z=d.iconLinks.map(m=>({...m,href:m.href.startsWith("http")?m.href:`${n}${m.href.startsWith("/")?"":"/"}${m.href}`}));c.value={icons:z,ogImages:_,twitterImages:I,themeColors:P,colorScheme:k?.content||null}}catch(n){S.value=n.message||"Failed to fetch page"}finally{A.value=!1}}X([()=>L.value,W,Z],()=>{L.value&&V()},{immediate:!0});const Y=[{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 h=ee,d=se,P=re,_=te,I=oe,k=ae,z=ue,m=ne,$=ce;return o(),a("div",me,[A.value?(o(),w(h,{key:0})):S.value?(o(),w(P,{key:1,error:S.value,title:"Failed to check page"},{default:v(()=>[l(d,{size:"sm",variant:"ghost",icon:"carbon:reset",label:"Retry",onClick:V})]),_:1},8,["error"])):c.value?(o(),a(x,{key:2},[e("div",{class:N(["id-hero",`id-hero--${E.value}`])},[e("div",_e,[e("div",ve,[(o(),a("svg",pe,[s[3]||(s[3]=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:N(["id-score-ring__progress",`id-score-ring__progress--${E.value}`]),"stroke-width":"2.5","stroke-linecap":"round","stroke-dasharray":`${G.value*.974}, 100`,transform:"rotate(-90 18 18)"},null,10,ge)])),e("span",he,[r(i(T.value.present),1),s[4]||(s[4]=e("span",{class:"id-score-ring__sep"},"/",-1)),r(i(T.value.total),1)])]),e("div",null,[e("p",fe,i(G.value>=80?"Identity configured":G.value>=50?"Partially configured":"Needs setup"),1),e("p",xe,i(T.value.present)+" of "+i(T.value.total)+" identity checks passing ",1)])]),e("div",be,[e("div",ye,[s[5]||(s[5]=e("div",{class:"id-browser-tab__dots"},[e("span"),e("span"),e("span")],-1)),e("div",ke,[M.value?(o(),a("img",{key:0,src:M.value,class:"id-browser-tab__favicon",alt:""},null,8,we)):(o(),w(_,{key:1,name:"carbon:earth",class:"id-browser-tab__favicon-placeholder"})),e("span",Se,i(u.value?.name||"Untitled"),1)])]),e("div",Ce,[l(_,{name:"carbon:locked",class:"id-browser-tab__lock"}),e("span",Te,i(H.value),1)])])],2),l(k,{icon:"carbon:settings",text:"Site Config"},{actions:v(()=>[l(d,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",label:B(q)?"Copied!":"Copy JSON",onClick:s[0]||(s[0]=t=>B(D)(JSON.stringify(u.value,null,2)))},null,8,["label"])]),default:v(()=>[e("div",Ie,[(o(!0),a(x,null,y(j.value,t=>(o(),a("div",{key:t.key,class:"id-kv-row"},[e("span",ze,i(t.key),1),t.link?(o(),a("a",{key:0,href:t.link,target:"_blank",class:N(["id-kv-value id-link",{"font-mono":t.mono}])},i(t.value),11,$e)):(o(),a("span",{key:1,class:N(["id-kv-value",{"font-mono":t.mono}])},i(t.value),3))]))),128))]),u.value?.name?g("",!0):(o(),w(I,{key:0,variant:"warning",class:"mt-3"},{default:v(()=>[...s[6]||(s[6]=[e("span",{class:"text-xs"},[r("No site name configured. Set "),e("code",{class:"id-code"},"name"),r(" in your "),e("code",{class:"id-code"},"nuxt.config.ts"),r(" site config or "),e("code",{class:"id-code"},"package.json"),r(".")],-1)])]),_:1})),!u.value?.url||u.value.url==="http://localhost:3000"?(o(),w(I,{key:1,variant:"info",class:"mt-3"},{default:v(()=>[...s[7]||(s[7]=[e("span",{class:"text-xs"},[r("Site URL is not configured. Set it in "),e("code",{class:"id-code"},"nuxt.config.ts"),r(":")],-1),e("pre",{class:"id-snippet"},`site: {
2
- url: 'https://example.com'
3
- }`,-1)])]),_:1})):g("",!0)]),_:1}),l(k,{icon:"carbon:image",text:"Icons"},{actions:v(()=>[l(z,{value:C.value.length,label:"icons"},null,8,["value"])]),default:v(()=>[O.value?(o(!0),a(x,{key:0},y(J.value,(t,f)=>(o(),a("div",{key:f,class:"mb-5 last:mb-0"},[e("div",Ne,[e("span",null,i(R[f]?.label||f),1),e("span",Ae,i(t.length),1)]),e("p",Ge,i(R[f]?.description||""),1),e("div",Pe,[(o(!0),a(x,null,y(t,p=>(o(),a("div",{key:p.href,class:"id-icon-card"},[e("div",Be,[e("img",{src:p.href,alt:p.rel,class:"id-icon-img"},null,8,De)]),e("div",Le,[e("a",{href:p.href,target:"_blank",class:"id-icon-href"},i(p.href),9,Ue),e("div",Oe,[p.sizes?(o(),a("span",Re,i(p.sizes),1)):g("",!0),p.type?(o(),a("span",Ee,i(p.type),1)):g("",!0),p.media?(o(),a("span",Me,i(p.media.includes("dark")?"Dark":p.media.includes("light")?"Light":p.media),1)):g("",!0)])])]))),128))])]))),128)):(o(),a("div",Ve,[e("div",We,[e("div",Fe,[l(_,{name:"carbon:image",class:"text-xl"})]),s[11]||(s[11]=e("p",{class:"font-medium text-sm mb-0.5"}," No favicons detected ",-1)),s[12]||(s[12]=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",qe,[s[9]||(s[9]=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",Je,[s[8]||(s[8]=e("span",{class:"id-terminal__prompt"},"$",-1)),e("code",null,i(F)),l(d,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",class:"id-terminal__copy",onClick:s[1]||(s[1]=t=>B(D)(F))})])]),e("div",je,[(o(),a(x,null,y(Y,t=>e("div",{key:t.name,class:"id-gen-row"},[l(_,{name:"carbon:arrow-right",class:"id-gen-arrow"}),e("span",He,i(t.name),1),e("span",Ye,i(t.size),1),e("span",Ke,i(t.desc),1)])),64))]),e("div",Qe,[l(_,{name:"carbon:information",class:"hint-callout-icon text-sm mt-0.5 shrink-0"}),s[10]||(s[10]=e("div",{class:"text-xs text-[var(--color-text-muted)]"},[r(" Place a source image (SVG, PNG, or JPG) in your "),e("code",{class:"id-code"},"public/"),r(" directory, then run the command above. Requires "),e("code",{class:"id-code"},"sharp"),r(" as a dev dependency: "),e("pre",{class:"id-snippet !mt-2 !mb-0"},"pnpm add -D sharp")],-1))])])]))]),_:1}),l(k,{icon:"carbon:share",text:"Social Images"},{actions:v(()=>[l(z,{value:c.value.ogImages.length+c.value.twitterImages.length,label:"images"},null,8,["value"])]),default:v(()=>[c.value.ogImages.length||c.value.twitterImages.length?(o(),a("div",Xe,[(o(!0),a(x,null,y(c.value.ogImages,(t,f)=>(o(),a("div",{key:`og-${f}`,class:"id-social-card"},[e("div",Ze,[l(m,{color:"primary",variant:"subtle",size:"xs"},{default:v(()=>[...s[13]||(s[13]=[r(" og:image ",-1)])]),_:1}),t.width&&t.height?(o(),a("span",es,i(t.width)+" × "+i(t.height),1)):g("",!0)]),e("div",ss,[e("img",{src:t.url,alt:t.alt||"OG Image",class:"id-social-card__img"},null,8,ts)]),e("a",{href:t.url,target:"_blank",class:"id-social-card__url"},i(t.url),9,os)]))),128)),(o(!0),a(x,null,y(c.value.twitterImages,(t,f)=>(o(),a("div",{key:`tw-${f}`,class:"id-social-card"},[e("div",as,[l(m,{color:"neutral",variant:"subtle",size:"xs"},{default:v(()=>[...s[14]||(s[14]=[r(" twitter:image ",-1)])]),_:1}),t.width&&t.height?(o(),a("span",ns,i(t.width)+" × "+i(t.height),1)):g("",!0)]),e("div",is,[e("img",{src:t.url,alt:"Twitter Image",class:"id-social-card__img"},null,8,ls)]),e("a",{href:t.url,target:"_blank",class:"id-social-card__url"},i(t.url),9,rs)]))),128))])):(o(),a("div",cs,[l(_,{name:"carbon:information",class:"hint-callout-icon text-sm mt-0.5 shrink-0"}),s[15]||(s[15]=e("div",{class:"text-xs text-[var(--color-text-muted)]"},[r(" No OG or Twitter images found. Add images to your "),e("code",{class:"id-code"},"public/"),r(" directory: "),e("pre",{class:"id-snippet !mt-2"},`public/og-image.png # 1200x630 recommended
4
- public/twitter-image.png # 1200x600 recommended`),r(" Or use "),e("code",{class:"id-code"},"nuxt-og-image"),r(" for dynamic OG image generation. ")],-1))]))]),_:1}),l(k,{icon:"carbon:color-palette",text:"Theme Colors"},{actions:v(()=>[l(z,{value:c.value.themeColors.length,label:"colors"},null,8,["value"])]),default:v(()=>[c.value.themeColors.length||c.value.colorScheme?(o(),a(x,{key:0},[c.value.colorScheme?(o(),a("div",ds,[s[18]||(s[18]=e("div",{class:"id-group-header"},[e("span",null,"Color Scheme")],-1)),e("div",us,[s[17]||(s[17]=e("div",{class:"id-color-scheme-swatch"},null,-1)),e("div",null,[e("span",ms,i(c.value.colorScheme),1),s[16]||(s[16]=e("p",{class:"text-xs text-[var(--color-text-muted)]"}," Supported color schemes for system preferences ",-1))])])])):g("",!0),c.value.themeColors.length?(o(),a("div",_s,[s[19]||(s[19]=e("div",{class:"id-group-header"},[e("span",null,"Theme Colors")],-1)),e("div",vs,[(o(!0),a(x,null,y(c.value.themeColors,(t,f)=>(o(),a("div",{key:f,class:"id-color-card"},[e("div",{class:"id-color-card__swatch",style:ie({backgroundColor:t.color})},null,4),e("div",ps,[e("span",gs,i(t.color),1),t.context!=="default"?(o(),a("span",{key:0,class:N(["id-badge",t.context==="dark"?"id-badge--dark":"id-badge--light"])},i(t.context),3)):g("",!0),t.media?(o(),a("span",hs,i(t.media),1)):g("",!0)])]))),128))])])):g("",!0)],64)):(o(),a("div",fs,[l(_,{name:"carbon:information",class:"hint-callout-icon text-sm mt-0.5 shrink-0"}),s[20]||(s[20]=e("div",{class:"text-xs text-[var(--color-text-muted)]"},[r(" No theme colors found. Add theme color meta tags in your "),e("code",{class:"id-code"},"nuxt.config.ts"),r(": "),e("pre",{class:"id-snippet !mt-2"},`app: {
5
- head: {
6
- meta: [
7
- { name: 'theme-color', content: '#00dc82' },
8
- { name: 'theme-color', content: '#18181b',
9
- media: '(prefers-color-scheme: dark)' }
10
- ]
11
- }
12
- }`)],-1))]))]),_:1}),l(k,{icon:"carbon:book",text:"Configuration"},{default:v(()=>[e("div",xs,[e("div",bs,[e("div",ys,[l(_,{name:"carbon:settings"})]),s[21]||(s[21]=e("h4",{class:"id-guide-card__title"}," Site Config ",-1)),s[22]||(s[22]=e("p",{class:"id-guide-card__desc"}," Core identity settings ",-1)),s[23]||(s[23]=e("pre",{class:"id-snippet !mt-auto"},`site: {
13
- url: 'https://example.com',
14
- name: 'My Site',
15
- description: 'A description',
16
- defaultLocale: 'en',
17
- }`,-1))]),e("div",ks,[e("div",ws,[l(_,{name:"carbon:folder"})]),s[24]||(s[24]=e("h4",{class:"id-guide-card__title"}," Metadata Files ",-1)),s[25]||(s[25]=e("p",{class:"id-guide-card__desc"},[r(" Auto-detected from "),e("code",{class:"id-code"},"public/")],-1)),e("div",Ss,[(o(),a(x,null,y([{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"},[l(_,{name:"carbon:document",class:"id-file-icon"}),e("span",Cs,i(t.name),1),e("span",Ts,i(t.desc),1)])),64))])]),e("div",Is,[e("div",zs,[l(_,{name:"carbon:terminal"})]),s[28]||(s[28]=e("h4",{class:"id-guide-card__title"}," Icon Generation ",-1)),s[29]||(s[29]=e("p",{class:"id-guide-card__desc"}," All variants from one source ",-1)),e("div",$s,[s[26]||(s[26]=e("span",{class:"id-terminal__prompt"},"$",-1)),s[27]||(s[27]=e("code",{class:"text-xs"},"npx nuxt-seo-utils icons --source logo.svg",-1)),l(d,{size:"xs",variant:"ghost",color:"neutral",icon:"carbon:copy",class:"id-terminal__copy",onClick:s[2]||(s[2]=t=>B(D)("npx nuxt-seo-utils icons --source logo.svg"))})]),s[30]||(s[30]=e("p",{class:"text-[0.6875rem] text-[var(--color-text-muted)] mt-2"},[r(" Requires "),e("code",{class:"id-code"},"sharp"),r(" dev dependency. Accepts SVG, PNG, JPG, or WebP. ")],-1))])])]),_:1})],64)):!A.value&&!S.value?(o(),w($,{key:3,icon:"carbon:identification",title:"Waiting for connection",description:"Waiting for connection to host app..."})):g("",!0)])}}}),Ds=le(Ns,[["__scopeId","data-v-fc028536"]]);export{Ds as default};
@@ -1 +0,0 @@
1
- .devtools-metric[data-v-ad4c1432]{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-ad4c1432]{flex-shrink:0;font-size:.875rem}.devtools-metric-value[data-v-ad4c1432]{font-family:var(--font-mono);font-weight:600}.devtools-metric-label[data-v-ad4c1432]{color:inherit;opacity:.7}.devtools-metric-default[data-v-ad4c1432]{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);color:var(--color-text)}.devtools-metric-success[data-v-ad4c1432]{background:#6bc6701f;color:#107823}.dark .devtools-metric-success[data-v-ad4c1432]{background:#10782326;color:#57cb60}.devtools-metric-warning[data-v-ad4c1432]{background:#e1b75c1f;color:#906b00;color:oklch(55% .15 85)}.dark .devtools-metric-warning[data-v-ad4c1432]{background:#906b0026;background:oklch(55% .12 85/.15);color:#d9a514}.devtools-metric-danger[data-v-ad4c1432]{background:#ce70691a;color:#b94642}.dark .devtools-metric-danger[data-v-ad4c1432]{background:#843c3826;color:#df7f78}.devtools-metric-info[data-v-ad4c1432]{background:#8cdee21a;color:#007277;color:oklch(50% .12 200)}.dark .devtools-metric-info[data-v-ad4c1432]{background:#00444726;background:oklch(35% .08 200/.15);color:#40b1b7}
@@ -1 +0,0 @@
1
- import{d as E,o as a,g as c,i as d,b,A as C,j as p,k as m,h as y,l as T,n as $,z as w}from"./DtDZComy.js";const R={class:"devtools-error"},q={class:"devtools-error-icon-wrap"},D={class:"devtools-error-title"},M={key:0,class:"devtools-error-message"},N={key:1,class:"devtools-error-actions"},L=E({__name:"DevtoolsError",props:{icon:{default:"carbon:warning"},title:{default:"Something went wrong"},error:{}},setup(t){return(s,n)=>{const i=C;return a(),c("div",R,[d("div",q,[b(i,{name:t.icon,class:"devtools-error-icon"},null,8,["name"])]),d("p",D,p(t.title),1),t.error?(a(),c("p",M,p(typeof t.error=="string"?t.error:t.error.message),1)):m("",!0),s.$slots.default?(a(),c("div",N,[y(s.$slots,"default",{},void 0,!0)])):m("",!0)])}}}),z=Object.assign(T(L,[["__scopeId","data-v-88bce075"]]),{__name:"DevtoolsError"}),H={class:"devtools-empty"},X={class:"devtools-empty-title"},O={key:0,class:"devtools-empty-description"},x={key:1,class:"devtools-empty-actions"},W=E({__name:"DevtoolsEmptyState",props:{icon:{default:"carbon:search"},title:{},description:{},variant:{default:"default"}},setup(t){return(s,n)=>{const i=C;return a(),c("div",H,[d("div",{class:$(["devtools-empty-icon",`devtools-empty-icon-${t.variant}`])},[b(i,{name:t.icon,class:"w-8 h-8","aria-hidden":"true"},null,8,["name"])],2),d("h2",X,p(t.title),1),t.description||s.$slots.description?(a(),c("p",O,[y(s.$slots,"description",{},()=>[w(p(t.description),1)],!0)])):m("",!0),s.$slots.default?(a(),c("div",x,[y(s.$slots,"default",{},void 0,!0)])):m("",!0)])}}}),P=Object.assign(T(W,[["__scopeId","data-v-c7f69a98"]]),{__name:"DevtoolsEmptyState"}),_={TITLE_MAX_CHARS:60,TITLE_WARN_CHARS:50,TITLE_MAX_PIXELS:580,DESC_MAX_CHARS:160,DESC_WARN_CHARS:150,DESC_MAX_PIXELS:920};function V(t,s=16){return Math.round(t.length*s*.55)}function B(t){const n=new DOMParser().parseFromString(t,"text/html"),i=n.querySelector("title")?.textContent?.trim()||"",I=n.querySelector('meta[name="description"]')?.getAttribute("content")?.trim()||"",k=n.querySelector('link[rel="canonical"]')?.getAttribute("href")||"",v={};n.querySelectorAll('meta[property^="og:"]').forEach(e=>{const o=e.getAttribute("property"),r=e.getAttribute("content");o&&r&&(v[o]=r)});const S={};n.querySelectorAll('meta[name^="twitter:"]').forEach(e=>{const o=e.getAttribute("name"),r=e.getAttribute("content");o&&r&&(S[o]=r)});const l=[];n.querySelectorAll("meta").forEach(e=>{const o=e.getAttribute("name"),r=e.getAttribute("property"),u=e.getAttribute("http-equiv"),A=e.getAttribute("content")||"",f=e.getAttribute("media")||void 0;o?l.push({name:o,content:A,type:"name",media:f}):r?l.push({name:r,content:A,type:"property",media:f}):u&&l.push({name:u,content:A,type:"http-equiv",media:f})});const h=[];n.querySelectorAll('script[type="application/ld+json"]').forEach(e=>{const o=e.textContent?.trim()||"";try{const r=JSON.parse(o),u=r["@type"]||(r["@graph"]?"Graph":"Unknown");h.push({type:u,data:r,raw:o})}catch{h.push({type:"Invalid JSON",data:null,raw:o})}});const g=[];return n.querySelectorAll('link[rel="icon"], link[rel="apple-touch-icon"], link[rel="shortcut icon"]').forEach(e=>{const o=e.getAttribute("href");o&&g.push({rel:e.getAttribute("rel")||"icon",href:o,type:e.getAttribute("type")||void 0,sizes:e.getAttribute("sizes")||void 0,media:e.getAttribute("media")||void 0})}),{title:i,description:I,ogTags:v,twitterTags:S,allMeta:l,canonical:k,schemas:h,iconLinks:g}}function U(t){return t>_.TITLE_MAX_CHARS?"error":t>_.TITLE_WARN_CHARS||t<30?"warning":"success"}function J(t){return t>_.DESC_MAX_CHARS?"error":t>_.DESC_WARN_CHARS||t<70?"warning":"success"}export{_ as S,z as _,P as a,J as d,V as e,B as p,U as t};
@@ -1 +0,0 @@
1
- {"id":"abeb9f59-bc22-40fa-a6c2-2b431f13f6bb","timestamp":1774543150883,"prerendered":[]}
@@ -1 +0,0 @@
1
- .devtools-snippet[data-v-c6d6783b]{margin:.5rem .75rem}.devtools-snippet-header[data-v-c6d6783b]{align-items:center;display:flex;justify-content:space-between;margin-bottom:.375rem}.devtools-snippet-label[data-v-c6d6783b]{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:-.01em}.devtools-snippet-block[data-v-c6d6783b]{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-37b26e32]{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-37b26e32]{align-items:flex-start;flex-direction:column;gap:.375rem}.devtools-kv-row[data-v-37b26e32]:hover{background:var(--color-surface-sunken)}.devtools-kv-striped[data-v-37b26e32]:nth-child(2n){background:oklch(from var(--color-surface-sunken) l c h/.5)}.devtools-kv-key[data-v-37b26e32]{color:var(--color-text-muted);flex-shrink:0;font-family:var(--font-mono);font-size:.8125rem}.devtools-kv-value-wrap[data-v-37b26e32]{align-items:center;display:flex;gap:.5rem;min-width:0}.devtools-kv-value-wrap-full[data-v-37b26e32]{width:100%}.devtools-kv-value[data-v-37b26e32]{font-size:.8125rem;overflow-wrap:break-word;text-align:right;word-break:break-all}.devtools-kv-snippet[data-v-37b26e32]{margin:0!important;width:100%}.devtools-kv-true[data-v-37b26e32]{color:var(--seo-green)}.devtools-kv-false[data-v-37b26e32]{color:#dc655f}.devtools-kv-empty[data-v-37b26e32]{color:var(--color-text-subtle);font-style:italic}
@@ -1 +0,0 @@
1
- .id-hero[data-v-fc028536]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;gap:1.25rem;justify-content:space-between;padding:1rem 1.25rem;transition:border-color .2s}.id-hero--success[data-v-fc028536]{border-color:#5bb66166}.id-hero--warning[data-v-fc028536]{border-color:#cd920066;border-color:oklch(70% .15 80/.4)}.id-hero__left[data-v-fc028536]{align-items:center;display:flex;gap:1rem}.id-score-ring[data-v-fc028536]{flex-shrink:0;height:48px;position:relative;width:48px}.id-score-ring__svg[data-v-fc028536]{height:100%;width:100%}.id-score-ring__progress[data-v-fc028536]{transition:stroke-dasharray .6s cubic-bezier(.22,1,.36,1)}.id-score-ring__progress--success[data-v-fc028536]{stroke:#11ad32}.id-score-ring__progress--warning[data-v-fc028536]{stroke:#cd9200;stroke:oklch(70% .18 80)}.id-score-ring__text[data-v-fc028536]{align-items:center;display:flex;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;inset:0;justify-content:center;letter-spacing:-.02em;position:absolute}.id-score-ring__sep[data-v-fc028536]{margin:0 .5px;opacity:.35}.id-browser-tab[data-v-fc028536]{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:0;font-size:0;overflow:hidden;width:220px}.id-browser-tab__chrome[data-v-fc028536]{align-items:center;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-subtle);display:flex;gap:.5rem;padding:.375rem .625rem}.id-browser-tab__dots[data-v-fc028536]{display:flex;gap:4px}.id-browser-tab__dots span[data-v-fc028536]{background:var(--color-border);border-radius:50%;height:6px;width:6px}.id-browser-tab__tab[data-v-fc028536]{align-items:center;background:var(--color-surface-sunken);border-radius:4px 4px 0 0;display:flex;gap:.25rem;max-width:140px;padding:.125rem .375rem}.id-browser-tab__favicon[data-v-fc028536]{flex-shrink:0;height:12px;-o-object-fit:contain;object-fit:contain;width:12px}.id-browser-tab__favicon-placeholder[data-v-fc028536]{color:var(--color-text-subtle);height:12px;width:12px}.id-browser-tab__title[data-v-fc028536]{color:var(--color-text-muted);font-size:.5625rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.id-browser-tab__bar[data-v-fc028536]{align-items:center;display:flex;gap:.25rem;padding:.25rem .5rem}.id-browser-tab__lock[data-v-fc028536]{color:var(--color-text-subtle);height:10px;width:10px}.id-browser-tab__url[data-v-fc028536]{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.5625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.id-hero[data-v-fc028536]{align-items:flex-start;flex-direction:column}.id-browser-tab[data-v-fc028536]{width:100%}}.id-kv-list[data-v-fc028536]{display:flex;flex-direction:column}.id-kv-row[data-v-fc028536]{align-items:center;border-radius:var(--radius-sm);display:flex;gap:1rem;justify-content:space-between;padding:.5rem .625rem;transition:background .15s}.id-kv-row[data-v-fc028536]:hover{background:var(--color-surface-sunken)}.id-kv-row[data-v-fc028536]:nth-child(2n){background:#00000004}.dark .id-kv-row[data-v-fc028536]:nth-child(2n){background:#ffffff04}.id-kv-row[data-v-fc028536]:nth-child(2n):hover{background:var(--color-surface-sunken)}.id-kv-label[data-v-fc028536]{color:var(--color-text-muted);font-size:.75rem;white-space:nowrap}.id-kv-value[data-v-fc028536]{font-size:.8125rem;min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.id-link[data-v-fc028536]{color:var(--seo-green);text-decoration:none;transition:text-decoration-color .15s}.id-link[data-v-fc028536]:hover{text-decoration:underline;text-underline-offset:2px}.id-code[data-v-fc028536]{border:1px solid var(--color-border-subtle);border-radius:4px;padding:.1rem .35rem}.id-code[data-v-fc028536],.id-snippet[data-v-fc028536]{background:var(--color-surface-sunken);color:var(--color-text);font-family:var(--font-mono);font-size:.6875rem}.id-snippet[data-v-fc028536]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);line-height:1.65;margin-top:.5rem;overflow-x:auto;padding:.625rem .75rem;white-space:pre}.id-group-header[data-v-fc028536]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:.5rem;margin-bottom:.625rem;padding-bottom:.375rem}.id-group-header span[data-v-fc028536]{color:var(--color-text-muted);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.id-group-count[data-v-fc028536]{color:var(--color-text-subtle)!important;font-family:var(--font-mono)!important;font-size:.625rem!important;padding:0 .3rem}.id-badge[data-v-fc028536],.id-group-count[data-v-fc028536]{background:var(--color-surface-sunken);border-radius:4px}.id-badge[data-v-fc028536]{align-items:center;border:1px solid var(--color-border-subtle);color:var(--color-text-muted);display:inline-flex;font-family:var(--font-mono);font-size:.625rem;font-weight:500;padding:.05rem .4rem}.id-badge--accent[data-v-fc028536]{background:#11ad321a;border-color:#11ad3233;color:#278733}.dark .id-badge--accent[data-v-fc028536]{background:#1e662626;border-color:#3e834333;color:#6bc670}.id-badge--dark[data-v-fc028536]{background:#13161bcc;border-color:#2b2e33;color:#babec4}.id-badge--light[data-v-fc028536]{background:#f2eee7cc;border-color:#d5cdc0;color:#645235}.id-icon-grid[data-v-fc028536]{display:grid;gap:.625rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.id-icon-card[data-v-fc028536]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:.75rem;padding:.625rem .75rem;transition:border-color .2s,box-shadow .2s}.id-icon-card[data-v-fc028536]:hover{border-color:var(--color-neutral-300);box-shadow:0 2px 12px #0000000d}.dark .id-icon-card[data-v-fc028536]:hover{border-color:var(--color-neutral-700);box-shadow:0 2px 12px #00000040}.id-icon-preview[data-v-fc028536]{align-items:center;background-color:var(--color-surface-elevated);background-image:linear-gradient(45deg,var(--color-surface-sunken) 25%,transparent 25%),linear-gradient(-45deg,var(--color-surface-sunken) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-surface-sunken) 75%),linear-gradient(-45deg,transparent 75%,var(--color-surface-sunken) 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:48px;justify-content:center;overflow:hidden;width:48px}.id-icon-img[data-v-fc028536]{image-rendering:auto;max-height:36px;max-width:36px;-o-object-fit:contain;object-fit:contain}.id-icon-meta[data-v-fc028536]{flex:1;min-width:0}.id-icon-href[data-v-fc028536]{color:var(--seo-green);display:block;font-family:var(--font-mono);font-size:.75rem;margin-bottom:.25rem;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.id-icon-href[data-v-fc028536]:hover{text-decoration:underline;text-underline-offset:2px}.id-icon-badges[data-v-fc028536]{display:flex;flex-wrap:wrap;gap:.25rem}.id-empty[data-v-fc028536]{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.id-empty__inner[data-v-fc028536]{align-items:center;display:flex;flex-direction:column;padding:2rem 1.5rem}.id-empty__icon-ring[data-v-fc028536]{align-items:center;border:2px solid var(--color-border);border-radius:50%;color:var(--color-text-subtle);display:flex;height:48px;justify-content:center;margin-bottom:1rem;width:48px}.id-empty__icon-ring[data-v-fc028536],.id-terminal[data-v-fc028536]{background:var(--color-surface-elevated)}.id-terminal[data-v-fc028536]{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;width:100%}.id-terminal__chrome[data-v-fc028536]{align-items:center;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-subtle);display:flex;gap:6px;padding:.5rem .75rem}.id-terminal__dot[data-v-fc028536]{border-radius:50%;height:8px;width:8px}.id-terminal__dot--red[data-v-fc028536]{background:#f14d4c}.id-terminal__dot--yellow[data-v-fc028536]{background:#eab532}.id-terminal__dot--green[data-v-fc028536]{background:#45ba50}.id-terminal__label[data-v-fc028536]{color:var(--color-text-subtle);font-size:.625rem;font-weight:600;letter-spacing:.04em;margin-left:.25rem;text-transform:uppercase}.id-terminal__body[data-v-fc028536]{align-items:center;background:var(--color-surface-sunken);display:flex;font-family:var(--font-mono);font-size:.75rem;gap:.5rem;padding:.75rem}.id-terminal__prompt[data-v-fc028536]{color:var(--seo-green);font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.id-terminal__copy[data-v-fc028536]{flex-shrink:0;margin-left:auto}.id-gen-files[data-v-fc028536]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);margin-top:1rem;overflow:hidden;width:100%}.id-gen-row[data-v-fc028536]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;font-size:.6875rem;gap:.5rem;padding:.375rem .625rem}.id-gen-row[data-v-fc028536]:last-child{border-bottom:none}.id-gen-row[data-v-fc028536]:nth-child(2n){background:#00000003}.dark .id-gen-row[data-v-fc028536]:nth-child(2n){background:#ffffff03}.id-gen-arrow[data-v-fc028536]{color:var(--seo-green);flex-shrink:0;height:10px;width:10px}.id-gen-name[data-v-fc028536]{color:var(--color-text);font-weight:500}.id-gen-name[data-v-fc028536],.id-gen-size[data-v-fc028536]{font-family:var(--font-mono)}.id-gen-size[data-v-fc028536]{color:var(--color-text-subtle);margin-left:auto}.id-gen-desc[data-v-fc028536]{color:var(--color-text-muted);text-align:right;width:7rem}.id-social-grid[data-v-fc028536]{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.id-social-card[data-v-fc028536]{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.id-social-card__header[data-v-fc028536]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:.5rem .75rem}.id-social-card__preview[data-v-fc028536]{aspect-ratio:1.91/1;background-color:var(--color-surface-elevated);background-image:linear-gradient(45deg,var(--color-surface-sunken) 25%,transparent 25%),linear-gradient(-45deg,var(--color-surface-sunken) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-surface-sunken) 75%),linear-gradient(-45deg,transparent 75%,var(--color-surface-sunken) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;overflow:hidden}.id-social-card__img[data-v-fc028536]{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.id-social-card__url[data-v-fc028536]{border-top:1px solid var(--color-border-subtle);color:var(--seo-green);display:block;font-family:var(--font-mono);font-size:.6875rem;overflow:hidden;padding:.5rem .75rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.id-social-card__url[data-v-fc028536]:hover{text-decoration:underline;text-underline-offset:2px}.id-color-scheme-row[data-v-fc028536]{align-items:center;display:flex;gap:.75rem;margin-top:.5rem}.id-color-scheme-swatch[data-v-fc028536]{background:linear-gradient(135deg,#fff 50%,#18181b 0);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;height:2.5rem;width:2.5rem}.id-color-grid[data-v-fc028536]{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:.625rem}.id-color-card[data-v-fc028536]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex:1;gap:.75rem;min-width:200px;padding:.625rem .75rem;transition:border-color .2s}.id-color-card[data-v-fc028536]:hover{border-color:var(--color-neutral-300)}.dark .id-color-card[data-v-fc028536]:hover{border-color:var(--color-neutral-700)}.id-color-card__swatch[data-v-fc028536]{border:1px solid oklch(0 0 0/.1);border-radius:var(--radius-sm);box-shadow:0 1px 4px #00000014,inset 0 1px #ffffff26;flex-shrink:0;height:2.5rem;width:2.5rem}.id-color-card__meta[data-v-fc028536]{min-width:0}.id-color-card__value[data-v-fc028536]{display:block;font-family:var(--font-mono);font-size:.8125rem;font-weight:500}.id-guide-grid[data-v-fc028536]{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.id-guide-card[data-v-fc028536]{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;padding:1rem;transition:border-color .2s,box-shadow .2s}.id-guide-card[data-v-fc028536]:hover{border-color:var(--color-neutral-300);box-shadow:0 2px 12px #0000000a}.dark .id-guide-card[data-v-fc028536]:hover{border-color:var(--color-neutral-700);box-shadow:0 2px 12px #0003}.id-guide-card__icon[data-v-fc028536]{align-items:center;background:#11ad321a;border-radius:var(--radius-sm);color:var(--seo-green);display:flex;font-size:.875rem;height:28px;justify-content:center;margin-bottom:.625rem;width:28px}.id-guide-card__title[data-v-fc028536]{font-size:.8125rem;font-weight:600;margin-bottom:.125rem}.id-guide-card__desc[data-v-fc028536]{color:var(--color-text-muted);font-size:.6875rem;margin-bottom:.75rem}.id-file-list[data-v-fc028536]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);display:flex;flex-direction:column;margin-top:auto;overflow:hidden}.id-file-row[data-v-fc028536]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;font-size:.625rem;gap:.375rem;padding:.3rem .5rem}.id-file-row[data-v-fc028536]:last-child{border-bottom:none}.id-file-row[data-v-fc028536]:nth-child(2n){background:#00000003}.dark .id-file-row[data-v-fc028536]:nth-child(2n){background:#ffffff03}.id-file-icon[data-v-fc028536]{color:var(--color-text-subtle);flex-shrink:0;height:10px;width:10px}.id-file-name[data-v-fc028536]{color:var(--color-text);font-family:var(--font-mono);font-weight:500}.id-file-desc[data-v-fc028536]{color:var(--color-text-muted);margin-left:auto}
@@ -1 +0,0 @@
1
- .seo-status-card[data-v-e3945f68]{align-items:center;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;gap:1rem;padding:1rem 1.25rem;transition:border-color .2s}.seo-status-card--success[data-v-e3945f68]{border-color:#5bb66166}.seo-status-card--warning[data-v-e3945f68]{border-color:#cd920066;border-color:oklch(70% .15 80/.4)}.seo-score-ring[data-v-e3945f68]{flex-shrink:0;height:48px;position:relative;width:48px}.seo-score-ring__svg[data-v-e3945f68]{height:100%;width:100%}.seo-score-ring__progress[data-v-e3945f68]{transition:stroke-dasharray .6s cubic-bezier(.22,1,.36,1)}.seo-score-ring__progress--success[data-v-e3945f68]{stroke:#11ad32}.seo-score-ring__progress--warning[data-v-e3945f68]{stroke:#cd9200;stroke:oklch(70% .18 80)}.seo-score-ring__text[data-v-e3945f68]{align-items:center;display:flex;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;inset:0;justify-content:center;letter-spacing:-.02em;position:absolute}.seo-score-ring__separator[data-v-e3945f68]{margin:0 .5px;opacity:.35}.serp-preview-container[data-v-e3945f68]{background:#fff;border:1px solid oklch(0 0 0/.08);border-radius:var(--radius-md);padding:1.25rem}.dark .serp-preview-container[data-v-e3945f68]{background:#202124;border-color:#ffffff0f}.serp-preview__favicon[data-v-e3945f68]{align-items:center;background:#0000000a;border-radius:50%;display:flex;height:26px;justify-content:center;width:26px}.dark .serp-preview__favicon[data-v-e3945f68]{background:#ffffff0f}.serp-preview__title[data-v-e3945f68]{color:#1a0dab;cursor:pointer;font-size:1.25rem;line-height:1.3;margin-bottom:.25rem}.serp-preview__title[data-v-e3945f68]:hover{text-decoration:underline}.dark .serp-preview__title[data-v-e3945f68]{color:#8ab4f8}.serp-preview__description[data-v-e3945f68]{color:#4d5156;display:-webkit-box;font-size:.875rem;-webkit-line-clamp:2;line-height:1.58;-webkit-box-orient:vertical;overflow:hidden}.dark .serp-preview__description[data-v-e3945f68]{color:#bdc1c6}.seo-length-status[data-v-e3945f68]{align-items:center;border-radius:9999px;display:inline-flex;font-size:.6875rem;font-weight:600;letter-spacing:.01em;padding:.125rem .5rem}.seo-length-status--success[data-v-e3945f68]{background:#6bc6701f;color:#107823}.dark .seo-length-status--success[data-v-e3945f68]{background:#10782326;color:#57cb60}.seo-length-status--warning[data-v-e3945f68]{background:#d6a54d1f;color:#946900;color:oklch(55% .15 80)}.dark .seo-length-status--warning[data-v-e3945f68]{background:#94690026;background:oklch(55% .12 80/.15);color:#dfa11a}.seo-length-status--error[data-v-e3945f68]{background:#dc655f1a;color:#c53637}.dark .seo-length-status--error[data-v-e3945f68]{background:#9c433f26;color:#f47b74}.seo-progress-track[data-v-e3945f68]{background:var(--color-surface-sunken);border-radius:3px;height:6px;overflow:visible;position:relative}.seo-progress-fill[data-v-e3945f68]{border-radius:3px;height:100%;transition:width .4s cubic-bezier(.22,1,.36,1)}.seo-progress-fill--success[data-v-e3945f68]{background:#11ad32;box-shadow:0 0 8px #11ad324d}.seo-progress-fill--warning[data-v-e3945f68]{background:#cd9200;background:oklch(70% .18 80);box-shadow:0 0 8px #cd92004d;box-shadow:0 0 8px oklch(70% .18 80/.3)}.seo-progress-fill--error[data-v-e3945f68]{background:#e64343;box-shadow:0 0 8px #e643434d}.seo-progress-marker[data-v-e3945f68]{background:var(--color-text-subtle);height:10px;opacity:.4;position:absolute;top:-2px;transform:translate(-.5px);width:1px}.seo-issue-row[data-v-e3945f68]{align-items:flex-start;border-radius:var(--radius-sm);display:flex;gap:.5rem;padding:.625rem .75rem;transition:background .15s}.seo-issue-row[data-v-e3945f68]:hover{background:var(--color-surface-sunken)}.seo-category-header[data-v-e3945f68]{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:.5rem;margin-bottom:.5rem;padding-bottom:.375rem}.seo-category-header span[data-v-e3945f68]{color:var(--color-text-muted);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.seo-checklist__item[data-v-e3945f68]{align-items:center;border-radius:var(--radius-sm);display:flex;gap:.5rem;padding:.375rem .5rem;transition:background .15s}.seo-checklist__item[data-v-e3945f68]:hover{background:var(--color-surface-sunken)}.seo-checklist__value[data-v-e3945f68]{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:.6875rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seo-meta-table__row[data-v-e3945f68]{align-items:center;border-radius:var(--radius-sm);display:flex;gap:.75rem;padding:.5rem .625rem;transition:background .15s}.seo-meta-table__row[data-v-e3945f68]:hover{background:var(--color-surface-sunken)}.seo-meta-table__row[data-v-e3945f68]:nth-child(2n){background:#00000004}.dark .seo-meta-table__row[data-v-e3945f68]:nth-child(2n){background:#ffffff04}.seo-meta-table__row[data-v-e3945f68]:nth-child(2n):hover{background:var(--color-surface-sunken)}
@@ -1 +0,0 @@
1
- .devtools-error[data-v-88bce075]{flex-direction:column;gap:.75rem;padding:3rem 1.5rem;text-align:center}.devtools-error[data-v-88bce075],.devtools-error-icon-wrap[data-v-88bce075]{align-items:center;display:flex;justify-content:center}.devtools-error-icon-wrap[data-v-88bce075]{background:#dc655f1a;border-radius:var(--radius-lg);height:3rem;width:3rem}.dark .devtools-error-icon-wrap[data-v-88bce075]{background:#843c3826}.devtools-error-icon[data-v-88bce075]{color:#d74745;font-size:1.5rem}.dark .devtools-error-icon[data-v-88bce075]{color:#ed756e}.devtools-error-title[data-v-88bce075]{color:var(--color-text);font-size:.875rem;font-weight:600}.devtools-error-message[data-v-88bce075]{color:var(--color-text-muted);font-size:.75rem;line-height:1.5;max-width:20rem}.devtools-error-actions[data-v-88bce075]{display:flex;gap:.5rem;margin-top:.25rem}.devtools-empty[data-v-c7f69a98]{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:32rem;text-align:center}.devtools-empty-icon[data-v-c7f69a98]{align-items:center;border-radius:var(--radius-lg);display:inline-flex;height:4rem;justify-content:center;margin-bottom:1.5rem;width:4rem}.devtools-empty-icon-default[data-v-c7f69a98]{background:#11ad321f;color:var(--seo-green)}.dark .devtools-empty-icon-default[data-v-c7f69a98]{background:#11ad3226}.devtools-empty-icon-error[data-v-c7f69a98]{background:#cc272e1f;color:#cc272e}.dark .devtools-empty-icon-error[data-v-c7f69a98]{background:#cc272e26;color:#ff847d}.devtools-empty-title[data-v-c7f69a98]{color:var(--color-text);font-size:1.125rem;font-weight:600;margin-bottom:.75rem}@media(min-width:640px){.devtools-empty-title[data-v-c7f69a98]{font-size:1.25rem}}.devtools-empty-description[data-v-c7f69a98]{color:var(--color-text-muted);font-size:.875rem;line-height:1.5;margin-bottom:1.25rem}@media(min-width:640px){.devtools-empty-description[data-v-c7f69a98]{font-size:1rem}}.devtools-empty-actions[data-v-c7f69a98]{align-items:center;display:flex;flex-direction:column;gap:.75rem}