mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-16 21:21:03 +08:00
55 KiB
55 KiB
Changelog
All notable changes to AtomUI are documented in this file.
AtomUI follows Semantic Versioning 2.0.0.
6.2.5
2026-10-10
- Breaking Changes
- Registration: version-specific public
ControlPackageGroup_*types change in six control packages. Upgrade AtomUI packages together, rebuild compiled consumers and republish trimmed/NativeAOT applications; see the 6.2.5 API migration guide.
- Registration: version-specific public
- Window
- Fix the content background failing to update when the application theme changes, while preserving transparency behavior and explicit fallback backgrounds. #496
6.2.4
2026-10-07
- Breaking Changes
- TimePicker and RangeTimePicker: enable
IsNeedConfirmby default, use the 24-hour clock and make ordinary scrolling browse without selection. Configure individual modes explicitly and review changed submission/Now timing; review the 6.2.4 API migration guide. - TimePicker themes: update column sizing, item padding and cyclic scrolling templates; review custom themes and scroll assumptions against the migration guide.
- Packaging and registration: restore Release
net8.0alongsidenet10.0and add .NET 8 trimming/AOT build assets. Upgrade AtomUI packages together, rebuild precompiled consumers and republish trimmed/AOT applications; see the migration guide for build prerequisites and platform limits.
- TimePicker and RangeTimePicker: enable
- TimePicker
- Separate committed values, candidates and hover previews; apply valid candidates consistently on explicit confirmation or on close/focus loss when confirmation is disabled.
- Add
IsChangeOnScroll, keep cyclic hour/minute/second selections centered, and prevent column focus scrolling from moving the surrounding page. - Fix invalid text, external updates, range endpoint switching and repeated confirmation in pinned popups; align Gallery examples with committed-value feedback.
- ColorPicker
- Add optional
IsNeedConfirmto ColorPicker and GradientColorPicker, with localized confirmation and cancellation actions. - Keep draft edits and clearing cancellable, isolate gradient drafts, and commit valid input once while preserving the existing default synchronization mode.
- Add optional
- NativeAOT, Build and Packaging
- Use the .NET 8 compatibility dependency backend only for .NET 8 targets; modern targets use the matching official TypeMap engine, with automatic input conversion for supported precompiled .NET 8 packages.
- Consolidate tooling in AtomUI.Toolchain, validate package framework/content contracts, and keep tool runtime files out of application output.
- Fix clean/parallel builds of test projects without Generator references and prevent re-export of imported localization catalogs.
- Gallery
- Fix fractional-scale ShowCase layout loops that hide Form labels and start DateViewer deferred examples with one materialized item.
6.2.3
2026-10-05
- Breaking Changes
- Calendar: replace
CalendarCellTypewithDateViewerCellTypeand makeCalendarCellContextinheritDateViewerCellContext; rebuild custom cell contexts and templates. See the 6.2.3 API migration guide. - DatePicker: remove the public legacy
CalendarViewtypes, move and sealDateSelectedEventArgs, and sealChoosingStatusEventArgs; migrate to the shared viewer contracts described in the guide. - Theme and Tokens: replace legacy date-panel templates and Semantic Part targets, remove obsolete DatePicker token keys, rename
RangeCalendarSpacingtoRangePanelSpacing, and change generated Calendar/DatePicker token enum values. Rebuild custom themes and use named token members; see the migration guide. - Registration: version-specific generated
ControlPackageGroup_*identities change in six control packages; rebuild generated-registration consumers and republish trimmed/NativeAOT applications. See the migration guide.
- Calendar: replace
- DateViewer, Calendar and DatePicker
- Add standalone DateViewer and RangeDateViewer with Date, Week, Month, Quarter and Year selection, Compact/Content presentation, typed templates, atomic ranges and Semantic Part styles.
- Share date panels across Calendar, LunarCalendar and DatePicker, preserving Calendar business headers, lunar content and range bars.
- Improve date-panel geometry, Today/focus visuals, week formatting and language switching; align range highlights and endpoint corners.
- Fix RangeDatePicker endpoint rotation, popup anchoring, reverse hover previews and partial confirmation across close/reopen; keep reusable confirm and time controls interactive.
- Input and Window Lifecycle
- Prevent cross-window pointer input from changing Rate, Slider, TimePicker, ButtonSpinner, ToolTip and TreeView drag state; release transient state safely on disable, detach and window close.
- Remove inherited dividers from CandidateList, Select and Cascader dropdown items.
- Watermark and Layout
- Fix localized Watermark glyph resources, owner attachment and theme/language updates; skip invalid or fully clipped tiles without changing rotation, stagger or mirror phases.
- Correct final-bounds geometry for Rate, ToggleSwitch, Segmented, Skeleton, ColorBlock and popup shadow/arrow layouts, including margins and scaling.
- Gallery and Generator
- Add localized DateViewer examples and Semantic Part previews.
- Fix deferred ShowCase materialization and placeholder visuals; improve zoomed content bounds, overlays and hit testing while preserving scrolling.
- Cache generated registration descriptors to reduce startup work without changing registration contracts.
6.2.2
2026-09-30
- Breaking Changes
- Packaging: product packages now ship only
lib/net10.0; applications and libraries targetingnet8.0must move tonet10.0and use a .NET 10 SDK. See the 6.2.2 API migration guide. - Registration and Theme: replace the Unit/Plan/Sidecar AOT registration ABI with generated TypeMaps and remove the old registration, single-theme provider and asset-schema contracts. Third-party control packages must rebuild with the v6.2.2 generator; see the migration guide.
- Build and platform metadata: retire
AtomUI.LinkedRegistration*assets and custom theme-platform metadata in favor ofAtomUI.Registration.targetsand standard platform attributes. Custom build imports and theme authors must migrate as described in the guide. - Generated tokens and desktop registration: remove token-key types for controls without an own token and
UseAllDesktopControls(); DataGrid and WindowTitleBar token enum numbers change. Rebuild integrations and useUseDesktopControls()and named token members; see the migration guide.
- Packaging: product packages now ship only
- DataGrid
- Add top and bottom pagination extra content and templates, plus
IsShowPageSizeSelectorfor page-size selector visibility.
- Add top and bottom pagination extra content and templates, plus
- Button, WindowTitleBar and Steps
- Restore the Button keyboard focus ring and align WindowTitleBar AddOn/caption geometry.
- Fix Steps natural-size measurement while preserving connector lines.
- Flyout, FloatButton and RibbonBadge
- Support keyboard-triggered Flyout and FloatButton group expansion and collapse.
- Fix RibbonBadge corner rendering coordinates.
- Dialog, Motion and Gallery
- Move Dialog overlay motion to the compositor and unify zoom state.
- Add Gallery showcase zoom and DataGrid pagination examples; update Badge examples and Gallery branding.
- NativeAOT, Build and Dependencies
- Replace linked registration and trimming with the TypeMap pipeline, improve reflection trimming and reduce generated Token descriptor size.
- Keep desktop trimmed and NativeAOT publishing compatible with later .NET 10 patch toolchains while retaining the pinned Browser toolchain.
- Upgrade Avalonia to 12.1.3.
6.2.1
2026-09-22
- Breaking Changes
- Pagination: reduce the fixed navigation container and Semantic Part marker pool from 11 to 9 while aligning the visible page window and jump behavior with Ant Design. Snapshot, automation or theme tooling that depends on the previous count must update; see the 6.2.1 API change examples.
- Pagination
- Add interactive previous/next jump items with pointer and Enter-key activation, localized automation names, five-page default jumps and three-page jumps when
IsShowLessItems=true. - Add
IsShowLessItemsandIsShowPrevNextJumpers, and preserve hover/focus transitions by reusing stable navigation containers during page-window updates. - Add
SizeChangerTemplateandPaginationSizeChangerContextso applications can replace the default page-size ComboBox without taking ownership of Pagination state or breaking TwoWay bindings.
- Add interactive previous/next jump items with pointer and Enter-key activation, localized automation names, five-page default jumps and three-page jumps when
- Menu
- Prevent keyboard navigation from opening an empty submenu on leaf items, and reconcile pinned or dynamically populated submenu state after collection changes.
- Steps
- Fix vertical subtitle overlap and align Inline hover backgrounds and Panel clipping with the selected Steps type.
- Message and Notification
- Keep cross-manager feedback stacking deterministic by reactivating a window feedback layer when its manager becomes active.
- Gallery
- Fix the login Form options-row layout.
- Keep the ColorPicker Semantic Part trigger fully visible above its pinned popup and add the Pagination custom size-changer example.
6.2.0
2026-09-18
- Breaking Changes
- SearchEdit: rename the public
SearchEditButtonStyleenum toSearchButtonType.SearchButtonStylekeeps its name and values; update the enum type in C# and XAML integrations. See 6.2.0 API change examples. - OtpLineEdit: remove
SeparatorInterval.Separatornow renders between every adjacent cell; useSeparatorTemplateandOtpLineEditToken.CellGapfor customization. See the migration guide. - Button: remove
CustomBackgroundand use the standardBackgroundandBorderBrushproperties. See the migration guide. - ProgressBar: remove the protected
AbstractGeneralProgressBar.DrawIndicatorBarhelper; custom derived controls must own their drawing path or use template/Semantic Part styling. - Separator: remove
AbstractSeparator.DashStyleandDotStyle; useSeparatorRail.DashStyleandSeparatorRail.DotStylefor standard dash definitions. - Theme manager: add
IThemeManager.SemanticPartsfor the Semantic Part registry. Custom implementations must add the property; the built-inThemeManagerneeds no change. See the migration guide. - Notification: remove the legacy eight-parameter constructor and the
CardExpiredPollingInterval/CleanupPollingIntervalproperties; the lifetime scheduler is now the only expiration coordinator. - Notification managers: add
IMessageManager.DestroyAll()andINotificationManager.DestroyAll(); custom implementations must add these methods. - Transfer: change the protected
BuildSourcePanelSourceandBuildTargetPanelSourcereturn types toIReadOnlyList<IItemKey>?; custom derived controls must update overrides and callers. - Notification tokens: remove
NotificationMarginBottom,NotificationContentMargin, andHeaderMargin; generated token enum values follow the current declarations.
- SearchEdit: rename the public
- Semantic Parts and Gallery
- Add generated Semantic Part contracts and dedicated style entry points across the control families, including input, navigation, data display, feedback and layout controls.
- Add Gallery previews and cross-visual-root highlighting for popups, dialogs, drawers, tours and image previews, with owner-scoped styling and corrected localization catalogs.
- Add semantic examples for ComboBox, Splash, GroupBox, Expander, DataGrid, Menu, TabControl, TabStrip, NumericUpDown and related controls.
- Fix a queued sticky-tab elevation update racing template teardown and dereferencing released visual parts.
- Popup, Dialog and Theme
- Fix pinned overlay ownership, cross-window popup routing, semantic scope tracking and root surface customization across Dialog, Drawer, PopupConfirm, Menu and picker controls.
- Fix theme source namespace drift and keep Semantic Part preview contracts in the public
AtomUI.Themenamespace.
- Async, Motion and Caching
- Prevent duplicate concurrent async expand/search loads, classify explicit cancellation correctly, and close completion-publication races in the bounded theme cache.
- Improve feedback stacking, masonry motion, segmented selection transitions and hidden-control shutdown behavior.
- Localization, Build and AOT
- Align generated design-token enums with the current source declarations; adding or renaming token properties is part of the v6.2.0 API surface.
- Restore canonical XLIFF ordering and Portuguese (Brazil) catalog coverage across the Gallery.
- Add release API and package-layout validation against the previous NuGet release and use content-addressed repository task tooling to avoid stale MSBuild assemblies.
- Keep linked registration, trimming and NativeAOT Gallery validation paths aligned with the expanded semantic control surface.
6.1.9
2026-09-11
- Breaking Changes
- Build: AtomUI MSBuild tasks now run through the SDK compiler adapter in single-use .NET processes instead of loading
AtomUI.Build.Tasksin-process from a shadow copy. The build tools ship asnet10.0assemblies, so consuming projects must build with the .NET 10 SDK; the previous in-process entry points and shadow-directory layout are removed. Product target frameworks are unchanged. See 6.1.9 API change examples.
- Build: AtomUI MSBuild tasks now run through the SDK compiler adapter in single-use .NET processes instead of loading
- DataGrid
- Fix single-row selection needing a second click when switching between rows. #461
- Fix recycled cells leaking sort state after sorting. #462
- Fix dynamically changing the right frozen column count not taking effect.
- Motion, Collapse, Expander and NavMenu
- Unify content expand/collapse motion over a shared animator: full-height and opacity interpolation, stable content clipping, reversal continuity and a single execution owner with one clock. Fix accordion flicker and jitter during expand/collapse and rapid branch switching.
- Window and ImagePreviewer
- Fix a crash caused by mounting the fullscreen title-bar logo twice.
- Fix ImagePreviewer title-bar buttons not being clickable, and align the Windows title-bar AddOn button and toggle geometry with managed caption buttons while keeping Linux/macOS visuals.
- Avatar and Image Loading
- Support safe local SVG resources with duplicate ids through the new
SvgConformanceModeoption:Compatible(default) tolerates duplicate ids, whileStrictrejects them asInvalidImageData. - Fix Avatar text centering for short, boundary-width and long labels by moving text measurement, downscaling and centering into the template.
- Support safe local SVG resources with duplicate ids through the new
- BorderBeam
- Add the
Countproperty to draw multiple equidistant beams from one animation clock and presenter. - Fix the default border geometry so the beam hugs the content boundary when
Outsetis not set. - Add Gallery examples for multiple beams, hover-triggered beams and custom containers.
- Add the
6.1.8
2026-09-08
- Breaking Changes
- DataGrid: replace collection-backed
ItemsSourceand mutable collection-view state with the range-basedIDataGridSource, immutableDataGridQuery,DataGridSelectionStateandCurrentRowKeycontracts. Local collections must be wrapped withDataGridLocalSource<T>; remote sources implementIDataGridSource. Columns now bind query behavior throughFieldIdand source schema instead of member-path sorting/filtering APIs. - Image Loading: replace
ImageLoadSourceand its factories with the closedImageSourcehierarchy; splitImageCacheModeintoImageCacheReadPolicyandImageCacheStoragePolicy; and replace cache-source result reporting withImageLoadOrigin,ImageSourceValidationand content identity. - Theme: concrete
[ControlDesignToken]types must now be sealed. Shared inheritance must use explicitly marked abstract token layers;ColorPickerTokenis now sealed and can no longer be subclassed. See 6.1.8 API change examples.
- DataGrid: replace collection-backed
- DataGrid
- Add immutable query, page, group-expansion and declarative selection state over range-based local or remote sources, including bounded viewport loading, cancellation, snapshot validation and remote-capability interfaces. #455
- Preserve selected-row styling when sorting, and reset viewport range and automatic row-height estimates correctly when data changes. #454 #457
- Image Loading and ImagePreviewer
- Add a closed, strongly typed image-source model with source validation, content-addressed caching, independent cache read/storage policies and safer borrowed-image ownership.
- Add
ImageSwitchMode.ImmediateandWaitForLoaded, and fix rapid preview switching so stale loads cannot replace the current image. #450
- Window and Navigation
- Add
Window.IsTitleVisible, improve live title-bar logo fallback behavior and extend the Gallery title-bar examples. #451 - Make NavMenu pointer and keyboard activation ordering deterministic, protect reentrant selection changes and restore pressed-state visuals and motion easing. #452
- Add
- Select Family
- Fix multiple-selection prefix spacing in Select, TreeSelect and Cascader, and align empty-result indicators across Select, AutoComplete and Mentions.
- NativeAOT, Browser Gallery and Build
- Preserve cross-project and binary-only linked-registration closure for trimmed and NativeAOT applications. #453
- Keep native WebAssembly linking enabled for ordinary Browser Gallery builds so SkiaSharp native assets are present at runtime.
- Fix NuGet release artifact upload paths, standardize canonical XLIFF output on one trailing LF, and add automatic VSTest temporary-directory cleanup without collecting crash dumps.
- Gallery, Dependencies and Platform
- Reduce ShowCase masonry flicker while resizing.
- Upgrade Avalonia to
12.1.2and simplify platform-specific project wiring.
6.1.7
2026-09-02
- DataGrid
- Fix the top-left corner header so DataGrid no longer renders an extra column-header separator beside row headers when grid lines and frozen columns are enabled.
- TextBox
- Fix
SizeType=Smalland custom-height TextBox layout so the input frame follows the expected shared size token or local height.
- Fix
- Button and Browser Gallery
- Use the shared Button, DropdownButton and IconButton theme assets in browser-hosted desktop controls instead of Browser-only override copies, keeping Button family visuals consistent across targets.
- Documentation
- Refresh README sponsor acknowledgements.
6.1.6
2026-08-29
- Breaking Changes
- Avatar: move
AvatarandAbstractAvatartoAtomUI.Controls; replaceSrcandBitmapSrcwith typedSource,FallbackSourceandRequestOptions; internalizeTextRenderTransform; and move generated Avatar token APIs toAtomUI.Controls.DesignTokens.CardMetaContent.Avatarnow uses the base-controls Avatar type. - ImagePreviewer: replace
Source,Sources,FallbackSource,MaxConcurrentLoadsand the preview-specific source/loader contracts withItemsSourcecontaining immutableImagePreviewItemvalues backed byImageLoadSource. Configure concurrency through application-levelUseImageLoading, and update title resolvers to acceptin ImagePreviewTitleResolveContextand readcontext.Item. - Input controls:
LineEditno longer derives from AtomUITextBox;LineEdit,TextBoxandTextAreanow share the publicAbstractTextInputbase.OtpLineEditCelland its generated cell-token surface are internal; configure OTP appearance throughOtpLineEditand the shared input-frame contract. See 6.1.6 API change examples.
- Avatar: move
- Image Loading, Avatar and ImagePreviewer
- Add an application-scoped image-loading pipeline with
AsyncImage, typed URI/file/asset/storage/bytes/stream/image sources, request options, load state, progress and error events, bounded concurrency, priorities and encoded/decoded caching. - Add secure network SVG loading with redirect, response-size, image-dimension and credential-forwarding controls, and harden cancellation, cache ownership and attach/detach lifecycle behavior.
- Migrate Avatar and ImagePreviewer to the unified pipeline, including thumbnail/fallback sources, reload support, cover/current load state, immutable preview items and stable title metadata.
- Add an application-scoped image-loading pipeline with
- Input Controls and Form
- Establish
AbstractTextInputandInputControlFrameas the shared validation, status, size, variant, add-on and feedback architecture for TextBox, TextArea, LineEdit and OTP inputs. - Keep TextBox frame width stable while editing and preserve validation feedback subscriptions across template and lifecycle changes.
- Establish
- Steps, Masonry and Navigation
- Add the Steps
Paneltype with Filled and Outlined variants, tokenized surfaces and responsive layout behavior. - Add Masonry
StableColumnsandReflowlayout strategies, using stable columns by default while preventing decode/layout feedback loops and restoring final-width measurement and loading skeleton layout. - Restore TreeView node bindings after visual-tree reattachment, preserve NavMenu selection when transient popup state closes, and remeasure ToggleSwitch content after language changes.
- Add the Steps
- TabControl and TabStrip
- Fix overflow-tab closing to honor effective
IsClosable, route requests through the owner close workflow, preserve the source tab and menu item when closing is rejected or canceled, and keepClosing/Closed, selection and collection semantics consistent forItemsandItemsSource.
- Fix overflow-tab closing to honor effective
- Window and Platform
- Add public
WindowTitleBarButtonandWindowTitleBarToggleButtoncontrols for title-bar add-ons. - Fix Windows live-resize composition fallback alignment and macOS caption-button placement after screen recording or display-geometry changes.
- Add public
- Motion, Popup and Lifecycle
- Pause recurring animations, timers and visual work while controls are effectively hidden, then resume from current state when they become visible.
- Build, Packaging and Localization
- Load MSBuild tasks from content-keyed shadow copies to prevent stale task assemblies and dependency collisions across repeated builds.
- Move managed build outputs to
.artifactsand hide language-pack implementation files from consumer project trees.
6.1.5
2026-08-21
- Dialog, Drawer and MessageBox
- Add
Dialog.IsMaskClosable(defaulttrue) andMessageBoxOptions.IsMaskClosableto control whether pressing the modal mask closes the dialog.IsClosablecontinues to gate only the header close button; withIsMaskClosable=false, mask presses are ignored. - Keep Popup, Flyout, MenuFlyout, ToolTip, ContextMenu and popup-bearing controls inside Dialog or Window Drawer content in the owning Window
TopLevel, above modal content and below normal light-dismiss handling, including DataGrid filter popups. - Center directly instantiated Dialogs by default, matching
DialogOptionsand static Dialog APIs while preserving explicitCustomanchors and offsets. - Keep the complete Dialog surface content attached through close motion so text, inputs, footer actions and shadows animate and tear down together.
- Add
- Popup
- Add optional
Popup.SurfaceBackgroundwith anulldefault. A non-null brush opts into a host-owned surface, while built-in Flyout, ToolTip, ContextMenu, selector, picker, menu, Tour and ColorPicker families keep their existing content-owned surfaces without duplicate frame fills.
- Add optional
- ToolTip
- Add
TextWrapping(defaultWrap) andTextTrimmingattached properties so long tip text wraps withinToolTipMaxWidthinstead of being clipped. - Allow a
ToolTipinstance used asTipto override host presentation properties; presentation properties set on the instance take precedence and unset ones fall back to the host. - Treat
IsOpenas a declarative desired-open state and reconcile it with tip readiness and host attachment instead of edge-triggered open-on-set behavior.
- Add
- Window and WindowTitleBar
- Unify title-bar host behavior and CSD geometry across logical-tree title bars; content-area title bars receive caption, drag and double-click behavior without owning size hints.
- Preserve
WindowDecorations.Fullwhen the AtomUI title bar is hidden, hiding only the drawn title-bar visual and avoiding a title-bar-height blank band.
- Candidate interaction
- Unify pointer and keyboard candidate navigation for Select, AutoComplete, ComboBox, Cascader and Mentions so the highlighted item and
Entercommit target stay consistent; pointer movement remains non-committing.
- Unify pointer and keyboard candidate navigation for Select, AutoComplete, ComboBox, Cascader and Mentions so the highlighted item and
- NativeAOT and Build
- Canonicalize linked-registration Sidecar inputs by assembly identity and contract hash, prefer formal project or package Sidecars over metadata extraction, and report conflicting manifests instead of feeding duplicate registration plans into linked builds.
- Run linked-registration, localization and theme-asset MSBuild tasks in isolated .NET task hosts to avoid task dependency and load-context conflicts across builds.
6.1.4
2026-08-18
- Breaking Changes
- SearchEdit: replace
SearchButtonClickwithSearchRequested. Migrate handlers toSearchRequestedEventArgs, which exposes the query snapshot andButton/EnterKeytrigger; Enter now requests a search by default and can be disabled withIsSearchOnEnterEnabled=false. - Localization: remove
ContractVersionfromLanguageCatalogAttribute,LanguageCatalogDescriptorandTranslationBundleDescriptor, including the descriptor constructor arguments; removeAtomUILanguageContractVersionandAtomUIRequireVerifiedLanguageContract; and replace the custom build-task path overrideAtomUILocalizationBuildTasksAssemblywithAtomUIBuildTasksAssembly. Custom catalogs and language packages must use stable catalog keys and source fingerprints, then rebuild against 6.1.4. See 6.1.4 API change examples.
- SearchEdit: replace
- AOT, Generator and Build
- Add compile-time linked registration for trimmed, NativeAOT and WebAssembly AOT applications. AtomUI now generates a static registration plan from C# and AXAML usage, preserves required control-package resources and uses bounded package-level fallbacks without runtime assembly scanning.
- Add build-generated linked-registration sidecars and package manifests, keep publish analyzers out of ordinary builds, avoid implicit publish work in Gallery builds and reduce duplicate generated descriptor factories.
- Add
ControlPackageRegistrationEntryAttributeand package-granularity registration for third-party control packages, with opt-in directory granularity for independently trimmable control families. - Centralize the NuGet release manifest, include
AtomUI.Desktop.Controls.Extrasin extension package build, pack and artifact verification, and skip theme-asset generation when a project has no AXAML inputs.
- Window and Navigation
- Add
Window.IsMinimizeCaptionButtonVisibleandIsMaximizeCaptionButtonVisible, completing independent visibility controls for minimize, maximize, close, fullscreen and pin caption buttons while keeping platform capabilities and window state authoritative. - Fix the Wayland startup title-bar flash, avoid retaining the complete Ant Design icon catalog in trimmed Window applications, and add tokenized spacing between the title-bar logo and left add-on.
- Add configurable collapsed NavMenu tooltips with node-level content, header fallback, placement and delay controls.
- Preserve
TabControl.HeaderTemplateandCardTabStrip.ItemTemplaterendering when tab headers move into overflow menus. #430
- Add
- Data Entry and DataGrid
- Unify pointer hover and keyboard navigation around one active Select candidate so the highlighted item and Enter commit target remain consistent across Single, Multiple and Tags modes.
- Fix non-editable ComboBox keyboard focus after reopening so consecutive Down and Enter selections continue to update the selected item. #428
- Fix DataGrid star columns when
ItemsSourceis empty by resolving widths from the active finite header viewport.
- Gallery
- Add responsive content breakpoints, metadata layout and sidebar collapse behavior to the desktop and browser Gallery shells.
- Add real-time Icon Gallery filtering and one-click icon-name copy with localized success or failure feedback.
6.1.3
2026-08-08
- Breaking Changes
- Theme: custom theme and control packages must migrate from manually maintained token/theme registration to generated control-package descriptors and
Themes/**/*.axamlasset manifests registered throughApplication.UseAtomUI(...)before the theme schema freezes. Replace string algorithm IDs in theme builders, attributes, descriptors and state withThemeAlgorithmenum values. - Localization: replace the removed
LanguageCode,LanguageVariant, language provider/pool and ThemeManager language registration APIs withLanguageTag, catalog enums, XLIFF 2.1 resources,UseLanguages()and generated module registration. Catalog enum member names and XLIFF unit IDs are now the stable contract identity; applications and static language packages must be rebuilt together and must not mix the former numeric-ID catalogs with key-based catalogs. - Upload: remove
Upload.IsOpenFileDialogOnClickin favor ofUploadDropZone.IsOpenFileDialogOnClickandSourceKind; replaceUpload.AcceptswithAllowedFileTypes; remove the old drop events and URI-only file contract; and migrate custom integrations to the typed source, input-batch, admission and completion contracts withFilesas the single state owner. - Timeline: add horizontal
Orientation, replaceTimelineMode.Left/Rightwith logicalStart/End, and renameIndicatorLeftModeMargin/IndicatorRightModeMargintoIndicatorStartModeMargin/IndicatorEndModeMargin. - Tag: replace
IsBorderedwithTagVariant(Filled,SolidorOutlined), and use the newCheckableTag/CheckableTagGroupselection APIs for checkable tag scenarios. - Separator: change
SizeTypefromSizeTypetoCustomizableSizeTypeand implementICustomizableSizeTypeAware;Customspacing is owned by the control instance or its containing style. See 6.1.3 API change examples for migration guidance.
- Theme: custom theme and control packages must migrate from manually maintained token/theme registration to generated control-package descriptors and
- Calendar and DatePicker
- Add the new Calendar control with date, month and year views, Mini and Fullscreen densities, custom headers and cells, week-number display, notices, range bars, disabled-date composition, keyboard navigation and automation support.
- Add switchable DatePicker modes and
MinDate/MaxDateconstraints.
- Localization, Generator and Build
- Replace runtime language providers with generated XLIFF 2.1 catalogs, strongly typed resource extensions, application bootstrap code and immutable language snapshots while preserving existing
{atom:XxxLangResource Key}XAML usage. - Add static language-package build contracts, generated registration for active and dormant modules, verified and deferred package manifests, partial overrides, catalog validation and NativeAOT-safe registration without runtime assembly scanning or XLIFF parsing.
- Add official Portuguese (Brazil) (
pt-BR) packages for AtomUI modules and language switching in the Gallery.
- Replace runtime language providers with generated XLIFF 2.1 catalogs, strongly typed resource extensions, application bootstrap code and immutable language snapshots while preserving existing
- Theme
- Compile theme definitions and generated control-theme manifests into complete immutable root and scoped snapshots, publish changes atomically, and cache equivalent definitions by normalized content digest.
- Align Ant Design token semantics, complete control token snapshots and composite input states, including generated exact control identities, resource keys and effective Global/Own token access.
- Upload
- Rebuild picker, directory picker, drag-and-drop and programmatic input around one cross-platform admission pipeline with typed file-source ownership, serialized batches and deterministic terminal states.
- Add directory policies, traversal limits, count-overflow policy, snapshot error reporting and consistent
IsMultipleEnabledbehavior across picker and drop input. - Harden replacement, cancellation, cleanup and upload progress finalization so accepted sources remain valid until execution exits and updates stop after terminal status.
- Navigation and Selection Controls
- Add
Menu.IsScrollEnabledfor scrollable popup menus. - Add hierarchical NavMenu composition, collapsible sidebar headers, improved inline-collapsed presentation and stale-selection cleanup when items are replaced.
- Add vertical and round Segmented variants, keyboard navigation and dynamic option loading.
- Add vertical OptionButtonGroup layout and horizontal Timeline layouts with logical Start/End/Alternate placement.
- Add
- Data Entry, Display and General Controls
- Add Tag Filled/Solid/Outlined variants, preset/status/custom color handling, CheckableTag and single/multiple-selection CheckableTagGroup.
- Add multi-handle Slider values with per-handle disabled state.
- Add Button
IconWidthandIconHeight, and StepsItemHeaderForeground,ItemSubHeaderForegroundandItemRailBackgroundsemantic styling properties. - Improve TextBox and TextArea OverflowTip decisions with text viewport metrics, restore Separator preset spacing, and add a Gallery form-in-Drawer example.
- Add LunarCalendar with lunar date projection, solar terms, traditional festivals, holiday/workday markers and configurable weekend highlighting.
- Window, DataGrid, Gallery and Dependencies
- Add the Window title-bar add-on facade and route ImagePreviewer toolbar requests correctly from client-side decoration overlays.
- Fix DataGrid row-reorder reset crashes, collection moves and reorder lifecycle handling, while reducing allocations in the reorder path.
- Include the Gallery Developer Tools runtime dependencies required by packaged builds.
- Upgrade Avalonia from
12.1.0to12.1.1; this patch dependency upgrade does not require AtomUI source migration.
6.1.2
2026-07-27
- Theme and Gallery
- Add the shared
ThemePreferenceenum withLight,DarkandSystemvalues. - Add Light, Dark and Follow System appearance modes to the Gallery. Follow System updates the Gallery theme when the operating system appearance changes.
- Add the shared
- Dialog, Drawer and Window
- Fix overlay Dialog and Drawer masks so they cover drawn window chrome without changing the window content geometry.
- Splitter
- Fix measurement when the cross axis is unconstrained so Splitter returns a finite desired size.
6.1.1
2026-07-25
- Breaking Changes
- ListView: replace the settable Avalonia
ISelectionModelcontract with a read-onlyIListViewSelectionfacade. Code that directly setSelection,SelectedItem,SelectedItemsorSelectedValueshould migrate toSelectedIndexorSelection.Select/Selection.Deselect/Selection.Clear/Selection.SelectAll;SelectionChangednow usesListViewSelectionChangedEventArgs, and the oldListCollectionViewChangedEventArgstype has been removed.ListItemData.IsSelectedhas been removed, andListItemData,GroupListItemDataandSelectOptionare now classes instead of records. See 6.1.1 API change examples.
- ListView: replace the settable Avalonia
- Window and Dialog
- Fix macOS modal dialog window title-bar and resize-region behavior so only one outer resizer is shown and owner-outside modal activation no longer causes visible flashing.
- Fix Wayland dialog/window resize constraints, sudden resize growth, fractional-scale borders and mask alignment.
- Fix Windows CSD dialog/window resize handling, background priming, frame dark mode and minimum-height constraints so native bounds stay aligned with drawn decorations.
- Consolidate platform chrome boundaries while keeping Windows, macOS, Wayland, X11 and other Linux decoration behavior separated.
- WindowTitleBar
- Add
WindowTitleBar.TitleAlignmentandWindow.TitleAlignmentwithAuto,Left,Center,WindowCenterandRightmodes. - Fix Windows/Linux logo ordering before the left add-on, Windows caption-button cursors and title-bar padding.
- Add
- ListView, Select and Transfer
- Fix selection state and data-view index mismatches across filtering, grouping, pagination and duplicate item occurrences.
- Add
ItemKeySelectorandSelectedIndexesso ListView can preserve selection by stable business keys and source indexes.
- DataGrid
- Fix pagination state replay after the DataGrid template is reapplied.
- ImagePreviewer
- Fix preview dialog resize motion, title centering and background stability.
- Drawer, ScrollViewer and Base Layout
- Fix Drawer masks so they cover the visible window frame.
- Fix fractional-scale sub-pixel overflow causing auto scrollbars to appear incorrectly.
- Fix SplitButton child bounds across arrange passes.
- Gallery, Documentation and Build
- Remove built-in Gallery API and design-token metadata table sidecars, and stop referencing those Gallery tables from LLMS output.
- Stop tracking reproducible generated files and fix CRLF output in generated theme asset manifests.
6.1.0
2026-07-20
- Breaking Changes
- Dialog and MessageBox: rebuild the static display and host lifecycle around async sessions. Custom code that referenced
IDialogHost,IDialogHostProvider,IDialogActionResultorIMessageBoxActionResult, or depended on callback-style host close APIs, should migrate toShowDialogAsync,ShowDialogModalAsync,ShowMessageBoxAsync,ShowMessageBoxModalAsync,Dialog.OpenAsync,Dialog.BeforeCloseAsyncand the returnedTask<object?>. See 6.1.0 API change examples. - Steps: replace the selection-based contract with controlled step state. Migrate
CurrentSteptoCurrent,InitialSteptoInitial,CurrentStepStatus/StepsItemStatustoStatus/StepsStatus,Style/ItemIndicatorTypetoType,LabelPlacementtoTitlePlacement, andProgressValue/IsShowItemProgressto nullablePercent; move item descriptions fromDescription/DescriptionTemplatetoContent/ContentTemplate, and handle clickable step changes withCurrentChangeRequestedinstead of relying on selection mutation. See 6.1.0 API change examples.
- Dialog and MessageBox: rebuild the static display and host lifecycle around async sessions. Custom code that referenced
- Theme
- Add resolver-based theme definition loading for built-in assets, application assets and explicitly enabled user theme directories using the XML theme definition format.
- Add
IThemeDefinitionResolver,IThemeManager.AvailableThemes,IThemeManager.CurrentTheme,ThemeCatalogDiagnostics,ThemeCatalogChangedandReloadThemesAsyncso applications can discover, switch and reload theme catalogs atomically. - Add
WithApplicationId,UseUserThemeDirectory()andUseUserThemeDirectory(string directory); the default user directory is the application data folder under{ApplicationId}/Themeswhen explicitly enabled. - Rebuild theme parsing, binding, catalog compilation, snapshot caching and token resource publication so root and scoped themes publish complete snapshots and preserve the previous state when parsing or compilation fails.
- Generate shared control token resource metadata for AXAML and isolate control token scopes so primary, link and text-button states follow the active theme consistently.
- Gallery Themes
- Add built-in theme definitions including Daybreak Blue, Polar Green, Sunset Orange, Golden Purple and Magenta, and expose them through a Theme Settings submenu with color swatches.
- Enable Gallery theme switching through the theme manager and enable user theme directory loading for the desktop Gallery.
- Window and Native
- Upgrade the Avalonia dependency to
12.1.0and add native Wayland support. - Stabilize Windows and Linux drawn decorations, including Windows 10 CSD frame rendering, dark-theme title bars, caption buttons, live resize, Wayland rounded CSD clipping and Linux client-frame visual layers.
- Separate complete-window masks, visible-frame bounds and shadow extents for Dialog and Drawer overlays so masks cover drawn title bars while placement remains inside the visible frame.
- Upgrade the Avalonia dependency to
- Dialog, Drawer and MessageBox
- Unify Dialog and MessageBox around one session, presenter and surface lifecycle, including UI dispatcher construction, async open/close, close veto, owner close and deterministic teardown.
- Improve overlay and window presenter sizing, drag, resize, maximize, mask routing, focus restoration, cancellation and reentrancy behavior.
- Reduce overlay dialog transition work.
- Navigation and Selection Controls
- Steps: add
OutlineDot, controlled navigation request events, deterministic step numbering/status/connector semantics, pointer-click wave behavior and new layout panels for horizontal, vertical and navigation layouts. - Cascader: support keyboard candidate navigation and stabilize expansion, filtering, selected option synchronization and popup state.
- Menu and NavMenu: add submenu hover intent, support popups from detached title bars, add lifecycle-safe node commands and fix pointer or layout-induced submenu transitions.
- Collapse and Expander: improve separator, accordion, content visibility and motion cleanup behavior.
- Steps: add
- Data Entry, Display and General Controls
- Add custom EmptyIndicator support for CascaderView, ListView and ListBox.
- Add TransferItemDecorator item count handling for list and tree transfer views.
- Fix AddOnDecoratedBox template-only add-on content, template-owned embedded TextBox inputs, embedded input padding, DatePicker and TimePicker input sizing, and NumericUpDown default input padding coverage.
- Remove the ColorPicker spectrum color name tooltip and stabilize ImagePreviewer search and theme resources.
- Fix Row/Splitter layout recovery and exact grid line wrapping.
- Feedback and Overlay Controls
- Notification: render plain notifications without type icons, align close button hover/pressed states, theme the progress gradient from primary colors, set the default auto-close duration to 4.5 seconds and reduce internal card spacing.
- Tour: correct target placement and animate the highlighted region.
- Icons, Gallery, Generator and Documentation
- Add new SVG icons for AI, application and social/service scenarios.
- Add a Windows rendering fallback for Gallery and refresh Gallery baselines, generated documentation and theme design documentation.
- Add generated theme schema and control token resource metadata used by XML theme binding, token publication and optional control packages.
- Update package metadata to
6.1.0.
6.0.8
2026-07-10
- Breaking Changes
- ImagePreviewer: replace
SourceUri,SourceUris, andFallbackSourceUriwithSource,Sources, andFallbackSourcebased onIImagePreviewSource. UseUriImagePreviewSourcefor URI, local file and Avalonia resource images, andStreamImagePreviewSourcefor lazy stream sources. See 6.0.8 API change examples. - Upload: replace the old
IsUploadDirectoryEnabled,IsShowUploadTrigger, andDefaultTaskListcomposition model with composableUploadTrigger,UploadDropZone, andFiles. See 6.0.8 API change examples.
- ImagePreviewer: replace
- Data Entry and Selection Controls
- Add OtpLineEdit for one-time password input, including
Texttwo-way binding,Length,InputMode,Formatter, masking, separators,Completed, fourStyleVariantsurfaces, Form integration andDataValidationErrorssupport. - Route Form validation through Avalonia
DataValidationErrorsand addValidateTrigger; validation now defaults to value changes and can be configured to run on blur. - Add or refine default two-way binding and data validation semantics for Select, Cascader, TreeSelect, ListView, CheckBoxGroup, RadioButtonGroup, Rate, DatePicker, TimePicker, Transfer, ColorPicker, Slider, Dialog, Tour and ImagePreviewer.
- Add overflow tooltip support for Select, ComboBox and Cascader through
IsShowOverflowTip,OverflowTipDelayandOverflowTipPlacement. - Add popup display anchor properties for DatePicker and TimePicker, and add range selection binding examples.
- Add OtpLineEdit for one-time password input, including
- Upload
- Refactor Upload into a file-state coordinator and add
UploadFileItem,UploadTrigger,UploadDropZone,UploadFileValueMode,AutoUpload,ListMaxHeight,ListScrollBarVisibility,SuccessAutoRemoveDelay,PendingTextandTriggerContent. - Improve file selection, directory selection, drag-and-drop upload, upload list scrolling, picture list preview, delete state and success auto-removal behavior.
- Refactor Upload into a file-state coordinator and add
- ImagePreviewer
- Add the
IImagePreviewSourceURI and lazy-stream source model withCoverIndex,MaxConcurrentLoadsandPreloadCount. - Fix fallback behavior so a single failed item is skipped and
FallbackSourceis used only when the whole source batch fails. - Improve group preview titles, cover loading, preview title-bar navigation icons and the 20-remote-image showcase.
- Add the
- DataGrid
- Add the column filter model with
Filters,SelectedFilterValues,FilterTextMemberPath,FilterValueMemberPath,FilterChildrenMemberPath,FilterPresenterMode,FilterSelectionModeandFilterApplyMode. - Improve filter selection, tree filters, selected filter value binding and Gallery examples.
- Add the column filter model with
- TabControl and TabStrip
- Add drag reordering for tabs with
IsTabReorderEnabled,TabActivationTrigger,TabReorderingandTabReordered. - Improve Chrome-style drag preview, scroll anchoring while dragging, selected indicator synchronization, no-icon layout for left/right placements and compact vertical spacing for default Line tabs.
- Add drag reordering for tabs with
- TreeView, Cascader and NavMenu
- Fix TreeView
ItemsSourcedrag-and-drop crashes and improve drag moves, selected item two-way binding, Form values and descendant bring-into-view behavior. - Fix Cascader selection synchronization and expand-state crashes, and add
SelectedOption/SelectedOptionstwo-way binding. - Add NavMenu popup frame support for improved popup hosting, placement and dismissal behavior.
- Fix TreeView
- Dialog, FloatButton and Base Visuals
- Add
BeforeCloseAsyncfor Dialog async close validation and unify close request handling. - Add command support to FloatButton and improve scrollbar-safe floating overlays and controlled
IsOpenbehavior. - Improve Avatar image clipping, layout-scaled control border rendering, Button border rendering and Space preset spacing.
- Add
- Gallery, Documentation and Build
- Flatten standard Showcase examples and add examples for tab reordering, Upload, ImagePreviewer, OtpLineEdit, selection binding and range selection.
- Update control design documents, Window title bar customization guidance, feature request issue guidelines, README package versions and Gallery banners.
- Remove unused localization imports, remove the Labs package and update project documentation.
6.0.7
2026-07-03
- DatePicker
- Add picker modes for date, week, month, quarter and year scenarios, with improved range panels and preferred input width calculation.
- Improve range selection state, hover rendering and CalendarView lifecycle handling.
- DataGrid
- Improve row details height estimation and expanded row virtualization stability.
- Fix crashes when header/title interactions happen with empty or null
ItemsSource. - Improve selection column initial state handling and frame corner radius behavior for bordered tables.
- Fix AutoComplete focus preservation inside DataGrid template cells.
- Select
- Fix Tags mode dynamic option creation so runtime tags do not mutate user
OptionsSource. - Improve Tags keyboard behavior so Enter commits the active dynamic candidate, Escape closes the popup, and Up/Down navigate candidates from the search input.
- Fix multi-select and Tags placeholders while IME preedit text is rendered.
- Fix Tags mode dynamic option creation so runtime tags do not mutate user
- ImagePreviewer
- Add local and remote image source loading through
ImageSourceUri. - Add preview window title resolution,
PreviewTitleIcon, loading skeletons and localized error states.
- Add local and remote image source loading through
- Gallery and Documentation
- Add reusable Gallery source-code display components, lazy code viewer loading, copyable code selections and generated snippet catalog support.
- Add selectable Gallery API and design token table text.
- Add LLMS documentation generation and refresh control documentation coverage.
- Add organization documentation pages and update README package examples to
6.0.7.
- Splash and Window
- Add Splash control and service with owner-window handling, version tags in Gallery and improved show behavior.
- Add Windows window chrome management with DWM shadow handling and improve resize artifact behavior.
- Controls
- Add Extras and Labs modules for supplemental controls.
- Add Splitter line styling APIs and Gallery showcase coverage.
- Improve NumberUpDown handle customization and mode behavior.
- Improve Button shadow rendering, SplitButton resize layout stability, Drawer right-click behavior, Message and Notification feedback layering, popup shadow handling and separator compact spacing.
- Improve Form validator compatibility and add
ExtraExtraExtraLargebreakpoint layout handling.
- Localization and Build
- Update language provider generation and add Chinese language support for GalleryBase.
- Add AppImage launcher validation support and update release workflows for Gallery and NuGet packages.
6.0.6
2026-06-24
- Compatibility Notes
- Several size-aware controls now use the customizable size model, allowing
Customsize behavior in addition to built-in size types. Projects that directly depend on old size-type contracts should verify source compatibility.
- Several size-aware controls now use the customizable size model, allowing
- Added
- Add customizable size support across Button family, DropdownButton, NumericUpDown, Mentions, Select, TreeSelect, ToggleSwitch, SpinIndicator and related size-aware controls.
- Add configurable Button icon placement.
- Add Slider desktop control with documentation and Gallery coverage.
- Add
Col.Flexsupport and improve Row/Grid responsive layout behavior. - Add editable ComboBox filtering, candidate keyboard navigation, Enter/Escape behavior and empty-result feedback.
- Add NavMenu keyboard navigation, active item feedback and inline collapsed mode.
- Add initial theme algorithm configuration so applications can render the first frame with dark theme.
- Add bindable TreeView/Cascader node or option support for binding-oriented data scenarios.
- Add reusable GalleryBase toolkit package and integrate Gallery shell/routing foundations.
- Changed
- Improve custom size layout and Gallery showcases for Button, SplitButton, LineEdit, SearchEdit, DatePicker, TimePicker, ColorPicker, Select, TreeSelect and other controls.
- Improve Form validation flow so submit-oriented validation does not show errors too early.
- Improve Collapse accordion state handling, padding calculation and content visibility behavior.
- Improve Expander indicator spacing, content visibility and layout behavior.
- Improve Descriptions, Segmented, Steps, ProgressBar, Skeleton, Card, AvatarGroup, Transfer, Upload, Pagination and Breadcrumb implementation structure and correctness.
- Improve SpinIndicator animation handling, default alignment and customizable size rendering.
- Improve RibbonBadge positioning and adorner visibility behavior.
- Improve CompactSpace internal collaboration and layout handling.
- Upgrade Avalonia dependency from
12.0.4to12.0.5.
- Fixed
- Fix DatePicker and TimePicker preferred input width calculation.
- Fix ListBox/ListView filtered item state handling.
- Fix NavMenu selection preservation in inline collapsed mode.
- Fix Gallery AppImage installer asset paths.
- Fix Gallery macOS DMG workflow by avoiding unused Homebrew taps.
- Fix Breadcrumb generated item state cleanup and
IBreadcrumbItemData.Contentmapping.
- Documentation
- Add or complete control documentation for LineEdit, SearchEdit, ListView, NumericUpDown, Select, Slider, ToggleSwitch, TreeSelect, Descriptions, Expander, Segmented, ProgressBar, Card, Cascader, Form and other desktop controls.
- Add control optimization skill documentation, including API layout, file splitting, lifecycle and root-cause optimization rules.
- Update Gallery showcase examples for custom size, keyboard navigation and newly documented control scenarios.
6.0.5
2026-06-19
- Breaking Changes
- Responsive layout APIs are now unified under
AtomUI.Controls.Shared.MediaQuery. - Add shared
ResponsiveInt,ResponsiveDouble,ResponsiveGutter, andResponsiveValueMapmodels. - Add the
xxxlbreakpoint and correspondingScreenXXXLtoken support. - Grid, Descriptions, and Masonry now share the same mobile-first responsive parsing and fallback rules.
- Custom code depending on old per-control responsive parsing, especially
DescriptionsMediaBreakInfo, should migrate to the shared responsive value types.
- Responsive layout APIs are now unified under
- Gallery
- Redesign the Gallery shell and showcase page structure.
- Add sticky showcase tabs, deferred showcase loading, scenario diagnostics, and snapshot normalization.
- Add localized API and Design Token tables for most migrated showcase pages.
- Align Browser Gallery routing and navigation with shared desktop Gallery components.
- Add Gallery version display and Community Telegram section.
- New Controls and Layout
- Add BorderBeam with geometry, color stop, token, Gallery, documentation, and tests.
- Add Masonry with responsive columns, gutter support, loading skeleton and image demos, Gallery coverage, and layout tests.
- Add shared responsive layout support for Grid, Descriptions, and Masonry.
- Desktop Controls
- Button: add
Color,Variant, andCustomBackgroundsupport, including gradient backgrounds and updated Gallery/API documentation. - NumericUpDown: add inline spinner mode and improve handle styling.
- ButtonSpinner: improve disabled state handling and add style variant support.
- NavMenu: add
ClearSelection,IsItemBackgroundEnabled, improved selection coordination, inline spacing, and background behavior. - TextArea: improve resize behavior.
- GroupBox: fix border visibility when background is transparent.
- Pagination: improve page size validation and custom page size options.
- Dialog and Menu: prevent dialog reentrancy during close/open flows and improve menu close behavior.
- HyperLinkButton: make icon color follow foreground.
- Button: add
- NativeAOT, Diagnostics, and DataGrid
- Harden generated data member accessors for NativeAOT scenarios.
- Add AOT data member path analyzer and compiler diagnostics guidelines.
- Fix DataGrid sorting path resolution and add sorting regression tests.
- Fix empty Gallery design token table state.
- Implement scoped resource and theme hosts for non-visual
AvaloniaObjectusages to prevent dynamic resource retention leaks.
- Native Window and Platform Stability
- Improve Linux window initialization, scaling, frame extents, window chrome management, popup support, and title bar menu dismissal.
- Improve macOS title bar logo visibility.
- Improve Windows Win32 composition options for performance and stability.
- Correct popup, dialog, title bar, and Gallery text issues.
- Build and Release
- Restore desktop diagnostics and stable generated source line endings.
- Improve NativeAOT Gallery publishing workflow and validation.
- Update
PublishToLocal.ps1version extraction to useAtomUIVersion. - Update package metadata for AtomUI 6.0 release positioning.