sanity-plugin-seofields 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +1 -1
  2. package/dist/SeoHealthDashboard-3VBITMWT.cjs +10 -0
  3. package/dist/SeoHealthDashboard-3VBITMWT.cjs.map +1 -0
  4. package/dist/SeoHealthDashboard-BNJBRQVN.js +4 -0
  5. package/dist/SeoHealthDashboard-BNJBRQVN.js.map +1 -0
  6. package/dist/SeoHealthTool-4P6JST5S.cjs +14 -0
  7. package/dist/SeoHealthTool-4P6JST5S.cjs.map +1 -0
  8. package/dist/SeoHealthTool-MQBE5YGN.js +12 -0
  9. package/dist/SeoHealthTool-MQBE5YGN.js.map +1 -0
  10. package/dist/SeoPreview-G3LPA7GV.js +148 -0
  11. package/dist/SeoPreview-G3LPA7GV.js.map +1 -0
  12. package/dist/SeoPreview-Y3CFDVBR.cjs +154 -0
  13. package/dist/SeoPreview-Y3CFDVBR.cjs.map +1 -0
  14. package/dist/chunk-25JLWVEU.js +472 -0
  15. package/dist/chunk-25JLWVEU.js.map +1 -0
  16. package/dist/chunk-2NMEKWO5.js +35 -0
  17. package/dist/chunk-2NMEKWO5.js.map +1 -0
  18. package/dist/chunk-527WXITP.js +428 -0
  19. package/dist/chunk-527WXITP.js.map +1 -0
  20. package/dist/chunk-6CYMVS3O.js +1245 -0
  21. package/dist/chunk-6CYMVS3O.js.map +1 -0
  22. package/dist/chunk-D2GWRRK5.cjs +1293 -0
  23. package/dist/chunk-D2GWRRK5.cjs.map +1 -0
  24. package/dist/chunk-DYVCCQHT.cjs +1400 -0
  25. package/dist/chunk-DYVCCQHT.cjs.map +1 -0
  26. package/dist/chunk-IFDLKZET.cjs +485 -0
  27. package/dist/chunk-IFDLKZET.cjs.map +1 -0
  28. package/dist/chunk-L3L3FSPJ.cjs +478 -0
  29. package/dist/chunk-L3L3FSPJ.cjs.map +1 -0
  30. package/dist/chunk-S367Y35J.cjs +39 -0
  31. package/dist/chunk-S367Y35J.cjs.map +1 -0
  32. package/dist/chunk-WUIZN7VI.js +1394 -0
  33. package/dist/chunk-WUIZN7VI.js.map +1 -0
  34. package/dist/cli.js +67 -0
  35. package/dist/define-cli.cjs +12 -0
  36. package/dist/define-cli.cjs.map +1 -0
  37. package/dist/define-cli.d.cts +42 -0
  38. package/dist/define-cli.d.ts +42 -0
  39. package/dist/define-cli.js +10 -0
  40. package/dist/define-cli.js.map +1 -0
  41. package/dist/index.cjs +154 -2365
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.js +109 -2303
  44. package/dist/index.js.map +1 -1
  45. package/dist/next.cjs +235 -1591
  46. package/dist/next.cjs.map +1 -1
  47. package/dist/next.js +7 -1482
  48. package/dist/next.js.map +1 -1
  49. package/dist/schema/next.cjs +200 -1542
  50. package/dist/schema/next.cjs.map +1 -1
  51. package/dist/schema/next.js +4 -1475
  52. package/dist/schema/next.js.map +1 -1
  53. package/dist/schema.cjs +252 -1514
  54. package/dist/schema.cjs.map +1 -1
  55. package/dist/schema.js +58 -1391
  56. package/dist/schema.js.map +1 -1
  57. package/package.json +21 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../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/brand/schema.ts","../src/schema/breadcrumbList/schema.ts","../src/schema/contactPoint/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/localBusiness/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/review/schema.ts","../src/schema/softwareApplication/schema.ts","../src/schema/videoObject/schema.ts","../src/schema/webApplication/schema.ts","../src/schema/webPage/schema.ts"],"names":["defineField","defineType","__spreadProps","__spreadValues","EarthGlobeIcon","DocumentTextIcon","ComponentIcon","HomeIcon","SparkleIcon","UserIcon","LinkIcon","ImageIcon","VideoIcon","BookIcon","HelpCircleIcon","ListIcon","PackageIcon","TagIcon","BarChartIcon","HeartFilledIcon","MarkerIcon","CalendarIcon","ApiIcon","CodeBlockIcon","DesktopIcon"],"mappings":"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","file":"chunk-D2GWRRK5.cjs","sourcesContent":["/**\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 SchemaFieldDef {\n /** Sanity field name */\n name: string\n /** Human-readable title shown in Studio */\n title: string\n /** Sanity field type */\n type: 'string' | 'url' | 'text' | 'array' | 'object' | 'image' | 'number' | 'date' | 'datetime'\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}\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. \"Schema.org — 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}\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 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}\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 // Required validation with configurable message\n 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\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: {\n title: 'name',\n },\n prepare(selection) {\n return {\n title: selection.title || def.title,\n subtitle: `@type: ${def.title.split('—')[1]?.trim() || 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 * 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 (\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 CodeBlockIcon,\n ComponentIcon,\n DesktopIcon,\n DocumentTextIcon,\n EarthGlobeIcon,\n HeartFilledIcon,\n HelpCircleIcon,\n HomeIcon,\n ImageIcon,\n LinkIcon,\n ListIcon,\n MarkerIcon,\n PackageIcon,\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\n // Commerce\n product: PackageIcon,\n offer: TagIcon,\n aggregateRating: BarChartIcon,\n review: HeartFilledIcon,\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} as const\n","import type {SchemaTypeDefinition} from 'sanity'\n\nimport {generateSchemaType, SchemaFieldDef, SchemaOrgConfig} from '../generator'\nimport {SchemaOrgIcons} from '../icons'\nimport type {SchemaOrgAggregateRatingConfig} 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: 'reviewCount',\n title: 'Review Count',\n type: 'string',\n description: 'The total number of reviews, e.g. \"120\".',\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: 'Schema.org — AggregateRating',\n icon: SchemaOrgIcons.aggregateRating,\n fields: aggregateRatingFields,\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 {SchemaOrgArticleConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const articleFields: SchemaFieldDef[] = [\n {\n name: 'headline',\n title: 'Headline',\n type: 'string',\n required: {key: 'headlineRequired', message: 'Headline is required for Schema.org Article.'},\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n },\n {\n name: 'image',\n title: 'Image',\n type: 'url',\n description: 'URL of the article image.',\n },\n {\n name: 'author',\n title: 'Author',\n type: 'object',\n jsonLdType: 'Person',\n fields: [\n {\n name: 'name',\n title: 'Author Name',\n type: 'string',\n },\n ],\n },\n {\n name: 'publisher',\n title: 'Publisher',\n type: 'object',\n jsonLdType: 'Organization',\n fields: [\n {\n name: 'name',\n title: 'Publisher Name',\n type: 'string',\n },\n {\n name: 'logo',\n title: 'Publisher Logo',\n type: 'object',\n jsonLdType: 'ImageObject',\n fields: [\n {\n name: 'url',\n title: 'Logo URL',\n type: 'url',\n },\n ],\n },\n ],\n },\n {\n name: 'datePublished',\n title: 'Date Published',\n type: 'date',\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: 'Schema.org — Article',\n icon: SchemaOrgIcons.article,\n fields: articleFields,\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 {SchemaOrgBlogPostingConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const blogPostingFields: SchemaFieldDef[] = [\n {\n name: 'headline',\n title: 'Headline',\n type: 'string',\n required: {\n key: 'headlineRequired',\n message: 'Headline is required for Schema.org BlogPosting.',\n },\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n },\n {\n name: 'author',\n title: 'Author',\n type: 'object',\n jsonLdType: 'Person',\n fields: [\n {\n name: 'name',\n title: 'Author Name',\n type: 'string',\n },\n ],\n },\n {\n name: 'datePublished',\n title: 'Date Published',\n type: 'date',\n },\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 *\n * @example\n * ```ts\n * import { schemaOrgBlogPosting } from 'sanity-plugin-seofields/schema/blogPosting'\n *\n * schemaOrgBlogPosting()\n * ```\n */\nexport default function schemaOrgBlogPosting(\n config: SchemaOrgBlogPostingConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgBlogPosting',\n title: 'Schema.org — BlogPosting',\n icon: SchemaOrgIcons.blogPosting,\n fields: blogPostingFields,\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} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const brandFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Brand Name',\n type: 'string',\n description: 'The name of the brand.',\n required: {key: 'nameRequired', message: 'Brand name is required for Schema.org.'},\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgBrand(config: SchemaOrgBrandConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgBrand',\n title: 'Schema.org — Brand',\n icon: SchemaOrgIcons.brand,\n fields: brandFields,\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} 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: 'Schema.org — BreadcrumbList',\n icon: SchemaOrgIcons.breadcrumbList,\n fields: breadcrumbListFields,\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} 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: '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: 'Schema.org — ContactPoint',\n icon: SchemaOrgIcons.contactPoint,\n fields: contactPointFields,\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 {SchemaOrgCourseConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const courseFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Course Name',\n type: 'string',\n description: 'The name of the course.',\n required: {key: 'nameRequired', message: 'Course name is required for Schema.org.'},\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A short description of the course.',\n },\n {\n name: 'provider',\n title: 'Provider',\n type: 'object',\n description: 'The organization that provides this course.',\n jsonLdType: 'Organization',\n fields: [\n {\n name: 'name',\n title: 'Provider Name',\n type: 'string',\n description: 'Name of the providing organization.',\n },\n {\n name: 'sameAs',\n title: 'Provider URL',\n type: 'url',\n description: 'URL of the providing organization.',\n },\n ],\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Course — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgCourse } from 'sanity-plugin-seofields/schema/course'\n *\n * // Default\n * schemaOrgCourse()\n *\n * // Custom validation messages\n * schemaOrgCourse({\n * validation: { nameRequired: 'Please enter the course name.' },\n * })\n * ```\n */\nexport default function schemaOrgCourse(config: SchemaOrgCourseConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgCourse',\n title: 'Schema.org — Course',\n icon: SchemaOrgIcons.course,\n fields: courseFields,\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} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const eventFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Event Name',\n type: 'string',\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 {\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: 'Schema.org — Event',\n icon: SchemaOrgIcons.event,\n fields: eventFields,\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} 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: 'Schema.org — FAQPage',\n icon: SchemaOrgIcons.faqPage,\n fields: faqPageFields,\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 {SchemaOrgHowToConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const howToFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Name',\n type: 'string',\n required: {key: 'nameRequired', message: 'Name is required for Schema.org HowTo.'},\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\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 },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org HowTo — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgHowTo } from 'sanity-plugin-seofields/schema/howTo'\n *\n * schemaOrgHowTo()\n * ```\n */\nexport default function schemaOrgHowTo(config: SchemaOrgHowToConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgHowTo',\n title: 'Schema.org — HowTo',\n icon: SchemaOrgIcons.howTo,\n fields: howToFields,\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 {SchemaOrgImageObjectConfig} 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.'},\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: 'Caption or alt text for 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: 'Schema.org — ImageObject',\n icon: SchemaOrgIcons.imageObject,\n fields: imageObjectFields,\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} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const localBusinessFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Business Name',\n type: 'string',\n description: 'The official name of the business.',\n required: {key: 'nameRequired', message: 'Business name is required for Schema.org.'},\n },\n {\n name: 'image',\n title: 'Image URL',\n type: 'url',\n description: 'URL to the 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\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgLocalBusiness(\n config: SchemaOrgLocalBusinessConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgLocalBusiness',\n title: 'Schema.org — LocalBusiness',\n icon: SchemaOrgIcons.localBusiness,\n fields: localBusinessFields,\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} 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: 'Schema.org — Offer',\n icon: SchemaOrgIcons.offer,\n fields: offerFields,\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} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const personFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Full Name',\n type: 'string',\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: 'Social / External Profiles',\n type: 'array',\n of: [{type: 'url'}],\n description:\n 'URLs of social media profiles and other authoritative pages (LinkedIn, GitHub, etc.).',\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\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: 'Schema.org — Person',\n icon: SchemaOrgIcons.person,\n fields: personFields,\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} 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: 'Schema.org — Place',\n icon: SchemaOrgIcons.place,\n fields: placeFields,\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} 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: 'Schema.org — PostalAddress',\n icon: SchemaOrgIcons.postalAddress,\n fields: postalAddressFields,\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 {SchemaOrgProductConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const productFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Product Name',\n type: 'string',\n description: 'The name of the product.',\n required: {key: 'nameRequired', message: 'Product name is required for Schema.org.'},\n },\n {\n name: 'imageUrl',\n title: 'Image URL',\n type: 'url',\n description: 'URL to the product image.',\n jsonLdKey: 'image',\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A short 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\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: 'Schema.org — Product',\n icon: SchemaOrgIcons.product,\n fields: productFields,\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 {SchemaOrgReviewConfig} 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 {\n name: 'author',\n title: 'Author',\n type: 'object',\n jsonLdType: 'Person',\n fields: [\n {\n name: 'name',\n title: 'Author Name',\n type: 'string',\n required: {\n key: 'authorNameRequired',\n message: 'Author name is required for Schema.org Review.',\n },\n },\n ],\n },\n {\n name: 'reviewBody',\n title: 'Review Body',\n type: 'text',\n rows: 3,\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\n/**\n * Schema.org Review — Sanity object type.\n *\n * @example\n * ```ts\n * import { schemaOrgReview } from 'sanity-plugin-seofields/schema/review'\n *\n * schemaOrgReview()\n * ```\n */\nexport default function schemaOrgReview(config: SchemaOrgReviewConfig = {}): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgReview',\n title: 'Schema.org — Review',\n icon: SchemaOrgIcons.review,\n fields: reviewFields,\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} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const softwareApplicationFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Application Name',\n type: 'string',\n description: 'The name of the software application.',\n required: {\n key: 'nameRequired',\n message: 'Application name is required for Schema.org.',\n },\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: 'Schema.org — SoftwareApplication',\n icon: SchemaOrgIcons.softwareApplication,\n fields: softwareApplicationFields,\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 {SchemaOrgVideoObjectConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const videoObjectFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Video Name',\n type: 'string',\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 },\n {\n name: 'uploadDate',\n title: 'Upload Date',\n type: 'date',\n description: 'The date the video was uploaded.',\n },\n {\n name: 'contentUrl',\n title: 'Content URL',\n type: 'url',\n description: 'URL to the actual video file.',\n },\n]\n\n// ─── Schema Factory ───────────────────────────────────────────────────────────\n\nexport default function schemaOrgVideoObject(\n config: SchemaOrgVideoObjectConfig = {},\n): SchemaTypeDefinition {\n return generateSchemaType(\n {\n name: 'schemaOrgVideoObject',\n title: 'Schema.org — VideoObject',\n icon: SchemaOrgIcons.videoObject,\n fields: videoObjectFields,\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} 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: 'Schema.org — WebApplication',\n icon: SchemaOrgIcons.webApplication,\n fields: webApplicationFields,\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 {SchemaOrgWebPageConfig} from './types'\n\n// ─── Field Definitions ────────────────────────────────────────────────────────\n\nexport const webPageFields: SchemaFieldDef[] = [\n {\n name: 'name',\n title: 'Page Name',\n type: 'string',\n description: 'The title of the page.',\n required: {key: 'nameRequired', message: 'Page name is required for Schema.org.'},\n },\n {\n name: 'url',\n title: 'Page URL',\n type: 'url',\n description: 'The full URL of the page.',\n required: {key: 'urlRequired', message: 'Page URL is required for Schema.org.'},\n },\n {\n name: 'description',\n title: 'Description',\n type: 'text',\n rows: 3,\n description: 'A short description of the page.',\n },\n {\n name: 'inLanguage',\n title: 'Language',\n type: 'string',\n description: 'The language of the page content, e.g. \"en\".',\n initialValue: 'en',\n options: [\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', value: 'zh'},\n {title: 'Korean', value: 'ko'},\n {title: 'Hindi', value: 'hi'},\n {title: 'Arabic', value: 'ar'},\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]\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: 'Schema.org — WebPage',\n icon: SchemaOrgIcons.webPage,\n fields: webPageFields,\n },\n config as SchemaOrgConfig,\n )\n}\n"]}