import 'package:sysfarma_mobile/src/core/theme/app_tokens.dart'; import 'package:flutter/material.dart'; class ActionTileCard extends StatelessWidget { const ActionTileCard({ required this.icon, required this.title, required this.subtitle, super.key, this.onTap, this.badge, this.accentColor = AppTokens.primary, }); final IconData icon; final String title; final String subtitle; final VoidCallback? onTap; final String? badge; final Color accentColor; @override Widget build(BuildContext context) { final isActionable = onTap != null; return Material( color: Colors.transparent, child: InkWell( onTap: onTap, borderRadius: BorderRadius.circular(AppTokens.radiusMedium), child: Ink( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(AppTokens.radiusMedium), border: Border.all(color: AppTokens.border), ), child: Padding( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ CircleAvatar( backgroundColor: accentColor.withValues(alpha:0.12), foregroundColor: accentColor, child: Icon(icon, size: 18), ), const Spacer(), if (badge != null) Container( padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6), decoration: BoxDecoration( color: accentColor.withValues(alpha:0.10), borderRadius: BorderRadius.circular(999), ), child: Text( badge!, style: Theme.of(context).textTheme.labelMedium?.copyWith( color: accentColor, fontWeight: FontWeight.w700, ), ), ), ], ), const SizedBox(height: 14), Text(title, style: Theme.of(context).textTheme.titleMedium), const SizedBox(height: 6), Text( subtitle, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: AppTokens.secondary, ), ), if (isActionable) ...[ const SizedBox(height: 14), Row( children: [ Text( 'Abrir', style: Theme.of(context).textTheme.labelLarge?.copyWith( color: accentColor, ), ), const SizedBox(width: 6), Icon( Icons.arrow_outward_rounded, size: 16, color: accentColor, ), ], ), ], ], ), ), ), ), ); } }