Skip to content

fix(templates): v0.3.0-rc.1 follow-up fixes - Tabs, Select, SidebarInset - #29

Merged
Shewart merged 4 commits into
mainfrom
fix/v0.3.0-rc-followups
Sep 23, 2026
Merged

Shewart merged 4 commits into
mainfrom
fix/v0.3.0-rc-followups

Conversation

@Shewart

@Shewart Shewart commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fixes three template bugs surfaced integrating ShellUI 0.3.0-rc.1 into consumer projects: TabsTemplate's unterminated string literal, SelectTemplate's hidden Material Symbols dependency, and SidebarInsetTemplate missing min-w-0 (wide content pushes the page sideways instead of scrolling in place).
  • Also fixes two more instances of the same bug classes (FileUploadTemplate icon-font dependency, DashboardLayout01Template verbatim-quote bug), the accordion-type and context-menu-models missing-dependency bugs, and widens the icon-font regression test to catch Material Icons and Font Awesome too, not just Material Symbols.
  • SidebarInset fix is applied in both the CLI template (SidebarInsetTemplate.cs) and the live ShellUI.Components package copy (SidebarInset.razor), so both install paths are covered.

Test plan

  • TemplateCompileTests — every template's @code block still parses
  • DependencyGraphTests — every declared dependency resolves in the registry
  • HiddenNetworkDependencyTests — no template references an external icon font
  • TemplateSyncTests — live library components match their CLI templates
  • 18/18 relevant tests passing locally

Shewatipa Tseisi and others added 4 commits September 4, 2026 16:09
…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.
@Shewart
Shewart merged commit 4e25cee into main Sep 23, 2026
1 check passed
@Shewart
Shewart deleted the fix/v0.3.0-rc-followups branch September 23, 2026 11:11
@Shewart Shewart mentioned this pull request Sep 26, 2026
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`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant