Skip to content

0.2.4

Latest

Choose a tag to compare

@accntech accntech released this 17 Jul 01:18
· 7 commits to main since this release
badba27

ShadUI 0.2.4 updates the library to Avalonia 12.1.0 and improves control behavior, lifecycle cleanup, and animation reliability across the library and demo app.

Important

.NET 8 support has been removed. Applications consuming this release must target .NET 9 or later. Projects that still require .NET 8 should remain on ShadUI 0.2.3 until they can upgrade.

Requirements

  • Supported target frameworks: net9.0 and net10.0
  • Avalonia updated to 12.1.0

Control fixes and improvements

  • Sidebar
    • Reliably remembers and restores its expanded width across collapse/expand cycles.
    • Handles rapid state changes, template reapplication, and visual-tree attachment without stale animations or one-frame width jumps.
    • Cancels superseded transitions cleanly and preserves the correct opacity when MinWidth is zero.
  • NumericUpDown
    • Restores increment/decrement using the Up and Down arrow keys.
    • Restores mouse-wheel spinning while the control has keyboard focus.
    • Prevents the parent smooth-scrolling container from intercepting wheel input intended for the spinner.
  • TabControl
    • Uses a constrained grid layout so selected content can contain an internal ScrollViewer correctly.
    • Restores the animated selection indicator by applying the tab background through the template.
    • Adds regression coverage for the complete tab-header hit target.
  • Window
    • Adds ShowAvaloniaFullscreenPopover, defaulting to false, to suppress Avalonia's built-in fullscreen exit affordance when ShadUI chrome is used. Set it to true to opt back in.
    • Preserves the correct Windows maximized inset without overriding the normal root margin.
  • Menu
    • Corrects popup ancestor bindings for menu and submenu overlay input pass-through behavior.
  • ColorPicker
    • Keeps the color swatch and hexadecimal preview text synchronized when Color changes, including when the picker is hosted inside a dialog.
  • Toast
    • Fixes bulk dismissal so every queued toast is removed correctly.
    • Restores existing queued toasts when a host attaches or changes managers.

Performance and reliability

  • Demo pages are now created lazily on first navigation instead of all being instantiated at startup.
  • Page, dashboard, code-snippet, and navigation resources are released cleanly when the demo closes.
  • Dialog and toast hosts now subscribe only while attached to the visual tree and detach manager/template handlers during cleanup, reducing duplicate callbacks and retained controls.
  • Attached-property behaviors, scroll handlers, sidebar items, dialogs, and toasts now clean up event subscriptions more consistently.
  • Sidebar, dialog, and toast transitions cancel superseded work safely; background animation failures are observed instead of becoming unhandled task exceptions.

Tests

Added regression coverage for:

  • Sidebar width restoration
  • NumericUpDown keyboard and wheel spinning
  • ColorPicker previews inside dialogs
  • Tab header hit targets
  • Dialog and toast manager subscription lifecycles

Full Changelog: 0.2.3...0.2.4