import 'package:flutter/material.dart'; import '../theme/yanting_tokens.dart'; class AppCard extends StatelessWidget { const AppCard({ required this.child, this.onTap, this.padding = const EdgeInsets.all(YantingSpacing.cardPadding), this.color = YantingColors.card, this.borderColor = YantingColors.border, super.key, }); final Widget child; final VoidCallback? onTap; final EdgeInsetsGeometry padding; final Color color; final Color borderColor; @override Widget build(BuildContext context) { final decoration = BoxDecoration( color: color, border: Border.all(color: borderColor), borderRadius: BorderRadius.circular(YantingRadius.xl), ); final content = DecoratedBox( decoration: BoxDecoration( color: color, border: Border.all(color: borderColor), borderRadius: BorderRadius.circular(YantingRadius.xl), ), child: Padding(padding: padding, child: child), ); if (onTap == null) return content; return Material( color: Colors.transparent, child: Ink( decoration: decoration, child: InkWell( borderRadius: BorderRadius.circular(YantingRadius.xl), onTap: onTap, child: Padding(padding: padding, child: child), ), ), ); } } class HeroReportCard extends StatelessWidget { const HeroReportCard({required this.child, this.onTap, super.key}); final Widget child; final VoidCallback? onTap; @override Widget build(BuildContext context) { return AppCard( onTap: onTap, color: YantingColors.brandSoft, borderColor: YantingColors.brandSoftBorder, padding: const EdgeInsets.all(YantingSpacing.cardPadding), child: child, ); } }