chinboy
|
c8f40d9a4c
|
fix(Semantic): 修复弹层钉住、语义作用域、布局及资源生命周期
|
2026-09-18 14:21:06 +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
|
21903f7a30
|
fix(Generator): 统一语义部件 Since 为三段式发布版本并校验格式
|
2026-09-17 11:13:21 +08:00 |
|
chinboy
|
52a1f8f764
|
fix(NumericUpDown): Spinner 模式前缀移入输入区并修复空前缀占位
|
2026-09-17 11:08:55 +08:00 |
|
chinboy
|
03dc321d55
|
fix(NumericUpDown): animate the suffix hover shift from the hover state to avoid flicker
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
39f605322d
|
fix(NumericUpDown): restore the suffix hover shift and render the inner-left prefix
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
d3565e5021
|
fix(NumericUpDown): restore the SizeTypeAwareIconPresenter theme so right add-on icons render
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
c712781886
|
fix(NumericUpDown): inset the spinner suffix group from the action-button divider
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
c27826a54e
|
fix(NumericUpDown): keep the suffix group attached after the clear button inside the input segment
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
b658f3ae54
|
fix(NumericUpDown): move the clear button into the input segment ahead of the spinner buttons
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
5e1d75842f
|
fix(NumericUpDown): keep the spinner-mode input text vertically centered
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
82de689d4d
|
fix(NumericUpDown): relay root BorderBrush and align the semantic styling demo with Ant Design
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
b8507bde61
|
fix(NumericUpDown): keep the clear button vertically centered in the suffix row
|
2026-09-17 11:08:54 +08:00 |
|
chinboy
|
cdea800d9a
|
feat(Semantic): add NumericUpDown semantic parts with gallery showcase
|
2026-09-17 11:08:53 +08:00 |
|
chinboy
|
77b02d6a41
|
refactor(Theme)!: implement compiled theme architecture
|
2026-08-02 09:32:11 +08:00 |
|
chinboy
|
809e77e44c
|
style: remove unused using directives
|
2026-07-31 23:45:25 +08:00 |
|
chinboy
|
95f8e8a165
|
refactor: update namespace from TokenSystem to Tokens across multiple files
|
2026-07-19 14:17:09 +08:00 |
|
chinboy
|
1270b95bfa
|
fix(Controls): use EmbeddedTextBox for template-owned inputs
|
2026-07-16 11:36:32 +08:00 |
|
chinboy
|
e5f63081db
|
fix(Controls): align embedded TextBox padding and gallery layouts
|
2026-07-16 10:13:09 +08:00 |
|
chinboy
|
4fea2ee6aa
|
feat(NumericUpDown): add test for default input mode padding behavior
|
2026-07-15 20:02:50 +08:00 |
|
CHINBOY
|
c23778a6c9
|
fix(controls): refine border rendering and gallery regressions
|
2026-07-10 17:06:52 +08:00 |
|
chinboy
|
f6c276d29e
|
fix(Controls): align border rendering to layout scale
|
2026-07-08 16:12:48 +08:00 |
|
chinboy
|
90ade6d80a
|
feat(Controls): add splitter line styling and refine number handles
|
2026-07-03 07:01:07 +08:00 |
|
chinboy
|
bc030b6597
|
refactor(i18n): migrate providers and update NumberUpDown handles
|
2026-07-02 20:45:50 +08:00 |
|
chinboy
|
a8d24042f4
|
feat(NumericUpDown): enhance custom size support and update documentation
|
2026-06-21 15:45:21 +08:00 |
|
chinboy
|
2abe0bb8f5
|
feat(NumericUpDown): add inline spinner mode
|
2026-06-18 15:14:58 +08:00 |
|
chinboy
|
a3b4616606
|
feat(ButtonSpinner): enhance disabled state handling and add style variant support
|
2026-06-18 11:49:35 +08:00 |
|