From 44ba06898c485866ea9753de1ea8bfbc0a04b31d Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Mon, 3 Jan 2022 17:19:33 +0100 Subject: [PATCH 01/10] Initial template apps creation --- .../FluentUIBlazorServerApp.sln | 25 ++++ .../FluentUIBlazorServerApp/App.razor | 13 ++ .../Data/WeatherForecast.cs | 13 ++ .../Data/WeatherForecastService.cs | 20 +++ .../FluentUIBlazorServerApp.csproj | 13 ++ .../Pages/Counter.razor | 18 +++ .../Pages/FetchData.razor | 48 +++++++ .../FluentUIBlazorServerApp/Pages/Index.razor | 15 +++ .../Pages/Index.razor.css | 26 ++++ .../FluentUIBlazorServerApp/Program.cs | 29 +++++ .../Properties/launchSettings.json | 28 +++++ .../Shared/MainLayout.razor | 31 +++++ .../Shared/NavMenu.razor | 38 ++++++ .../Shared/NavMenu.razor.css | 43 +++++++ .../Shared/SurveyPrompt.razor | 16 +++ .../FluentUIBlazorServerApp/_Imports.razor | 11 ++ .../appsettings.Development.json | 9 ++ .../FluentUIBlazorServerApp/appsettings.json | 9 ++ .../wwwroot/css/site.css | 119 ++++++++++++++++++ .../wwwroot/favicon.ico | Bin 0 -> 5430 bytes .../FluentUIBlazorWebAssemblyApp.sln | 25 ++++ .../FluentUIBlazorWebAssemblyApp/App.razor | 13 ++ .../FluentUIBlazorWebAssemblyApp.csproj | 15 +++ .../Pages/Counter.razor | 18 +++ .../Pages/FetchData.razor | 57 +++++++++ .../Pages/Index.razor | 15 +++ .../Pages/Index.razor.css | 26 ++++ .../FluentUIBlazorWebAssemblyApp/Program.cs | 11 ++ .../Properties/launchSettings.json | 30 +++++ .../Shared/MainLayout.razor | 31 +++++ .../Shared/NavMenu.razor | 38 ++++++ .../Shared/NavMenu.razor.css | 43 +++++++ .../Shared/SurveyPrompt.razor | 16 +++ .../_Imports.razor | 11 ++ .../wwwroot/css/app.css | 119 ++++++++++++++++++ .../wwwroot/favicon.ico | Bin 0 -> 5430 bytes .../wwwroot/icon-192.png | Bin 0 -> 2626 bytes .../wwwroot/index.html | 25 ++++ .../wwwroot/sample-data/weather.json | 27 ++++ 39 files changed, 1044 insertions(+) create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/App.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Counter.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/FetchData.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor.css create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Program.cs create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Properties/launchSettings.json create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/MainLayout.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor.css create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/_Imports.razor create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.Development.json create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.json create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/css/site.css create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/favicon.ico create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.sln create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/App.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Program.cs create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/_Imports.razor create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/icon-192.png create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/index.html create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln new file mode 100644 index 0000000000..e3f19e8b73 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32102.18 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentUIBlazorServerApp", "FluentUIBlazorServerApp\FluentUIBlazorServerApp.csproj", "{9A828C59-809E-49E0-A4B3-034E9FAB82BE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9A828C59-809E-49E0-A4B3-034E9FAB82BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A828C59-809E-49E0-A4B3-034E9FAB82BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A828C59-809E-49E0-A4B3-034E9FAB82BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A828C59-809E-49E0-A4B3-034E9FAB82BE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9FBCD98F-0B1B-4927-AEFB-7D7E0993BD6D} + EndGlobalSection +EndGlobal diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/App.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/App.razor new file mode 100644 index 0000000000..2f14c34c8d --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/App.razor @@ -0,0 +1,13 @@ + + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
+
\ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs new file mode 100644 index 0000000000..acc28a271f --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs @@ -0,0 +1,13 @@ +namespace FluentUIBlazorServerApp.Data +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } + } +} \ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs new file mode 100644 index 0000000000..68fc30dd02 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs @@ -0,0 +1,20 @@ +namespace FluentUIBlazorServerApp.Data +{ + public class WeatherForecastService + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + public Task GetForecastAsync(DateTime startDate) + { + return Task.FromResult(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()); + } + } +} \ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj new file mode 100644 index 0000000000..979de8f97c --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Counter.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Counter.razor new file mode 100644 index 0000000000..2565d8f8cf --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Counter.razor @@ -0,0 +1,18 @@ +@page "/counter" + +Counter + +

Counter

+ +

Current count: @currentCount

+ +Click me + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/FetchData.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/FetchData.razor new file mode 100644 index 0000000000..af496c48ab --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/FetchData.razor @@ -0,0 +1,48 @@ +@page "/fetchdata" + +Weather forecast + +@using FluentUIBlazorServerApp.Data +@inject WeatherForecastService ForecastService + +

Weather forecast

+ +

This component demonstrates fetching data from a service.

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

Loading...

+} +else +{ + + + Date + Temp. (C) + Temp. (F) + Summary + + + @foreach (var forecast in forecasts) + { + + @forecast.Date.ToShortDateString() + @forecast.TemperatureC + @forecast.TemperatureF + @forecast.Summary + + + } + + + +} + +@code { + private WeatherForecast[]? forecasts; + + protected override async Task OnInitializedAsync() + { + forecasts = await ForecastService.GetForecastAsync(DateTime.Now); + } +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor new file mode 100644 index 0000000000..101c4662b3 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor @@ -0,0 +1,15 @@ +@page "/" + +Index + +

Hello, world!

+ +

+ Welcome to your new app. +

+ + + + + + diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor.css b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor.css new file mode 100644 index 0000000000..cc375828d4 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor.css @@ -0,0 +1,26 @@ +fluent-card { + --card-height: 400px; + --card-width: 500px; + padding: 20px; + margin: 12px; +} + +.class-override { + height: 163px; + width: 300px; +} + +.state-override { + --card-width: 350px; + --card-height: 300px; + --elevation: 6; +} + + .state-override:hover { + --elevation: 12; + } + +.contents { + display: flex; + flex-direction: column; +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Program.cs b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Program.cs new file mode 100644 index 0000000000..d8302ebf27 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Program.cs @@ -0,0 +1,29 @@ +using FluentUIBlazorServerApp.Data; + +WebApplicationBuilder? builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.AddRazorPages(); +builder.Services.AddServerSideBlazor(); +builder.Services.AddSingleton(); + +WebApplication? app = builder.Build(); + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + 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.UseStaticFiles(); + +app.UseRouting(); + +app.MapBlazorHub(); +app.MapFallbackToPage("/_Host"); + +app.Run(); diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Properties/launchSettings.json b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Properties/launchSettings.json new file mode 100644 index 0000000000..6570f0c8e5 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Properties/launchSettings.json @@ -0,0 +1,28 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:14184", + "sslPort": 44320 + } + }, + "profiles": { + "FluentUIBlazorServerApp": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7061;http://localhost:5061", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/MainLayout.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/MainLayout.razor new file mode 100644 index 0000000000..c4c8d7174a --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/MainLayout.razor @@ -0,0 +1,31 @@ +@inherits LayoutComponentBase + +FluentUIBlazorServerApp + +
+ +
+ + +
+
+
+ + + + @Body + + +

@ex.Message

+
+
+
+
+
+
+
\ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor new file mode 100644 index 0000000000..fbbce4580a --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor @@ -0,0 +1,38 @@ +@inject NavigationManager navigationmanager + + + +

FluentUI Web Components

+
    +
  • + Counter +
  • +
  • + Fetch Data +
  • +
+
+ + +@code { + private string? target; + + protected override void OnInitialized() + { + navigationmanager.LocationChanged += LocationChanged; + base.OnInitialized(); + } + + private void LocationChanged(object? sender, LocationChangedEventArgs e) + { + Uri uri = new Uri(e.Location); + if (uri.Segments.Count() > 1) + target = uri.Segments[1]; + else + target = ""; + StateHasChanged(); + } + + private Appearance SetAppearance(string location) => (location == target) ? Appearance.Neutral : Appearance.Stealth; + +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor.css b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor.css new file mode 100644 index 0000000000..d6768ae73f --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor.css @@ -0,0 +1,43 @@ + +.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 a { + color: #d7d7d7; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.25); + color: white; +} + +.nav-item ::deep a:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .collapse { + /* Never collapse the sidebar for wide screens */ + display: block; + } +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor new file mode 100644 index 0000000000..6ddf74b131 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor @@ -0,0 +1,16 @@ +
+ + @Title + +

+ Please take our + brief survey + and tell us what you think. +

+
+ +@code { + // Demonstrates how a parent component can supply parameters + [Parameter] + public string? Title { get; set; } +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/_Imports.razor b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/_Imports.razor new file mode 100644 index 0000000000..85d9ab0c2e --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/_Imports.razor @@ -0,0 +1,11 @@ +@using System.Net.Http +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using FluentUIBlazorServerApp +@using FluentUIBlazorServerApp.Shared +@using Microsoft.Fast.Components.FluentUI diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.Development.json b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.Development.json new file mode 100644 index 0000000000..770d3e9314 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "DetailedErrors": true, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.json b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.json new file mode 100644 index 0000000000..10f68b8c8b --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/css/site.css b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/css/site.css new file mode 100644 index 0000000000..51fe70dd21 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/css/site.css @@ -0,0 +1,119 @@ +body { + --body-font: Segoe UI, sans-serif; + font-family: var(--body-font); + font-size: var(--type-ramp-base-font-size); + line-height: var(--type-ramp-base-line-height); + margin: 0; +} + +.container { + display: grid; + grid-template-columns: 1fr; + grid-template-rows: 60px 1fr; + gap: 0px 0px; + grid-auto-flow: row; + grid-template-areas: + "siteheader" + "main"; +} + +.siteheader { + grid-area: siteheader; + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-start; + height: 3.5rem; + display: flex; + align-items: center; + white-space: nowrap; + padding-left: 1.5rem; +} + + .siteheader a { + padding-inline-end: 10px; + } + +.main { + display: grid; + grid-template-columns: 1fr 3fr; + grid-template-rows: 1fr; + gap: 0px 0px; + grid-auto-flow: row; + grid-template-areas: + "navigation content"; + grid-area: main; +} + +.navigation { + grid-area: navigation; + background-color: var(--fill-color); + color: var(--neutral-foreground-rest); + padding-left: calc(var(--design-unit) * 3px); +} + + .navigation > ul { + list-style: none; + padding: 0; + } + + .navigation h1 { + font-size: var(--type-ramp-plus-1-font-size); + line-height: var(--type-ramp-plus-1-line-height); + padding: 15px calc((10 + (var(--design-unit) * 2 * var(--density))) * 1px); + margin: 0; + } + + .navigation fluent-anchor { + width: 100%; + } + + .navigation fluent-anchor::part(control) { + justify-content: start; + } + +.content { + grid-area: content; + --elevation: 2; + background-color: var(--fill-color); + color: var(--neutral-foreground-rest); + padding-inline-start: calc(var(--design-unit) * 6px); + padding-inline-end: calc(var(--design-unit) * 6px); +} + + +#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; + } + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + + .blazor-error-boundary::after { + content: "An error has occurred." + } + +.prompt { + + position: relative; + padding: 1rem 1rem; + + border: 1px solid transparent; +} diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/favicon.ico b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..63e859b476eff5055e0e557aaa151ca8223fbeef GIT binary patch literal 5430 zcmc&&Yj2xp8Fqnv;>&(QB_ve7>^E#o2mu=cO~A%R>DU-_hfbSRv1t;m7zJ_AMrntN zy0+^f&8be>q&YYzH%(88lQ?#KwiCzaCO*ZEo%j&v;<}&Lj_stKTKK>#U3nin@AF>w zb3ONSAFR{u(S1d?cdw53y}Gt1b-Hirbh;;bm(Rcbnoc*%@jiaXM|4jU^1WO~`TYZ~ zC-~jh9~b-f?fX`DmwvcguQzn*uV}c^Vd&~?H|RUs4Epv~gTAfR(B0lT&?RWQOtduM z^1vUD9{HQsW!{a9|0crA34m7Z6lpG^}f6f?={zD+ zXAzk^i^aKN_}s2$eX81wjSMONE#WVdzf|MT)Ap*}Vsn!XbvsI#6o&ij{87^d%$|A{ z=F{KB%)g%@z76yBzbb7seW**Ju8r4e*Z3PWNX3_tTDgzZatz7)Q6ytwB%@&@A|XT; zecM`Snxx5po$C)%yCP!KEtos~eOS)@2=kX-RIm)4glMCoagTEFxrBeSX%Euz734Fk z%7)x(k~T!@Hbg_37NSQL!vlTBXoURSzt~I**Zw`&F24fH*&kx=%nvZv|49SC*daD( zIw<~%#=lk8{2-l(BcIjy^Q$Q&m#KlWL9?UG{b8@qhlD z;umc+6p%|NsAT~0@DgV4-NKgQuWPWrmPIK&&XhV&n%`{l zOl^bbWYjQNuVXTXESO)@|iUKVmErPUDfz2Wh`4dF@OFiaCW|d`3paV^@|r^8T_ZxM)Z+$p5qx# z#K=z@%;aBPO=C4JNNGqVv6@UGolIz;KZsAro``Rz8X%vq_gpi^qEV&evgHb_=Y9-l z`)imdx0UC>GWZYj)3+3aKh?zVb}=@%oNzg7a8%kfVl)SV-Amp1Okw&+hEZ3|v(k8vRjXW9?ih`&FFM zV$~{j3IzhtcXk?Mu_!12;=+I7XK-IR2>Yd%VB^?oI9c^E&Chb&&je$NV0P-R;ujkP z;cbLCCPEF6|22NDj=S`F^2e~XwT1ZnRX8ra0#DaFa9-X|8(xNW_+JhD75WnSd7cxo z2>I_J5{c|WPfrgl7E2R)^c}F7ry()Z>$Jhk9CzZxiPKL#_0%`&{MX>P_%b~Dx0D^S z7xP1(DQ!d_Icpk!RN3I1w@~|O1ru#CO==h#9M~S4Chx*@?=EKUPGBv$tmU+7Zs_al z`!jR?6T&Z7(%uVq>#yLu`abWk!FBlnY{RFNHlj~6zh*;@u}+}viRKsD`IIxN#R-X3 z@vxu#EA_m}I503U(8Qmx^}u;)KfGP`O9E1H1Q|xeeksX8jC%@!{YT1)!lWgO=+Y3*jr=iSxvOW1}^HSy=y){tOMQJ@an>sOl4FYniE z;GOxd7AqxZNbYFNqobpv&HVO$c-w!Y*6r;$2oJ~h(a#(Bp<-)dg*mNigX~9rPqcHv z^;c*|Md?tD)$y?6FO$DWl$jUGV`F1G_^E&E>sY*YnA~ruv3=z9F8&&~Xpm<<75?N3 z>x~`I&M9q)O1=zWZHN9hZWx>RQ}zLP+iL57Q)%&_^$Sme^^G7;e-P~CR?kqU#Io#( z(nH1Wn*Ig)|M>WLGrxoU?FZrS`4GO&w;+39A3f8w{{Q7eg|$+dIlNFPAe+tN=FOYU z{A&Fg|H73+w1IK(W=j*L>JQgz$g0 z7JpKXLHIh}#$wm|N`s}o-@|L_`>*(gTQ~)wr3Eap7g%PVNisKw82im;Gdv#85x#s+ zoqqtnwu4ycd>cOQgRh-=aEJbnvVK`}ja%+FZx}&ehtX)n(9nVfe4{mn0bgijUbNr7Tf5X^$*{qh2%`?--%+sbSrjE^;1e3>% zqa%jdY16{Y)a1hSy*mr0JGU05Z%=qlx5vGvTjSpTt6k%nR06q}1DU`SQh_ZAeJ}A@`hL~xvv05U?0%=spP`R>dk?cOWM9^KNb7B?xjex>OZo%JMQQ1Q zB|q@}8RiP@DWn-(fB;phPaIOP2Yp)XN3-Fsn)S3w($4&+p8f5W_f%gac}QvmkHfCj$2=!t`boCvQ zCW;&Dto=f8v##}dy^wg3VNaBy&kCe3N;1|@n@pUaMPT?(aJ9b*(gJ28$}(2qFt$H~u5z94xcIQkcOI++)*exzbrk?WOOOf*|%k5#KV zL=&ky3)Eirv$wbRJ2F2s_ILQY--D~~7>^f}W|Aw^e7inXr#WLI{@h`0|jHud2Y~cI~Yn{r_kU^Vo{1gja + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
+ \ No newline at end of file diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj new file mode 100644 index 0000000000..ec92f5fe47 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj @@ -0,0 +1,15 @@ + + + + net6.0 + enable + enable + + + + + + + + + diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor new file mode 100644 index 0000000000..2565d8f8cf --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor @@ -0,0 +1,18 @@ +@page "/counter" + +Counter + +

Counter

+ +

Current count: @currentCount

+ +Click me + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor new file mode 100644 index 0000000000..047b0f42b7 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor @@ -0,0 +1,57 @@ +@page "/fetchdata" +@inject HttpClient Http + +Weather forecast + +

Weather forecast

+ +

This component demonstrates fetching data from a service.

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

Loading...

+} +else +{ + + + Date + Temp. (C) + Temp. (F) + Summary + + + @foreach (var forecast in forecasts) + { + + @forecast.Date.ToShortDateString() + @forecast.TemperatureC + @forecast.TemperatureF + @forecast.Summary + + + } + + + +} + +@code { + private WeatherForecast[]? forecasts; + + protected override async Task OnInitializedAsync() + { + forecasts = await Http.GetFromJsonAsync("sample-data/weather.json"); + } + + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public string? Summary { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + } +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor new file mode 100644 index 0000000000..101c4662b3 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor @@ -0,0 +1,15 @@ +@page "/" + +Index + +

Hello, world!

+ +

+ Welcome to your new app. +

+ + + + + + diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css new file mode 100644 index 0000000000..cc375828d4 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css @@ -0,0 +1,26 @@ +fluent-card { + --card-height: 400px; + --card-width: 500px; + padding: 20px; + margin: 12px; +} + +.class-override { + height: 163px; + width: 300px; +} + +.state-override { + --card-width: 350px; + --card-height: 300px; + --elevation: 6; +} + + .state-override:hover { + --elevation: 12; + } + +.contents { + display: flex; + flex-direction: column; +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Program.cs b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Program.cs new file mode 100644 index 0000000000..e60d2d2154 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Program.cs @@ -0,0 +1,11 @@ +using FluentUIBlazorWebAssemblyApp; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; + +var 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) }); + +await builder.Build().RunAsync(); diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json new file mode 100644 index 0000000000..816e1ef428 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json @@ -0,0 +1,30 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:54273", + "sslPort": 44381 + } + }, + "profiles": { + "FluentUIBlazorWebAssemblyApp": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:7247;http://localhost:5247", + "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/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor new file mode 100644 index 0000000000..7ff0812da2 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor @@ -0,0 +1,31 @@ +@inherits LayoutComponentBase + +FluentUIBlazorWebAssemblyApp + +
+ +
+ + +
+
+
+ + + + @Body + + +

@ex.Message

+
+
+
+
+
+
+
\ No newline at end of file diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor new file mode 100644 index 0000000000..fbbce4580a --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor @@ -0,0 +1,38 @@ +@inject NavigationManager navigationmanager + + + +

FluentUI Web Components

+
    +
  • + Counter +
  • +
  • + Fetch Data +
  • +
+
+ + +@code { + private string? target; + + protected override void OnInitialized() + { + navigationmanager.LocationChanged += LocationChanged; + base.OnInitialized(); + } + + private void LocationChanged(object? sender, LocationChangedEventArgs e) + { + Uri uri = new Uri(e.Location); + if (uri.Segments.Count() > 1) + target = uri.Segments[1]; + else + target = ""; + StateHasChanged(); + } + + private Appearance SetAppearance(string location) => (location == target) ? Appearance.Neutral : Appearance.Stealth; + +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css new file mode 100644 index 0000000000..d6768ae73f --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css @@ -0,0 +1,43 @@ + +.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 a { + color: #d7d7d7; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.25); + color: white; +} + +.nav-item ::deep a:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .collapse { + /* Never collapse the sidebar for wide screens */ + display: block; + } +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor new file mode 100644 index 0000000000..6ddf74b131 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor @@ -0,0 +1,16 @@ +
+ + @Title + +

+ Please take our + brief survey + and tell us what you think. +

+
+ +@code { + // Demonstrates how a parent component can supply parameters + [Parameter] + public string? Title { get; set; } +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/_Imports.razor b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/_Imports.razor new file mode 100644 index 0000000000..a0319b6748 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/_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 Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using FluentUIBlazorWebAssemblyApp +@using FluentUIBlazorWebAssemblyApp.Shared +@using Microsoft.Fast.Components.FluentUI diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css new file mode 100644 index 0000000000..500182aa1d --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css @@ -0,0 +1,119 @@ +body { + --body-font: Segoe UI, sans-serif; + font-family: var(--body-font); + font-size: var(--type-ramp-base-font-size); + line-height: var(--type-ramp-base-line-height); + margin: 0; +} + +.container { + display: grid; + grid-template-columns: 1fr; + grid-template-rows: 60px 1fr; + gap: 0px 0px; + grid-auto-flow: row; + grid-template-areas: + "siteheader" + "main"; +} + +.siteheader { + grid-area: siteheader; + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-start; + height: 3.5rem; + display: flex; + align-items: center; + white-space: nowrap; + padding-left: 1.5rem; +} + + .siteheader a { + padding-inline-end: 10px; + } + +.main { + display: grid; + grid-template-columns: 1fr 3fr; + grid-template-rows: 1fr; + gap: 0px 0px; + grid-auto-flow: row; + grid-template-areas: + "navigation content"; + grid-area: main; +} + +.navigation { + grid-area: navigation; + background-color: var(--fill-color); + color: var(--neutral-foreground-rest); + padding-left: calc(var(--design-unit) * 3px); +} + + .navigation > ul { + list-style: none; + padding: 0; + } + + .navigation h1 { + font-size: var(--type-ramp-plus-1-font-size); + line-height: var(--type-ramp-plus-1-line-height); + padding: 15px calc((10 + (var(--design-unit) * 2 * var(--density))) * 1px); + margin: 0; + } + + .navigation fluent-anchor { + width: 100%; + } + + .navigation fluent-anchor::part(control) { + justify-content: start; + } + +.content { + grid-area: content; + --elevation: 2; + background-color: var(--fill-color); + color: var(--neutral-foreground-rest); + padding-inline-start: calc(var(--design-unit) * 6px); + padding-inline-end: calc(var(--design-unit) * 6px); +} + + +#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; + } + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + + .blazor-error-boundary::after { + content: "An error has occurred." + } + +.prompt { + + position: relative; + padding: 1rem 1rem; + + border: 1px solid transparent; +} diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..63e859b476eff5055e0e557aaa151ca8223fbeef GIT binary patch literal 5430 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 literal 0 HcmV?d00001 diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/index.html b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/index.html new file mode 100644 index 0000000000..c22b407e09 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/index.html @@ -0,0 +1,25 @@ + + + + + + + FluentUIBlazorWebAssemblyApp + + + + + + +
Loading...
+ +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json new file mode 100644 index 0000000000..06463c02f1 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json @@ -0,0 +1,27 @@ +[ + { + "date": "2018-05-06", + "temperatureC": 1, + "summary": "Freezing" + }, + { + "date": "2018-05-07", + "temperatureC": 14, + "summary": "Bracing" + }, + { + "date": "2018-05-08", + "temperatureC": -13, + "summary": "Freezing" + }, + { + "date": "2018-05-09", + "temperatureC": -16, + "summary": "Balmy" + }, + { + "date": "2018-05-10", + "temperatureC": -2, + "summary": "Chilly" + } +] From e1ffada136e8b98764055b255cdaaf8701f5f237 Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Mon, 3 Jan 2022 18:07:59 +0100 Subject: [PATCH 02/10] Add initial template.json files --- .../.template.config/template.json | 19 +++++++++++++++++ .../.template.config/template.json | 21 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/.template.config/template.json create mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/.template.config/template.json diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/.template.config/template.json b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/.template.config/template.json new file mode 100644 index 0000000000..c37e7ad256 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/.template.config/template.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft Fast", + "sourceName": "FluentUIBlazorServerApp", + "classifications": [ + "Web", + "Blazor" + ], + "identity": "Microsoft.Fast.Components.FluentUI.Server", + "name": "FluentUI Blazor Server App", + "shortName": "fluentuiblazorserver", + "defaultName": "BlazorApp", + "description": "A project template for creating a Blazor server app that uses the Fluent UI component library and runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).", + "tags": { + "language": "C#", + "type": "project" + }, + "preferNameDirectory": true +} \ No newline at end of file diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/.template.config/template.json b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/.template.config/template.json new file mode 100644 index 0000000000..e474410f45 --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/.template.config/template.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "Microsoft Fast", + "sourceName": "FluentUIBlazorWebAssemblyApp", + "classifications": [ + "Web", + "Blazor", + "WebAssembly", + "PWA" + ], + "identity": "Microsoft.Fast.Components.FluentUI.WebAssembly", + "name": "FluentUI Blazor WebAssembly App", + "shortName": "fluentuiblazorwasm", + "defaultName": "BlazorApp", + "description": "A project template for creating a Blazor app that uses the Fluent UI component library and runs on WebAssembly. This template can be used for web apps with rich dynamic user interfaces (UIs).", + "tags": { + "language": "C#", + "type": "project" + }, + "preferNameDirectory": true +} \ No newline at end of file From af45c3669577a619cb21f6065c19400cf79e8f90 Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Tue, 4 Jan 2022 12:58:07 +0100 Subject: [PATCH 03/10] Move project files to Content folders Add VS templating steps --- .../.template.config/icon.png | Bin 0 -> 1148 bytes .../.template.config/ide.host.json | 5 +++++ .../.template.config/template.json | 0 .../FluentUIBlazorServerApp/App.razor | 0 .../Data/WeatherForecast.cs | 12 +++++++++++ .../Data/WeatherForecastService.cs | 19 +++++++++++++++++ .../FluentUIBlazorServerApp.csproj | 14 ++++++++++++ .../Pages/Counter.razor | 0 .../Pages/FetchData.razor | 0 .../FluentUIBlazorServerApp/Pages/Index.razor | 0 .../Pages/Index.razor.css | 0 .../FluentUIBlazorServerApp/Program.cs | 0 .../Properties/launchSettings.json | 0 .../Shared/MainLayout.razor | 0 .../Shared/NavMenu.razor | 0 .../Shared/NavMenu.razor.css | 0 .../Shared/SurveyPrompt.razor | 0 .../FluentUIBlazorServerApp/_Imports.razor | 0 .../appsettings.Development.json | 0 .../FluentUIBlazorServerApp/appsettings.json | 0 .../wwwroot/css/site.css | 0 .../wwwroot/favicon.ico | Bin .../FluentUIBlazorServerApp.sln | 2 +- .../Data/WeatherForecast.cs | 13 ------------ .../Data/WeatherForecastService.cs | 20 ------------------ .../FluentUIBlazorServerApp.csproj | 13 ------------ ...ents.FluentUI.BlazorServer.Template.nuspec | 18 ++++++++++++++++ .../.template.config/icon.png | Bin 0 -> 1148 bytes .../.template.config/ide.host.json | 5 +++++ .../.template.config/template.json | 0 .../FluentUIBlazorWebAssemblyApp/App.razor | 0 .../FluentUIBlazorWebAssemblyApp.csproj | 16 ++++++++++++++ .../Pages/Counter.razor | 0 .../Pages/FetchData.razor | 0 .../Pages/Index.razor | 0 .../Pages/Index.razor.css | 0 .../FluentUIBlazorWebAssemblyApp/Program.cs | 0 .../Properties/launchSettings.json | 0 .../Shared/MainLayout.razor | 0 .../Shared/NavMenu.razor | 0 .../Shared/NavMenu.razor.css | 0 .../Shared/SurveyPrompt.razor | 0 .../_Imports.razor | 0 .../wwwroot/css/app.css | 0 .../wwwroot/favicon.ico | Bin .../wwwroot/icon-192.png | Bin .../wwwroot/index.html | 0 .../wwwroot/sample-data/weather.json | 0 .../FluentUIBlazorWebAssemblyApp.sln | 2 +- .../FluentUIBlazorWebAssemblyApp.csproj | 15 ------------- ...FluentUI.BlazorWebAssembly.Template.nuspec | 18 ++++++++++++++++ 51 files changed, 109 insertions(+), 63 deletions(-) create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/icon.png create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/ide.host.json rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/.template.config/template.json (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/App.razor (100%) create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Data/WeatherForecast.cs create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Data/WeatherForecastService.cs create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Pages/Counter.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Pages/FetchData.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Pages/Index.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Pages/Index.razor.css (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Program.cs (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Properties/launchSettings.json (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Shared/MainLayout.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Shared/NavMenu.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Shared/NavMenu.razor.css (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/_Imports.razor (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/appsettings.Development.json (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/appsettings.json (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/wwwroot/css/site.css (100%) rename templates/FluentUIBlazorServerApp/{ => Content}/FluentUIBlazorServerApp/wwwroot/favicon.ico (100%) delete mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs delete mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs delete mode 100644 templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj create mode 100644 templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec create mode 100644 templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/icon.png create mode 100644 templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/ide.host.json rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/.template.config/template.json (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/App.razor (100%) create mode 100644 templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Pages/Index.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Program.cs (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/_Imports.razor (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/wwwroot/icon-192.png (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/wwwroot/index.html (100%) rename templates/FluentUIBlazorWebAssemblyApp/{ => Content}/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json (100%) delete mode 100644 templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj create mode 100644 templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/icon.png b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8422b59695935d180d11d5dbe99653e711097819 GIT binary patch literal 1148 zcmV-?1cUpDP)9h26h2-Cs%i*@Moc3?#6qJID|D#|3|2Hn7gTIYEkr|%Xjp);YgvFmB&0#2E2b=| zkVr)lMv9=KqwN&%obTp-$<51T%rx*NCwceh-E+=&e(oLO`@Z~7gybJ#U|^tB2Pai} zRN@5%1qsZ1e@R(XC8n~)nU1S0QdzEYlWPdUpH{wJ2Pd4V8kI3BM=)sG^IkUXF2-j{ zrPTYA6sxpQ`Q1c6mtar~gG~#;lt=s^6_OccmRd>o{*=>)KS=lM zZ!)iG|8G0-9s3VLm`bsa6e ze*TlRxAjXtm^F8V`M1%s5d@tYS>&+_ga#xKGb|!oUBx3uc@mj1%=MaH4GR0tPBG_& z9OZE;->dO@`Q)nr<%dHAsEZRKl zedN6+3+uGHejJp;Q==pskSAcRcyh@6mjm2z-uG;s%dM-u0*u##7OxI7wwyCGpS?4U zBFAr(%GBv5j$jS@@t@iI8?ZqE36I^4t+P^J9D^ELbS5KMtZ z{Qn#JnSd$15nJ$ggkF%I4yUQC+BjDF^}AtB7w348EL>7#sAsLWs}ndp8^DsAcOIL9 zTOO!!0!k2`9BLk25)NeZp7ev>I1Mn={cWI3Yhx2Q#DnAo4IphoV~R^c0x&nw*MoIV zPthX?{6{u}sMS(MxD*dmd5rU(YazQE59b|TsB5Tm)I4a!VaN@HYOR)DwH1U5y(E)z zQqQU*B%MwtRQ$%x&;1p%ANmc|PkoFJZ%<-uq%PX&C!c-7ypis=eP+FCeuv+B@h#{4 zGx1m0PjS~FJt}3mdt4c!lel`1;4W|03kcZRG+DzkTy|7-F~eDsV2Tx!73dM0H0CTh zl)F-YUkE1zEzEW(;JXc|KR5{ox%YTh{$%F$a36JP6Nb<0%#NbSh$dMYF-{ z1_x(Vx)}fs?5_|!5xBTWiiIQHG<%)*e=45Fhjw_tlnmlixq;mUdC$R8v#j( zhQ$9YR-o%i5Uc`S?6EC51!bTRK=Xkyb<18FkCKnS2;o*qlij1YA@-nRpq#OMTX&RbL<^2q@0qja!uIvI;j$6>~k@IMwD42=8$$!+R^@5o6HX(*n~ 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } +} diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Data/WeatherForecastService.cs b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Data/WeatherForecastService.cs new file mode 100644 index 0000000000..0bc9081703 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Data/WeatherForecastService.cs @@ -0,0 +1,19 @@ +namespace FluentUIBlazorServerApp.Data; + +public class WeatherForecastService +{ + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + public Task GetForecastAsync(DateTime startDate) + { + return Task.FromResult(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()); + } +} diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj new file mode 100644 index 0000000000..9ff03dd4cd --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj @@ -0,0 +1,14 @@ + + + + net6.0 + enable + enable + true + + + + + + + diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Counter.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Counter.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Counter.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Counter.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/FetchData.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/FetchData.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/FetchData.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/FetchData.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Index.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Index.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor.css b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Index.razor.css similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Pages/Index.razor.css rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Index.razor.css diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Program.cs b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Program.cs similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Program.cs rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Program.cs diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Properties/launchSettings.json b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Properties/launchSettings.json similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Properties/launchSettings.json rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Properties/launchSettings.json diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/MainLayout.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/MainLayout.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/MainLayout.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/MainLayout.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/NavMenu.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/NavMenu.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor.css b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/NavMenu.razor.css similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/NavMenu.razor.css rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/NavMenu.razor.css diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Shared/SurveyPrompt.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/_Imports.razor b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/_Imports.razor similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/_Imports.razor rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/_Imports.razor diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.Development.json b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/appsettings.Development.json similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.Development.json rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/appsettings.Development.json diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.json b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/appsettings.json similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/appsettings.json rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/appsettings.json diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/css/site.css b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/wwwroot/css/site.css similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/css/site.css rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/wwwroot/css/site.css diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/favicon.ico b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/wwwroot/favicon.ico similarity index 100% rename from templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/wwwroot/favicon.ico rename to templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/wwwroot/favicon.ico diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln index e3f19e8b73..d9f17218e1 100644 --- a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln +++ b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32102.18 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentUIBlazorServerApp", "FluentUIBlazorServerApp\FluentUIBlazorServerApp.csproj", "{9A828C59-809E-49E0-A4B3-034E9FAB82BE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentUIBlazorServerApp", "Content\FluentUIBlazorServerApp\FluentUIBlazorServerApp.csproj", "{9A828C59-809E-49E0-A4B3-034E9FAB82BE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs deleted file mode 100644 index acc28a271f..0000000000 --- a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecast.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace FluentUIBlazorServerApp.Data -{ - public class WeatherForecast - { - public DateTime Date { get; set; } - - public int TemperatureC { get; set; } - - public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); - - public string? Summary { get; set; } - } -} \ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs deleted file mode 100644 index 68fc30dd02..0000000000 --- a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/Data/WeatherForecastService.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace FluentUIBlazorServerApp.Data -{ - public class WeatherForecastService - { - private static readonly string[] Summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - - public Task GetForecastAsync(DateTime startDate) - { - return Task.FromResult(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()); - } - } -} \ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj b/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj deleted file mode 100644 index 979de8f97c..0000000000 --- a/templates/FluentUIBlazorServerApp/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - diff --git a/templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec b/templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec new file mode 100644 index 0000000000..97714c33ac --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec @@ -0,0 +1,18 @@ + + + + Microsoft.Fast.Components.FluentUI.BlazorServer.Template + 1.0.0 + + A project template for creating a Blazor server app that uses the Fluent UI component library and runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).. + + Microsoft Fast + MIT + + + + + + + + \ No newline at end of file diff --git a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/icon.png b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8422b59695935d180d11d5dbe99653e711097819 GIT binary patch literal 1148 zcmV-?1cUpDP)9h26h2-Cs%i*@Moc3?#6qJID|D#|3|2Hn7gTIYEkr|%Xjp);YgvFmB&0#2E2b=| zkVr)lMv9=KqwN&%obTp-$<51T%rx*NCwceh-E+=&e(oLO`@Z~7gybJ#U|^tB2Pai} zRN@5%1qsZ1e@R(XC8n~)nU1S0QdzEYlWPdUpH{wJ2Pd4V8kI3BM=)sG^IkUXF2-j{ zrPTYA6sxpQ`Q1c6mtar~gG~#;lt=s^6_OccmRd>o{*=>)KS=lM zZ!)iG|8G0-9s3VLm`bsa6e ze*TlRxAjXtm^F8V`M1%s5d@tYS>&+_ga#xKGb|!oUBx3uc@mj1%=MaH4GR0tPBG_& z9OZE;->dO@`Q)nr<%dHAsEZRKl zedN6+3+uGHejJp;Q==pskSAcRcyh@6mjm2z-uG;s%dM-u0*u##7OxI7wwyCGpS?4U zBFAr(%GBv5j$jS@@t@iI8?ZqE36I^4t+P^J9D^ELbS5KMtZ z{Qn#JnSd$15nJ$ggkF%I4yUQC+BjDF^}AtB7w348EL>7#sAsLWs}ndp8^DsAcOIL9 zTOO!!0!k2`9BLk25)NeZp7ev>I1Mn={cWI3Yhx2Q#DnAo4IphoV~R^c0x&nw*MoIV zPthX?{6{u}sMS(MxD*dmd5rU(YazQE59b|TsB5Tm)I4a!VaN@HYOR)DwH1U5y(E)z zQqQU*B%MwtRQ$%x&;1p%ANmc|PkoFJZ%<-uq%PX&C!c-7ypis=eP+FCeuv+B@h#{4 zGx1m0PjS~FJt}3mdt4c!lel`1;4W|03kcZRG+DzkTy|7-F~eDsV2Tx!73dM0H0CTh zl)F-YUkE1zEzEW(;JXc|KR5{ox%YTh{$%F$a36JP6Nb<0%#NbSh$dMYF-{ z1_x(Vx)}fs?5_|!5xBTWiiIQHG<%)*e=45Fhjw_tlnmlixq;mUdC$R8v#j( zhQ$9YR-o%i5Uc`S?6EC51!bTRK=Xkyb<18FkCKnS2;o*qlij1YA@-nRpq#OMTX&RbL<^2q@0qja!uIvI;j$6>~k@IMwD42=8$$!+R^@5o6HX(*n~ + + + net6.0 + enable + enable + true + + + + + + + + + diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/Counter.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/FetchData.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/Index.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/Index.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Pages/Index.razor.css diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Program.cs b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Program.cs similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Program.cs rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Program.cs diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Properties/launchSettings.json diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/MainLayout.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/NavMenu.razor.css diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/Shared/SurveyPrompt.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/_Imports.razor b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/_Imports.razor similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/_Imports.razor rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/_Imports.razor diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/css/app.css diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/favicon.ico diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/icon-192.png b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/icon-192.png similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/icon-192.png rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/icon-192.png diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/index.html b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/index.html similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/index.html rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/index.html diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json rename to templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/wwwroot/sample-data/weather.json diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.sln b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.sln index 1b8e89b9cf..7fdbe9f55c 100644 --- a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.sln +++ b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32102.18 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentUIBlazorWebAssemblyApp", "FluentUIBlazorWebAssemblyApp\FluentUIBlazorWebAssemblyApp.csproj", "{1FC26380-F47D-4CF3-88E5-5CCCC30843B6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentUIBlazorWebAssemblyApp", "Content\FluentUIBlazorWebAssemblyApp\FluentUIBlazorWebAssemblyApp.csproj", "{1FC26380-F47D-4CF3-88E5-5CCCC30843B6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj b/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj deleted file mode 100644 index ec92f5fe47..0000000000 --- a/templates/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - - - diff --git a/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec b/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec new file mode 100644 index 0000000000..7c5d68257e --- /dev/null +++ b/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec @@ -0,0 +1,18 @@ + + + + Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template + 1.0.0 + + A project template for creating a Blazor app that uses the Fluent UI component library and runs on WebAssembly. This template can be used for web apps with rich dynamic user interfaces (UIs). + + Microsoft Fast + MIT + + + + + + + + \ No newline at end of file From 976c901c5923d396b7765024feb7802d77e16e6a Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Tue, 4 Jan 2022 13:30:31 +0100 Subject: [PATCH 04/10] Add readme with templating commands --- templates/README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 templates/README.md diff --git a/templates/README.md b/templates/README.md new file mode 100644 index 0000000000..1f8b42f2dc --- /dev/null +++ b/templates/README.md @@ -0,0 +1,25 @@ +## For Blazor Server +To create a project from the cli: +- `dotnet new fluentuiblazorserver -o {your project name}` + +To create a package (after changing the template source): +- `nuget.exe pack {path to repo}\templates\FluentUIBlazorServerApp\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec -OutputDirectory {output path}` + +To install a template: +- `dotnet new -i .\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.{version}.nupkg` (currently version = 1.0.0) + +To uninstall a template: +- `dotnet new -u Microsoft.Fast.Components.FluentUI.BlazorServer.Template` + +## For Blazor WebAssembly +To create a project from the cli: +-`dotnet new fluentuiblazorwebassembly -o {your project name}` + +To create a package (after changing the template source): +- `nuget.exe pack {path to repo}\templates\FluentUIBlazorWebAssemblyApp\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec -OutputDirectory {output path}` + +To install a template: +- `dotnet new -i .\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.{version}.nupkg` (currently version = 1.0.0) + +To uninstall a template: +- `dotnet new -u Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template` From 7f4fd0c7fdf0907d93139051545f5f7bdff4caae Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Tue, 4 Jan 2022 16:44:48 +0100 Subject: [PATCH 05/10] Update template readme --- templates/README.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/templates/README.md b/templates/README.md index 1f8b42f2dc..cc5479edf5 100644 --- a/templates/README.md +++ b/templates/README.md @@ -1,25 +1,21 @@ ## For Blazor Server -To create a project from the cli: -- `dotnet new fluentuiblazorserver -o {your project name}` +First install the template by running the command `dotnet new -i {path to package}\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.{version}.nupkg` (currently version = 1.0.0) + +Then either create a project from the cli by running the command `dotnet new fluentuiblazorserver -o {your project name}` or create a new project in Visual Studio 2022 by selecting the FluentUI Blazor Server App template To create a package (after changing the template source): - `nuget.exe pack {path to repo}\templates\FluentUIBlazorServerApp\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec -OutputDirectory {output path}` -To install a template: -- `dotnet new -i .\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.{version}.nupkg` (currently version = 1.0.0) - -To uninstall a template: +To uninstall the template: - `dotnet new -u Microsoft.Fast.Components.FluentUI.BlazorServer.Template` ## For Blazor WebAssembly -To create a project from the cli: --`dotnet new fluentuiblazorwebassembly -o {your project name}` +First install the template by running the command `dotnet new -i .\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.{version}.nupkg` (currently version = 1.0.0) + +Then either create a project from the cli by executing the command `dotnet new fluentuiblazorwebassembly -o {your project name}` or create a new project in Visual Studio 2022 by selecting the FluentUI Blazor WebAssembly App template To create a package (after changing the template source): - `nuget.exe pack {path to repo}\templates\FluentUIBlazorWebAssemblyApp\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec -OutputDirectory {output path}` -To install a template: -- `dotnet new -i .\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.{version}.nupkg` (currently version = 1.0.0) - -To uninstall a template: +To uninstall the template: - `dotnet new -u Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template` From 752f1a546dc7c9c040c24542509fdf80878d77bd Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Wed, 2 Feb 2022 23:52:35 +0100 Subject: [PATCH 06/10] Name changes --- .../.template.config/template.json | 2 +- ...soft.Fast.Templates.FluentUI.BlazorServer.nuspec} | 2 +- .../.template.config/template.json | 2 +- ....Fast.Template.FluentUI.BlazorWebAssembly.nuspec} | 2 +- templates/README.md | 12 ++++++------ 5 files changed, 10 insertions(+), 10 deletions(-) rename templates/FluentUIBlazorServerApp/{Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec => Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec} (91%) rename templates/FluentUIBlazorWebAssemblyApp/{Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec => Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec} (90%) diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json index c37e7ad256..558f78a0db 100644 --- a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json @@ -6,7 +6,7 @@ "Web", "Blazor" ], - "identity": "Microsoft.Fast.Components.FluentUI.Server", + "identity": "Microsoft.Fast.Templates.FluentUI.Server", "name": "FluentUI Blazor Server App", "shortName": "fluentuiblazorserver", "defaultName": "BlazorApp", diff --git a/templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec b/templates/FluentUIBlazorServerApp/Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec similarity index 91% rename from templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec rename to templates/FluentUIBlazorServerApp/Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec index 97714c33ac..8d1dadba92 100644 --- a/templates/FluentUIBlazorServerApp/Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec +++ b/templates/FluentUIBlazorServerApp/Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec @@ -1,7 +1,7 @@ - Microsoft.Fast.Components.FluentUI.BlazorServer.Template + Microsoft.Fast.Templates.FluentUI.BlazorServer 1.0.0 A project template for creating a Blazor server app that uses the Fluent UI component library and runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).. diff --git a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json index e474410f45..66baa465b2 100644 --- a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json +++ b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json @@ -8,7 +8,7 @@ "WebAssembly", "PWA" ], - "identity": "Microsoft.Fast.Components.FluentUI.WebAssembly", + "identity": "Microsoft.Fast.Templates.FluentUI.WebAssembly", "name": "FluentUI Blazor WebAssembly App", "shortName": "fluentuiblazorwasm", "defaultName": "BlazorApp", diff --git a/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec b/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec similarity index 90% rename from templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec rename to templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec index 7c5d68257e..83dd6ab6fe 100644 --- a/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec +++ b/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec @@ -1,7 +1,7 @@ - Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template + Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly 1.0.0 A project template for creating a Blazor app that uses the Fluent UI component library and runs on WebAssembly. This template can be used for web apps with rich dynamic user interfaces (UIs). diff --git a/templates/README.md b/templates/README.md index cc5479edf5..6fb94bc461 100644 --- a/templates/README.md +++ b/templates/README.md @@ -1,21 +1,21 @@ ## For Blazor Server -First install the template by running the command `dotnet new -i {path to package}\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.{version}.nupkg` (currently version = 1.0.0) +First install the template by running the command `dotnet new -i {path to package}\Microsoft.Fast.Templates.FluentUI.BlazorServer.{version}.nupkg` (currently version = 1.0.0) Then either create a project from the cli by running the command `dotnet new fluentuiblazorserver -o {your project name}` or create a new project in Visual Studio 2022 by selecting the FluentUI Blazor Server App template To create a package (after changing the template source): -- `nuget.exe pack {path to repo}\templates\FluentUIBlazorServerApp\Microsoft.Fast.Components.FluentUI.BlazorServer.Template.nuspec -OutputDirectory {output path}` +- `nuget.exe pack {path to repo}\templates\FluentUIBlazorServerApp\Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec -OutputDirectory {output path}` To uninstall the template: -- `dotnet new -u Microsoft.Fast.Components.FluentUI.BlazorServer.Template` +- `dotnet new -u Microsoft.Fast.Templates.FluentUI.BlazorServer` ## For Blazor WebAssembly -First install the template by running the command `dotnet new -i .\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.{version}.nupkg` (currently version = 1.0.0) +First install the template by running the command `dotnet new -i .\Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.{version}.nupkg` (currently version = 1.0.0) Then either create a project from the cli by executing the command `dotnet new fluentuiblazorwebassembly -o {your project name}` or create a new project in Visual Studio 2022 by selecting the FluentUI Blazor WebAssembly App template To create a package (after changing the template source): -- `nuget.exe pack {path to repo}\templates\FluentUIBlazorWebAssemblyApp\Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template.nuspec -OutputDirectory {output path}` +- `nuget.exe pack {path to repo}\templates\FluentUIBlazorWebAssemblyApp\Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.nuspec -OutputDirectory {output path}` To uninstall the template: -- `dotnet new -u Microsoft.Fast.Components.FluentUI.BlazorWebAssembly.Template` +- `dotnet new -u Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly` From f85a2eb0e4b522b30414b590558b54621029bcfc Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Thu, 3 Feb 2022 13:30:04 +0100 Subject: [PATCH 07/10] Update readme In csproj select highest stable available version of FluentUI package --- .../FluentUIBlazorServerApp.csproj | 2 +- .../FluentUIBlazorWebAssemblyApp.csproj | 2 +- templates/README.md | 67 +++++++++++++++---- 3 files changed, 55 insertions(+), 16 deletions(-) diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj index 9ff03dd4cd..33896cd333 100644 --- a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/FluentUIBlazorServerApp.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj index e4ebfe1058..c3c8b04844 100644 --- a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj +++ b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/FluentUIBlazorWebAssemblyApp.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/README.md b/templates/README.md index 6fb94bc461..7f5ee6dc01 100644 --- a/templates/README.md +++ b/templates/README.md @@ -1,21 +1,60 @@ -## For Blazor Server -First install the template by running the command `dotnet new -i {path to package}\Microsoft.Fast.Templates.FluentUI.BlazorServer.{version}.nupkg` (currently version = 1.0.0) +### For Blazor Server -Then either create a project from the cli by running the command `dotnet new fluentuiblazorserver -o {your project name}` or create a new project in Visual Studio 2022 by selecting the FluentUI Blazor Server App template +#### Installation +Install the template by running the command: +``` +dotnet new -i {path to package}\Microsoft.Fast.Templates.FluentUI.BlazorServer.{version}.nupkg +``` +The current version is 1.0.0. After instalation the template will be available to create a new project from both the CLI as from Visual Studio 2022 -To create a package (after changing the template source): -- `nuget.exe pack {path to repo}\templates\FluentUIBlazorServerApp\Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec -OutputDirectory {output path}` +#### Usage +After installing the template you can create new a project from either the CLI or by creating a new project in Visual studio 2022. -To uninstall the template: -- `dotnet new -u Microsoft.Fast.Templates.FluentUI.BlazorServer` +For creating a project form the CLI run the following command (in the folder of your choice): +``` +dotnet new fluentuiblazorserver -o {your project name} +``` +In Visual Studio you can create a new project by selecting the FluentUI Blazor Server App template in the 'File->New->Project'-dialog. -## For Blazor WebAssembly -First install the template by running the command `dotnet new -i .\Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.{version}.nupkg` (currently version = 1.0.0) +#### Creating a template package +After changing the template source, a new package needs to be created. Remember to update the version number in the `.nuspec` file (see path below). To create the package run the following command: +``` +nuget.exe pack {path to repo}\templates\FluentUIBlazorServerApp\Microsoft.Fast.Templates.FluentUI.BlazorServer.nuspec -OutputDirectory {output path} +``` -Then either create a project from the cli by executing the command `dotnet new fluentuiblazorwebassembly -o {your project name}` or create a new project in Visual Studio 2022 by selecting the FluentUI Blazor WebAssembly App template +#### Uninstalling the template +If you want to uninstall the template, both from the CLI and Visual Studio 2022, run the following command: +``` +dotnet new -u Microsoft.Fast.Templates.FluentUI.BlazorServer +``` -To create a package (after changing the template source): -- `nuget.exe pack {path to repo}\templates\FluentUIBlazorWebAssemblyApp\Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.nuspec -OutputDirectory {output path}` -To uninstall the template: -- `dotnet new -u Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly` +### For Blazor WebAssembly + +#### Installation +Install the template by running the command: +``` +dotnet new -i {path to package}\Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.{version}.nupkg +``` +The current version is 1.0.0. After instalation the template will be available to create a new project from both the CLI as from Visual Studio 2022 + +#### Usage +After installing the template you can create new a project from either the CLI or by creating a new project in Visual studio 2022. + +For creating a project form the CLI run the following command (in the folder of your choice): +``` +dotnet new fluentuiBlazorWebAssembly -o {your project name} +``` +In Visual Studio you can create a new project by selecting the FluentUI Blazor Server App template in the 'File->New->Project'-dialog. + +#### Creating a template package +After changing the template source, a new package needs to be created. Remember to update the version number in the `.nuspec` file (see path below). To create the package run the following command: +``` +nuget.exe pack {path to repo}\templates\FluentUIBlazorWebAssemblyApp\Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.nuspec -OutputDirectory {output path} +``` + +#### Uninstalling the template +If you want to uninstall the template, both from the CLI and Visual Studio 2022, run the following command: +``` +dotnet new -u Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly +``` From 8553f62b23f55e9c2e28e2475255726831ff55cd Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Thu, 3 Feb 2022 13:34:44 +0100 Subject: [PATCH 08/10] Missed a name change Change description Include generated packages --- .../.template.config/template.json | 2 +- ...Templates.FluentUI.BlazorWebAssembly.nuspec} | 0 ....Templates.FluentUI.BlazorServer.1.0.0.nupkg | Bin 0 -> 16975 bytes ...lates.FluentUI.BlazorWebAssembly.1.0.0.nupkg | Bin 0 -> 19379 bytes 4 files changed, 1 insertion(+), 1 deletion(-) rename templates/FluentUIBlazorWebAssemblyApp/{Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec => Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.nuspec} (100%) create mode 100644 templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg create mode 100644 templates/Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.1.0.0.nupkg diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json index 558f78a0db..4bc4354dd2 100644 --- a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json @@ -10,7 +10,7 @@ "name": "FluentUI Blazor Server App", "shortName": "fluentuiblazorserver", "defaultName": "BlazorApp", - "description": "A project template for creating a Blazor server app that uses the Fluent UI component library and runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).", + "description": "A project template for creating a Blazor app that uses the Fluent UI component library, runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).", "tags": { "language": "C#", "type": "project" diff --git a/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec b/templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.nuspec similarity index 100% rename from templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Template.FluentUI.BlazorWebAssembly.nuspec rename to templates/FluentUIBlazorWebAssemblyApp/Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.nuspec diff --git a/templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg b/templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..9da3ba4264976c95dd99ff5b54906a4d9ff6b6f5 GIT binary patch literal 16975 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 CHO6cJ literal 0 HcmV?d00001 From 190169c7d487736d33b65278aa34644355779c77 Mon Sep 17 00:00:00 2001 From: Vincent Baaij Date: Thu, 3 Feb 2022 13:48:29 +0100 Subject: [PATCH 09/10] Update classifications --- .../.template.config/template.json | 8 ++++++-- .../.template.config/template.json | 8 +++++--- ...emplates.FluentUI.BlazorServer.1.0.0.nupkg | Bin 16975 -> 16997 bytes ...tes.FluentUI.BlazorWebAssembly.1.0.0.nupkg | Bin 19379 -> 19398 bytes 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json index 4bc4354dd2..e6f4654fd8 100644 --- a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/.template.config/template.json @@ -3,8 +3,12 @@ "author": "Microsoft Fast", "sourceName": "FluentUIBlazorServerApp", "classifications": [ - "Web", - "Blazor" + "Linux", + "macOS", + "Windows", + "Blazor", + "Cloud", + "Web" ], "identity": "Microsoft.Fast.Templates.FluentUI.Server", "name": "FluentUI Blazor Server App", diff --git a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json index 66baa465b2..59cd9577e4 100644 --- a/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json +++ b/templates/FluentUIBlazorWebAssemblyApp/Content/FluentUIBlazorWebAssemblyApp/.template.config/template.json @@ -3,10 +3,12 @@ "author": "Microsoft Fast", "sourceName": "FluentUIBlazorWebAssemblyApp", "classifications": [ - "Web", + "Linux", + "macOS", + "Windows", "Blazor", - "WebAssembly", - "PWA" + "Cloud", + "Web" ], "identity": "Microsoft.Fast.Templates.FluentUI.WebAssembly", "name": "FluentUI Blazor WebAssembly App", diff --git a/templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg b/templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg index 9da3ba4264976c95dd99ff5b54906a4d9ff6b6f5..a186a2093b4693dbf57cd51be7f287d1308b5997 100644 GIT binary patch delta 1502 zcmai!XH*kb6vvYQfk46xihyCSFq9;45_SwFT96=zO<7@sRfGs6N+Z*SXna;sK#^qy ztAr@4f(AsOl#K&0Ks8LEj1nwJYk}%H`l;`Jc;}t_yYHO)KlguoGN2O~P(?RqF>y2m z0+E8K#8Eu7rula<(1v1;L{#TanOT!CyhywjOaGc)q+I!);NZuPf!G%jjmhL`|DJCABawQ3vJo zjz{&E@&YL?w6O%qWduveyz2Ry9og%sCroo*y)Vml6KOW0*fr-}{8HfMi3lUyjjlR4 zo}r?xcVf}@S=RE0`}<|Is%>L(Yl4I4llLiU)E>q+=ZoZ~fffGtxSM;mCrThteqL^R zF1irGsinIjKE@8P*Agx$pdH8iSp~$K{dTe{P0W+!lv&dL4civ$TSYdE0Il%AvC_TXtSDrUpgD$?_H8R5rU=z*$YUSiEd?^_(2&w}EB_uT1fzkx3 z2sH49b9rfE7ht?esZJBEAm(pMp`QaRE7 znI?!U4@`{L7fN*7W)ivIEX^z}ae8uhLb^tZoUT{Zr$%J=jotO4@rP+FG#v zLX=a?y-s77V~hfglo#g$;!-lKQ+sB{6^&U>&f{AD?+S+T#EWi7S6f*T3FbX+IPaqE>O%s zt!S2|@f6crv(ekk`tUHNPQZ7vywzJgAAIGa0zD*>??m?qXN^~*r2K7t2xFyJA9}c( z&N=PwZul{7!3fVNJ1sVkPdSyIqf_Oj!=Q5gE4@8g9_}K+TWU&OOyp^8S!U#osY7ZH zD9yL>>Y2R54mRuY79-v@zn3W{m){`Djh94pkh;$+koqQCJA=L)42s85Mgx2Xln|`h z2cGHllwu1owc(kLat`RjiS3wa4*XF;gTon}_ zaxnvpME42ml(_zPj|MrMc-+$m$z5#(tJTFxDkJG&!h+^y?dURURu>_3I8uGXs**_( zPMgq(=PhVc%Y83>du${ZuP4;r{>L}}&U*DAlR4Xt_Bj&ISAAcS6+V;t(I73a>dlpb zQYhP#U-rS#ZP59h(4LNko9 zVWSyg9u`8NM?~O5Lve(VFe05u54XhQLPN~)VPOPw5)W-@3zPc1U4Spq9HtTnvWX#^ zw!r`ylJ2%`)<|+-o```R69*yII$$r!3dWNFT5xTULsABlQfQ!VWwuFTzy=8m>yY|H z$pe2YGuUgyHc69G2OU;O9@%%U=IlntQ~fNDRnfkvX_Rf?cQe9b}NAs z_E=b*0nkz*fH{36*g?jEc!&QgTyb)MNk)Q1Lo{-8JAOLL*zMX1Lo}#xKx%w#UkJqR zGq-)`12S3Xlb?5KZ1ulA5t}(TF$hHIEA}T)O4ij|9!uMgJ Wac<5M@U6d8H)90>f%p@*UjG8Rg?g6& delta 1468 zcmai!Sy0ng6vmT(5{Y3ATLak05=n>@2_cZh7(`hD70`l+RF*6th^PU=uq9Ry6cKeU zC{PGx$7(?hR7$`WRAeauRL}-U6+s+3iWSmA#oC}#wNE|w<$iPS{XLvH-#3#3AIgCn z2l*qArZ5-`4YS$5C3v^Hnc$4Ey;K~g@E+4An~NU~PDnh;Wa6&J*#r~KJ*$KLx#)C@ z0QGE#VQg#Ks7X3}Z4r&8pzig2vy~zHyc)?A2-^MsjV^N}7 zCy<58E$Sus&k>_gA!#^IGJQ8jP z$up2AA%I|*g0qMj`5m+xE=TJOz(FX>6pRtAK`9F_N9aytR2Pmgu<-;`I!Yv<6Ax=j8ACQ)#rtMj%dV#?S}P8W_7nCL2TQY-$hWg z1yZI5rc(>+VuZYcdms0JLb>!m;_dV&!W12hHzspSg zB+oRjV`)}6Zju|_Q&p1o`k@B<#HM(d7n!ENq1c+Dxse7ph-8O5i6ppwYDHz|GD4m} zIt{H}F^8>}OXF`q;mVSJUEm|*hS1rG1DNAMXX-R>UIkkAY5t&}e0-SeS=*yNS4{IY z8u!TJ$3Dv^Dkdk?cjwj?@I8uiV;{zcSBHmZ9n;`grT6 zt~hh=w!|v&tl^a<=;MV3O4>$i3YE{G(-<*Afjh%hAdKcQ7*t*ikKyd*PNnmxG&$Lg z4Wa)H3~+!>fo%4JYI-!-%fJI01_3l9u|UBfL+wb=Wnc?dGtIRAz(c52Z)FtI6ofGh zK|T`?HZtG6o@6>fSoGWW1{Mk6nRsa8os43V<)N$@1gPNP!EO!#IIl+o4qg|$K@~X4{nssW-2I lF4BOS=E(lP5j!1B+ArWA4Dv^O|k{ z!v;KU@0BYnl=xccpagI*_kr@uMJRv!_nzosnemq$jaVB5EB>%W4VlTF`y%u%P?@J)N@{?`^F;`1g`!$nS?T zz3%A&0h=JYy>7%G|9f3%h7-STMS@fG90}=+*VQHAiTg6z zzg^+}GdD4EmeZY6785;9TbJDE=Gyo`XamzsCrQcWQHgqzmDAQq&6~Q%tLxFm6ZXdE zZk%2ETpl%KPc^vIECq%vBQpbo6)*=Kv()U|;j*I31|Z4tBXrswZ5CM5U(^5o?I)%Mzf{r|2(Hdv!FIJ`@9n)FAHIIlmYVVEz+b=2 z9=@ro)*EwA=4<4Bx!hDnrG#s{O!uin2`A@Q6ew4fGR*? z*R59)i=^{rR!Ci{pCqwuW6X*z-vuo9ObE1SV~!O|nDI%lmcL?3i(wPriU}<$`#Hoe zP6(ZCaO{Ei!<@q>gcsyDP8R3*cgKgfzj^9qt!6nXE#=#lZyRTA@_3L?%CIf1q3o3V zrez5dYr-G#`G$S?`OE;|u00k1**72K57T23F4!z*C(8(=C)?WFD3}@>CmN=t85*S-S(+po znI|P%rly)3q$Q?WCZ-uDT5O(aFU-UV&tQ|cIvU7>c<6}&m@c3oVlsaS>WhKhl^`ZNS<79EiC+S2v%Q4)GUhK&JKN`JP%#ZN@;R!Q}nMoRe9+ zw3u2=!HVL&OqpzK!OWvxDxes7?IpvgI+?>;3B=LymSJ+SpX_U|V@oKO^a_e|Q<4h; Uyjj^mAtDKce>oW#HamiN0F8wWPXGV_ delta 1292 zcmX>$opJMY#`*wnW)=|!1_llWnOx@(4mg z*-)VEebax%C-+od=WSkD61{C(tK1%sqs6o4-qp*q^SG4s_bc0)OG-_0ho4lY-JALH zk1ziV4!bYcLM)VdlnqXq?R}|L)A82h!Ou6}(tfct_q?q4zwupf0n5yQhqXQL=3QFw zZ9%HSwMNgW*Q#`rtA6!at&B@$|I%mZ_jf6?y0%kz+!kBQABk7@elojZCY1U$a>g?6 zQ$2xULAt*8ojN3Pm%djBn_*X{oGqzzv#D$)H_IkDzJy1g+jQ7|=KbY<^Gd+seVedh z`vZr>Ety(>LiCT<)GK!F5#v5ssb;XKUiN#u_X4R!IVn>@BKeh{3%^a~f2eduT=sx` zHS2z3llHJe#+_OraV9lN+-jRPW)85pd9LF=2DT$EqDxrVWhhc9NEQ%Jq?Eu9je{3)i%{=7Ez zC8@auIf*5ydRfK!d8vW6{znaX?o9l_AC}0#`SooM|AomC4m=8MM;8!Q8|8t+8KSNisp)7AijPu2nZLhDsa^9o;eAS9{E!*wdOBKJY2#N6x zme~4vPP^QiME!k%H&lLH5|h7qL78ug;%vJ~m+Pnho-Jo@yFX~F*usUcj+b(rZg?4Z z#O&IFsP`(qd!JUlQu)#2`F>`?f7_&6*XPAucdgrZe$O_)*=zguPni~(`E!rOq@v~P z|F}o&uop|1#^CN@v13As@ZFtx%O+;5&P?hy(pfP}s^_nqxv`u_me66dC)Q8CNiqHA zH{#mOvA~mwr#{$fYBpo}BmjcED=AbBQ+`Oar=YVe_ysGJrTTc^}t2Wit?Og zEzi%LN}TG*E}D9(Dr)yqEq$RIQEwa8zFZ)8dE%Or5^S%h>~Nec60_&d>C~Mwf^v#i z#Cv<$?lMcV{<+`wcKh<=8D8CwHBY>ssbFAwwBYl_=RzzmvAjI_oqzL9{xCfz zncU5WcCw5>dUAlhje>D%TC$l%s&TSOvav~unPsAhfrX)Ia*An}$c#>mOyPU%cx%##b54JL1J(qdZ1GWj5j*JL$kEk^0dfzB~Zsq8>G z^~uZG`6fSc)?$k00CVSZNKOuL(PFaTg>r=^_we%Q1b8zti7-GiFKP;6U~mSeFa-Dr z(3kE=z-%r5<`rg|c8p=VXN@KlRXJ z6r3#JnaXrkWAZ{%{mIKb&6tXf!AxE+6Q&|lAk%7ct(O*)rY%_XhL;K`=>B=hFbUaB zcC-`aL-sOI#@<_o$ Date: Thu, 3 Feb 2022 14:31:00 +0100 Subject: [PATCH 10/10] =?UTF-8?q?Missed=20the=20.cshtml=20files=20for=20th?= =?UTF-8?q?e=20Server=20template=20=F0=9F=A4=A6=E2=80=8D=E2=99=82=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/Error.cshtml | 42 ++++++++++++++++++ .../Pages/Error.cshtml.cs | 27 +++++++++++ .../Pages/_Host.cshtml | 8 ++++ .../Pages/_Layout.cshtml | 32 +++++++++++++ ...emplates.FluentUI.BlazorServer.1.0.0.nupkg | Bin 16997 -> 19583 bytes ...tes.FluentUI.BlazorWebAssembly.1.0.0.nupkg | Bin 19398 -> 19399 bytes 6 files changed, 109 insertions(+) create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml.cs create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Host.cshtml create mode 100644 templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Layout.cshtml diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml new file mode 100644 index 0000000000..76437f6158 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml @@ -0,0 +1,42 @@ +@page +@model FluentUIBlazorServerApp.Pages.ErrorModel + + + + + + + + Error + + + + + +
+
+

Error.

+

An error occurred while processing your request.

+ + @if (Model.ShowRequestId) + { +

+ Request ID: @Model.RequestId +

+ } + +

Development Mode

+

+ Swapping to the Development environment displays 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. +

+
+
+ + + diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml.cs b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml.cs new file mode 100644 index 0000000000..a2d4233dc0 --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/Error.cshtml.cs @@ -0,0 +1,27 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace FluentUIBlazorServerApp.Pages +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [IgnoreAntiforgeryToken] + public class ErrorModel : PageModel + { + public string? RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + private readonly ILogger _logger; + + public ErrorModel(ILogger logger) + { + _logger = logger; + } + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} \ No newline at end of file diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Host.cshtml b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Host.cshtml new file mode 100644 index 0000000000..82a35c071a --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Host.cshtml @@ -0,0 +1,8 @@ +@page "/" +@namespace FluentUIBlazorServerApp.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@{ + Layout = "_Layout"; +} + + diff --git a/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Layout.cshtml b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Layout.cshtml new file mode 100644 index 0000000000..32434aaf9e --- /dev/null +++ b/templates/FluentUIBlazorServerApp/Content/FluentUIBlazorServerApp/Pages/_Layout.cshtml @@ -0,0 +1,32 @@ +@using Microsoft.AspNetCore.Components.Web +@namespace FluentUIBlazorServerApp.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/templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg b/templates/Microsoft.Fast.Templates.FluentUI.BlazorServer.1.0.0.nupkg index a186a2093b4693dbf57cd51be7f287d1308b5997..3c1e05ce96082acf71fd050e68678dfb06152ddd 100644 GIT binary patch delta 3678 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 A*Z=?k delta 1326 zcmah|Yfuws6y04zLL?!C1WIXK!b>0nsR^MC)X>SpgperF!CGw<5}u-BcvJ{lQxO>- z=!myPYp_}sELcZj9kA2~h+1ifVlmo^f=&k%5C=+u3O>>$#Tot8-I?7v=iYO7zI)C( z4xoJ{sMVmGMd2a{;)?i~m5FhSqyYjHL3kK~xRGp9Zra+scZJi>ugX{ITIX>~hg}@X z>o4|IKWSQYdp9#;=&~)^+Ppls%ge^vr?)4qZw_;3kBKYKcUb&>HH{zDjF!bRZc7r+ zlzB=zYg@*cva8ukZr&Q5%BpK+o2IOsJzL#^w&^qbMe2f9%U+G$%gM$;m? zW6e$LWZrHzSM{K?s8V{kGuGYbqGeOHaxgmXxvcerZ;#B+U+JH=s<@Ulj-CwI&!1ft zFUk;R26x}7^B@KrxJM7R-yJAgX_X3}UM=50{Q6RfBs35MUGOB4C{dt9@hlxm>=6Hg z677^8lvv0B6l!S~2|Mc)O3ZPaM;19e49=>!#2E7d3d=NH;_ErvP}ssAB98gnP@>A~ z4+^o)lZO&NhhCxs?st|@%`L@pl(tJ!x-xjrV@_J4d;7x^q`RULtdB;2`+a%GeA>vtyv7qRZ8cN%c8g{3I``x3 z+!o(|j+LejY;lAXA2{>pmp6~2)}<{~&r}Ax?s4yjCIR{dce22mXSxg?^Y)n~W%z%xtLHu-4s!?J}PmfGV z5lf7zQj^q__Fkko#VCqQO_hkEiA%9E%=OhD0Tj6i^D)Ewaw8;ZacGbSfi?IoIHzU6 zSUis9P@sH40NkfiVUNTO%H#r+fE-02bjiJ7JK6A(>TIwEbD<~R8;0dL*5>+#MxhX5 z_vlWlhsJ;-3LeC%aO}ivC$&>00G<-ZVi-=iO34Gp0vvn#A2h3J!1C~b8%hCIFBsG@rY(D_<6)Phz*`?K`#;Zx=Dc;ODQ1Jtg*rXRm%PX52=a+^8vP4Myabj2 diff --git a/templates/Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.1.0.0.nupkg b/templates/Microsoft.Fast.Templates.FluentUI.BlazorWebAssembly.1.0.0.nupkg index ed07e45b9f3d01835f27f2f5f1c543119158e748..a8faa6699a3b000fe53c027135498e811acba8f8 100644 GIT binary patch delta 841 zcmX>$o$>f|#`*wnW)=|!1_lm>Z^h0bhL>B`7%(z0C^9iHa05l-i&Arn_4PpH)QP^? zOojq&?_2-1PuT5Q7JEG+=IC3ciWjarw#VP3#P0g3&>8gmwe$*IFU>8-4Jzl&EKl24 zbD7zyk$wI(8aNMo9`0mYv_R#N_ZYPAQTzb`Q;5&Va ze7yu>oKUlDO488?(WdFaab6qGs~ueu+O%Uq^h-U-&uKQ*Yd)_@biL+t{b%|y z%e_0lJYq%-+EWcKHA{g(%gD^YUd z3@j6qEiBX0(hN+D(@YXA%*-v!k`t2*O-)Qw(h@hXu@`3IgvZz96OINTt-l;)7$YZ( zJEb#)F;6aJHkiD@NsDP2%jAPBUX#_FwHT!*2Rg?vrLqI%)F&@z=bQY*S&J!}1I(Sv zAvrm~MT^OT7s?fy+{4Q=`5;i}BTPtevZ|{&(=C3m3K;?6$unHFn0^a@xwe9$liakJ zE((KrQKEvAQ-E9vQ7Bh*@);o4Kn%>4clTftkeK{XQg3pkguvwG?pjR8B!OJ($$TDK zOwXmk%u)|MrdC<7qI0rBlb?EMF{(}$@JwZTsWEw>ss7|;o@Pw##$YC|mkCpwDUfM3 zxz;o$=Uo#`*wnW)=|!1_llW;R5H7)lIT{^cfi#6qy(pxPhYaMX5Q(`g$O8>O|k{ z!v;KU@0BYnl=xccpagI*_kr@uMJRv!_nzosnemq$jaVB5EB>%W4VlTF`y%u%P?@J)N@{?`^F;`1g`!$nS?T zz3%A&0h=JYy>7%G|9f3%h7-STMS@fG90}=+*VQHAiTg6z zzg^+}GdD4EmeZY6785;9TbJDE=Gyo`XamzsCrQcWQHgqzmDAQq&6~Q%tLxFm6ZXdE zZk%2ETpl%KPc^vIECq%vBQpbo6)bP95-!+mWGBlAq$da3+bEbC z8z&m3q!}8e8CjYn8kr|0Tc)O(8>A(sS|+9$Ct7S?YcI^i36HPICmjtyT7NsrFh)$4 za7t$ko!sCQ&9szdawEI?oOiOIi{<2AUY^N^T(p=zfVdWu)m+V)Zt??l>Q3$fGJgqxnV(!OnJx$enHG~% z-Lx3RCr@xoXVMn~TTmhrY