sanity-plugin-seofields 1.6.5 → 1.8.0

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 (82) hide show
  1. package/README.md +355 -79
  2. package/dist/SchemaOrgJsonLdPreview-DJLkIPq4.d.cts +78 -0
  3. package/dist/SchemaOrgJsonLdPreview-DJLkIPq4.d.ts +78 -0
  4. package/dist/SeoHealthDashboard-AEKVVMUR-7NWV3C3Y.js +4 -0
  5. package/dist/SeoHealthDashboard-AEKVVMUR-7NWV3C3Y.js.map +1 -0
  6. package/dist/SeoHealthDashboard-AEKVVMUR-XWKJUH24.cjs +10 -0
  7. package/dist/SeoHealthDashboard-AEKVVMUR-XWKJUH24.cjs.map +1 -0
  8. package/dist/SeoHealthTool-2KKQJLJL.cjs +11 -0
  9. package/dist/{SeoHealthDashboard-BEZVLLFG.js.map → SeoHealthTool-2KKQJLJL.cjs.map} +1 -1
  10. package/dist/SeoHealthTool-3CUKGADZ.js +5 -0
  11. package/dist/{SeoHealthDashboard-D3XU3CUB.cjs.map → SeoHealthTool-3CUKGADZ.js.map} +1 -1
  12. package/dist/{SeoPreview-WYH7NYNM.cjs → SeoPreview-3EXR6FD4.cjs} +3 -3
  13. package/dist/{SeoPreview-WYH7NYNM.cjs.map → SeoPreview-3EXR6FD4.cjs.map} +1 -1
  14. package/dist/{SeoPreview-KEGGQSPJ.js → SeoPreview-4PPAF4NO.js} +3 -3
  15. package/dist/{SeoPreview-KEGGQSPJ.js.map → SeoPreview-4PPAF4NO.js.map} +1 -1
  16. package/dist/{chunk-S367Y35J.cjs → chunk-254YHUN3.cjs} +2 -15
  17. package/dist/{chunk-S367Y35J.cjs.map → chunk-254YHUN3.cjs.map} +1 -1
  18. package/dist/{chunk-HQTYQMP5.js → chunk-27XSYENH.js} +80 -29
  19. package/dist/chunk-27XSYENH.js.map +1 -0
  20. package/dist/{chunk-YHXUWGNA.cjs → chunk-B5IVI5LP.cjs} +918 -157
  21. package/dist/chunk-B5IVI5LP.cjs.map +1 -0
  22. package/dist/chunk-BNXMFD3T.cjs +431 -0
  23. package/dist/chunk-BNXMFD3T.cjs.map +1 -0
  24. package/dist/{chunk-2NMEKWO5.js → chunk-DDAAVRWG.js} +3 -15
  25. package/dist/{chunk-2NMEKWO5.js.map → chunk-DDAAVRWG.js.map} +1 -1
  26. package/dist/chunk-P6IOWIO2.cjs +480 -0
  27. package/dist/chunk-P6IOWIO2.cjs.map +1 -0
  28. package/dist/{chunk-XXA6WCWS.js → chunk-UOCZFYYP.js} +18 -203
  29. package/dist/chunk-UOCZFYYP.js.map +1 -0
  30. package/dist/{chunk-KTL6NYNG.js → chunk-VR44E62I.js} +897 -148
  31. package/dist/chunk-VR44E62I.js.map +1 -0
  32. package/dist/chunk-WKXHX3GO.js +424 -0
  33. package/dist/chunk-WKXHX3GO.js.map +1 -0
  34. package/dist/{chunk-BHIZQLY7.cjs → chunk-XZDLJ2N6.cjs} +84 -30
  35. package/dist/chunk-XZDLJ2N6.cjs.map +1 -0
  36. package/dist/cli.js +18 -18
  37. package/dist/{component-H52blyfc.d.ts → component-BzI-LHPw.d.cts} +9 -27
  38. package/dist/{component-CIE6Sy4F.d.cts → component-DEXwtemT.d.ts} +9 -27
  39. package/dist/define-cli.cjs +1 -1
  40. package/dist/define-cli.js +1 -1
  41. package/dist/index.cjs +1050 -94
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.d.cts +75 -202
  44. package/dist/index.d.ts +75 -202
  45. package/dist/index.js +1009 -63
  46. package/dist/index.js.map +1 -1
  47. package/dist/next.cjs +138 -116
  48. package/dist/next.cjs.map +1 -1
  49. package/dist/next.d.cts +9 -3
  50. package/dist/next.d.ts +9 -3
  51. package/dist/next.js +38 -32
  52. package/dist/next.js.map +1 -1
  53. package/dist/schema/next.cjs +105 -89
  54. package/dist/schema/next.d.cts +4 -4
  55. package/dist/schema/next.d.ts +4 -4
  56. package/dist/schema/next.js +4 -4
  57. package/dist/schema.cjs +219 -157
  58. package/dist/schema.cjs.map +1 -1
  59. package/dist/schema.d.cts +30 -16
  60. package/dist/schema.d.ts +30 -16
  61. package/dist/schema.js +41 -8
  62. package/dist/schema.js.map +1 -1
  63. package/dist/{types-Dp9Pfnt9.d.ts → types-BXSCbl6p.d.cts} +47 -2
  64. package/dist/{types-CyRdIF-3.d.cts → types-B_vjMPtM.d.cts} +1 -1
  65. package/dist/{types-BxcJinOf.d.cts → types-C19cQx5D.d.ts} +47 -2
  66. package/dist/{types-CbYb4MsN.d.ts → types-CW8qFdAn.d.ts} +1 -1
  67. package/dist/{types-BtSRRG6C.d.cts → types-yVmQfby9.d.cts} +8 -16
  68. package/dist/{types-BtSRRG6C.d.ts → types-yVmQfby9.d.ts} +8 -16
  69. package/package.json +2 -1
  70. package/dist/SeoHealthDashboard-BEZVLLFG.js +0 -4
  71. package/dist/SeoHealthDashboard-D3XU3CUB.cjs +0 -10
  72. package/dist/SeoHealthTool-4VZMD4TR.cjs +0 -14
  73. package/dist/SeoHealthTool-4VZMD4TR.cjs.map +0 -1
  74. package/dist/SeoHealthTool-BSTYAKQS.js +0 -12
  75. package/dist/SeoHealthTool-BSTYAKQS.js.map +0 -1
  76. package/dist/chunk-BCTPOWXA.cjs +0 -669
  77. package/dist/chunk-BCTPOWXA.cjs.map +0 -1
  78. package/dist/chunk-BHIZQLY7.cjs.map +0 -1
  79. package/dist/chunk-HQTYQMP5.js.map +0 -1
  80. package/dist/chunk-KTL6NYNG.js.map +0 -1
  81. package/dist/chunk-XXA6WCWS.js.map +0 -1
  82. package/dist/chunk-YHXUWGNA.cjs.map +0 -1
@@ -1,4 +1,31 @@
1
- import { c as SanityImage } from './types-BtSRRG6C.js';
1
+ import { JSX } from 'react';
2
+ import { b as SanityImage } from './types-yVmQfby9.cjs';
3
+
4
+ /**
5
+ * <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags
6
+ * from a combined `schemaOrg` array field.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { SchemaOrgScripts } from 'sanity-plugin-seofields/next'
11
+ *
12
+ * const data = await sanityFetch({ query: `*[_type == "settings"][0]{ structuredData }` })
13
+ *
14
+ * <SchemaOrgScripts data={data.structuredData} />
15
+ * ```
16
+ */
17
+
18
+ declare function buildSchemaOrgJsonLd(item: Record<string, unknown>): Record<string, unknown> | null;
19
+ declare function buildSchemaOrgJsonLds(data?: Array<Record<string, unknown>> | null): Array<Record<string, unknown>>;
20
+ interface SchemaOrgScriptsProps {
21
+ /** Array of Schema.org items from the combined `schemaOrg` field. */
22
+ data?: Array<Record<string, unknown>> | null;
23
+ }
24
+ /**
25
+ * Renders one `<script type="application/ld+json">` tag per Schema.org item.
26
+ * Skips items that fail validation (missing required fields).
27
+ */
28
+ declare function SchemaOrgScripts({ data }: SchemaOrgScriptsProps): JSX.Element | null;
2
29
 
3
30
  /** Copyright year: static number or dynamic (current year) */
4
31
  type SchemaOrgCopyrightYear = number | {
@@ -712,6 +739,24 @@ interface SchemaOrgOfferConfig {
712
739
  };
713
740
  }
714
741
 
742
+ /** Schema.org OpinionNewsArticle — data shape from GROQ query */
743
+ interface SchemaOrgOpinionNewsArticleData extends SchemaOrgCreativeWorkData {
744
+ _type?: 'schemaOrgOpinionNewsArticle';
745
+ articleSection?: string;
746
+ articleBody?: string;
747
+ backstory?: string;
748
+ wordCount?: number;
749
+ dateline?: string;
750
+ printColumn?: string;
751
+ printEdition?: string;
752
+ printPage?: string;
753
+ printSection?: string;
754
+ }
755
+ /** Configuration for `schemaOrgOpinionNewsArticle()` */
756
+ interface SchemaOrgOpinionNewsArticleConfig {
757
+ validation?: Record<string, string>;
758
+ }
759
+
715
760
  /** Contact point nested within the Organization schema */
716
761
  interface OrganizationContactPoint {
717
762
  /** e.g. "customer support", "sales", "technical support" */
@@ -1212,4 +1257,4 @@ interface SchemaOrgWebsiteConfig {
1212
1257
  };
1213
1258
  }
1214
1259
 
1215
- export type { SchemaOrgFAQPageData as $, SchemaOrgProfilePageConfig as A, SchemaOrgRecipeConfig as B, SchemaOrgRestaurantConfig as C, SchemaOrgReviewConfig as D, SchemaOrgServiceConfig as E, SchemaOrgSoftwareApplicationConfig as F, SchemaOrgVideoObjectConfig as G, SchemaOrgWebApplicationConfig as H, SchemaOrgWebPageConfig as I, SchemaOrgWebsiteConfig as J, SchemaOrgAggregateRating as K, SchemaOrgAggregateRatingData as L, SchemaOrgArchivedAt as M, SchemaOrgArticleData as N, OrganizationContactPoint as O, SchemaOrgBlogPostingData as P, SchemaOrgBookData as Q, SchemaOrgBrandData as R, SchemaOrgAggregateRatingConfig as S, SchemaOrgBreadcrumbListData as T, SchemaOrgContactPointData as U, SchemaOrgContentRating as V, SchemaOrgCopyrightYear as W, SchemaOrgCountryData as X, SchemaOrgCourseData as Y, SchemaOrgCreativeWorkData as Z, SchemaOrgEventData as _, SchemaOrgArticleConfig as a, SchemaOrgHowToData as a0, SchemaOrgImageInput as a1, SchemaOrgImageObjectData as a2, SchemaOrgItemListData as a3, SchemaOrgJobPostingData as a4, SchemaOrgLegalServiceData as a5, SchemaOrgLocalBusinessData as a6, SchemaOrgMovieData as a7, SchemaOrgMusicAlbumData as a8, SchemaOrgMusicRecordingData as a9, SchemaOrgNewsArticleData as aa, SchemaOrgOfferData as ab, SchemaOrgOrganizationData as ac, SchemaOrgOrganizationInput as ad, SchemaOrgPersonData as ae, SchemaOrgPersonOrOrganization as af, SchemaOrgPlaceData as ag, SchemaOrgPostalAddressData as ah, SchemaOrgProductData as ai, SchemaOrgProfilePageData as aj, SchemaOrgRecipeData as ak, SchemaOrgRestaurantData as al, SchemaOrgReviewData as am, SchemaOrgServiceData as an, SchemaOrgSoftwareApplicationData as ao, SchemaOrgTextOrUrl as ap, SchemaOrgThingData as aq, SchemaOrgVideoObjectData as ar, SchemaOrgWebApplicationData as as, SchemaOrgWebPageData as at, SchemaOrgWebsiteData as au, SchemaOrgBlogPostingConfig as b, SchemaOrgBookConfig as c, SchemaOrgBrandConfig as d, SchemaOrgBreadcrumbListConfig as e, SchemaOrgContactPointConfig as f, SchemaOrgCountryConfig as g, SchemaOrgCourseConfig as h, SchemaOrgEventConfig as i, SchemaOrgFAQPageConfig as j, SchemaOrgHowToConfig as k, SchemaOrgImageObjectConfig as l, SchemaOrgItemListConfig as m, SchemaOrgJobPostingConfig as n, SchemaOrgLegalServiceConfig as o, SchemaOrgLocalBusinessConfig as p, SchemaOrgMovieConfig as q, SchemaOrgMusicAlbumConfig as r, SchemaOrgMusicRecordingConfig as s, SchemaOrgNewsArticleConfig as t, SchemaOrgOfferConfig as u, SchemaOrgOrganizationConfig as v, SchemaOrgPersonConfig as w, SchemaOrgPlaceConfig as x, SchemaOrgPostalAddressConfig as y, SchemaOrgProductConfig as z };
1260
+ export { type SchemaOrgCopyrightYear as $, type SchemaOrgOrganizationConfig as A, type SchemaOrgPersonConfig as B, type SchemaOrgPlaceConfig as C, type SchemaOrgPostalAddressConfig as D, type SchemaOrgProductConfig as E, type SchemaOrgProfilePageConfig as F, type SchemaOrgRecipeConfig as G, type SchemaOrgRestaurantConfig as H, type SchemaOrgReviewConfig as I, type SchemaOrgServiceConfig as J, type SchemaOrgSoftwareApplicationConfig as K, type SchemaOrgVideoObjectConfig as L, type SchemaOrgWebApplicationConfig as M, type SchemaOrgWebPageConfig as N, type SchemaOrgWebsiteConfig as O, type OrganizationContactPoint as P, type SchemaOrgAggregateRating as Q, type SchemaOrgAggregateRatingData as R, SchemaOrgScripts as S, type SchemaOrgArchivedAt as T, type SchemaOrgArticleData as U, type SchemaOrgBlogPostingData as V, type SchemaOrgBookData as W, type SchemaOrgBrandData as X, type SchemaOrgBreadcrumbListData as Y, type SchemaOrgContactPointData as Z, type SchemaOrgContentRating as _, type SchemaOrgScriptsProps as a, type SchemaOrgCountryData as a0, type SchemaOrgCourseData as a1, type SchemaOrgCreativeWorkData as a2, type SchemaOrgEventData as a3, type SchemaOrgFAQPageData as a4, type SchemaOrgHowToData as a5, type SchemaOrgImageInput as a6, type SchemaOrgImageObjectData as a7, type SchemaOrgItemListData as a8, type SchemaOrgJobPostingData as a9, type SchemaOrgWebsiteData as aA, type SchemaOrgLegalServiceData as aa, type SchemaOrgLocalBusinessData as ab, type SchemaOrgMovieData as ac, type SchemaOrgMusicAlbumData as ad, type SchemaOrgMusicRecordingData as ae, type SchemaOrgNewsArticleData as af, type SchemaOrgOfferData as ag, type SchemaOrgOpinionNewsArticleData as ah, type SchemaOrgOrganizationData as ai, type SchemaOrgOrganizationInput as aj, type SchemaOrgPersonData as ak, type SchemaOrgPersonOrOrganization as al, type SchemaOrgPlaceData as am, type SchemaOrgPostalAddressData as an, type SchemaOrgProductData as ao, type SchemaOrgProfilePageData as ap, type SchemaOrgRecipeData as aq, type SchemaOrgRestaurantData as ar, type SchemaOrgReviewData as as, type SchemaOrgServiceData as at, type SchemaOrgSoftwareApplicationData as au, type SchemaOrgTextOrUrl as av, type SchemaOrgThingData as aw, type SchemaOrgVideoObjectData as ax, type SchemaOrgWebApplicationData as ay, type SchemaOrgWebPageData as az, buildSchemaOrgJsonLd as b, buildSchemaOrgJsonLds as c, type SchemaOrgAggregateRatingConfig as d, type SchemaOrgArticleConfig as e, type SchemaOrgBlogPostingConfig as f, type SchemaOrgBookConfig as g, type SchemaOrgBrandConfig as h, type SchemaOrgBreadcrumbListConfig as i, type SchemaOrgContactPointConfig as j, type SchemaOrgCountryConfig as k, type SchemaOrgCourseConfig as l, type SchemaOrgEventConfig as m, type SchemaOrgFAQPageConfig as n, type SchemaOrgHowToConfig as o, type SchemaOrgImageObjectConfig as p, type SchemaOrgItemListConfig as q, type SchemaOrgJobPostingConfig as r, type SchemaOrgLegalServiceConfig as s, type SchemaOrgLocalBusinessConfig as t, type SchemaOrgMovieConfig as u, type SchemaOrgMusicAlbumConfig as v, type SchemaOrgMusicRecordingConfig as w, type SchemaOrgNewsArticleConfig as x, type SchemaOrgOfferConfig as y, type SchemaOrgOpinionNewsArticleConfig as z };
@@ -1,4 +1,4 @@
1
- import { Z as SchemaOrgCreativeWorkData } from './types-BxcJinOf.cjs';
1
+ import { a2 as SchemaOrgCreativeWorkData } from './types-BXSCbl6p.cjs';
2
2
 
3
3
  /** Shared content item nested within the SocialMediaPosting schema */
4
4
  interface SocialMediaPostingSharedContent {
@@ -1,4 +1,31 @@
1
- import { c as SanityImage } from './types-BtSRRG6C.cjs';
1
+ import { JSX } from 'react';
2
+ import { b as SanityImage } from './types-yVmQfby9.js';
3
+
4
+ /**
5
+ * <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags
6
+ * from a combined `schemaOrg` array field.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { SchemaOrgScripts } from 'sanity-plugin-seofields/next'
11
+ *
12
+ * const data = await sanityFetch({ query: `*[_type == "settings"][0]{ structuredData }` })
13
+ *
14
+ * <SchemaOrgScripts data={data.structuredData} />
15
+ * ```
16
+ */
17
+
18
+ declare function buildSchemaOrgJsonLd(item: Record<string, unknown>): Record<string, unknown> | null;
19
+ declare function buildSchemaOrgJsonLds(data?: Array<Record<string, unknown>> | null): Array<Record<string, unknown>>;
20
+ interface SchemaOrgScriptsProps {
21
+ /** Array of Schema.org items from the combined `schemaOrg` field. */
22
+ data?: Array<Record<string, unknown>> | null;
23
+ }
24
+ /**
25
+ * Renders one `<script type="application/ld+json">` tag per Schema.org item.
26
+ * Skips items that fail validation (missing required fields).
27
+ */
28
+ declare function SchemaOrgScripts({ data }: SchemaOrgScriptsProps): JSX.Element | null;
2
29
 
3
30
  /** Copyright year: static number or dynamic (current year) */
4
31
  type SchemaOrgCopyrightYear = number | {
@@ -712,6 +739,24 @@ interface SchemaOrgOfferConfig {
712
739
  };
713
740
  }
714
741
 
742
+ /** Schema.org OpinionNewsArticle — data shape from GROQ query */
743
+ interface SchemaOrgOpinionNewsArticleData extends SchemaOrgCreativeWorkData {
744
+ _type?: 'schemaOrgOpinionNewsArticle';
745
+ articleSection?: string;
746
+ articleBody?: string;
747
+ backstory?: string;
748
+ wordCount?: number;
749
+ dateline?: string;
750
+ printColumn?: string;
751
+ printEdition?: string;
752
+ printPage?: string;
753
+ printSection?: string;
754
+ }
755
+ /** Configuration for `schemaOrgOpinionNewsArticle()` */
756
+ interface SchemaOrgOpinionNewsArticleConfig {
757
+ validation?: Record<string, string>;
758
+ }
759
+
715
760
  /** Contact point nested within the Organization schema */
716
761
  interface OrganizationContactPoint {
717
762
  /** e.g. "customer support", "sales", "technical support" */
@@ -1212,4 +1257,4 @@ interface SchemaOrgWebsiteConfig {
1212
1257
  };
1213
1258
  }
1214
1259
 
1215
- export type { SchemaOrgFAQPageData as $, SchemaOrgProfilePageConfig as A, SchemaOrgRecipeConfig as B, SchemaOrgRestaurantConfig as C, SchemaOrgReviewConfig as D, SchemaOrgServiceConfig as E, SchemaOrgSoftwareApplicationConfig as F, SchemaOrgVideoObjectConfig as G, SchemaOrgWebApplicationConfig as H, SchemaOrgWebPageConfig as I, SchemaOrgWebsiteConfig as J, SchemaOrgAggregateRating as K, SchemaOrgAggregateRatingData as L, SchemaOrgArchivedAt as M, SchemaOrgArticleData as N, OrganizationContactPoint as O, SchemaOrgBlogPostingData as P, SchemaOrgBookData as Q, SchemaOrgBrandData as R, SchemaOrgAggregateRatingConfig as S, SchemaOrgBreadcrumbListData as T, SchemaOrgContactPointData as U, SchemaOrgContentRating as V, SchemaOrgCopyrightYear as W, SchemaOrgCountryData as X, SchemaOrgCourseData as Y, SchemaOrgCreativeWorkData as Z, SchemaOrgEventData as _, SchemaOrgArticleConfig as a, SchemaOrgHowToData as a0, SchemaOrgImageInput as a1, SchemaOrgImageObjectData as a2, SchemaOrgItemListData as a3, SchemaOrgJobPostingData as a4, SchemaOrgLegalServiceData as a5, SchemaOrgLocalBusinessData as a6, SchemaOrgMovieData as a7, SchemaOrgMusicAlbumData as a8, SchemaOrgMusicRecordingData as a9, SchemaOrgNewsArticleData as aa, SchemaOrgOfferData as ab, SchemaOrgOrganizationData as ac, SchemaOrgOrganizationInput as ad, SchemaOrgPersonData as ae, SchemaOrgPersonOrOrganization as af, SchemaOrgPlaceData as ag, SchemaOrgPostalAddressData as ah, SchemaOrgProductData as ai, SchemaOrgProfilePageData as aj, SchemaOrgRecipeData as ak, SchemaOrgRestaurantData as al, SchemaOrgReviewData as am, SchemaOrgServiceData as an, SchemaOrgSoftwareApplicationData as ao, SchemaOrgTextOrUrl as ap, SchemaOrgThingData as aq, SchemaOrgVideoObjectData as ar, SchemaOrgWebApplicationData as as, SchemaOrgWebPageData as at, SchemaOrgWebsiteData as au, SchemaOrgBlogPostingConfig as b, SchemaOrgBookConfig as c, SchemaOrgBrandConfig as d, SchemaOrgBreadcrumbListConfig as e, SchemaOrgContactPointConfig as f, SchemaOrgCountryConfig as g, SchemaOrgCourseConfig as h, SchemaOrgEventConfig as i, SchemaOrgFAQPageConfig as j, SchemaOrgHowToConfig as k, SchemaOrgImageObjectConfig as l, SchemaOrgItemListConfig as m, SchemaOrgJobPostingConfig as n, SchemaOrgLegalServiceConfig as o, SchemaOrgLocalBusinessConfig as p, SchemaOrgMovieConfig as q, SchemaOrgMusicAlbumConfig as r, SchemaOrgMusicRecordingConfig as s, SchemaOrgNewsArticleConfig as t, SchemaOrgOfferConfig as u, SchemaOrgOrganizationConfig as v, SchemaOrgPersonConfig as w, SchemaOrgPlaceConfig as x, SchemaOrgPostalAddressConfig as y, SchemaOrgProductConfig as z };
1260
+ export { type SchemaOrgCopyrightYear as $, type SchemaOrgOrganizationConfig as A, type SchemaOrgPersonConfig as B, type SchemaOrgPlaceConfig as C, type SchemaOrgPostalAddressConfig as D, type SchemaOrgProductConfig as E, type SchemaOrgProfilePageConfig as F, type SchemaOrgRecipeConfig as G, type SchemaOrgRestaurantConfig as H, type SchemaOrgReviewConfig as I, type SchemaOrgServiceConfig as J, type SchemaOrgSoftwareApplicationConfig as K, type SchemaOrgVideoObjectConfig as L, type SchemaOrgWebApplicationConfig as M, type SchemaOrgWebPageConfig as N, type SchemaOrgWebsiteConfig as O, type OrganizationContactPoint as P, type SchemaOrgAggregateRating as Q, type SchemaOrgAggregateRatingData as R, SchemaOrgScripts as S, type SchemaOrgArchivedAt as T, type SchemaOrgArticleData as U, type SchemaOrgBlogPostingData as V, type SchemaOrgBookData as W, type SchemaOrgBrandData as X, type SchemaOrgBreadcrumbListData as Y, type SchemaOrgContactPointData as Z, type SchemaOrgContentRating as _, type SchemaOrgScriptsProps as a, type SchemaOrgCountryData as a0, type SchemaOrgCourseData as a1, type SchemaOrgCreativeWorkData as a2, type SchemaOrgEventData as a3, type SchemaOrgFAQPageData as a4, type SchemaOrgHowToData as a5, type SchemaOrgImageInput as a6, type SchemaOrgImageObjectData as a7, type SchemaOrgItemListData as a8, type SchemaOrgJobPostingData as a9, type SchemaOrgWebsiteData as aA, type SchemaOrgLegalServiceData as aa, type SchemaOrgLocalBusinessData as ab, type SchemaOrgMovieData as ac, type SchemaOrgMusicAlbumData as ad, type SchemaOrgMusicRecordingData as ae, type SchemaOrgNewsArticleData as af, type SchemaOrgOfferData as ag, type SchemaOrgOpinionNewsArticleData as ah, type SchemaOrgOrganizationData as ai, type SchemaOrgOrganizationInput as aj, type SchemaOrgPersonData as ak, type SchemaOrgPersonOrOrganization as al, type SchemaOrgPlaceData as am, type SchemaOrgPostalAddressData as an, type SchemaOrgProductData as ao, type SchemaOrgProfilePageData as ap, type SchemaOrgRecipeData as aq, type SchemaOrgRestaurantData as ar, type SchemaOrgReviewData as as, type SchemaOrgServiceData as at, type SchemaOrgSoftwareApplicationData as au, type SchemaOrgTextOrUrl as av, type SchemaOrgThingData as aw, type SchemaOrgVideoObjectData as ax, type SchemaOrgWebApplicationData as ay, type SchemaOrgWebPageData as az, buildSchemaOrgJsonLd as b, buildSchemaOrgJsonLds as c, type SchemaOrgAggregateRatingConfig as d, type SchemaOrgArticleConfig as e, type SchemaOrgBlogPostingConfig as f, type SchemaOrgBookConfig as g, type SchemaOrgBrandConfig as h, type SchemaOrgBreadcrumbListConfig as i, type SchemaOrgContactPointConfig as j, type SchemaOrgCountryConfig as k, type SchemaOrgCourseConfig as l, type SchemaOrgEventConfig as m, type SchemaOrgFAQPageConfig as n, type SchemaOrgHowToConfig as o, type SchemaOrgImageObjectConfig as p, type SchemaOrgItemListConfig as q, type SchemaOrgJobPostingConfig as r, type SchemaOrgLegalServiceConfig as s, type SchemaOrgLocalBusinessConfig as t, type SchemaOrgMovieConfig as u, type SchemaOrgMusicAlbumConfig as v, type SchemaOrgMusicRecordingConfig as w, type SchemaOrgNewsArticleConfig as x, type SchemaOrgOfferConfig as y, type SchemaOrgOpinionNewsArticleConfig as z };
@@ -1,4 +1,4 @@
1
- import { Z as SchemaOrgCreativeWorkData } from './types-Dp9Pfnt9.js';
1
+ import { a2 as SchemaOrgCreativeWorkData } from './types-C19cQx5D.js';
2
2
 
3
3
  /** Shared content item nested within the SocialMediaPosting schema */
4
4
  interface SocialMediaPostingSharedContent {
@@ -24,6 +24,8 @@ interface SanityImageWithAlt extends SanityImage {
24
24
  interface RobotsSettings {
25
25
  noIndex?: boolean;
26
26
  noFollow?: boolean;
27
+ noTranslate?: boolean;
28
+ noImageIndex?: boolean;
27
29
  }
28
30
  interface MetaAttribute {
29
31
  _type: 'metaAttribute';
@@ -67,6 +69,11 @@ interface SeoFields {
67
69
  canonicalUrl?: string;
68
70
  openGraph?: OpenGraphSettings;
69
71
  twitter?: TwitterCardSettings;
72
+ focusKeyword?: string;
73
+ hreflangs?: Array<{
74
+ locale: string;
75
+ url: string;
76
+ }>;
70
77
  }
71
78
  type SeoHealthStatus = 'excellent' | 'good' | 'fair' | 'poor' | 'missing';
72
79
  interface SeoHealthMetrics {
@@ -85,20 +92,5 @@ interface DocumentWithSeoHealth {
85
92
  _updatedAt?: string;
86
93
  health: SeoHealthMetrics;
87
94
  }
88
- /**
89
- * A single deprecation warning entry produced by the plugin when it detects
90
- * a deprecated config key. Each entry carries the migration hint, the plugin
91
- * version in which the key was deprecated, and the matching changelog URL so
92
- * the dashboard banner can render per-version links even when warnings come
93
- * from multiple release cycles.
94
- */
95
- interface DeprecationWarning {
96
- /** Migration hint shown in the banner, e.g. "display.typeColumn → showTypeColumn". */
97
- key: string;
98
- /** Plugin version that deprecated this key, e.g. "v1.3.2". */
99
- version: string;
100
- /** Full changelog URL for this deprecation, e.g. ".../CHANGELOG.md#132--2026-03-23". */
101
- changelogUrl: string;
102
- }
103
95
 
104
- export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S, DeprecationWarning as a, SeoHealthStatus as b, SanityImage as c, SanityImageWithAlt as d, SeoFields as e };
96
+ export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S, SeoHealthStatus as a, SanityImage as b, SanityImageWithAlt as c, SeoFields as d };
@@ -24,6 +24,8 @@ interface SanityImageWithAlt extends SanityImage {
24
24
  interface RobotsSettings {
25
25
  noIndex?: boolean;
26
26
  noFollow?: boolean;
27
+ noTranslate?: boolean;
28
+ noImageIndex?: boolean;
27
29
  }
28
30
  interface MetaAttribute {
29
31
  _type: 'metaAttribute';
@@ -67,6 +69,11 @@ interface SeoFields {
67
69
  canonicalUrl?: string;
68
70
  openGraph?: OpenGraphSettings;
69
71
  twitter?: TwitterCardSettings;
72
+ focusKeyword?: string;
73
+ hreflangs?: Array<{
74
+ locale: string;
75
+ url: string;
76
+ }>;
70
77
  }
71
78
  type SeoHealthStatus = 'excellent' | 'good' | 'fair' | 'poor' | 'missing';
72
79
  interface SeoHealthMetrics {
@@ -85,20 +92,5 @@ interface DocumentWithSeoHealth {
85
92
  _updatedAt?: string;
86
93
  health: SeoHealthMetrics;
87
94
  }
88
- /**
89
- * A single deprecation warning entry produced by the plugin when it detects
90
- * a deprecated config key. Each entry carries the migration hint, the plugin
91
- * version in which the key was deprecated, and the matching changelog URL so
92
- * the dashboard banner can render per-version links even when warnings come
93
- * from multiple release cycles.
94
- */
95
- interface DeprecationWarning {
96
- /** Migration hint shown in the banner, e.g. "display.typeColumn → showTypeColumn". */
97
- key: string;
98
- /** Plugin version that deprecated this key, e.g. "v1.3.2". */
99
- version: string;
100
- /** Full changelog URL for this deprecation, e.g. ".../CHANGELOG.md#132--2026-03-23". */
101
- changelogUrl: string;
102
- }
103
95
 
104
- export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S, DeprecationWarning as a, SeoHealthStatus as b, SanityImage as c, SanityImageWithAlt as d, SeoFields as e };
96
+ export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S, SeoHealthStatus as a, SanityImage as b, SanityImageWithAlt as c, SeoFields as d };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sanity-plugin-seofields",
3
- "version": "1.6.5",
3
+ "version": "1.8.0",
4
4
  "description": "The only Sanity Studio SEO plugin with a built-in audit dashboard. Manage meta tags, Open Graph, Twitter Cards, robots directives, JSON-LD structured data, and 38 Schema.org types.",
5
5
  "keywords": [
6
6
  "sanity",
@@ -150,6 +150,7 @@
150
150
  "react": "^19.1.1",
151
151
  "react-dom": "^19.1.1",
152
152
  "sanity": "^5.0.0",
153
+ "seofields-pro": "^1.0.1",
153
154
  "styled-components": "^6.1.19",
154
155
  "ts-jest": "^29.4.6",
155
156
  "ts-json-schema-generator": "^2.4.0",
@@ -1,4 +0,0 @@
1
- export { SeoHealthDashboard_default as default } from './chunk-HQTYQMP5.js';
2
- import './chunk-2NMEKWO5.js';
3
- //# sourceMappingURL=SeoHealthDashboard-BEZVLLFG.js.map
4
- //# sourceMappingURL=SeoHealthDashboard-BEZVLLFG.js.map
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkBHIZQLY7_cjs = require('./chunk-BHIZQLY7.cjs');
4
- require('./chunk-S367Y35J.cjs');
5
-
6
-
7
-
8
- module.exports = chunkBHIZQLY7_cjs.SeoHealthDashboard_default;
9
- //# sourceMappingURL=SeoHealthDashboard-D3XU3CUB.cjs.map
10
- //# sourceMappingURL=SeoHealthDashboard-D3XU3CUB.cjs.map
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkBHIZQLY7_cjs = require('./chunk-BHIZQLY7.cjs');
4
- var chunkS367Y35J_cjs = require('./chunk-S367Y35J.cjs');
5
- var jsxRuntime = require('react/jsx-runtime');
6
-
7
- var SeoHealthTool = (props) => {
8
- return /* @__PURE__ */ jsxRuntime.jsx(chunkBHIZQLY7_cjs.SeoHealthDashboard_default, chunkS367Y35J_cjs.__spreadValues({}, props));
9
- };
10
- var SeoHealthTool_default = SeoHealthTool;
11
-
12
- module.exports = SeoHealthTool_default;
13
- //# sourceMappingURL=SeoHealthTool-4VZMD4TR.cjs.map
14
- //# sourceMappingURL=SeoHealthTool-4VZMD4TR.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/SeoHealthTool.tsx"],"names":["jsx","SeoHealthDashboard_default"],"mappings":";;;;;;AAMA,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAmC;AACxD,EAAA,uBAAOA,cAAA,CAACC,mFAAuB,KAAA,CAAO,CAAA;AACxC,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"SeoHealthTool-4VZMD4TR.cjs","sourcesContent":["import SeoHealthDashboard, {SeoHealthDashboardProps} from './SeoHealthDashboard'\n\n/**\n * Sanity Tool component for the SEO Health Dashboard\n * This component wraps the SeoHealthDashboard for use as a custom tool in Sanity Studio\n */\nconst SeoHealthTool = (props: SeoHealthDashboardProps) => {\n return <SeoHealthDashboard {...props} />\n}\n\nexport default SeoHealthTool\n"]}
@@ -1,12 +0,0 @@
1
- import { SeoHealthDashboard_default } from './chunk-HQTYQMP5.js';
2
- import { __spreadValues } from './chunk-2NMEKWO5.js';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- var SeoHealthTool = (props) => {
6
- return /* @__PURE__ */ jsx(SeoHealthDashboard_default, __spreadValues({}, props));
7
- };
8
- var SeoHealthTool_default = SeoHealthTool;
9
-
10
- export { SeoHealthTool_default as default };
11
- //# sourceMappingURL=SeoHealthTool-BSTYAKQS.js.map
12
- //# sourceMappingURL=SeoHealthTool-BSTYAKQS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/SeoHealthTool.tsx"],"names":[],"mappings":";;;;AAMA,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAmC;AACxD,EAAA,uBAAO,GAAA,CAAC,+CAAuB,KAAA,CAAO,CAAA;AACxC,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"SeoHealthTool-BSTYAKQS.js","sourcesContent":["import SeoHealthDashboard, {SeoHealthDashboardProps} from './SeoHealthDashboard'\n\n/**\n * Sanity Tool component for the SEO Health Dashboard\n * This component wraps the SeoHealthDashboard for use as a custom tool in Sanity Studio\n */\nconst SeoHealthTool = (props: SeoHealthDashboardProps) => {\n return <SeoHealthDashboard {...props} />\n}\n\nexport default SeoHealthTool\n"]}