import ExerciseCard from './ExerciseCard' import './exerciseRecommendations.css' const normalizeGroupLabel = (item) => { return item.group || item.category || item.level || item.progression_level || 'Recommended' } const groupRecommendations = (items) => { if (!Array.isArray(items)) return [] const groups = items.reduce((acc, item) => { const label = normalizeGroupLabel(item) if (!acc[label]) acc[label] = [] acc[label].push(item) return acc }, {}) return Object.entries(groups).map(([title, recommendations]) => ({ id: title, title, recommendations })) } function RecommendationPanel({ title = 'Recommended Exercises', subtitle, recommendations = [], groups, layout = 'grid', onSelect, emptyMessage = 'No recommendations available yet.', className = '' }) { const resolvedGroups = Array.isArray(groups) && groups.length > 0 ? groups : groupRecommendations(recommendations) const hasContent = resolvedGroups.some(group => group.recommendations?.length) return (

{title}

{subtitle &&

{subtitle}

}
{!hasContent && (
{emptyMessage}
)} {hasContent && (
{resolvedGroups.map(group => (

{group.title}

{group.description && {group.description}}
{(group.recommendations || group.items || []).map(item => ( ))}
))}
)}
) } export default RecommendationPanel