--- /** * Shared Feature Section component * Displays features in a responsive grid */ import Container from '../atoms/Container.astro'; import Card from '../atoms/Card.astro'; import SectionHeader from '../atoms/SectionHeader.astro'; interface Feature { icon: string; title: string; description: string; href?: string; } interface Props { title: string; subtitle?: string; features: Feature[]; columns?: 2 | 3 | 4; variant?: 'cards' | 'simple' | 'icons-left'; class?: string; id?: string; } const { title, subtitle, features, columns = 3, variant = 'cards', class: className = '', id, } = Astro.props; const gridCols = { 2: 'md:grid-cols-2', 3: 'md:grid-cols-2 lg:grid-cols-3', 4: 'md:grid-cols-2 lg:grid-cols-4', }; ---
{ features.map((feature) => variant === 'cards' ? (
{feature.icon}

{feature.title}

{feature.description}

) : variant === 'icons-left' ? (
{feature.icon}

{feature.title}

{feature.description}

) : (
{feature.icon}

{feature.title}

{feature.description}

) ) }