import 'package:flutter/material.dart'; import 'package:get/get.dart'; // For Get.width if needed, and .tr import 'package:sefer_admin1/constant/colors.dart'; // Assuming AppColor is here import 'package:sefer_admin1/constant/style.dart'; // Assuming AppStyle is here class DashboardStatCard extends StatelessWidget { final String title; final String value; final IconData? icon; final Color? iconColor; final Color? backgroundColor; final Color? valueColor; const DashboardStatCard({ Key? key, required this.title, required this.value, this.icon, this.iconColor, this.backgroundColor, this.valueColor, }) : super(key: key); @override Widget build(BuildContext context) { // Attempt to use AppStyle.boxDecoration1 properties if it's a BoxDecoration BoxDecoration? baseDecoration = AppStyle.boxDecoration1; Color? finalBackgroundColor = backgroundColor ?? baseDecoration?.color ?? Theme.of(context).cardColor; BorderRadius? finalBorderRadius = baseDecoration?.borderRadius?.resolve(Directionality.of(context)) ?? BorderRadius.circular(12.0); return Container( padding: const EdgeInsets.symmetric(horizontal: 14.0, vertical: 12.0), decoration: BoxDecoration( color: finalBackgroundColor, borderRadius: finalBorderRadius, boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.1), spreadRadius: 1, blurRadius: 6, offset: const Offset(0, 2), ), ], // If AppStyle.boxDecoration1 includes a border, you might want to add it here too // border: baseDecoration?.border, ), child: Column( mainAxisAlignment: MainAxisAlignment.center, // Center content vertically crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ Flexible( child: Text( title.tr, style: AppStyle.title.copyWith( fontSize: 13, fontWeight: FontWeight.w500, color: Theme.of(context).textTheme.bodySmall?.color, ), maxLines: 2, overflow: TextOverflow.ellipsis, ), ), if (icon != null) Icon( icon, size: 24, color: iconColor ?? AppColor.primaryColor.withOpacity(0.7), ), ], ), const SizedBox(height: 6), Text( value, style: TextStyle( fontSize: 22, fontWeight: FontWeight.bold, color: valueColor ?? AppColor.primaryColor, ), maxLines: 1, overflow: TextOverflow.ellipsis, ), ], ), ); } }