Repository navigation
Comparing changes
Open a pull request
base repository: shellui-dev/shellui-native
base: feat/blocks
head repository: shellui-dev/shellui-native
compare: main
- 13 commits
- 55 files changed
- 2 contributors
Commits on Oct 16, 2026
-
Merge pull request #33 from shellui-dev/test/avalonia-headless
test(avalonia): headless tests for rendering, change events, overlays and theme
Configuration menu - View commit details
-
Copy full SHA for ab5f373 - Browse repository at this point
Copy the full SHA ab5f373View commit details -
Merge pull request #36 from shellui-dev/feat/blocks
feat(cli): blocks, numbered presets like ShellUI's dashboard-01
Configuration menu - View commit details
-
Copy full SHA for 7ba746c - Browse repository at this point
Copy the full SHA 7ba746cView commit details -
Merge pull request #37 from shellui-dev/feat/bottom-nav-edge-menu-blocks
feat: bottom-nav, edge-menu and blocks
Configuration menu - View commit details
-
Copy full SHA for 59c9458 - Browse repository at this point
Copy the full SHA 59c9458View commit details
Commits on Oct 18, 2026
-
fix: name the Application type in full in shell and toast
In an app with an <App>.Application project (clean architecture), a bare `Application` inside <App>.App.Components.UI resolves to that namespace and the app fails to build with CS0234. The MAUI shell and the Avalonia shell and toast now write Microsoft.Maui.Controls.Application / Avalonia.Application. A template test keeps bare `Application` out of every template.
Configuration menu - View commit details
-
Copy full SHA for 656983c - Browse repository at this point
Copy the full SHA 656983cView commit details -
fix(maui): keep focus in input, textarea and input-group on Android
The focus glow was added on focus and cleared on blur. Adding or removing a Shadow on Android makes MAUI re-wrap the Border's native view (removeView + add), which detaches the focused EditText: focus jumps to the first focusable view, the keyboard closes and typing goes nowhere. The shadow is now always set and only its opacity changes (0 idle, 0.35 focused or in error).
Configuration menu - View commit details
-
Copy full SHA for 167bdb2 - Browse repository at this point
Copy the full SHA 167bdb2View commit details -
fix(maui): theme the system bars of a new Android activity
With ShellTheme.SyncSystemBars, backing out of the app at the root and reopening it creates a new activity whose bars were never themed (black, page no longer edge to edge), so apps needed `window.Created += ShellTheme.Apply()`. The shell now applies the bars again whenever a page appears.
Configuration menu - View commit details
-
Copy full SHA for c81357a - Browse repository at this point
Copy the full SHA c81357aView commit details -
fix(maui): keep transforms on Android's wrapper view
Android wraps an InputTransparent (or shadowed / clipped) view in a WrapperView after its handler has applied the view's translation, scale and rotation to the view itself. Later changes move only the wrapper, so the inner view keeps the first values for good: - theme-toggle: the moon stayed at half size and turned after switching to dark (its hidden state when the handler was created); - bottom-nav: the Default indicator sat about 25 dp right of the active item after the handler was re-created with the page kept (a new activity), and stayed offset on every later switch. ShellPlatform.KeepTransformsOnWrapper (Android only) resets the inner view when the handler connects and re-applies the transforms to the wrapper. Icon uses it, which also covers chevrons and spinners, and so do bottom-nav's indicator, glyph, circle and icon host.
Configuration menu - View commit details
-
Copy full SHA for c3c76e3 - Browse repository at this point
Copy the full SHA c3c76e3View commit details -
Merge pull request #38 from shellui-dev/fix/android-app-findings
fix: Android findings from ShellLedger (Application name, input focus, system bars, wrapped transforms)
Configuration menu - View commit details
-
Copy full SHA for 8bd5cf7 - Browse repository at this point
Copy the full SHA 8bd5cf7View commit details
Commits on Oct 21, 2026
-
fix(maui): set up the page layer before a page's views load
The overlay layer wraps a page's content in a Grid. It was set up on PageAppearing, which on a Shell route switch runs after the page's views have loaded, so they got Unloaded and Loaded again, and a view that cancels its work on Unloaded lost its first load. The layer is now set up on Application.DescendantAdded, as the page joins the app and before its views load. PageAppearing stays as the fallback for a page whose content is set later. Checked on Windows: a GoToAsync("//route") switch gave the page's views Loaded 2 / Unloaded 1 before and 1 / 0 after; push, window page swap and start-up were already fine.Configuration menu - View commit details
-
Copy full SHA for 293475d - Browse repository at this point
Copy the full SHA 293475dView commit details -
feat(icon): add receipt, list-checks, calendar-clock and key-round
Four common dashboard icons from ShellIcons (Lucide 0.475.0), for MAUI and Avalonia; 114 icons in the template now.
Configuration menu - View commit details
-
Copy full SHA for 3ea2229 - Browse repository at this point
Copy the full SHA 3ea2229View commit details -
feat: slots and states for data table, button, sheet, card, stat card…
… and input For MAUI and Avalonia, with demo sections on both: - data-table: DataTableColumn.Cell draws any view in a cell (a badge, a link); filter and sort still use Property / Value - button: ButtonSize.Inline (h-auto p-0) for a link in a line of text or at a card's edge - sheet: SheetHeader, SheetTitle, SheetDescription and SheetFooter, new CLI targets installed with sheet - card: CardHeader.Action at the top right (shadcn's CardAction), and views inside the header sit on the title's line and wrap under it - stat-card: ValueTone (Default, Success, Warning, Destructive), a value row that wraps so the pill drops under a long value, IsLoading (skeletons; stat-card now depends on skeleton) and Size Sm - input, input-group: Variant="Password" masks the text and adds an eye button that shows it (keeps focus, named for screen readers); IsPassword still masks without the button. InputVariant lives in Input, so input-group now depends on input Headless tests for each, and registry tests for the new targets and dependencies.
Configuration menu - View commit details
-
Copy full SHA for 519d360 - Browse repository at this point
Copy the full SHA 519d360View commit details -
docs: cell views, inline links, sheet parts, card actions, stat card …
…states and password inputs Also documents theme tokens on spans and runs, and when the page layer wraps a page's content.
Configuration menu - View commit details
-
Copy full SHA for 3725b2c - Browse repository at this point
Copy the full SHA 3725b2cView commit details -
Merge pull request #39 from shellui-dev/feat/component-slots-and-states
feat: slots and states for data table, button, sheet, card, stat card and input
Configuration menu - View commit details
-
Copy full SHA for 413bcca - Browse repository at this point
Copy the full SHA 413bccaView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff feat/blocks...main