Repository navigation
fix: package component bugs (MultiSeriesChart, ThemeToggle, scroll lock, pickers, Calendar binding) - #38
Merged
Conversation
added 7 commits
October 2, 2026 23:50
It redeclared ChildContent (already inherited from Chart) and passed Subtitle to ApexChart, which has no such parameter; either one threw on every render. It now also uses Chart's card container.
…unctions The package's shellui.js is an ES module and only ran when a component happened to import it, so ThemeToggle, dialog scroll lock and close-on-scroll silently did nothing. A Blazor JS initializer now imports it at startup. Adds addClassToDocument, removeClassFromDocument and setupFileDrop, which ThemeToggle, ThemeService and FileUpload call.
The static instance list was shared by every circuit on Blazor Server. Each toggle now observes the page's dark class through ShellUI.observeTheme, which also reports the initial theme.
BREAKING CHANGE: SelectedDateChanged is now EventCallback<DateTime?>, so @bind-SelectedDate works with a DateTime? field. Handlers typed DateTime must accept DateTime?.
Shewart
added a commit
that referenced
this pull request
Oct 2, 2026
…ixes (#39) ## Summary Backports the non-breaking fixes from main (#38) to the 0.3 line and releases 0.3.2. - **MultiSeriesChart** threw on every render in the package (duplicate `ChildContent`, unknown `Subtitle` on `ApexChart`). It now renders inside the same card as `Chart`. - **`window.ShellUI` for package users:** a Blazor JS initializer loads `shellui.js` at startup. This fixes ThemeToggle not changing the theme, dialog/sheet/drawer scroll lock, and close-on-scroll. Adds the missing `addClassToDocument`, `removeClassFromDocument` and `setupFileDrop`. - **ThemeToggle** no longer keeps a static instance list shared across Blazor Server users. Toggles follow the page's `dark` class and stay in sync. - **DatePicker / DateRangePicker** popover gets a width; **DataPicker / MultiSelect** options are left-aligned. - Removed the RCL template leftovers from the package. - New bUnit test renders every package component and fails on parameter-binding errors. - Version 0.3.2: props, fallback versions, docs, package README links, release notes. Not included: the Calendar `SelectedDateChanged` type change (breaking, 0.4 only). ## Verification - `dotnet build` 0 warnings, 156 tests pass. - Packed `ShellUI.Components.0.3.2.nupkg`: the JS initializer ships and the leftovers are gone. - The same fixes were verified in a fresh app with a packed package on main (#38).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the package component bugs found while moving the docs to ShellDocs. Each fix is in both the
ShellUI.Componentspackage and the CLI templates.ChildContenttwice (already inherited fromChart) and passedSubtitletoApexChart, which has no such parameter. Both are removed, and the chart now sits in the same card container asChart.window.ShellUIwas missing for NuGet users. The package'sshellui.jsis an ES module and only ran if a component happened to import it, so ThemeToggle, dialog scroll lock and close-on-scroll silently did nothing. A Blazor JS initializer (ShellUI.Components.lib.module.js) now imports it at startup, with no setup needed. Added the missingaddClassToDocument,removeClassFromDocumentandsetupFileDrop.staticinstance list, which on Blazor Server was shared by every user's session. Each toggle watches the page'sdarkclass, so all toggles stay in sync whoever changes the theme, and each starts from the page's actual theme.w-max, so the calendar isn't squeezed in a flex row.text-left, so customOptionTemplates align left.SelectedDateChangedis nowEventCallback<DateTime?>, so@bind-SelectedDateworks with aDateTime?field. Handlers typedDateTimeneed to acceptDateTime?.Component1,ExampleJsInterop,exampleJsInterop.js,background.png).Tests
PackageRenderTests(bUnit) renders every package component and fails on parameter-binding errors. It fails on the old MultiSeriesChart for each of its two bugs.Verification
dotnet build0 warnings, 273 tests pass..nupkgand installed it in a fresh Blazor app. Checked in the browser:window.ShellUIis defined with no<script>tag.@bind-SelectedDateupdates aDateTime?field.