import React from 'react' import * as z from "zod"; export const layoutId = 'process-slide' export const layoutName = 'Process Slide' export const layoutDescription = 'A slide with a title, subtitle, and process steps' const processSlideSchema = z.object({ title: z.string().min(3).max(100).default('Our Process').describe('Title of the slide'), subtitle: z.string().min(3).max(150).optional().describe('Optional subtitle or description'), processSteps: z.array(z.object({ step: z.number().min(1).max(10).describe('Step number'), title: z.string().min(3).max(100).describe('Step title'), description: z.string().min(10).max(200).describe('Step description') })).min(2).max(6).default([ { step: 1, title: 'Discovery', description: 'Understanding requirements and gathering initial insights' }, { step: 2, title: 'Planning', description: 'Strategic planning and roadmap development' }, { step: 3, title: 'Implementation', description: 'Executing the plan with precision and quality' }, { step: 4, title: 'Delivery', description: 'Final delivery and ongoing support' } ]).describe('Process steps (2-6 items)'), backgroundImage: z.string().optional().describe('URL to background image for the slide') }) export const Schema = processSlideSchema export type ProcessSlideData = z.infer interface ProcessSlideLayoutProps { data?: Partial accentColor?: 'blue' | 'green' | 'purple' | 'orange' | 'red' } const ProcessSlideLayout: React.FC = ({ data, accentColor = 'blue' }) => { const slideData = processSlideSchema.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 stepColors = { blue: 'bg-blue-600 text-white border-blue-600', green: 'bg-emerald-600 text-white border-emerald-600', purple: 'bg-violet-600 text-white border-violet-600', orange: 'bg-orange-600 text-white border-orange-600', red: 'bg-red-600 text-white border-red-600' } 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 Process Steps */}
{slideData.processSteps.map((step, index) => ( {/* Process Step */}
{/* Step Number Circle */}
{step.step}
{/* Step Content Card */}
{/* Card accent */}
{/* Step Title */}

{step.title}

{/* Step Description */}

{step.description}

{/* Background decoration */}
{/* Arrow Between Steps */} {index < slideData.processSteps.length - 1 && (
)} ))}
{/* Enhanced decorative accent */}
{/* Professional corner accents */}
) } export default ProcessSlideLayout