26 Commits
Author SHA1 Message Date
chinboy 21903f7a30 fix(Generator): 统一语义部件 Since 为三段式发布版本并校验格式 2026-09-17 11:13:21 +08:00
chinboy a9f3335d31 feat(Semantic): add Calendar parts and align Ant Design demo 2026-09-17 10:57:53 +08:00
chinboy 26f2826692 feat(Desktop): migrate localization catalogs 2026-08-06 09:51:01 +08:00
chinboy f214c3b148 feat(Calendar): enhance header customization with new converters and ShowWeek functionality 2026-08-04 07:18:07 +08:00
chinboy 0bc3f08e66 feat: add LunarCalendar support and iOS development guide 2026-08-03 22:21:27 +08:00
chinboy 9d26f10fa0 feat(InfoPicker): introduce InfoPickerTextBox and NumericUpDownSpinner controls with associated themes 2026-08-03 10:29:33 +08:00
chinboy 809e77e44c style: remove unused using directives 2026-07-31 23:45:25 +08:00
chinboy a343c8c246 refactor(Calendar): clean up code formatting and improve documentation 2026-07-31 17:00:28 +08:00
chinboy c8432aa042 feat(Calendar): wire roving focus to real input focus
CalendarView and CalendarViewCell are focusable; entering the panel focuses the
selected (or first available) cell, arrow keys move OS focus to the target cell,
and disabled cells are non-focusable. Adds focus-entry and arrow-key end-to-end tests.
2026-07-30 21:56:57 +08:00
chinboy 837ffae5a0 feat(Calendar): implement Fullscreen/Mini visual density
CalendarView carries fullscreen/mini/date/month/show-week pseudo-classes; the
view theme consumes FullPanelBg (fullscreen panel bg) and MiniContentHeight
(mini content cap). All six tokens now consumed. Adds a pseudo-class toggle test.
2026-07-30 21:53:17 +08:00
chinboy 7921999553 fix(Calendar): push ViewMode imperatively and feed header context to custom template
Mode changes now swap the panel grid (ViewMode was a non-notifying CLR property so
the XAML binding never refreshed) and custom HeaderTemplate receives a
CalendarHeaderContext as DataContext so its commands can commit Value/Mode.
Adds an end-to-end runtime mode-switch test (42->12->42).
2026-07-30 21:49:37 +08:00
chinboy 39934fe134 test(Calendar): assert bounded container pool and default visual baseline 2026-07-30 20:57:47 +08:00
chinboy ee03ec17aa feat(Calendar): handle template lifecycle and culture changes
Calendar unbinds old CalendarView/header handlers on template reapply, subscribes
to language-variant changes on attach and unsubscribes on detach, and pushes the
resolved culture to CalendarView/header (rebuilds month names, weekday titles,
week rules). RTL affects layout only, not date math. 17 render/view tests pass.
2026-07-30 20:38:30 +08:00
chinboy 36d4879719 feat(Calendar): add roving focus, keyboard navigation, and automation peers
CalendarView computes focus targets (date +/-1 day / +/-1 week, month +/-1 / +/-4),
skips non-focusable cells, stays within the realized grid, and activates on
Enter/Space. Adds Table/GridItem+SelectionItem automation peers. 107 Calendar
tests pass.
2026-07-30 20:31:37 +08:00
chinboy 226d6eae06 feat(Calendar): add default CalendarHeader with year/month select and mode switch
CalendarHeader computes year/month options per spec (20-year window, ValidRange
boundary trimming, month clamping), drives ComboBox dropdowns and a Segmented mode
switch, and reports Year/Month/Mode intents. Calendar hosts it as PART_DefaultHeader,
hidden when a custom HeaderTemplate is set. 7 option-logic + 6 render tests pass.
2026-07-30 20:26:45 +08:00
chinboy 7082fc8843 feat(Calendar): add control themes and verify end-to-end rendering
Add CalendarTheme/CalendarViewTheme/CalendarViewCellTheme (ControlTheme axaml +
codebehind) with stable template parts (PART_Root/PART_HeaderPresenter/
PART_CalendarView/PART_Body/PART_WeekHeader/PART_CellHost/PART_Item/PART_CellInner/
PART_Value/PART_ItemContent) and pseudo-classes. Calendar now renders month/year/
show-week grids end-to-end (4 render tests pass).
2026-07-30 20:15:59 +08:00
chinboy 3a11db988e feat(Calendar): add CalendarView panel logic with bounded cell-model rebuild
CalendarView owns input state, RebuildCells (date/week/month via builder),
bounded _cellModels list, FocusedValue, and CellSelected intent event.
Rebuild triggers only on model-invalidating properties.
2026-07-30 19:52:11 +08:00
chinboy f1bf14da2f feat(Calendar): add typed header context with change-value/mode commands
CalendarHeaderContext exposes Value/Mode plus ICommands. ChangeValueCommand
commits as Customize source; both commands validate parameter type in
CanExecute. Adds internal CalendarRelayCommand helper.
2026-07-30 19:48:12 +08:00
chinboy 4bb61f60f3 feat(Calendar): implement control state transitions with fixed event ordering
Nine StyledProperties per spec, CLR events (ValueChanged/Selected/PanelChanged),
CommitUserSelection with PanelChanged->ValueChanged->Selected ordering, and
CommitModeChange. Programmatic Value/Mode changes do not raise user events.
2026-07-30 19:44:51 +08:00
chinboy 0051d2d757 feat(Calendar): add public value types, enums, and event args
New public CalendarDateRange (end<start throws), CalendarMode {Month,Year},
CalendarSelectSource, CalendarCellType, CalendarCellContext, and the three
event args live in the top-level AtomUI.Desktop.Controls namespace. Rename
DatePicker test aliases to Picker* to avoid collision with these new types.
2026-07-30 19:41:45 +08:00
chinboy 6565762c6a Revert "feat(Calendar): add public value types, enums, and event args"
This reverts commit 8fb07c83541428d1bf3b546a05a3d9497a2abaa1.
2026-07-30 19:27:38 +08:00
chinboy ac2954d537 feat(Calendar): add public value types, enums, and event args 2026-07-30 19:25:58 +08:00
chinboy bb86b72368 test(Calendar): cover cross-year grid, null range, and disabled-date exception propagation 2026-07-30 19:21:19 +08:00
chinboy aba87abd8b feat(Calendar): implement 12-cell month grid builder with day truncation 2026-07-30 19:17:33 +08:00
chinboy 8180a4d665 feat(Calendar): add week-number cell builder 2026-07-30 19:10:11 +08:00
chinboy 7e46cdfcb8 feat(Calendar): implement 42-cell date grid builder with disabled composition 2026-07-30 19:08:55 +08:00