import React from 'react' import * as z from "zod"; export const layoutId = 'two-column-slide' export const layoutName = 'Two Column Slide' export const layoutDescription = 'A slide with a title, subtitle, and two columns of content' const twoColumnSlideSchema = z.object({ title: z.string().min(3).max(100).default('Two Column Layout').describe('Title of the slide'), subtitle: z.string().min(3).max(150).optional().describe('Optional subtitle or description'), leftColumn: z.object({ title: z.string().min(3).max(100).default('Left Column').describe('Left column title'), content: z.string().min(10).max(800).default('Content for the left column goes here. This can include detailed information, explanations, or supporting details.').describe('Left column content') }).default({ title: 'Left Column', content: 'Content for the left column goes here. This can include detailed information, explanations, or supporting details.' }), rightColumn: z.object({ title: z.string().min(3).max(100).default('Right Column').describe('Right column title'), content: z.string().min(10).max(800).default('Content for the right column goes here. This can include additional information, comparisons, or contrasting details.').describe('Right column content') }).default({ title: 'Right Column', content: 'Content for the right column goes here. This can include additional information, comparisons, or contrasting details.' }), backgroundImage: z.string().optional().describe('URL to background image for the slide') }) export const Schema = twoColumnSlideSchema export type TwoColumnSlideData = z.infer interface TwoColumnSlideLayoutProps { data?: Partial accentColor?: 'blue' | 'green' | 'purple' | 'orange' | 'red' } const TwoColumnSlideLayout: React.FC = ({ data, accentColor = 'blue' }) => { const slideData = twoColumnSlideSchema.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}

)}
{/* Two Column Content with Enhanced Styling */}
{/* Left Column */}
{/* Column accent */}

{slideData.leftColumn.title}

{slideData.leftColumn.content.split('\n').map((paragraph, index) => ( paragraph.trim() && (

{paragraph}

) ))}
{/* Right Column */}
{/* Column accent */}

{slideData.rightColumn.title}

{slideData.rightColumn.content.split('\n').map((paragraph, index) => ( paragraph.trim() && (

{paragraph}

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