diff --git a/src/CleanAspire.Api/CleanAspire.Api.csproj b/src/CleanAspire.Api/CleanAspire.Api.csproj index 86afec89..143348cf 100644 --- a/src/CleanAspire.Api/CleanAspire.Api.csproj +++ b/src/CleanAspire.Api/CleanAspire.Api.csproj @@ -14,18 +14,18 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/CleanAspire.AppHost/CleanAspire.AppHost.csproj b/src/CleanAspire.AppHost/CleanAspire.AppHost.csproj index ff9d4272..ff97a1f0 100644 --- a/src/CleanAspire.AppHost/CleanAspire.AppHost.csproj +++ b/src/CleanAspire.AppHost/CleanAspire.AppHost.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/CleanAspire.Application/CleanAspire.Application.csproj b/src/CleanAspire.Application/CleanAspire.Application.csproj index 8b3cf527..1508f08b 100644 --- a/src/CleanAspire.Application/CleanAspire.Application.csproj +++ b/src/CleanAspire.Application/CleanAspire.Application.csproj @@ -10,14 +10,14 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/CleanAspire.ClientApp/CleanAspire.ClientApp.csproj b/src/CleanAspire.ClientApp/CleanAspire.ClientApp.csproj index f3f7ea4d..dd788e4a 100644 --- a/src/CleanAspire.ClientApp/CleanAspire.ClientApp.csproj +++ b/src/CleanAspire.ClientApp/CleanAspire.ClientApp.csproj @@ -13,20 +13,20 @@ - - + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/CleanAspire.ClientApp/DependencyInjection.cs b/src/CleanAspire.ClientApp/DependencyInjection.cs index be562821..93bf8fd6 100644 --- a/src/CleanAspire.ClientApp/DependencyInjection.cs +++ b/src/CleanAspire.ClientApp/DependencyInjection.cs @@ -32,7 +32,7 @@ public static void TryAddMudBlazor(this IServiceCollection services, IConfigurat #region register MudBlazor.Services services.AddMudServices(config => { - MudGlobal.InputDefaults.ShrinkLabel = true; + config.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomCenter; config.SnackbarConfiguration.NewestOnTop = false; config.SnackbarConfiguration.ShowCloseIcon = true; diff --git a/src/CleanAspire.ClientApp/Layout/MainLayout.razor b/src/CleanAspire.ClientApp/Layout/MainLayout.razor index 105bba68..383f86ad 100644 --- a/src/CleanAspire.ClientApp/Layout/MainLayout.razor +++ b/src/CleanAspire.ClientApp/Layout/MainLayout.razor @@ -27,7 +27,7 @@ await ApplyUserPreferences(); if (_mudThemeProvider != null) { - await _mudThemeProvider.WatchSystemPreference(OnSystemPreferenceChanged); + await _mudThemeProvider.WatchSystemDarkModeAsync(OnSystemPreferenceChanged); } } @@ -38,7 +38,7 @@ { if (_mudThemeProvider != null) { - var defaultDarkMode = await _mudThemeProvider.GetSystemPreference(); + var defaultDarkMode = await _mudThemeProvider.GetSystemDarkModeAsync(); if (LayoutService != null) { await LayoutService.ApplyUserPreferences(defaultDarkMode); diff --git a/src/CleanAspire.ClientApp/Layout/Navbar.razor b/src/CleanAspire.ClientApp/Layout/Navbar.razor index c4284536..434591c9 100644 --- a/src/CleanAspire.ClientApp/Layout/Navbar.razor +++ b/src/CleanAspire.ClientApp/Layout/Navbar.razor @@ -23,10 +23,7 @@ @L[sub.Label] - @if (sub.SubItems.All(x => x.Status == PageStatus.ComingSoon)) - { - - } + @foreach (var nav in sub.SubItems) { @if (nav.Status == PageStatus.ComingSoon) diff --git a/src/CleanAspire.ClientApp/Layout/UserMenu.razor b/src/CleanAspire.ClientApp/Layout/UserMenu.razor index 6574a9de..c0197d56 100644 --- a/src/CleanAspire.ClientApp/Layout/UserMenu.razor +++ b/src/CleanAspire.ClientApp/Layout/UserMenu.razor @@ -5,7 +5,7 @@ @inject LayoutService LayoutService - +
@if (RendererInfo.Name == "WebAssembly") diff --git a/src/CleanAspire.ClientApp/Pages/Products/Index.razor b/src/CleanAspire.ClientApp/Pages/Products/Index.razor index 21758285..4757cec6 100644 --- a/src/CleanAspire.ClientApp/Pages/Products/Index.razor +++ b/src/CleanAspire.ClientApp/Pages/Products/Index.razor @@ -95,7 +95,7 @@ RowStyleFunc="_rowStyleFunc" NumberFormat = "#,#", DisplayFormat = "Total amount is {value}" }; - private async Task> ServerReload(GridState state) + private async Task> ServerReload(GridState state,CancellationToken cancellationToken) { try { diff --git a/src/CleanAspire.ClientApp/Pages/Stocks/Index.razor b/src/CleanAspire.ClientApp/Pages/Stocks/Index.razor index 699a53a1..c2b72cfe 100644 --- a/src/CleanAspire.ClientApp/Pages/Stocks/Index.razor +++ b/src/CleanAspire.ClientApp/Pages/Stocks/Index.razor @@ -81,7 +81,7 @@ private bool _loading = false; private readonly string[] tags = new[] { "stocks" }; private readonly TimeSpan timeSpan = TimeSpan.FromSeconds(30); - private async Task> ServerReload(GridState state) + private async Task> ServerReload(GridState state,CancellationToken cancellationToken) { try { diff --git a/src/CleanAspire.ClientApp/Themes/Theme.cs b/src/CleanAspire.ClientApp/Themes/Theme.cs index eaf97d5d..c613a590 100644 --- a/src/CleanAspire.ClientApp/Themes/Theme.cs +++ b/src/CleanAspire.ClientApp/Themes/Theme.cs @@ -15,98 +15,109 @@ public static MudTheme ApplicationTheme() { var theme = new MudTheme() { - PaletteLight = new() + PaletteLight = new PaletteLight { - // **Primary Colors** - Primary = "#7C4DFF", // Adjusted purple, used for highlights and key elements - Secondary = "#9E9E9E", // Dark gray, secondary color + Primary = "#0f172a", // Modern blue, professional and trustworthy + PrimaryContrastText = "#ffffff", + PrimaryDarken = "#020617", + PrimaryLighten = "#1e293b", + Secondary = "#71717a", + SecondaryContrastText = "#ffffff", + SecondaryLighten = "#52525b", + SecondaryDarken = "#a1a1aa", + Success = "#10b981", // Fresh green, success + Info = "#0ea5e9", // Info blue, clear + Tertiary = "#8b5cf6", // Purple 500 + TertiaryContrastText = "#ffffff", + TertiaryDarken = "#7c3aed", // Purple 600 + TertiaryLighten = "#a78bfa", // Purple 400 - // **Background and Surface** - Background = "#F5F5F5", // Standard light background color - Surface = "#FFFFFF", // Light gray, used for surfaces like cards + Warning = "#f59e0b", // Amber 500 + WarningContrastText = "#92400e", // Amber 800 + WarningDarken = "#d97706", // Amber 600 + WarningLighten = "#fbbf24", // Amber 400 - // **Text Colors** - TextPrimary = "#424242", // Dark gray, primary text color - TextSecondary = "#6D6D6D", // Medium gray, secondary text color - TextDisabled = "rgba(0,0,0,0.38)", // Semi-transparent black, disabled text color + Error = "#dc2626", // Clear red, error + ErrorContrastText = "#ffffff", + ErrorDarken = "#b91c1c", + ErrorLighten = "#ef4444", - // **Accent Colors** - Success = "#4CAF50", // Green, used for success messages - Warning = "#FF9800", // Orange, used for warning messages - Error = "#F44336", // Red, used for error messages - Info = "#2196F3", // Blue, used for informational messages + Black = "#020617", // Deep blue-black, more texture + White = "#ffffff", + AppbarBackground = "#f8fafc", // Very light blue-gray, modern + AppbarText = "#0a0a0a", + Background = "#f8fafc", // Very light blue-gray, modern + Surface = "#ffffff", + DrawerBackground = "#ffffff", + TextPrimary = "#0f172a", // Deep blue-gray, modern professional + TextSecondary = "#64748b", // Neutral gray, hierarchy - // **Contrast Text for Accent Colors** - SuccessContrastText = "#FFFFFF", // White, text color for success messages - WarningContrastText = "#FFFFFF", // White, text color for warning messages - ErrorContrastText = "#FFFFFF", // White, text color for error messages - InfoContrastText = "#FFFFFF", // White, text color for informational messages + DrawerIcon = "#71717a", - // **Dividers and Borders** - Divider = "rgba(0,0,0,0.12)", // Semi-transparent black, used for dividers - - // **Hover and Ripple Effects** - HoverOpacity = 0.04, // Opacity for hover effects - RippleOpacity = 0.08, // Opacity for ripple effects - - // **Overlay** - OverlayLight = "rgba(255,255,255,0.5)", // Semi-transparent white, used for overlays - - // **App Bar and Navigation** - AppbarBackground = "#FFFFFF", // Light surface - AppbarText = "#424242", // Dark gray, app bar text color - DrawerBackground = "#F5F5F5", // Light surface - DrawerText = "#424242", // Dark gray, drawer text color - - // **Contrast Text for Primary Color** - PrimaryContrastText = "#FFFFFF", // White, text on primary color + TextDisabled = "#94a3b8", // Soft gray + ActionDefault = "#262626", + ActionDisabled = "rgba(100, 116, 139, 0.4)", + ActionDisabledBackground = "rgba(100, 116, 139, 0.1)", + Divider = "#e2e8f0", // Elegant divider + DividerLight = "#f1f5f9", + TableLines = "#e2e8f0", // Table lines, elegant + LinesDefault = "#e2e8f0", + LinesInputs = "#cbd5e1", }, - - PaletteDark = new() + PaletteDark = new PaletteDark { - // **Primary Colors** - Primary = "#8a2be2", // Deep blue, used for highlights and key elements - Secondary = "#B0BEC5", // Light gray, secondary text color - - // **Background and Surface** - Background = "#121212", // Standard dark mode background color - Surface = "#1E1E1E", // Slightly lighter dark gray, used for surfaces like cards - - // **Text Colors** - TextPrimary = "#FFFFFF", // White, primary text color - TextSecondary = "#B0BEC5", // Light gray, secondary text color - TextDisabled = "rgba(255,255,255,0.38)", // Semi-transparent white, disabled text color - - // **Accent Colors** - Success = "#4CAF50", // Green, used for success messages - Warning = "#FFC107", // Amber, used for warning messages - Error = "#F44336", // Red, used for error messages - Info = "#2196F3", // Blue, used for informational messages + Primary = "#fafafa", // shadcn/ui white primary + PrimaryContrastText = "#020817", + PrimaryDarken = "#e4e4e7", + PrimaryLighten = "#ffffff", + Secondary = "#78716c", // Neutral gray + Success = "#22c55e", // Green for success + Info = "#0ea5e9", // Sky blue for info (shadcn sky-500) + InfoDarken = "#0284c7", // Darker sky blue (shadcn sky-600) + InfoLighten = "#38bdf8", // Lighter sky blue (shadcn sky-400) - // **Contrast Text for Accent Colors** - SuccessContrastText = "#FFFFFF", // White, text color for success messages - WarningContrastText = "#000000", // Black, text color for warning messages - ErrorContrastText = "#FFFFFF", // White, text color for error messages - InfoContrastText = "#FFFFFF", // White, text color for informational messages + Tertiary = "#6366f1", + TertiaryContrastText = "#fafafa", + TertiaryDarken = "#4f46e5", + TertiaryLighten = "#818cf8", - // **Dividers and Borders** - Divider = "rgba(255,255,255,0.12)", // Semi-transparent white, used for dividers + Warning = "#f59e0b", // Orange for warning + WarningContrastText = "#fafafa", + WarningDarken = "#d97706", + WarningLighten = "#fbbf24", - // **Hover and Ripple Effects** - HoverOpacity = 0.08, // Opacity for hover effects - RippleOpacity = 0.12, // Opacity for ripple effects + Error = "#ef4444", // Red for error + ErrorContrastText = "#fafafa", + ErrorDarken = "#dc2626", + ErrorLighten = "#f87171", - // **Overlay** - OverlayDark = "rgba(0,0,0,0.5)", // Semi-transparent black, used for overlays - OverlayLight = "rgba(30,30,30,0.4)", - // **App Bar and Navigation** - AppbarBackground = "#1E1E1E", // Same as surface color - AppbarText = "#FFFFFF", // White, app bar text color - DrawerBackground = "#1E1E1E", // Same as surface color - DrawerText = "#FFFFFF", // White, drawer text color + Black = "#020817", + White = "#fafafa", + Background = "#0c0a09", // shadcn/ui dark background + Surface = "#171717", // Deeper surface color + AppbarBackground = "#0c0a09", + AppbarText = "#fafafa", + DrawerText = "#fafafa", + DrawerIcon = "#a1a1aa", - // **Contrast Text for Primary Color** - PrimaryContrastText = "#FFFFFF", // White, text on primary color + DrawerBackground = "#0c0a09", + TextPrimary = "#fafafa", // shadcn/ui white text + TextSecondary = "#a1a1aa", // Neutral gray secondary text + TextDisabled = "rgba(161, 161, 170, 0.5)", + ActionDefault = "#e5e5e5", + ActionDisabled = "rgba(161, 161, 170, 0.3)", + ActionDisabledBackground = "rgba(161, 161, 170, 0.1)", + Divider = "rgba(255, 255, 255, 0.1)", // shadcn/ui divider color + DividerLight = "rgba(161, 161, 170, 0.1)", + TableLines = "rgba(255, 255, 255, 0.1)", + LinesDefault = "rgba(255, 255, 255, 0.1)", + LinesInputs = "rgba(161, 161, 170, 0.2)", + DarkContrastText = "#020817", + SecondaryContrastText = "#fafafa", + SecondaryDarken = "#57534e", + SecondaryLighten = "#a8a29e", + OverlayLight = "rgba(250, 250, 250, 0.1)", + OverlayDark = "rgba(0, 0, 0, 0.8)", }, diff --git a/src/CleanAspire.Domain/CleanAspire.Domain.csproj b/src/CleanAspire.Domain/CleanAspire.Domain.csproj index 194ec92a..2e615e7d 100644 --- a/src/CleanAspire.Domain/CleanAspire.Domain.csproj +++ b/src/CleanAspire.Domain/CleanAspire.Domain.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/CleanAspire.Infrastructure/CleanAspire.Infrastructure.csproj b/src/CleanAspire.Infrastructure/CleanAspire.Infrastructure.csproj index 9d968604..56e3667e 100644 --- a/src/CleanAspire.Infrastructure/CleanAspire.Infrastructure.csproj +++ b/src/CleanAspire.Infrastructure/CleanAspire.Infrastructure.csproj @@ -10,25 +10,25 @@ - - + + - - - - - + + + + + - - - - + + + + - + diff --git a/src/CleanAspire.ServiceDefaults/CleanAspire.ServiceDefaults.csproj b/src/CleanAspire.ServiceDefaults/CleanAspire.ServiceDefaults.csproj index 24c3dc85..412ce4b5 100644 --- a/src/CleanAspire.ServiceDefaults/CleanAspire.ServiceDefaults.csproj +++ b/src/CleanAspire.ServiceDefaults/CleanAspire.ServiceDefaults.csproj @@ -13,13 +13,13 @@ - - - - - - - + + + + + + + diff --git a/src/CleanAspire.WebApp/CleanAspire.WebApp.csproj b/src/CleanAspire.WebApp/CleanAspire.WebApp.csproj index 9e6c3699..ab7b2390 100644 --- a/src/CleanAspire.WebApp/CleanAspire.WebApp.csproj +++ b/src/CleanAspire.WebApp/CleanAspire.WebApp.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/src/Migrators/Migrators.MSSQL/Migrators.MSSQL.csproj b/src/Migrators/Migrators.MSSQL/Migrators.MSSQL.csproj index 850f8988..3b2521c3 100644 --- a/src/Migrators/Migrators.MSSQL/Migrators.MSSQL.csproj +++ b/src/Migrators/Migrators.MSSQL/Migrators.MSSQL.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/Migrators/Migrators.PostgreSQL/Migrators.PostgreSQL.csproj b/src/Migrators/Migrators.PostgreSQL/Migrators.PostgreSQL.csproj index 1eae7421..9b21c3bd 100644 --- a/src/Migrators/Migrators.PostgreSQL/Migrators.PostgreSQL.csproj +++ b/src/Migrators/Migrators.PostgreSQL/Migrators.PostgreSQL.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Migrators/Migrators.SQLite/Migrators.SQLite.csproj b/src/Migrators/Migrators.SQLite/Migrators.SQLite.csproj index e0f96898..f123ba40 100644 --- a/src/Migrators/Migrators.SQLite/Migrators.SQLite.csproj +++ b/src/Migrators/Migrators.SQLite/Migrators.SQLite.csproj @@ -9,7 +9,7 @@ - + diff --git a/tests/CleanAspire.Tests/CleanAspire.Tests.csproj b/tests/CleanAspire.Tests/CleanAspire.Tests.csproj index c4a5179f..16a85118 100644 --- a/tests/CleanAspire.Tests/CleanAspire.Tests.csproj +++ b/tests/CleanAspire.Tests/CleanAspire.Tests.csproj @@ -10,14 +10,14 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - +