import 'package:flutter/material.dart'; import '../../../../common/theme/theme.dart'; class PurchaseStatCard extends StatelessWidget { final String title; final String value; final IconData icon; final Color iconColor; final Animation cardAnimation; const PurchaseStatCard({ super.key, required this.title, required this.value, required this.icon, required this.iconColor, required this.cardAnimation, }); @override Widget build(BuildContext context) { return AnimatedBuilder( animation: cardAnimation, builder: (context, child) { return Transform.scale( scale: 0.8 + (cardAnimation.value * 0.2), child: Opacity( opacity: cardAnimation.value.clamp(0.0, 1.0), child: Container( padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: AppColor.surface, borderRadius: BorderRadius.circular(16), boxShadow: [ BoxShadow( color: AppColor.primary.withOpacity(0.08), blurRadius: 16, offset: const Offset(0, 6), ), BoxShadow( color: AppColor.black.withOpacity(0.04), blurRadius: 8, offset: const Offset(0, 2), ), ], border: Border.all( color: AppColor.border.withOpacity(0.25), width: 1, ), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( color: iconColor.withOpacity(0.12), borderRadius: BorderRadius.circular(10), ), child: Icon(icon, color: iconColor, size: 22), ), const SizedBox(height: 12), Text( title, style: AppStyle.sm.copyWith( color: AppColor.textSecondary, fontWeight: FontWeight.w500, ), ), const SizedBox(height: 4), Text( value, style: AppStyle.md.copyWith( fontWeight: FontWeight.w800, color: AppColor.textPrimary, height: 1.2, ), maxLines: 1, overflow: TextOverflow.ellipsis, ), ], ), ), ), ); }, ); } }