Commit Graph
2797 Commits
Author SHA1 Message Date
chinboy 05cbf343fc feat(DropdownButton,ToggleIconButton): add ShouldUseOverlayPopup property and remove ThemeConstants
- Add ShouldUseOverlayPopup property to DropdownButton for configurable popup layer
- Bind ShouldUseOverlayPopup to MenuFlyout.ShouldUseOverlayLayerProperty
- Remove ToggleIconButtonThemeConstants and use string literals for template part names
2026-05-02 15:14:03 +08:00
chinboy 71cd547b63 gallery(DropdownButton): port DropdownButtonShowCase from release/5.0 with Avalonia 12 adaptation
- Port DropdownButtonShowCase with all examples (Basic, Button Types, Arrow, Placement)
- Change EntityKey ID to const string ID for Avalonia 12 pattern
- Add compiled bindings support (x:DataType, x:CompileBindings)
- Register DropdownButton in Gallery navigation and localization
2026-05-02 15:13:33 +08:00
chinboy 4b1bfdb75a feat(ComboBox): add ShouldUseOverlayPopup property and optimize code quality
- Add ShouldUseOverlayPopup property for configurable popup layer usage
- Remove redundant UpdateSelectionFromPointerEvent method
- Fix ContentRightAddOnTemplate binding error
- Remove unused _addOnDecoratedBox field
- Fix comment typo and add null check optimization
- Update ComboBoxItem to use UpdateSelectionFromEvent directly
- Register ComboBox in Gallery navigation and theme provider
2026-05-02 14:51:35 +08:00
chinboy 88a59f265d feat(ComboBox): migrate ComboBox control and ShowCase to Avalonia 12
- Add ComboBox control with Avalonia 12 compatibility
- Implement ShouldUseOverlayPopup property for popup layer configuration
- Fix dropdown closing behavior with IsLightDismissEnabled and SelectedItemProperty handler
- Add ComboBoxHandle, ComboBoxItem, and ComboBoxToken
- Port ComboBoxShowCase from release/5.0 with ReactiveUI pattern
- Register ComboBox in Gallery navigation and localization
2026-05-02 14:51:23 +08:00
chinboy 42c1b11a68 gallery(Separator): port SeparatorShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 13:24:12 +08:00
chinboy 0873583073 gallery(Rate): port RateShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 13:14:39 +08:00
chinboy b4821fcd74 gallery(RadioButton): port RadioButtonShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 13:03:09 +08:00
chinboy fee920269f docs(migrate-to-avalonia12): add rule to prevent redefining existing types in ShowCase migration 2026-05-02 12:52:47 +08:00
chinboy b88c061317 docs(migrate-to-avalonia12): add behavior preservation rules for control and ShowCase migration 2026-05-02 12:40:01 +08:00
chinboy bd963edde0 gallery(CheckBox): port CheckBoxShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 12:36:07 +08:00
chinboy ddc360db8d refactor(Card,Carousel): remove ThemeConstants and use string literals for template part names 2026-05-02 11:50:31 +08:00
chinboy 59c68ad310 gallery(Collapse): port CollapseShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 11:42:21 +08:00
chinboy cb07c1bb16 refactor(Card,Skeleton): migrate to Avalonia 12 dispatcher API and make AnimatableReflectionExtensions public 2026-05-02 11:34:17 +08:00
chinboy fdb7788e20 gallery(Card): port CardShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 11:32:02 +08:00
chinboy acb254375d feat(Card,Skeleton): port Card and Skeleton controls with Avalonia 12 migration and SkeletonShowCase 2026-05-02 10:36:20 +08:00
chinboy d7de2a2d18 gallery(Calendar): port CalendarShowCase from release/5.0 and fix selection state bug
Port CalendarShowCase to release/6.0 with Avalonia 12 adaptation. Fix critical bug where clicking an already-selected date caused the background to change from blue (selected) to gray (hover) due to IsSelected being incorrectly set to false during mouse interactions.

Changes:
- Add CalendarShowCase with basic usage example
- Register CalendarShowCase in Gallery navigation and view mapping
- Fix Calendar.UnHighlightDays to check SelectedDates before clearing IsSelected
- Fix CalendarItem.SetButtonState to use local variable instead of |= operator
- Enable Calendar theme in DesktopControlThemesProvider
- Reorder BaseCalendarDayButtonTheme styles for correct specificity
2026-05-02 10:05:23 +08:00
chinboy b3811e6524 chore: update generated files and enable Avatar/Carousel themes 2026-05-02 08:59:59 +08:00
chinboy ce310d63b1 feat(Avatar): port Avatar control and AvatarShowCase from release/5.0 with optimizations 2026-05-02 08:51:22 +08:00
chinboy f2b2899c24 gallery(Carousel): port CarouselShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 08:25:01 +08:00
chinboy 106dc7cdb3 refactor(ButtonSpinner): remove ButtonSpinnerThemeConstants and use direct string literals 2026-05-02 08:19:32 +08:00
chinboy 9a94324389 gallery(Alert): port AlertShowCase from release/5.0 with Avalonia 12 adaptation 2026-05-02 08:08:57 +08:00
chinboy a01337f0ba feat(Alert): port Alert control and add SpinShowCase from release/5.0 2026-05-01 23:24:41 +08:00
chinboy 28748b8849 chore: update generated files and add supporting components
- Add SizeTypeAwareIconPresenter primitive component
- Add TopLevelReflectionExtensions for internal API access
- Update DesktopControlThemesProvider with new control themes
- Update generated files (LanguageResourceConst, TokenResourceConst, ControlTokenTypePool)
- Add Avalonia generated name files for FlexPanelShowCase
- Minor fixes in Input controls (SearchEditDecoratedBox, SearchEditPanel, TextAreaDecoratedBox)
- Update AddOnDecoratedBox and PrimitiveThemes
- Update migrate-to-avalonia12 skill documentation
2026-05-01 23:00:48 +08:00
chinboy b9b8082480 feat(NumericUpDown): port NumericUpDown control from release/5.0
- Port NumericUpDown control with full functionality
- Add NumericUpDownToken for design token support
- Include theme files and constants
- Support string mode, keyboard/mouse wheel control, and clear button
- Avalonia 12 compatible implementation
- Build verified with no errors
2026-05-01 22:44:37 +08:00
chinboy dc8776517f feat(ButtonSpinner): port ButtonSpinner control and showcase from release/5.0
- Port ButtonSpinner control with all components (DecoratedBox, Handle, ContentPanel)
- Port ButtonSpinnerShowCase with comprehensive demos
- Add ButtonSpinnerToken for design token support
- Include all theme files and pseudo class definitions
- Avalonia 12 compatible implementation
2026-05-01 22:42:41 +08:00
chinboy 1cd5954992 gallery(FlexPanel): port FlexPanelShowCase from release/5.0 with Avalonia 12 adaptation
- Port FlexPanelViewModel and FlexPanelShowCase from release/5.0
- Replace atom:Slider with Avalonia native Slider (AtomUI 6.0 has no Slider control)
- Register FlexPanelShowCase in Gallery navigation and view mapping
- Add language resources for FlexPanel in both en_US and zh_CN
- All Avalonia 12 breaking changes verified, no issues found
2026-05-01 22:41:22 +08:00
chinboy 0b502503de fix(PopupConfirm): enable light dismiss and overlay layer support
- Enable IsLightDismissEnabled for click-outside dismissal
- Add ShouldUseOverlayLayer property binding from FlyoutHost
- Set default ShouldUseOverlayLayer to True in theme
- Remove PopupConfirmContainerThemeConstants, use string literals
- Update showcase to disable overlay for demo clarity
2026-05-01 19:45:38 +08:00
chinboy 6c0ad7a9be feat(PopupConfirm): port PopupConfirm control and showcase from release/5.0 2026-05-01 09:31:04 +08:00
chinboy c03fbd0046 chore(Notification): enable Notification theme in DesktopControlThemesProvider 2026-05-01 09:09:12 +08:00
chinboy 63f90354ab gallery(Notification): register NotificationShowCase and fix Avalonia 12 animation timing 2026-05-01 09:02:11 +08:00
chinboy 4c6e81ea3a feat(Notification): port Notification control from release/5.0 with Avalonia 12 adaptation 2026-05-01 09:01:52 +08:00
chinboy 559c452e75 gallery(Message): port MessageShowCase from release/5.0 and fix animation flicker
- Add MessageShowCase with 4 examples: basic, types, loading, callback
- Register MessageShowCase in gallery navigation and language resources
- Fix MessageCard animation flicker by setting initial opacity before layout
- Use DispatcherPriority.Loaded to ensure animation starts after layout completes
2026-05-01 08:49:41 +08:00
chinboy 1102f69901 fix(Flyout,SplitButton,MenuFlyout): adapt flyout controls to Avalonia 12 API changes 2026-05-01 08:25:57 +08:00
chinboy 046f2441b6 feat(Message,Breadcrumb): port Message control and Breadcrumb showcase from release/5.0 2026-05-01 08:23:32 +08:00
chinboy a640ddb397 gallery(Splitter,SplitButton): port Splitter and SplitButton showcases from release/5.0 2026-05-01 07:48:18 +08:00
chinboy d4247c9c72 gallery(Icon,Button): port Icon and Button showcases and enable OptionButtonGroup theme 2026-05-01 00:00:30 +08:00
chinboy 43d7237228 feat(TabControl): port TabControl from release/5.0 with Avalonia 12 adaptation
- Migrate selection model to Avalonia 12 item-side triggering pattern
- Remove inaccessible IPopupHostProvider and RawPointerEventArgs usage
- Fix PresetPalettes light/dark palette generation being swapped
- Enable TabControl themes and register gallery showcases
2026-04-30 22:27:06 +08:00
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