@@ -39,14 +42,18 @@
- @RazorCode.Trim()
+
+
+ @RazorCode?.Trim()
+
@if (CsharpCode.HasValue())
{
@code {
- @CsharpCode.Trim().Replace("\n", "\n ")
-}
+ @CsharpCode?.Trim().Replace("\n", "\n ")
+}
+
}
}
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor
new file mode 100644
index 0000000000..c8f12f1d69
--- /dev/null
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor
@@ -0,0 +1,24 @@
+@page "/components/prolayout"
+
+@inherits AppComponentBase
+
+
+
+
+
+
+ Since this component is a base layout container, it is not possible to show its capabilities in a demo sample here.
+
+ You can always check our Boilerplate project template samples
+ (
AdminPanel &
Todo)
+ to see the BitProLayout in action.
+
+
+
+
\ No newline at end of file
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor.cs
new file mode 100644
index 0000000000..714dbf8819
--- /dev/null
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor.cs
@@ -0,0 +1,133 @@
+namespace Bit.BlazorUI.Demo.Client.Core.Pages.Components.Extras.ProLayout;
+
+public partial class BitProLayoutDemo
+{
+ private readonly List
componentParameters =
+ [
+ new()
+ {
+ Name = "CascadingValues",
+ Type = "IEnumerable?",
+ DefaultValue = "null",
+ Description = "The cascading values to be provided for the children of the layout.",
+ LinkType = LinkType.Link,
+ Href = "#cascading-value"
+ },
+ new()
+ {
+ Name = "ChildContent",
+ Type = "RenderFragment?",
+ DefaultValue = "null",
+ Description = "The content of the layout.",
+ },
+ new()
+ {
+ Name = "Classes",
+ Type = "BitProLayoutClassStyles?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes for different parts of the layout.",
+ LinkType = LinkType.Link,
+ Href = "#class-styles"
+ },
+ new()
+ {
+ Name = "Styles",
+ Type = "BitProLayoutClassStyles?",
+ DefaultValue = "null",
+ Description = "Custom CSS styles for different parts of the layout.",
+ LinkType = LinkType.Link,
+ Href = "#class-styles"
+ },
+ ];
+
+ private readonly List componentSubClasses =
+ [new()
+ {
+ Id = "cascading-value",
+ Title = "BitCascadingValue",
+ Description = "The cascading value to be provided using the BitCascadingValueProvider component.",
+ Parameters =
+ [
+ new()
+ {
+ Name = "Name",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "The optional name of the cascading value.",
+ },
+ new()
+ {
+ Name = "Value",
+ Type = "object?",
+ DefaultValue = "null",
+ Description = "The value to be provided.",
+ },
+ new()
+ {
+ Name = "IsFixed",
+ Type = "bool",
+ DefaultValue = "null",
+ Description = "If true, indicates that Value will not change.",
+ }
+ ]
+ },
+ new()
+ {
+ Id = "class-styles",
+ Title = "BitProLayoutClassStyles",
+ Parameters =
+ [
+ new()
+ {
+ Name = "Root",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the root of the BitProLayout.",
+ },
+ new()
+ {
+ Name = "Top",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the top area of the BitProLayout.",
+ },
+ new()
+ {
+ Name = "Center",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the top center of the BitProLayout.",
+ },
+ new()
+ {
+ Name = "Left",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the top left of the BitProLayout.",
+ },
+ new()
+ {
+ Name = "Main",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the main area of the BitProLayout.",
+ },
+ new()
+ {
+ Name = "Right",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the right area of the BitProLayout.",
+ },
+ new()
+ {
+ Name = "Bottom",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the bottom area of the BitProLayout.",
+ },
+ ]
+ }
+ ];
+
+}
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor.scss b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/ProLayout/BitProLayoutDemo.razor.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Home/ComponentsSection.razor b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Home/ComponentsSection.razor
index b3e28e6a15..79f9ec0e34 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Home/ComponentsSection.razor
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Home/ComponentsSection.razor
@@ -253,6 +253,9 @@
PdfReader
+
+ ProLayout
+
ProPanel
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Shared/NavMenu.razor.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Shared/NavMenu.razor.cs
index 84b6f10f89..88e59091ab 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Shared/NavMenu.razor.cs
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Shared/NavMenu.razor.cs
@@ -156,6 +156,7 @@ public partial class NavMenu : IDisposable
new() { Text = "DataGrid", Url = "/components/datagrid", AdditionalUrls = ["/components/data-grid"] },
new() { Text = "Chart", Url = "/components/chart" },
new() { Text = "PdfReader", Url = "/components/pdfreader" },
+ new() { Text = "ProLayout", Url = "/components/prolayout" },
new() { Text = "ProPanel", Url = "/components/propanel" },
new()
{