UNPKG

@vyuh/sanity-schema-marketing

Version:

The Sanity schema package for the Marketing content blocks

170 lines (168 loc) 4.49 kB
import { FeatureDescriptor } from '@vyuh/sanity-schema-core'; import { RouteDescriptor } from '@vyuh/sanity-schema-system'; import { AccordionDescriptor, AccordionSchemaBuilder, defaultAccordionLayout, } from './content/accordion'; import { BannerDescriptor, BannerSchemaBuilder, defaultBannerLayout, } from './content/banner'; import { BentoDescriptor, BentoSchemaBuilder, defaultBentoLayout, } from './content/bento'; import { CTADescriptor, CTASchemaBuilder, defaultCTALayout, } from './content/cta'; import { defaultFaqLayout, FAQDescriptor, FAQSchemaBuilder, } from './content/faq'; import { defaultFeatureLayout, FeatureSectionDescriptor, FeatureSectionSchemaBuilder, } from './content/feature'; import { defaultFooterLayout, FooterDescriptor, FooterSchemaBuilder, } from './content/footer'; import { defaultHeaderLayout, HeaderDescriptor, HeaderSchemaBuilder, } from './content/header'; import { defaultHeroLayout, HeroDescriptor, HeroSchemaBuilder, } from './content/hero'; import { defaultLogoLayout, LogoDescriptor, LogoSchemaBuilder, } from './content/logo'; import { defaultNewsletterLayout, NewsletterDescriptor, NewsletterSchemaBuilder, } from './content/newsletter'; import { defaultPricingLayout, PricingDescriptor, PricingSchemaBuilder, } from './content/pricing'; import { defaultStatsLayout, StatsDescriptor, StatsSchemaBuilder, } from './content/stats'; import { defaultTeamLayout, TeamDescriptor, TeamSchemaBuilder, } from './content/team'; import { defaultTestimonialsLayout, TestimonialsDescriptor, TestimonialsSchemaBuilder, } from './content/testimonials'; import { fullPageRouteLayout } from './extensions'; export const marketing = new FeatureDescriptor({ name: 'marketing', title: 'Marketing', description: 'Schema for marketing components including banners, headers, heroes, logos, logo clouds, features, bento grids, stats, testimonials, pricing, FAQs, CTAs, newsletters, blog sections, team sections, and footers', contents: [ new HeroDescriptor({ layouts: [defaultHeroLayout], }), new AccordionDescriptor({ layouts: [defaultAccordionLayout], }), new FeatureSectionDescriptor({ layouts: [defaultFeatureLayout], }), new BannerDescriptor({ layouts: [defaultBannerLayout], }), new CTADescriptor({ layouts: [defaultCTALayout], }), new FAQDescriptor({ layouts: [defaultFaqLayout], }), new HeaderDescriptor({ layouts: [defaultHeaderLayout], }), new FooterDescriptor({ layouts: [defaultFooterLayout], }), new LogoDescriptor({ layouts: [defaultLogoLayout], }), new BentoDescriptor({ layouts: [defaultBentoLayout], }), new NewsletterDescriptor({ layouts: [defaultNewsletterLayout], }), new PricingDescriptor({ layouts: [defaultPricingLayout], }), new StatsDescriptor({ layouts: [defaultStatsLayout], }), new TeamDescriptor({ layouts: [defaultTeamLayout], }), new TestimonialsDescriptor({ layouts: [defaultTestimonialsLayout], }), new RouteDescriptor({ layouts: [fullPageRouteLayout], regionItems: [ { type: BannerDescriptor.schemaName }, { type: AccordionDescriptor.schemaName }, { type: HeaderDescriptor.schemaName }, { type: HeroDescriptor.schemaName }, { type: LogoDescriptor.schemaName }, { type: FeatureSectionDescriptor.schemaName }, { type: BentoDescriptor.schemaName }, { type: StatsDescriptor.schemaName }, { type: TestimonialsDescriptor.schemaName }, { type: PricingDescriptor.schemaName }, { type: FAQDescriptor.schemaName }, { type: CTADescriptor.schemaName }, { type: NewsletterDescriptor.schemaName }, { type: TeamDescriptor.schemaName }, { type: FooterDescriptor.schemaName }, ], }), ], contentSchemaBuilders: [ new BannerSchemaBuilder(), new AccordionSchemaBuilder(), new HeaderSchemaBuilder(), new HeroSchemaBuilder(), new LogoSchemaBuilder(), new FeatureSectionSchemaBuilder(), new BentoSchemaBuilder(), new StatsSchemaBuilder(), new TestimonialsSchemaBuilder(), new PricingSchemaBuilder(), new FAQSchemaBuilder(), new CTASchemaBuilder(), new NewsletterSchemaBuilder(), new TeamSchemaBuilder(), new FooterSchemaBuilder(), ], });