992 Commits

Author SHA1 Message Date
chinboy 74a5e2ee47 release: prepare AtomUI 6.2.3 2026-10-05 13:47:32 +08:00
chinboy d45f8cde8a merge: 整合 release/6.0 输入修复与水印布局优化 2026-10-05 11:34:58 +08:00
chinboy 25b2f4aada fix(Controls): 修复水印资源生命周期与放大布局及输入边界 2026-10-05 11:28:21 +08:00
chinboy 9a68f4c5b6 style: enforce braces for control-flow bodies 2026-10-05 11:20:46 +08:00
chinboy f8e770d607 fix(DateControls): align panel visuals, picker ranges and showcases 2026-10-05 10:47:07 +08:00
chinboy 55b5b97807 fix(DatePicker): align range panel anchor and endpoint highlights 2026-10-04 15:07:13 +08:00
chinboy a307d79e06 fix(CandidateList): remove inherited dropdown dividers 2026-10-04 14:31:27 +08:00
chinboy 256afe5ec3 feat(DateViewer)!: share date panels across Calendar and DatePicker 2026-10-04 14:31:00 +08:00
chinboy 12e4a1a8a9 fix(Input): 修复跨窗口输入串扰与窗口关闭时的生命周期竞态 2026-10-04 13:30:04 +08:00
chinboy 405198f48f docs(Agents): 强制功能与修复优先使用临时测试 2026-09-30 18:39:26 +08:00
chinboy 62707b3ad6 fix(GalleryBase): 修复 ShowCase 延迟物化状态并改进占位视觉 2026-09-30 18:13:49 +08:00
chinboy 03d1cde645 merge: 合并测试套件清理与启动优化 2026-09-30 15:32:36 +08:00
chinboy 083f1ea8f8 perf(Generator): 缓存生成注册描述符以加快测试启动 2026-09-30 15:10:20 +08:00
chinboy 3f1bbc6b6d release: prepare AtomUI 6.2.2 2026-09-30 13:27:02 +08:00
chinboy 2a26c778ce build(Packaging): 禁止用 ApiCompat suppression 隐藏破坏性 API 2026-09-30 12:18:00 +08:00
chinboy cb14dadbb8 fix(ShowCasePanel): 修复延迟加载空卡片无限重投 2026-09-30 11:44:21 +08:00
chinboy d5438fe589 docs(Agents): 规范 Bug 修复测试价值与生命周期 2026-09-30 10:00:42 +08:00
chinboy 8e3b0fa50e docs(Agents): 全量回归仅在明确要求或发版时运行 2026-09-30 07:30:10 +08:00
chinboy f7022f6fe8 perf(AOT): 精简 Token 描述符、放宽桌面工具链门禁并改用基线体积标准 2026-09-30 07:29:48 +08:00
chinboy 5e0623b646 perf(AOT): 优化反射裁剪、TypeMap 与验证流程 2026-09-29 19:51:09 +08:00
chinboy 38e0eb8d80 docs(deps): 记录 Avalonia 12.1.3 合并验证结果 2026-09-29 09:27:13 +08:00
chinboy e862e58034 chore(deps): 升级 Avalonia 至 12.1.3 并精简反射适配 2026-09-29 08:31:33 +08:00
chinboy 6664466c1a fix(Steps): 修复自然尺寸测量并保留连接线 2026-09-28 17:41:03 +08:00
chinboy d39bf271b7 chore(Docs): 移除已迁出的 LLMs 生成器及全部 LLMS 相关内容 2026-09-28 17:24:10 +08:00
chinboy c6f6ed8da1 refactor(AOT)!: 使用标准平台声明替代主题路径配置 2026-09-28 15:48:42 +08:00
chinboy 6b05ff3bd9 refactor(AOT)!: 清除旧主题发现契约和无用依赖分析代码 2026-09-28 12:06:44 +08:00
chinboy 3cc6cd4cbb refactor(AOT)!: 使用 TypeMap 替换旧注册与裁剪管线 2026-09-28 11:12:49 +08:00
chinboy 7be6cf2afb fix(RibbonBadge): 修复折角绘制坐标模型 2026-09-27 13:56:39 +08:00
chinboy 0218f665d2 perf(Dialog,Motion): 将 Overlay 动效迁移至合成器并统一 Zoom 状态 2026-09-27 09:44:30 +08:00
chinboy 45c361e546 feat(DataGrid): 增加分页 Extra Content 与页大小选择器 2026-09-26 12:12:23 +08:00
chinboy 0efaf9f2de fix(WindowTitleBar): 统一 AddOn 与 caption band 几何并抽取 CaptionButtonFrame 2026-09-26 09:43:46 +08:00
chinboy 01d56ad46a fix(ShowCaseItem): 放大舞台按内容本性铺满或居中并移除捕获宽度机制 2026-09-25 17:37:29 +08:00
chinboy b3a60a23ab feat(ShowCaseItem): 新增放大 Overlay 功能并支持示例级退出 2026-09-25 10:15:51 +08:00
chinboy af4d62d87b fix(PackageValidation): enhance Avalonia package validation for private API access 2026-09-23 07:42:26 +08:00
chinboy 4593d4989c release: prepare AtomUI 6.2.1 2026-09-22 22:50:28 +08:00
chinboy 24526c67c9 feat(Pagination,Menu): 添加自定义页大小组件并修复子菜单状态 2026-09-22 17:15:33 +08:00
chinboy 0cc7ffe588 fix(Feedback): 修复 Message 与 Notification 跨管理器叠放顺序 2026-09-22 09:51:32 +08:00
chinboy 39721373b8 fix(Pagination): preserve jump hover after navigation 2026-09-21 22:28:23 +08:00
chinboy 171740dc50 feat(Pagination): align jump navigation with Ant Design 2026-09-21 21:30:15 +08:00
chinboy 2bd287d087 docs(Window): 记录 macOS 27 原生红绿灯外观验证待办 2026-09-21 11:36:57 +08:00
CHINBOY 3b6b792c6f fix(Steps): 修复垂直副标题叠印并对齐 Inline hover 背景与 Panel 裁剪的 antd v6 视觉 2026-09-21 11:34:54 +08:00
chinboy a135880834 release: prepare AtomUI 6.2.0 2026-09-18 22:08:23 +08:00
chinboy c8f40d9a4c fix(Semantic): 修复弹层钉住、语义作用域、布局及资源生命周期 2026-09-18 14:21:06 +08:00
CHINBOY b17b6b229c fix(Dialog): 修复窗口宿主请求尺寸覆写 ClientSize 的黑带渲染并补齐原生标题栏下正文留白 2026-09-18 08:40:48 +08:00
chinboy 550cd34e91 fix(Segmented): 对齐 antd 选中滑块动效并由滑块独占承载选中背景 2026-09-17 15:07:00 +08:00
chinboy b3d53f32a4 feat(Semantic): 增加 Splash 语义部件并对齐预览双进度态与示例 logo 尺寸 2026-09-17 11:13:22 +08:00
chinboy 1ec73c6015 feat(Semantic): 增加 ComboBox 语义部件并修复钉住遮罩与根边框定制 2026-09-17 11:13:22 +08:00
chinboy 8a227e61af feat(Semantic): 增加 ButtonSpinner 语义部件并修复输入族根边框定制失效
将 ButtonSpinner 纳入 Semantic Part 改造(原排除判定撤销),按全量改造设计 §2.1
第 4 条以产品职责直接对应建立映射。

准入依据:上游稳定版 InputNumberSemanticType 公开并实际消费 root / prefix /
suffix / input / actions 五个分区键,其中 actions 应用于包裹上、下步进按钮的容器,
对应 AtomUI 的 ButtonSpinnerHandle;原判定「InputNumber 的 handle 属内部区域」的
事实前提不再成立。边界如实记录:上游至今没有独立 spinner owner,本项准入依据的是
上游 actions 键叠加用户指令,而非原触发条件(新稳定版出现独立 spinner owner)自动
满足。

实现:
- 新增 ButtonSpinner.SemanticParts.cs 声明六个 Part,ButtonSpinner 声明为 partial:
  content / innerLeftContent / innerRightContent 位于帧模板,actions 位于 owner 模板
  内的手柄,increaseButton / decreaseButton 位于手柄模板;后五者声明
  CrossNestedOwners。含隐式 root 共七个 Part,均为 Single。
- 帧内容槽不复用 semantic-prefix / semantic-suffix:NumericUpDown 已发布的 prefix
  route 是宽松后代(/template/ .semantic-scope-spinner >> .semantic-prefix),而
  ButtonSpinner 的帧节点位于 NumericUpDownSpinner 子树内,复用会让该 route 命中两个
  节点并破坏其已发布的 Single 契约;改用与自身公开 API 同名的
  innerLeftContent / innerRightContent。
- 修复根边框定制失效:可见外框由共享帧绘制、其状态机拥有 BorderBrush,owner 的
  BorderBrush 此前完全落不到帧上(ButtonSpinner、Select、TreeSelect、Cascader、
  OtpLineEdit 均如此)。改为以 LocalValue 中继到帧,并带接管标记,避免嵌套 owner
  (NumericUpDown 的 spinner 即 ButtonSpinner)的中继被内层清除。
- 修复帧动效接线缺失:ButtonSpinner、NumericUpDown 两个模式、Select / TreeSelect /
  Cascader 的帧未接收 owner 的 IsMotionEnabled,回落到帧主题的共享默认值而使过渡
  常开;进行中的 SolidColorBrush 过渡优先级高于中继写入的 LocalValue,令运行中的根
  边框定制静默失效。模板应用前赋值不存在过渡基线,故早期测试无法暴露该缺陷。
- OtpLineEdit 保留 CellBorderBrush 的 cell 专用优先级,根 BorderBrush 作为其回落;
  Background 不参与中继,避免控件级透明背景覆盖 cell 主题填充。

测试:
- 新增 ButtonSpinnerSemanticPartTests(9 例):descriptor 字段与顺序、六类 marker
  契约、生成样式各精确命中目标、状态切换后 marker 稳定、默认主题不消费 .semantic-*,
  并锁定帧槽位不复用 semantic-prefix / suffix 的回归护栏。
- 新增 ButtonSpinnerRootSurfaceTests(5 例)、NumericUpDownRootSurfaceTests 扩至 7 例、
  SelectRootSurfaceRelayTests(15 例)、OtpLineEditRootSurfaceRelayTests(4 例),覆盖
  定制压过 hover / focus 状态机、置空恢复状态机、模板前赋值、未定制保持 rest 状态、
  实时改边框立即生效、以及帧动效接线。
- NumericUpDownSemanticPartTests 作为共享帧回归护栏全绿,证明未破坏其已发布契约。

Gallery:
- ButtonSpinnerShowCase 迁移到 GalleryShowCaseHost,新增 Semantic Parts 页签与
  SemanticStyles 示例(含根边框定制),补齐 9 个资源键 × 4 语言。
- Semantic Parts 页签收敛为单个预览:初版误发两个预览(Floating handle 与
  Inline handle),但 IsButtonSpinnerFloatable 默认 False 且前者未显式设置,两者
  渲染同一个默认常驻手柄、七行部件说明完全重复;页面测试改为断言恰好一个预览。

文档:
- 新增 semantic-part.md,并重写 overview.md 中过期的 root/trigger/item/popup/motion
  语义表为真实契约;补齐 ButtonSpinner 与四个输入族控件的 changelog,并在
  semantic-part.md 标明「默认是常驻手柄」以免再现上述预览误判。
- 记录范围撤销:改造设计 §2.3 / §2.4、计划新增第六批任务;新增真机验收步骤文档。

验证:Desktop 4068/4068、Gallery 645/645、GalleryBase 185/185、Generator
SemanticPart 54/54、AtomUI.slnx 构建 0 warning / 0 error、LLMS verify 通过
(79 控件 / 161 文件)、git diff --check 干净。真机视觉验收待用户回传截图,未宣称通过。

(cherry-pick 自 feature/semantic-buttonspinner 的 6d693d13a,并按新基线适配)
- Since 统一由 6.0 改为 6.2.0:新基线的生成器新增 SemanticPartInvalidSince 校验,只接受
  major.minor.patch 三段式发布版本,原值在合并后会直接阻断生成。
- 合并当日两次范围纳入:GroupBox(无上游 owner,用户指令纳入)与本 ButtonSpinner 各自使
  准入家族 +1、排除控件 -1;合并后准入家族 65、排除控件 12(非任一分支单独记录的 64/13)。
- 本地化单元计数按新基线重算为 4749(原分支 4741 基于旧基线,已失效)。
2026-09-17 11:13:21 +08:00
chinboy 8743d2c321 docs(Semantic): 记录 GroupBox 语义部件真机视觉验收结果 2026-09-17 11:13:21 +08:00
chinboy 21903f7a30 fix(Generator): 统一语义部件 Since 为三段式发布版本并校验格式 2026-09-17 11:13:21 +08:00