Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: shellui-dev/shellui-native
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: feat/edge-menu
Choose a base ref
...
head repository: shellui-dev/shellui-native
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 12 commits
  • 55 files changed
  • 2 contributors

Commits on Oct 16, 2026

  1. Merge pull request #33 from shellui-dev/test/avalonia-headless

    test(avalonia): headless tests for rendering, change events, overlays and theme
    Shewart authored Oct 16, 2026
    Configuration menu
    Copy the full SHA
    ab5f373 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #37 from shellui-dev/feat/bottom-nav-edge-menu-blocks

    feat: bottom-nav, edge-menu and blocks
    Shewart authored Oct 16, 2026
    Configuration menu
    Copy the full SHA
    59c9458 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2026

  1. 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.
    Shewart committed Oct 18, 2026
    Configuration menu
    Copy the full SHA
    656983c View commit details
    Browse the repository at this point in the history
  2. 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).
    Shewart committed Oct 18, 2026
    Configuration menu
    Copy the full SHA
    167bdb2 View commit details
    Browse the repository at this point in the history
  3. 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.
    Shewart committed Oct 18, 2026
    Configuration menu
    Copy the full SHA
    c81357a View commit details
    Browse the repository at this point in the history
  4. 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.
    Shewart committed Oct 18, 2026
    Configuration menu
    Copy the full SHA
    c3c76e3 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #38 from shellui-dev/fix/android-app-findings

    fix: Android findings from ShellLedger (Application name, input focus, system bars, wrapped transforms)
    Shewart authored Oct 18, 2026
    Configuration menu
    Copy the full SHA
    8bd5cf7 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2026

  1. 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.
    Shewart committed Oct 21, 2026
    Configuration menu
    Copy the full SHA
    293475d View commit details
    Browse the repository at this point in the history
  2. 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.
    Shewart committed Oct 21, 2026
    Configuration menu
    Copy the full SHA
    3ea2229 View commit details
    Browse the repository at this point in the history
  3. 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.
    Shewart committed Oct 21, 2026
    Configuration menu
    Copy the full SHA
    519d360 View commit details
    Browse the repository at this point in the history
  4. 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.
    Shewart committed Oct 21, 2026
    Configuration menu
    Copy the full SHA
    3725b2c View commit details
    Browse the repository at this point in the history
  5. 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
    Shewart authored Oct 21, 2026
    Configuration menu
    Copy the full SHA
    413bcca View commit details
    Browse the repository at this point in the history
Loading