sanity-plugin-seofields 1.5.4 → 1.6.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.
- package/README.md +4 -4
- package/dist/SeoHealthDashboard-7XMPVJRX.cjs +10 -0
- package/dist/{SeoHealthDashboard-KPBNXSL4.cjs.map → SeoHealthDashboard-7XMPVJRX.cjs.map} +1 -1
- package/dist/SeoHealthDashboard-UWPLB5DM.js +4 -0
- package/dist/{SeoHealthDashboard-QKVB5HK3.js.map → SeoHealthDashboard-UWPLB5DM.js.map} +1 -1
- package/dist/{SeoHealthTool-ON3SRXCF.cjs → SeoHealthTool-2H4XZR4I.cjs} +4 -4
- package/dist/{SeoHealthTool-ON3SRXCF.cjs.map → SeoHealthTool-2H4XZR4I.cjs.map} +1 -1
- package/dist/{SeoHealthTool-EPPOEDTW.js → SeoHealthTool-XCXINAQI.js} +3 -3
- package/dist/{SeoHealthTool-EPPOEDTW.js.map → SeoHealthTool-XCXINAQI.js.map} +1 -1
- package/dist/{SeoPreview-G3LPA7GV.js → SeoPreview-F6GGPZWI.js} +2 -2
- package/dist/SeoPreview-F6GGPZWI.js.map +1 -0
- package/dist/{SeoPreview-Y3CFDVBR.cjs → SeoPreview-JDROKZLP.cjs} +2 -2
- package/dist/SeoPreview-JDROKZLP.cjs.map +1 -0
- package/dist/chunk-6NIHHOVS.js +3918 -0
- package/dist/chunk-6NIHHOVS.js.map +1 -0
- package/dist/chunk-7HCP5O62.cjs +4027 -0
- package/dist/chunk-7HCP5O62.cjs.map +1 -0
- package/dist/{chunk-527WXITP.js → chunk-KWUITSHS.js} +218 -54
- package/dist/chunk-KWUITSHS.js.map +1 -0
- package/dist/{chunk-UCVSMPEJ.js → chunk-NHJBEV3A.js} +2 -2
- package/dist/{chunk-UCVSMPEJ.js.map → chunk-NHJBEV3A.js.map} +1 -1
- package/dist/chunk-WCLEWFAJ.cjs +669 -0
- package/dist/chunk-WCLEWFAJ.cjs.map +1 -0
- package/dist/{chunk-G2SVI2SP.cjs → chunk-Z74QPO75.cjs} +2 -2
- package/dist/{chunk-G2SVI2SP.cjs.map → chunk-Z74QPO75.cjs.map} +1 -1
- package/dist/cli.js +25 -25
- package/dist/component-7rqDvuy2.d.ts +534 -0
- package/dist/component-J2nEQkOw.d.cts +534 -0
- package/dist/index.cjs +159 -185
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -51
- package/dist/index.d.ts +43 -51
- package/dist/index.js +159 -185
- package/dist/index.js.map +1 -1
- package/dist/next.cjs +155 -51
- package/dist/next.d.cts +3 -3
- package/dist/next.d.ts +3 -3
- package/dist/next.js +2 -2
- package/dist/schema/next.cjs +171 -52
- package/dist/schema/next.cjs.map +1 -1
- package/dist/schema/next.d.cts +12 -428
- package/dist/schema/next.d.ts +12 -428
- package/dist/schema/next.js +20 -2
- package/dist/schema/next.js.map +1 -1
- package/dist/schema.cjs +831 -156
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +318 -41
- package/dist/schema.d.ts +318 -41
- package/dist/schema.js +567 -86
- package/dist/schema.js.map +1 -1
- package/dist/types-BRn3hfQb.d.ts +24 -0
- package/dist/types-BSgolLj3.d.cts +24 -0
- package/dist/{types-R3n9Fu4w.d.cts → types-BtSRRG6C.d.cts} +1 -1
- package/dist/{types-R3n9Fu4w.d.ts → types-BtSRRG6C.d.ts} +1 -1
- package/dist/types-DnVvOp3o.d.ts +1215 -0
- package/dist/types-DoUYMRVf.d.cts +1215 -0
- package/package.json +2 -1
- package/dist/SeoHealthDashboard-KPBNXSL4.cjs +0 -10
- package/dist/SeoHealthDashboard-QKVB5HK3.js +0 -4
- package/dist/SeoPreview-G3LPA7GV.js.map +0 -1
- package/dist/SeoPreview-Y3CFDVBR.cjs.map +0 -1
- package/dist/chunk-527WXITP.js.map +0 -1
- package/dist/chunk-6CYMVS3O.js +0 -1245
- package/dist/chunk-6CYMVS3O.js.map +0 -1
- package/dist/chunk-D2GWRRK5.cjs +0 -1293
- package/dist/chunk-D2GWRRK5.cjs.map +0 -1
- package/dist/chunk-L3L3FSPJ.cjs +0 -478
- package/dist/chunk-L3L3FSPJ.cjs.map +0 -1
- package/dist/types-CVaAX7uy.d.cts +0 -589
- package/dist/types-Ci-ZZT7A.d.ts +0 -589
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema/_shared.ts","../src/schema/generator.ts","../src/schema/icons.ts","../src/schema/aggregateRating/schema.ts","../src/schema/article/schema.ts","../src/schema/blogPosting/schema.ts","../src/schema/book/schema.ts","../src/schema/brand/schema.ts","../src/schema/breadcrumbList/schema.ts","../src/schema/contactPoint/schema.ts","../src/schema/country/schema.ts","../src/schema/course/schema.ts","../src/schema/event/schema.ts","../src/schema/faqPage/schema.ts","../src/schema/howTo/schema.ts","../src/schema/imageObject/schema.ts","../src/schema/itemList/schema.ts","../src/schema/jobPosting/schema.ts","../src/schema/legalService/schema.ts","../src/schema/localBusiness/schema.ts","../src/schema/movie/schema.ts","../src/schema/musicAlbum/schema.ts","../src/schema/musicRecording/schema.ts","../src/schema/newsArticle/schema.ts","../src/schema/offer/schema.ts","../src/schema/person/schema.ts","../src/schema/place/schema.ts","../src/schema/postalAddress/schema.ts","../src/schema/product/schema.ts","../src/schema/profilePage/schema.ts","../src/schema/recipe/schema.ts","../src/schema/restaurant/schema.ts","../src/schema/review/schema.ts","../src/schema/service/schema.ts","../src/schema/socialMediaPosting/schema.ts","../src/schema/softwareApplication/schema.ts","../src/schema/videoObject/schema.ts","../src/schema/webApplication/schema.ts","../src/schema/webPage/schema.ts"],"names":["base","_a"],"mappings":"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","file":"chunk-6NIHHOVS.js","sourcesContent":["/**\n * Shared field collections reused across multiple Schema.org types.\n *\n * Includes:\n * - polymorphic helpers (image, author, publisher, genre, keywords)\n * - Thing common fields (name, alternateName, additionalType, etc.)\n * - CreativeWork common fields (award, copyrightNotice, copyrightYear, etc.)\n *\n * These helpers keep the polymorphic UX consistent — editors get a `Type`\n * selector and only see the relevant fields for the chosen variant.\n */\nimport type {SchemaFieldDef} from './generator'\n\n// ─── ImageObject inner fields (per https://schema.org/ImageObject) ────────────\n\nexport const imageObjectInnerFields: SchemaFieldDef[] = [\n {\n name: 'url',\n title: 'URL',\n type: 'url',\n description: 'URL of the image.',\n required: {key: 'imageObjectUrlRequired', message: 'Image URL is required.'},\n },\n {name: 'contentUrl', title: 'Content URL', type: 'url', description: 'Direct URL to the file.'},\n {name: 'caption', title: 'Caption', type: 'string', description: 'Caption / alt text.'},\n {name: 'name', title: 'Name', type: 'string'},\n {name: 'description', title: 'Description', type: 'text', rows: 2},\n {name: 'width', title: 'Width (px)', type: 'number'},\n {name: 'height', title: 'Height (px)', type: 'number'},\n {\n name: 'encodingFormat',\n title: 'Encoding Format',\n type: 'string',\n description: 'e.g. image/jpeg',\n },\n {name: 'contentLocation', title: 'Content Location', type: 'string'},\n {name: 'datePublished', title: 'Date Published', type: 'date'},\n {name: 'creditText', title: 'Credit Text', type: 'string'},\n {name: 'license', title: 'License URL', type: 'url'},\n {name: 'acquireLicensePage', title: 'Acquire License Page', type: 'url'},\n {name: 'copyrightNotice', title: 'Copyright Notice', type: 'string'},\n {\n name: 'representativeOfPage',\n title: 'Representative of Page',\n type: 'boolean',\n description: 'Whether this image is the main / lead image for the page.',\n },\n {name: 'embedUrl', title: 'Embed URL', type: 'url'},\n {name: 'thumbnailUrl', title: 'Thumbnail URL', type: 'url'},\n]\n\n// ─── Person inner fields (subset for embedding within author/publisher) ───────\n\nconst personInnerFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Full Name',\n type: 'string',\n required: {key: 'personNameRequired', message: 'Person name is required.'},\n },\n {name: 'jobTitle', title: 'Job Title', type: 'string'},\n {name: 'url', title: 'Profile URL', type: 'url'},\n {name: 'image', title: 'Image URL', type: 'url'},\n {name: 'email', title: 'Email', type: 'string'},\n {name: 'telephone', title: 'Telephone', type: 'string'},\n {name: 'description', title: 'Bio', type: 'text', rows: 3},\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'LinkedIn, Twitter, GitHub, or any page about this person.',\n urlValidation: {schemes: ['http', 'https']},\n },\n]\n\n// ─── Organization inner fields (subset for embedding) ────────────────────────\n\nconst organizationInnerFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Organization Name',\n type: 'string',\n required: {key: 'organizationNameRequired', message: 'Organization name is required.'},\n },\n {name: 'url', title: 'Website URL', type: 'url'},\n {name: 'logo', title: 'Logo URL', type: 'url'},\n {name: 'description', title: 'Description', type: 'text', rows: 2},\n {name: 'email', title: 'Email', type: 'string'},\n {name: 'telephone', title: 'Telephone', type: 'string'},\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'A page about this organization (e.g. Wikipedia, Wikidata, social profile).',\n urlValidation: {schemes: ['http', 'https']},\n },\n]\n\n// ─── Polymorphic Helpers ─────────────────────────────────────────────────────\n\nexport interface PolymorphicOptions {\n /** Override field name (defaults vary per helper) */\n name?: string\n /** Override field title */\n title?: string\n /** Help text */\n description?: string\n}\n\n/** Image: URL string OR full Schema.org ImageObject. */\nexport function polymorphicImage(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'image',\n title: opts.title ?? 'Image',\n type: 'select',\n description: opts.description ?? 'Provide either a plain URL or a full ImageObject.',\n defaultVariant: 'url',\n variants: [\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Image URL',\n type: 'url',\n description: 'Direct URL to the image.',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n {\n value: 'imageObject',\n title: 'ImageObject (detailed)',\n jsonLdType: 'ImageObject',\n fields: imageObjectInnerFields,\n },\n ],\n }\n}\n\n/** Author: Person OR Organization. */\nexport function polymorphicAuthor(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'author',\n title: opts.title ?? 'Author',\n type: 'select',\n description: opts.description ?? 'The author — choose Person or Organization.',\n defaultVariant: 'person',\n variants: [\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n ],\n }\n}\n\n/** Publisher: Person OR Organization. */\nexport function polymorphicPublisher(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'publisher',\n title: opts.title ?? 'Publisher',\n type: 'select',\n description: opts.description ?? 'The publisher — choose Person or Organization.',\n defaultVariant: 'organization',\n variants: [\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n ],\n }\n}\n\n/** Genre: free text OR URL (e.g. linking to a Wikipedia genre page). */\nexport function polymorphicGenre(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'genre',\n title: opts.title ?? 'Genre',\n type: 'select',\n description: opts.description ?? 'Genre — provide as text or a URL.',\n defaultVariant: 'text',\n variants: [\n {value: 'text', title: 'Text', fields: [{name: 'text', title: 'Genre', type: 'string'}]},\n {value: 'url', title: 'URL', fields: [{name: 'url', title: 'Genre URL', type: 'url'}]},\n ],\n }\n}\n\n/** Keywords: free text (comma-separated) OR URL. */\nexport function polymorphicKeywords(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'keywords',\n title: opts.title ?? 'Keywords',\n type: 'select',\n description:\n opts.description ?? 'Keywords describing the content — comma-separated text or a URL.',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [\n {\n name: 'text',\n title: 'Keywords',\n type: 'string',\n description: 'Comma-separated list, e.g. \"react, sanity, seo\".',\n },\n ],\n },\n {value: 'url', title: 'URL', fields: [{name: 'url', title: 'Keywords URL', type: 'url'}]},\n ],\n }\n}\n\n// ─── Polymorphic additionalType (text or URL) ────────────────────────────────\n\n/** additionalType: free text OR URL (linking to a Schema.org / Wikidata type). */\nexport function polymorphicAdditionalType(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'additionalType',\n title: opts.title ?? 'Additional Type',\n type: 'select',\n description:\n opts.description ??\n 'An additional Schema.org type — provide as text or a URL (e.g. a Wikidata URI).',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [{name: 'text', title: 'Type', type: 'string'}],\n },\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Type URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n ],\n }\n}\n\n// ─── Person-or-Organization role helpers ─────────────────────────────────────\n\n/** Contributor: Person OR Organization. */\nexport function polymorphicContributor(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'contributor',\n title: opts.title ?? 'Contributor',\n type: 'select',\n description: opts.description ?? 'A secondary contributor — choose Person or Organization.',\n defaultVariant: 'person',\n variants: [\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n ],\n }\n}\n\n/** Creator: Person OR Organization. */\nexport function polymorphicCreator(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'creator',\n title: opts.title ?? 'Creator',\n type: 'select',\n description: opts.description ?? 'The creator — choose Person or Organization.',\n defaultVariant: 'person',\n variants: [\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n ],\n }\n}\n\n/** Maintainer: Person OR Organization. */\nexport function polymorphicMaintainer(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'maintainer',\n title: opts.title ?? 'Maintainer',\n type: 'select',\n description: opts.description ?? 'The maintainer — choose Person or Organization.',\n defaultVariant: 'organization',\n variants: [\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n ],\n }\n}\n\nexport function polymorphicSponsor(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'sponsor',\n title: opts.title ?? 'Sponsor',\n type: 'select',\n description: opts.description ?? 'A sponsor — choose Person or Organization.',\n defaultVariant: 'organization',\n variants: [\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n ],\n }\n}\n\n/** Funder: Person OR Organization. */\nexport function polymorphicFunder(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'funder',\n title: opts.title ?? 'Funder',\n type: 'select',\n description: opts.description ?? 'A funder or sponsor — choose Person or Organization.',\n defaultVariant: 'organization',\n variants: [\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n ],\n }\n}\n\n/** Copyright Holder: Person OR Organization. */\nexport function polymorphicCopyrightHolder(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'copyrightHolder',\n title: opts.title ?? 'Copyright Holder',\n type: 'select',\n description: opts.description ?? 'The copyright holder — choose Person or Organization.',\n defaultVariant: 'organization',\n variants: [\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n ],\n }\n}\n\n// ─── Other polymorphic helpers ────────────────────────────────────────────────\n\n/** Identifier: text (e.g. ISBN, GTIN) OR URL. */\nexport function polymorphicIdentifier(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'identifier',\n title: opts.title ?? 'Identifier',\n type: 'select',\n description:\n opts.description ?? 'A unique identifier for this item — text (e.g. ISBN, GTIN) or a URL.',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [\n {\n name: 'text',\n title: 'Identifier',\n type: 'string',\n description: 'e.g. ISBN, GTIN-13, MPN, SKU',\n },\n ],\n },\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Identifier URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n ],\n }\n}\n\n/** Owner: Person OR Organization. */\nexport function polymorphicOwner(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'owner',\n title: opts.title ?? 'Owner',\n type: 'select',\n description: opts.description ?? 'The owner of this item — choose Person or Organization.',\n defaultVariant: 'person',\n variants: [\n {value: 'person', title: 'Person', jsonLdType: 'Person', fields: personInnerFields},\n {\n value: 'organization',\n title: 'Organization',\n jsonLdType: 'Organization',\n fields: organizationInnerFields,\n },\n ],\n }\n}\n\n/** Citation: text reference OR URL to the cited work. */\nexport function polymorphicCitation(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'citation',\n title: opts.title ?? 'Citation',\n type: 'select',\n description:\n opts.description ?? 'A citation for this work — text reference or URL to the cited work.',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [\n {\n name: 'text',\n title: 'Citation Text',\n type: 'string',\n description: 'e.g. \"Smith, J. (2020). Title. Journal, 1(1), 1–10.\"',\n },\n ],\n },\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Citation URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n ],\n }\n}\n\n/** Content Rating: plain text OR structured Rating object. */\nexport function polymorphicContentRating(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'contentRating',\n title: opts.title ?? 'Content Rating',\n type: 'select',\n description: opts.description ?? 'A rating for the content — e.g. MPAA, ESRB, PEGI.',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [\n {\n name: 'text',\n title: 'Rating',\n type: 'string',\n description: 'e.g. \"PG-13\", \"PEGI 12\", \"TV-MA\"',\n },\n ],\n },\n {\n value: 'rating',\n title: 'Rating (detailed)',\n jsonLdType: 'Rating',\n fields: [\n {\n name: 'ratingValue',\n title: 'Rating Value',\n type: 'string',\n description: 'Numeric or descriptive value, e.g. \"4.5\" or \"PG-13\".',\n },\n {\n name: 'bestRating',\n title: 'Best Rating',\n type: 'string',\n description: 'Highest value allowed, e.g. \"5\".',\n },\n {\n name: 'worstRating',\n title: 'Worst Rating',\n type: 'string',\n description: 'Lowest value allowed, e.g. \"1\".',\n },\n {name: 'ratingExplanation', title: 'Rating Explanation', type: 'text', rows: 2},\n {\n name: 'author',\n title: 'Rating Author',\n type: 'string',\n description: 'Name of the rating organization or author.',\n },\n ],\n },\n ],\n }\n}\n\n/** archivedAt: URL or simplified WebPage reference. */\nexport function polymorphicArchivedAt(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'archivedAt',\n title: opts.title ?? 'Archived At',\n type: 'select',\n description:\n opts.description ?? 'A URL where this content is archived, or a WebPage reference.',\n defaultVariant: 'url',\n variants: [\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Archive URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n {\n value: 'webPage',\n title: 'WebPage',\n jsonLdType: 'WebPage',\n fields: [\n {\n name: 'url',\n title: 'Web Page URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n {name: 'name', title: 'Page Name', type: 'string'},\n {name: 'description', title: 'Page Description', type: 'text', rows: 2},\n ],\n },\n ],\n }\n}\n\n/** isBasedOn: URL or text reference to the source CreativeWork/Product. */\nexport function polymorphicIsBasedOn(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'isBasedOn',\n title: opts.title ?? 'Is Based On',\n type: 'select',\n description:\n opts.description ??\n 'A resource used in the creation of this resource — URL or text reference.',\n defaultVariant: 'url',\n variants: [\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Source URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n {\n value: 'text',\n title: 'Text',\n fields: [{name: 'text', title: 'Source Reference', type: 'string'}],\n },\n ],\n }\n}\n\n/** isPartOf: URL or text reference to a parent CreativeWork. */\nexport function polymorphicIsPartOf(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'isPartOf',\n title: opts.title ?? 'Is Part Of',\n type: 'select',\n description:\n opts.description ?? 'A parent CreativeWork this work is part of — URL or text reference.',\n defaultVariant: 'url',\n variants: [\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Parent URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n {\n value: 'text',\n title: 'Text',\n fields: [{name: 'text', title: 'Parent Reference', type: 'string'}],\n },\n ],\n }\n}\n\n/** License: URL to a license document or text name. */\nexport function polymorphicLicense(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'license',\n title: opts.title ?? 'License',\n type: 'select',\n description:\n opts.description ?? 'A license for the content — URL to license document or text name.',\n defaultVariant: 'url',\n variants: [\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'License URL',\n type: 'url',\n description: 'e.g. https://creativecommons.org/licenses/by/4.0/',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n {\n value: 'text',\n title: 'Text',\n fields: [\n {\n name: 'text',\n title: 'License Name',\n type: 'string',\n description: 'e.g. \"CC BY 4.0\", \"MIT\", \"Apache 2.0\"',\n },\n ],\n },\n ],\n }\n}\n\n/** locationCreated: text name or URL reference to a Place. */\nexport function polymorphicLocationCreated(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'locationCreated',\n title: opts.title ?? 'Location Created',\n type: 'select',\n description:\n opts.description ?? 'The location where this work was created — text or URL to a Place.',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [\n {\n name: 'text',\n title: 'Location',\n type: 'string',\n description: 'e.g. \"New York, USA\"',\n },\n ],\n },\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Location URL',\n type: 'url',\n description: 'URL to the place (e.g. Wikidata, GeoNames).',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n ],\n }\n}\n\n/** Material: text description OR URL to the material resource. */\nexport function polymorphicMaterial(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'material',\n title: opts.title ?? 'Material',\n type: 'select',\n description: opts.description ?? 'A material used in the creation of this work — text or URL.',\n defaultVariant: 'text',\n variants: [\n {\n value: 'text',\n title: 'Text',\n fields: [{name: 'text', title: 'Material', type: 'string'}],\n },\n {\n value: 'url',\n title: 'URL',\n fields: [\n {\n name: 'url',\n title: 'Material URL',\n type: 'url',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n },\n ],\n }\n}\n\n// ─── Simple reusable field factories ─────────────────────────────────────────\n\n/**\n * IETF BCP 47 language options shown in the `inLanguage` dropdown.\n * Add more via `extraOptions` in `inLanguageField()`.\n */\nexport const IETF_LANGUAGE_OPTIONS: Array<{title: string; value: string}> = [\n {title: 'English', value: 'en'},\n {title: 'Spanish', value: 'es'},\n {title: 'French', value: 'fr'},\n {title: 'German', value: 'de'},\n {title: 'Portuguese', value: 'pt'},\n {title: 'Italian', value: 'it'},\n {title: 'Dutch', value: 'nl'},\n {title: 'Japanese', value: 'ja'},\n {title: 'Chinese (Simplified)', value: 'zh'},\n {title: 'Korean', value: 'ko'},\n {title: 'Hindi', value: 'hi'},\n {title: 'Arabic', value: 'ar'},\n {title: 'Russian', value: 'ru'},\n {title: 'Polish', value: 'pl'},\n {title: 'Turkish', value: 'tr'},\n {title: 'Swedish', value: 'sv'},\n {title: 'Norwegian', value: 'no'},\n {title: 'Danish', value: 'da'},\n {title: 'Finnish', value: 'fi'},\n {title: 'Greek', value: 'el'},\n {title: 'Czech', value: 'cs'},\n {title: 'Hungarian', value: 'hu'},\n {title: 'Romanian', value: 'ro'},\n {title: 'Ukrainian', value: 'uk'},\n {title: 'Hebrew', value: 'he'},\n {title: 'Indonesian', value: 'id'},\n {title: 'Thai', value: 'th'},\n {title: 'Vietnamese', value: 'vi'},\n {title: 'Bengali', value: 'bn'},\n]\n\nexport interface SimpleFieldOptions {\n /** Override field title */\n title?: string\n /** Help text / description */\n description?: string\n /** If provided, field is required with this validation config */\n required?: {key: string; message: string}\n}\n\nexport interface InLanguageFieldOptions {\n /** Override field title (default: 'Language') */\n title?: string\n /** Help text / description */\n description?: string\n /** Default selected language (default: 'en') */\n initialValue?: string\n /** Additional language options appended after the defaults */\n extraOptions?: Array<{title: string; value: string}>\n}\n\n/**\n * Reusable `inLanguage` field — renders a searchable dropdown of IETF BCP 47\n * language codes (per https://schema.org/inLanguage), defaulting to English.\n *\n * @example\n * ```ts\n * inLanguageField() // 'Language' / default description\n * inLanguageField({ description: 'The language of the page content.' })\n * inLanguageField({ initialValue: 'fr', extraOptions: [{title: 'Catalan', value: 'ca'}] })\n * ```\n */\nexport function inLanguageField(opts: InLanguageFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'inLanguage',\n title: opts.title ?? 'Language',\n type: 'string',\n description: opts.description ?? 'Content language (IETF BCP 47 tag), e.g. \"en\".',\n initialValue: opts.initialValue ?? 'en',\n options: [...IETF_LANGUAGE_OPTIONS, ...(opts.extraOptions ?? [])],\n }\n}\n\n/**\n * Reusable `name` field — a simple string with configurable title, description,\n * and optional required validation.\n *\n * @example\n * ```ts\n * nameField({ title: 'Website Name', description: 'The name of the website.' })\n * nameField({ title: 'Page Name', required: { key: 'nameRequired', message: 'Name is required.' } })\n * ```\n * @see https://schema.org/name\n */\nexport function nameField(opts: SimpleFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'name',\n title: opts.title ?? 'Name',\n type: 'string',\n description: opts.description ?? 'The name of the item.',\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n\n/**\n * Reusable `potentialAction` field for SearchAction — allows configuring a sitelinks search box in Google results. Renders a single `target` URL field with the required\n * `{search_term_string}` placeholder.\n * @param opts Options to customize the field's name, title, and description.\n * @returns A SchemaFieldDef for a SearchAction potentialAction with a target URL template.\n * @example\n * ```ts\n * potentialActionSearch() // default name, title, and description\n * potentialActionSearch({ title: 'Google Sitelinks Search Box', description: 'Configure the search URL template for the Google sitelinks search box.' })\n * ```\n * @see https://schema.org/SearchAction#potentialAction\n */\nexport function potentialActionSearch(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'potentialAction',\n title: opts.title ?? 'Site Search (SearchAction)',\n type: 'object',\n description:\n opts.description ??\n 'Enables the sitelinks search box in Google. Configure the search URL template.',\n jsonLdType: 'SearchAction',\n fields: [\n {\n name: 'target',\n title: 'Search URL Template',\n type: 'url',\n description:\n 'URL with {search_term_string} placeholder, e.g. \"https://example.com/search?q={search_term_string}\".',\n },\n ],\n }\n}\n\n/**\n * Reusable `description` field — a text area with configurable title, description,\n * and optional required validation.\n * @param opts Options to customize the field's title, description, and validation.\n * @returns A SchemaFieldDef for a description field with the specified options.\n * @example\n * ```ts\n * descriptionField({ title: 'Website Description', description: 'A brief description of the website.' })\n * descriptionField({ title: 'Page Description', required: { key: 'descriptionRequired', message: 'Description is required.' } })\n * ```\n * @see https://schema.org/description\n */\nexport function descriptionField(opts: SimpleFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'description',\n title: opts.title ?? 'Description',\n type: 'text',\n rows: 3,\n description: opts.description ?? 'A description of the item.',\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n\n/**\n * Reusable `url` field — a URL type with configurable title, description,\n * http/https validation, and optional required validation.\n *\n * @example\n * ```ts\n * urlField({ title: 'Website URL', description: 'The full URL of the website.' })\n * urlField({ title: 'Page URL', required: { key: 'urlRequired', message: 'URL is required.' } })\n * ```\n */\nexport function urlField(opts: SimpleFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'url',\n title: opts.title ?? 'URL',\n type: 'url',\n description: opts.description ?? 'URL of the item.',\n urlValidation: {schemes: ['http', 'https']},\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n\nexport interface DatePublishedFieldOptions extends SimpleFieldOptions {\n /** 'date' (default) or 'datetime' */\n dateType?: 'date' | 'datetime'\n name?: string\n title?: string\n}\n\n/**\n * Reusable `headline` field — a string type used for article-like content.\n */\nexport function headlineField(opts: SimpleFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'headline',\n title: opts.title ?? 'Headline',\n type: 'string',\n description: opts.description ?? 'The headline of the content.',\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n\n/**\n * Reusable `datePublished` field — a date or datetime type.\n */\nexport function datePublishedField(opts: DatePublishedFieldOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'datePublished',\n title: opts.title ?? 'Date Published',\n type: opts.dateType ?? 'date',\n description: opts.description ?? 'The date the content was published.',\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n\n// ─── Embedded Thing inner fields (for use inside about / mainEntity) ──────────\n\n/**\n * Lightweight Thing fields used when embedding a Thing reference inside another\n * schema (e.g. CreativeWork.about, CreativeWork.mainEntity). Excludes recursive\n * polymorphic image/owner to keep the UI manageable.\n */\nconst thingInnerFields: SchemaFieldDef[] = [\n {name: 'name', title: 'Name', type: 'string'},\n {name: 'description', title: 'Description', type: 'text', rows: 2},\n {name: 'url', title: 'URL', type: 'url', urlValidation: {schemes: ['http', 'https']}},\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'URL of another page about this same entity.',\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'identifier',\n title: 'Identifier',\n type: 'string',\n description: 'e.g. ISBN, GTIN, Wikidata QID',\n },\n]\n\n// ─── Common Thing fields ─────────────────────────────────────────────────────\n\n/**\n * Base fields from https://schema.org/Thing — the most generic type of item.\n *\n * Includes: additionalType, alternateName, description,\n * disambiguatingDescription, image, name, url, sameAs.\n *\n * Use `withThingCommons(fields)` to append these to any schema.\n */\nexport const thingCommonFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Name',\n type: 'string',\n description: 'The name of the item.',\n },\n {\n name: 'alternateName',\n title: 'Alternate Name',\n type: 'string',\n description: 'An alias for the item.',\n },\n polymorphicAdditionalType(),\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A description of the item.',\n },\n {\n name: 'disambiguatingDescription',\n title: 'Disambiguating Description',\n type: 'text',\n rows: 2,\n description: 'Used to disambiguate from other items with the same name.',\n },\n polymorphicImage({description: 'An image of the item — choose URL or full ImageObject.'}),\n {\n name: 'url',\n title: 'URL',\n type: 'url',\n description: 'URL of the item.',\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'URL to another page about this item (Wikipedia, Wikidata, social profile).',\n urlValidation: {schemes: ['http', 'https']},\n },\n polymorphicIdentifier(),\n polymorphicOwner(),\n]\n\n/**\n * Merge `thingCommonFields` into a schema's existing field list.\n * Existing fields with the same `name` win (schema-specific titles/validation\n * are preserved). Common fields not yet present are appended.\n */\nexport function withThingCommons(fields: SchemaFieldDef[]): SchemaFieldDef[] {\n const existing = new Set(fields.map((f) => f.name))\n return [...fields, ...thingCommonFields.filter((f) => !existing.has(f.name))]\n}\n\n// ─── Common CreativeWork fields ──────────────────────────────────────────────\n\n/**\n * Common fields from https://schema.org/CreativeWork — the base type for all\n * creative works (Article, Recipe, VideoObject, Book, etc.).\n *\n * All fields are optional so individual schemas can override or omit them.\n * Thing commons (name, alternateName, additionalType, description,\n * disambiguatingDescription, identifier, image, url, sameAs, owner) are\n * appended automatically via `withThingCommons`.\n */\nexport const creativeWorkCommonFields: SchemaFieldDef[] = withThingCommons([\n // ── Internal field (not Schema.org) ────────────────────────────────────────\n {\n name: 'alternateType',\n title: 'Alternate @type',\n type: 'string',\n description: 'Override the emitted Schema.org @type, e.g. \"NewsArticle\" instead of \"Article\".',\n },\n\n // ── Schema.org CreativeWork fields (alphabetical) ──────────────────────────\n\n {\n name: 'about',\n title: 'About',\n type: 'object',\n description: 'The subject matter of the content.',\n jsonLdType: 'Thing',\n fields: thingInnerFields,\n },\n {\n name: 'accountablePerson',\n title: 'Accountable Person',\n type: 'object',\n description: 'Person primarily accountable for this content.',\n jsonLdType: 'Person',\n fields: personInnerFields,\n },\n {\n name: 'aggregateRating',\n title: 'Aggregate Rating',\n type: 'object',\n description: 'The overall rating based on a collection of reviews/ratings.',\n jsonLdType: 'AggregateRating',\n fields: [\n {name: 'ratingValue', title: 'Rating Value', type: 'string', description: 'e.g. \"4.5\"'},\n {\n name: 'ratingCount',\n title: 'Rating Count',\n type: 'number',\n description: 'Number of ratings.',\n },\n {\n name: 'reviewCount',\n title: 'Review Count',\n type: 'number',\n description: 'Number of written reviews.',\n },\n {\n name: 'bestRating',\n title: 'Best Rating',\n type: 'string',\n description: 'Highest value allowed, e.g. \"5\".',\n },\n {\n name: 'worstRating',\n title: 'Worst Rating',\n type: 'string',\n description: 'Lowest value allowed, e.g. \"1\".',\n },\n {name: 'ratingExplanation', title: 'Rating Explanation', type: 'text', rows: 2},\n ],\n },\n {\n name: 'alternativeHeadline',\n title: 'Alternative Headline',\n type: 'string',\n description: 'A secondary title or sub-headline for the work.',\n },\n polymorphicArchivedAt(),\n polymorphicAuthor(),\n {\n name: 'award',\n title: 'Awards',\n type: 'array',\n of: [{type: 'string'}],\n description: 'Awards won by or for this item.',\n },\n {\n name: 'backstory',\n title: 'Backstory',\n type: 'text',\n rows: 3,\n description: 'A backstory of the article (sources, context, etc.).',\n },\n {\n name: 'character',\n title: 'Character',\n type: 'object',\n description: 'Fictional person connected with this creative work.',\n jsonLdType: 'Person',\n fields: personInnerFields,\n },\n polymorphicCitation(),\n polymorphicContentRating(),\n {\n name: 'contentReferenceTime',\n title: 'Content Reference Time',\n type: 'datetime',\n description: 'The specific time described by this work (for time-sensitive content).',\n },\n polymorphicContributor(),\n polymorphicCopyrightHolder(),\n {\n name: 'copyrightNotice',\n title: 'Copyright Notice',\n type: 'string',\n description: 'Text of any copyright notice associated with the work.',\n },\n {\n name: 'copyrightYear',\n title: 'Copyright Year',\n type: 'copyrightYear',\n description:\n 'Year of copyright. Toggle \"Use current year\" to emit the current year automatically.',\n },\n polymorphicCreator(),\n {\n name: 'creditText',\n title: 'Credit Text',\n type: 'string',\n description: 'Text giving credit to the creator (e.g. for image attribution).',\n },\n {\n name: 'dateCreated',\n title: 'Date Created',\n type: 'datetime',\n description: 'The date on which the work was created.',\n },\n {\n name: 'dateModified',\n title: 'Date Modified',\n type: 'datetime',\n description: 'The date on which the work was most recently modified.',\n },\n {\n name: 'datePublished',\n title: 'Date Published',\n type: 'datetime',\n description: 'The date on which the work was first published.',\n },\n {\n name: 'discussionUrl',\n title: 'Discussion URL',\n type: 'url',\n description: 'A link to the page that contains the review or comments about this item.',\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'editor',\n title: 'Editor',\n type: 'object',\n description: 'Specifies the Person who edited the work.',\n jsonLdType: 'Person',\n fields: personInnerFields,\n },\n polymorphicFunder(),\n polymorphicGenre(),\n {\n name: 'headline',\n title: 'Headline',\n type: 'string',\n description: 'Headline of the article.',\n },\n {\n name: 'isAccessibleForFree',\n title: 'Is Accessible For Free',\n type: 'boolean',\n description: 'Whether the work is accessible without paying.',\n },\n polymorphicIsBasedOn(),\n {\n name: 'isFamilyFriendly',\n title: 'Is Family Friendly',\n type: 'boolean',\n description: 'Whether the content is suitable for family / children.',\n },\n polymorphicIsPartOf(),\n polymorphicKeywords(),\n {\n name: 'learningResourceType',\n title: 'Learning Resource Type',\n type: 'string',\n description: 'The predominant type of learning resource (e.g. \"Video\", \"Exercise\", \"Exam\").',\n },\n polymorphicLicense(),\n polymorphicLocationCreated(),\n {\n name: 'mainEntity',\n title: 'Main Entity',\n type: 'object',\n description: 'Indicates the primary entity described in this work.',\n jsonLdType: 'Thing',\n fields: thingInnerFields,\n },\n polymorphicMaintainer(),\n polymorphicMaterial(),\n {\n name: 'thumbnailUrl',\n title: 'Thumbnail URL',\n type: 'url',\n description: 'URL of a thumbnail image.',\n urlValidation: {schemes: ['http', 'https']},\n },\n])\n\n/**\n * Merge `creativeWorkCommonFields` into a schema's existing field list.\n * Existing fields with the same `name` win (schema-specific titles/validation\n * are preserved). All common CW fields not already present are appended.\n */\nexport function withCreativeWorkCommons(fields: SchemaFieldDef[]): SchemaFieldDef[] {\n const existing = new Set(fields.map((f) => f.name))\n return [...fields, ...creativeWorkCommonFields.filter((f) => !existing.has(f.name))]\n}\n\n// ─── Runtime resolvers for component-side JSON-LD builders ───────────────────\n\n/**\n * Resolve a polymorphic image value into a JSON-LD-emittable shape.\n * Accepts:\n * - `{variant: 'url', url}` → emits the URL string\n * - `{variant: 'imageObject', imageObject: {...}}` → emits `{@type: 'ImageObject', ...}`\n */\nexport function resolvePolymorphicImage(input: unknown): string | Record<string, unknown> | null {\n if (input === null || typeof input !== 'object') return null\n const obj = input as Record<string, unknown>\n const variant = obj.variant as string | undefined\n\n if (variant === 'imageObject' && obj.imageObject && typeof obj.imageObject === 'object') {\n const inner = obj.imageObject as Record<string, unknown>\n const out: Record<string, unknown> = {'@type': 'ImageObject'}\n for (const [k, v] of Object.entries(inner)) {\n if (v !== undefined && v !== null && v !== '') out[k] = v\n }\n return Object.keys(out).length > 1 ? out : null\n }\n\n if (variant === 'url') {\n if (typeof obj.url === 'string' && obj.url) return obj.url\n }\n return null\n}\n\n/**\n * Resolve a polymorphic Person/Organization value into a JSON-LD-emittable shape.\n * Accepts:\n * - `{variant: 'person', person: {...}}` → `{@type: 'Person', ...}`\n * - `{variant: 'organization', organization: {...}}` → `{@type: 'Organization', ...}`\n */\nexport function resolvePolymorphicPersonOrOrg(\n input: unknown,\n // _defaultType: 'Person' | 'Organization' = 'Person',\n): Record<string, unknown> | null {\n if (input === null || typeof input !== 'object') return null\n const obj = input as Record<string, unknown>\n const variant = obj.variant as string | undefined\n\n if (variant === 'person' && obj.person && typeof obj.person === 'object') {\n return {'@type': 'Person', ...stripEmpty(obj.person as Record<string, unknown>)}\n }\n if (variant === 'organization' && obj.organization && typeof obj.organization === 'object') {\n return {'@type': 'Organization', ...stripEmpty(obj.organization as Record<string, unknown>)}\n }\n return null\n}\n\n/** Resolve polymorphic text-or-url value into a string suitable for JSON-LD. */\nexport function resolvePolymorphicTextOrUrl(input: unknown): string | null {\n if (input === null || typeof input !== 'object') return null\n const obj = input as Record<string, unknown>\n const variant = obj.variant as string | undefined\n if (variant === 'text' && typeof obj.text === 'string' && obj.text) return obj.text\n if (variant === 'url' && typeof obj.url === 'string' && obj.url) return obj.url\n return null\n}\n\nfunction stripEmpty(obj: Record<string, unknown>, exclude: string[] = []): Record<string, unknown> {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(obj)) {\n if (exclude.includes(k)) continue\n if (v === undefined || v === null || v === '') continue\n if (Array.isArray(v) && v.length === 0) continue\n out[k] = v\n }\n return out\n}\n\n// issn\nexport function issnField(opts: SimpleFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'issn',\n title: opts.title ?? 'ISSN',\n type: 'string',\n description: opts.description ?? 'International Standard Serial Number (ISSN) for periodicals.',\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n\n// {\n// name: 'isPartOf',\n// title: 'Part Of (Website)',\n// type: 'object',\n// description: 'The website this page belongs to.',\n// jsonLdType: 'WebSite',\n// fields: [\n// {\n// name: 'url',\n// title: 'Website URL',\n// type: 'url',\n// description: 'URL of the parent website.',\n// },\n// ],\n// }\n\nexport function isPartOfField(opts: PolymorphicOptions = {}): SchemaFieldDef {\n return {\n name: opts.name ?? 'isPartOf',\n title: opts.title ?? 'Part Of (Website)',\n type: 'object',\n description: opts.description ?? 'The website this page belongs to.',\n jsonLdType: 'WebSite',\n fields: [\n {\n name: 'url',\n title: 'Website URL',\n type: 'url',\n description: 'URL of the parent website.',\n urlValidation: {schemes: ['http', 'https']},\n },\n ],\n }\n}\n\n// {\n// name: 'license',\n// title: 'License URL',\n// type: 'url',\n// description: 'URL of the license under which the content is published.',\n// }\n\nexport function licenseUrlField(opts: SimpleFieldOptions = {}): SchemaFieldDef {\n return {\n name: 'license',\n title: opts.title ?? 'License URL',\n type: 'url',\n description: opts.description ?? 'URL of the license under which the content is published.',\n urlValidation: {schemes: ['http', 'https']},\n ...(opts.required ? {required: opts.required} : {}),\n }\n}\n","/**\n * Dynamic Sanity schema generator for Schema.org types.\n *\n * Each Schema.org type declares its fields as a plain `SchemaFieldDef[]` array.\n * The generator converts them into Sanity `defineType` / `defineField` calls,\n * wiring up validation, initial values, options, and nested objects/arrays\n * automatically.\n *\n * It also provides a generic JSON-LD builder and React component factory so\n * adding a new Schema.org type requires only a field definition array.\n */\nimport React from 'react'\nimport {defineField, defineType, FieldDefinition, SchemaTypeDefinition} from 'sanity'\n\n// ─── Field Definition Types ───────────────────────────────────────────────────\n\nexport interface SchemaFieldOption {\n title: string\n value: string\n}\n\nexport interface SchemaFieldVariant {\n /** Discriminator value, e.g. \"url\", \"imageObject\", \"person\" */\n value: string\n /** Human-readable title for the radio option */\n title: string\n /** Schema.org @type emitted in JSON-LD when this variant is active */\n jsonLdType?: string\n /**\n * Fields shown when this variant is selected. If a single field with the\n * variant's `value` as its name is provided, the variant collapses to that\n * inline value in JSON-LD (e.g. plain url string).\n */\n // eslint-disable-next-line no-use-before-define\n fields: SchemaFieldDef[]\n}\n\nexport interface SchemaFieldDef {\n /** Sanity field name */\n name: string\n /** Human-readable title shown in Studio */\n title: string\n /** Sanity field type */\n type:\n | 'string'\n | 'url'\n | 'text'\n | 'array'\n | 'object'\n | 'image'\n | 'number'\n | 'date'\n | 'datetime'\n | 'boolean'\n | 'select'\n | 'copyrightYear'\n /** Help text shown below the field */\n description?: string\n /** If set, field is required — key is the validation config key, message is the default */\n required?: {key: string; message: string}\n /** Initial value for the field */\n initialValue?: unknown\n /** Dropdown / radio options for string fields */\n options?: SchemaFieldOption[]\n /** Number of rows for text fields */\n rows?: number\n /** Array member types, e.g. [{type: 'string'}] */\n of?: {type: string}[]\n /** Nested fields for object type */\n fields?: SchemaFieldDef[]\n /** Schema.org @type for this nested object or array items in JSON-LD output */\n jsonLdType?: string\n /** JSON-LD key if different from the Sanity field name */\n jsonLdKey?: string\n /** For url field: validation options */\n urlValidation?: {\n /** Allowed URL schemes. Defaults to ['http', 'https']. */\n schemes?: string[]\n /** If true, allow relative URLs. Defaults to false. */\n allowRelative?: boolean\n }\n /** For select type: discriminated union variants */\n variants?: SchemaFieldVariant[]\n /** For select type: default variant value (defaults to first variant) */\n defaultVariant?: string\n /** For string fields with options: Sanity layout ('radio' | 'dropdown') */\n layout?: 'radio' | 'dropdown'\n}\n\n// ─── Schema Type Definition ───────────────────────────────────────────────────\n\nexport interface SchemaTypeDef {\n /** Sanity type name, e.g. \"schemaOrgWebsite\" */\n name: string\n /** Title shown in Studio, e.g. \"Website\" */\n title: string\n /** Icon component shown in Studio and the array grid picker */\n icon?: React.ComponentType\n /** Field definitions */\n fields: SchemaFieldDef[]\n /** Optional custom subtitle generator for the Studio preview */\n customPrepareSubtitle?: (document: Record<string, unknown>) => string\n}\n\n// ─── Shared Config Shape ──────────────────────────────────────────────────────\n\nexport interface SchemaOrgConfig {\n /** Custom validation error messages keyed by field config key */\n validation?: Record<string, string>\n}\n\n// ─── Sanity Schema Generator ─────────────────────────────────────────────────\n\n/** Recursively converts a `SchemaFieldDef` into a Sanity `FieldDefinition`. */\nfunction buildField(\n fieldDef: SchemaFieldDef,\n validation?: Record<string, string>,\n): FieldDefinition {\n // ─── Polymorphic select (variant discriminator + per-variant nested objects) ─\n if (fieldDef.type === 'select' && fieldDef.variants?.length) {\n const variants = fieldDef.variants\n const defaultVariant = fieldDef.defaultVariant ?? variants[0].value\n const innerFields: SchemaFieldDef[] = [\n {\n name: 'variant',\n title: 'Type',\n type: 'string',\n description: 'Choose how to provide this value.',\n initialValue: defaultVariant,\n options: variants.map((v) => ({title: v.title, value: v.value})),\n layout: 'radio',\n },\n ...variants.map<SchemaFieldDef>((v) => {\n // Single-field variant collapses to that field directly (e.g. plain url)\n if (v.fields.length === 1 && v.fields[0].name === v.value) {\n return v.fields[0]\n }\n return {\n name: v.value,\n title: v.title,\n type: 'object',\n jsonLdType: v.jsonLdType,\n fields: v.fields,\n }\n }),\n ]\n const base: Record<string, unknown> = {\n name: fieldDef.name,\n title: fieldDef.title,\n type: 'object',\n fields: innerFields.map((child) => {\n const built = buildField(child, validation) as unknown as Record<string, unknown>\n if (child.name !== 'variant') {\n const dv = defaultVariant\n built.hidden = ({parent}: {parent?: {variant?: string}}) =>\n (parent?.variant ?? dv) !== child.name\n }\n return built as unknown as FieldDefinition\n }),\n }\n if (fieldDef.description) base.description = fieldDef.description\n return defineField(base as unknown as FieldDefinition)\n }\n\n // ─── copyrightYear: { useDynamicYear: bool, year: number } ───────────────────\n if (fieldDef.type === 'copyrightYear') {\n const base: Record<string, unknown> = {\n name: fieldDef.name,\n title: fieldDef.title,\n type: 'object',\n description:\n fieldDef.description ??\n 'Copyright year. Toggle \"Use current year\" to emit the current year dynamically.',\n fields: [\n defineField({\n name: 'useDynamicYear',\n title: 'Use current year (dynamic)',\n type: 'boolean',\n initialValue: false,\n }),\n defineField({\n name: 'year',\n title: 'Static year',\n type: 'number',\n hidden: ({parent}: {parent?: {useDynamicYear?: boolean}}) =>\n parent?.useDynamicYear === true,\n }),\n ],\n }\n return defineField(base as unknown as FieldDefinition)\n }\n\n const base: Record<string, unknown> = {\n name: fieldDef.name,\n title: fieldDef.title,\n type: fieldDef.type,\n }\n\n if (fieldDef.description) base.description = fieldDef.description\n if (fieldDef.initialValue !== undefined) base.initialValue = fieldDef.initialValue\n if (fieldDef.rows) base.rows = fieldDef.rows\n\n if (fieldDef.options) {\n base.options = {list: fieldDef.options, ...(fieldDef.layout && {layout: fieldDef.layout})}\n }\n\n // Array of objects: auto-generate `of: [{ type: 'object', fields }]`\n if (fieldDef.type === 'array' && fieldDef.fields?.length && !fieldDef.of) {\n base.of = [\n {\n type: 'object',\n fields: fieldDef.fields.map((child) => buildField(child, validation)),\n },\n ]\n } else if (fieldDef.of) {\n base.of = fieldDef.of\n }\n\n // Nested object fields — recurse (only for non-array types)\n if (fieldDef.type !== 'array' && fieldDef.fields?.length) {\n base.fields = fieldDef.fields.map((child) => buildField(child, validation))\n }\n\n // URL-specific validation\n if (fieldDef.type === 'url' && (fieldDef.required || fieldDef.urlValidation)) {\n const required = fieldDef.required\n const requiredMsg = required ? (validation?.[required.key] ?? required.message) : undefined\n const schemes = fieldDef.urlValidation?.schemes ?? ['http', 'https']\n const allowRelative = fieldDef.urlValidation?.allowRelative ?? false\n base.validation = (Rule: {\n required: () => {error: (m: string) => unknown}\n uri: (opts: {scheme: string[]; allowRelative: boolean}) => {error: (m: string) => unknown}\n }) => {\n const checks: unknown[] = []\n if (requiredMsg) checks.push(Rule.required().error(requiredMsg))\n checks.push(\n Rule.uri({scheme: schemes, allowRelative}).error(\n `Must be a valid URL (${schemes.join(', ')}).`,\n ),\n )\n return checks\n }\n } else if (fieldDef.required) {\n const msg = validation?.[fieldDef.required.key] ?? fieldDef.required.message\n base.validation = (Rule: {required: () => {error: (m: string) => unknown}}) =>\n Rule.required().error(msg)\n }\n\n return defineField(base as unknown as FieldDefinition)\n}\n\nexport function mapNameToSameValue(...items: {name: string}[]): Record<string, string> {\n return items.reduce(\n (acc, item) => {\n acc[item.name] = item.name\n return acc\n },\n {} as Record<string, string>,\n )\n}\n\n/**\n * Generates a complete Sanity `SchemaTypeDefinition` from a declarative\n * `SchemaTypeDef` and optional user config.\n */\nexport function generateSchemaType(\n def: SchemaTypeDef,\n config: SchemaOrgConfig = {},\n): SchemaTypeDefinition {\n return defineType({\n name: def.name,\n title: def.title,\n type: 'object',\n ...(def.icon && {icon: def.icon}),\n fields: def.fields.map((f) => buildField(f, config.validation)),\n preview: {\n select: mapNameToSameValue(...def.fields),\n prepare(selection) {\n return {\n title: def.title,\n subtitle: def?.customPrepareSubtitle\n ? def.customPrepareSubtitle(selection)\n : `@type: ${def.title}`,\n ...(def.icon && {media: def.icon}),\n }\n },\n },\n })\n}\n\n// ─── Generic JSON-LD Builder ──────────────────────────────────────────────────\n\n/** Sanity-internal keys that should never appear in JSON-LD output. */\nconst SANITY_INTERNAL_KEYS = new Set([\n '_key',\n '_type',\n '_ref',\n '_id',\n '_rev',\n '_createdAt',\n '_updatedAt',\n])\n\n/**\n * Handles polymorphic select field serialization to JSON-LD.\n */\nfunction handleSelectVariant(\n field: SchemaFieldDef,\n value: unknown,\n result: Record<string, unknown>,\n key: string,\n): boolean {\n if (field.type !== 'select' || !field.variants?.length) return false\n if (typeof value !== 'object' || Array.isArray(value)) return false\n\n const obj = value as Record<string, unknown>\n if (typeof obj.variant !== 'string') return false\n\n const active = field.variants.find((v) => v.value === obj.variant)\n if (!active) return false\n\n // Inline single-field variant (e.g. plain url): emit the value directly\n if (active.fields.length === 1 && active.fields[0].name === active.value) {\n const inlineVal = obj[active.value]\n if (inlineVal !== undefined && inlineVal !== null && inlineVal !== '') {\n result[key] = inlineVal\n }\n return true\n }\n\n const nestedSrc = obj[active.value]\n if (typeof nestedSrc !== 'object' || nestedSrc === null) return false\n\n const nested = buildNestedJsonLd(\n nestedSrc as Record<string, unknown>,\n active.fields,\n active.jsonLdType,\n )\n if (Object.keys(nested).length > (active.jsonLdType ? 1 : 0)) {\n result[key] = nested\n }\n return true\n}\n\n/**\n * Handles copyrightYear field serialization to JSON-LD.\n */\nfunction handleCopyrightYear(\n field: SchemaFieldDef,\n value: unknown,\n result: Record<string, unknown>,\n key: string,\n): boolean {\n if (field.type !== 'copyrightYear') return false\n\n if (typeof value === 'number') {\n result[key] = value\n return true\n }\n\n if (typeof value === 'object' && value !== null) {\n const obj = value as {useDynamicYear?: boolean; year?: number}\n if (obj.useDynamicYear) {\n result[key] = new Date().getFullYear()\n } else if (typeof obj.year === 'number') {\n result[key] = obj.year\n }\n return true\n }\n\n return false\n}\n\n/**\n * Recursively builds a JSON-LD fragment from Sanity data using field defs.\n * Handles nested objects with `@type` and arrays of typed objects.\n */\nfunction buildNestedJsonLd(\n data: Record<string, unknown>,\n fieldDefs: SchemaFieldDef[],\n jsonLdType?: string,\n): Record<string, unknown> {\n const result: Record<string, unknown> = jsonLdType ? {'@type': jsonLdType} : {}\n\n for (const field of fieldDefs) {\n const value = data[field.name]\n if (value === undefined || value === null || value === '') continue\n\n const key = field.jsonLdKey ?? field.name\n\n if (handleSelectVariant(field, value, result, key)) continue\n if (handleCopyrightYear(field, value, result, key)) continue\n\n if (\n field.type === 'object' &&\n field.fields &&\n typeof value === 'object' &&\n !Array.isArray(value)\n ) {\n const nested = buildNestedJsonLd(\n value as Record<string, unknown>,\n field.fields,\n field.jsonLdType,\n )\n const minKeys = field.jsonLdType ? 1 : 0\n if (Object.keys(nested).length > minKeys) {\n result[key] = nested\n }\n } else if (field.type === 'array' && Array.isArray(value)) {\n if (field.fields && field.jsonLdType) {\n // Array of typed objects\n const items = value\n .filter(\n (item): item is Record<string, unknown> => typeof item === 'object' && item !== null,\n )\n .map((item) => buildNestedJsonLd(item, field.fields!, field.jsonLdType))\n if (items.length) result[key] = items\n } else if (value.length) {\n // Simple array (strings, urls, etc.)\n result[key] = value.filter((v) => v !== undefined && v !== null && v !== '')\n }\n } else if (!SANITY_INTERNAL_KEYS.has(field.name)) {\n result[key] = value\n }\n }\n\n return result\n}\n\n/**\n * Builds a complete Schema.org JSON-LD object from Sanity data using field defs.\n * Returns `null` if any of the `requiredFields` are missing.\n *\n * @param schemaType The Schema.org `@type` (e.g. \"Person\", \"Article\")\n * @param data Raw data from a Sanity GROQ query\n * @param fieldDefs The field definitions for this schema type\n * @param requiredFields Field names that must be present (returns null if missing)\n */\nexport function buildGenericJsonLd(\n schemaType: string,\n data: Record<string, unknown> | null | undefined,\n fieldDefs: SchemaFieldDef[],\n requiredFields: string[] = [],\n): Record<string, unknown> | null {\n if (!data) return null\n for (const req of requiredFields) {\n if (!data[req]) return null\n }\n\n const body = buildNestedJsonLd(data, fieldDefs)\n return {\n '@context': 'https://schema.org',\n '@type': schemaType,\n ...body,\n }\n}\n","/**\n * Icons for Schema.org types — sourced from @sanity/icons.\n * Each icon is a React component compatible with Sanity's `icon` field.\n */\nimport {\n ApiIcon,\n BarChartIcon,\n BookIcon,\n CalendarIcon,\n ClipboardIcon,\n CodeBlockIcon,\n CommentIcon,\n ComponentIcon,\n DesktopIcon,\n DocumentTextIcon,\n EarthGlobeIcon,\n HeartFilledIcon,\n HelpCircleIcon,\n HomeIcon,\n ImageIcon,\n LinkIcon,\n ListIcon,\n MarkerIcon,\n MasterDetailIcon,\n PackageIcon,\n PlayIcon,\n RobotIcon,\n SparkleIcon,\n TagIcon,\n UserIcon,\n VideoIcon,\n} from '@sanity/icons'\n\nexport const SchemaOrgIcons = {\n // Website & WebPage\n website: EarthGlobeIcon,\n webPage: DocumentTextIcon,\n\n // Organization & Business\n organization: ComponentIcon,\n localBusiness: HomeIcon,\n\n brand: SparkleIcon,\n\n // People\n person: UserIcon,\n\n // Navigation\n breadcrumbList: LinkIcon,\n\n // Media\n imageObject: ImageIcon,\n videoObject: VideoIcon,\n\n // Content\n article: DocumentTextIcon,\n blogPosting: BookIcon,\n faqPage: HelpCircleIcon,\n howTo: ListIcon,\n recipe: BookIcon,\n socialMediaPosting: CommentIcon,\n\n // Commerce\n product: PackageIcon,\n offer: TagIcon,\n aggregateRating: BarChartIcon,\n review: HeartFilledIcon,\n service: RobotIcon,\n\n // Location\n postalAddress: MarkerIcon,\n place: MarkerIcon,\n event: CalendarIcon,\n\n // Contact\n contactPoint: ApiIcon,\n\n // Software\n softwareApplication: CodeBlockIcon,\n webApplication: DesktopIcon,\n\n // Education\n course: BookIcon,\n\n // Legal & geographic\n legalService: MasterDetailIcon,\n country: EarthGlobeIcon,\n\n // New types\n jobPosting: ClipboardIcon,\n restaurant: HomeIcon,\n movie: PlayIcon,\n book: BookIcon,\n newsArticle: DocumentTextIcon,\n itemList: ListIcon,\n profilePage: UserIcon,\n musicRecording: PlayIcon,\n musicAlbum: PackageIcon,\n} as const\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {polymorphicAuthor} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgAggregateRatingConfig, SchemaOrgAggregateRatingData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const aggregateRatingFields: SchemaFieldDef[] = [\n {\n name: 'ratingValue',\n title: 'Rating Value',\n type: 'string',\n description: 'The average rating value, e.g. \"4.5\".',\n required: {\n key: 'ratingValueRequired',\n message: 'Rating value is required for Schema.org.',\n },\n },\n {\n name: 'bestRating',\n title: 'Best Rating',\n type: 'string',\n description: 'The highest value allowed in this rating system, e.g. \"5\".',\n initialValue: '5',\n },\n {\n name: 'worstRating',\n title: 'Worst Rating',\n type: 'string',\n description: 'The lowest value allowed in this rating system, e.g. \"1\".',\n initialValue: '1',\n },\n {\n name: 'ratingCount',\n title: 'Rating Count',\n type: 'string',\n description: 'The total number of ratings.',\n },\n {\n name: 'reviewCount',\n title: 'Review Count',\n type: 'string',\n description: 'The total number of reviews, e.g. \"120\".',\n },\n {\n name: 'ratingExplanation',\n title: 'Rating Explanation',\n type: 'text',\n rows: 3,\n description: 'A short explanation (e.g. \"Based on 120 verified purchases\").',\n },\n polymorphicAuthor({\n description: 'The author of the rating — choose Person or Organization.',\n }),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgAggregateRating(\n config: SchemaOrgAggregateRatingConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgAggregateRating',\n title: 'AggregateRating',\n icon: SchemaOrgIcons.aggregateRating,\n fields: aggregateRatingFields,\n customPrepareSubtitle: (document: SchemaOrgAggregateRatingData) => {\n const ratingValue = document.ratingValue\n ? `Rating: ${document.ratingValue}${document.bestRating ? `/${document.bestRating}` : ''}`\n : 'No rating value'\n let count = ''\n if (document.reviewCount) {\n count = `Reviews: ${document.reviewCount}`\n } else if (document.ratingCount) {\n count = `Ratings: ${document.ratingCount}`\n }\n return count ? `${ratingValue} | ${count}` : ratingValue\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n datePublishedField,\n descriptionField,\n headlineField,\n polymorphicAuthor,\n polymorphicImage,\n polymorphicPublisher,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgArticleConfig, SchemaOrgArticleData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const articleFields: SchemaFieldDef[] = [\n headlineField({\n title: 'Headline',\n description: 'The headline of the article.',\n required: {key: 'headlineRequired', message: 'Headline is required for Schema.org Article.'},\n }),\n descriptionField({\n title: 'Description',\n description: 'A description of the article.',\n required: {\n key: 'descriptionRequired',\n message: 'Description is required for Schema.org Article.',\n },\n }),\n polymorphicImage(),\n polymorphicAuthor(),\n polymorphicPublisher(),\n datePublishedField(),\n {\n name: 'articleSection',\n title: 'Article Section',\n type: 'string',\n description:\n 'The section of the publication this article belongs to (e.g. \"Sports\", \"Business\").',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Article — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgArticle } from 'sanity-plugin-seofields/schema/article'\n *\n * schemaOrgArticle()\n * ```\n */\nexport default function schemaOrgArticle(\n config: SchemaOrgArticleConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgArticle',\n title: 'Article',\n icon: SchemaOrgIcons.article,\n fields: articleFields,\n customPrepareSubtitle: (document: SchemaOrgArticleData) => {\n const headline = document.headline || 'Untitled article'\n const section = document.articleSection ? ` · ${document.articleSection}` : ''\n return `${headline}${section}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n datePublishedField,\n descriptionField,\n headlineField,\n polymorphicAuthor,\n polymorphicImage,\n polymorphicPublisher,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgBlogPostingConfig, SchemaOrgBlogPostingData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const blogPostingFields: SchemaFieldDef[] = [\n headlineField({\n required: {\n key: 'headlineRequired',\n message: 'Headline is required for Schema.org BlogPosting.',\n },\n }),\n descriptionField({\n description: 'A description of the blog post.',\n required: {\n key: 'descriptionRequired',\n message: 'Description is required for Schema.org BlogPosting.',\n },\n }),\n polymorphicImage(),\n polymorphicAuthor(),\n polymorphicPublisher(),\n datePublishedField(),\n {\n name: 'mainEntityOfPage',\n title: 'Main Entity of Page',\n type: 'object',\n jsonLdType: 'WebPage',\n fields: [\n {\n name: 'id',\n title: 'Page URL',\n type: 'url',\n jsonLdKey: '@id',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org BlogPosting — Sanity object type.\n */\nexport default function schemaOrgBlogPosting(\n config: SchemaOrgBlogPostingConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgBlogPosting',\n title: 'BlogPosting',\n icon: SchemaOrgIcons.blogPosting,\n fields: blogPostingFields,\n customPrepareSubtitle: (document: SchemaOrgBlogPostingData) =>\n document.headline || 'Untitled blog post',\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {nameField, polymorphicAuthor, polymorphicImage, polymorphicPublisher} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgBookConfig, SchemaOrgBookData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const bookFields: SchemaFieldDef[] = [\n nameField({\n title: 'Book Title',\n description: 'The title of the book.',\n required: {key: 'nameRequired', message: 'Book title is required.'},\n }),\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 4,\n description: 'A description or summary of the book.',\n },\n polymorphicImage({description: 'Cover image of the book.'}),\n polymorphicAuthor({description: 'The author of the book.'}),\n polymorphicPublisher({description: 'The publisher of the book.'}),\n {\n name: 'isbn',\n title: 'ISBN',\n type: 'string',\n description: 'International Standard Book Number.',\n },\n {\n name: 'bookFormat',\n title: 'Book Format',\n type: 'string',\n description: 'The format of the book.',\n options: [\n {title: 'Hardcover', value: 'https://schema.org/Hardcover'},\n {title: 'Paperback', value: 'https://schema.org/Paperback'},\n {title: 'EBook', value: 'https://schema.org/EBook'},\n {title: 'AudiobookFormat', value: 'https://schema.org/AudiobookFormat'},\n {title: 'GraphicNovel', value: 'https://schema.org/GraphicNovel'},\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgBook(config: SchemaOrgBookConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgBook',\n title: 'Book',\n icon: SchemaOrgIcons.book,\n fields: bookFields,\n customPrepareSubtitle: (document: SchemaOrgBookData) => {\n const name = document.name || 'Untitled'\n const isbn = document.isbn ? ` · ISBN: ${document.isbn}` : ''\n return `${name}${isbn}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgBrandConfig, SchemaOrgBrandData} from './types'\nimport {nameField, polymorphicImage} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const brandFields: SchemaFieldDef[] = [\n nameField({\n title: 'Brand Name',\n description: 'The name of the brand.',\n required: {key: 'nameRequired', message: 'Brand name is required for Schema.org.'},\n }),\n {\n name: 'slogan',\n title: 'Slogan',\n type: 'string',\n description: 'A slogan or tagline for the brand.',\n },\n polymorphicImage({\n description: 'An image that represents the brand, such as a logo.',\n title: 'Logo',\n }),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgBrand(config: SchemaOrgBrandConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgBrand',\n title: 'Brand',\n icon: SchemaOrgIcons.brand,\n fields: brandFields,\n customPrepareSubtitle: (document: SchemaOrgBrandData) =>\n document.name ? `Brand · ${document.name}` : 'Untitled brand',\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgBreadcrumbListConfig, SchemaOrgBreadcrumbListData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const breadcrumbListFields: SchemaFieldDef[] = [\n {\n name: 'itemListElement',\n title: 'Breadcrumb Items',\n type: 'array',\n jsonLdType: 'ListItem',\n fields: [\n {\n name: 'position',\n title: 'Position',\n type: 'number',\n required: {key: 'positionRequired', message: 'Position is required.'},\n },\n {\n name: 'name',\n title: 'Label',\n type: 'string',\n required: {key: 'nameRequired', message: 'Label is required.'},\n },\n {\n name: 'item',\n title: 'URL',\n type: 'url',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org BreadcrumbList — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgBreadcrumbList } from 'sanity-plugin-seofields/schema/breadcrumbList'\n *\n * schemaOrgBreadcrumbList()\n * ```\n */\nexport default function schemaOrgBreadcrumbList(\n config: SchemaOrgBreadcrumbListConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgBreadcrumbList',\n title: 'BreadcrumbList',\n icon: SchemaOrgIcons.breadcrumbList,\n fields: breadcrumbListFields,\n customPrepareSubtitle: (document: SchemaOrgBreadcrumbListData) => {\n const items = document.itemListElement ?? []\n if (!items.length) return 'No breadcrumb items'\n return `${items.length} item${items.length === 1 ? '' : 's'}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgContactPointConfig, SchemaOrgContactPointData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const contactPointFields: SchemaFieldDef[] = [\n {\n name: 'contactType',\n title: 'Contact Type',\n type: 'string',\n description: 'The type of contact, e.g. \"customer support\", \"sales\".',\n required: {key: 'contactTypeRequired', message: 'Contact type is required for Schema.org.'},\n initialValue: 'customer support',\n options: [\n {title: 'Customer Support', value: 'customer support'},\n {title: 'Sales', value: 'sales'},\n {title: 'Technical Support', value: 'technical support'},\n {title: 'Billing', value: 'billing'},\n {title: 'General Inquiry', value: 'general inquiry'},\n ],\n },\n {\n name: 'email',\n title: 'Email',\n type: 'string',\n description: 'Contact email address.',\n },\n {\n name: 'faxNumber',\n title: 'Fax Number',\n type: 'string',\n description: 'Contact fax number.',\n },\n {\n name: 'telephone',\n title: 'Telephone',\n type: 'string',\n description: 'Contact telephone number.',\n },\n {\n name: 'availableLanguage',\n title: 'Available Languages',\n type: 'array',\n of: [{type: 'string'}],\n description: 'Languages supported by this contact point, e.g. \"English\", \"Spanish\".',\n initialValue: ['English'],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgContactPoint(\n config: SchemaOrgContactPointConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgContactPoint',\n title: 'ContactPoint',\n icon: SchemaOrgIcons.contactPoint,\n fields: contactPointFields,\n customPrepareSubtitle: (document: SchemaOrgContactPointData) => {\n const type = document.contactType ?? 'contact'\n const handle = document.email ?? document.telephone\n return handle ? `${type} · ${handle}` : type\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgCountryConfig, SchemaOrgCountryData} from './types'\nimport {nameField, polymorphicIdentifier, polymorphicImage} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const countryFields: SchemaFieldDef[] = [\n nameField({\n title: 'Country Name',\n description: 'The common English name of the country, e.g. \"United States\".',\n required: {key: 'nameRequired', message: 'Country name is required for Schema.org.'},\n }),\n {\n name: 'alternateName',\n title: 'Alternate Name',\n type: 'string',\n description: 'Alternate name (e.g. native name or abbreviation).',\n },\n polymorphicIdentifier({\n title: 'Country Code',\n description: 'ISO 3166-1 alpha-2 code, e.g. \"US\", \"DE\", \"JP\".',\n }),\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A short description.',\n },\n {\n name: 'url',\n title: 'URL',\n type: 'url',\n description: 'Canonical URL (e.g. Wikipedia page or official government site).',\n },\n // {\n // name: 'image',\n // title: 'Flag Image URL',\n // type: 'url',\n // description: 'URL to the country flag image.',\n // },\n polymorphicImage({\n title: 'Flag Image',\n description: 'An image representing the country, such as a flag.',\n }),\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'URLs to authoritative pages (Wikidata, Wikipedia, GeoNames, etc.).',\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n description: 'Address — typically just the country code.',\n jsonLdType: 'PostalAddress',\n fields: [\n {\n name: 'addressCountry',\n title: 'Country Code',\n type: 'string',\n description: 'ISO country code, e.g. \"US\".',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgCountry(\n config: SchemaOrgCountryConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgCountry',\n title: 'Country',\n icon: SchemaOrgIcons.country,\n fields: countryFields,\n customPrepareSubtitle: (document: SchemaOrgCountryData) => {\n const name = document.name ?? 'Untitled country'\n return document.identifier ? `${name} · ${document.identifier}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField, polymorphicOwner} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgCourseConfig, SchemaOrgCourseData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const courseFields: SchemaFieldDef[] = [\n nameField({\n title: 'Course Name',\n description: 'The name of the course.',\n required: {key: 'nameRequired', message: 'Course name is required for Schema.org.'},\n }),\n {\n name: 'courseCode',\n title: 'Course Code',\n type: 'string',\n description: 'An alphanumeric code that uniquely identifies the course.',\n },\n descriptionField({\n description: 'A description of the course.',\n required: {\n key: 'descriptionRequired',\n message: 'Course description is required for Schema.org.',\n },\n }),\n polymorphicOwner({\n description: 'The person or organization that offers the course.',\n title: 'Owner',\n }),\n {\n name: 'provider',\n title: 'Provider',\n type: 'object',\n jsonLdType: 'Organization',\n description: 'The organization that offers the course.',\n fields: [\n {\n name: 'name',\n title: 'Organization Name',\n type: 'string',\n required: {key: 'providerNameRequired', message: 'Provider name is required.'},\n },\n {\n name: 'sameAs',\n title: 'Organization URL',\n type: 'url',\n description: 'URL of the organization.',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgCourse(config: SchemaOrgCourseConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgCourse',\n title: 'Course',\n icon: SchemaOrgIcons.course,\n fields: courseFields,\n customPrepareSubtitle: (document: SchemaOrgCourseData) => document.name || 'Untitled course',\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgEventConfig, SchemaOrgEventData} from './types'\nimport {nameField, polymorphicSponsor} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const eventFields: SchemaFieldDef[] = [\n nameField({\n title: 'Event Name',\n description: 'The name of the event.',\n required: {key: 'nameRequired', message: 'Event name is required for Schema.org.'},\n }),\n {\n name: 'startDate',\n title: 'Start Date',\n type: 'date',\n description: 'The start date of the event.',\n },\n polymorphicSponsor({\n description: 'The person or organization that sponsors the event.',\n title: 'Sponsor',\n }),\n {\n name: 'location',\n title: 'Location',\n type: 'object',\n description: 'The location where the event takes place.',\n jsonLdType: 'Place',\n fields: [\n {\n name: 'name',\n title: 'Venue Name',\n type: 'string',\n description: 'Name of the venue or location.',\n },\n {\n name: 'address',\n title: 'Address',\n type: 'string',\n description: 'Full address as a single string.',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgEvent(config: SchemaOrgEventConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgEvent',\n title: 'Event',\n icon: SchemaOrgIcons.event,\n fields: eventFields,\n customPrepareSubtitle: (document: SchemaOrgEventData) => {\n const name = document.name ?? 'Untitled event'\n const date = document.startDate ? ` · ${document.startDate}` : ''\n return `${name}${date}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgFAQPageConfig, SchemaOrgFAQPageData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const faqPageFields: SchemaFieldDef[] = [\n {\n name: 'mainEntity',\n title: 'FAQ Items',\n type: 'array',\n jsonLdType: 'Question',\n fields: [\n {\n name: 'name',\n title: 'Question',\n type: 'string',\n required: {key: 'questionRequired', message: 'Question text is required.'},\n },\n {\n name: 'acceptedAnswer',\n title: 'Accepted Answer',\n type: 'object',\n jsonLdType: 'Answer',\n fields: [\n {\n name: 'text',\n title: 'Answer Text',\n type: 'text',\n rows: 3,\n },\n ],\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org FAQPage — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgFAQPage } from 'sanity-plugin-seofields/schema/faqPage'\n *\n * schemaOrgFAQPage()\n * ```\n */\nexport default function schemaOrgFAQPage(\n config: SchemaOrgFAQPageConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgFAQPage',\n title: 'FAQPage',\n icon: SchemaOrgIcons.faqPage,\n fields: faqPageFields,\n customPrepareSubtitle: (document: SchemaOrgFAQPageData) => {\n const items = document.mainEntity ?? []\n if (!items.length) return 'No FAQ items'\n return `${items.length} question${items.length === 1 ? '' : 's'}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField, polymorphicImage} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgHowToConfig, SchemaOrgHowToData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const howToFields: SchemaFieldDef[] = [\n nameField({\n title: 'HowTo Name',\n description: 'The name of the how-to guide.',\n required: {key: 'nameRequired', message: 'Name is required for Schema.org HowTo.'},\n }),\n descriptionField({\n required: {\n key: 'descriptionRequired',\n message: 'Description is required for Schema.org HowTo.',\n },\n }),\n polymorphicImage({description: 'Image for this how-to guide.'}),\n {\n name: 'totalTime',\n title: 'Total Time',\n type: 'string',\n description: 'Total time to complete, in ISO 8601 duration format (e.g. \"PT30M\" for 30 min).',\n },\n {\n name: 'estimatedCost',\n title: 'Estimated Cost',\n type: 'object',\n description: 'The estimated cost to complete this how-to.',\n jsonLdType: 'MonetaryAmount',\n fields: [\n {\n name: 'currency',\n title: 'Currency',\n type: 'string',\n description: 'ISO 4217 currency code, e.g. \"USD\".',\n initialValue: 'USD',\n },\n {\n name: 'value',\n title: 'Value',\n type: 'string',\n description: 'The cost amount, e.g. \"25.00\".',\n },\n ],\n },\n {\n name: 'supply',\n title: 'Supplies',\n type: 'array',\n description: 'Supplies needed for this how-to.',\n jsonLdType: 'HowToSupply',\n fields: [\n {\n name: 'name',\n title: 'Supply Name',\n type: 'string',\n },\n ],\n },\n {\n name: 'tool',\n title: 'Tools',\n type: 'array',\n description: 'Tools needed for this how-to.',\n jsonLdType: 'HowToTool',\n fields: [\n {\n name: 'name',\n title: 'Tool Name',\n type: 'string',\n },\n ],\n },\n {\n name: 'step',\n title: 'Steps',\n type: 'array',\n jsonLdType: 'HowToStep',\n fields: [\n {\n name: 'name',\n title: 'Step Name',\n type: 'string',\n required: {key: 'stepNameRequired', message: 'Step name is required.'},\n },\n {\n name: 'text',\n title: 'Step Description',\n type: 'text',\n rows: 2,\n },\n {\n name: 'url',\n title: 'Step URL',\n type: 'url',\n description: 'URL for this specific step (if applicable).',\n },\n {\n name: 'image',\n title: 'Step Image URL',\n type: 'url',\n description: 'URL of an image for this step.',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org HowTo — Sanity object type.\n */\nexport default function schemaOrgHowTo(config: SchemaOrgHowToConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgHowTo',\n title: 'HowTo',\n icon: SchemaOrgIcons.howTo,\n fields: howToFields,\n customPrepareSubtitle: (document: SchemaOrgHowToData) => {\n const name = document.name || 'Untitled how-to'\n const steps = Array.isArray(document.step) ? ` · ${document.step.length} steps` : ''\n return `${name}${steps}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgImageObjectConfig, SchemaOrgImageObjectData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const imageObjectFields: SchemaFieldDef[] = [\n {\n name: 'url',\n title: 'Image URL',\n type: 'url',\n description: 'The URL of the image.',\n required: {key: 'urlRequired', message: 'Image URL is required for Schema.org ImageObject.'},\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'width',\n title: 'Width',\n type: 'number',\n description: 'Image width in pixels.',\n },\n {\n name: 'height',\n title: 'Height',\n type: 'number',\n description: 'Image height in pixels.',\n },\n {\n name: 'caption',\n title: 'Caption',\n type: 'string',\n description: 'A caption for the image.',\n },\n nameField({\n title: 'Image Name',\n description: 'A descriptive name for the image.',\n }),\n descriptionField({\n title: 'Image Description',\n description: 'A description of the image.',\n }),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgImageObject(\n config: SchemaOrgImageObjectConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgImageObject',\n title: 'ImageObject',\n icon: SchemaOrgIcons.imageObject,\n fields: imageObjectFields,\n customPrepareSubtitle: (document: SchemaOrgImageObjectData) => {\n const name = document.name || document.url || 'No URL'\n const dims =\n document.width && document.height ? ` · ${document.width}×${document.height}` : ''\n return `${name}${dims}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgItemListConfig, SchemaOrgItemListData} from './types'\nimport {descriptionField, nameField} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const itemListFields: SchemaFieldDef[] = [\n nameField({\n title: 'List Name',\n description: 'The name of the list.',\n required: {key: 'nameRequired', message: 'List name is required for Schema.org.'},\n }),\n descriptionField({\n title: 'List Description',\n description: 'A description of the list.',\n required: {key: 'descriptionRequired', message: 'List description is required for Schema.org.'},\n }),\n {\n name: 'itemListOrder',\n title: 'Item List Order',\n type: 'string',\n description: 'How items in this list are ordered.',\n options: [\n {title: 'Ascending', value: 'https://schema.org/ItemListOrderAscending'},\n {title: 'Descending', value: 'https://schema.org/ItemListOrderDescending'},\n {title: 'Unordered', value: 'https://schema.org/ItemListUnordered'},\n ],\n },\n {\n name: 'numberOfItems',\n title: 'Number of Items',\n type: 'number',\n description: 'Total number of items in the list.',\n },\n {\n name: 'itemListElement',\n title: 'List Items',\n type: 'array',\n jsonLdType: 'ListItem',\n description: 'Items in the list. Position is auto-set if not provided.',\n fields: [\n {name: 'position', title: 'Position', type: 'number', description: 'Order in the list.'},\n {name: 'name', title: 'Item Name', type: 'string'},\n {\n name: 'url',\n title: 'Item URL',\n type: 'url',\n description: 'Link to the item.',\n urlValidation: {schemes: ['http', 'https']},\n },\n {name: 'image', title: 'Image URL', type: 'url', description: 'Image for this item.'},\n {name: 'description', title: 'Description', type: 'text', rows: 2},\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgItemList(\n config: SchemaOrgItemListConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgItemList',\n title: 'ItemList',\n icon: SchemaOrgIcons.itemList,\n fields: itemListFields,\n customPrepareSubtitle: (document: SchemaOrgItemListData) => {\n const name = document.name ?? 'Untitled list'\n const count = document.itemListElement?.length ?? document.numberOfItems\n const countStr = count === null ? '' : ` · ${count} items`\n return `${name}${countStr}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, polymorphicPublisher} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgJobPostingConfig, SchemaOrgJobPostingData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const jobPostingFields: SchemaFieldDef[] = [\n {\n name: 'title',\n title: 'Job Title',\n type: 'string',\n description: 'The title of the job, e.g. \"Senior Software Engineer\".',\n required: {key: 'titleRequired', message: 'Job title is required.'},\n },\n descriptionField({\n title: 'Job Description',\n description: 'Full description of the job — responsibilities, qualifications, etc.',\n required: {key: 'descriptionRequired', message: 'Job description is required.'},\n }),\n {\n name: 'datePosted',\n title: 'Date Posted',\n type: 'date',\n description: 'The date the job was posted (ISO 8601).',\n required: {key: 'datePostedRequired', message: 'Date posted is required.'},\n },\n {\n name: 'validThrough',\n title: 'Valid Through',\n type: 'datetime',\n description: 'The date after which the posting is no longer valid.',\n },\n {\n name: 'employmentType',\n title: 'Employment Type',\n type: 'string',\n description: 'Type of employment.',\n options: [\n {title: 'Full-time', value: 'FULL_TIME'},\n {title: 'Part-time', value: 'PART_TIME'},\n {title: 'Contract', value: 'CONTRACTOR'},\n {title: 'Temporary', value: 'TEMPORARY'},\n {title: 'Intern', value: 'INTERN'},\n {title: 'Volunteer', value: 'VOLUNTEER'},\n {title: 'Per Diem', value: 'PER_DIEM'},\n {title: 'Other', value: 'OTHER'},\n ],\n },\n polymorphicPublisher({\n name: 'hiringOrganization',\n title: 'Hiring Organization',\n description: 'The organization offering the job.',\n }),\n {\n name: 'jobLocation',\n title: 'Job Location',\n type: 'object',\n jsonLdType: 'Place',\n description: 'The physical location of the job.',\n fields: [\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n jsonLdType: 'PostalAddress',\n fields: [\n {name: 'streetAddress', title: 'Street Address', type: 'string'},\n {name: 'addressLocality', title: 'City', type: 'string'},\n {name: 'addressRegion', title: 'State/Region', type: 'string'},\n {name: 'postalCode', title: 'Postal Code', type: 'string'},\n {name: 'addressCountry', title: 'Country', type: 'string'},\n ],\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgJobPosting(\n config: SchemaOrgJobPostingConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgJobPosting',\n title: 'JobPosting',\n icon: SchemaOrgIcons.jobPosting,\n fields: jobPostingFields,\n customPrepareSubtitle: (document: SchemaOrgJobPostingData) => {\n const title = document.title || 'Untitled'\n const type = document.employmentType ? ` · ${document.employmentType}` : ''\n return `${title}${type}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgLegalServiceConfig, SchemaOrgLegalServiceData} from './types'\nimport {descriptionField, nameField, polymorphicImage} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const legalServiceFields: SchemaFieldDef[] = [\n nameField({\n title: 'Firm Name',\n description: 'The official name of the legal service / firm.',\n required: {key: 'nameRequired', message: 'Firm name is required for Schema.org.'},\n }),\n descriptionField({\n title: 'Description',\n description: 'A brief description of the legal service or firm.',\n required: {key: 'descriptionRequired', message: 'Description is required for Schema.org.'},\n }),\n polymorphicImage({\n title: 'Image',\n description: 'An image representing the legal service, such as a logo or office photo.',\n }),\n {\n name: 'telephone',\n title: 'Telephone',\n type: 'string',\n description: 'Primary contact telephone.',\n },\n {\n name: 'url',\n title: 'Website URL',\n type: 'url',\n description: 'The firm website URL.',\n },\n polymorphicImage({\n title: 'Logo',\n description: 'An image that represents the firm, such as a logo.',\n }),\n {\n name: 'priceRange',\n title: 'Price Range',\n type: 'string',\n description: 'Price range, e.g. \"$$\" or \"$100-$500\".',\n },\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n description: 'Physical address of the firm.',\n jsonLdType: 'PostalAddress',\n fields: [\n {name: 'streetAddress', title: 'Street Address', type: 'string'},\n {name: 'addressLocality', title: 'Locality', type: 'string'},\n {name: 'addressRegion', title: 'Region / State', type: 'string'},\n {name: 'postalCode', title: 'Postal Code', type: 'string'},\n {\n name: 'addressCountry',\n title: 'Country',\n type: 'string',\n description: 'Country code, e.g. \"US\".',\n },\n ],\n },\n {\n name: 'geo',\n title: 'Geo Coordinates',\n type: 'object',\n description: 'Geographic coordinates.',\n jsonLdType: 'GeoCoordinates',\n fields: [\n {name: 'latitude', title: 'Latitude', type: 'string'},\n {name: 'longitude', title: 'Longitude', type: 'string'},\n ],\n },\n {\n name: 'hasMap',\n title: 'Map URL',\n type: 'url',\n description: 'URL to a map of the location.',\n },\n {\n name: 'knowsAbout',\n title: 'Areas of Expertise',\n type: 'array',\n of: [{type: 'string'}],\n description: 'Topics the firm specialises in (e.g. \"Family Law\", \"IP Litigation\").',\n },\n {\n name: 'knowsLanguage',\n title: 'Languages',\n type: 'array',\n of: [{type: 'string'}],\n description: 'Languages the firm operates in.',\n },\n {\n name: 'areaServed',\n title: 'Areas Served',\n type: 'array',\n of: [{type: 'string'}],\n description: 'Geographic areas where the firm offers services.',\n },\n {\n name: 'openingHoursSpecification',\n title: 'Opening Hours',\n type: 'array',\n description: 'Opening hours for each day.',\n jsonLdType: 'OpeningHoursSpecification',\n fields: [\n {\n name: 'dayOfWeek',\n title: 'Day of Week',\n type: 'string',\n options: [\n {title: 'Monday', value: 'Monday'},\n {title: 'Tuesday', value: 'Tuesday'},\n {title: 'Wednesday', value: 'Wednesday'},\n {title: 'Thursday', value: 'Thursday'},\n {title: 'Friday', value: 'Friday'},\n {title: 'Saturday', value: 'Saturday'},\n {title: 'Sunday', value: 'Sunday'},\n ],\n },\n {name: 'opens', title: 'Opens', type: 'string', description: 'e.g. \"09:00\".'},\n {name: 'closes', title: 'Closes', type: 'string', description: 'e.g. \"17:00\".'},\n ],\n },\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'URLs to social media profiles, directory listings, etc.',\n urlValidation: {schemes: ['http', 'https']},\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgLegalService(\n config: SchemaOrgLegalServiceConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgLegalService',\n title: 'LegalService',\n icon: SchemaOrgIcons.legalService,\n fields: legalServiceFields,\n customPrepareSubtitle: (document: SchemaOrgLegalServiceData) => {\n const name = document.name ?? 'Untitled firm'\n const city = document.address?.addressLocality\n return city ? `${name} · ${city}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgLocalBusinessConfig, SchemaOrgLocalBusinessData} from './types'\nimport {nameField, polymorphicImage} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const localBusinessFields: SchemaFieldDef[] = [\n nameField({\n title: 'Business Name',\n description: 'The official name of the business.',\n required: {key: 'nameRequired', message: 'Business name is required for Schema.org.'},\n }),\n polymorphicImage({\n description: 'An image of the business, such as a storefront or logo.',\n title: 'Business Image',\n }),\n {\n name: 'telephone',\n title: 'Telephone',\n type: 'string',\n description: 'The telephone number of the business.',\n },\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n description: 'The physical address of the business.',\n jsonLdType: 'PostalAddress',\n fields: [\n {\n name: 'streetAddress',\n title: 'Street Address',\n type: 'string',\n },\n {\n name: 'addressLocality',\n title: 'Locality',\n type: 'string',\n description: 'City or town.',\n },\n {\n name: 'addressCountry',\n title: 'Country',\n type: 'string',\n description: 'Country code, e.g. \"US\".',\n },\n ],\n },\n {\n name: 'url',\n title: 'Website URL',\n type: 'url',\n description: 'The website URL of the business.',\n },\n polymorphicImage({\n title: 'Logo',\n description: 'An image that represents the business, such as a logo.',\n }),\n {\n name: 'priceRange',\n title: 'Price Range',\n type: 'string',\n description: 'The price range of the business, e.g. \"$$\" or \"$10-$50\".',\n },\n {\n name: 'geo',\n title: 'Geo Coordinates',\n type: 'object',\n description: 'Geographic coordinates of the business.',\n jsonLdType: 'GeoCoordinates',\n fields: [\n {\n name: 'latitude',\n title: 'Latitude',\n type: 'string',\n description: 'e.g. \"40.7128\".',\n },\n {\n name: 'longitude',\n title: 'Longitude',\n type: 'string',\n description: 'e.g. \"-74.0060\".',\n },\n ],\n },\n {\n name: 'hasMap',\n title: 'Map URL',\n type: 'url',\n description: 'URL to a map of the business location (e.g. Google Maps link).',\n },\n {\n name: 'openingHoursSpecification',\n title: 'Opening Hours',\n type: 'array',\n description: 'Business opening hours for each day.',\n jsonLdType: 'OpeningHoursSpecification',\n fields: [\n {\n name: 'dayOfWeek',\n title: 'Day of Week',\n type: 'string',\n options: [\n {title: 'Monday', value: 'Monday'},\n {title: 'Tuesday', value: 'Tuesday'},\n {title: 'Wednesday', value: 'Wednesday'},\n {title: 'Thursday', value: 'Thursday'},\n {title: 'Friday', value: 'Friday'},\n {title: 'Saturday', value: 'Saturday'},\n {title: 'Sunday', value: 'Sunday'},\n ],\n },\n {\n name: 'opens',\n title: 'Opens',\n type: 'string',\n description: 'Opening time, e.g. \"09:00\".',\n },\n {\n name: 'closes',\n title: 'Closes',\n type: 'string',\n description: 'Closing time, e.g. \"17:00\".',\n },\n ],\n },\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'URLs of social media profiles (Facebook, Instagram, Yelp, etc.).',\n urlValidation: {schemes: ['http', 'https']},\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgLocalBusiness(\n config: SchemaOrgLocalBusinessConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgLocalBusiness',\n title: 'LocalBusiness',\n icon: SchemaOrgIcons.localBusiness,\n fields: localBusinessFields,\n customPrepareSubtitle: (document: SchemaOrgLocalBusinessData) => {\n const name = document.name ?? 'Untitled business'\n const city = document.address?.addressLocality\n return city ? `${name} · ${city}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField, polymorphicAuthor, polymorphicImage} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgMovieConfig, SchemaOrgMovieData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const movieFields: SchemaFieldDef[] = [\n nameField({\n title: 'Movie Title',\n description: 'The title of the movie.',\n required: {key: 'nameRequired', message: 'Movie title is required.'},\n }),\n descriptionField({\n title: 'Plot Summary',\n description: 'A plot summary or synopsis of the movie.',\n required: {\n key: 'descriptionRequired',\n message: 'Description is required for Schema.org Movie.',\n },\n }),\n polymorphicImage({description: 'Poster or still from the movie.'}),\n {\n name: 'dateCreated',\n title: 'Date Created',\n type: 'date',\n description: 'The date the movie was released or created.',\n },\n polymorphicAuthor({\n name: 'director',\n title: 'Director',\n description: 'The director of the movie.',\n }),\n {\n name: 'duration',\n title: 'Duration',\n type: 'string',\n description: 'ISO 8601 duration, e.g. \"PT2H30M\" for 2h 30m.',\n },\n {\n name: 'contentRating',\n title: 'Content Rating',\n type: 'string',\n description: 'e.g. \"PG-13\", \"R\", \"U/A\".',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgMovie(config: SchemaOrgMovieConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgMovie',\n title: 'Movie',\n icon: SchemaOrgIcons.movie,\n fields: movieFields,\n customPrepareSubtitle: (document: SchemaOrgMovieData) => {\n const name = document.name || 'Untitled'\n const year = document.dateCreated ? ` (${document.dateCreated.slice(0, 4)})` : ''\n return `${name}${year}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n datePublishedField,\n descriptionField,\n nameField,\n polymorphicAuthor,\n polymorphicImage,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgMusicAlbumConfig, SchemaOrgMusicAlbumData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const musicAlbumFields: SchemaFieldDef[] = [\n nameField({\n title: 'Album Name',\n description: 'The name of the album.',\n required: {key: 'nameRequired', message: 'Album name is required.'},\n }),\n descriptionField({\n title: 'Album Description',\n description: 'A description of the album.',\n required: {\n key: 'descriptionRequired',\n message: 'Album description is required.',\n },\n }),\n polymorphicImage({description: 'Album cover art.'}),\n polymorphicAuthor({\n name: 'byArtist',\n title: 'By Artist',\n description: 'The artist who created this album.',\n }),\n {\n name: 'numTracks',\n title: 'Number of Tracks',\n type: 'number',\n description: 'Total number of tracks.',\n },\n {\n name: 'albumProductionType',\n title: 'Album Production Type',\n type: 'string',\n description: 'How the album was produced.',\n options: [\n {title: 'Studio Album', value: 'https://schema.org/StudioAlbum'},\n {title: 'Live Album', value: 'https://schema.org/LiveAlbum'},\n {title: 'Compilation Album', value: 'https://schema.org/CompilationAlbum'},\n {title: 'DJ Mix Album', value: 'https://schema.org/DJMixAlbum'},\n {title: 'Demo Album', value: 'https://schema.org/DemoAlbum'},\n {title: 'Mixtape Album', value: 'https://schema.org/MixtapeAlbum'},\n {title: 'Remix Album', value: 'https://schema.org/RemixAlbum'},\n {title: 'Soundtrack Album', value: 'https://schema.org/SoundtrackAlbum'},\n {title: 'Spoken Word Album', value: 'https://schema.org/SpokenWordAlbum'},\n ],\n },\n datePublishedField({description: 'Release date of the album.'}),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgMusicAlbum(\n config: SchemaOrgMusicAlbumConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgMusicAlbum',\n title: 'MusicAlbum',\n icon: SchemaOrgIcons.musicAlbum,\n fields: musicAlbumFields,\n customPrepareSubtitle: (document: SchemaOrgMusicAlbumData) => {\n const name = document.name || 'Untitled'\n const tracks = document.numTracks ? ` · ${document.numTracks} tracks` : ''\n return `${name}${tracks}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n datePublishedField,\n descriptionField,\n nameField,\n polymorphicAuthor,\n polymorphicImage,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgMusicRecordingConfig, SchemaOrgMusicRecordingData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const musicRecordingFields: SchemaFieldDef[] = [\n nameField({\n title: 'Track Name',\n description: 'The name of the music recording.',\n required: {key: 'nameRequired', message: 'Track name is required.'},\n }),\n descriptionField({\n title: 'Track Description',\n description: 'A description of the music recording.',\n }),\n polymorphicImage({description: 'Cover art or image for the recording.'}),\n polymorphicAuthor({\n name: 'byArtist',\n title: 'By Artist',\n description: 'The artist who performed this track.',\n }),\n {\n name: 'duration',\n title: 'Duration',\n type: 'string',\n description: 'ISO 8601 duration, e.g. \"PT3M45S\" for 3m 45s.',\n },\n {\n name: 'inAlbum',\n title: 'In Album',\n type: 'string',\n description: 'The album this recording appears in.',\n },\n datePublishedField({description: 'Release date of this recording.'}),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgMusicRecording(\n config: SchemaOrgMusicRecordingConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgMusicRecording',\n title: 'MusicRecording',\n icon: SchemaOrgIcons.musicRecording,\n fields: musicRecordingFields,\n customPrepareSubtitle: (document: SchemaOrgMusicRecordingData) => {\n const name = document.name || 'Untitled'\n const album = document.inAlbum ? ` · ${document.inAlbum}` : ''\n return `${name}${album}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n datePublishedField,\n descriptionField,\n headlineField,\n polymorphicAuthor,\n polymorphicImage,\n polymorphicPublisher,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgNewsArticleConfig, SchemaOrgNewsArticleData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const newsArticleFields: SchemaFieldDef[] = [\n headlineField({\n required: {key: 'headlineRequired', message: 'Headline is required.'},\n description: 'The headline of the news article (max 110 characters recommended).',\n }),\n descriptionField({\n description: 'A short summary of the news article (max 200 characters recommended).',\n }),\n polymorphicImage({description: 'Lead image for the article.'}),\n polymorphicAuthor({description: 'The author of the article.'}),\n polymorphicPublisher({description: 'The publisher of the article.'}),\n datePublishedField({\n dateType: 'datetime',\n description: 'When the article was first published.',\n required: {key: 'datePublishedRequired', message: 'Publication date is required.'},\n }),\n {\n name: 'dateModified',\n title: 'Date Modified',\n type: 'datetime',\n description: 'When the article was last modified.',\n },\n {\n name: 'articleSection',\n title: 'Article Section',\n type: 'string',\n description: 'The section of the publication, e.g. \"Politics\", \"Sports\".',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgNewsArticle(\n config: SchemaOrgNewsArticleConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgNewsArticle',\n title: 'NewsArticle',\n icon: SchemaOrgIcons.newsArticle,\n fields: newsArticleFields,\n customPrepareSubtitle: (document: SchemaOrgNewsArticleData) => {\n const headline = document.headline || 'Untitled'\n const section = document.articleSection ? ` · ${document.articleSection}` : ''\n return `${headline}${section}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgOfferConfig, SchemaOrgOfferData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const offerFields: SchemaFieldDef[] = [\n {\n name: 'price',\n title: 'Price',\n type: 'string',\n description: 'The price of the offer, e.g. \"199.99\".',\n required: {key: 'priceRequired', message: 'Price is required for Schema.org.'},\n },\n {\n name: 'priceCurrency',\n title: 'Currency',\n type: 'string',\n description: 'The currency of the price, e.g. \"USD\".',\n initialValue: 'USD',\n options: [\n {title: 'USD', value: 'USD'},\n {title: 'EUR', value: 'EUR'},\n {title: 'GBP', value: 'GBP'},\n {title: 'INR', value: 'INR'},\n {title: 'JPY', value: 'JPY'},\n {title: 'CAD', value: 'CAD'},\n {title: 'AUD', value: 'AUD'},\n ],\n },\n {\n name: 'availability',\n title: 'Availability',\n type: 'url',\n description: 'Schema.org availability URL, e.g. \"https://schema.org/InStock\".',\n },\n {\n name: 'url',\n title: 'Offer URL',\n type: 'url',\n description: 'URL of the offer page.',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgOffer(config: SchemaOrgOfferConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgOffer',\n title: 'Offer',\n icon: SchemaOrgIcons.offer,\n fields: offerFields,\n customPrepareSubtitle: (document: SchemaOrgOfferData) => {\n if (!document.price) return 'No price set'\n return `${document.price} ${document.priceCurrency ?? ''}`.trim()\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgPersonConfig, SchemaOrgPersonData} from './types'\nimport {nameField} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const personFields: SchemaFieldDef[] = [\n nameField({\n title: 'Full Name',\n description: 'The full name of the person.',\n required: {key: 'nameRequired', message: 'Person name is required for Schema.org.'},\n }),\n {\n name: 'jobTitle',\n title: 'Job Title',\n type: 'string',\n description: 'The job title or role of the person.',\n },\n {\n name: 'url',\n title: 'Profile URL',\n type: 'url',\n description: \"URL of the person's profile or personal website.\",\n },\n {\n name: 'imageUrl',\n title: 'Image URL',\n type: 'url',\n description: 'URL to a photo/image of this person.',\n jsonLdKey: 'image',\n },\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description:\n 'URLs of social media profiles and other authoritative pages (LinkedIn, GitHub, etc.).',\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'worksFor',\n title: 'Works For',\n type: 'object',\n description: 'The organization this person works for.',\n jsonLdType: 'Organization',\n fields: [\n {\n name: 'name',\n title: 'Organization Name',\n type: 'string',\n description: 'Name of the organization.',\n },\n ],\n },\n {\n name: 'email',\n title: 'Email',\n type: 'string',\n description: 'Email address of the person.',\n },\n // fax Number\n {\n name: 'faxNumber',\n title: 'Fax Number',\n type: 'string',\n description: 'Fax number of the person.',\n },\n {\n name: 'telephone',\n title: 'Telephone',\n type: 'string',\n description: 'Phone number of the person.',\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A short bio or description of the person.',\n },\n {\n name: 'gender',\n title: 'Gender',\n type: 'string',\n description: 'Gender of the person.',\n },\n {\n name: 'birthDate',\n title: 'Birth Date',\n type: 'date',\n description: 'Date of birth.',\n },\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n description: 'The postal address of the person.',\n jsonLdType: 'PostalAddress',\n fields: [\n {\n name: 'streetAddress',\n title: 'Street Address',\n type: 'string',\n },\n {\n name: 'addressLocality',\n title: 'City',\n type: 'string',\n },\n {\n name: 'addressCountry',\n title: 'Country',\n type: 'string',\n description: 'Country code, e.g. \"US\".',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Person — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgPerson } from 'sanity-plugin-seofields/schema/person'\n *\n * // Default\n * schemaOrgPerson()\n *\n * // Custom validation messages\n * schemaOrgPerson({\n * validation: { nameRequired: 'Please enter the person\\'s name.' },\n * })\n * ```\n */\nexport default function schemaOrgPerson(config: SchemaOrgPersonConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgPerson',\n title: 'Person',\n icon: SchemaOrgIcons.person,\n fields: personFields,\n customPrepareSubtitle: (document: SchemaOrgPersonData) => {\n const name = document.name ?? 'Untitled person'\n return document.jobTitle ? `${name} · ${document.jobTitle}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgPlaceConfig, SchemaOrgPlaceData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const placeFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Place Name',\n type: 'string',\n description: 'The name of the place.',\n required: {key: 'nameRequired', message: 'Place name is required for Schema.org.'},\n },\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n description: 'The physical address of the place.',\n jsonLdType: 'PostalAddress',\n fields: [\n {\n name: 'addressLocality',\n title: 'Locality',\n type: 'string',\n description: 'City or town.',\n },\n {\n name: 'addressCountry',\n title: 'Country',\n type: 'string',\n description: 'Country code, e.g. \"US\".',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgPlace(config: SchemaOrgPlaceConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgPlace',\n title: 'Place',\n icon: SchemaOrgIcons.place,\n fields: placeFields,\n customPrepareSubtitle: (document: SchemaOrgPlaceData) => {\n const name = document.name ?? 'Untitled place'\n const city = document.address?.addressLocality\n return city ? `${name} · ${city}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgPostalAddressConfig, SchemaOrgPostalAddressData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const postalAddressFields: SchemaFieldDef[] = [\n {\n name: 'streetAddress',\n title: 'Street Address',\n type: 'string',\n description: 'The street address, e.g. \"123 Main St\".',\n },\n {\n name: 'addressLocality',\n title: 'City / Locality',\n type: 'string',\n description: 'The city or locality, e.g. \"New York\".',\n },\n {\n name: 'postalCode',\n title: 'Postal Code',\n type: 'string',\n description: 'The postal or ZIP code, e.g. \"10001\".',\n },\n {\n name: 'addressCountry',\n title: 'Country',\n type: 'string',\n description: 'The country code, e.g. \"US\".',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgPostalAddress(\n config: SchemaOrgPostalAddressConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgPostalAddress',\n title: 'PostalAddress',\n icon: SchemaOrgIcons.postalAddress,\n fields: postalAddressFields,\n customPrepareSubtitle: (document: SchemaOrgPostalAddressData) =>\n [document.streetAddress, document.addressLocality, document.addressCountry]\n .filter(Boolean)\n .join(', ') || 'No address set',\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField, polymorphicImage} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgProductConfig, SchemaOrgProductData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const productFields: SchemaFieldDef[] = [\n nameField({\n title: 'Product Name',\n description: 'The name of the product.',\n required: {key: 'nameRequired', message: 'Product name is required for Schema.org.'},\n }),\n polymorphicImage({\n name: 'image',\n title: 'Image',\n description: 'Product image — choose URL or full ImageObject.',\n }),\n descriptionField({\n title: 'Description',\n description: 'A description of the product.',\n }),\n {\n name: 'brand',\n title: 'Brand',\n type: 'object',\n description: 'The brand of the product.',\n jsonLdType: 'Brand',\n fields: [\n {\n name: 'name',\n title: 'Brand Name',\n type: 'string',\n description: 'Name of the brand.',\n },\n ],\n },\n {\n name: 'sku',\n title: 'SKU',\n type: 'string',\n description: 'Stock Keeping Unit — a unique identifier for the product.',\n },\n {\n name: 'gtin',\n title: 'GTIN',\n type: 'string',\n description: 'Global Trade Item Number (covers GTIN-8, GTIN-13, GTIN-14).',\n },\n {\n name: 'mpn',\n title: 'MPN',\n type: 'string',\n description: 'Manufacturer Part Number.',\n },\n {\n name: 'offers',\n title: 'Offers',\n type: 'object',\n description: 'Pricing and availability information.',\n jsonLdType: 'Offer',\n fields: [\n {\n name: 'price',\n title: 'Price',\n type: 'string',\n description: 'The price of the product, e.g. \"29.99\".',\n },\n {\n name: 'priceCurrency',\n title: 'Currency',\n type: 'string',\n description: 'ISO 4217 currency code, e.g. \"USD\".',\n initialValue: 'USD',\n },\n {\n name: 'availability',\n title: 'Availability',\n type: 'string',\n description: 'Product availability status.',\n options: [\n {title: 'In Stock', value: 'https://schema.org/InStock'},\n {title: 'Out of Stock', value: 'https://schema.org/OutOfStock'},\n {title: 'Pre-Order', value: 'https://schema.org/PreOrder'},\n {title: 'Back Order', value: 'https://schema.org/BackOrder'},\n {title: 'Discontinued', value: 'https://schema.org/Discontinued'},\n ],\n },\n {\n name: 'url',\n title: 'Offer URL',\n type: 'url',\n description: 'URL of the product offer page.',\n },\n {\n name: 'itemCondition',\n title: 'Item Condition',\n type: 'string',\n description: 'The condition of the product.',\n options: [\n {title: 'New', value: 'https://schema.org/NewCondition'},\n {title: 'Used', value: 'https://schema.org/UsedCondition'},\n {title: 'Refurbished', value: 'https://schema.org/RefurbishedCondition'},\n ],\n },\n ],\n },\n {\n name: 'aggregateRating',\n title: 'Aggregate Rating',\n type: 'object',\n description: 'Overall rating based on a collection of reviews.',\n jsonLdType: 'AggregateRating',\n fields: [\n {\n name: 'ratingValue',\n title: 'Rating Value',\n type: 'string',\n description: 'The average rating, e.g. \"4.5\".',\n },\n {\n name: 'reviewCount',\n title: 'Review Count',\n type: 'string',\n description: 'Total number of reviews.',\n },\n {\n name: 'bestRating',\n title: 'Best Rating',\n type: 'string',\n description: 'The highest possible rating, e.g. \"5\".',\n initialValue: '5',\n },\n ],\n },\n {\n name: 'review',\n title: 'Reviews',\n type: 'array',\n description: 'Product reviews.',\n jsonLdType: 'Review',\n fields: [\n {\n name: 'author',\n title: 'Reviewer Name',\n type: 'string',\n jsonLdKey: 'author',\n },\n {\n name: 'reviewRating',\n title: 'Rating',\n type: 'string',\n description: 'Rating value, e.g. \"5\".',\n },\n {\n name: 'reviewBody',\n title: 'Review Text',\n type: 'text',\n rows: 2,\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Product — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgProduct } from 'sanity-plugin-seofields/schema/product'\n *\n * // Default\n * schemaOrgProduct()\n *\n * // Custom validation messages\n * schemaOrgProduct({\n * validation: { nameRequired: 'Please enter the product name.' },\n * })\n * ```\n */\nexport default function schemaOrgProduct(\n config: SchemaOrgProductConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgProduct',\n title: 'Product',\n icon: SchemaOrgIcons.product,\n fields: productFields,\n customPrepareSubtitle: (document: SchemaOrgProductData) => {\n const name = document.name || 'Untitled product'\n const brand = document.brand?.name ? ` · ${document.brand.name}` : ''\n const price =\n document.offers?.price && document.offers?.priceCurrency\n ? ` · ${document.offers.priceCurrency} ${document.offers.price}`\n : ''\n return `${name}${brand}${price}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {nameField} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgProfilePageConfig, SchemaOrgProfilePageData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const profilePageFields: SchemaFieldDef[] = [\n nameField({\n title: 'Page Title',\n description: 'Title of the profile page.',\n required: {key: 'nameRequired', message: 'Page title is required for Schema.org.'},\n }),\n {\n name: 'dateCreated',\n title: 'Date Created',\n type: 'datetime',\n description: 'When this profile page was created.',\n },\n {\n name: 'dateModified',\n title: 'Date Modified',\n type: 'datetime',\n description: 'When this profile page was last modified.',\n },\n {\n name: 'mainEntity',\n title: 'Profile (Person)',\n type: 'object',\n jsonLdType: 'Person',\n description: 'The person who is the subject of this profile page.',\n fields: [\n {\n name: 'name',\n title: 'Full Name',\n type: 'string',\n required: {key: 'personNameRequired', message: 'Person name is required.'},\n },\n {name: 'url', title: 'Website URL', type: 'url'},\n {name: 'image', title: 'Profile Image URL', type: 'url'},\n {name: 'description', title: 'Bio', type: 'text', rows: 3},\n {name: 'jobTitle', title: 'Job Title', type: 'string'},\n {\n name: 'sameAs',\n title: 'Same As URL',\n type: 'url',\n description: 'Social media URL (LinkedIn, Twitter, etc.).',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgProfilePage(\n config: SchemaOrgProfilePageConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgProfilePage',\n title: 'ProfilePage',\n icon: SchemaOrgIcons.profilePage,\n fields: profilePageFields,\n customPrepareSubtitle: (document: SchemaOrgProfilePageData) => {\n const personName = document.mainEntity?.name\n return personName ? `Profile: ${personName}` : 'No profile set'\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField, polymorphicAuthor, polymorphicImage} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgRecipeConfig, SchemaOrgRecipeData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const recipeFields: SchemaFieldDef[] = [\n nameField({\n title: 'Recipe Name',\n description: 'The name of the recipe.',\n required: {key: 'nameRequired', message: 'Recipe name is required for Schema.org.'},\n }),\n descriptionField({\n title: 'Description',\n description: 'A description of the recipe.',\n }),\n polymorphicImage({description: 'Image of the finished recipe.'}),\n polymorphicAuthor({description: 'The author of the recipe.'}),\n {\n name: 'totalTime',\n title: 'Total Time',\n type: 'string',\n description: 'e.g. PT45M for 45 minutes',\n },\n {\n name: 'recipeCategory',\n title: 'Recipe Category',\n type: 'string',\n description: 'e.g. Dessert',\n options: [\n {title: 'Appetizer', value: 'Appetizer'},\n {title: 'Main Course', value: 'Main Course'},\n {title: 'Dessert', value: 'Dessert'},\n {title: 'Side Dish', value: 'Side Dish'},\n {title: 'Snack', value: 'Snack'},\n {title: 'Breakfast', value: 'Breakfast'},\n {title: 'Beverage', value: 'Beverage'},\n ],\n },\n {\n name: 'recipeIngredient',\n title: 'Ingredients',\n type: 'array',\n description: 'List of ingredients.',\n of: [{type: 'string'}],\n },\n {\n name: 'recipeInstructions',\n title: 'Instructions',\n type: 'array',\n description: 'Step-by-step instructions.',\n jsonLdType: 'HowToStep',\n fields: [\n {\n name: 'name',\n title: 'Step Name',\n type: 'string',\n description: 'Name of this step.',\n },\n {\n name: 'text',\n title: 'Step Text',\n type: 'text',\n rows: 2,\n description: 'Detailed instruction for this step.',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Recipe — Sanity object type.\n */\nexport default function schemaOrgRecipe(config: SchemaOrgRecipeConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgRecipe',\n title: 'Recipe',\n icon: SchemaOrgIcons.recipe,\n fields: recipeFields,\n customPrepareSubtitle: (document: SchemaOrgRecipeData) => {\n const name = document.name || 'Untitled'\n const category = document.recipeCategory ? ` · ${document.recipeCategory}` : ''\n return `${name}${category}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {descriptionField, nameField, polymorphicImage} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgRestaurantConfig, SchemaOrgRestaurantData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const restaurantFields: SchemaFieldDef[] = [\n nameField({\n title: 'Restaurant Name',\n description: 'The name of the restaurant.',\n required: {key: 'nameRequired', message: 'Restaurant name is required.'},\n }),\n descriptionField({\n title: 'Description',\n description: 'A description of the restaurant.',\n }),\n polymorphicImage({description: 'Photo of the restaurant.'}),\n {\n name: 'servesCuisine',\n title: 'Serves Cuisine',\n type: 'string',\n description: 'The cuisine of the restaurant, e.g. \"Italian\", \"Japanese\".',\n },\n {\n name: 'priceRange',\n title: 'Price Range',\n type: 'string',\n description: 'e.g. \"$\", \"$$\", \"$$$\", \"$$$$\".',\n },\n {name: 'telephone', title: 'Telephone', type: 'string'},\n {\n name: 'address',\n title: 'Address',\n type: 'object',\n jsonLdType: 'PostalAddress',\n fields: [\n {name: 'streetAddress', title: 'Street Address', type: 'string'},\n {name: 'addressLocality', title: 'City', type: 'string'},\n {name: 'addressRegion', title: 'State/Region', type: 'string'},\n {name: 'postalCode', title: 'Postal Code', type: 'string'},\n {name: 'addressCountry', title: 'Country', type: 'string'},\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgRestaurant(\n config: SchemaOrgRestaurantConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgRestaurant',\n title: 'Restaurant',\n icon: SchemaOrgIcons.restaurant,\n fields: restaurantFields,\n customPrepareSubtitle: (document: SchemaOrgRestaurantData) => {\n const name = document.name || 'Untitled'\n const cuisine = document.servesCuisine ? ` · ${document.servesCuisine}` : ''\n const price = document.priceRange ? ` ${document.priceRange}` : ''\n return `${name}${cuisine}${price}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {polymorphicAuthor, polymorphicPublisher} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgReviewConfig, SchemaOrgReviewData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const reviewFields: SchemaFieldDef[] = [\n {\n name: 'reviewRating',\n title: 'Review Rating',\n type: 'object',\n jsonLdType: 'Rating',\n fields: [\n {\n name: 'ratingValue',\n title: 'Rating Value',\n type: 'string',\n required: {\n key: 'ratingValueRequired',\n message: 'Rating value is required for Schema.org Review.',\n },\n },\n ],\n },\n polymorphicAuthor({description: 'The author of the review (Person or Organization).'}),\n {\n name: 'reviewBody',\n title: 'Review Body',\n type: 'text',\n rows: 3,\n },\n {\n name: 'itemReviewed',\n title: 'Item Reviewed',\n type: 'object',\n description: 'The item that is being reviewed.',\n jsonLdType: 'Thing',\n fields: [\n {\n name: 'name',\n title: 'Item Name',\n type: 'string',\n description: 'Name of the reviewed item.',\n },\n {\n name: 'url',\n title: 'Item URL',\n type: 'url',\n description: 'URL of the reviewed item.',\n },\n ],\n },\n polymorphicPublisher({description: 'The publisher of the review.'}),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Review — Sanity object type.\n */\nexport default function schemaOrgReview(config: SchemaOrgReviewConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgReview',\n title: 'Review',\n icon: SchemaOrgIcons.review,\n fields: reviewFields,\n customPrepareSubtitle: (document: SchemaOrgReviewData) => {\n const item = document.itemReviewed?.name || 'Untitled item'\n const rating = document.reviewRating?.ratingValue\n ? ` · ${document.reviewRating.ratingValue}★`\n : ''\n return `${item}${rating}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgServiceConfig, SchemaOrgServiceData} from './types'\nimport {descriptionField, nameField} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const serviceFields: SchemaFieldDef[] = [\n nameField({\n title: 'Service Name',\n description: 'The name of the service.',\n required: {key: 'nameRequired', message: 'Service name is required for Schema.org.'},\n }),\n {\n name: 'serviceType',\n title: 'Service Type',\n type: 'string',\n description: 'The type of service.',\n },\n descriptionField({\n title: 'Description',\n description: 'A description of the service.',\n }),\n {\n name: 'url',\n title: 'Service URL',\n type: 'url',\n description: 'URL of the service page.',\n },\n {\n name: 'provider',\n title: 'Provider',\n type: 'object',\n description: 'The organization that provides the service.',\n jsonLdType: 'Organization',\n fields: [\n {\n name: 'name',\n title: 'Provider Name',\n type: 'string',\n description: 'Name of the provider organization.',\n },\n {\n name: 'url',\n title: 'Provider URL',\n type: 'url',\n description: 'URL of the provider organization.',\n },\n ],\n },\n {\n name: 'areaServed',\n title: 'Area Served',\n type: 'string',\n description: 'The geographic area where the service is available.',\n },\n {\n name: 'hasOfferCatalog',\n title: 'Offer Catalog',\n type: 'object',\n description: 'The catalog of offers for the service.',\n jsonLdType: 'OfferCatalog',\n fields: [\n {\n name: 'name',\n title: 'Catalog Name',\n type: 'string',\n description: 'Name of the offer catalog.',\n },\n {\n name: 'itemListElement',\n title: 'Offers',\n type: 'array',\n description: 'List of offers in the catalog.',\n jsonLdType: 'Offer',\n fields: [\n {\n name: 'name',\n title: 'Offer Name',\n type: 'string',\n description: 'Name of the offer.',\n },\n ],\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Service — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgService } from 'sanity-plugin-seofields/schema/service'\n *\n * // Default\n * schemaOrgService()\n *\n * // Custom validation messages\n * schemaOrgService({\n * validation: { nameRequired: 'Please enter the service name.' },\n * })\n * ```\n */\nexport default function schemaOrgService(\n config: SchemaOrgServiceConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgService',\n title: 'Service',\n icon: SchemaOrgIcons.service,\n fields: serviceFields,\n customPrepareSubtitle: (document: SchemaOrgServiceData) => {\n const name = document.name ?? 'Untitled service'\n return document.serviceType ? `${name} · ${document.serviceType}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n datePublishedField,\n headlineField,\n polymorphicAuthor,\n polymorphicImage,\n polymorphicPublisher,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgSocialMediaPostingConfig, SchemaOrgSocialMediaPostingData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const socialMediaPostingFields: SchemaFieldDef[] = [\n headlineField({\n required: {key: 'headlineRequired', message: 'Post headline is required for Schema.org.'},\n description: 'The headline of the post.',\n }),\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A short description of the post.',\n },\n polymorphicImage({description: 'Image for the post.'}),\n polymorphicAuthor({description: 'The author of the post.'}),\n polymorphicPublisher({description: 'The publisher of the post.'}),\n datePublishedField({\n dateType: 'datetime',\n description: 'The date the post was published.',\n }),\n {\n name: 'dateModified',\n title: 'Date Modified',\n type: 'datetime',\n description: 'The date the post was last modified.',\n },\n {\n name: 'sharedContent',\n title: 'Shared Content',\n type: 'array',\n description: 'Content shared in the post.',\n jsonLdType: 'WebPage',\n fields: [\n {\n name: 'url',\n title: 'Page URL',\n type: 'url',\n description: 'URL of the shared page.',\n },\n {\n name: 'headline',\n title: 'Page Headline',\n type: 'string',\n description: 'Headline of the shared page.',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgSocialMediaPosting(\n config: SchemaOrgSocialMediaPostingConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgSocialMediaPosting',\n title: 'SocialMediaPosting',\n icon: SchemaOrgIcons.socialMediaPosting,\n fields: socialMediaPostingFields,\n customPrepareSubtitle: (document: SchemaOrgSocialMediaPostingData) =>\n document.headline || 'Untitled post',\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgSoftwareApplicationConfig, SchemaOrgSoftwareApplicationData} from './types'\nimport {nameField} from '../_shared'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const softwareApplicationFields: SchemaFieldDef[] = [\n nameField({\n title: 'Application Name',\n description: 'The name of the software application.',\n required: {key: 'nameRequired', message: 'Application name is required for Schema.org.'},\n }),\n {\n name: 'applicationCategory',\n title: 'Application Category',\n type: 'string',\n description: 'The category of the application.',\n options: [\n {title: 'Developer Application', value: 'DeveloperApplication'},\n {title: 'Business Application', value: 'BusinessApplication'},\n {title: 'Game Application', value: 'GameApplication'},\n {title: 'Educational Application', value: 'EducationalApplication'},\n {title: 'Utilities Application', value: 'UtilitiesApplication'},\n {title: 'Social Networking Application', value: 'SocialNetworkingApplication'},\n ],\n },\n {\n name: 'operatingSystem',\n title: 'Operating System',\n type: 'string',\n description: 'The supported operating systems, e.g. \"Windows, macOS\".',\n },\n {\n name: 'url',\n title: 'Application URL',\n type: 'url',\n description: 'URL of the software application.',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org SoftwareApplication — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgSoftwareApplication } from 'sanity-plugin-seofields/schema/softwareApplication'\n *\n * // Default\n * schemaOrgSoftwareApplication()\n *\n * // Custom validation messages\n * schemaOrgSoftwareApplication({\n * validation: { nameRequired: 'Please enter the application name.' },\n * })\n * ```\n */\nexport default function schemaOrgSoftwareApplication(\n config: SchemaOrgSoftwareApplicationConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgSoftwareApplication',\n title: 'SoftwareApplication',\n icon: SchemaOrgIcons.softwareApplication,\n fields: softwareApplicationFields,\n customPrepareSubtitle: (document: SchemaOrgSoftwareApplicationData) => {\n const name = document.name ?? 'Untitled application'\n return document.applicationCategory ? `${name} · ${document.applicationCategory}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {nameField, polymorphicPublisher} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgVideoObjectConfig, SchemaOrgVideoObjectData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const videoObjectFields: SchemaFieldDef[] = [\n nameField({\n title: 'Video Name',\n description: 'The name of the video.',\n required: {key: 'nameRequired', message: 'Video name is required for Schema.org.'},\n }),\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A description of the video.',\n },\n {\n name: 'thumbnailUrl',\n title: 'Thumbnail URL',\n type: 'url',\n description: 'URL of the video thumbnail image.',\n required: {key: 'thumbnailUrlRequired', message: 'Thumbnail URL is required for Schema.org.'},\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'uploadDate',\n title: 'Upload Date',\n type: 'date',\n description: 'The date the video was uploaded.',\n required: {key: 'uploadDateRequired', message: 'Upload date is required for Schema.org.'},\n },\n {\n name: 'contentUrl',\n title: 'Content URL',\n type: 'url',\n description: 'URL to the actual video file.',\n urlValidation: {schemes: ['http', 'https']},\n },\n {\n name: 'duration',\n title: 'Duration',\n type: 'string',\n description: 'Video duration in ISO 8601 format, e.g. \"PT1H30M\" for 1 hour 30 minutes.',\n },\n polymorphicPublisher({description: 'The organization or person that published the video.'}),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgVideoObject(\n config: SchemaOrgVideoObjectConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgVideoObject',\n title: 'VideoObject',\n icon: SchemaOrgIcons.videoObject,\n fields: videoObjectFields,\n customPrepareSubtitle: (document: SchemaOrgVideoObjectData) => {\n const name = document.name || 'Untitled video'\n const duration = document.duration ? ` · ${document.duration}` : ''\n return `${name}${duration}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgWebApplicationConfig, SchemaOrgWebApplicationData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const webApplicationFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Application Name',\n type: 'string',\n description: 'The name of the web application.',\n required: {\n key: 'nameRequired',\n message: 'Application name is required for Schema.org.',\n },\n },\n {\n name: 'url',\n title: 'Application URL',\n type: 'url',\n description: 'URL of the web application.',\n required: {key: 'urlRequired', message: 'Application URL is required for Schema.org.'},\n },\n {\n name: 'applicationCategory',\n title: 'Application Category',\n type: 'string',\n description: 'The category of the application.',\n options: [\n {title: 'Developer Application', value: 'DeveloperApplication'},\n {title: 'Business Application', value: 'BusinessApplication'},\n {title: 'Game Application', value: 'GameApplication'},\n {title: 'Educational Application', value: 'EducationalApplication'},\n {title: 'Utilities Application', value: 'UtilitiesApplication'},\n {title: 'Social Networking Application', value: 'SocialNetworkingApplication'},\n ],\n },\n {\n name: 'operatingSystem',\n title: 'Operating System',\n type: 'string',\n description: 'The supported operating systems.',\n initialValue: 'All',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org WebApplication — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgWebApplication } from 'sanity-plugin-seofields/schema/webApplication'\n *\n * // Default\n * schemaOrgWebApplication()\n *\n * // Custom validation messages\n * schemaOrgWebApplication({\n * validation: { nameRequired: 'Please enter the application name.' },\n * })\n * ```\n */\nexport default function schemaOrgWebApplication(\n config: SchemaOrgWebApplicationConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgWebApplication',\n title: 'WebApplication',\n icon: SchemaOrgIcons.webApplication,\n fields: webApplicationFields,\n customPrepareSubtitle: (document: SchemaOrgWebApplicationData) => {\n const name = document.name ?? 'Untitled web app'\n return document.url ? `${name} · ${document.url}` : name\n },\n },\n config as SchemaOrgConfig,\n )\n}\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {\n descriptionField,\n inLanguageField,\n licenseUrlField,\n nameField,\n polymorphicPublisher,\n urlField,\n} from '../_shared'\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgWebPageConfig, SchemaOrgWebPageData} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const webPageFields: SchemaFieldDef[] = [\n nameField({\n title: 'Page Name',\n description: 'The title of the page.',\n required: {key: 'nameRequired', message: 'Page name is required for Schema.org.'},\n }),\n urlField({\n title: 'Page URL',\n description: 'The full URL of the page.',\n required: {key: 'urlRequired', message: 'Page URL is required for Schema.org.'},\n }),\n descriptionField({\n description: 'A short description of the page.',\n }),\n inLanguageField({description: 'The language of the page content, e.g. \"en\".'}),\n polymorphicPublisher({description: 'The organization or person that published this page.'}),\n licenseUrlField({\n description: 'The URL of the license for this page, if applicable.',\n }),\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org WebPage — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgWebPage } from 'sanity-plugin-seofields/schema/webPage'\n *\n * // Default\n * schemaOrgWebPage()\n *\n * // Custom validation messages\n * schemaOrgWebPage({\n * validation: { nameRequired: 'Please enter a page name.' },\n * })\n * ```\n */\nexport default function schemaOrgWebPage(\n config: SchemaOrgWebPageConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgWebPage',\n title: 'WebPage',\n icon: SchemaOrgIcons.webPage,\n fields: webPageFields,\n customPrepareSubtitle: (document: SchemaOrgWebPageData) => {\n const name = document.name || 'Untitled page'\n const type = document.pageType ? ` · ${document.pageType}` : ''\n return `${name}${type}`\n },\n },\n config as SchemaOrgConfig,\n )\n}\n"]}
|