feat(shared): legacy presentation/ + shared design system + widgets

- lib/presentation : pages legacy (explore/network, notifications) avec BLoC
- lib/shared/design_system : UnionFlow Design System v2 (tokens, components)
  + MD3 tokens + module_colors par feature
- lib/shared/widgets : widgets transversaux (core_card, core_shimmer,
  error_widget, loading_widget, powered_by_lions_dev, etc.)
- lib/shared/constants + utils
This commit is contained in:
dahoud
2026-04-15 20:27:23 +00:00
parent 744faa3a9c
commit 7cd7c6fc9e
36 changed files with 1890 additions and 837 deletions

View File

@@ -35,7 +35,7 @@ class UFPageHeader extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isDark = Theme.of(context).brightness == Brightness.dark;
final effectiveIconColor = iconColor ?? AppColors.primaryGreen;
final effectiveIconColor = iconColor ?? AppColors.primary;
return Column(
children: [
@@ -66,7 +66,7 @@ class UFPageHeader extends StatelessWidget {
child: Text(
title,
style: AppTypography.headerSmall.copyWith(
color: isDark ? AppColors.textPrimaryDark : AppColors.textPrimaryLight,
color: isDark ? AppColors.textPrimaryDark : AppColors.textPrimary,
fontWeight: FontWeight.w600,
),
),
@@ -83,7 +83,7 @@ class UFPageHeader extends StatelessWidget {
Divider(
height: 1,
thickness: 1,
color: isDark ? AppColors.darkBorder : AppColors.lightBorder,
color: isDark ? AppColors.borderDark : AppColors.border,
),
],
);
@@ -112,7 +112,7 @@ class UFPageHeaderWithStats extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isDark = Theme.of(context).brightness == Brightness.dark;
final effectiveIconColor = iconColor ?? AppColors.primaryGreen;
final effectiveIconColor = iconColor ?? AppColors.primary;
return Column(
children: [
@@ -146,7 +146,7 @@ class UFPageHeaderWithStats extends StatelessWidget {
child: Text(
title,
style: AppTypography.headerSmall.copyWith(
color: isDark ? AppColors.textPrimaryDark : AppColors.textPrimaryLight,
color: isDark ? AppColors.textPrimaryDark : AppColors.textPrimary,
fontWeight: FontWeight.w600,
),
),
@@ -185,14 +185,14 @@ class UFPageHeaderWithStats extends StatelessWidget {
Divider(
height: 1,
thickness: 1,
color: isDark ? AppColors.darkBorder : AppColors.lightBorder,
color: isDark ? AppColors.borderDark : AppColors.border,
),
],
);
}
Widget _buildStatItem(UFHeaderStat stat, bool isDark) {
final effectiveColor = stat.color ?? AppColors.primaryGreen;
final effectiveColor = stat.color ?? AppColors.primary;
return UFContainer.rounded(
padding: const EdgeInsets.symmetric(
horizontal: SpacingTokens.md,
@@ -213,7 +213,7 @@ class UFPageHeaderWithStats extends StatelessWidget {
Text(
stat.label,
style: AppTypography.badgeText.copyWith(
color: isDark ? AppColors.textSecondaryDark : AppColors.textSecondaryLight,
color: isDark ? AppColors.textSecondaryDark : AppColors.textSecondary,
),
maxLines: 1,
overflow: TextOverflow.ellipsis,