Commit Graph
2760 Commits
Author SHA1 Message Date
chinboy 77d5a39f98 feat(DropdownButton,SplitButton): port DropdownButton and SplitButton from release/5.0 with Avalonia 12 adaptation 2026-04-30 21:03:29 +08:00
chinboy 3fb8c2abab fix(Menu): enable CheckBox and RadioButton themes and keep menu open on toggle click 2026-04-30 19:54:31 +08:00
chinboy 51b40bef40 fix(Menu,Popup): fix popup placement and migrate gallery to AtomUI Menu
- Fix Popup.HandleCustomPlacement early return when PlacementTarget is
  null by falling back to Parent, enabling custom placement for Menu
- Adjust PopupUtils primaryMargin to use marginToAnchor directly when
  set, instead of Max with shadow offset
- Migrate WorkspaceWindow from native Menu/MenuItem to atom:Menu
- Share ShouldUseOverlayLayer property between Menu and Popup
- Enable overlay layer for Menu and configure per-mode MarginToAnchor
2026-04-30 19:05:09 +08:00
chinboy 9795625070 feat(Menu): port Menu infrastructure from release/5.0 with Avalonia 12 adaptation 2026-04-30 17:04:00 +08:00
chinboy 7277f14b86 gallery: port gallery framework skeleton from release/5.0 with Avalonia 12 adaptation 2026-04-30 14:58:55 +08:00
chinboy ade1349b5f refactor(NavMenu): align interaction handler and menu item with Avalonia 12 Menu patterns 2026-04-30 14:34:16 +08:00
chinboy 7cf36fde14 feat(Popup): implement IsPointAtCenter to align arrow with anchor center 2026-04-30 14:01:22 +08:00
chinboy dad8deadcb fix(Flyout): enable MarginToAnchor and custom placement for Flyout popup
Add missing MarginToAnchor binding in Flyout.CreatePopup, fix theme to
use FlyoutHostTokenResource instead of PopupHostTokenResource, and
intercept Placement changes in Popup to redirect through custom
placement logic when set externally by PopupFlyoutBase.
2026-04-30 13:16:43 +08:00
chinboy 90956c5dc6 refactor(Popup): extract shared motion logic and optimize close animation re-entry
Extract duplicated ConfigureMotion into PopupUtils.CreateMotionForPlacement, replace
Flyout's 16-branch arrow flip with ArrowPositionUtils.FlipArrowPosition, and add
CancelCloseAnimation to Popup so FlyoutStateHelper can cancel in-flight close
animations on fast hover re-entry instead of doing destructive Hide+ShowAt.
2026-04-30 11:48:29 +08:00
chinboy 3fdfd5af89 feat(Flyout): add open/close motion and fix close animation being interrupted by HideCore cleanup 2026-04-30 11:21:07 +08:00
chinboy 6c9f47c87d feat(Flyout): add FlyoutHost with Hover, Click and Focus trigger modes
Implement FlyoutHost control and FlyoutStateHelper supporting three trigger types,
with proper overlay/windowed mode handling. Add subtle stroke to ArrowIndicator
for arrow tip visibility beyond shadow coverage. Fix Popup crash by setting
CustomPopupPlacementCallback before PlacementMode.Custom assignment.
2026-04-30 10:43:05 +08:00
chinboy 0f655b384e refactor(Popup): unify shadow management with per-mode PopupRootShadow and OverlayHostShadow tokens 2026-04-29 21:39:04 +08:00
chinboy 36add2c789 feat(ToolTip): add IsCustomShowAndHide to support externally controlled tooltip visibility 2026-04-29 18:59:25 +08:00
chinboy cbf63df1a7 refactor(Popup): move custom placement logic from ToolTip into Popup 2026-04-29 18:52:12 +08:00
chinboy beb2c404ae refactor(ListBox): migrate ListBox module to Avalonia 12 2026-04-29 18:04:50 +08:00
chinboy 10a9d79132 refactor(AddOnDecoratedBox): migrate AddOnDecoratedBox module to Avalonia 12 2026-04-29 17:54:06 +08:00
chinboy 46aa408576 refactor(Input): migrate Input module to Avalonia 12 2026-04-29 17:20:55 +08:00
chinboy 9309739f28 refactor(Card): migrate Card module to Avalonia 12 2026-04-29 17:14:45 +08:00
chinboy bfa69db50b refactor(Calendar): migrate Calendar module to Avalonia 12 2026-04-29 17:09:07 +08:00
chinboy 2a9d1243e0 refactor(Expander): migrate Expander module to Avalonia 12 2026-04-29 17:05:02 +08:00
chinboy 03ec864f22 refactor(Collapse): migrate Collapse module to Avalonia 12 2026-04-29 17:02:11 +08:00
chinboy 1644972a4f refactor(FlexPanel): migrate FlexPanel module to Avalonia 12 2026-04-29 16:59:19 +08:00
chinboy 7eca9fc002 refactor(OptionButtonGroup): migrate OptionButtonGroup module to Avalonia 12 2026-04-29 16:56:17 +08:00
chinboy 6766149da3 refactor(Statistic): migrate Statistic module to Avalonia 12 2026-04-29 16:48:13 +08:00
chinboy ea0eb7e654 refactor(Watermark): migrate Watermark module to Avalonia 12 2026-04-29 16:45:22 +08:00
chinboy 89465966dd refactor(Steps): migrate Steps module to Avalonia 12 2026-04-29 16:39:39 +08:00
chinboy 3f3ce31d82 refactor(Spin): migrate Spin module to Avalonia 12 2026-04-29 16:35:09 +08:00
chinboy b409909124 refactor(GroupBox,Separator): migrate GroupBox and Separator modules to Avalonia 12 2026-04-29 16:28:10 +08:00
chinboy 588c0a8240 refactor(Empty): migrate Empty module to Avalonia 12 2026-04-29 16:23:01 +08:00
chinboy 96145e0060 refactor(Carousel): migrate Carousel module to Avalonia 12 2026-04-29 16:17:08 +08:00
chinboy 97e84cfea9 chore(Generator): register Tag and Timeline token types 2026-04-29 15:54:24 +08:00
chinboy 0a749494ed refactor(Tag): migrate Tag module to Avalonia 12 2026-04-29 15:46:49 +08:00
chinboy 6325eaedc2 refactor(Switch): migrate Switch module to Avalonia 12 2026-04-29 15:45:17 +08:00
chinboy ef97d2a5f1 refactor(Splitter,Buttons): migrate Splitter and Button controls to Avalonia 12 2026-04-29 15:40:12 +08:00
chinboy c41accde5a refactor(Segmented): migrate Segmented module to Avalonia 12 2026-04-29 15:03:01 +08:00
chinboy ab23e88f2e refactor(Result): migrate Result module to Avalonia 12 2026-04-29 14:57:18 +08:00
chinboy 6290a52f46 refactor(Rate): migrate Rate module to Avalonia 12 2026-04-29 14:47:41 +08:00
chinboy eff04b0675 refactor(RadioButton): migrate RadioButton module to Avalonia 12 2026-04-29 14:32:02 +08:00
chinboy c5593a836a refactor(ProgressBar): migrate ProgressBar module to Avalonia 12 2026-04-29 14:25:44 +08:00
chinboy 9af427fc41 refactor(MarqueeLabel): migrate MarqueeLabel module to Avalonia 12 2026-04-29 14:18:13 +08:00
chinboy 8b0f93c534 refactor(CheckBox): migrate CheckBox module to Avalonia 12 2026-04-29 14:12:46 +08:00
chinboy 525a8f570a refactor(Breadcrumb): migrate Breadcrumb module to Avalonia 12 2026-04-29 13:57:12 +08:00
chinboy a04a8e7a7c refactor(AdornerLayer): migrate AdornerLayer module to Avalonia 12 and update dependency path with axaml-aware analysis 2026-04-29 13:39:58 +08:00
chinboy 42fb2b04ce add migration path doc 2026-04-29 13:05:16 +08:00
chinboy 144d5f123f fix(Avalonia12): add MotionAwareClose/Open removal rule (Category 52) to migration skill
In AtomUI 6.0, Popup.MotionAwareClose and Popup.MotionAwareOpen are removed.
Replace with direct Popup.IsOpen assignment.
2026-04-29 12:47:43 +08:00
chinboy 5420c04ed6 refactor(ScrollViewer): migrate ScrollViewer module to Avalonia 12 and add base-class scanning rule to migration skill 2026-04-29 10:51:05 +08:00
chinboy 6eab83e8fe refactor(TextBlock): migrate TextBlock module to Avalonia 12 and add migration tracking doc 2026-04-29 10:18:54 +08:00
chinboy 29475a640d feat(NavMenu): implement NavMenu and NavMenuItem controls with token system and TextBlock refinements 2026-04-29 10:02:07 +08:00
chinboy ff9a6b41dd fix(Avalonia12): correct [PrivateApi] guidance, add ReflectionExtensions catalog and trigger conditions to migration skill
- Correct IInputRoot guidance: [PrivateApi] public interfaces are still usable, do NOT replace with TopLevel
- Add ReflectionExtensions catalog (18 classes, 40+ methods) with quick lookup by Avalonia type
- Add fundamental rules: prefer existing extensions, distinguish [PrivateApi] from truly internal
- Expand trigger conditions to support Chinese/English upgrade/refactor/migrate keywords
- Update Categories 8, 31, 34, 49 and Prohibited section with corrected IInputRoot handling
2026-04-29 09:58:26 +08:00
chinboy 7712789e8c fix(Avalonia12): correct factual errors and expand migration skill to 51 categories
Verified all API changes against Avalonia 12 source code. Fixed 5 factual errors
(PlacementMode not removed, VisualRoot is protected internal, MathUtilities.Clamp
still exists, IInputRoot is [PrivateApi] not removed, BindingPlugins is internal
not removed). Added 15 new breaking change categories including internalized APIs,
renamed members, window decoration redesign, dispatcher changes, and obsolete
member removals. Updated all 5 reference files with corrected information.
2026-04-29 09:15:39 +08:00