diff --git a/Test.UI.sln b/Test.UI.sln
index 7ee1446..27f3d04 100644
--- a/Test.UI.sln
+++ b/Test.UI.sln
@@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.UI.Client", "Test.UI.C
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebWindowConfigurator", "WebWindowConfigurator\WebWindowConfigurator.csproj", "{C7BED1A5-5B6B-4B3C-8802-D913A026D1E2}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAedificaConfigurator", "WebAedificaConfigurator\WebAedificaConfigurator.csproj", "{BD1F43E8-BE5F-469E-9552-C98CA8639A06}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -27,6 +29,10 @@ Global
{C7BED1A5-5B6B-4B3C-8802-D913A026D1E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7BED1A5-5B6B-4B3C-8802-D913A026D1E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7BED1A5-5B6B-4B3C-8802-D913A026D1E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BD1F43E8-BE5F-469E-9552-C98CA8639A06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BD1F43E8-BE5F-469E-9552-C98CA8639A06}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BD1F43E8-BE5F-469E-9552-C98CA8639A06}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BD1F43E8-BE5F-469E-9552-C98CA8639A06}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Test.UI/Components/Layout/NavMenu.razor b/Test.UI/Components/Layout/NavMenu.razor
index e89fdb4..55755b5 100644
--- a/Test.UI/Components/Layout/NavMenu.razor
+++ b/Test.UI/Components/Layout/NavMenu.razor
@@ -18,6 +18,11 @@
Test Compo + Serv
+
+
+ Aedifica
+
+
Counter
diff --git a/Test.UI/Components/Pages/Aedifica.razor b/Test.UI/Components/Pages/Aedifica.razor
new file mode 100644
index 0000000..ccac867
--- /dev/null
+++ b/Test.UI/Components/Pages/Aedifica.razor
@@ -0,0 +1,6 @@
+@rendermode InteractiveServer
+@page "/Aedifica"
+
+Aedifica
+
+
diff --git a/Test.UI/Components/Pages/Aedifica.razor.cs b/Test.UI/Components/Pages/Aedifica.razor.cs
new file mode 100644
index 0000000..c425404
--- /dev/null
+++ b/Test.UI/Components/Pages/Aedifica.razor.cs
@@ -0,0 +1,6 @@
+namespace Test.UI.Components.Pages
+{
+ public partial class Aedifica
+ {
+ }
+}
diff --git a/Test.UI/Components/_Imports.razor b/Test.UI/Components/_Imports.razor
index 16e6d36..0fd4dac 100644
--- a/Test.UI/Components/_Imports.razor
+++ b/Test.UI/Components/_Imports.razor
@@ -9,4 +9,5 @@
@using Test.UI
@using Test.UI.Client
@using Test.UI.Components
-@using WebWindowConfigurator
\ No newline at end of file
+@using WebWindowConfigurator
+@using WebAedificaConfigurator
\ No newline at end of file
diff --git a/Test.UI/Test.UI.csproj b/Test.UI/Test.UI.csproj
index 411163c..a4adc19 100644
--- a/Test.UI/Test.UI.csproj
+++ b/Test.UI/Test.UI.csproj
@@ -24,6 +24,7 @@
+
diff --git a/WebAedificaConfigurator/ExampleJsInterop.cs b/WebAedificaConfigurator/ExampleJsInterop.cs
new file mode 100644
index 0000000..68a6a72
--- /dev/null
+++ b/WebAedificaConfigurator/ExampleJsInterop.cs
@@ -0,0 +1,37 @@
+using Microsoft.JSInterop;
+
+namespace WebAedificaConfigurator
+{
+ // This class provides an example of how JavaScript functionality can be wrapped
+ // in a .NET class for easy consumption. The associated JavaScript module is
+ // loaded on demand when first needed.
+ //
+ // This class can be registered as scoped DI service and then injected into Blazor
+ // components for use.
+
+ public class ExampleJsInterop : IAsyncDisposable
+ {
+ private readonly Lazy> moduleTask;
+
+ public ExampleJsInterop(IJSRuntime jsRuntime)
+ {
+ moduleTask = new(() => jsRuntime.InvokeAsync(
+ "import", "./_content/WebAedificaConfigurator/exampleJsInterop.js").AsTask());
+ }
+
+ public async ValueTask Prompt(string message)
+ {
+ var module = await moduleTask.Value;
+ return await module.InvokeAsync("showPrompt", message);
+ }
+
+ public async ValueTask DisposeAsync()
+ {
+ if (moduleTask.IsValueCreated)
+ {
+ var module = await moduleTask.Value;
+ await module.DisposeAsync();
+ }
+ }
+ }
+}
diff --git a/WebAedificaConfigurator/WebAedificaConfigurator.csproj b/WebAedificaConfigurator/WebAedificaConfigurator.csproj
new file mode 100644
index 0000000..52f408e
--- /dev/null
+++ b/WebAedificaConfigurator/WebAedificaConfigurator.csproj
@@ -0,0 +1,18 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebAedificaConfigurator/WebAedificaMaker.razor b/WebAedificaConfigurator/WebAedificaMaker.razor
new file mode 100644
index 0000000..ebef414
--- /dev/null
+++ b/WebAedificaConfigurator/WebAedificaMaker.razor
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+ Selezionare file
+
+
+ @*img*@
+
+
+
+
+
+
diff --git a/WebAedificaConfigurator/WebAedificaMaker.razor.cs b/WebAedificaConfigurator/WebAedificaMaker.razor.cs
new file mode 100644
index 0000000..b80ef8e
--- /dev/null
+++ b/WebAedificaConfigurator/WebAedificaMaker.razor.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WebAedificaConfigurator
+{
+ public partial class WebAedificaMaker
+ {
+ }
+}
diff --git a/WebAedificaConfigurator/WebAedificaMaker.razor.css b/WebAedificaConfigurator/WebAedificaMaker.razor.css
new file mode 100644
index 0000000..c6afca4
--- /dev/null
+++ b/WebAedificaConfigurator/WebAedificaMaker.razor.css
@@ -0,0 +1,6 @@
+.my-component {
+ border: 2px dashed red;
+ padding: 1em;
+ margin: 1em 0;
+ background-image: url('background.png');
+}
diff --git a/WebAedificaConfigurator/_Imports.razor b/WebAedificaConfigurator/_Imports.razor
new file mode 100644
index 0000000..7728512
--- /dev/null
+++ b/WebAedificaConfigurator/_Imports.razor
@@ -0,0 +1 @@
+@using Microsoft.AspNetCore.Components.Web
diff --git a/WebAedificaConfigurator/wwwroot/background.png b/WebAedificaConfigurator/wwwroot/background.png
new file mode 100644
index 0000000..e15a3bd
Binary files /dev/null and b/WebAedificaConfigurator/wwwroot/background.png differ
diff --git a/WebAedificaConfigurator/wwwroot/exampleJsInterop.js b/WebAedificaConfigurator/wwwroot/exampleJsInterop.js
new file mode 100644
index 0000000..ea8d76a
--- /dev/null
+++ b/WebAedificaConfigurator/wwwroot/exampleJsInterop.js
@@ -0,0 +1,6 @@
+// This is a JavaScript module that is loaded on demand. It can export any number of
+// functions, and may import other JavaScript modules if required.
+
+export function showPrompt(message) {
+ return prompt(message, 'Type anything here');
+}