diff --git a/mobile/lib/app.dart b/mobile/lib/app.dart index ccd9fc913..912149572 100644 --- a/mobile/lib/app.dart +++ b/mobile/lib/app.dart @@ -103,7 +103,7 @@ class _OfflineScreen extends ConsumerWidget { onPressed: () => ref.read(authProvider.notifier).signOut(), child: Text( 'Remove workspace and re-pair', - style: TextStyle(color: context.colors.outline), + style: TextStyle(color: context.colors.onSurfaceVariant), ), ), ], diff --git a/mobile/lib/features/activity/activity_page.dart b/mobile/lib/features/activity/activity_page.dart index 88d84bd1f..8416b9ab5 100644 --- a/mobile/lib/features/activity/activity_page.dart +++ b/mobile/lib/features/activity/activity_page.dart @@ -304,7 +304,7 @@ class _FeedItemTile extends ConsumerWidget { Text( _relativeTime(item.createdAt), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -407,7 +407,11 @@ class _EmptyState extends StatelessWidget { child: Column( mainAxisSize: MainAxisSize.min, children: [ - Icon(LucideIcons.bell, size: Grid.xl, color: context.colors.outline), + Icon( + LucideIcons.bell, + size: Grid.xl, + color: context.colors.onSurfaceVariant, + ), const SizedBox(height: Grid.xs), Text( 'No activity yet', @@ -419,7 +423,7 @@ class _EmptyState extends StatelessWidget { Text( 'Mentions, replies, and reactions will show up here.', style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), textAlign: TextAlign.center, ), @@ -451,7 +455,7 @@ class _EmptyFilterState extends StatelessWidget { child: Column( mainAxisSize: MainAxisSize.min, children: [ - Icon(icon, size: Grid.lg, color: context.colors.outline), + Icon(icon, size: Grid.lg, color: context.colors.onSurfaceVariant), const SizedBox(height: Grid.xxs), Text( message, diff --git a/mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart b/mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart index 340444c9b..7be802d47 100644 --- a/mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart +++ b/mobile/lib/features/channels/agent_activity/agent_activity_sheet.dart @@ -179,7 +179,7 @@ class _EmptyState extends StatelessWidget { child: Text( 'Not connected', style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ); @@ -195,14 +195,14 @@ class _EmptyState extends StatelessWidget { height: 24, child: CircularProgressIndicator( strokeWidth: 2, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), const SizedBox(height: Grid.xxs), Text( 'Waiting for activity\u2026', style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -219,7 +219,7 @@ class _ConnectionBadge extends StatelessWidget { @override Widget build(BuildContext context) { final (color, label) = switch (connection) { - ObserverConnectionState.idle => (context.colors.outline, 'Idle'), + ObserverConnectionState.idle => (context.colors.onSurfaceVariant, 'Idle'), ObserverConnectionState.connecting => ( context.appColors.warning, 'Connecting', diff --git a/mobile/lib/features/channels/agent_activity/transcript_item_widget.dart b/mobile/lib/features/channels/agent_activity/transcript_item_widget.dart index 8f3914c81..a4a9247ef 100644 --- a/mobile/lib/features/channels/agent_activity/transcript_item_widget.dart +++ b/mobile/lib/features/channels/agent_activity/transcript_item_widget.dart @@ -40,7 +40,7 @@ class _MessageItemWidget extends StatelessWidget { final isAssistant = item.role == 'assistant'; final badgeColor = isAssistant ? context.colors.primary - : context.colors.outline; + : context.colors.onSurfaceVariant; final badgeLabel = isAssistant ? 'Assistant' : 'User'; return Padding( @@ -122,14 +122,14 @@ class _ThoughtItemWidget extends HookWidget { Icon( LucideIcons.brain, size: 14, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(width: Grid.half), Expanded( child: Text( item.title, style: context.textTheme.labelMedium?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontWeight: FontWeight.w600, ), overflow: TextOverflow.ellipsis, @@ -140,7 +140,7 @@ class _ThoughtItemWidget extends HookWidget { ? LucideIcons.chevronUp : LucideIcons.chevronDown, size: 14, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ], ), @@ -178,7 +178,7 @@ class _LifecycleItemWidget extends StatelessWidget { child: Text( '${item.title}${item.text.isNotEmpty ? ' \u2014 ${item.text}' : ''}', style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), textAlign: TextAlign.center, ), @@ -226,14 +226,14 @@ class _MetadataItemWidget extends HookWidget { Icon( LucideIcons.fileText, size: 14, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(width: Grid.half), Expanded( child: Text( '${item.title} (${item.sections.length} sections)', style: context.textTheme.labelMedium?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontWeight: FontWeight.w600, ), overflow: TextOverflow.ellipsis, @@ -244,7 +244,7 @@ class _MetadataItemWidget extends HookWidget { ? LucideIcons.chevronUp : LucideIcons.chevronDown, size: 14, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ], ), @@ -265,7 +265,7 @@ class _MetadataItemWidget extends HookWidget { ? '${section.body.substring(0, 500)}\u2026' : section.body, style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -371,7 +371,7 @@ class _ToolItemWidget extends HookWidget { Text( 'Arguments', style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), const SizedBox(width: Grid.half), @@ -380,7 +380,7 @@ class _ToolItemWidget extends HookWidget { ? LucideIcons.chevronUp : LucideIcons.chevronDown, size: 12, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ], ), @@ -402,7 +402,7 @@ class _ToolItemWidget extends HookWidget { style: context.textTheme.labelSmall?.copyWith( color: item.isError ? context.colors.error - : context.colors.outline, + : context.colors.onSurfaceVariant, ), ), const SizedBox(width: Grid.half), @@ -413,7 +413,7 @@ class _ToolItemWidget extends HookWidget { size: 12, color: item.isError ? context.colors.error - : context.colors.outline, + : context.colors.onSurfaceVariant, ), ], ), @@ -451,7 +451,7 @@ class _ToolItemWidget extends HookWidget { return (context.appColors.success, 'Done', LucideIcons.circleCheck); } if (status == ToolStatus.pending) { - return (context.colors.outline, 'Pending', LucideIcons.circleDot); + return (context.colors.onSurfaceVariant, 'Pending', LucideIcons.circleDot); } return (context.appColors.warning, 'Running', LucideIcons.clock3); } diff --git a/mobile/lib/features/channels/channel_detail_page.dart b/mobile/lib/features/channels/channel_detail_page.dart index bf42370d4..e8604c040 100644 --- a/mobile/lib/features/channels/channel_detail_page.dart +++ b/mobile/lib/features/channels/channel_detail_page.dart @@ -395,7 +395,7 @@ class _MessageList extends HookConsumerWidget { Icon( LucideIcons.messageSquare, size: Grid.xl, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(height: Grid.xxs), Text( @@ -408,7 +408,7 @@ class _MessageList extends HookConsumerWidget { Text( 'Be the first to say something!', style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -1031,7 +1031,7 @@ class _TypingIndicator extends ConsumerWidget { child: Text( text, style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontStyle: FontStyle.italic, ), ), diff --git a/mobile/lib/features/channels/channels_page.dart b/mobile/lib/features/channels/channels_page.dart index 2b37a1f51..5567f1ef9 100644 --- a/mobile/lib/features/channels/channels_page.dart +++ b/mobile/lib/features/channels/channels_page.dart @@ -396,7 +396,7 @@ class _ChannelSection extends StatelessWidget { child: Text( emptyLabel, style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ) @@ -428,7 +428,7 @@ class _EmptyState extends StatelessWidget { Icon( LucideIcons.messagesSquare, size: Grid.xl, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(height: Grid.xs), Text( diff --git a/mobile/lib/features/channels/compose_bar.dart b/mobile/lib/features/channels/compose_bar.dart index da6bb98ef..ca68a1d9f 100644 --- a/mobile/lib/features/channels/compose_bar.dart +++ b/mobile/lib/features/channels/compose_bar.dart @@ -701,7 +701,11 @@ class _MentionSuggestions extends StatelessWidget { ), title: Text(name, style: context.textTheme.bodyMedium), trailing: member.isBot - ? Icon(LucideIcons.bot, size: 14, color: context.colors.outline) + ? Icon( + LucideIcons.bot, + size: 14, + color: context.colors.onSurfaceVariant, + ) : null, onTap: () => onSelect(member), ); @@ -778,7 +782,7 @@ class _ChannelSuggestions extends StatelessWidget { trailing: Text( channel.channelType, style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), onTap: () => onSelect(channel), diff --git a/mobile/lib/features/channels/manage_channel_sheet.dart b/mobile/lib/features/channels/manage_channel_sheet.dart index 19d67cab9..5e7c21b7a 100644 --- a/mobile/lib/features/channels/manage_channel_sheet.dart +++ b/mobile/lib/features/channels/manage_channel_sheet.dart @@ -290,7 +290,7 @@ class _ContextCard extends StatelessWidget { Text( label, style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontWeight: FontWeight.w600, ), ), diff --git a/mobile/lib/features/channels/members_sheet.dart b/mobile/lib/features/channels/members_sheet.dart index 55eb51f63..61fa5468f 100644 --- a/mobile/lib/features/channels/members_sheet.dart +++ b/mobile/lib/features/channels/members_sheet.dart @@ -138,7 +138,7 @@ class MembersSheet extends HookConsumerWidget { child: Text( 'No members found.', style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ), @@ -176,7 +176,7 @@ class _SectionLabel extends StatelessWidget { child: Text( label.toUpperCase(), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontWeight: FontWeight.w600, letterSpacing: 0.8, ), @@ -251,7 +251,7 @@ class _MemberTile extends ConsumerWidget { : Text( _roleLabel(member.role), style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), trailing: showMenu @@ -391,7 +391,7 @@ class _RoleSelector extends StatelessWidget { Text( 'Role', style: context.textTheme.labelMedium?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), const SizedBox(height: Grid.xxs), diff --git a/mobile/lib/features/channels/thread_detail_page.dart b/mobile/lib/features/channels/thread_detail_page.dart index 4f3bd818e..42634678b 100644 --- a/mobile/lib/features/channels/thread_detail_page.dart +++ b/mobile/lib/features/channels/thread_detail_page.dart @@ -415,7 +415,7 @@ class _ThreadMessage extends ConsumerWidget { Text( formatMessageTime(message.createdAt), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), if (message.edited) ...[ @@ -423,7 +423,7 @@ class _ThreadMessage extends ConsumerWidget { Text( '(edited)', style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontStyle: FontStyle.italic, ), ), @@ -486,7 +486,7 @@ class _ThreadTypingIndicator extends ConsumerWidget { child: Text( text, style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontStyle: FontStyle.italic, ), ), diff --git a/mobile/lib/features/forum/forum_post_card.dart b/mobile/lib/features/forum/forum_post_card.dart index d91cf4945..7f8205731 100644 --- a/mobile/lib/features/forum/forum_post_card.dart +++ b/mobile/lib/features/forum/forum_post_card.dart @@ -77,7 +77,7 @@ class ForumPostCard extends ConsumerWidget { Text( formatRelativeTime(post.createdAt), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), const SizedBox(width: Grid.half), @@ -89,7 +89,7 @@ class ForumPostCard extends ConsumerWidget { icon: Icon( LucideIcons.ellipsis, size: 16, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), padding: EdgeInsets.zero, visualDensity: VisualDensity.compact, @@ -128,13 +128,13 @@ class ForumPostCard extends ConsumerWidget { Icon( LucideIcons.messageSquare, size: 14, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(width: Grid.half), Text( '${summary.replyCount} ${summary.replyCount == 1 ? 'reply' : 'replies'}', style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), if (summary.lastReplyAt != null) ...[ @@ -142,14 +142,16 @@ class ForumPostCard extends ConsumerWidget { Text( '\u00b7', style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline.withValues(alpha: 0.5), + color: context.colors.onSurfaceVariant.withValues( + alpha: 0.5, + ), ), ), const SizedBox(width: Grid.half), Text( 'last ${formatRelativeTime(summary.lastReplyAt!)}', style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], diff --git a/mobile/lib/features/forum/forum_posts_view.dart b/mobile/lib/features/forum/forum_posts_view.dart index 708c5ea31..aea2e1fe3 100644 --- a/mobile/lib/features/forum/forum_posts_view.dart +++ b/mobile/lib/features/forum/forum_posts_view.dart @@ -186,7 +186,7 @@ class _EmptyState extends StatelessWidget { Icon( LucideIcons.messageSquareText, size: Grid.xl, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(height: Grid.xxs), Text( @@ -203,7 +203,7 @@ class _EmptyState extends StatelessWidget { ? 'Start a discussion by creating the first post.' : 'Join this forum to create posts.', style: context.textTheme.bodySmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), textAlign: TextAlign.center, ), diff --git a/mobile/lib/features/forum/forum_thread_page.dart b/mobile/lib/features/forum/forum_thread_page.dart index 925b6d9b6..368095148 100644 --- a/mobile/lib/features/forum/forum_thread_page.dart +++ b/mobile/lib/features/forum/forum_thread_page.dart @@ -237,13 +237,13 @@ class _ThreadContent extends HookConsumerWidget { Icon( LucideIcons.messageSquare, size: 16, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), const SizedBox(width: Grid.half), Text( '${replies.length} ${replies.length == 1 ? 'reply' : 'replies'}', style: context.textTheme.labelMedium?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontWeight: FontWeight.w600, ), ), @@ -258,7 +258,7 @@ class _ThreadContent extends HookConsumerWidget { child: Text( 'No replies yet. Be the first to respond.', style: context.textTheme.bodyMedium?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), textAlign: TextAlign.center, ), @@ -337,7 +337,7 @@ class _OriginalPost extends ConsumerWidget { Text( formatRelativeTime(post.createdAt), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -406,7 +406,7 @@ class _ReplyRow extends ConsumerWidget { Text( formatRelativeTime(reply.createdAt), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -420,7 +420,7 @@ class _ReplyRow extends ConsumerWidget { icon: Icon( LucideIcons.ellipsis, size: 16, - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), padding: EdgeInsets.zero, visualDensity: VisualDensity.compact, diff --git a/mobile/lib/features/search/search_page.dart b/mobile/lib/features/search/search_page.dart index d5243649c..6f58b96fd 100644 --- a/mobile/lib/features/search/search_page.dart +++ b/mobile/lib/features/search/search_page.dart @@ -404,7 +404,7 @@ class _MessageTile extends StatelessWidget { Text( timeAgo, style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, ), ), ], @@ -450,7 +450,7 @@ class _SectionLabel extends StatelessWidget { child: Text( label.toUpperCase(), style: context.textTheme.labelSmall?.copyWith( - color: context.colors.outline, + color: context.colors.onSurfaceVariant, fontWeight: FontWeight.w600, letterSpacing: 0.8, ),