// Clean SVG icons for the Gravl app
// Replaces emojis with professional vector icons
export const Icons = {
// Navigation & UI
home: (
),
chart: (
),
user: (
),
logout: (
),
arrowLeft: (
),
arrowRight: (
),
chevronLeft: (
),
chevronRight: (
),
chevronDown: (
),
plus: (
),
swap: (
),
check: (
),
// Workout types
dumbbell: (
),
arm: (
),
leg: (
),
back: (
),
chest: (
),
shoulder: (
),
core: (
),
fullBody: (
),
// Activity & rest
walking: (
),
yoga: (
),
swimming: (
),
cycling: (
),
sleep: (
),
// Stats & metrics
fire: (
),
calendar: (
),
target: (
),
trophy: (
),
// Coach avatar (silhouette)
coach: (
),
// Actions
trash: (
),
edit: (
),
search: (
),
x: (
),
// Brand
gravl: (
),
refresh: (
),
}
// Icon component wrapper
export function Icon({ name, size = 24, className = '', style = {} }) {
const icon = Icons[name]
if (!icon) return null
return (
{icon}
)
}
// Helper to get workout icon name based on workout name
export function getWorkoutIconName(name) {
const lower = name.toLowerCase()
if (lower.includes('push') || lower.includes('bröst') || lower.includes('chest')) return 'chest'
if (lower.includes('pull') || lower.includes('rygg') || lower.includes('back')) return 'back'
if (lower.includes('ben') || lower.includes('leg') || lower.includes('lower')) return 'leg'
if (lower.includes('axlar') || lower.includes('shoulder')) return 'shoulder'
if (lower.includes('arm')) return 'arm'
if (lower.includes('core') || lower.includes('mage')) return 'core'
if (lower.includes('helkropp') || lower.includes('full')) return 'fullBody'
if (lower.includes('överkropp') || lower.includes('upper')) return 'chest'
if (lower.includes('underkropp')) return 'leg'
return 'dumbbell'
}
// Helper to get activity icon name
export function getActivityIconName(activity) {
const lower = activity.toLowerCase()
if (lower.includes('promenad') || lower.includes('walk')) return 'walking'
if (lower.includes('yoga') || lower.includes('stretch')) return 'yoga'
if (lower.includes('sim') || lower.includes('swim')) return 'swimming'
if (lower.includes('cyk') || lower.includes('bike')) return 'cycling'
return 'walking'
}
export default Icon