Repository navigation
fix: update and remove follow installed files; TimePicker value; color-scheme - #46
Merged
Merged
Conversation
added 5 commits
October 13, 2026 10:19
Value is a TimeSpan?, and "HH:mm" is a DateTime format, so setting Value threw a FormatException on render. It now uses @"hh\:mm" like the CLI template.
Without it the browser drew its own controls (date pickers, scrollbars, select lists, autofill) light on a dark page. The init theme, theme apply output, the package theme and the demo now set color-scheme in :root and .dark.
update rewrote every file it was given, including blocks apps are meant to edit, and never installed dependencies a component gained since it was installed, so projects stopped building (BreadcrumbList, TabItem). shellui.json now records a hash of each file the CLI writes; update skips files that changed unless --force is passed, and installs missing dependencies the way add does. Entries without a hash keep the editable blocks when they differ from the template.
remove always looked in Components/UI, so it ignored a custom ComponentsPath and could not remove dashboard or auth layouts, and it reported every name as removed. It now uses the install path, drops entries whose file is already gone, counts what it removed, and lists files that still use a removed layout.
The render-everything test sets no parameters, which is how the TimePicker Value crash got through. The new pass sets Value, Date, Time and Selected parameters and fails when a component that renders empty throws with a value.
Shewart
added a commit
that referenced
this pull request
Oct 13, 2026
Patch release for 0.3, porting two fixes and a test from #46. - **Package `TimePicker` threw when `Value` was set** (`580031c`): it formatted a `TimeSpan?` with `"HH:mm"`, a DateTime pattern, so any set value threw a `FormatException`. It now uses `@"hh\:mm"`, like the CLI template. - **Dark theme didn't set `color-scheme`** (`b0b5a65`): the browser drew its own controls (date pickers, scrollbars, select lists, autofill) light on a dark page. `color-scheme: light` / `dark` is now in the `init` theme, the blocks `theme apply` writes, the package's `shellui-theme.css` (and so `shellui-all.css`) and the demo. - **Value render test** (`58d26c7`): renders every package component that takes a value with a sample value, and fails if one renders empty but throws once it has a value. It finds nothing else on 0.3. - **`chore(release): v0.3.4`** (`a9da2d3`): version bumped in the same 11 files as 0.3.3, plus a v0.3.4 section in `docs/RELEASE_NOTES.md`. The upgrade note tells existing projects to add the two `color-scheme` lines to `input.css` or rerun `theme apply`, since `update` doesn't rewrite `input.css`. Checked: - Release build has 0 warnings, and all 164 tests pass - `scripts/extract-release-notes.sh 0.3.4` extracts the new section - The CSS bundle builds and contains `color-scheme` - `ShellUI.CLI` and `ShellUI.Components` both pack as `0.3.4`
Shewart
added a commit
that referenced
this pull request
Oct 13, 2026
Release notes and version references for 0.4.0-alpha.2. **In this release** (already on main): - #48: the Tailwind CLI is downloaded once per machine and run from there, so projects hold no binary; downloads survive slow connections; `init` carries on if the download fails; `.shellui/` is git-ignored; `update` moves older projects onto the shared CLI - #46: `update` installs new dependencies and keeps files you changed (`--force` to overwrite); `remove` finds layouts and custom paths; the package `TimePicker` value fix; `color-scheme` for light and dark - #44: `shellui-theme.css` no longer 404s when linked directly - #43: NuGet package icon and README logo **This PR** - `Directory.Build.props`: suffix `alpha.2` - Docs name stable `0.3.4` and prerelease `0.4.0-alpha.2` (README, VERSIONING_STRATEGY, CLI_INSTALLATION, CLI_SYNTAX, FAQ, QUICKSTART); stable-docs links point to `v0.3.4` - The version fallbacks in `VersionHelper` and `ComponentMetadata` (still `0.3.0` on main) are now `0.4.0-alpha.2` - `docs/RELEASE_NOTES.md`: the 0.4.0-alpha.2 section, plus the 0.3.4 and 0.3.3 sections from `release/v0.3`; `scripts/extract-release-notes.sh 0.4.0-alpha.2` extracts it **Release checks** (on `9c7cfac` plus this commit) - Release build has 0 warnings, and all 334 tests pass - A 0.3.4 project updated with the packed alpha.2 CLI: targets refreshed, the 112 MB project copy of Tailwind removed, 54 components updated, the edited `AppSidebar` kept, 5 new dependencies installed, builds 0/0 - A fresh Identity app, `init --yes --dashboard 02` then `add auth-01 data-table chat qr-code time-picker`: uses the shared Tailwind CLI and builds 0/0; `.shellui` holds only its `.gitignore` - All 93 direct targets together in `my-app` build 0/0 on net8.0, net9.0 and net10.0, with no project copies of the CLI - The packed `ShellUI.Components` in a browser: `window.ShellUI` loads, TimePicker shows its value, dark mode sets `color-scheme` (including the native date input), Popover closes on Escape, Command runs `Action` then `CommandSelected`, no console errors
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.
Bugs found upgrading a real app from 0.3.0-rc.1 to 0.4.0-alpha.1, plus two found sweeping for more of the same kind.
shellui updateinstalls dependencies a component gained (adeac5d)After an update the project didn't build (
BreadcrumbList,TabItemmissing): 0.4'sbreadcrumbandtabsgained parts, andupdateonly rewrote existing files. It now installs missing dependencies (recursively) the wayadddoes, with their NuGet packages and_Imports.razorusings.shellui updatekeeps local changes (adeac5d)updatewith no names rewrote everything, includingapp-sidebarand the dashboard layouts apps are told to edit.shellui.jsonrecords a SHA-256 of each file the CLI writes (line endings normalized)updateskips files changed since then and says so;--forceoverwritesapp-sidebar,sidebar-account,dashboard-*,auth-*) are kept when they differ from the template; everything else updates as beforeshellui removefinds files the way install writes them (cab008d)It always looked in
Components/UI, so it ignored a customComponentsPath, couldn't remove dashboard or auth layouts, and reported every name as removed. It now uses the install path, drops entries whose file is already gone, counts what it removed, and lists files that still use a removed layout.Package
TimePickerthrew whenValuewas set (0a0a8d0)It formatted a
TimeSpan?with"HH:mm", a DateTime pattern. It now uses@"hh\:mm", like the CLI template.Dark theme didn't set
color-scheme(672bdae)The browser drew its own controls (date pickers, scrollbars, select lists, autofill) light on a dark page.
color-schemeis now set in theinittheme,theme applyoutput, the package'sshellui-theme.css(and soshellui-all.css) and the demo.Tests (
b457d8eand per commit)Checked
updatein a fresh app made to look like an older install: the build failed with the same errors as the real app.shellui updatethen installed the three missing parts and kept the app'sAppSidebar, and the app built with 0 warnings and 0 errors. An editedCard.razorwas skipped, and--forceoverwrote it.removein a fresh app: the layout was removed and its users listed (Routes.razor,NotFound.razor); a customComponentsPathworked; a file already gone was handled; the counts were rightupdateandremovebehaviour