Skip to content

Commit 2b8c23b

Browse files
authored
feat(websites): add always-prerender pwa mode to websites #10108 (#10113)
1 parent df165d4 commit 2b8c23b

File tree

30 files changed

+517
-147
lines changed

30 files changed

+517
-147
lines changed

.github/workflows/blazorui.demo.cd.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
run: dotnet build src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj -p:Version="${{ vars.APPLICATION_DISPLAY_VERSION}}" -c Release
5050

5151
- name: Publish
52-
run: dotnet publish src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj -c Release -p:PwaEnabled=true -p:Version="${{ vars.APPLICATION_DISPLAY_VERSION}}" --self-contained -r linux-x64 -o ${{env.DOTNET_ROOT}}/server
52+
run: dotnet publish src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj -c Release -p:Version="${{ vars.APPLICATION_DISPLAY_VERSION}}" --self-contained -r linux-x64 -o ${{env.DOTNET_ROOT}}/server
5353

5454
- name: Upload server artifact
5555
uses: actions/upload-artifact@v4

README.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ The following apps are our open-source projects powered by the bit platform show
3939

4040
| |    Web    |    iOS    | Android | Windows | macOS |
4141
|:-:|:--:|:--:|:--:|:--:|:--:|
42-
| bitplatform | [![SPA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251395129-71a5a79c-af74-4d4e-a0f7-ed9a15cf2e46.png)](https://bitplatform.dev)| *N/A* | *N/A* | *N/A* | *N/A* |
43-
| Sales | [![SPA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251395129-71a5a79c-af74-4d4e-a0f7-ed9a15cf2e46.png)](https://sales.bitplatform.dev) | *Soon!* | *Soon!* | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-sales.bitplatform.dev/SalesModule.Client.Windows-win-Setup.exe) | *Soon!* |
44-
| bit BlazorUI | [![Prerendered PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://blazorui.bitplatform.dev) | [![iOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381842-e72976ce-fd20-431d-a677-ca1ed625b83b.png)](https://apps.apple.com/app/bit-blazor-ui/id6450401404) | [![Android app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381958-24931682-87f6-44fc-a1c7-eecf46387005.png)](https://play.google.com/store/apps/details?id=com.bitplatform.BlazorUI.Demo) | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-components.bitplatform.dev/Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe) | [![macOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382211-0d58f9ba-1a1f-4481-a0ca-b23a393cca9f.png)](https://apps.apple.com/app/bit-blazor-ui/id6450401404)
45-
| AdminPanel | [![Prerendered PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://adminpanel.bitplatform.dev) | [![iOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381842-e72976ce-fd20-431d-a677-ca1ed625b83b.png)](https://apps.apple.com/app/bit-adminpanel/id6450611349) | [![Android app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381958-24931682-87f6-44fc-a1c7-eecf46387005.png)](https://play.google.com/store/apps/details?id=com.bitplatform.AdminPanel.Template) | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-admin.bitplatform.dev/AdminPanel.Client.Windows-win-Setup.exe) | [![macOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382211-0d58f9ba-1a1f-4481-a0ca-b23a393cca9f.png)](https://apps.apple.com/app/bit-adminpanel/id6450611349) |
46-
| Todo | [![Prerendered PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://todo.bitplatform.dev) | [![iOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381842-e72976ce-fd20-431d-a677-ca1ed625b83b.png)](https://apps.apple.com/app/bit-todotemplate/id6450611072) | [![Android app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381958-24931682-87f6-44fc-a1c7-eecf46387005.png)](https://play.google.com/store/apps/details?id=com.bitplatform.Todo.Template) | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-todo.bitplatform.dev/TodoSample.Client.Windows-win-Setup.exe) | [![macOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382211-0d58f9ba-1a1f-4481-a0ca-b23a393cca9f.png)](https://apps.apple.com/app/bit-todotemplate/id6450611072)
47-
48-
1. [bitplatform.dev](https://bitplatform.dev): .NET 9 Pre-rendered SPA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)
49-
2. [sales.bitplatform.dev](https://sales.bitplatform.dev): .NET 9 Sales Pre-rendered SPA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)
42+
| bitplatform | [![PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://bitplatform.dev)| *N/A* | *N/A* | *N/A* | *N/A* |
43+
| Sales | [![PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://sales.bitplatform.dev) | *Soon!* | *Soon!* | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-sales.bitplatform.dev/SalesModule.Client.Windows-win-Setup.exe) | *Soon!* |
44+
| bit BlazorUI | [![Prerendered PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://blazorui.bitplatform.dev) | [![iOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381842-e72976ce-fd20-431d-a677-ca1ed625b83b.png)](https://apps.apple.com/us/app/bit-blazor-ui/id6450401404) | [![Android app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381958-24931682-87f6-44fc-a1c7-eecf46387005.png)](https://play.google.com/store/apps/details?id=com.bitplatform.BlazorUI.Demo) | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-components.bitplatform.dev/Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe) | [![macOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382211-0d58f9ba-1a1f-4481-a0ca-b23a393cca9f.png)](https://apps.apple.com/nl/app/bit-blazor-ui/id6450401404)
45+
| AdminPanel | [![Prerendered PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://adminpanel.bitplatform.dev) | [![iOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381842-e72976ce-fd20-431d-a677-ca1ed625b83b.png)](https://apps.apple.com/us/app/bit-adminpanel/id6450611349) | [![Android app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381958-24931682-87f6-44fc-a1c7-eecf46387005.png)](https://play.google.com/store/apps/details?id=com.bitplatform.AdminPanel.Template) | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-admin.bitplatform.dev/AdminPanel.Client.Windows-win-Setup.exe) | [![macOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382211-0d58f9ba-1a1f-4481-a0ca-b23a393cca9f.png)](https://apps.apple.com/nl/app/bit-adminpanel/id6450611349) |
46+
| Todo | [![Prerendered PWA](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381583-8b8eb895-80c9-4811-9641-57a5a08db163.png)](https://todo.bitplatform.dev) | [![iOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381842-e72976ce-fd20-431d-a677-ca1ed625b83b.png)](https://apps.apple.com/us/app/bit-todotemplate/id6450611072) | [![Android app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251381958-24931682-87f6-44fc-a1c7-eecf46387005.png)](https://play.google.com/store/apps/details?id=com.bitplatform.Todo.Template) | [![Windows app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382080-9ae97fea-934c-4097-aca4-124a2aed1595.png)](https://windows-todo.bitplatform.dev/TodoSample.Client.Windows-win-Setup.exe) | [![macOS app](https://github-production-user-asset-6210df.s3.amazonaws.com/6169846/251382211-0d58f9ba-1a1f-4481-a0ca-b23a393cca9f.png)](https://apps.apple.com/nl/app/bit-todotemplate/id6450611072)
47+
48+
1. [bitplatform.dev](https://bitplatform.dev): .NET 9 Pre-rendered PWA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)
49+
2. [sales.bitplatform.dev](https://sales.bitplatform.dev): .NET 9 Sales Pre-rendered PWA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)
5050
3. [blazorui.bitplatform.dev](https://blazorui.bitplatform.dev): .NET 9 Pre-rendered PWA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)
5151
4. [adminpanel.bitplatform.dev](https://adminpanel.bitplatform.dev): .NET 9 PWA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)
5252
5. [todo.bitplatform.dev](https://todo.bitplatform.dev): .NET 8 Pre-rendered PWA with Blazor WebAssembly (Azure Web App + Cloudflare CDN)

src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor

+5-45
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,11 @@
2525
<Link rel="icon" href="favicon.ico" type="image/x-icon" />
2626
<HeadOutlet @rendermode=renderMode />
2727
<Link rel="apple-touch-icon" sizes="512x512" href="images/icons/bit-icon-512.png" />
28-
@if (AppRenderMode.PwaEnabled)
29-
{
30-
<Link rel="manifest" href="manifest.json" />
31-
}
28+
<Link rel="manifest" href="manifest.json" />
3229
</head>
3330

3431
<body class="@BitCss.Class.Color.Background.Primary @BitCss.Class.Color.Foreground.Primary bit-blazor-web">
3532

36-
<!-- Google tag (gtag.js) -->
37-
<Script async Src="https://www.googletagmanager.com/gtag/js?id=G-G1ET5L69QF"></Script>
38-
<Script>
39-
window.dataLayer = window.dataLayer || [];
40-
function gtag() { dataLayer.push(arguments); }
41-
gtag('js', new Date());
42-
43-
gtag('config', 'G-G1ET5L69QF');
44-
</Script>
45-
<!-- Google tag -->
46-
<!-- Microsoft Clarity
47-
<Script>
48-
(function (c, l, a, r, i, t, y) {
49-
c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) };
50-
t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i;
51-
y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
52-
})(window, document, "clarity", "script", "ipec21ezsa");
53-
</Script>
54-
Microsoft Clarity -->
55-
5633
<Link rel="stylesheet" href="_content/Bit.BlazorUI/styles/bit.blazorui.css" />
5734
<Link rel="stylesheet" href="_content/Bit.BlazorUI.Extras/styles/bit.blazorui.extras.css" />
5835
<Link rel="stylesheet" href="_content/Bit.BlazorUI.Icons/styles/bit.blazorui.icons.css" />
@@ -67,27 +44,10 @@
6744
}
6845
<Routes @rendermode=renderMode />
6946

70-
<Script src="_framework/blazor.web.js?v=9.0.0" autostart="false"></Script>
71-
@if (AppRenderMode.PwaEnabled)
72-
{
73-
<Script src="_content/Bit.Bswup/bit-bswup.js"></Script>
74-
<Script src="_content/Bit.Bswup/bit-bswup.progress.js"></Script>
75-
<AppBswupProgressBar />
76-
}
77-
else
78-
{
79-
<Script>
80-
Blazor.start({
81-
webAssembly: {
82-
loadBootResource: function (type, name, defaultUri, integrity) {
83-
if (integrity != null && integrity != '')
84-
return `${defaultUri}?v=${integrity}`;
85-
return null; // default blazor asset loading mechanism.
86-
}
87-
}
88-
});
89-
</Script>
90-
}
47+
<Script src="_framework/blazor.web.js" autostart="false"></Script>
48+
<Script src="_content/Bit.Bswup/bit-bswup.js"></Script>
49+
<Script src="_content/Bit.Bswup/bit-bswup.progress.js"></Script>
50+
<AppBswupProgressBar />
9151
<Script src="_content/Bit.BlazorUI.Demo.Client.Core/prism-1.28.0/prism.js"></Script>
9252
<Script src="_content/Bit.BlazorUI/scripts/bit.blazorui.js"></Script>
9353
<Script src="_content/Bit.BlazorUI.Extras/scripts/bit.blazorui.extras.js"></Script>

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cs

-7
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ public static class AppRenderMode
1515
? BlazorServer /*For better development experience*/
1616
: BlazorWebAssembly;
1717

18-
public static bool PwaEnabled =>
19-
#if PwaEnabled
20-
true;
21-
#else
22-
false;
23-
#endif
24-
2518
/// <summary>
2619
/// Is running under .NET MAUI?
2720
/// </summary>

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html

-10
Original file line numberDiff line numberDiff line change
@@ -132,16 +132,6 @@
132132
</head>
133133

134134
<body class="bit-blazor-hybrid">
135-
<!-- Google tag (gtag.js) -->
136-
<script async src="https://www.googletagmanager.com/gtag/js?id=G-G1ET5L69QF"></script>
137-
<script>
138-
window.dataLayer = window.dataLayer || [];
139-
function gtag() { dataLayer.push(arguments); }
140-
gtag('js', new Date());
141-
142-
gtag('config', 'G-G1ET5L69QF');
143-
</script>
144-
<!-- Google tag -->
145135
<div id="app-container" class="bit-css-clr-bg-primary bit-css-clr-fg-primary">
146136
<div class="bit-lds-wrapper">
147137
<div class="bit-lds-grid">

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
<!-- To change MultilingualEnabled's value, checkout Directory.Build.props -->
99
<HybridGlobalization>true</HybridGlobalization>
1010
<WasmStripILAfterAOT>true</WasmStripILAfterAOT>
11-
<ServiceWorkerAssetsManifest Condition=" '$(PwaEnabled)' == 'true' ">service-worker-assets.js</ServiceWorkerAssetsManifest>
12-
<BlazorCacheBootResources Condition=" '$(PwaEnabled)' == 'true' ">false</BlazorCacheBootResources>
11+
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
12+
<BlazorCacheBootResources>false</BlazorCacheBootResources>
1313
<NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
1414
<StaticWebAssetProjectMode>Default</StaticWebAssetProjectMode>
1515
</PropertyGroup>
1616

17-
<ItemGroup Condition=" '$(PwaEnabled)' == 'true' ">
17+
<ItemGroup>
1818
<ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
1919
</ItemGroup>
2020

Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
// In development, always fetch from the network and do not enable offline support.
22
// This is because caching would make development more difficult (changes would not
33
// be reflected on the first load after each change).
4-
self.addEventListener('fetch', () => { });
4+
self.addEventListener('fetch', () => { });
5+
6+
self.clients
7+
.matchAll({ includeUncontrolled: true })
8+
.then(clients => (clients || []).forEach(client => client.postMessage('START_BLAZOR')));

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js

+2-19
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,19 @@ self.assetsExclude = [
1010
];
1111
self.externalAssets = [
1212
{
13-
"url": "/"
14-
},
15-
{
16-
"url": "_framework/blazor.web.js?v=9.0.0"
13+
"url": "_framework/blazor.web.js"
1714
},
1815
{
1916
"url": "Bit.BlazorUI.Demo.Server.styles.css"
20-
},
21-
{
22-
"url": "https://www.googletagmanager.com/gtag/js?id=G-G1ET5L69QF"
2317
}
2418
];
2519

2620
self.serverHandledUrls = [
2721
/\/api\//,
28-
/\/odata\//,
29-
/\/jobs\//,
30-
/\/core\//,
31-
/\/signalr\//,
32-
/\/healthchecks-ui/,
33-
/\/healthz/,
3422
/\/swagger/,
3523
/\/api.fda.gov/
3624
];
3725

38-
self.isPassive = true;
39-
self.defaultUrl = "/";
40-
self.errorTolerance = 'lax';
41-
self.caseInsensitiveUrl = true;
42-
self.disablePassiveFirstBoot = true;
43-
self.noPrerenderQuery = 'no-prerender=true';
26+
self.prerenderMode = 'always';
4427

4528
self.importScripts('_content/Bit.Bswup/bit-bswup.sw.js');

src/BlazorUI/Demo/Directory.Build.props

-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@
1010

1111
<NeutralLanguage>en-US</NeutralLanguage>
1212

13-
<PwaEnabled>false</PwaEnabled>
14-
<DefineConstants Condition=" '$(PwaEnabled)' == 'true' ">$(DefineConstants);PwaEnabled</DefineConstants>
15-
1613
<SupportedOSPlatformVersion Condition="$(TargetFramework.Contains('-ios'))">16.4</SupportedOSPlatformVersion>
1714
<SupportedOSPlatformVersion Condition="$(TargetFramework.Contains('-mac'))">16.4</SupportedOSPlatformVersion>
1815
<SupportedOSPlatformVersion Condition="$(TargetFramework.Contains('-android'))">24.0</SupportedOSPlatformVersion>

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor

+4-4
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
}
5353
@*#endif*@
5454
<Link rel="apple-touch-icon" sizes="512x512" href="images/icons/bit-icon-512.png" />
55-
<Link rel="manifest" href="manifest.json" />
55+
<Link rel="manifest" href="manifest.json" />
5656
</head>
5757

5858
<body class="@BitCss.Class.Color.Background.Primary @BitCss.Class.Color.Foreground.Primary bit-blazor-web">
@@ -86,9 +86,9 @@
8686
<Script src="_framework/blazor.web.js" autostart="false"></Script>
8787
<!-- Ensure that the version of `blazor.web.js` matches the version specified in `service-worker.published.js`.
8888
This alignment is necessary for the PWA functionality of the Blazor app to work correctly. -->
89-
<Script src="_content/Bit.Bswup/bit-bswup.js"></Script>
90-
<Script src="_content/Bit.Bswup/bit-bswup.progress.js"></Script>
91-
<AppBswupProgressBar />
89+
<Script src="_content/Bit.Bswup/bit-bswup.js"></Script>
90+
<Script src="_content/Bit.Bswup/bit-bswup.progress.js"></Script>
91+
<AppBswupProgressBar />
9292
<Script src="_content/Bit.Butil/bit-butil.js"></Script>
9393
@*#if (offlineDb == true)*@
9494
<Script src="_content/Bit.Besql/bit-besql.js"></Script>

src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@
66
<StaticWebAssetProjectMode>Default</StaticWebAssetProjectMode>
77
<InvariantTimezone>true</InvariantTimezone>
88
<InvariantGlobalization>true</InvariantGlobalization>
9+
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
10+
<BlazorCacheBootResources>false</BlazorCacheBootResources>
11+
<StaticWebAssetFingerprintingEnabled>false</StaticWebAssetFingerprintingEnabled>
912
<ResolveStaticWebAssetsInputsDependsOn>
1013
BeforeBuildTasks;
1114
$(ResolveStaticWebAssetsInputsDependsOn)
1215
</ResolveStaticWebAssetsInputsDependsOn>
1316
</PropertyGroup>
1417

1518
<ItemGroup>
19+
<ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
1620
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.2" />
1721
</ItemGroup>
1822

@@ -22,7 +26,7 @@
2226

2327
<Content Remove="appsettings.json" />
2428
<EmbeddedResource Include="appsettings.json" />
25-
29+
<PackageReference Include="Bit.Bswup" Version="9.6.0-pre-02" />
2630
<PackageReference Include="Bit.BlazorUI" Version="9.6.0-pre-02" />
2731
<PackageReference Include="Bit.BlazorUI.Icons" Version="9.6.0-pre-02" />
2832
<PackageReference Include="Bit.BlazorUI.Assets" Version="9.6.0-pre-02" />

0 commit comments

Comments
 (0)