Skip to content

feat: compositional parts for AlertDialog, Breadcrumb, Command, Drawer, Form, Menubar, Pagination, Sheet - #36

Merged
Shewart merged 7 commits into
mainfrom
feat/compositional-parts-2
Oct 2, 2026
Merged

Shewart merged 7 commits into
mainfrom
feat/compositional-parts-2

Conversation

@Shewart

@Shewart Shewart commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Ports the 45 compositional parts from sprint-a-compositional-upgrades onto main. Each part ships in the package and as a hidden CLI template; parents depend on their parts, and every compositional mode is opt-in so existing usage keeps working.

  • Breadcrumb: List, Link, Page, Separator, Ellipsis (parent UseList)
  • Pagination: Content, Item, Link, Previous, Next, Ellipsis (parent ChildContent mode)
  • Sheet / Drawer: Header, Title, Description, Footer, Close (package gains a Compositional parameter)
  • AlertDialog: Trigger, Content, Header, Title, Description, Footer, Action, Cancel (Escape = Cancel, focus on open)
  • Form: Field, Item, Label, Control, Description, Message (live validation)
  • Menubar: Menu, Trigger, Content, Separator; MenubarItem with Title is a dropdown, without it a clickable item
  • Command: Input, List, Group, Option, Empty, Separator (parent ChildContent mode with search, active state and keyboard navigation). The part is CommandOption because CommandItem is the model.

Fixes

  • Calendar, Command, DataTable, FileUpload and CarouselContent/Dots/Next/Previous had no @namespace, so they compiled into ShellUI.Components.Components and @using ShellUI.Components didn't find them. Removed CommandPalette's workaround @using.

Cleanup

  • Removed redundant comments across the repo (section labels, step numbers, comments that restate the code); kept the ones that explain a constraint or workaround, shortened to one line.

Tests and docs

  • 50 new TemplateSyncTests entries, NoTemplate_ReferencesThePackageNamespace, EveryPackageComponent_DeclaresThePackageNamespace.
  • Registry counts: 239 entries, 90 direct, 149 hidden; dependency table regenerated.

Verification

  • dotnet build 0 warnings, 272 tests pass.
  • Checked in the browser; every part installed and built on its own in fresh apps on .NET 10 and .NET 8.

Shewatipa Tseisi added 7 commits October 1, 2026 15:08
…mentation

- Updated the `ComponentRegistry` entry count from 194 to 239 across multiple documentation files.
- Adjusted hidden entry counts from 104 to 149 to reflect the current state of components and dependencies.
- Enhanced details in `COMPONENT_DEPENDENCIES.md` and `COMPONENT_ROADMAP.md` to provide clearer insights into component relationships and availability.
…and templates

- Introduced a test to ensure all components in the ShellUI.Components namespace declare the correct package namespace in their .razor files.
- Added a test to verify that templates do not reference the ShellUI.* namespaces, ensuring compatibility when copied into user projects.
- Expanded the TemplateSyncTests with additional inline data for various UI components to enhance coverage.
… subcomponents

- Refactored the AlertDialog component to support a legacy mode and introduced a new structure for better content management.
- Added subcomponents: AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, and AlertDialogTrigger for improved modularity.
- Enhanced the dialog's functionality with event callbacks for confirm and cancel actions, and improved accessibility features.
- Updated the Breadcrumb component to conditionally render its content based on the presence of a BreadcrumbList.
- Introduced new components for the Command palette, including CommandInput, CommandList, CommandOption, and CommandGroup, enhancing the command interface.
- Added various utility components such as FormControl, FormField, and FormMessage to streamline form handling and validation.
- Overall improvements to the component library structure and documentation for better usability and maintainability.
- Introduced multiple new templates for the AlertDialog component, including AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, and AlertDialogTrigger, enhancing modularity and usability.
- Added Command component templates: CommandEmpty, CommandGroup, CommandInput, CommandList, CommandOption, and CommandSeparator, providing a comprehensive command palette interface.
- Each template includes metadata and content structure to facilitate integration and customization within the ShellUI framework.
…ation

- Added multiple new templates to the ComponentRegistry, including Breadcrumb, Form, Menubar, Pagination, Sheet, Drawer, AlertDialog, and Command components, enhancing the overall component library.
- Updated the README to reflect the new total of 239 entries in the registry, including an increase in hidden dependency entries from 104 to 149.
- Each new template includes necessary metadata and content structure for improved integration within the ShellUI framework.
- Updated the ComponentRegistry entry count from 194 to 239, with hidden dependency entries increasing from 104 to 149.
- Adjusted documentation to ensure accuracy regarding the current state of components and dependencies.
Copilot AI balanced review requested due to automatic review settings October 2, 2026 07:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Shewart
Shewart merged commit 9b98b49 into main Oct 2, 2026
1 check passed
@Shewart
Shewart deleted the feat/compositional-parts-2 branch October 2, 2026 07:24
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.

2 participants