Spinners New
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar/SidebarDocumentation.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar/SidebarDocumentation.razor
index 7878c9803..542a98c95 100644
--- a/BlazorBootstrap.Demo.RCL/Pages/Sidebar/SidebarDocumentation.razor
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar/SidebarDocumentation.razor
@@ -17,7 +17,7 @@
Use NavItem's Id
and ParentId
to set the parent-child relation.
-At this moment, two levels of navigation are supported.
+Currently, two levels of navigation are supported. For more than two levels, use the Sidebar2 component.
Set IconColor
property to change the color.
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2Documentation.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2Documentation.razor
new file mode 100644
index 000000000..f2d85726a
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2Documentation.razor
@@ -0,0 +1,43 @@
+@page "/sidebar2"
+
+@title
+
+
+
+Blazor Sidebar2
+
+ Use the Blazor Bootstrap Sidebar2
component to display consistent, cross-browser, and responsive navigation links that support more than two nested levels.
+
+
+@* *@
+
+
+
+
+
+
+
+
+
+@*
+Set IconColor
property to change the color.
+ *@
+
+
+Replace your MainLayout.razor page code with the below example to have a complete layout with a sidebar.
+
+
+
+Use the CustomIconName
parameter to set the custom logo icon using font awesome or other icons.
+
+
+
+Use the ImageSrc
parameter to set the brand logo.
+
+
+@code {
+ private string pageUrl = "sidebar2";
+ private string title = "Blazor Sidebar2 Component";
+ private string description = "Use the Blazor Bootstrap Sidebar2 component to display consistent, cross-browser, and responsive navigation links that support more than two nested levels.";
+ private string imageUrl = "https://i.imgur.com/U0l6wXo.png";
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_01_Basic_Usage.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_01_Basic_Usage.razor
new file mode 100644
index 000000000..a8672111d
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_01_Basic_Usage.razor
@@ -0,0 +1,45 @@
+
+
+@code {
+ IEnumerable? navItems;
+
+ private async Task Sidebar2DataProvider(Sidebar2DataProviderRequest request)
+ {
+ if (navItems is null)
+ navItems = GetNavItems();
+
+ await Task.Delay(2000);
+
+ return await Task.FromResult(request.ApplyTo(navItems));
+ }
+
+ private IEnumerable GetNavItems()
+ {
+ navItems = new List
+ {
+ new NavItem { Id = "1", Href = "/getting-started", IconName = IconName.HouseDoorFill, Text = "Getting Started"},
+
+ new NavItem { Id = "2", IconName = IconName.LayoutSidebarInset, Text = "Content" },
+ new NavItem { Id = "3", Href = "/icons", IconName = IconName.PersonSquare, Text = "Icons", ParentId="2"},
+
+ new NavItem { Id = "4", IconName = IconName.ExclamationTriangleFill, Text = "Components" },
+ new NavItem { Id = "5", Href = "/alerts", IconName = IconName.CheckCircleFill, Text = "Alerts", ParentId="4"},
+ new NavItem { Id = "6", Href = "/breadcrumb", IconName = IconName.SegmentedNav, Text = "Breadcrumb", ParentId="4"},
+
+ new NavItem { Id = "7", IconName = IconName.ListNested, Text = "Sidebar 2", ParentId="4"},
+ new NavItem { Id = "701", Href = "/sidebar2", IconName = IconName.Dash, Text = "How to use", ParentId="7"},
+ new NavItem { Id = "702", Href = "/sidebar2-examples", IconName = IconName.Dash, Text = "Examples", ParentId="7"},
+
+ new NavItem { Id = "8", IconName = IconName.WindowPlus, Text = "Forms" },
+ new NavItem { Id = "9", Href = "/autocomplete", IconName = IconName.InputCursorText, Text = "Auto Complete", ParentId="8"},
+ new NavItem { Id = "10", Href = "/currency-input", IconName = IconName.CurrencyDollar, Text = "Currency Input", ParentId="8"},
+ new NavItem { Id = "11", Href = "/number-input", IconName = IconName.InputCursor, Text = "Number Input", ParentId="8"},
+ new NavItem { Id = "12", Href = "/switch", IconName = IconName.ToggleOn, Text = "Switch", ParentId="8"},
+ };
+
+ return navItems;
+ }
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_02_More_Nested_Levels.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_02_More_Nested_Levels.razor
new file mode 100644
index 000000000..a2ccee7c2
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_02_More_Nested_Levels.razor
@@ -0,0 +1,52 @@
+
+
+@code {
+ IEnumerable? navItems;
+
+ private async Task Sidebar2DataProvider(Sidebar2DataProviderRequest request)
+ {
+ if (navItems is null)
+ navItems = GetNavItems();
+
+ await Task.Delay(2000);
+
+ return await Task.FromResult(request.ApplyTo(navItems));
+ }
+
+ private IEnumerable GetNavItems()
+ {
+ navItems = new List
+ {
+ new NavItem { Id = "1", Href = "/getting-started", IconName = IconName.HouseDoorFill, Text = "Getting Started"},
+
+ new NavItem { Id = "2", IconName = IconName.LayoutSidebarInset, Text = "Content" },
+ new NavItem { Id = "3", Href = "/icons", IconName = IconName.PersonSquare, Text = "Icons", ParentId="2"},
+
+ new NavItem { Id = "4", IconName = IconName.ExclamationTriangleFill, Text = "Components" },
+ new NavItem { Id = "5", Href = "/alerts", IconName = IconName.CheckCircleFill, Text = "Alerts", ParentId="4"},
+ new NavItem { Id = "6", Href = "/breadcrumb", IconName = IconName.SegmentedNav, Text = "Breadcrumb", ParentId="4"},
+
+ new NavItem { Id = "7", IconName = IconName.ListNested, Text = "Sidebar 2", ParentId="4"},
+ new NavItem { Id = "701", Href = "/sidebar2/how-to-use", IconName = IconName.Dash, Text = "How to use", ParentId="7"},
+
+ new NavItem { Id = "702", IconName = IconName.Dash, Text = "Examples", ParentId="7"},
+ new NavItem { Id = "70201", Href = "/sidebar2", IconName = IconName.Dash, Text = "Nested levels", ParentId="702"},
+
+ new NavItem { Id = "8", IconName = IconName.Grid, Text = "Grid", ParentId="4"},
+ new NavItem { Id = "801", Href = "/grid/#", IconName = IconName.Dash, Text = "How to use", ParentId="8"},
+ new NavItem { Id = "802", IconName = IconName.Dash, Text = "Examples", ParentId="8"},
+ new NavItem { Id = "80201", Href = "/grid/#", IconName = IconName.Dash, Text = "Filters", ParentId="802"},
+
+ new NavItem { Id = "9", IconName = IconName.WindowPlus, Text = "Forms" },
+ new NavItem { Id = "10", Href = "/autocomplete", IconName = IconName.InputCursorText, Text = "Auto Complete", ParentId="9"},
+ new NavItem { Id = "11", Href = "/currency-input", IconName = IconName.CurrencyDollar, Text = "Currency Input", ParentId="9"},
+ new NavItem { Id = "12", Href = "/number-input", IconName = IconName.InputCursor, Text = "Number Input", ParentId="9"},
+ new NavItem { Id = "13", Href = "/switch", IconName = IconName.ToggleOn, Text = "Switch", ParentId="9"},
+ };
+
+ return navItems;
+ }
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_03_Change_Icons_Color.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_03_Change_Icons_Color.razor
new file mode 100644
index 000000000..2d65942b6
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_03_Change_Icons_Color.razor
@@ -0,0 +1,52 @@
+
+
+@code {
+ IEnumerable? navItems;
+
+ private async Task Sidebar2DataProvider(Sidebar2DataProviderRequest request)
+ {
+ if (navItems is null)
+ navItems = GetNavItems();
+
+ await Task.Delay(2000);
+
+ return await Task.FromResult(request.ApplyTo(navItems));
+ }
+
+ private IEnumerable GetNavItems()
+ {
+ navItems = new List
+ {
+ new NavItem { Id = "1", Href = "/getting-started", IconName = IconName.HouseDoorFill, Text = "Getting Started"},
+
+ new NavItem { Id = "2", IconName = IconName.LayoutSidebarInset, Text = "Content", IconColor = IconColor.Primary },
+ new NavItem { Id = "3", Href = "/icons", IconName = IconName.PersonSquare, Text = "Icons", ParentId="2"},
+
+ new NavItem { Id = "4", IconName = IconName.ExclamationTriangleFill, Text = "Components", IconColor = IconColor.Success },
+ new NavItem { Id = "5", Href = "/alerts", IconName = IconName.CheckCircleFill, Text = "Alerts", ParentId="4"},
+ new NavItem { Id = "6", Href = "/breadcrumb", IconName = IconName.SegmentedNav, Text = "Breadcrumb", ParentId="4"},
+
+ new NavItem { Id = "7", IconName = IconName.ListNested, Text = "Sidebar 2", ParentId="4"},
+ new NavItem { Id = "701", Href = "/sidebar2/how-to-use", IconName = IconName.Dash, Text = "How to use", ParentId="7"},
+
+ new NavItem { Id = "702", IconName = IconName.Dash, Text = "Examples", ParentId="7"},
+ new NavItem { Id = "70201", Href = "/sidebar2", IconName = IconName.Dash, Text = "Nested levels", ParentId="702"},
+
+ new NavItem { Id = "8", IconName = IconName.Grid, Text = "Grid", ParentId="4", IconColor = IconColor.Danger },
+ new NavItem { Id = "801", Href = "/grid/#", IconName = IconName.Dash, Text = "How to use", ParentId="8"},
+ new NavItem { Id = "802", IconName = IconName.Dash, Text = "Examples", ParentId="8"},
+ new NavItem { Id = "80201", Href = "/grid/#", IconName = IconName.Dash, Text = "Filters", ParentId="802"},
+
+ new NavItem { Id = "9", IconName = IconName.WindowPlus, Text = "Forms", IconColor = IconColor.Warning },
+ new NavItem { Id = "10", Href = "/autocomplete", IconName = IconName.InputCursorText, Text = "Auto Complete", ParentId="9"},
+ new NavItem { Id = "11", Href = "/currency-input", IconName = IconName.CurrencyDollar, Text = "Currency Input", ParentId="9"},
+ new NavItem { Id = "12", Href = "/number-input", IconName = IconName.InputCursor, Text = "Number Input", ParentId="9"},
+ new NavItem { Id = "13", Href = "/switch", IconName = IconName.ToggleOn, Text = "Switch", ParentId="9"},
+ };
+
+ return navItems;
+ }
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_04_Full_layout_with_sidebar.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_04_Full_layout_with_sidebar.razor
new file mode 100644
index 000000000..bdd816e72
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_04_Full_layout_with_sidebar.razor
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ Page content goes here
+
+
+
+
+
+@code {
+ IEnumerable? navItems;
+
+ private async Task Sidebar2DataProvider(Sidebar2DataProviderRequest request)
+ {
+ if (navItems is null)
+ navItems = GetNavItems();
+
+ await Task.Delay(2000);
+
+ return await Task.FromResult(request.ApplyTo(navItems));
+ }
+
+ private IEnumerable GetNavItems()
+ {
+ navItems = new List
+ {
+ new NavItem { Id = "1", Href = "/getting-started", IconName = IconName.HouseDoorFill, Text = "Getting Started"},
+
+ new NavItem { Id = "2", IconName = IconName.LayoutSidebarInset, Text = "Content", IconColor = IconColor.Primary },
+ new NavItem { Id = "3", Href = "/icons", IconName = IconName.PersonSquare, Text = "Icons", ParentId="2"},
+
+ new NavItem { Id = "4", IconName = IconName.ExclamationTriangleFill, Text = "Components", IconColor = IconColor.Success },
+ new NavItem { Id = "5", Href = "/alerts", IconName = IconName.CheckCircleFill, Text = "Alerts", ParentId="4"},
+ new NavItem { Id = "6", Href = "/breadcrumb", IconName = IconName.SegmentedNav, Text = "Breadcrumb", ParentId="4"},
+
+ new NavItem { Id = "7", IconName = IconName.ListNested, Text = "Sidebar 2", ParentId="4"},
+ new NavItem { Id = "701", Href = "/sidebar2/how-to-use", IconName = IconName.Dash, Text = "How to use", ParentId="7"},
+
+ new NavItem { Id = "702", IconName = IconName.Dash, Text = "Examples", ParentId="7"},
+ new NavItem { Id = "70201", Href = "/sidebar2", IconName = IconName.Dash, Text = "Nested levels", ParentId="702"},
+
+ new NavItem { Id = "8", IconName = IconName.Grid, Text = "Grid", ParentId="4", IconColor = IconColor.Danger },
+ new NavItem { Id = "801", Href = "/grid/#", IconName = IconName.Dash, Text = "How to use", ParentId="8"},
+ new NavItem { Id = "802", IconName = IconName.Dash, Text = "Examples", ParentId="8"},
+ new NavItem { Id = "80201", Href = "/grid/#", IconName = IconName.Dash, Text = "Filters", ParentId="802"},
+
+ new NavItem { Id = "9", IconName = IconName.WindowPlus, Text = "Forms", IconColor = IconColor.Warning },
+ new NavItem { Id = "10", Href = "/autocomplete", IconName = IconName.InputCursorText, Text = "Auto Complete", ParentId="9"},
+ new NavItem { Id = "11", Href = "/currency-input", IconName = IconName.CurrencyDollar, Text = "Currency Input", ParentId="9"},
+ new NavItem { Id = "12", Href = "/number-input", IconName = IconName.InputCursor, Text = "Number Input", ParentId="9"},
+ new NavItem { Id = "13", Href = "/switch", IconName = IconName.ToggleOn, Text = "Switch", ParentId="9"},
+ };
+
+ return navItems;
+ }
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_07_Custom_Brand_Icon.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_07_Custom_Brand_Icon.razor
new file mode 100644
index 000000000..758a76596
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_07_Custom_Brand_Icon.razor
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ Page content goes here
+
+
+
+
+
+@code {
+ IEnumerable? navItems;
+
+ private async Task Sidebar2DataProvider(Sidebar2DataProviderRequest request)
+ {
+ if (navItems is null)
+ navItems = GetNavItems();
+
+ await Task.Delay(2000);
+
+ return await Task.FromResult(request.ApplyTo(navItems));
+ }
+
+ private IEnumerable GetNavItems()
+ {
+ navItems = new List
+ {
+ new NavItem { Id = "1", Href = "/getting-started", IconName = IconName.HouseDoorFill, Text = "Getting Started"},
+
+ new NavItem { Id = "2", IconName = IconName.LayoutSidebarInset, Text = "Content", IconColor = IconColor.Primary },
+ new NavItem { Id = "3", Href = "/icons", IconName = IconName.PersonSquare, Text = "Icons", ParentId="2"},
+
+ new NavItem { Id = "4", IconName = IconName.ExclamationTriangleFill, Text = "Components", IconColor = IconColor.Success },
+ new NavItem { Id = "5", Href = "/alerts", IconName = IconName.CheckCircleFill, Text = "Alerts", ParentId="4"},
+ new NavItem { Id = "6", Href = "/breadcrumb", IconName = IconName.SegmentedNav, Text = "Breadcrumb", ParentId="4"},
+
+ new NavItem { Id = "7", IconName = IconName.ListNested, Text = "Sidebar 2", ParentId="4"},
+ new NavItem { Id = "701", Href = "/sidebar2/how-to-use", IconName = IconName.Dash, Text = "How to use", ParentId="7"},
+
+ new NavItem { Id = "702", IconName = IconName.Dash, Text = "Examples", ParentId="7"},
+ new NavItem { Id = "70201", Href = "/sidebar2", IconName = IconName.Dash, Text = "Nested levels", ParentId="702"},
+
+ new NavItem { Id = "8", IconName = IconName.Grid, Text = "Grid", ParentId="4", IconColor = IconColor.Danger },
+ new NavItem { Id = "801", Href = "/grid/#", IconName = IconName.Dash, Text = "How to use", ParentId="8"},
+ new NavItem { Id = "802", IconName = IconName.Dash, Text = "Examples", ParentId="8"},
+ new NavItem { Id = "80201", Href = "/grid/#", IconName = IconName.Dash, Text = "Filters", ParentId="802"},
+
+ new NavItem { Id = "9", IconName = IconName.WindowPlus, Text = "Forms", IconColor = IconColor.Warning },
+ new NavItem { Id = "10", Href = "/autocomplete", IconName = IconName.InputCursorText, Text = "Auto Complete", ParentId="9"},
+ new NavItem { Id = "11", Href = "/currency-input", IconName = IconName.CurrencyDollar, Text = "Currency Input", ParentId="9"},
+ new NavItem { Id = "12", Href = "/number-input", IconName = IconName.InputCursor, Text = "Number Input", ParentId="9"},
+ new NavItem { Id = "13", Href = "/switch", IconName = IconName.ToggleOn, Text = "Switch", ParentId="9"},
+ };
+
+ return navItems;
+ }
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_08_Show_Image_as_Brand_Logo.razor b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_08_Show_Image_as_Brand_Logo.razor
new file mode 100644
index 000000000..e9ec65894
--- /dev/null
+++ b/BlazorBootstrap.Demo.RCL/Pages/Sidebar2/Sidebar2_Demo_08_Show_Image_as_Brand_Logo.razor
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ Page content goes here
+
+
+
+
+
+@code {
+ IEnumerable? navItems;
+
+ private async Task Sidebar2DataProvider(Sidebar2DataProviderRequest request)
+ {
+ if (navItems is null)
+ navItems = GetNavItems();
+
+ await Task.Delay(2000);
+
+ return await Task.FromResult(request.ApplyTo(navItems));
+ }
+
+ private IEnumerable GetNavItems()
+ {
+ navItems = new List
+ {
+ new NavItem { Id = "1", Href = "/getting-started", IconName = IconName.HouseDoorFill, Text = "Getting Started"},
+
+ new NavItem { Id = "2", IconName = IconName.LayoutSidebarInset, Text = "Content", IconColor = IconColor.Primary },
+ new NavItem { Id = "3", Href = "/icons", IconName = IconName.PersonSquare, Text = "Icons", ParentId="2"},
+
+ new NavItem { Id = "4", IconName = IconName.ExclamationTriangleFill, Text = "Components", IconColor = IconColor.Success },
+ new NavItem { Id = "5", Href = "/alerts", IconName = IconName.CheckCircleFill, Text = "Alerts", ParentId="4"},
+ new NavItem { Id = "6", Href = "/breadcrumb", IconName = IconName.SegmentedNav, Text = "Breadcrumb", ParentId="4"},
+
+ new NavItem { Id = "7", IconName = IconName.ListNested, Text = "Sidebar 2", ParentId="4"},
+ new NavItem { Id = "701", Href = "/sidebar2/how-to-use", IconName = IconName.Dash, Text = "How to use", ParentId="7"},
+
+ new NavItem { Id = "702", IconName = IconName.Dash, Text = "Examples", ParentId="7"},
+ new NavItem { Id = "70201", Href = "/sidebar2", IconName = IconName.Dash, Text = "Nested levels", ParentId="702"},
+
+ new NavItem { Id = "8", IconName = IconName.Grid, Text = "Grid", ParentId="4", IconColor = IconColor.Danger },
+ new NavItem { Id = "801", Href = "/grid/#", IconName = IconName.Dash, Text = "How to use", ParentId="8"},
+ new NavItem { Id = "802", IconName = IconName.Dash, Text = "Examples", ParentId="8"},
+ new NavItem { Id = "80201", Href = "/grid/#", IconName = IconName.Dash, Text = "Filters", ParentId="802"},
+
+ new NavItem { Id = "9", IconName = IconName.WindowPlus, Text = "Forms", IconColor = IconColor.Warning },
+ new NavItem { Id = "10", Href = "/autocomplete", IconName = IconName.InputCursorText, Text = "Auto Complete", ParentId="9"},
+ new NavItem { Id = "11", Href = "/currency-input", IconName = IconName.CurrencyDollar, Text = "Currency Input", ParentId="9"},
+ new NavItem { Id = "12", Href = "/number-input", IconName = IconName.InputCursor, Text = "Number Input", ParentId="9"},
+ new NavItem { Id = "13", Href = "/switch", IconName = IconName.ToggleOn, Text = "Switch", ParentId="9"},
+ };
+
+ return navItems;
+ }
+}
diff --git a/BlazorBootstrap.Demo.RCL/Pages/Spinners/SpinnersDocumentation.razor b/BlazorBootstrap.Demo.RCL/Pages/Spinners/SpinnersDocumentation.razor
index 0c08bd9c7..8a6d1c216 100644
--- a/BlazorBootstrap.Demo.RCL/Pages/Spinners/SpinnersDocumentation.razor
+++ b/BlazorBootstrap.Demo.RCL/Pages/Spinners/SpinnersDocumentation.razor
@@ -61,5 +61,5 @@
private string pageUrl = "/spinner";
private string title = "Blazor Spinner Component";
private string description = "Visualize the loading state of a component or page using the Blazor Bootstrap Spinner component.";
- private string imageUrl = "https://i.imgur.com/273TamX.png"; // TODO: update this
+ private string imageUrl = "https://i.imgur.com/G4wyEd6.png";
}
diff --git a/BlazorBootstrap.Demo.RCL/Shared/MainLayout.razor.cs b/BlazorBootstrap.Demo.RCL/Shared/MainLayout.razor.cs
index 7593bb943..f88fc2deb 100644
--- a/BlazorBootstrap.Demo.RCL/Shared/MainLayout.razor.cs
+++ b/BlazorBootstrap.Demo.RCL/Shared/MainLayout.razor.cs
@@ -66,10 +66,11 @@ private IEnumerable GetNavItems()
new (){ Id = "518", Text = "Progress", Href = "/progress", IconName = IconName.UsbC, ParentId = "5" },
new (){ Id = "519", Text = "Script Loader", Href = "/script-loader", IconName = IconName.CodeSlash, ParentId = "5" },
new (){ Id = "520", Text = "Sidebar", Href = "/sidebar", IconName = IconName.LayoutSidebar, ParentId = "5" },
- new (){ Id = "521", Text = "Spinner", Href = "/spinners", IconName = IconName.ArrowRepeat, ParentId = "5" },
- new (){ Id = "522", Text = "Tabs", Href = "/tabs", IconName = IconName.WindowPlus, ParentId = "5" },
- new (){ Id = "523", Text = "Toasts", Href = "/toasts", IconName = IconName.ExclamationTriangleFill, ParentId = "5" },
- new (){ Id = "524", Text = "Tooltips", Href = "/tooltips", IconName = IconName.ChatSquareDotsFill, ParentId = "5" },
+ new (){ Id = "521", Text = "Sidebar 2", Href = "/sidebar2", IconName = IconName.ListNested, ParentId = "5" },
+ new (){ Id = "522", Text = "Spinner", Href = "/spinners", IconName = IconName.ArrowRepeat, ParentId = "5" },
+ new (){ Id = "523", Text = "Tabs", Href = "/tabs", IconName = IconName.WindowPlus, ParentId = "5" },
+ new (){ Id = "524", Text = "Toasts", Href = "/toasts", IconName = IconName.ExclamationTriangleFill, ParentId = "5" },
+ new (){ Id = "525", Text = "Tooltips", Href = "/tooltips", IconName = IconName.ChatSquareDotsFill, ParentId = "5" },
new (){ Id = "6", Text = "Data Visualization", IconName = IconName.BarChartFill, IconColor = IconColor.Warning },
new (){ Id = "600", Text = "Bar Chart", Href = "/charts/bar-chart", IconName = IconName.BarChartFill, ParentId = "6", Match = NavLinkMatch.All },
diff --git a/blazorbootstrap/Components/Sidebar/Sidebar.razor b/blazorbootstrap/Components/Sidebar/Sidebar.razor
index d64cf3984..c1d1145af 100644
--- a/blazorbootstrap/Components/Sidebar/Sidebar.razor
+++ b/blazorbootstrap/Components/Sidebar/Sidebar.razor
@@ -32,7 +32,16 @@