diff --git a/LumexUI.sln b/LumexUI.sln index 7a76b2ed..c2bb0a56 100644 --- a/LumexUI.sln +++ b/LumexUI.sln @@ -12,12 +12,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LumexUI.Utilities", "src\LumexUI.Utilities\LumexUI.Utilities.csproj", "{92A1C629-AB3E-4264-B03D-407E09162902}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LumexUI.Docs", "docs\LumexUI.Docs\LumexUI.Docs.csproj", "{04BC4C88-2992-450D-BF7C-BD49BFE6CBDF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LumexUI.Docs.Server", "docs\LumexUI.Docs.Server\LumexUI.Docs.Server.csproj", "{85A5E6D0-116C-4EAF-A9A8-7F074625C1F0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LumexUI.Docs.Client", "docs\LumexUI.Docs.Client\LumexUI.Docs.Client.csproj", "{4F70D87A-4766-4249-9B74-0B63A987BB15}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LumexUI.Docs.Generator", "docs\LumexUI.Docs.Generator\LumexUI.Docs.Generator.csproj", "{157B8BDD-2EEF-4A69-AEA5-CAA3650CF73C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5DBC44B8-5B92-4504-8B8F-91A1672251E6}" @@ -28,6 +22,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{898610F1 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LumexUI.Tests", "tests\LumexUI.Tests\LumexUI.Tests.csproj", "{06E849E9-A8EA-410B-83BC-0366524C4953}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LumexUI.Docs", "docs\LumexUI.Docs\LumexUI.Docs\LumexUI.Docs.csproj", "{2A341376-2409-422C-A7A9-1AE6E86F91D9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LumexUI.Docs.Client", "docs\LumexUI.Docs\LumexUI.Docs.Client\LumexUI.Docs.Client.csproj", "{6CE81AB3-399F-44CB-9DBE-9A8D62B07C8A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -42,18 +40,6 @@ Global {92A1C629-AB3E-4264-B03D-407E09162902}.Debug|Any CPU.Build.0 = Debug|Any CPU {92A1C629-AB3E-4264-B03D-407E09162902}.Release|Any CPU.ActiveCfg = Release|Any CPU {92A1C629-AB3E-4264-B03D-407E09162902}.Release|Any CPU.Build.0 = Release|Any CPU - {04BC4C88-2992-450D-BF7C-BD49BFE6CBDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04BC4C88-2992-450D-BF7C-BD49BFE6CBDF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04BC4C88-2992-450D-BF7C-BD49BFE6CBDF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04BC4C88-2992-450D-BF7C-BD49BFE6CBDF}.Release|Any CPU.Build.0 = Release|Any CPU - {85A5E6D0-116C-4EAF-A9A8-7F074625C1F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85A5E6D0-116C-4EAF-A9A8-7F074625C1F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85A5E6D0-116C-4EAF-A9A8-7F074625C1F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85A5E6D0-116C-4EAF-A9A8-7F074625C1F0}.Release|Any CPU.Build.0 = Release|Any CPU - {4F70D87A-4766-4249-9B74-0B63A987BB15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F70D87A-4766-4249-9B74-0B63A987BB15}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F70D87A-4766-4249-9B74-0B63A987BB15}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F70D87A-4766-4249-9B74-0B63A987BB15}.Release|Any CPU.Build.0 = Release|Any CPU {157B8BDD-2EEF-4A69-AEA5-CAA3650CF73C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {157B8BDD-2EEF-4A69-AEA5-CAA3650CF73C}.Debug|Any CPU.Build.0 = Debug|Any CPU {157B8BDD-2EEF-4A69-AEA5-CAA3650CF73C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -62,6 +48,14 @@ Global {06E849E9-A8EA-410B-83BC-0366524C4953}.Debug|Any CPU.Build.0 = Debug|Any CPU {06E849E9-A8EA-410B-83BC-0366524C4953}.Release|Any CPU.ActiveCfg = Release|Any CPU {06E849E9-A8EA-410B-83BC-0366524C4953}.Release|Any CPU.Build.0 = Release|Any CPU + {2A341376-2409-422C-A7A9-1AE6E86F91D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A341376-2409-422C-A7A9-1AE6E86F91D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A341376-2409-422C-A7A9-1AE6E86F91D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A341376-2409-422C-A7A9-1AE6E86F91D9}.Release|Any CPU.Build.0 = Release|Any CPU + {6CE81AB3-399F-44CB-9DBE-9A8D62B07C8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CE81AB3-399F-44CB-9DBE-9A8D62B07C8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CE81AB3-399F-44CB-9DBE-9A8D62B07C8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CE81AB3-399F-44CB-9DBE-9A8D62B07C8A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -69,11 +63,10 @@ Global GlobalSection(NestedProjects) = preSolution {F5DCF265-756B-4B25-AECA-15B9FF2DCB66} = {5DBC44B8-5B92-4504-8B8F-91A1672251E6} {92A1C629-AB3E-4264-B03D-407E09162902} = {5DBC44B8-5B92-4504-8B8F-91A1672251E6} - {04BC4C88-2992-450D-BF7C-BD49BFE6CBDF} = {3F4DE3FA-2636-440C-ACCC-137BAD95BAC4} - {85A5E6D0-116C-4EAF-A9A8-7F074625C1F0} = {3F4DE3FA-2636-440C-ACCC-137BAD95BAC4} - {4F70D87A-4766-4249-9B74-0B63A987BB15} = {3F4DE3FA-2636-440C-ACCC-137BAD95BAC4} {157B8BDD-2EEF-4A69-AEA5-CAA3650CF73C} = {3F4DE3FA-2636-440C-ACCC-137BAD95BAC4} {06E849E9-A8EA-410B-83BC-0366524C4953} = {898610F1-A6C1-422C-84C9-C1E386957F31} + {2A341376-2409-422C-A7A9-1AE6E86F91D9} = {3F4DE3FA-2636-440C-ACCC-137BAD95BAC4} + {6CE81AB3-399F-44CB-9DBE-9A8D62B07C8A} = {3F4DE3FA-2636-440C-ACCC-137BAD95BAC4} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1B8CD55B-BEF0-42D1-936A-BC1FB5D02CE2} diff --git a/docs/LumexUI.Docs.Client/LumexUI.Docs.Client.csproj b/docs/LumexUI.Docs.Client/LumexUI.Docs.Client.csproj deleted file mode 100644 index 25dc95aa..00000000 --- a/docs/LumexUI.Docs.Client/LumexUI.Docs.Client.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - - - - - - diff --git a/docs/LumexUI.Docs.Client/Program.cs b/docs/LumexUI.Docs.Client/Program.cs deleted file mode 100644 index 88094f40..00000000 --- a/docs/LumexUI.Docs.Client/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) LumexUI 2024 -// LumexUI licenses this file to you under the MIT license -// See the license here https://github.com/LumexUI/lumexui/blob/main/LICENSE - -using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; - -using TailwindMerge.Extensions; - -namespace LumexUI.Docs.Client; - -internal class Program -{ - private static async Task Main( string[] args ) - { - WebAssemblyHostBuilder builder = WebAssemblyHostBuilder.CreateDefault( args ); - builder.RootComponents.Add( "#app" ); - builder.RootComponents.Add( "head::after" ); - - builder.Services.AddScoped( sp => new HttpClient { BaseAddress = new Uri( builder.HostEnvironment.BaseAddress ) } ); - builder.Services.AddTailwindMerge(); - - await builder.Build().RunAsync(); - } -} \ No newline at end of file diff --git a/docs/LumexUI.Docs.Client/Properties/launchSettings.json b/docs/LumexUI.Docs.Client/Properties/launchSettings.json deleted file mode 100644 index 47a653f6..00000000 --- a/docs/LumexUI.Docs.Client/Properties/launchSettings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:51561", - "sslPort": 44341 - } - }, - "profiles": { - "LumexUI.Docs": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:7039;http://localhost:5015", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/docs/LumexUI.Docs.Client/wwwroot/index.html b/docs/LumexUI.Docs.Client/wwwroot/index.html deleted file mode 100644 index 1c0497ea..00000000 --- a/docs/LumexUI.Docs.Client/wwwroot/index.html +++ /dev/null @@ -1,6 +0,0 @@ -

You're in the wrong place.

- -

- Don't try to run the webassembly project directly, because it needs a server to fetch data from. - Instead, run the server project which hosts this webassembly application. -

diff --git a/docs/LumexUI.Docs.Server/LumexUI.Docs.Server.csproj b/docs/LumexUI.Docs.Server/LumexUI.Docs.Server.csproj deleted file mode 100644 index f5da2f3c..00000000 --- a/docs/LumexUI.Docs.Server/LumexUI.Docs.Server.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - net8.0 - enable - enable - true - - - - - - - - - $(DefineConstants);ENABLE_WASM_HOSTING - - - - - - - diff --git a/docs/LumexUI.Docs.Server/Pages/Index.cshtml b/docs/LumexUI.Docs.Server/Pages/Index.cshtml deleted file mode 100644 index e2fd691d..00000000 --- a/docs/LumexUI.Docs.Server/Pages/Index.cshtml +++ /dev/null @@ -1,14 +0,0 @@ -@page - -

Choose a hosting model:

- - - -@{ #if !ENABLE_WASM_HOSTING } -

Note: To enable WebAssembly hosting, edit the project file and change EnableWebAssemblyHosting to true.

-@{ #endif } diff --git a/docs/LumexUI.Docs.Server/Pages/_ServerHost.cshtml b/docs/LumexUI.Docs.Server/Pages/_ServerHost.cshtml deleted file mode 100644 index f9dea7da..00000000 --- a/docs/LumexUI.Docs.Server/Pages/_ServerHost.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@page -@namespace LumexUI.Docs.Server.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@{ - Layout = "_ServerLayout"; -} - - diff --git a/docs/LumexUI.Docs.Server/Pages/_ServerLayout.cshtml b/docs/LumexUI.Docs.Server/Pages/_ServerLayout.cshtml deleted file mode 100644 index e02cf92c..00000000 --- a/docs/LumexUI.Docs.Server/Pages/_ServerLayout.cshtml +++ /dev/null @@ -1,30 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@namespace LumexUI.Docs.Server.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - - - - - - - - - - - @RenderBody() - -
- - An error has occurred. This application may no longer respond until reloaded. - - - An unhandled exception has occurred. See browser dev tools for details. - - Reload - 🗙 -
- - - - diff --git a/docs/LumexUI.Docs.Server/Pages/_WebAssemblyHost.cshtml b/docs/LumexUI.Docs.Server/Pages/_WebAssemblyHost.cshtml deleted file mode 100644 index 4029616a..00000000 --- a/docs/LumexUI.Docs.Server/Pages/_WebAssemblyHost.cshtml +++ /dev/null @@ -1,25 +0,0 @@ -@page - - - - - - - LumexUI - Blazor Components Library - - - - - -
Loading...
- -
- An unhandled error has occurred. - Reload - 🗙 -
- - - - - diff --git a/docs/LumexUI.Docs.Server/Program.cs b/docs/LumexUI.Docs.Server/Program.cs deleted file mode 100644 index 81e089c3..00000000 --- a/docs/LumexUI.Docs.Server/Program.cs +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) LumexUI 2024 -// LumexUI licenses this file to you under the MIT license -// See the license here https://github.com/LumexUI/lumexui/blob/main/LICENSE - -using TailwindMerge.Extensions; - -var builder = WebApplication.CreateBuilder( args ); - -// Add services to the container. - -builder.Services.AddControllersWithViews(); -builder.Services.AddRazorPages(); -builder.Services.AddServerSideBlazor(); -builder.Services.AddTailwindMerge(); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if( app.Environment.IsDevelopment() ) -{ -#if ENABLE_WASM_HOSTING - app.UseWebAssemblyDebugging(); -#endif -} -else -{ - app.UseExceptionHandler( "/Error" ); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); -} - -app.UseHttpsRedirection(); -app.UseRouting(); -app.MapRazorPages(); -app.MapControllers(); - -#if ENABLE_WASM_HOSTING -ApplyHotReloadWorkaround( app ); -app.Map( "/webassembly", app => -{ - app.UseBlazorFrameworkFiles(); - app.UseStaticFiles(); - app.UseEndpoints( e => e.MapFallbackToPage( "webassembly/{*path:nonfile}", "/_WebAssemblyHost" ) ); -} ); - -// This is a temporary workaround needed until the next patch release of ASP.NET Core -// The underlying bug was fixed in https://github.com/dotnet/sdk/pull/25534 but that update hasn't shipped yet -void ApplyHotReloadWorkaround( WebApplication app ) -{ - app.Use( ( ctx, next ) => - { - if( ctx.Request.Path == "/webassembly/_framework/blazor-hotreload" ) - { - ctx.Response.Redirect( "/_framework/blazor-hotreload" ); - return Task.CompletedTask; - } - - return next( ctx ); - } ); -} -#endif - -app.Map( "/server", app => -{ - app.UseStaticFiles(); - app.UseEndpoints( endpoints => endpoints.MapBlazorHub( "/server/_blazor" ) ); - app.UseEndpoints( e => e.MapFallbackToPage( "server/{*path:nonfile}", "/_ServerHost" ) ); -} ); - -app.Run(); diff --git a/docs/LumexUI.Docs/App.razor b/docs/LumexUI.Docs/App.razor deleted file mode 100644 index 032a3fb0..00000000 --- a/docs/LumexUI.Docs/App.razor +++ /dev/null @@ -1,14 +0,0 @@ -@namespace LumexUI.Docs - - - - - - - - Not found - -

Sorry, there's nothing at this address.

-
-
-
diff --git a/docs/LumexUI.Docs/LumexUI.Docs.Client/LumexUI.Docs.Client.csproj b/docs/LumexUI.Docs/LumexUI.Docs.Client/LumexUI.Docs.Client.csproj new file mode 100644 index 00000000..1bf3df35 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs.Client/LumexUI.Docs.Client.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + enable + enable + true + Default + + + + + + + diff --git a/docs/LumexUI.Docs/LumexUI.Docs.Client/Pages/Counter.razor b/docs/LumexUI.Docs/LumexUI.Docs.Client/Pages/Counter.razor new file mode 100644 index 00000000..e7d4f94e --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs.Client/Pages/Counter.razor @@ -0,0 +1,19 @@ +@page "/counter" +@rendermode InteractiveAuto + +Counter + +

Counter

+ +

Current count: @currentCount

+ + + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } +} diff --git a/docs/LumexUI.Docs/LumexUI.Docs.Client/Program.cs b/docs/LumexUI.Docs/LumexUI.Docs.Client/Program.cs new file mode 100644 index 00000000..a427b83d --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs.Client/Program.cs @@ -0,0 +1,11 @@ +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; + +internal class Program +{ + private static async global::System.Threading.Tasks.Task Main( string[] args ) + { + var builder = WebAssemblyHostBuilder.CreateDefault( args ); + + await builder.Build().RunAsync(); + } +} \ No newline at end of file diff --git a/docs/LumexUI.Docs/LumexUI.Docs.Client/_Imports.razor b/docs/LumexUI.Docs/LumexUI.Docs.Client/_Imports.razor new file mode 100644 index 00000000..7698a6be --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs.Client/_Imports.razor @@ -0,0 +1,11 @@ +@using System.Net.Http +@using System.Net.Http.Json + +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop + +@using LumexUI.Docs.Client diff --git a/docs/LumexUI.Docs.Server/appsettings.Development.json b/docs/LumexUI.Docs/LumexUI.Docs.Client/wwwroot/appsettings.Development.json similarity index 100% rename from docs/LumexUI.Docs.Server/appsettings.Development.json rename to docs/LumexUI.Docs/LumexUI.Docs.Client/wwwroot/appsettings.Development.json diff --git a/docs/LumexUI.Docs/LumexUI.Docs.Client/wwwroot/appsettings.json b/docs/LumexUI.Docs/LumexUI.Docs.Client/wwwroot/appsettings.json new file mode 100644 index 00000000..0c208ae9 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs.Client/wwwroot/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/docs/LumexUI.Docs/LumexUI.Docs.csproj b/docs/LumexUI.Docs/LumexUI.Docs.csproj deleted file mode 100644 index 0ec99678..00000000 --- a/docs/LumexUI.Docs/LumexUI.Docs.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/App.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/App.razor new file mode 100644 index 00000000..7d33ac53 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/App.razor @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/MainLayout.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/MainLayout.razor new file mode 100644 index 00000000..5a24bb13 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/MainLayout.razor @@ -0,0 +1,23 @@ +@inherits LayoutComponentBase + +
+ + +
+
+ About +
+ +
+ @Body +
+
+
+ +
+ An unhandled error has occurred. + Reload + 🗙 +
diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/MainLayout.razor.css b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/MainLayout.razor.css new file mode 100644 index 00000000..038baf17 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/MainLayout.razor.css @@ -0,0 +1,96 @@ +.page { + position: relative; + display: flex; + flex-direction: column; +} + +main { + flex: 1; +} + +.sidebar { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { + text-decoration: underline; + } + + .top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row { + justify-content: space-between; + } + + .top-row ::deep a, .top-row ::deep .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row, article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/NavMenu.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/NavMenu.razor new file mode 100644 index 00000000..58217305 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/NavMenu.razor @@ -0,0 +1,30 @@ + + + + + + diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/NavMenu.razor.css b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/NavMenu.razor.css new file mode 100644 index 00000000..4e15395e --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Layout/NavMenu.razor.css @@ -0,0 +1,105 @@ +.navbar-toggler { + appearance: none; + cursor: pointer; + width: 3.5rem; + height: 2.5rem; + color: white; + position: absolute; + top: 0.5rem; + right: 1rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1); +} + +.navbar-toggler:checked { + background-color: rgba(255, 255, 255, 0.5); +} + +.top-row { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand { + font-size: 1.1rem; +} + +.bi { + display: inline-block; + position: relative; + width: 1.25rem; + height: 1.25rem; + margin-right: 0.75rem; + top: -1px; + background-size: cover; +} + +.bi-house-door-fill-nav-menu { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E"); +} + +.bi-plus-square-fill-nav-menu { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E"); +} + +.bi-list-nested-nav-menu { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E"); +} + +.nav-item { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type { + padding-top: 1rem; + } + + .nav-item:last-of-type { + padding-bottom: 1rem; + } + + .nav-item ::deep .nav-link { + color: #d7d7d7; + background: none; + border: none; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + width: 100%; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.37); + color: white; +} + +.nav-item ::deep .nav-link:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +.nav-scrollable { + display: none; +} + +.navbar-toggler:checked ~ .nav-scrollable { + display: block; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .nav-scrollable { + /* Never collapse the sidebar for wide screens */ + display: block; + + /* Allow sidebar to scroll for tall menus */ + height: calc(100vh - 3.5rem); + overflow-y: auto; + } +} diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Error.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Error.razor new file mode 100644 index 00000000..576cc2d2 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Error.razor @@ -0,0 +1,36 @@ +@page "/Error" +@using System.Diagnostics + +Error + +

Error.

+

An error occurred while processing your request.

+ +@if (ShowRequestId) +{ +

+ Request ID: @RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

+ +@code{ + [CascadingParameter] + private HttpContext? HttpContext { get; set; } + + private string? RequestId { get; set; } + private bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + protected override void OnInitialized() => + RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier; +} diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Home.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Home.razor new file mode 100644 index 00000000..9001e0bd --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Home.razor @@ -0,0 +1,7 @@ +@page "/" + +Home + +

Hello, world!

+ +Welcome to your new app. diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Weather.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Weather.razor new file mode 100644 index 00000000..43a1ecbe --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Pages/Weather.razor @@ -0,0 +1,64 @@ +@page "/weather" +@attribute [StreamRendering] + +Weather + +

Weather

+ +

This component demonstrates showing data.

+ +@if (forecasts == null) +{ +

Loading...

+} +else +{ + + + + + + + + + + + @foreach (var forecast in forecasts) + { + + + + + + + } + +
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
+} + +@code { + private WeatherForecast[]? forecasts; + + protected override async Task OnInitializedAsync() + { + // Simulate asynchronous loading to demonstrate streaming rendering + await Task.Delay(500); + + var startDate = DateOnly.FromDateTime(DateTime.Now); + var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; + forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = startDate.AddDays(index), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = summaries[Random.Shared.Next(summaries.Length)] + }).ToArray(); + } + + private class WeatherForecast + { + public DateOnly Date { get; set; } + public int TemperatureC { get; set; } + public string? Summary { get; set; } + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + } +} diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/Routes.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/Routes.razor new file mode 100644 index 00000000..d39c7e89 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/Routes.razor @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Components/_Imports.razor b/docs/LumexUI.Docs/LumexUI.Docs/Components/_Imports.razor new file mode 100644 index 00000000..6fb638f4 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Components/_Imports.razor @@ -0,0 +1,11 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using LumexUI.Docs +@using LumexUI.Docs.Client +@using LumexUI.Docs.Components diff --git a/docs/LumexUI.Docs/LumexUI.Docs/LumexUI.Docs.csproj b/docs/LumexUI.Docs/LumexUI.Docs/LumexUI.Docs.csproj new file mode 100644 index 00000000..6d9463eb --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/LumexUI.Docs.csproj @@ -0,0 +1,14 @@ + + + + net8.0 + enable + enable + + + + + + + + diff --git a/docs/LumexUI.Docs/LumexUI.Docs/Program.cs b/docs/LumexUI.Docs/LumexUI.Docs/Program.cs new file mode 100644 index 00000000..d1684d4e --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/Program.cs @@ -0,0 +1,41 @@ +using LumexUI.Docs.Client.Pages; +using LumexUI.Docs.Components; + +internal class Program +{ + private static void Main( string[] args ) + { + var builder = WebApplication.CreateBuilder( args ); + + // Add services to the container. + builder.Services.AddRazorComponents() + .AddInteractiveServerComponents() + .AddInteractiveWebAssemblyComponents(); + + var app = builder.Build(); + + // Configure the HTTP request pipeline. + if( app.Environment.IsDevelopment() ) + { + app.UseWebAssemblyDebugging(); + } + else + { + app.UseExceptionHandler( "/Error", createScopeForErrors: true ); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); + } + + app.UseHttpsRedirection(); + + app.UseStaticFiles(); + app.UseAntiforgery(); + + app.MapRazorComponents() + .AddInteractiveServerRenderMode() + .AddInteractiveWebAssemblyRenderMode() + .AddAdditionalAssemblies( typeof( LumexUI.Docs.Client._Imports ).Assembly ); + + app.Run(); + } +} \ No newline at end of file diff --git a/docs/LumexUI.Docs.Server/Properties/launchSettings.json b/docs/LumexUI.Docs/LumexUI.Docs/Properties/launchSettings.json similarity index 56% rename from docs/LumexUI.Docs.Server/Properties/launchSettings.json rename to docs/LumexUI.Docs/LumexUI.Docs/Properties/launchSettings.json index 55ed3cab..ded3d5c5 100644 --- a/docs/LumexUI.Docs.Server/Properties/launchSettings.json +++ b/docs/LumexUI.Docs/LumexUI.Docs/Properties/launchSettings.json @@ -1,19 +1,30 @@ { + "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "http://localhost:51561", - "sslPort": 44341 + "applicationUrl": "http://localhost:8548", + "sslPort": 44335 } }, "profiles": { - "LumexUI.Docs.Server": { + "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:7039;http://localhost:5015", + "applicationUrl": "http://localhost:5227", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:7062;http://localhost:5227", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/docs/LumexUI.Docs/LumexUI.Docs/appsettings.Development.json b/docs/LumexUI.Docs/LumexUI.Docs/appsettings.Development.json new file mode 100644 index 00000000..0c208ae9 --- /dev/null +++ b/docs/LumexUI.Docs/LumexUI.Docs/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/docs/LumexUI.Docs.Server/appsettings.json b/docs/LumexUI.Docs/LumexUI.Docs/appsettings.json similarity index 100% rename from docs/LumexUI.Docs.Server/appsettings.json rename to docs/LumexUI.Docs/LumexUI.Docs/appsettings.json diff --git a/docs/LumexUI.Docs/Styles/globals.css b/docs/LumexUI.Docs/LumexUI.Docs/wwwroot/app.css similarity index 73% rename from docs/LumexUI.Docs/Styles/globals.css rename to docs/LumexUI.Docs/LumexUI.Docs/wwwroot/app.css index 33bfd8cd..2bd9b789 100644 --- a/docs/LumexUI.Docs/Styles/globals.css +++ b/docs/LumexUI.Docs/LumexUI.Docs/wwwroot/app.css @@ -1,25 +1,40 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -#blazor-error-ui { - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - - #blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; - } +html, body { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +a, .btn-link { + color: #006bb7; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { + box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; +} + +.content { + padding-top: 1.1rem; +} + +h1:focus { + outline: none; +} + +.valid.modified:not([type=checkbox]) { + outline: 1px solid #26b050; +} + +.invalid { + outline: 1px solid #e50000; +} + +.validation-message { + color: #e50000; +} .blazor-error-boundary { background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; @@ -30,3 +45,7 @@ .blazor-error-boundary::after { content: "An error has occurred." } + +.darker-border-checkbox.form-check-input { + border-color: #929292; +} diff --git a/docs/LumexUI.Docs/LumexUI.Docs/wwwroot/favicon.png b/docs/LumexUI.Docs/LumexUI.Docs/wwwroot/favicon.png new file mode 100644 index 00000000..8422b596 Binary files /dev/null and b/docs/LumexUI.Docs/LumexUI.Docs/wwwroot/favicon.png differ diff --git a/docs/LumexUI.Docs/Shared/MainLayout.razor b/docs/LumexUI.Docs/Shared/MainLayout.razor deleted file mode 100644 index 0830b493..00000000 --- a/docs/LumexUI.Docs/Shared/MainLayout.razor +++ /dev/null @@ -1 +0,0 @@ -@inherits LayoutComponentBase diff --git a/docs/LumexUI.Docs/_Imports.razor b/docs/LumexUI.Docs/_Imports.razor deleted file mode 100644 index 3f9d344f..00000000 --- a/docs/LumexUI.Docs/_Imports.razor +++ /dev/null @@ -1,6 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Rendering -@using Microsoft.JSInterop - -@using LumexUI.Docs.Shared diff --git a/docs/LumexUI.Docs/tailwind.config.js b/docs/LumexUI.Docs/tailwind.config.js deleted file mode 100644 index d667bc2b..00000000 --- a/docs/LumexUI.Docs/tailwind.config.js +++ /dev/null @@ -1,174 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: [ - "./Shared/**/*.razor", - "../../src/LumexUI/Styles/*.cs" - ], - theme: { - extend: { - colors: { - /** Base */ - background: { - DEFAULT: "hsl(var(--lumex-background) / )" - }, - foreground: { - 50: "hsl(var(--lumex-foreground-50) / )", - 100: "hsl(var(--lumex-foreground-100) / )", - 200: "hsl(var(--lumex-foreground-200) / )", - 300: "hsl(var(--lumex-foreground-300) / )", - 400: "hsl(var(--lumex-foreground-400) / )", - 500: "hsl(var(--lumex-foreground-500) / )", - 600: "hsl(var(--lumex-foreground-600) / )", - 700: "hsl(var(--lumex-foreground-700) / )", - 800: "hsl(var(--lumex-foreground-800) / )", - 900: "hsl(var(--lumex-foreground-900) / )", - DEFAULT: "hsl(var(--lumex-foreground) / )" - }, - focus: { - DEFAULT: "hsl(var(--lumex-focus) / )" - }, - overlay: { - DEFAULT: "hsl(var(--lumex-overlay) / )" - }, - divider: { - DEFAULT: "hsl(var(--lumex-divider) / var(--lumex-divider-opacity ,))" - }, - - /** Default */ - default: { - 50: "hsl(var(--lumex-default-50) / )", - 100: "hsl(var(--lumex-default-100) / )", - 200: "hsl(var(--lumex-default-200) / )", - 300: "hsl(var(--lumex-default-300) / )", - 400: "hsl(var(--lumex-default-400) / )", - 500: "hsl(var(--lumex-default-500) / )", - 600: "hsl(var(--lumex-default-600) / )", - 700: "hsl(var(--lumex-default-700) / )", - 800: "hsl(var(--lumex-default-800) / )", - 900: "hsl(var(--lumex-default-900) / )", - DEFAULT: "hsl(var(--lumex-default) / )", - foreground: "hsl(var(--lumex-default-foreground) / )" - }, - - /** Primary */ - primary: { - 50: "hsl(var(--lumex-primary-50) / )", - 100: "hsl(var(--lumex-primary-100) / )", - 200: "hsl(var(--lumex-primary-200) / )", - 300: "hsl(var(--lumex-primary-300) / )", - 400: "hsl(var(--lumex-primary-400) / )", - 500: "hsl(var(--lumex-primary-500) / )", - 600: "hsl(var(--lumex-primary-600) / )", - 700: "hsl(var(--lumex-primary-700) / )", - 800: "hsl(var(--lumex-primary-800) / )", - 900: "hsl(var(--lumex-primary-900) / )", - DEFAULT: "hsl(var(--lumex-primary) / )", - foreground: "hsl(var(--lumex-primary-foreground) / )" - }, - - /** Secondary */ - secondary: { - 50: "hsl(var(--lumex-secondary-50) / )", - 100: "hsl(var(--lumex-secondary-100) / )", - 200: "hsl(var(--lumex-secondary-200) / )", - 300: "hsl(var(--lumex-secondary-300) / )", - 400: "hsl(var(--lumex-secondary-400) / )", - 500: "hsl(var(--lumex-secondary-500) / )", - 600: "hsl(var(--lumex-secondary-600) / )", - 700: "hsl(var(--lumex-secondary-700) / )", - 800: "hsl(var(--lumex-secondary-800) / )", - 900: "hsl(var(--lumex-secondary-900) / )", - DEFAULT: "hsl(var(--lumex-secondary) / )", - foreground: "hsl(var(--lumex-secondary-foreground) / )" - }, - - /** Success */ - success: { - 50: "hsl(var(--lumex-success-50) / )", - 100: "hsl(var(--lumex-success-100) / )", - 200: "hsl(var(--lumex-success-200) / )", - 300: "hsl(var(--lumex-success-300) / )", - 400: "hsl(var(--lumex-success-400) / )", - 500: "hsl(var(--lumex-success-500) / )", - 600: "hsl(var(--lumex-success-600) / )", - 700: "hsl(var(--lumex-success-700) / )", - 800: "hsl(var(--lumex-success-800) / )", - 900: "hsl(var(--lumex-success-900) / )", - DEFAULT: "hsl(var(--lumex-success) / )", - foreground: "hsl(var(--lumex-success-foreground) / )" - }, - - /** Warning */ - warning: { - 50: "hsl(var(--lumex-warning-50) / )", - 100: "hsl(var(--lumex-warning-100) / )", - 200: "hsl(var(--lumex-warning-200) / )", - 300: "hsl(var(--lumex-warning-300) / )", - 400: "hsl(var(--lumex-warning-400) / )", - 500: "hsl(var(--lumex-warning-500) / )", - 600: "hsl(var(--lumex-warning-600) / )", - 700: "hsl(var(--lumex-warning-700) / )", - 800: "hsl(var(--lumex-warning-800) / )", - 900: "hsl(var(--lumex-warning-900) / )", - DEFAULT: "hsl(var(--lumex-warning) / )", - foreground: "hsl(var(--lumex-warning-foreground) / )" - }, - - /** Danger */ - danger: { - 50: "hsl(var(--lumex-danger-50) / )", - 100: "hsl(var(--lumex-danger-100) / )", - 200: "hsl(var(--lumex-danger-200) / )", - 300: "hsl(var(--lumex-danger-300) / )", - 400: "hsl(var(--lumex-danger-400) / )", - 500: "hsl(var(--lumex-danger-500) / )", - 600: "hsl(var(--lumex-danger-600) / )", - 700: "hsl(var(--lumex-danger-700) / )", - 800: "hsl(var(--lumex-danger-800) / )", - 900: "hsl(var(--lumex-danger-900) / )", - DEFAULT: "hsl(var(--lumex-danger) / )", - foreground: "hsl(var(--lumex-danger-foreground) / )" - }, - - /** Info */ - info: { - 50: "hsl(var(--lumex-info-50) / )", - 100: "hsl(var(--lumex-info-100) / )", - 200: "hsl(var(--lumex-info-200) / )", - 300: "hsl(var(--lumex-info-300) / )", - 400: "hsl(var(--lumex-info-400) / )", - 500: "hsl(var(--lumex-info-500) / )", - 600: "hsl(var(--lumex-info-600) / )", - 700: "hsl(var(--lumex-info-700) / )", - 800: "hsl(var(--lumex-info-800) / )", - 900: "hsl(var(--lumex-info-900) / )", - DEFAULT: "hsl(var(--lumex-info) / )", - foreground: "hsl(var(--lumex-info-foreground) / )" - } - }, - fontSize: { - tiny: ["var(--lumex-font-size-tiny)", "var(--lumex-line-height-tiny)"], - small: ["var(--lumex-font-size-small)", "var(--lumex-line-height-small)"], - medium: ["var(--lumex-font-size-medium)", "var(--lumex-line-height-medium)"], - large: ["var(--lumex-font-size-large)", "var(--lumex-line-height-large)"] - }, - borderRadius: { - small: "var(--lumex-radius-small)", - medium: "var(--lumex-radius-medium)", - large: "var(--lumex-radius-large)" - }, - boxShadow: { - small: "var(--lumex-box-shadow-small)", - medium: "var(--lumex-box-shadow-medium)", - large: "var(--lumex-box-shadow-large)" - }, - opacity: { - divider: "var(--lumex-divider-opacity)", - disabled: "var(--lumex-disabled-opacity)", - focus: "var(--lumex-focus-opacity)", - hover: "var(--lumex-hover-opacity)" - }, - }, - }, - plugins: [], -} diff --git a/docs/LumexUI.Docs/wwwroot/assets/fonts/FiraCode-VariableFont_wght.ttf b/docs/LumexUI.Docs/wwwroot/assets/fonts/FiraCode-VariableFont_wght.ttf deleted file mode 100644 index 5655ed51..00000000 Binary files a/docs/LumexUI.Docs/wwwroot/assets/fonts/FiraCode-VariableFont_wght.ttf and /dev/null differ diff --git a/docs/LumexUI.Docs/wwwroot/assets/fonts/Inter-VariableFont_slnt,wght.ttf b/docs/LumexUI.Docs/wwwroot/assets/fonts/Inter-VariableFont_slnt,wght.ttf deleted file mode 100644 index e7247087..00000000 Binary files a/docs/LumexUI.Docs/wwwroot/assets/fonts/Inter-VariableFont_slnt,wght.ttf and /dev/null differ