import * as z from "zod"; const FeatureCardSchema = z.object({ title: z.string().min(3).max(17).meta({ description: "Title shown on each card.", }), description: z.string().min(18).max(80).meta({ description: "Description shown on each card.", }), icon: z.object({ __icon_url__: z.string().meta({ description: "URL to icon", }), __icon_query__: z.string().meta({ description: "Query used to search the icon", }), }).default({ __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }).meta({ description: "Suiting icon used for each bullet in plan cards.", }), }); export const slideLayoutId = "cards-grid-slide"; export const slideLayoutName = "Cards Grid Slide"; export const slideLayoutDescription = "A list of cards in grid with title, icon and compact description in each."; export const Schema = z.object({ title: z.string().min(6).max(20).default("Feature Grid").meta({ description: "Slide title shown above the grid.", }), features: z .array(FeatureCardSchema) .min(1) .max(6) .default([ { title: "Modern Stack", description: "Built with React, TypeScript, and Tailwind CSS for maximum developer experience.", icon: { __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }, }, { title: "Component Library ", description: "Reusable UI components with consistent design patterns.", icon: { __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }, }, { title: "CLI Tools", description: "Command-line utilities for scaffolding and automation.", icon: { __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }, }, { title: "Analytics", description: "Built-in tracking and performance monitoring.", icon: { __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }, }, { title: "Version Control", description: "Git-based workflow with automated deployments.", icon: { __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }, }, { title: "Best Practices", description: "Following industry standards and modern development patterns.", icon: { __icon_url__: "https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/placeholder.svg", __icon_query__: "check icon", }, }, ]) .meta({ description: "Six feature cards displayed in a 3x2 grid.", }), pageLabel: z.string().min(3).max(8).optional().default("4 / 11").meta({ description: "Bottom pagination label.", }), }); export type SchemaType = z.infer; const CodeSlide04FeatureGrid = ({ data }: { data: Partial }) => { return ( <>

{data.title}

{data?.features?.map((feature) => (

{feature.title}

{feature.icon.__icon_query__}

{feature.description}

))}
{data.pageLabel}
); }; export default CodeSlide04FeatureGrid;