Skip to content

fix(cli): ship composable component parts; bring rc.3 fixes to 0.4 - #33

Merged
Shewart merged 5 commits into
mainfrom
fix/composable-parts
Sep 28, 2026
Merged

Shewart merged 5 commits into
mainfrom
fix/composable-parts

Conversation

@Shewart

@Shewart Shewart commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Brings the v0.3.0-rc.3 fixes into 0.4 and starts the 0.4.0-alpha.1 version line.

Composable parts shipped by the CLI

  • The Select, ContextMenu, NavigationMenu and Carousel parts were empty templates, so composable markup failed to compile after shellui add. They now contain the package components.
  • Dropdown, Popover, HoverCard and Accordion parts were never pulled in by their parent. The Dropdown, Popover and HoverCard parent templates were still non-compositional.
  • Parents now depend on their parts. Parts don't depend on their parent, because installedSet is filled after dependencies and that would recurse forever.
  • The Tabs template now matches the package (Items, TabItems, ActiveTab). tab-models installs to Models/TabModels.cs.

Package fixes (mirrored in templates)

  • NavItem, Dropdown, Popover and ContextMenu re-render on toggle and close. Before this, compositional content never opened unless IsOpen was bound.
  • Carousel re-renders when slides register.
  • ContextMenu and Dropdown close on an outside click.
  • HoverCardContent stays open while hovered.
  • SelectItem sets data-selected and aria-selected. The triggers have aria-expanded.
  • Select, Dropdown and Popover keep the ClassName alias.

From rc.3, not already on main: Sheet/Drawer focus-on-open and Escape, and the CI changes (release/** branches plus an all-components install-and-build smoke step).

Tests: EveryRegistryEntry_HasContent, EveryHiddenEntry_IsReachableFromAnInstallableTarget, the parse sweep now covering hidden entries, and TemplateSyncTests for 31 more components and parts.

Version: Directory.Build.props becomes 0.4.0-alpha.1.

Housekeeping: stops tracking the local notes files SHELLUI-FIXES.md and shellui-integration-notes.md.

Verification

  • dotnet build: 0 warnings, 0 errors. dotnet test: 162 passed.
  • Sweep: all 90 direct targets (191 files) install into a fresh app and build with 0 warnings.
  • Composable usage of Select, ContextMenu, NavigationMenu, Carousel, Dropdown, Popover, HoverCard and Tabs was exercised in the browser.

Shewatipa Tseisi added 5 commits September 28, 2026 09:28
Deleted the `SHELLUI-FIXES.md` and `shellui-integration-notes.md` files as they contained outdated information and were no longer relevant to the current version of the project. This cleanup helps streamline the documentation and ensures users have access to the most accurate and up-to-date resources.
…new validation cases

- Removed the check for metadata availability in `TemplateCompileTests` to ensure all components are validated.
- Added new tests to `TemplateCompileTests` to verify that every registry entry has content and that hidden entries are reachable from installable targets.
- Expanded `TemplateSyncTests` with additional inline data for various new UI components, improving template validation coverage.
- Updated Carousel, ContextMenu, Dropdown, and Popover components to call StateHasChanged after slide registration and item selection, ensuring UI updates.
- Added aria attributes to NavTrigger and Select components for better accessibility.
- Deprecated ClassName parameter in Dropdown, Popover, and Select components, encouraging the use of Class instead.
- Improved event handling in SelectItem and SelectTrigger components for enhanced user experience.
- Updated Accordion, Carousel, ContextMenu, Dropdown, and Nav components to support new compositional patterns and improved accessibility.
- Added new templates for CarouselList, CarouselSlide, and NavList, enhancing the overall navigation and display capabilities.
- Refactored existing templates to streamline code and improve readability, including the addition of cascading values for better state management.
- Deprecated unused dependencies in Dropdown and ContextMenu templates, promoting cleaner and more efficient code.
- Enhanced event handling and state management across various components for a more responsive user experience.
@Shewart
Shewart merged commit 98b8ebc into main Sep 28, 2026
1 check passed
@Shewart
Shewart deleted the fix/composable-parts branch September 28, 2026 10:52
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