Skip to content

chore: Release v0.3.0-alpha.3: sidebar blocks, shellui-js, NuGet Core fix#12

Merged
Shewart merged 50 commits into
mainfrom
feat/flex/sidebar
Jun 3, 2026
Merged

chore: Release v0.3.0-alpha.3: sidebar blocks, shellui-js, NuGet Core fix#12
Shewart merged 50 commits into
mainfrom
feat/flex/sidebar

Conversation

@Shewart

@Shewart Shewart commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Dashboard sidebar system — Full shadcn-style sidebar component tree (SidebarProvider, subcomponents, JS interop), AppSidebar, and layout blocks dashboard-01 / dashboard-02 with CLI templates and /blocks demo page
  • JavaScript install chain — New shellui-js template installs wwwroot/shellui.js at init and as dependency of copy-button / file-upload; sidebar-js installs shellui-sidebar.js via sidebar components
  • NuGet fixShellUI.Core is now packable and published alongside ShellUI.Components in the release workflow (fixes NU1102 for package consumers)
  • Dependency hygiene — Variant/service templates marked IsAvailable = false; breadcrumb single install with auto breadcrumb-item
  • Docs & demo — Component doc pages, sticky dashboard layout, Blazor error UI hidden until error, Preview Pages workflow

Test plan

  • dotnet build ShellUI.sln -c Release
  • dotnet test ShellUI.sln -c Release
  • dotnet build NET9/BlazorInteractiveServer -c Release — verify sidebar toggle, blocks page, CopyButton, file upload demo
  • dotnet shellui init in a test project — confirm shellui.js lands in wwwroot
  • dotnet shellui add dashboard-01 — confirm sidebar + layout + JS files install
  • After merge: verify NuGet has ShellUI.Core and ShellUI.Components at 0.3.0-alpha.3
  • Add <script src="shellui.js"></script> in App.razor when testing CopyButton/FileUpload in CLI projects

### Summary
- Introduced a new `AppSidebar` component featuring a collapsible sidebar with inset and secondary navigation.
- Created supporting components: `Sidebar`, `SidebarContent`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarInset`, `SidebarMenu`, `SidebarMenuItem`, `SidebarMenuButton`, `SidebarMenuSub`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarRail`, `SidebarSeparator`, and `SidebarTrigger`.
- Enhanced sidebar functionality with mobile responsiveness and customizable attributes.
- Improved layout and styling using Tailwind CSS for a cohesive design.

### Impact
- Provides a comprehensive sidebar navigation solution, improving user experience and accessibility within the ShellUI framework.
…igation

### Summary
- Introduced `AppSidebar` component with collapsible functionality and secondary navigation.
- Created supporting components: `Sidebar`, `SidebarContent`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarInset`, `SidebarMenu`, `SidebarMenuItem`, `SidebarMenuButton`, `SidebarMenuSub`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarRail`, `SidebarSeparator`, and `SidebarTrigger`.
- Enhanced mobile responsiveness and customizable attributes for improved user experience.
- Utilized Tailwind CSS for cohesive styling and layout.

### Impact
- Provides a comprehensive sidebar navigation solution, improving accessibility and usability within the ShellUI framework.
…rt layout blocks

Modified the path resolution logic in ComponentInstaller to differentiate between standard components and layout blocks, ensuring correct installation paths based on the component type.
Introduced a new LayoutPath property in InitService to specify the path for layout components, enhancing the structure and organization of the component installation process.
…ordion, Alert, Avatar, Badge, Card, Progress, and Tabs
…rendering and improved layout

Updated the ComponentPreview page to render various UI components based on the selected component name, and revamped the Home page to display a grid of available components with icons and labels for better navigation.
Replaced placeholder links with actual routes for Home, Dashboard, and Components in the NavigationDemo component, enhancing navigation functionality.
…roved layout and navigation

Refactored AppSidebar for better readability and added new navigation links. Introduced DashboardBlockCard component to render dashboard blocks with a sticky header and breadcrumb navigation, enhancing the overall user experience.
…nced UI interaction

Introduced DashboardBlockPreview for rendering a dashboard block with a sticky header and breadcrumb navigation. Added DialogPreview component to facilitate dialog interactions with customizable content and actions, improving user experience and layout consistency.
…header content

Updated DashboardLayout to include breadcrumb navigation that dynamically reflects the current page structure. Improved header content handling to display either custom content or breadcrumbs, enhancing user navigation experience. Removed redundant error UI from MainLayout for cleaner presentation.
Introduced a new BlocksLayout component that provides a full-width layout for pages, featuring a sticky header with navigation back to the dashboard and a theme toggle. This layout is designed for independent demos, enhancing the overall user experience.
…r improved usage documentation

Updated the AppSidebar component to enhance readability by condensing comments and clarifying usage instructions. Introduced a new AppSidebarTemplate class to provide structured metadata and example content for the sidebar component, improving developer experience and documentation.
… components

Added descriptions for new dashboard layout blocks (`dashboard-01` and `dashboard-02`) and updated the navigation components list to include `app-sidebar`. Included installation commands for the new layouts to enhance documentation and user guidance.
Shewart added 20 commits March 14, 2026 00:32
Introduced a new DashboardLayout01Template that features a sidebar and content area with a scrolling header. This layout includes breadcrumb navigation and customizable header content, enhancing user navigation and layout flexibility. The template is designed to support various components, improving overall UI consistency.
…layout

Introduced a new DashboardLayout02Template featuring a sidebar and content area with a sticky header. This layout includes breadcrumb navigation and customizable header content, improving user navigation and layout flexibility. The template is designed to support various components, enhancing overall UI consistency.
Added `app-sidebar`, `dashboard-01`, and `dashboard-02` templates to the ComponentRegistry, enhancing the available UI components for improved layout options and user experience.
Modified the Progress component to set the width based on the clamped value, improving the accuracy of the visual representation of progress. This change enhances the component's responsiveness and ensures it correctly reflects the intended progress percentage.
Removed unnecessary formatting from comments in the Sidebar component to improve readability and maintain consistency in the codebase. This change enhances the overall clarity of the component's structure and purpose.
…d comments

Added a new property `IsLayoutBlock` to the `ComponentMetadata` class to indicate if a file should be written to LayoutPath instead of ComponentsPath. Updated comments for clarity regarding the `FilePath` property, improving documentation and understanding of the component's structure.
…ent clarity

Modified the header in DashboardLayout.razor to be sticky, ensuring accessibility during scroll. Updated comments for better clarity regarding the header's functionality. Removed obsolete Blazor error UI styles from MainLayout.razor.css, as they are now handled in App.razor.
…ut descriptions

Changed the layout from BlocksLayout to DashboardLayout. Improved descriptions for dashboard templates, clarifying functionality and adding a copy button for installation commands. Adjusted CSS classes for better layout responsiveness.
Included a new navigation item for "Breadcrumb" in the AppSidebar component, enhancing the navigation options available to users and improving overall user experience.
…ockCard component

Updated the DashboardBlockCard.razor file to use DashboardDemoSidebar instead of AppSidebar, aligning the component with the new sidebar structure and improving the overall dashboard layout.
…ation

Introduced a new DashboardDemoSidebar component, providing a structured sidebar layout for dashboard navigation. This component includes menu items for Home, Analytics, Reports, Profile, and Settings, along with a user avatar, improving the overall user experience and organization of the dashboard interface.
… layout

Modified the Blazor error UI styles in App.razor to ensure proper visibility during unhandled errors, using `!important` for display properties. Additionally, adjusted the SidebarInset component's CSS to allow for overflow and maintain layout integrity.
… navigation and error handling

Refactored the ShellUI.Preview project by updating the target framework to net9.0 and adjusting the layout in PreviewLayout.razor to include a header and main section for better organization. Enhanced App.razor to include a NotFound component for improved error handling. Additionally, updated the index.html to refine the Blazor error UI styles for better visibility during errors.
…ion instructions

Updated the InitService to install the shellui.js component, which is required for CopyButton, FileUpload, and Command functionalities. Additionally, modified the configuration instructions to include guidance on adding the shellui.js script in App.razor or index.html for proper integration.
Updated multiple component templates to set IsAvailable to false, indicating they are not currently available for use. Additionally, introduced a new ShellUIJsTemplate for JavaScript utilities related to CopyButton and FileUpload functionalities, enhancing the overall component library.
Bumped the ShellUI version suffix to alpha.3 and included the new shellui-js component in the ComponentRegistry, enhancing the component library with additional functionality.
Updated the GitHub Actions release workflow to push the ShellUI.Core package to NuGet, ensuring that both ShellUI.Core and ShellUI.Components are published together. This change resolves previous issues with package restoration and improves the overall release process.
@Shewart Shewart merged commit 5c881ce into main Jun 3, 2026
2 checks passed
@Shewart Shewart deleted the feat/flex/sidebar branch June 3, 2026 16:09
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