/** * FitSlide.tsx * Slide 2: Why I Fit This Role. * 3-card layout showing alignment areas. */ import React from 'react'; import type { SlideContent } from '../../schema/carouselSchema'; import type { Theme } from '../themes'; interface FitSlideProps { slide: SlideContent; theme: Theme; } export function FitSlide({ slide, theme }: FitSlideProps): React.ReactElement { const { bgColor, accentColor, textColor, subtextColor, fontFamily, cardBg, borderColor } = theme; const bullets = slide.bullets ?? []; return (
{/* Slide number */}
02
{/* Accent bar left */}
{/* Header section */}
Role Fit

{slide.title}

{slide.subtitle && (

{slide.subtitle}

)}
{/* 3-card grid */}
{bullets.slice(0, 3).map((bullet, index) => { // Split "Area: Evidence" format if present const colonIdx = bullet.indexOf(':'); const area = colonIdx > -1 ? bullet.substring(0, colonIdx).trim() : `Strength ${index + 1}`; const evidence = colonIdx > -1 ? bullet.substring(colonIdx + 1).trim() : bullet; return (
{/* Number badge */}
{index + 1}
{area}
{evidence}
); })} {/* Fallback if no bullets */} {bullets.length === 0 && (
Strong fit across key role requirements.
)}
); } export default FitSlide;