v-10.6.0
·
61 commits
to develop
since this release
Immutable
release. Only release title and notes can be modified.
Key Highlights
bit BlazorUI
- bit BlazorUI now ships with four design systems: Fluent (the default), Fluent 2, and the experimental Material and Cupertino. Your app can feel at home on Windows, Android and iOS without you writing a line of CSS for it. Try them on the home page, where you can switch the design system, light or dark mode, and the accent color, and watch the whole UI change at once.
- Matching the library to your brand is now a matter of setting values instead of fighting CSS. Colors, typography, corner radius, shadows, sizes, spacing and animation are all exposed as settings you can change for the entire app, for a group of components, or for a single one, at build time or at runtime. Hand it your brand color and you get a complete, consistent palette out of it, in both light and dark mode.
- Because the look of the app is data rather than a pile of stylesheet overrides, your coding agent can restyle it for you just as reliably as you would by hand, and you keep the ability to review what changed.
- Every color that ships is checked against WCAG 2.2 contrast requirements by automated tests, so accessibility is something you inherit rather than something you audit at the end.
- Letting your users pick a theme or an accent color takes one component: ThemeSwitcher and AccentColorSwitcher are ready to drop into your header.
- Every component in the library was improved, both the component itself and its documentation, from BitButton and BitDataGrid to BitIcon, BitElement and BitCascadingValueProvider. BitDataGrid gained master-detail, BitFullCalendar gained several new features, and the demo pages now show multi-file code samples.
bit Boilerplate
- The whole bit Boilerplate source code went through a security review and is production grade. Identity got the most attention: signing key rotation, safer refresh token handling, an improved WebAuthn and passwordless flow, and a better Keycloak integration. Security headers now survive the exception handler as well.
- bit Boilerplate now has built-in OAuth 2.1 module
- bit Boilerplate now has built-in dev-mcp, give AI access to query database and hangfire jobs, check health check status in a secure way.
- bit Boilerplate is now GDPR friendly, with consent management, data export, account deletion, and privacy aware telemetry included in the template.
- The AI chatbot supports speech to text, text to speech, and file uploads.
- Prerendered pages are now cached at the CDN edge per language, so a multi-language app gets the same edge performance a single-language one does, and Cloudflare cache purge by tag lets you invalidate exactly the content you changed instead of the whole site.
- The template moved to Fluent 2, picked up the accent color switcher, native permission management on the hybrid apps, soft restart, Cloudflare Tunnels support, and a large number of new end-to-end tests.
Tooling
- Bmotion, Brouter, Bswup and Butil each have their own website now, prerendered and with live samples.
- bit BlazorUI, Butil, Brouter, Bmotion and Bswup all expose an MCP server, aggregated at bitplatform.dev/mcp, so your coding agent can reach the whole platform from a single endpoint: components, parameters, examples, enums, icons and theming, plus browser APIs, routing, animation and service workers.
- Butil got JavaScript tree shaking and much better trimming, which cuts the published size of your app.
- Brouter fixed prerendering, SectionOutlet and keep alive, and Bswup received a broad round of improvements including better BswupProgress defaults.
bit BlazorUI
- Add new features for master-detail in BitDataGrid (#12777) by @msynk in #12840
- BlazorUI theme improvements ii (#12320) by @msynk in #12369
- Apply BlazorUI theme improvements iii (#12954) by @msynk in #12955
- Apply BlazorUI theme improvements v (#13026) by @msynk in #13027
- Apply BlazorUI theme improvements iv (#12971) by @msynk in #12972
- Fix style issue of disabled toggled BitToggle (#12726) by @msynk in #12727
- Apply BitCheckbox improvements (#12737) by @msynk in #12739
- Apply BitCalendar improvements (#12728) by @msynk in #12738
- Apply BitFileInput improvements (#12742) by @msynk in #12744
- Apply BitChoiceGroup improvements (#12740) by @msynk in #12743
- Apply BitFileUpload improvements (#12778) by @msynk in #12779
- Apply improvements to BitNumberField (#12813) by @msynk in #12819
- Apply improvements to BitOtpInput (#12822) by @msynk in #12828
- Fix comment issues of BitOtpInput (#12832) by @msynk in #12833
- Apply BitRating improvements (#12824) by @msynk in #12829
- Specify mirroed files in bit Boilerplate (#12838) by @yasmoradi in #12839
- Fix non-ascii number issue in markdown components (#12841) by @msynk in #12842
- Apply BitDropdown improvements (#12741) by @msynk in #12745
- Apply improvements to BitSearchBox (#12843) by @msynk in #12844
- Apply improvements to BitSlider (#12845) by @msynk in #12849
- Apply BitTagsInput improvements (#12846) by @msynk in #12850
- Apply improvements of BitTextField (#12847) by @msynk in #12851
- Apply BitToggle improvements (#12848) by @msynk in #12852
- Apply BitFooter improvements (#12865) by @msynk in #12866
- Apply BitCircularTimePicker improvements (#12855) by @msynk in #12862
- Apply BitColorPicker improvements (#12858) by @msynk in #12864
- Apply BitDatePicker improvements (#12861) by @msynk in #12863
- Add new features to BitFullCalendar (#12900) by @msynk in #12910
- Apply BitGrid improvements (#12903) by @msynk in #12909
- Apply BitTimePicker improvements (#12873) by @msynk in #12877
- Add AccentColorSwitcher (#12902) by @msynk in #12908
- Apply missing BitCarousel improvements (#12917) by @msynk in #12918
- Apply BitHeader improvements (#12919) by @msynk in #12920
- Apply BitSpacer improvements (#12921) by @msynk in #12924
- Apply BitLayout improvements (#12922) by @msynk in #12923
- Apply BitBasicList improvements (#12926) by @msynk in #12931
- apply BitSwiper improvements (#12927) by @msynk in #12930
- Apply BitStack improvements (#12925) by @msynk in #12933
- Apply BitTimeline improvements (#12928) by @msynk in #12932
- Apply BitBreadcrumb improvements (#12934) by @msynk in #12935
- Apply BitDropMenu improvements (#12940) by @msynk in #12941
- Apply BitNav improvements (#12942) by @msynk in #12946
- Apply BitNavBar improvements (#12969) by @msynk in #12970
- Apply BitPagination improvements (#12978) by @msynk in #12979
- Apply BitPivot improvements (#12986) by @msynk in #12987
- Apply BitBadge improvements (#12995) by @msynk in #12999
- Apply BitMessage improvements (#12996) by @msynk in #13000
- Apply BitPersona improvements (#13001) by @msynk in #13003
- Apply BitTag improvements (#13007) by @msynk in #13009
- Apply BitSnackbar improvements (#13002) by @msynk in #13004
- Apply BitLoading improvements (#13013) by @msynk in #13017
- Apply BitProgress improvements (#13014) by @msynk in #13018
- Apply BitShimmer improvements (#13015) by @msynk in #13019
- Apply BitCarousel improvements (#12881) by @msynk in #12882
- Apply BitDateRangePicker improvements (#12867) by @msynk in #12868
- Apply BitAccordion improvements (#13016) by @msynk in #13020
- Apply BitCard improvements (#13023) by @msynk in #13025
- Apply BitCollapse improvements (#13028) by @msynk in #13029
- Apply BitCallout improvements (#13021) by @msynk in #13024
- Apply BitModal improvements (#13038) by @msynk in #13039
- Apply BitScrollablePane improvements (#13048) by @msynk in #13051
- Apply BitSplitter improvements (#13052) by @msynk in #13054
- Apply BitDialog improvements (#13034) by @msynk in #13037
- Apply BitPanel improvements (#13042) by @msynk in #13043
- Apply BitTooltip improvements (#13053) by @msynk in #13055
- Apply BitElement improvements (#13071) by @msynk in #13073
- Apply BitCascadingValueProvider improvements (#13069) by @msynk in #13072
- Apply BitIcon improvements (#13076) by @msynk in #13078
- Apply BitImage improvements (#13080) by @msynk in #13085
- Apply BitLabel improvements (#13081) by @msynk in #13084
- Apply BitText improvements (#13119) by @msynk in #13121
- Apply BitLink improvements (#13101) by @msynk in #13112
- Apply BitMediaQuery improvements (#13102) by @msynk in #13113
- Apply BitPullToRefresh improvements (#13106) by @msynk in #13117
- Apply BitSeparator improvements (#13107) by @msynk in #13114
- Apply BitSticky improvements (#13108) by @msynk in #13115
- Apply BitSwipeTrap improvements (#13109) by @msynk in #13132
- Fix AutoFocusSearchBox issues in BitDropdown (#13133) by @msynk in #13138
- Apply BitOverlay improvements (#13105) by @msynk in #13116
- Fix Link and Script assets component issues (#13212) by @msynk in #13213
- Fix focus issues of overlay components (#13192) by @msynk in #13210
bit Boilerplate
- Correct response caching of origin-dependent and faulted responses #12733 by @yasmoradi in #12734
- Reset isNewUser when SignInPanel state resets #12769 by @yasmoradi in #12770
- Add Cursor rules and Aspire-aware AGENTS.md commands to the template #12765 by @yasmoradi in #12766
- Fix static file caching for Development hot reload and CDN no-transform #12763 by @yasmoradi in #12764
- Cache CultureInfoManager default and supported cultures #12761 by @yasmoradi in #12762
- Use UnsafeAccessor instead of reflection for WASM config providers #12759 by @yasmoradi in #12760
- Fix persistent PubSub messages of other keys being dropped when one is consumed #12757 by @yasmoradi in #12758
- Offload startup CPU-bound work off the Blazor WebAssembly UI thread #12755 by @yasmoradi in #12756
- Improve bit Boilerplate WebAuthn implementation (#12780) by @yasmoradi in
#12781 - Improve the way bit Boilerplate deals with urls (#12782) by @yasmoradi in #12783
- Improve retry delegating handler of the bit Boilerplate (#12784) by @yasmoradi in #12785
- Improve the way bit Boilerplate deals with json (#12786) by @yasmoradi in #12787
- Add cloudflare purge cache by tag (#12788) by @yasmoradi in #12789
- Improve sign-in process (#12790) by @yasmoradi in #12791
- Improve bit Boilerplate identity (#12792) by @yasmoradi in #12793
- Improve bit Boilerplate aspire configuration (#12794) by @yasmoradi in #12795
- Improve bit Boilerplate identity pages (#12796) by @yasmoradi in #12797
- Add multiple automated tests for bit Boilerplate identity (#12798) by @yasmoradi in #12799
- Add several automated test to bit Boilerplate (#12800) by @yasmoradi in #12801
- Fix security headers issue with exception handler (#12802) by @yasmoradi in #12803
- Add global using blocks to bit Boilerplate (#12804) by @yasmoradi in #12805
- Add identity key roation feature to bit Boilerplate (#12806) by @yasmoradi in #12807
- Improve bit Boilerplate identity module (#12809) by @yasmoradi in #12810
- Add app chat bot tests to bit Boilerplate (#12811) by @yasmoradi in #12812
- Improve bit Boilerplate tooling (#12820) by @yasmoradi in #12821
- Improve bit Boilerplate refresh token (#12869) by @yasmoradi in #12870
- Improve bit Boilerplate response caching (#12874) by @yasmoradi in #12875
- Improve bit Boilerplate tests run speed (#12878) by @yasmoradi in #12879
- Improve bit Boilerplate keycloak integration (#12883) by @yasmoradi in #12884
- Improve bit Boilerplate http delegating handlers (#12887) by @yasmoradi in #12888
- Improve bit Boilerplate configuration (#12889) by @yasmoradi in #12890
- Add accent color switcher to Boilerplate (#12885) by @msynk in #12886
- Improve bit Boilerplate AI chatbot (#12891) by @yasmoradi in #12892
- Improve bit Boilerplate AI Chat panel voice features (#12906) by @yasmoradi in #12907
- Use BitAccentColorSwitcher component in Boilerplate (#12915) by @msynk in #12916
- Add native permission management to bit Boilerplate #12913 by @yasmoradi in #12914
- Improve bit Boilerplate account pages (#12980) by @yasmoradi in #12981
- Improve bit Boilerplate tenant management pages (#12982) by @yasmoradi in #12983
- Improve bit Boilerplate layout components (#12984) by @yasmoradi in #12985
- Improve bit Boilerplate add-edit product (#12815) by @yasmoradi in #12816
- Improve bit Boilerplate push notifications (#12836) by @yasmoradi in #12837
- Improve bit Boilerplate AI Chatbot panel (#12990) by @yasmoradi in #12992
- Improve bit Boilerplate categories/products pages (#12997) by @yasmoradi in #12998
- Improve bit Boilerplate common components (#13005) by @yasmoradi in #13006
- Improve bit Boilerplate theme setup (#13010) by @yasmoradi in #13011
- Prevent force reload the app on culture changes (#13030) by @yasmoradi in #13031
- Update bit Boilerplate to use Fluent2 (#13032) by @yasmoradi in #13033
- Several improvements in bit Boilerplate (#13035) by @yasmoradi in #13036
- Improve bit Boilerplate localization (#13044) by @yasmoradi in #13045
- Improve bit Boilerplate caching (#13046) by @yasmoradi in #13047
- Fix small issues in bit Boilerplate (#13049) by @yasmoradi in #13050
- Add soft restart feature to bit Boilerplate (#13058) by @yasmoradi in #13059
- Add cloudflare tunnels support to bit Boilerplate (#13060) by @yasmoradi in #13062
- Implement GDPR in bit Boilerplate - Phase 1 (#13061) by @yasmoradi in #13063
- Add e2e tests to bit Boilerplate (#13064) by @yasmoradi in #13066
- Fix cdn edge caching issue with localization in bit Boilerplate (#13067) by @yasmoradi in #13068
- Improve bit Boilerplate GDPR (#13094) by @yasmoradi in #13095
- Improve bit Boilerplate push notification settings (#13097) by @yasmoradi in #13098
- Improve coding agents instructions (#13110) by @yasmoradi in #13111
- Improve bit Boilerplate SEO (#13139) by @yasmoradi in #13140
- Add api and database access to e2e tests (#13141) by @yasmoradi in #13142
- Add Dev Mcp to bit Boilerplate (#13149) by @yasmoradi in #13150
- OAuth 2.1 authorization server for bit Boilerplate (#13155) by @yasmoradi in #13161
- Improve bit Boilerplate push notification subscriptions (#13165) by @yasmoradi in #13166
- Small improvements in bit Boilerplate (#13216) by @yasmoradi in #13217
- Resolve bit Boilerplate Aspire wildcard endpoints issues (#13222) by @yasmoradi in #13223
Toolings
- Make AddBitBrouterServices method idempotent (#12729) by @msynk in #12730
- Disable animation on initial load when view transition is enabled in Brouter (#12746) by @msynk in #12747
- Fix SectionOutlet issues in Brouter (#12752) by @msynk in #12772
- Improve file structure of Brouter (#12773) by @msynk in #12774
- Improve trimming features of Butil (#12936) by @msynk in #12939
- Improve keep alive feature in Brouter (#12961) by @msynk in #12962
- Add js tree shaking in Butil (#12956) by @msynk in #12958
- Apply Bswup improvements (#12408) by @msynk in #12418
- Fix prerendering issues of Brouter (#12830) by @msynk in #12831
- Fix default behavior of BswupProgress (#12988) by @msynk in #12989
- Apply new improvements to Butil trimming (#13056) by @msynk in #13057
- Add missing Element features (#13082) by @msynk in #13083
- Fix trimming issues of Butil (#13137) by @msynk in #13143
- Apply Butil improvements I (#13086) by @msynk in #13129
- Apply Butil improvements II (#13087) by @msynk in #13122
- Apply Butil improvements III (#13088) by @msynk in #13123
- Apply Butil improvements IV (#13089) by @msynk in #13128
- Apply Butil improvements V (#13090) by @msynk in #13124
- Apply Butil improvements VI (#13091) by @msynk in #13125
- Apply Butil improvements VII (#13092) by @msynk in #13126
- Apply Butil improvements VIII (#13093) by @msynk in #13127
- Generate a real async iterator for IAsyncEnumerable actions #13187 by @yasmoradi in #13191
- Optimize modules of Butil (#13170) by @msynk in #13171
- Add safe methods to IBrouter (#13202) by @msynk in #13203
- Fix value inconsistencies of html attributes in Butil modules (#13206) by @msynk in #13209
- Rebuild Brouter route content on parameter change by default (#13214) by @msynk in #13215
- Fix circular dependency issue of Butil trimming (#13218) by @msynk in #13219
Docs / Websites
- Improve Iconography page (#12576) by @mhrastegari in #12577
- Add missing installation guide to Brouter demo (#12731) by @msynk in #12732
- Overhaul demo project of Brouter (#12735) by @msynk in #12736
- Add prerendering to Bswup demo website (#12856) by @msynk in #12859
- Add prerendering to Butil website (#12857) by @msynk in #12860
- Support prerendering in Bmotion website (#12871) by @msynk in #12872
- Improve Platform website (#12876) by @msynk in #12880
- Improve Bswup demo website (#12893) by @msynk in #12896
- Improve Brouter demo website (#12895) by @msynk in #12897
- Improve Bmotion demo website (#12899) by @msynk in #12901
- Improve Butil demo website (#12894) by @msynk in #12898
- Add MCP server infrastructure to Brouter website (#12937) by @msynk in #12938
- Add MCP server for Bswup (#12944) by @msynk in #12945
- Add missing MCP server docs to Brouter demo website (#12948) by @msynk in #12949
- Add MCP server to Bmotion demo website (#12950) by @msynk in #12951
- Add MCP server for Butil (#12943) by @msynk in #12947
- Improve MCP server of Bswup (#12964) by @msynk in #12966
- Improve MCP server of Bmotion (#12963) by @msynk in #12965
- Improve MCP server of Brouter (#12967) by @msynk in #12968
- Improve MCP server of Butil (#12957) by @msynk in #12959
- Add platform website mcp (#12974) by @yasmoradi in #12976
- Improve AI Chatbot across projects (#12952) by @yasmoradi in #12977
- Add Butil's demo website (#12823) by @msynk in #12825
- Fix persist cookie feature of theme in BlazorUI demo website (#12826) by @msynk in #12827
- Improve BlazorUI MCP server (#13022) by @msynk in #13040
- Add multi-file support to code samples of demo pages (#13074) by @msynk in #13075
- Add missing CLAUDE.md and apply rules to Butil source code (#13118) by @msynk in #13120
- Give platform website AI access to indexed contents of the repo (#13130) by @yasmoradi in #13131
- Improve Bswup progress UI in BlazorUI demo (#13103) by @msynk in #13104
- Honor
X-Forwarded-Protoin the websites #13189 by @yasmoradi in #13190 - Re-index pulled changes of the Platform website's codebase memory repository (#13220) by @yasmoradi in #13221
Full Changelog: v-10.5.0...v-10.6.0