Repository navigation
feat(cli): dashboard setup in init, stock page cleanup, ShellUI terminal loaders - #34
Merged
Merged
Conversation
added 6 commits
September 29, 2026 08:26
…tructure - Added steps to the CI workflow for initializing a Blazor application with a dashboard layout. - Implemented checks to ensure the correct removal of default layouts and the addition of necessary components in the application structure. - Enhanced the build process to validate the integration of the new dashboard layout and sidebar links.
…gement - Added options for `--dashboard` and `--replace-layout` to `shellui init` and `shellui add` commands, allowing users to specify dashboard layouts during initialization and component addition. - Updated documentation to reflect new command options and their functionalities, including details on dashboard layout configurations and the impact on existing layouts. - Improved the initialization process to handle Bootstrap removal and restyling of sample pages with Tailwind classes, ensuring a smoother setup experience for users.
…tialization - Added `--dashboard` and `--replace-layout` options to `shellui init` and `shellui add` commands for better dashboard layout management. - Updated the initialization process to set console output encoding to UTF-8 for improved character display. - Enhanced the `InitService` to prompt for dashboard layout selection during initialization. - Introduced a new `DashboardSetup` service to manage dashboard layout configurations and updates. - Implemented a custom loading spinner for better user experience during CLI operations. - Refactored component installation logic to accommodate new layout options and ensure proper integration with existing components.
- Replaced static sidebar menu items with a dynamic generation of links using a `NavLink` record. - Introduced a `Links` array to manage sidebar items, allowing for easier updates and maintenance. - Enhanced icon rendering based on the link type, improving the flexibility of the sidebar structure.
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
shellui initcan now set up a working dashboard app in one step. Adding a dashboard layout wires it into the app instead of leaving the layout unused. The CLI also cleans up after removing Bootstrap and uses ShellUI's own loaders in the terminal.Dashboard setup
initasks: sticky header (dashboard-02, recommended), scrolling header (dashboard-01), or no.--dashboard 01|02|noneoninitandtheme init.--yesalone means none; an invalid value exits 1 before anything is written.--replace-layoutoninitandaddswitches even when the app has a custom layout.init --dashboardandshellui add dashboard-0xshare the same wiring (DashboardSetup):Routes.razor:DefaultLayout→ the dashboard.<AuthorizeRouteView>(Identity apps) is supported, and switching between 01 and 02 is automatic.--replace-layouthint.MainLayout/NavMenu(and their.razor.css) are deleted only if byte-identical todotnet new blazoroutput for .NET 8/9/10 and not referenced elsewhere. The stock set was generated across interactivity × all-interactive × auth × empty, and 8.0.0/9.0.0 GA template sources match the latest patches. Modified files are kept with a warning.@layout MainLayoutdirectives move to the dashboard: the .NET 10NotFoundpage and Identity'sManageLayout. They follow later dashboard switches too.blazor-error-uimoves fromMainLayoutintoApp.razor, styled with Tailwind.AppSidebarlinks are built from the app's@pageroutes. Parameterized routes,/Account/*,/Errorand/not-foundare skipped, and links you've edited are left alone.ReconnectModalis untouched. Re-running is idempotent and prints a summary of what changed.AppSidebartemplate renders from aLinkslist, replacing the dead/dashboardand/settingslinks.Bootstrap cleanup and sample pages
wwwroot/bootstrap/was never deleted, so its reset fought Tailwind. It is removed now.<link>is removed fromApp.razor, which fixes a 404 on every page load on .NET 9/10. CDN links are kept.Account/pages get one summary note.shellui theme apply),shellui add/list, and the docs.init's next steps include the tweakcn theme command.Terminal
initshows the ShellUI dot logo as a header and runs setup under an animated 5×5 logo loader.add,updateand the theme fetch use a one-line Braille "snake" grid spinner. Both mirror the webLoadingvariants.listuses the same header, drops columns on narrow terminals, and reports 90 direct targets instead of 194 registry entries.?.Fixes
shellui add avatar|alert|badge|sonner|toggleon their own broke the build. Those Variants files declare.Components.UI, butEnsureImportsadded@using ….Components.UI.Variantsbased on the folder. Imports are now based on the namespace each installed file declares. This bug is also in v0.3.0-rc.3.initfailure now exits 1.Tests and CI
DashboardSetupTests,StockPagesTestsandLoadersTests, with realdotnet new blazoroutput as fixtures (ShellUI.Tests/Fixtures/StockBlazor).RequiredImportsnow has a regression test for the Variants namespace.init --yes --dashboard 02, then assert the wiring and build.--replace-layout), Identity auth, a 01↔02 switch, an idempotent re-run, and all 90 targets in one app. All build with 0 warnings.Follow-ups (not in this PR)
release/v0.3before v0.3.0.Account/pages still use Bootstrap.