import React from 'react' import * as z from "zod"; export const layoutId = 'image-slide' export const layoutName = 'Image Slide' export const layoutDescription = 'A slide with a title, subtitle, image, and content' const imageSlideSchema = z.object({ title: z.string().min(3).max(100).default('Image Showcase').describe('Title of the slide'), subtitle: z.string().min(3).max(150).default('Subtitle for the slide').optional().describe('Optional subtitle or description'), image: z.string().default('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=800&h=600&fit=crop').describe('Main image URL'), imageCaption: z.string().min(5).max(200).default('Image caption').optional().describe('Optional image caption or description'), content: z.string().min(10).max(600).optional().describe('Optional supporting content text'), backgroundImage: z.string().optional().describe('URL to background image for the slide') }) export const Schema = imageSlideSchema export type ImageSlideData = z.infer interface ImageSlideLayoutProps { data?: Partial accentColor?: 'blue' | 'green' | 'purple' | 'orange' | 'red' } const ImageSlideLayout: React.FC = ({ data, accentColor = 'blue' }) => { const slideData = imageSlideSchema.parse(data || {}) const accentColors = { blue: 'from-blue-600 to-blue-800', green: 'from-emerald-600 to-emerald-800', purple: 'from-violet-600 to-violet-800', orange: 'from-orange-600 to-orange-800', red: 'from-red-600 to-red-800' } const accentSolids = { blue: 'bg-blue-600', green: 'bg-emerald-600', purple: 'bg-violet-600', orange: 'bg-orange-600', red: 'bg-red-600' } return (
{/* Enhanced geometric background decoration */}
{/* Professional Header */}

{slideData.title}

{slideData.subtitle && (

{slideData.subtitle}

)}
{/* Enhanced Content Layout */}
{slideData.content?.split('\n').map((paragraph, index) => ( paragraph.trim() && (

{paragraph}

) ))}
{/* Background decoration */}
{slideData.imageCaption
{slideData.imageCaption && (

{slideData.imageCaption}

)}
{/* Enhanced decorative accent */}
{/* Professional corner accents */}
) } export default ImageSlideLayout