Modificação nos modos, correção de textos cortados

This commit is contained in:
2026-05-17 14:02:42 +01:00
parent 14509c04d3
commit 51ea446ae9
24 changed files with 906 additions and 933 deletions

View File

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import '../../../../core/services/rag_service.dart';
import '../../../../core/theme/app_theme_extension.dart';
/// Widget for displaying chat messages with source citations
class MessageBubble extends StatelessWidget {
@@ -73,22 +74,28 @@ class MessageBubble extends StatelessWidget {
}
Widget _buildAvatar(BuildContext context) {
final cs = Theme.of(context).colorScheme;
final extras = AppThemeExtras.of(context);
final accent = isUser ? cs.primary : cs.secondary;
return Container(
width: 36,
height: 36,
decoration: BoxDecoration(
gradient: isUser
? const LinearGradient(
colors: [Color(0xFF82C9BD), Color(0xFF6BA5A0)],
? LinearGradient(
colors: [
extras.actionCardGradientStart,
extras.actionCardGradientEnd,
],
)
: const LinearGradient(
colors: [Color(0xFFF68D2D), Color(0xFFE67E22)],
: LinearGradient(
colors: [cs.secondary, cs.secondary.withOpacity(0.85)],
),
borderRadius: BorderRadius.circular(18),
boxShadow: [
BoxShadow(
color: (isUser ? const Color(0xFF82C9BD) : const Color(0xFFF68D2D))
.withOpacity(0.3),
color: accent.withOpacity(0.3),
blurRadius: 8,
offset: const Offset(0, 2),
),
@@ -103,6 +110,9 @@ class MessageBubble extends StatelessWidget {
}
Widget _buildMessageBubble(BuildContext context) {
final cs = Theme.of(context).colorScheme;
final extras = AppThemeExtras.of(context);
return Container(
constraints: BoxConstraints(
maxWidth: MediaQuery.of(context).size.width * 0.75,
@@ -110,15 +120,18 @@ class MessageBubble extends StatelessWidget {
padding: const EdgeInsets.all(16.0),
decoration: BoxDecoration(
gradient: isUser
? const LinearGradient(
colors: [Color(0xFF82C9BD), Color(0xFF6BA5A0)],
? LinearGradient(
colors: [
extras.actionCardGradientStart,
extras.actionCardGradientEnd,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
)
: LinearGradient(
colors: [
Colors.white.withOpacity(0.95),
Colors.white.withOpacity(0.9),
cs.surfaceContainerHighest,
cs.surface,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
@@ -154,24 +167,24 @@ class MessageBubble extends StatelessWidget {
data: content,
styleSheet: MarkdownStyleSheet(
p: TextStyle(
color: const Color(0xFF2D3748),
color: cs.onSurface,
fontSize: 16,
height: 1.4,
),
strong: TextStyle(
color: const Color(0xFF2D3748),
color: cs.onSurface,
fontSize: 16,
fontWeight: FontWeight.bold,
height: 1.4,
),
em: TextStyle(
color: const Color(0xFF2D3748),
color: cs.onSurface,
fontSize: 16,
fontStyle: FontStyle.italic,
height: 1.4,
),
listBullet: TextStyle(
color: const Color(0xFF2D3748),
color: cs.onSurface,
fontSize: 16,
height: 1.4,
),
@@ -262,7 +275,7 @@ class MessageBubble extends StatelessWidget {
Icon(
Icons.menu_book,
size: 14,
color: const Color(0xFF82C9BD),
color: Theme.of(context).colorScheme.primary,
),
const SizedBox(width: 6),
Expanded(
@@ -280,7 +293,7 @@ class MessageBubble extends StatelessWidget {
Container(
padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2),
decoration: BoxDecoration(
color: const Color(0xFF82C9BD).withOpacity(0.1),
color: Theme.of(context).colorScheme.primary.withOpacity(0.1),
borderRadius: BorderRadius.circular(10),
),
child: Text(
@@ -288,7 +301,7 @@ class MessageBubble extends StatelessWidget {
style: TextStyle(
fontSize: 10,
fontWeight: FontWeight.w600,
color: const Color(0xFF82C9BD),
color: Theme.of(context).colorScheme.primary,
),
),
),