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, child: Container( padding: const EdgeInsets.all(20), decoration: BoxDecoration( gradient: LinearGradient( colors: [AppColor.surface, AppColor.surface.withOpacity(0.9)], begin: Alignment.topLeft, end: Alignment.bottomRight, ), borderRadius: BorderRadius.circular(20), boxShadow: [ BoxShadow( color: AppColor.primary.withOpacity(0.1), blurRadius: 20, offset: const Offset(0, 8), spreadRadius: 0, ), BoxShadow( color: AppColor.black.withOpacity(0.05), blurRadius: 10, offset: const Offset(0, 2), ), ], border: Border.all( color: AppColor.border.withOpacity(0.3), width: 1, ), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( padding: const EdgeInsets.all(12), decoration: BoxDecoration( gradient: LinearGradient( colors: [ iconColor.withOpacity(0.15), iconColor.withOpacity(0.05), ], begin: Alignment.topLeft, end: Alignment.bottomRight, ), borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( color: iconColor.withOpacity(0.2), blurRadius: 8, offset: const Offset(0, 2), ), ], ), child: Icon(icon, color: iconColor, size: 24), ), ], ), const SizedBox(height: 16), Text( title, style: AppStyle.sm.copyWith( color: AppColor.textSecondary, fontWeight: FontWeight.w500, ), ), const SizedBox(height: 6), Text( value, style: AppStyle.lg.copyWith( fontWeight: FontWeight.w800, color: AppColor.textPrimary, height: 1.2, ), ), ], ), ), ), ); }, ); } }