+
+
+
+
+```
+
+### Project File Contract (`Web/Web.csproj`)
+```xml
+
+
+
+ net10.0
+ enable
+ enable
+ Web
+
+
+
+
+
+
+
+
+```
+
+# Testing
+
+### Validation Approach
+Verification focuses on compilation integrity, project file correctness, client asset resolution, and routing fidelity under the standalone execution model.
+
+### Key Scenarios
+- **Build Verification:** Run `dotnet build` on `Resume.slnx` and `Web/Web.csproj` to confirm zero compilation warnings or errors across the new namespaces.
+- **Startup Execution:** Launch the project via `dotnet run --project Web/Web.csproj` and verify that the development server starts up cleanly on the configured localhost port.
+- **Root Page Rendering (`/`):** Verify `index.html` loads, WebAssembly runtime bootstraps `App.razor`, and `Home.razor` displays Jonathan McCaffrey's overview, contact info, skills, and work experience.
+- **Routing & Not Found (`/invalid-path`):** Verify that navigating to unmapped routes renders the `NotFound` component inside `MainLayout`.
+- **Static Assets Integrity:** Check that Bootstrap, `app.css`, `Web.styles.css`, and `favicon.png` are returned with HTTP 200 responses.
+
+### Edge Cases
+- Scoped CSS bundle path changes (`Website.styles.css` -> `Web.styles.css`) properly reflected in `index.html`.
+- No lingering references to `Website` in usings, project configurations, or solution metadata.
+- Clean removal of `ReconnectModal` and `Error.razor` without dangling references in `App.razor` or `_Imports.razor`.
+
+# Delivery Steps
+
+### ✓ Step 1: Rename project files, solution references, and namespace declarations
+The project directory, project file, solution definition, and all source namespaces are unified under `Web`.
+
+- Rename the directory `Website` to `Web` and rename `Website.csproj` to `Web.csproj`.
+- Update the solution file `Resume.slnx` to reference `Web/Web.csproj` instead of `Website/Website.csproj`.
+- Update the `` in `Web.csproj` to `Web`.
+- Refactor all C# namespace declarations in `Web/Data/Overview.cs`, `Web/Data/PersonalInfo.cs`, `Web/Data/Skills.cs`, and `Web/Data/WorkExperience.cs` from `Website.Data` to `Web.Data`.
+- Refactor `@using Website.*` statements across `Web/Components/_Imports.razor`, `Web/Components/Pages/Home.razor`, and `Web/Program.cs` to `Web.*`.
+- Update scoped CSS bundle link references from `Website.styles.css` to `Web.styles.css`.
+
+### ✓ Step 2: Convert project SDK and package dependencies to Blazor Standalone
+The project file is configured as a standalone Blazor WebAssembly application with client-side runtime packages and tooling.
+
+- Update the project SDK in `Web.csproj` from `Microsoft.NET.Sdk.Web` to `Microsoft.NET.Sdk.BlazorWebAssembly`.
+- Remove the server hosting package `Microsoft.AspNetCore.Components.WebAssembly.Server`.
+- Add `Microsoft.AspNetCore.Components.WebAssembly` (version `10.0.*`) as a runtime package reference.
+- Add `Microsoft.AspNetCore.Components.WebAssembly.DevServer` (version `10.0.*`, `PrivateAssets="all"`) for local development execution.
+- Update `Web/Properties/launchSettings.json` to streamline local development profiles with the WebAssembly debug proxy and browser launch.
+
+### ✓ Step 3: Restructure client entry point, HTML host, and Blazor component hierarchy
+The application boots as a client-side WebAssembly single-page application using `index.html` and `WebAssemblyHostBuilder`.
+
+- Create `Web/wwwroot/index.html` with root mounting target `#app`, `` integration, static stylesheet references, and `_framework/blazor.webassembly.js`.
+- Rewrite `Web/Program.cs` to initialize `WebAssemblyHostBuilder.CreateDefault(args)`, mount `App` to `#app` and `HeadOutlet` to `head::after`, configure standard scoped `HttpClient`, and execute `await builder.Build().RunAsync()`.
+- Update `Web/Components/App.razor` to act as the client component router containing ``, ``, and `` definitions.
+- Remove server-specific artifacts that are obsolete in standalone mode: `Web/Components/Layout/ReconnectModal.razor`, `ReconnectModal.razor.css`, `ReconnectModal.razor.js`, and `Web/Components/Pages/Error.razor`.
+- Clean up `Web/Components/_Imports.razor` to remove server render-mode directives and include client WebAssembly namespaces.
+- Move or verify client configuration files in `Web/wwwroot/` if required for client settings.
\ No newline at end of file
diff --git a/Resume.slnx b/Resume.slnx
index 1fcdb40..4c25ce8 100644
--- a/Resume.slnx
+++ b/Resume.slnx
@@ -1,3 +1,3 @@
-
+
diff --git a/Web/Components/App.razor b/Web/Components/App.razor
new file mode 100644
index 0000000..af41dcc
--- /dev/null
+++ b/Web/Components/App.razor
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ Not found
+
+
Sorry, there's nothing at this address.
+
+
+
diff --git a/Website/Components/Layout/MainLayout.razor b/Web/Components/Layout/MainLayout.razor
similarity index 100%
rename from Website/Components/Layout/MainLayout.razor
rename to Web/Components/Layout/MainLayout.razor
diff --git a/Website/Components/Layout/MainLayout.razor.css b/Web/Components/Layout/MainLayout.razor.css
similarity index 100%
rename from Website/Components/Layout/MainLayout.razor.css
rename to Web/Components/Layout/MainLayout.razor.css
diff --git a/Website/Components/Pages/Home.razor b/Web/Components/Pages/Home.razor
similarity index 98%
rename from Website/Components/Pages/Home.razor
rename to Web/Components/Pages/Home.razor
index fbbf6c3..8630b71 100644
--- a/Website/Components/Pages/Home.razor
+++ b/Web/Components/Pages/Home.razor
@@ -1,6 +1,6 @@
@page "/"
-@using Website.Data
+@using Web.Data
diff --git a/Website/Components/Pages/Home.razor.css b/Web/Components/Pages/Home.razor.css
similarity index 100%
rename from Website/Components/Pages/Home.razor.css
rename to Web/Components/Pages/Home.razor.css
diff --git a/Website/Components/Pages/NotFound.razor b/Web/Components/Pages/NotFound.razor
similarity index 100%
rename from Website/Components/Pages/NotFound.razor
rename to Web/Components/Pages/NotFound.razor
diff --git a/Website/Components/_Imports.razor b/Web/Components/_Imports.razor
similarity index 66%
rename from Website/Components/_Imports.razor
rename to Web/Components/_Imports.razor
index e05c470..f55b99f 100644
--- a/Website/Components/_Imports.razor
+++ b/Web/Components/_Imports.razor
@@ -3,9 +3,9 @@
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
-@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
+@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Microsoft.JSInterop
-@using Website
-@using Website.Components
-@using Website.Components.Layout
+@using Web
+@using Web.Components
+@using Web.Components.Layout
diff --git a/Website/Data/Overview.cs b/Web/Data/Overview.cs
similarity index 97%
rename from Website/Data/Overview.cs
rename to Web/Data/Overview.cs
index 1a3be90..021e8eb 100644
--- a/Website/Data/Overview.cs
+++ b/Web/Data/Overview.cs
@@ -1,4 +1,4 @@
-namespace Website.Data;
+namespace Web.Data;
public static class Overview
{
diff --git a/Website/Data/PersonalInfo.cs b/Web/Data/PersonalInfo.cs
similarity index 98%
rename from Website/Data/PersonalInfo.cs
rename to Web/Data/PersonalInfo.cs
index f0414de..78e9afd 100644
--- a/Website/Data/PersonalInfo.cs
+++ b/Web/Data/PersonalInfo.cs
@@ -1,4 +1,4 @@
-namespace Website.Data;
+namespace Web.Data;
public static class PersonalInfo
{
diff --git a/Website/Data/Skills.cs b/Web/Data/Skills.cs
similarity index 98%
rename from Website/Data/Skills.cs
rename to Web/Data/Skills.cs
index fd51585..a95bbb9 100644
--- a/Website/Data/Skills.cs
+++ b/Web/Data/Skills.cs
@@ -1,4 +1,4 @@
-namespace Website.Data;
+namespace Web.Data;
public static class Skills
{
diff --git a/Website/Data/WorkExperience.cs b/Web/Data/WorkExperience.cs
similarity index 95%
rename from Website/Data/WorkExperience.cs
rename to Web/Data/WorkExperience.cs
index 6fc41ed..710f7c2 100644
--- a/Website/Data/WorkExperience.cs
+++ b/Web/Data/WorkExperience.cs
@@ -1,4 +1,4 @@
-namespace Website.Data;
+namespace Web.Data;
public static class WorkExperience
{
@@ -46,12 +46,6 @@ public static class WorkExperience
IsVisible = true
},
new Point
- {
- Description =
- "Taken the initiative in creating a variety of onboarding internal wiki documents explaining parts of the codebase that were well-loved by the team.",
- IsVisible = true
- },
- new Point
{
Description = "Created an Azure DevOps pipeline to automate taking snapshots of the database schema to be aware of changes from multiple teams altering the database.",
IsVisible = true
@@ -97,7 +91,7 @@ public static class WorkExperience
new Point
{
Description =
- "Came to the conclusion that I wanted to focus my career in .NET, and left the company to pursue Blazor research and C# opportunities. Unfortunately, Blazor development work is not popular.",
+ "Came to the conclusion that I wanted to focus my career on .NET, and left the company to pursue Blazor research and C# opportunities. Unfortunately, Blazor development isn't popular.",
IsVisible = true
}
]
diff --git a/Web/Program.cs b/Web/Program.cs
new file mode 100644
index 0000000..a2976c0
--- /dev/null
+++ b/Web/Program.cs
@@ -0,0 +1,11 @@
+using Microsoft.AspNetCore.Components.Web;
+using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
+using Web.Components;
+
+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/Website/Properties/launchSettings.json b/Web/Properties/launchSettings.json
similarity index 100%
rename from Website/Properties/launchSettings.json
rename to Web/Properties/launchSettings.json
diff --git a/Website/Website.csproj b/Web/Web.csproj
similarity index 51%
rename from Website/Website.csproj
rename to Web/Web.csproj
index ca6bd16..97886a9 100644
--- a/Website/Website.csproj
+++ b/Web/Web.csproj
@@ -1,15 +1,15 @@
-
+net10.0enableenable
- true
- Website
+ Web
-
+
+
diff --git a/Website/wwwroot/app.css b/Web/wwwroot/app.css
similarity index 69%
rename from Website/wwwroot/app.css
rename to Web/wwwroot/app.css
index 73a69d6..a5e1403 100644
--- a/Website/wwwroot/app.css
+++ b/Web/wwwroot/app.css
@@ -57,4 +57,58 @@ h1:focus {
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
text-align: start;
-}
\ No newline at end of file
+}
+
+#blazor-error-ui {
+ color-scheme: light only;
+ background: lightyellow;
+ bottom: 0;
+ box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
+ box-sizing: border-box;
+ 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;
+ }
+
+.loading-progress {
+ position: relative;
+ display: block;
+ width: 8rem;
+ height: 8rem;
+ margin: 20vh auto 1rem auto;
+}
+
+ .loading-progress circle {
+ fill: none;
+ stroke: #e0e0e0;
+ stroke-width: 0.6rem;
+ transform-origin: 50% 50%;
+ transform: rotate(-90deg);
+ }
+
+ .loading-progress circle:last-child {
+ stroke: #1b6ec2;
+ stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
+ transition: stroke-dasharray 0.05s ease-in-out;
+ }
+
+.loading-progress-text {
+ position: absolute;
+ text-align: center;
+ font-weight: bold;
+ inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
+}
+
+ .loading-progress-text:after {
+ content: var(--blazor-load-percentage-text, "Loading...");
+ }
\ No newline at end of file
diff --git a/Website/appsettings.Development.json b/Web/wwwroot/appsettings.Development.json
similarity index 100%
rename from Website/appsettings.Development.json
rename to Web/wwwroot/appsettings.Development.json
diff --git a/Website/appsettings.json b/Web/wwwroot/appsettings.json
similarity index 100%
rename from Website/appsettings.json
rename to Web/wwwroot/appsettings.json
diff --git a/Website/wwwroot/favicon.png b/Web/wwwroot/favicon.png
similarity index 100%
rename from Website/wwwroot/favicon.png
rename to Web/wwwroot/favicon.png
diff --git a/Web/wwwroot/index.html b/Web/wwwroot/index.html
new file mode 100644
index 0000000..2d3f14a
--- /dev/null
+++ b/Web/wwwroot/index.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ Jonathan McCaffrey - Resume
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
diff --git a/Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map b/Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
rename to Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.js
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
diff --git a/Website/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map b/Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
similarity index 100%
rename from Website/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
rename to Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
diff --git a/Website/Components/App.razor b/Website/Components/App.razor
deleted file mode 100644
index 4cdcc56..0000000
--- a/Website/Components/App.razor
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Website/Components/Layout/ReconnectModal.razor b/Website/Components/Layout/ReconnectModal.razor
deleted file mode 100644
index e740b0c..0000000
--- a/Website/Components/Layout/ReconnectModal.razor
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
diff --git a/Website/Components/Layout/ReconnectModal.razor.css b/Website/Components/Layout/ReconnectModal.razor.css
deleted file mode 100644
index 3ad3773..0000000
--- a/Website/Components/Layout/ReconnectModal.razor.css
+++ /dev/null
@@ -1,157 +0,0 @@
-.components-reconnect-first-attempt-visible,
-.components-reconnect-repeated-attempt-visible,
-.components-reconnect-failed-visible,
-.components-pause-visible,
-.components-resume-failed-visible,
-.components-rejoining-animation {
- display: none;
-}
-
-#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible,
-#components-reconnect-modal.components-reconnect-show .components-rejoining-animation,
-#components-reconnect-modal.components-reconnect-paused .components-pause-visible,
-#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible,
-#components-reconnect-modal.components-reconnect-retrying,
-#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible,
-#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation,
-#components-reconnect-modal.components-reconnect-failed,
-#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible {
- display: block;
-}
-
-
-#components-reconnect-modal {
- background-color: white;
- width: 20rem;
- margin: 20vh auto;
- padding: 2rem;
- border: 0;
- border-radius: 0.5rem;
- box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
- opacity: 0;
- transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
- animation: components-reconnect-modal-fadeOutOpacity 0.5s both;
- &[open]
-
-{
- animation: components-reconnect-modal-slideUp 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity 0.5s ease-in-out 0.3s;
- animation-fill-mode: both;
-}
-
-}
-
-#components-reconnect-modal::backdrop {
- background-color: rgba(0, 0, 0, 0.4);
- animation: components-reconnect-modal-fadeInOpacity 0.5s ease-in-out;
- opacity: 1;
-}
-
-@keyframes components-reconnect-modal-slideUp {
- 0% {
- transform: translateY(30px) scale(0.95);
- }
-
- 100% {
- transform: translateY(0);
- }
-}
-
-@keyframes components-reconnect-modal-fadeInOpacity {
- 0% {
- opacity: 0;
- }
-
- 100% {
- opacity: 1;
- }
-}
-
-@keyframes components-reconnect-modal-fadeOutOpacity {
- 0% {
- opacity: 1;
- }
-
- 100% {
- opacity: 0;
- }
-}
-
-.components-reconnect-container {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 1rem;
-}
-
-#components-reconnect-modal p {
- margin: 0;
- text-align: center;
-}
-
-#components-reconnect-modal button {
- border: 0;
- background-color: #6b9ed2;
- color: white;
- padding: 4px 24px;
- border-radius: 4px;
-}
-
- #components-reconnect-modal button:hover {
- background-color: #3b6ea2;
- }
-
- #components-reconnect-modal button:active {
- background-color: #6b9ed2;
- }
-
-.components-rejoining-animation {
- position: relative;
- width: 80px;
- height: 80px;
-}
-
- .components-rejoining-animation div {
- position: absolute;
- border: 3px solid #0087ff;
- opacity: 1;
- border-radius: 50%;
- animation: components-rejoining-animation 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
- }
-
- .components-rejoining-animation div:nth-child(2) {
- animation-delay: -0.5s;
- }
-
-@keyframes components-rejoining-animation {
- 0% {
- top: 40px;
- left: 40px;
- width: 0;
- height: 0;
- opacity: 0;
- }
-
- 4.9% {
- top: 40px;
- left: 40px;
- width: 0;
- height: 0;
- opacity: 0;
- }
-
- 5% {
- top: 40px;
- left: 40px;
- width: 0;
- height: 0;
- opacity: 1;
- }
-
- 100% {
- top: 0px;
- left: 0px;
- width: 80px;
- height: 80px;
- opacity: 0;
- }
-}
diff --git a/Website/Components/Layout/ReconnectModal.razor.js b/Website/Components/Layout/ReconnectModal.razor.js
deleted file mode 100644
index a44de78..0000000
--- a/Website/Components/Layout/ReconnectModal.razor.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// Set up event handlers
-const reconnectModal = document.getElementById("components-reconnect-modal");
-reconnectModal.addEventListener("components-reconnect-state-changed", handleReconnectStateChanged);
-
-const retryButton = document.getElementById("components-reconnect-button");
-retryButton.addEventListener("click", retry);
-
-const resumeButton = document.getElementById("components-resume-button");
-resumeButton.addEventListener("click", resume);
-
-function handleReconnectStateChanged(event) {
- if (event.detail.state === "show") {
- reconnectModal.showModal();
- } else if (event.detail.state === "hide") {
- reconnectModal.close();
- } else if (event.detail.state === "failed") {
- document.addEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
- } else if (event.detail.state === "rejected") {
- location.reload();
- }
-}
-
-async function retry() {
- document.removeEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
-
- try {
- // Reconnect will asynchronously return:
- // - true to mean success
- // - false to mean we reached the server, but it rejected the connection (e.g., unknown circuit ID)
- // - exception to mean we didn't reach the server (this can be sync or async)
- const successful = await Blazor.reconnect();
- if (!successful) {
- // We have been able to reach the server, but the circuit is no longer available.
- // We'll reload the page so the user can continue using the app as quickly as possible.
- const resumeSuccessful = await Blazor.resumeCircuit();
- if (!resumeSuccessful) {
- location.reload();
- } else {
- reconnectModal.close();
- }
- }
- } catch (err) {
- // We got an exception, server is currently unavailable
- document.addEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
- }
-}
-
-async function resume() {
- try {
- const successful = await Blazor.resumeCircuit();
- if (!successful) {
- location.reload();
- }
- } catch {
- reconnectModal.classList.replace("components-reconnect-paused", "components-reconnect-resume-failed");
- }
-}
-
-async function retryWhenDocumentBecomesVisible() {
- if (document.visibilityState === "visible") {
- await retry();
- }
-}
diff --git a/Website/Components/Pages/Error.razor b/Website/Components/Pages/Error.razor
deleted file mode 100644
index 576cc2d..0000000
--- a/Website/Components/Pages/Error.razor
+++ /dev/null
@@ -1,36 +0,0 @@
-@page "/Error"
-@using System.Diagnostics
-
-Error
-
-
Error.
-
An error occurred while processing your request.
-
-@if (ShowRequestId)
-{
-
- Request ID:@RequestId
-
-}
-
-
Development Mode
-
- Swapping to Development environment will display more detailed information about the error that occurred.
-
-
- The Development environment shouldn't be enabled for deployed applications.
- It can result in displaying sensitive information from exceptions to end users.
- For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development
- and restarting the app.
-
-
-@code{
- [CascadingParameter]
- private HttpContext? HttpContext { get; set; }
-
- private string? RequestId { get; set; }
- private bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
-
- protected override void OnInitialized() =>
- RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
-}
diff --git a/Website/Components/Routes.razor b/Website/Components/Routes.razor
deleted file mode 100644
index 105855d..0000000
--- a/Website/Components/Routes.razor
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Website/Program.cs b/Website/Program.cs
deleted file mode 100644
index a8de88e..0000000
--- a/Website/Program.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Website.Components;
-
-var builder = WebApplication.CreateBuilder(args);
-
-// Add services to the container.
-builder.Services.AddRazorComponents()
- .AddInteractiveServerComponents()
- .AddInteractiveWebAssemblyComponents();
-
-var app = builder.Build();
-
-// Configure the HTTP request pipeline.
-if (app.Environment.IsDevelopment())
-{
- app.UseWebAssemblyDebugging();
-} else
-{
- app.UseExceptionHandler("/Error", createScopeForErrors: true);
- // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
- app.UseHsts();
-}
-app.UseStatusCodePagesWithReExecute("/not-found", createScopeForStatusCodePages: true);
-app.UseHttpsRedirection();
-
-app.UseAntiforgery();
-
-app.MapStaticAssets();
-app.MapRazorComponents()
- .AddInteractiveServerRenderMode()
- .AddInteractiveWebAssemblyRenderMode();
-
-app.Run();
diff --git a/Website/Website.csproj.user b/Website/Website.csproj.user
deleted file mode 100644
index 9ff5820..0000000
--- a/Website/Website.csproj.user
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- https
-
-
\ No newline at end of file