67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:easy_localization/easy_localization.dart';
 | |
| import 'package:flutter/material.dart';
 | |
| import 'package:gap/gap.dart';
 | |
| import 'package:material_symbols_icons/material_symbols_icons.dart';
 | |
| 
 | |
| class ReasoningSection extends StatelessWidget {
 | |
|   const ReasoningSection({super.key, required this.reasoningChunks});
 | |
| 
 | |
|   final List<String> reasoningChunks;
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     if (reasoningChunks.isEmpty) {
 | |
|       return const SizedBox.shrink();
 | |
|     }
 | |
| 
 | |
|     return Column(
 | |
|       crossAxisAlignment: CrossAxisAlignment.start,
 | |
|       children: [
 | |
|         Container(
 | |
|           padding: const EdgeInsets.all(8),
 | |
|           decoration: BoxDecoration(
 | |
|             color: Theme.of(context).colorScheme.surfaceContainerHigh,
 | |
|             borderRadius: BorderRadius.circular(8),
 | |
|           ),
 | |
|           child: Column(
 | |
|             crossAxisAlignment: CrossAxisAlignment.start,
 | |
|             children: [
 | |
|               Row(
 | |
|                 children: [
 | |
|                   Icon(
 | |
|                     Symbols.psychology,
 | |
|                     size: 14,
 | |
|                     color: Theme.of(context).colorScheme.primary,
 | |
|                   ),
 | |
|                   const Gap(4),
 | |
|                   Text(
 | |
|                     'reasoning'.tr(),
 | |
|                     style: Theme.of(context).textTheme.bodySmall!.copyWith(
 | |
|                       fontWeight: FontWeight.w600,
 | |
|                       color: Theme.of(context).colorScheme.primary,
 | |
|                     ),
 | |
|                   ),
 | |
|                 ],
 | |
|               ),
 | |
|               const Gap(4),
 | |
|               ...reasoningChunks.map(
 | |
|                 (chunk) => Padding(
 | |
|                   padding: const EdgeInsets.only(bottom: 4),
 | |
|                   child: Text(
 | |
|                     chunk,
 | |
|                     style: TextStyle(
 | |
|                       color: Theme.of(context).colorScheme.onSurfaceVariant,
 | |
|                       fontSize: 12,
 | |
|                       height: 1.3,
 | |
|                     ),
 | |
|                   ),
 | |
|                 ),
 | |
|               ),
 | |
|             ],
 | |
|           ),
 | |
|         ),
 | |
|       ],
 | |
|     );
 | |
|   }
 | |
| }
 |