import 'package:flutter/material.dart'; import '../Provider/language_provider.dart'; import '../utils/colors.dart'; import 'package:provider/provider.dart'; import 'custom_text.dart'; Widget buildTermCard(dynamic item, int index,context) { return Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(16), boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.1), spreadRadius: 1, blurRadius: 10, offset: const Offset(0, 2), ), ], ), child: ExpansionTile( tilePadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 8), childrenPadding: const EdgeInsets.only(left: 20, right: 20, bottom: 20), leading: Container( width: 40, height: 40, decoration: BoxDecoration( gradient: LinearGradient( colors: [ Theme.of(context).brightness == Brightness.dark ?AppColors.darkPrimaryColor:AppColors.primaryColor.withOpacity(0.8), Theme.of(context).brightness == Brightness.dark ?AppColors.darkPrimaryColor:AppColors.primaryColor, ], ), borderRadius: BorderRadius.circular(10), ), child: Center( child: Text( '${index + 1}', style: const TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 16, ), ), ), ), title: Text( item.title ?? 'Untitled', style: const TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: Colors.black87, ), ), subtitle: Padding( padding: const EdgeInsets.only(top: 4), child: Text( getPreviewText(item.disctiption ?? ''), style: TextStyle( fontSize: 12, color: Colors.grey.shade600, height: 1.3, ), maxLines: 2, overflow: TextOverflow.ellipsis, ), ), iconColor: Theme.of(context).brightness == Brightness.dark ?AppColors.darkPrimaryColor:AppColors.primaryColor, collapsedIconColor: Colors.grey.shade600, children: [ Container( width: double.infinity, padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: Colors.grey.shade50, borderRadius: BorderRadius.circular(12), border: Border( left: BorderSide( color: Theme.of(context).brightness == Brightness.dark ?AppColors.darkPrimaryColor:AppColors.primaryColor, width: 3, ), ), ), child: Txt( text: item.disctiption ?? 'No description available.', style: TextStyle( fontSize: 14, color: Colors.grey.shade700, height: 1.6, letterSpacing: 0.2, ), textAlign: TextAlign.justify, ), ), ], ), ); } String getPreviewText(String text) { if (text.length <= 100) return text; return '${text.substring(0, 100)}...'; }