import * as z from "zod"; const FeatureCardSchema = z.object({ title: z.string().min(3).max(17).meta({ description: "Feature title shown on each card.", }), description: z.string().min(18).max(80).meta({ description: "Supporting feature description.", }), 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: "Icon used for each feature bullet in plan cards.", }), }); export const slideLayoutId = "code-feature-grid-slide"; export const slideLayoutName = "Code Feature Grid Slide"; export const slideLayoutDescription = "A six-card feature summary grid with icon badges and compact descriptions."; 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(3) .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).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;