import 'package:flutter/material.dart'; import '../tema/pluriwave_theme.dart'; import 'pluri_glass_surface.dart'; import 'pluri_icon.dart'; class PluriStatusPill extends StatelessWidget { const PluriStatusPill({ super.key, required this.icon, required this.label, this.accent, }); final IconData icon; final String label; final Color? accent; @override Widget build(BuildContext context) { final t = context.pluriTokens; final color = accent ?? t.electricMagenta; return Tooltip( message: label, child: Container( constraints: const BoxConstraints(maxWidth: 220), padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), decoration: BoxDecoration( borderRadius: BorderRadius.circular(999), color: color.withValues(alpha: 0.13), border: Border.all(color: color.withValues(alpha: 0.38)), ), child: Row( mainAxisSize: MainAxisSize.min, children: [ Icon(icon, size: 16, color: color), const SizedBox(width: 7), Flexible( child: Text( label, maxLines: 1, overflow: TextOverflow.ellipsis, style: Theme.of( context, ).textTheme.labelMedium?.copyWith(fontWeight: FontWeight.w800), ), ), ], ), ), ); } } class PluriEmptyState extends StatelessWidget { const PluriEmptyState({ super.key, required this.glyph, required this.title, required this.subtitle, }); final PluriIconGlyph glyph; final String title; final String subtitle; @override Widget build(BuildContext context) { final t = context.pluriTokens; final theme = Theme.of(context); return Center( child: Padding( padding: const EdgeInsets.all(24), child: PluriGlassSurface( borderRadius: BorderRadius.circular(t.radiusLg + 10), padding: const EdgeInsets.all(28), child: Column( mainAxisSize: MainAxisSize.min, children: [ PluriIcon( glyph: glyph, variant: PluriIconVariant.activeGlow, size: 58, ), const SizedBox(height: 18), Text( title, textAlign: TextAlign.center, style: theme.textTheme.titleLarge?.copyWith( fontWeight: FontWeight.w900, ), ), const SizedBox(height: 8), Text( subtitle, textAlign: TextAlign.center, style: theme.textTheme.bodyMedium?.copyWith( color: theme.colorScheme.onSurface.withValues(alpha: 0.72), ), ), ], ), ), ), ); } }