import 'package:flutter/material.dart'; import '../tokens/unionflow_colors.dart'; /// Bouton d'action rapide UnionFlow /// Style fintech : fond blanc, icône + texte colorés, bordure grise légère /// Copie exacte du style _buildActionCell du super_admin_dashboard class UnionActionButton extends StatelessWidget { final IconData icon; final String label; final VoidCallback onTap; final Color? backgroundColor; final Color? iconColor; const UnionActionButton({ super.key, required this.icon, required this.label, required this.onTap, this.backgroundColor, this.iconColor, }); @override Widget build(BuildContext context) { // backgroundColor sert d'accent (icône + texte), iconColor prend la priorité final accentColor = iconColor ?? backgroundColor ?? UnionFlowColors.unionGreen; return InkWell( onTap: onTap, borderRadius: BorderRadius.circular(10), child: Container( padding: const EdgeInsets.symmetric(vertical: 9, horizontal: 8), decoration: BoxDecoration( color: UnionFlowColors.surface, borderRadius: BorderRadius.circular(10), border: Border.all(color: UnionFlowColors.border), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(icon, size: 16, color: accentColor), const SizedBox(width: 6), Flexible( child: Text( label, style: TextStyle( fontSize: 11, fontWeight: FontWeight.w600, color: accentColor, ), textAlign: TextAlign.center, maxLines: 1, overflow: TextOverflow.ellipsis, ), ), ], ), ), ); } } /// Grid d'actions rapides class UnionActionGrid extends StatelessWidget { final List actions; const UnionActionGrid({ super.key, required this.actions, }); @override Widget build(BuildContext context) { return Row( children: [ for (int i = 0; i < actions.length; i++) ...[ Expanded(child: actions[i]), if (i < actions.length - 1) const SizedBox(width: 10), ], ], ); } }