diff --git a/components/Blocks/CardsGrid.tsx b/components/Blocks/CardsGrid.tsx index 9cc21873e..ca2349db7 100644 --- a/components/Blocks/CardsGrid.tsx +++ b/components/Blocks/CardsGrid.tsx @@ -64,6 +64,7 @@ export default function CardsGrid({ heading={card.heading} bodyText={card.bodyText} image={card.image} + theme={card.theme ?? "one"} primaryButton={card.primaryButton} secondaryButton={card.secondaryButton} imagePosition={index % 2 === 0 ? "right" : "left"} diff --git a/lib/graphql/Fragments/Blocks/InfoCard.graphql b/lib/graphql/Fragments/Blocks/InfoCard.graphql index dd348fe68..2b162d907 100644 --- a/lib/graphql/Fragments/Blocks/InfoCard.graphql +++ b/lib/graphql/Fragments/Blocks/InfoCard.graphql @@ -16,6 +16,7 @@ fragment InfoCardBlock on InfoCard { body_text image title + theme primary_button { is_contentstack_link diff --git a/server/routers/contentstack/schemas/blocks/cards/infoCard.ts b/server/routers/contentstack/schemas/blocks/cards/infoCard.ts index 14c916806..a6337e032 100644 --- a/server/routers/contentstack/schemas/blocks/cards/infoCard.ts +++ b/server/routers/contentstack/schemas/blocks/cards/infoCard.ts @@ -5,6 +5,7 @@ import { systemSchema } from "../../system" import { buttonSchema } from "../utils/buttonLinkSchema" import { linkConnectionRefsSchema } from "../utils/linkConnection" +import { INFO_CARD_THEMES } from "@/types/components/blocks/infoCard" import { CardsEnum } from "@/types/enums/cards" export const infoCardBlockSchema = z.object({ @@ -13,6 +14,7 @@ export const infoCardBlockSchema = z.object({ heading: z.string().optional().default(""), body_text: z.string().optional().default(""), image: tempImageVaultAssetSchema, + theme: z.enum(INFO_CARD_THEMES).nullable(), title: z.string().optional(), primary_button: buttonSchema.optional().nullable(), secondary_button: buttonSchema.optional().nullable(), @@ -26,6 +28,7 @@ export function transformInfoCardBlock(card: typeof infoCardBlockSchema._type) { heading: card.heading, bodyText: card.body_text, image: card.image, + theme: card.theme, title: card.title, primaryButton: card.primary_button?.href ? card.primary_button : undefined, secondaryButton: card.secondary_button?.href diff --git a/types/components/blocks/infoCard.ts b/types/components/blocks/infoCard.ts index a4dc42c7b..53d267d87 100644 --- a/types/components/blocks/infoCard.ts +++ b/types/components/blocks/infoCard.ts @@ -9,6 +9,14 @@ type CardTheme = Exclude< "image" > +export const INFO_CARD_THEMES = [ + "one", + "two", + "three", + "primaryInverted", + "primaryStrong", +] as const satisfies readonly CardTheme[] + export interface InfoCardProps { scriptedTopTitle?: string heading: string