CTimet
74b4b24bbd
feat(SearchEdit): Enter handler
...
1. Add HandleEnterAsSearch property with default value false to maintain old code's behavior.
2. Override OnKeyUp method to process Enter keyUp. It triggers NotifySearchButtonClicked method only if HandleEnterAsSearch is true. Override keyUp rather than keyDown to avoid triggering repeatedly when user press Enter continuously.
2026-08-11 08:53:08 +08:00
chinboy
1d50b45555
docs(Mobile): define mobile documentation architecture
2026-08-11 08:44:17 +08:00
chinboy
1ff73e9385
docs(Mobile): define mobile controls architecture
2026-08-11 08:11:53 +08:00
chinboy
a6fc404ba6
docs(Typography): add font package authoring guide
...
新增 `docs/guides/typography/`,补上字体包的操作路径。此前 `architecture/systems/typography/`
只描述字体子系统的架构与契约,要新做一个包得自己去读 `AtomUI.Fonts.AlibabaSans` 和
`AtomUI.Fonts.AlibabaPuHuiTi` 的源码反推步骤。按文档分类规范,"怎么完成任务"属于 Guide。
教程从"注册和生效是两件事"开篇,而非从建项目开始。注册链路与生效链路互不相干,只在 Avalonia
解析 `FontFamily` 字符串时汇合,因此只注册 `FontCollection` 不会改变任何界面外观 —— 这是做字体
包最费时间的坑,放在写代码之前说。其余章节依次为建项目、确认字族名、`FontCollection`、两个注册
扩展、`WithDefaultFontFamily` 激活、验证排查、分发许可与交付清单。
两处内容经实测修正,未照现有两个包的表象推断:
- `fc-scan` 输出为一行逗号分隔,且只有第一项可用。实扫 PuHuiTi 得
`Alibaba PuHuiTi 3.0,阿里巴巴普惠体 3.0,Alibaba PuHuiTi 3.0 55 Regular,...`,本地化名与子族
全名写进代码均不生效。同一命令解释了字重归组:AlibabaSans 六个面首项均为 `Alibaba Sans`。
文中给出真实输出而非文字描述。
- `FontManager.Current.SystemFonts` 全仓库无调用点,该排查片段已对 Avalonia 12.1.1 单独编译
验证后收录。
记录三处读现有包看不出的行为,均经源码核对:
- 主题配置显式声明 `FontFamily` Token 时 `WithDefaultFontFamily` 完全失效。
`ThemeManager.AddDefaultFont` 在该 key 已存在时提前返回,是有意的优先级设计,但表现为"调用已
执行而界面未变",故列入排查清单。
- 字符串格式错误抛异常,字族缺失只静默回退,两种失败模式的可观测性不同。
- `AtomUI.Controls` 引用 `AtomUI.Fonts.AlibabaSans` 但不调用 `AddFontCollection`。引用只保证资源
随构建产出,注册是应用的责任,库不应代应用决定。
`AlibabaSans` 的注册扩展位于全局命名空间,按历史遗留记录而非范例,并指出可观察后果:Desktop
Gallery 无 `using` 即可调用,Browser Gallery 为另一个包必须显式 `using`。新包应带命名空间。
另标注两个现存包均未附字体许可文件 —— 将字体编译进程序集即构成再分发。此处仅在文档中点明,未
改动包内容,补充许可属授权决定而非文档变更。
同步接入 Guide 导航,并从 typography 架构 overview 与 font-packages 建立反向链接。
2026-08-10 16:53:18 +08:00
chinboy
4391e14155
docs(Typography): define font subsystem architecture
...
新增 `docs/architecture/systems/typography/`,记录字体子系统的当前架构。此前字体只有
`docs/modules/fonts/overview.md` 一页概览,跨模块的契约、派生算法和边界没有正式所有者。
字体跨 `AtomUI.Core`、两个 `AtomUI.Fonts.*` 包、`AtomUI.Controls` 和消费控件,按文档分类规范
属于 `architecture/systems/`。核心结论是它由两条互不相干的轴组成:字体资源注册进 Avalonia
`FontManager`,与主题编译字号行高 Token,两者只在解析 `FontFamily` 字符串时汇合,没有任何代码
把它们对账。
按职责拆成六篇:overview 定位与两轴架构;font-packages 讲 `FontCollection` 与注册入口;
font-family-resolution 讲回退链、覆盖路径与注入时序;tokens-and-derivation 讲 23 个 Token 的
分级与 `e^(i/5)` 阶梯算法;consumption 讲 AXAML 与 C# 消费面和相对行高换算;verification 讲
AOT、兼容性、验证要求与已知不一致。
记录三处已确认的实现问题,均经源码核对:
- Compact 算法不压缩字号。`CalculateFontMapTokenValues` 以 `FontSize` 而非 `FontSizeSM` 为基数,
且第 1 档强制等于基数使重算幂等,因此 Compact 与 Default 的字体 Token 完全相同。上游 antd
compact 取 `fontSizeSM`,`FontSize = 14` 时应得 12 而非 14。共享派生函数里还留着上游那句
`// Smaller size font-size as base` 注释,位置已使其不再成立。
- 默认字体族首项 `fonts:AlibabaSans` 是前向引用。`AtomUI.Core` 不依赖字体包,`AtomUI.Controls`
的项目引用也不含 `AddFontCollection`;未注册时 Avalonia 静默回退,全程无诊断信号。
- 相对行高到绝对行高的换算在五个控件中各写一遍,无共享 helper,且必须同时监听行高与字号两个
属性才不会在字号变化后失配。
同步在 `docs/overview.md`、Architecture 与 systems 导航、主题系统导航和 Fonts 模块接入入口。
2026-08-10 14:25:44 +08:00
chinboy
9f6ec36645
docs: rename directory entry files to overview.md
...
统一文档目录的入口文件名为 `overview.md`,取代原先的 `index.md`。单 Control 目录本来就用
`overview.md`,此前只有目录级入口用 `index.md`,两套命名并存;现在全库一致。
改名覆盖 42 个入口文件:`docs/` 根、一级分类目录、Architecture 分组与跨模块系统目录、Module
目录、Control 平台与分类目录、Guide 与 Reference 子目录。`docs/AI/generated/index.md` 是手工
维护的导航页,一并改名。
生成产物 `docs/AI/generated/llms/**/index-cn.md` 保持原名,它属于 LLMs Generator 的输出契约。
同步更新 28 个正式文档与 `AGENTS.md` 中的入站链接,以及两处目录树示意图。改名后全部相对链接
可解析,LLMs Generator `verify` 通过(78 控件 / 159 文件),单 Control 四件套文件名契约未变。
新增 `docs/engineering/contributing/documentation-structure-guidelines.md` 承载入口命名、文档
拆分标准、事实所有权和链接规范。此前该规则只写在带日期的设计过程记录里,不适合作为长期来源。
`docs/superpowers/specs/2026-08-10-documentation-information-architecture-design.md` 保留原文
并加取代说明,其余结论继续有效。
2026-08-10 14:24:36 +08:00
chinboy
cafec81a6f
docs: organize AI outputs and prune redundant module pages
2026-08-10 11:05:37 +08:00
chinboy
5c950d22d6
docs: repair documentation references after reorganization
2026-08-10 10:04:59 +08:00
chinboy
3f5cc5b56f
docs: standardize navigation releases and generated output
2026-08-10 09:57:22 +08:00
chinboy
0bc3447ebb
docs: reorganize module engineering and Gallery domains
2026-08-10 09:32:07 +08:00
chinboy
bc482f94d1
docs(Controls): reorganize shared infrastructure documentation
2026-08-10 09:12:36 +08:00
chinboy
a43ea82e4b
docs(Localization): separate system module and reference docs
2026-08-10 09:02:52 +08:00
chinboy
83ff8e94ed
docs(Theme): separate architecture guides and reference
2026-08-10 08:59:22 +08:00
chinboy
ff9590d805
docs(Architecture): establish global documentation navigation
2026-08-10 08:54:54 +08:00
chinboy
1ae1479a48
docs(Architecture): define repository documentation taxonomy
2026-08-10 08:48:09 +08:00
chinboy
3ab7df2ba0
docs(Core): define Semantic Part architecture and generator contract
2026-08-10 08:28:42 +08:00
chinboy
eb63f153ea
feat(SearchPanel): implement custom theme for GalleryCodeViewer search panel
v6.1.3
2026-08-09 16:25:22 +08:00
chinboy
12ba9b92ef
chore(Release): add build and packaging for AtomUI language packs
2026-08-09 13:05:32 +08:00
chinboy
e022023802
chore(Release): update Avalonia to 12.1.1 and increment AtomUI version to 6.1.3
2026-08-08 23:50:14 +08:00
chinboy
85ac813fc4
refactor(Localization): update namespace for localization build tasks and adjust target states in XLIFF files
2026-08-08 17:33:08 +08:00
chinboy
ef7464d11d
docs(Localization): translate generator design to Chinese
2026-08-08 13:25:51 +08:00
chinboy
dff4d37665
docs(Localization): define generator-first build design
2026-08-08 13:23:19 +08:00
chinboy
f501cee604
refactor(Localization): simplify language pack authoring
2026-08-08 12:23:29 +08:00
chinboy
e3f7b1010f
feat(Generator): bind deferred language packs at consumption
2026-08-08 11:20:55 +08:00
chinboy
b66c813c12
build(Localization): discover language pack contracts automatically
2026-08-08 11:10:28 +08:00
chinboy
1412351a47
feat(Localization): add deferred language pack validation
2026-08-08 10:54:38 +08:00
chinboy
fee5ef72b8
docs(Localization): define deferred language pack validation
2026-08-08 10:39:04 +08:00
chinboy
ee680c3546
refactor(Localization): rename LocalizationRuntime to LocalizationHost and update related references
2026-08-08 09:32:14 +08:00
chinboy
46e3156d6d
gallery(Localization): add pt-BR resources and responsive demos
2026-08-08 00:05:25 +08:00
chinboy
cf127d7793
build(Localization): support language pack project references
2026-08-07 17:58:52 +08:00
chinboy
52bda74e4d
gallery(Localization): add pt-BR language switching
2026-08-07 17:29:35 +08:00
chinboy
71a7053620
test(Localization): verify official pt-BR package graph
2026-08-07 17:22:26 +08:00
chinboy
03866a7d88
feat(Localization): finalize pt-BR control translations
2026-08-07 16:36:25 +08:00
chinboy
93fba1053c
feat(Localization): add pt-BR control translation drafts
2026-08-07 16:26:24 +08:00
chinboy
17be2f4b9a
fix(Localization): support intentional empty translations
2026-08-07 16:19:53 +08:00
chinboy
6e1bb21178
fix(Localization): define pt-BR source package paths
2026-08-07 16:08:40 +08:00
chinboy
87b45acd1f
test(Localization): keep aggregate fixture payload-free
2026-08-07 15:54:01 +08:00
chinboy
bd59e44b1b
feat(Localization): scaffold official pt-BR language packages
2026-08-07 15:43:46 +08:00
chinboy
bb68c048ad
test(Localization): strengthen aggregate language package assertions
2026-08-07 15:13:45 +08:00
chinboy
f2691c09e8
test(Localization): cover aggregate language package consumption
2026-08-07 14:47:13 +08:00
chinboy
f7ff81d830
feat(Localization): enforce configurable translation review states
2026-08-07 14:18:38 +08:00
chinboy
f0e9ae993a
feat(Generator): support dormant static language modules
2026-08-07 14:13:53 +08:00
chinboy
39513bc134
docs(Localization): define modular pt-BR language pack architecture
2026-08-07 13:55:55 +08:00
chinboy
92d54fe28a
refactor(Localization)!: use enum keys as catalog unit identity
2026-08-07 13:27:02 +08:00
chinboy
29ca28d9da
docs(Localization): adopt key-based catalog identity
2026-08-07 10:39:56 +08:00
chinboy
d9f61c8d97
refactor(Performance): isolate localization benchmarks
2026-08-07 09:44:58 +08:00
chinboy
9d0a5df516
fix(Performance): run combined localization verifiers
2026-08-07 09:31:03 +08:00
chinboy
9841056ef6
fix(Generator): avoid language extension name collisions
2026-08-07 09:30:25 +08:00
chinboy
a0c98a88d7
fix(Gallery): include Developer Tools runtime dependencies
2026-08-07 09:16:58 +08:00
chinboy
54c6b52069
fix(NavMenu): ignore stale selected nodes after item replacement
2026-08-07 09:16:23 +08:00