import { Badge } from '@thedaviddias/design-system/badge' import { Book, GraduationCap } from 'lucide-react' import Image from 'next/image' import Link from 'next/link' import { Card, CardContent } from '@/components/ui/card' import { getRoute } from '@/lib/routes' import type { Guide } from '@/types/types' interface GuideCardProps { guide: Guide index?: number } /** * Returns a CSS class based on the difficulty level * * @param difficulty - The difficulty level of the guide * @returns CSS class string for styling the difficulty badge */ function getDifficultyColor(difficulty: Guide['difficulty']) { switch (difficulty) { case 'beginner': return 'bg-green-500/10 text-green-500 dark:bg-green-500/20' case 'intermediate': return 'bg-blue-500/10 text-blue-500 dark:bg-blue-500/20' case 'advanced': return 'bg-purple-500/10 text-purple-500 dark:bg-purple-500/20' default: return 'bg-gray-500/10 text-gray-500 dark:bg-gray-500/20' } } /** * Card component for displaying a guide * * @param props - Component props * @param props.guide - The guide to display * @param props.index - Optional index for staggered animations * @returns React component */ export function GuideCard({ guide, index = 0 }: GuideCardProps) { return ( {guide.image && (
{guide.title}
)}
{guide.difficulty}

{guide.title}

{guide.description}

{guide.category === 'getting-started' && ( )} {guide.category === 'implementation' && ( )} {guide.category.replace('-', ' ')}
) }