import { Pressable, StyleSheet, View, type StyleProp, type ViewStyle } from 'react-native'; import { Colors } from '@/lib/colors'; import { Radius, Shadow, Spacing } from '@/lib/theme'; interface CardProps { children: React.ReactNode; onPress?: () => void; /** Padding interne (défaut lg = 16). Mettre 0 pour gérer soi-même. */ padding?: number; /** Légère ombre portée. */ elevated?: boolean; style?: StyleProp; } /** Conteneur DSFR : fond blanc, bordure grise fine, coins peu arrondis. */ export default function Card({ children, onPress, padding = Spacing.lg, elevated = false, style }: CardProps) { const content = [styles.card, { padding }, elevated && Shadow.card, style]; if (onPress) { return ( [content, pressed && styles.pressed]} > {children} ); } return {children}; } const styles = StyleSheet.create({ card: { backgroundColor: Colors.white, borderWidth: 1, borderColor: Colors.gray[200], borderRadius: Radius.sm, }, pressed: { backgroundColor: Colors.gray[50] }, });