fix(templates): v0.3.0-rc.1 follow-up fixes - Tabs, Select, SidebarInset - #29
Merged
Merged
Conversation
…ression tests Bugs from the shellui-integration-notes.md v0.3.0-rc.1 section: - `accordion-type` sub-dep declared by AccordionTemplate.Dependencies but never registered in ComponentRegistry: `shellui add accordion` reported `Failed: accordion-type` and consumers couldn't compile. - TabsTemplate emitted `_effectiveValue = ";` because a `""` inside a `@"..."` verbatim string was written as one `"` — should have been `""""`. - SelectTemplate rendered the raw text `expand_more` because it used a `material-symbols-outlined` span; ShellUI never links Material Symbols and every other component uses inline SVG. Swapped to an inline chevron. Two more of the same classes found by the new sweep tests: - FileUploadTemplate had the same Material Symbols dependency for `cloud_upload` — swapped to an inline upload-cloud SVG. - DashboardLayout01Template had the `segments[0] == ""` verbatim-quote bug in BuildBreadcrumb (already fixed in DashboardLayout02) — now `segments[0] == """"`. - ContextMenuTemplate referenced `ContextMenuItem` from `YourProjectNamespace.Components.Models` but no `context-menu-models` template existed and the parent didn't declare it as a dep — same shape as the `data-table-models` bug. Added ContextMenuModelsTemplate, registered it, and declared it as ContextMenu's dependency. Regression tests (added, all green — 86/86 pass): - TemplateCompileTests.EveryRazorTemplate_CodeBlockParses walks every installable Razor template and parses its `@code` block, catching the whole verbatim-string bug class in one shot. - DependencyGraphTests.EveryDeclaredDependency_ResolvesInRegistry walks every component's Dependencies and asserts each name resolves via GetMetadata — the accordion-type and context-menu-models class of bug. - DependencyGraphTests.EveryInstallableComponent_HasContentMapping asserts every `IsAvailable = true` component routes through GetComponentContent (intentional empty sub-component stubs are exempted). - HiddenNetworkDependencyTests.NoTemplate_DependsOnMaterialSymbols asserts no template body references `material-symbols-outlined`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The Material Symbols bug (bug #3 in the integration notes) is one instance of a broader class: templates that lean on an externally-loaded icon font ShellUI never links. Widen NoTemplate_DependsOnExternalIconFont into a Theory that also fails on `material-icons` (the older Google family), the `-rounded`/`-sharp` Material Symbols variants, and Font Awesome's `fa-solid`/`fa-regular`/`fa-brands` — the same footgun with a different filename. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Updated the SidebarInset component to include a minimum width constraint, enhancing layout stability and preventing overflow issues in responsive designs.
…t stability Updated the SidebarInsetTemplate to include a minimum width constraint, ensuring better responsiveness and preventing layout overflow issues.
8 tasks
Shewart
added a commit
that referenced
this pull request
Sep 26, 2026
## Summary This prepares `v0.3.0-rc.2`: it sets the version, writes the release notes, and updates the docs. It also adds the three new charts to the CLI and fixes chart tooltips. After merge, tag the merged commit on `main` as `v0.3.0-rc.2` to publish. ## Release changes - **Version:** `Directory.Build.props` goes from `0.4.0-alpha.1` to `0.3.0-rc.2`. v0.3.0 ships from `main` first, and 0.4 starts after it. - **Release notes:** the "Unreleased" section becomes `# ShellUI v0.3.0-rc.2`. It covers the move to .NET 10 (a breaking change), Tailwind 4.3.2, the new components, and the fixes from #29, #30 and the `Class` parameter PR. - **`release.yml`:** fails before building or publishing when the CLI or Components version doesn't match the tag. - **Docs (16 files):** install commands pin `--version 0.3.0-rc.2`, and `0.3.0-rc.1` is named as the last release for .NET 9. Docs that only restated the current version now point to `Directory.Build.props`. Component counts are updated to 76 direct targets and 176 registry entries. ## Charts - **New CLI targets:** `donut-chart`, `radar-chart` and `radial-chart`. Before this, they existed only in the NuGet package. - **The CLI `chart-variants` template had drifted from the package in #26.** CLI-installed charts had broken tooltips: empty rows for pie, donut and radial. They also used the reverted `oklch` palette and lacked the animation and legend options. The template now matches the package, and `Chart` gains `ShowToolbar` and `ShowLegend`. - **Radar tooltips never appeared** because of the shared tooltip mode. RadarChart now uses per-point tooltips. - **Tooltip x-axis labels:** they were dropped for bar and radar charts because an empty categories list stopped the lookup. Fixed in the package, the template and the demo. - **Tests:** new drift check between `chart-variants` and the package, and sync and dependency coverage for the new charts. ## Test plan - [x] Clean Release build of `ShellUI.slnx`: no warnings or errors - [x] `dotnet test`: 107/107 passing - [x] Demo app build: no warnings or errors - [x] Fresh Blazor app: `shellui add donut-chart radar-chart radial-chart pie-chart bar-chart` exits with 0, builds with no warnings, and all five tooltips show label and value on hover - [x] Version check: tag `v0.3.0-rc.2` passes and a mismatched tag fails - [x] `scripts/extract-release-notes.sh 0.3.0-rc.2` extracts the section - [ ] CI - [ ] After merge: `pwsh ./prepare-release.ps1 -Version 0.3.0 -Suffix rc.2 -DryRun` on `main` ## After merge 1. `git checkout main && git pull --ff-only` 2. `pwsh ./prepare-release.ps1 -Version 0.3.0 -Suffix rc.2 -DryRun` 3. `git tag v0.3.0-rc.2 && git push origin v0.3.0-rc.2` 4. Test the published packages in FDMS and a fresh app, then prepare `v0.3.0`.
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
TabsTemplate's unterminated string literal,SelectTemplate's hidden Material Symbols dependency, andSidebarInsetTemplatemissingmin-w-0(wide content pushes the page sideways instead of scrolling in place).FileUploadTemplateicon-font dependency,DashboardLayout01Templateverbatim-quote bug), theaccordion-typeandcontext-menu-modelsmissing-dependency bugs, and widens the icon-font regression test to catch Material Icons and Font Awesome too, not just Material Symbols.SidebarInsetfix is applied in both the CLI template (SidebarInsetTemplate.cs) and the liveShellUI.Componentspackage copy (SidebarInset.razor), so both install paths are covered.Test plan
TemplateCompileTests— every template's@codeblock still parsesDependencyGraphTests— every declared dependency resolves in the registryHiddenNetworkDependencyTests— no template references an external icon fontTemplateSyncTests— live library components match their CLI templates