@@ -72,4 +72,65 @@
+
+
+ An illustrative example of integrating this component into a straightforward mobile application.
+
+
+
+
+
+
+
+
+
+ BlazorUI
+
+
+
+
+
+
+
+ @foreach (var (idx, i) in advancedItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+
+
+
+
+
+
+ Empower customization by overriding default styles and classes, allowing tailored design modifications to suit specific UI requirements.
+
+
+
+
+ @foreach (var (idx, i) in styleItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+ @foreach (var (idx, i) in classItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.cs
index 75e72ebc52..76641be9a9 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.cs
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.cs
@@ -19,6 +19,15 @@ public partial class BitPullToRefreshDemo
Description = "The anchor element that the pull to refresh component adheres to.",
},
new()
+ {
+ Name = "Classes",
+ Type = "BitPullToRefreshClassStyles?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes for different parts of the BitPullToRefresh.",
+ LinkType = LinkType.Link,
+ Href = "#class-styles",
+ },
+ new()
{
Name = "Factor",
Type = "decimal",
@@ -84,6 +93,15 @@ public partial class BitPullToRefreshDemo
Description = "The CSS selector of the element that is the scroller in the anchor to control the behavior of the pull to refresh.",
},
new()
+ {
+ Name = "Styles",
+ Type = "BitPullToRefreshClassStyles?",
+ DefaultValue = "null",
+ Description = "Custom CSS styles for different parts of the BitPullToRefresh.",
+ LinkType = LinkType.Link,
+ Href = "#class-styles",
+ },
+ new()
{
Name = "Threshold",
Type = "int",
@@ -96,7 +114,7 @@ public partial class BitPullToRefreshDemo
Type = "int",
DefaultValue = "80",
Description = "The pulling height in pixel that triggers the refresh.",
- },
+ }
];
private readonly List
componentSubClasses =
@@ -127,6 +145,56 @@ public partial class BitPullToRefreshDemo
},
]
},
+ new()
+ {
+ Id = "class-styles",
+ Title = "BitPullToRefreshClassStyles",
+ Parameters =
+ [
+ new()
+ {
+ Name = "Root",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the root element of the PullToRefresh."
+ },
+ new()
+ {
+ Name = "Loading",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the loading element."
+ },
+ new()
+ {
+ Name = "SpinnerWrapper",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the spinner wrapper element."
+ },
+ new()
+ {
+ Name = "SpinnerWrapperRefreshing",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the spinner wrapper element in refreshing mode."
+ },
+ new()
+ {
+ Name = "Spinner",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the spinner element."
+ },
+ new()
+ {
+ Name = "SpinnerRefreshing",
+ Type = "string?",
+ DefaultValue = "null",
+ Description = "Custom CSS classes/styles for the spinner element in refreshing mode."
+ },
+ ]
+ }
];
@@ -154,6 +222,7 @@ private async Task HandleOnRefresh1()
multiItems1 = GenerateRandomNumbers(1, 51);
_ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
}
+
private (int, int)[] multiItems2 = GenerateRandomNumbers(51, 101);
private async Task HandleOnRefresh2()
{
@@ -162,152 +231,34 @@ private async Task HandleOnRefresh2()
_ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
}
-
- private static (int, int)[] GenerateRandomNumbers(int min, int max)
+ private (int, int)[] advancedItems = GenerateRandomNumbers(1, 51);
+ private async Task HandleOnRefreshAdvanced()
{
- var random = new Random();
- return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
+ await Task.Delay(2000);
+ advancedItems = GenerateRandomNumbers(1, 51);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
}
-
- private readonly string example1RazorCode = @"
-
-
-
- @foreach (var (idx, i) in basicItems)
- {
-
@(idx.ToString().PadLeft(2, '0')). Item @i
- }
-
-";
- private readonly string example1CsharpCode = @"
-private (int, int)[] basicItems = GenerateRandomNumbers(1, 51);
-private async Task HandleOnRefreshBasic()
-{
- await Task.Delay(2000);
- basicItems = GenerateRandomNumbers(1, 51);
- _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
-}
-
-private static (int, int)[] GenerateRandomNumbers(int min, int max)
-{
- var random = new Random();
- return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
-}";
-
- private readonly string example2RazorCode = @"
-
-
-
-
- @foreach (var (idx, i) in customItems)
- {
-
@(idx.ToString().PadLeft(2, '0')). Item @i
- }
-
-
-
-
-
-";
- private readonly string example2CsharpCode = @"
-private (int, int)[] customItems = GenerateRandomNumbers(1, 51);
-private async Task HandleOnRefreshCustom()
-{
- await Task.Delay(2000);
- customItems = GenerateRandomNumbers(1, 51);
- _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
-}
-
-private static (int, int)[] GenerateRandomNumbers(int min, int max)
-{
- var random = new Random();
- return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
-}";
- private readonly string example3RazorCode = @"
-
-
-
-
-
-
- @foreach (var (idx, i) in multiItems1)
- {
-
@(idx.ToString().PadLeft(2, '0')). Item @i
- }
-
-
-
-
-
-
-
- @foreach (var (idx, i) in multiItems2)
- {
-
@(idx.ToString().PadLeft(2, '0')). Item @i
- }
-
-
-
-
";
- private readonly string example3CsharpCode = @"
-private (int, int)[] multiItems1 = GenerateRandomNumbers(0, 50);
-private async Task HandleOnRefresh1()
-{
- await Task.Delay(2000);
- multiItems1 = GenerateRandomNumbers(1, 51);
- _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
-}
-private (int, int)[] multiItems2 = GenerateRandomNumbers(51, 101);
-private async Task HandleOnRefresh2()
-{
- await Task.Delay(2000);
- multiItems2 = GenerateRandomNumbers(51, 101);
- _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
-}
-
-private static (int, int)[] GenerateRandomNumbers(int min, int max)
-{
- var random = new Random();
- return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
-}";
-
}
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.samples.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.samples.cs
new file mode 100644
index 0000000000..3778230a0e
--- /dev/null
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.samples.cs
@@ -0,0 +1,285 @@
+namespace Bit.BlazorUI.Demo.Client.Core.Pages.Components.Utilities.PullToRefresh;
+
+public partial class BitPullToRefreshDemo
+{
+ private readonly string example1RazorCode = @"
+
+
+
+
+ @foreach (var (idx, i) in basicItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+";
+ private readonly string example1CsharpCode = @"
+private (int, int)[] basicItems = GenerateRandomNumbers(1, 51);
+private async Task HandleOnRefreshBasic()
+{
+ await Task.Delay(2000);
+ basicItems = GenerateRandomNumbers(1, 51);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+
+private static (int, int)[] GenerateRandomNumbers(int min, int max)
+{
+ var random = new Random();
+ return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
+}";
+
+ private readonly string example2RazorCode = @"
+
+
+
+
+
+ @foreach (var (idx, i) in customItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+";
+ private readonly string example2CsharpCode = @"
+private (int, int)[] customItems = GenerateRandomNumbers(1, 51);
+private async Task HandleOnRefreshCustom()
+{
+ await Task.Delay(2000);
+ customItems = GenerateRandomNumbers(1, 51);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+
+private static (int, int)[] GenerateRandomNumbers(int min, int max)
+{
+ var random = new Random();
+ return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
+}";
+
+ private readonly string example3RazorCode = @"
+
+
+
+
+
+
+ @foreach (var (idx, i) in multiItems1)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+
+
+ @foreach (var (idx, i) in multiItems2)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
";
+ private readonly string example3CsharpCode = @"
+private (int, int)[] multiItems1 = GenerateRandomNumbers(0, 50);
+private async Task HandleOnRefresh1()
+{
+ await Task.Delay(2000);
+ multiItems1 = GenerateRandomNumbers(1, 51);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+private (int, int)[] multiItems2 = GenerateRandomNumbers(51, 101);
+private async Task HandleOnRefresh2()
+{
+ await Task.Delay(2000);
+ multiItems2 = GenerateRandomNumbers(51, 101);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+
+private static (int, int)[] GenerateRandomNumbers(int min, int max)
+{
+ var random = new Random();
+ return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
+}";
+
+ private readonly string example4RazorCode = @"
+
+
+
+
+
+
+
+
+
+
+ BlazorUI
+
+
+
+
+
+
+
+ @foreach (var (idx, i) in advancedItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+
";
+ private readonly string example4CsharpCode = @"
+private (int, int)[] advancedItems = GenerateRandomNumbers(1, 51);
+private async Task HandleOnRefreshAdvanced()
+{
+ await Task.Delay(2000);
+ advancedItems = GenerateRandomNumbers(1, 51);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+
+private static (int, int)[] GenerateRandomNumbers(int min, int max)
+{
+ var random = new Random();
+ return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
+}";
+
+ private readonly string example5RazorCode = @"
+
+
+
+
+
+ @foreach (var (idx, i) in styleItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
+
+
+ @foreach (var (idx, i) in classItems)
+ {
+
@(idx.ToString().PadLeft(2, '0')). Item @i
+ }
+
+
+
";
+ private readonly string example5CsharpCode = @"
+private (int, int)[] styleItems = GenerateRandomNumbers(1, 51);
+private async Task HandleOnRefreshStyle()
+{
+ await Task.Delay(2000);
+ styleItems = GenerateRandomNumbers(1, 51);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+
+private (int, int)[] classItems = GenerateRandomNumbers(51, 101);
+private async Task HandleOnRefreshClass()
+{
+ await Task.Delay(2000);
+ classItems = GenerateRandomNumbers(51, 101);
+ _ = Task.Delay(1000).ContinueWith(_ => InvokeAsync(StateHasChanged));
+}
+
+private static (int, int)[] GenerateRandomNumbers(int min, int max)
+{
+ var random = new Random();
+ return Enumerable.Range(min, max - min).Select(i => (i, random.Next(min, max))).ToArray();
+}";
+
+}
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.scss b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.scss
index c11b6eeb5d..88c1e47c94 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.scss
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/PullToRefresh/BitPullToRefreshDemo.razor.scss
@@ -1,4 +1,9 @@
-.anchor {
+.example-content {
+ gap: 1rem;
+ display: flex;
+}
+
+.anchor {
width: 150px;
padding: 4px;
cursor: grab;
@@ -8,5 +13,43 @@
border: 1px gray solid;
}
+.mobile-frame {
+ width: 300px;
+ height: 600px;
+ overflow: hidden;
+ position: relative;
+ border-radius: 36px;
+ border: 16px solid #333;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+ background-color: var(--bit-clr-fg-sec);
+
+ .screen {
+ width: 100%;
+ height: 100%;
+ }
+}
+
+.advanced-anchor {
+ cursor: grab;
+ height: 490px;
+ overflow: auto;
+ user-select: none;
+}
+
::deep {
+ .custom-loading {
+ background-color: rgb(255, 106, 0, 0.1);
+ }
+
+ .custom-spinner {
+ padding: 5px;
+ border-radius: 50%;
+ background-color: #ff6a00;
+ }
+
+ .row {
+ color: black;
+ padding: 10px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ }
}
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj
index 84613c8e9b..e588bbba3e 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj
@@ -85,12 +85,12 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
index 22b99f7095..3431bf36a6 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
@@ -24,13 +24,13 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js
index 81ef753d81..63fe330a04 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
// https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup
self.assetsInclude = [];
diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj
index f548ce056b..3d98c0d8be 100644
--- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj
+++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj
@@ -29,11 +29,11 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/BlazorUI/Demo/Directory.Build.props b/src/BlazorUI/Demo/Directory.Build.props
index c8d6effc67..52dab44bc7 100644
--- a/src/BlazorUI/Demo/Directory.Build.props
+++ b/src/BlazorUI/Demo/Directory.Build.props
@@ -1,4 +1,4 @@
-
+
13.0
diff --git a/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js
index 890ed88fee..ade0abcf81 100644
--- a/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js
+++ b/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
self.assetsExclude = [/\.scp\.css$/, /weather\.json$/];
self.caseInsensitiveUrl = true;
diff --git a/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js
index 25c8f5e457..2a3b911009 100644
--- a/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js
+++ b/src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
self.assetsExclude = [/\.scp\.css$/, /weather\.json$/];
self.caseInsensitiveUrl = true;
diff --git a/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
index b5d48bb083..c89580de6b 100644
--- a/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
+++ b/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
// In development, always fetch from the network and do not enable offline support.
// This is because caching would make development more difficult (changes would not
diff --git a/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
index 3d565b017b..c2e33884ae 100644
--- a/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
+++ b/src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
self.assetsInclude = [];
self.assetsExclude = [
diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts
index b440faf5ec..5f95ca03e3 100644
--- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts
+++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts
@@ -1,4 +1,4 @@
-window['bit-bswup.progress version'] = '9.2.0';
+window['bit-bswup.progress version'] = '9.2.1';
; (function () {
(window as any).startBswupProgress = (autoReload: boolean,
diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
index 69d71fb174..e45d61beca 100644
--- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
+++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
@@ -1,4 +1,4 @@
-self['bit-bswup.sw version'] = '9.2.0';
+self['bit-bswup.sw version'] = '9.2.1';
interface Window {
clients: any
@@ -233,7 +233,10 @@ async function createAssetsCache(ignoreProgressReport = false) {
.concat(Object.keys(blazorBootJson.resources.runtime || {})) // before .NET 8
.concat(Object.keys(blazorBootJson.resources.jsModuleNative || {})) // after .NET 8
.concat(Object.keys(blazorBootJson.resources.jsModuleRuntime || {}))
- .concat(Object.keys(blazorBootJson.resources.wasmNative || {}));
+ .concat(Object.keys(blazorBootJson.resources.wasmNative || {}))
+ .concat(Object.keys(blazorBootJson.resources.coreAssembly || {})) // after .NET 9
+ .concat(Object.keys(blazorBootJson.resources.icu || {}))
+ .concat(Object.keys(blazorBootJson.resources.jsModuleGlobalization || {}));
const blazorAssets = blazorResources.map(r => UNIQUE_ASSETS.find(a => a.url.endsWith(`/${r}`))).filter(a => !!a);
diag('blazorBootAsset:', blazorBootAsset);
diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts
index 42942a4e5e..27593681ff 100644
--- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts
+++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts
@@ -1,5 +1,5 @@
const BitBswup = {} as any;
-BitBswup.version = window['bit-bswup version'] = '9.2.0';
+BitBswup.version = window['bit-bswup version'] = '9.2.1';
declare const Blazor: any;
diff --git a/src/Bswup/FullDemo/Client/wwwroot/service-worker.js b/src/Bswup/FullDemo/Client/wwwroot/service-worker.js
index 9c6ed25336..6acf05acf6 100644
--- a/src/Bswup/FullDemo/Client/wwwroot/service-worker.js
+++ b/src/Bswup/FullDemo/Client/wwwroot/service-worker.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
// In development, always fetch from the network and do not enable offline support.
// This is because caching would make development more difficult (changes would not
diff --git a/src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js b/src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js
index 278f5178bb..6d64366f96 100644
--- a/src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js
+++ b/src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js
@@ -1,4 +1,4 @@
-// bit version: 9.2.0
+// bit version: 9.2.1
self.assetsInclude = [];
self.assetsExclude = [/\.scp\.css$/, /weather\.json$/];
diff --git a/src/Bup/Bit.Bup/Scripts/bit-bup.progress.ts b/src/Bup/Bit.Bup/Scripts/bit-bup.progress.ts
index 7139438816..8fb50f44a2 100644
--- a/src/Bup/Bit.Bup/Scripts/bit-bup.progress.ts
+++ b/src/Bup/Bit.Bup/Scripts/bit-bup.progress.ts
@@ -1,4 +1,4 @@
-window['bit-bup.progress version'] = '9.2.0';
+window['bit-bup.progress version'] = '9.2.1';
; (function () {
(window as any).startBupProgress = (showLogs: boolean, showAssets: boolean, appContainerSelector: string, hideApp: boolean, autoHide: boolean) => {
diff --git a/src/Bup/Bit.Bup/Scripts/bit-bup.ts b/src/Bup/Bit.Bup/Scripts/bit-bup.ts
index b3baa0162f..4eb481ea8f 100644
--- a/src/Bup/Bit.Bup/Scripts/bit-bup.ts
+++ b/src/Bup/Bit.Bup/Scripts/bit-bup.ts
@@ -1,5 +1,5 @@
var BitBup = BitBup || {};
-BitBup.version = window['bit-bup version'] = '9.2.0';
+BitBup.version = window['bit-bup version'] = '9.2.1';
declare const Blazor: any;
diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts
index b1860b91da..9da10d20dd 100644
--- a/src/Butil/Bit.Butil/Scripts/butil.ts
+++ b/src/Butil/Bit.Butil/Scripts/butil.ts
@@ -1,2 +1,2 @@
var BitButil = BitButil || {};
-BitButil.version = window['bit-butil version'] = '9.2.0';
\ No newline at end of file
+BitButil.version = window['bit-butil version'] = '9.2.1';
\ No newline at end of file
diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj
index 4a7014cd4a..63fae6a659 100644
--- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj
+++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj
@@ -1,4 +1,4 @@
-
+
@@ -17,14 +17,14 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj
index 8f1ac9bc45..4583998bb3 100644
--- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj
+++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj
@@ -1,4 +1,4 @@
-
+
@@ -19,14 +19,14 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangeEmailSection.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangeEmailSection.razor
index ef92198768..3a277f44d2 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangeEmailSection.razor
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangeEmailSection.razor
@@ -10,7 +10,7 @@
@if (Email is not null)
{
-
+
}
-
+
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangePhoneNumberSection.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangePhoneNumberSection.razor
index 37f070c354..d046de2bbe 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangePhoneNumberSection.razor
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Settings/ChangePhoneNumberSection.razor
@@ -10,7 +10,7 @@
@if (PhoneNumber is not null)
{
-
+
}
-
+
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Todo/TodoPage.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Todo/TodoPage.razor
index 89853b379c..53bc60d571 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Todo/TodoPage.razor
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Authorized/Todo/TodoPage.razor
@@ -26,9 +26,9 @@