Release Notes
What's new in each version of Blazor Power Tools.
v10.9.21
11 May 2026
- feat(teams): round-2 team licensing — opt-out, admin pricing, billing safety
v10.9.20
7 May 2026
- fix(releases): explicit MapGet endpoint + sort tiebreaker
- fix(releases): always register /releases static-file middleware
- fix(downloads): let admins/moderators access license-gated downloads
- feat(mcp): add BPT-Expert MCP server image + license-gated download
- docs(skills): refresh skillset bundle for chat panel + landing page
- feat(ai): extract reusable BptAiChatPanel with BYOK + model picker
v0.0.0-mcp-test18
7 May 2026
Maintenance release.
v0.0.0-mcp-test8
6 May 2026
Maintenance release.
v0.0.0-mcp-test7
6 May 2026
- fix(releases): explicit MapGet endpoint + sort tiebreaker
v0.0.0-mcp-test6
6 May 2026
- fix(releases): always register /releases static-file middleware
v0.0.0-mcp-test5
6 May 2026
Maintenance release.
v0.0.0-mcp-test3
6 May 2026
Maintenance release.
v0.0.0-mcp-test2
6 May 2026
- fix(downloads): let admins/moderators access license-gated downloads
v0.0.0-mcp-test
6 May 2026
- feat(mcp): add BPT-Expert MCP server image + license-gated download
- docs(skills): refresh skillset bundle for chat panel + landing page
- feat(ai): extract reusable BptAiChatPanel with BYOK + model picker
v10.9.19
1 May 2026
- feat(image-editor,ai): in-canvas AI chat panel with multi-vendor support
v10.9.18
30 April 2026
- fix(theming): make Dark/Nord cascade reach BptImageEditor and BptDataFlow
- Add landingpage product demo on frontpage
- Fixed popup on start
v10.9.17
29 April 2026
- feat(landing-page): align Page Settings/Components subtabs with device bar in minified mode
v10.9.16
29 April 2026
- feat(landing-page): minified mode, translations sweep, sub-component label localization
- feat(test): add BptDataFlow lifecycle test setup with server host
- feat(landing-page,banner): menu navigation, palette unification, ad copy
- feat(dataflow): add 4 new test flows for Email, SQLite, FTP, and Azure Function
- fix(dataflow): harden all connectors for production use
- wip(landing-page): unify color picker + editor-hidden toggle [skip ci]
v10.9.15
21 April 2026
- feat(landing-page): grid cells, toolbar, drag-to-cell; extract BptButton CSS
- feat(dataflow): add full connector implementations to Windows service
- Landingpage fixes
- feat(landing-page): sliders, label colors, format toolbar, device preview
- feat(landing-page): fix element selection UX and add CTA button styling fields
- fix(landing-page): clicking CTA/button sub-components selects their properties, not the section
- fix(landing-page): fix section selection toggle, focused field properties, rename Section tab
- fix(landing-page): restore text selection before applying font color from picker
- fix(landing-page): suppress sidebar transition during panel drag
- feat(landing-page): switch Properties tab when inline editing activates
- feat(landing-page): add font color button to inline text toolbar
- fix(landing-page): make sections list visible in all sidebar tabs, fix three-way sync
- refactor(landing-page): remove floating CSS editor, HTML modal, and left panel CSS tab styles
- feat(landing-page): add three-way selection sync between preview, sections, and editors
- feat(landing-page): add unified CSS editor with scope highlighting and auto-apply
- feat(landing-page): add syntax-highlighted HTML editor in right panel
- feat(landing-page): restructure right panel with Sections/HTML/CSS tabs, resizable width
- feat(landing-page): add panel resize JS with localStorage, editor scroll sync, remove draggable
- feat(landing-page): add HTML and CSS syntax tokenizers
- fix(landing-page): use theme-adaptive colors for CSS scope headers
- fix(dataflow): fix Kafka consumer failing on topic metadata
v10.9.14
10 April 2026
- release: bump to v10.9.14
- fix(dataflow): fix connector bugs for Kafka, SFTP, MySQL, and MongoDB
- BptLandingpageCommands
- fix(dataflow): add JsonProtocol config to DataFlowWorker HubConnectionBuilder
- chore(landing-page): remove dead _showThemePicker/_showExportMenu fields, ToggleThemePicker, and orphaned CSS rule
- fix(landing-page): notify parent on tab close/rename, cancel bg timer on dispose, improve export label and filename sanitization
- feat(landing-page): add slug duplicate warning in page settings
- feat(landing-page): render BptButton sub-components in section content with page link resolution
- fix(landing-page): guard selEntity.fields null in sub-component panel foreach
- feat(landing-page): add Button sub-component property panel with page picker
- fix(admin): remove unused @using BlazorPowerTools.Server.Services from MainLayout
- fix(dataflow): wire demo pages to real bpt_dataflow Docker services
- fix(admin): move @using BlazorPowerTools.Server.Services to correct position in MyAccount
- feat(admin): apply view mode to MyAccount admin section cards
- feat(landing-page): add New Page popup with template+theme picker and New Project confirmation
- feat(admin): wire AdminNavLinks and AdminViewPill into MainLayout
- feat(admin): add AdminNavLinks interactive island with view mode awareness
- fix(admin): add type=button to AdminViewPill buttons to prevent accidental form submit
- feat(admin): add AdminViewPill floating mode switcher component
- fix(landing-page): fix tab rename Enter key, autofocus, smooth tab scroll
- fix(admin): use local handler capture to avoid event race in AdminViewModeService
- feat(admin): add AdminViewModeService singleton for per-user view mode
- feat(landing-page): replace Export+Themes buttons with File menu and Project Settings
- feat(landing-page): add multi-page tab strip with scroll and inline rename
- fix(landing-page): flush pending edits on tab switch, init content theme from doc, fix async discard
- feat(landing-page): migrate to LandingPageProject with internal tab infrastructure
- feat(landing-page): add LandingPageProject model and Button sub-component type
- feat(landing-page): add BptlSerializer v2.0 project format with backward-compat fallback
- feat(demo): add offline storage toggle to server map demo
- feat(demo): add offline storage toggle to WASM map demo
- feat(map): add BptMapOfflineStorage component with UI and plugin adapter
- feat(map): add bptMapOfflineStorage.js with IndexedDB, tile resolver, overlay, and selection mode
- feat(map): add offline tile resolver hook in renderTiles()
- feat(map): add BptOfflineArea and BptOfflineDownloadProgress models
- BptLandingpage first version
- Add BptRichTextEditor component with full export/import pipeline
- Add chinese lang
- Add bpt culture js
- Add Bpt component translations
v10.9.13
6 April 2026
- bump version to 10.9.13
- fix(BptTerminalClient): Auto theme now follows site theme changes
- feat(BptLanguage): unified culture/language infrastructure with nav bar selector
- Fixed theme config
- ignore skills zip file created on build
- BptError white page fix
- BptError
- BptGrid and BptFilter
- feat(BptGrid): add demo pages and navigation entry
- feat(BptGrid): add JS module for filter popup handling
- feat(BptGrid): add core grid and column components
- feat(BptGrid): add enums and event args classes
- feat: add BptFilter generic filter component
- feat: BptLoader - classic spinner, Size slider, themed preview, Small mode fix
- feat: add BptProgressCircle demo pages, navigation entry, and theming support
- feat: add BptProgressCircle SVG-based circular progress component
- feat: use GradientColor for striped pattern via CSS variable --bpt-stripe-color
- feat: add BptProgressBarCircle enums
- feat(demo): update ProgressBar demo with GradientColor and SegmentCount controls
- feat: rework WebGL shaders in bptProgressBar.js
- feat(BptProgressBar): add GradientColor, GradientColorHex, SegmentCount parameters
- refactor: remove Wave, Particle, GradientSweep from BptProgressBar
- fix(carousel): address marquee code review issues
- feat(carousel): add marquee mode to server demo
- feat(carousel): add marquee mode to WASM demo
- feat(carousel): wire marquee JS interop lifecycle
- feat(carousel): add marquee JS engine (init/update/pause/resume/dispose)
- feat(carousel): add marquee rendering path and CSS
- feat(carousel): add marquee mode parameters
- feat(carousel): add BptCarouselMode and BptMarqueeDirection enums
v10.9.12
4 April 2026
- feat: v10.9.12 - BptSlider Label param, BptLoader WebGL fixes and shader improvements
v10.9.11
4 April 2026
- feat: component enhancements, demo updates, BptLoaderShape, BptDialogue, date selectors
- feat: v10.9.11 - BptUpload enhancements: ButtonMode, ItemTemplate, visibility toggles
- feat(demo): mirror BptUpload demo enhancements to WASM client
- feat(demo): add ButtonUpload, CustomTemplate, ButtonWithTemplate configs to Upload demo
- feat(BptUpload): add ItemTemplate for custom file row rendering
- Merge branch 'feat/image-editor-collapsible-panels' into main
- fix(BptUpload): add optional chaining to JS interop and doc comment for ButtonMode precedence
- feat(loader): integrate WebGL rendering into BptLoader.razor with CSS fallback
- feat(loader): add bptLoader.js WebGL renderer with all 5 shape shaders
- feat(BptUpload): add ButtonMode with BptButton pass-through parameters
- feat(BptUpload): add ShowDropZone and ShowUploadedFiles visibility toggles
- fix(progressbar): address code review issues
- feat(progressbar): update server demo with BptColorSelector and animation dropdown
- feat(progressbar): update WASM demo with BptColorSelector and animation dropdown
- feat(progressbar): wire JS interop lifecycle for WebGL animations
- feat(progressbar): add WebGL animation JS module with all 5 shaders
- feat(progressbar): add canvas overlay markup and CSS fallback animations
- feat(progressbar): add ColorHex, Animation params with backward compat
- feat(progressbar): add BptProgressBarAnimation enum
- feat(image-editor): add collapsible panels for Properties, Adjustments, and Banners
- fix slnx file
v10.9.10
4 April 2026
- v10.9.10: Refraction effect rewrite, Perspective/Refraction zoom & depth, font picker fixes, DataFlow component, map/UI improvements
- fix(image-editor): address security and resource management findings from code review
- feat(image-editor): add document-open prompt before loading web fonts
- feat(image-editor): add CSS fallback chain for web fonts in renderText
- feat(image-editor): replace font
- feat(image-editor): add JS font picker dropdown with lazy preview and search
- feat(image-editor): add font catalog loading and Google Font CSS fetch/parse
- fix(image-editor): fix font catalog category grouping and Pacifico classification
- feat(image-editor): add bundled font catalog (~175 Google Fonts)
- fix(map): remove display:none wrapper so plugin overlays render
- fix(map): address code review issues in datapoints/bargraph plugins
- feat(map): add flight tracking simulation demo pages and nav links
- feat(map): add BptMapBarGraph component with drill-down filtering
- feat(map): add bptMapBarGraph.js with animated bar chart and drill-down interaction
- feat(map): add BptMapDatapoints component with canvas rendering and timeline
- feat(map): add bptMapDatapoints.js canvas renderer with spatial grid and hit testing
- feat(map): add plugin view-change callbacks and expose projection functions
- feat(map): add plugin registration API to BptMap
- feat(map): add plugin interfaces and datapoints model classes
- Change clone stamp source-set from Alt+click to Ctrl+click
- Add Channels tab, inline toolbar, tab bar restructure, and multiple UI improvements
- Add missing BPTI/BPTT format support for curves, levels, blur, layer effects, smart filters, and skew
- Fix calligraphy pen rendering: position offset and shape fidelity
- BptImageEditor: bitmap snapshot drag compositing for persistent effects during drag
- Fix spray tool duplicate emitter caused by leaked pointer event listeners
v10.9.9
25 March 2026
- BptImageEditor: custom banner formats, startup UX, and demo updates
- Update test project to BlazorPowerTools 10.9.8
v10.9.8
24 March 2026
- BptImageEditor: multiple UX improvements
- Update test project to BlazorPowerTools 10.9.7
v10.9.7
23 March 2026
- Fix StartFreshBanner: re-init JS state and cancel auto-save
- Update test project to BlazorPowerTools 10.9.6
v10.9.6
23 March 2026
- Change image editor zoom shortcut from Alt+scroll to Ctrl+scroll
- Fix StartFreshBanner to properly reset state and show format dialog
- BptImageEditor: Show banner format selection on fresh start instead of default
- Add test project to solution under /Test/ folder
- Read license from embedded resource instead of public wwwroot static file
v10.9.5
23 March 2026
- BptImageEditor: freeze/play toggle for all animation presets, banner mode fixes
v10.9.4
23 March 2026
- Fix BptImageEditor light theme, add mobile logo, publish AI NuGet in CI
- Theme Bootstrap tables via scoped CSS instead of inline styles
- Fix dark theme support across multiple components and demo pages
v10.9.3
15 March 2026
- Add theme system: 4-theme demo switcher, density presets, ThemeBuilder persistence, and Tailwind isolation
- Integrate BptImageEditor into BptThemeBuilder with CSS custom properties
- Fix 2D water ripple showing different image than background
- Rewrite WaterRipple 2D renderer with displacement-based rendering
- Fix demo page tools, navbar z-index, WebComponent inputs, and misc config updates
v10.9.2
14 March 2026
- v10.9.2: BptImageEditor enhancements — shapes, layers, banners, stroke, tabs
- Add mask undo/redo, fix fill-image drag, improve soft brush falloff
- Fix BannerEditor: canvas clearing on switch, tools broken, shared asset release