Commit Graph
3874 Commits
Author SHA1 Message Date
chinboy ca55fc175c fix(Build): centralize generated artifact exclusions 2026-08-16 11:08:01 +08:00
chinboy b586d905ec refactor(Build): flatten infrastructure layout 2026-08-16 11:08:01 +08:00
chinboy 5f5848dd01 refactor(Build): finalize infrastructure directory layout 2026-08-16 11:05:11 +08:00
chinboy b0e17f9962 refactor(Localization): split MSBuild integration by responsibility 2026-08-16 11:05:11 +08:00
chinboy 4b2c9e210e refactor(Build): centralize generator build assets 2026-08-16 11:01:06 +08:00
chinboy 593f4f5bcf refactor(Build): organize NuGet build assets 2026-08-16 10:57:51 +08:00
chinboy 9ba5154ced refactor(Build): add repository build entry points 2026-08-16 10:57:51 +08:00
chinboy 63616f9efd fix(Localization): normalize icon gallery XLIFF files 2026-08-16 10:57:51 +08:00
chinboy b11be513e2 build(Localization): infer language contracts and trim manifest metadata 2026-08-16 10:51:25 +08:00
chinboy bd5633bab2 feat(Gallery): enhance metadata layout and introduce responsive media breakpoints 2026-08-16 10:51:25 +08:00
chinboy bceea040fa docs(Build): define build infrastructure layout 2026-08-16 10:51:25 +08:00
chinboy b3f34cbe61 fix(Window): prevent native title bar flash on Wayland startup 2026-08-15 15:40:28 +08:00
chinboy e80be2d802 feat(AOT): add compile-time registration for trimmed apps 2026-08-13 23:05:43 +08:00
chinboy 1e5940a1ad feat(IconGallery): implement icon copy functionality with user feedback 2026-08-11 15:51:14 +08:00
CTimet 2f5ae348d9 feat(IconGallery): real-time feedback on input to search icon conveniently and quickly 2026-08-11 13:35:51 +08:00
chinboy 9dc3d80324 docs(Mobile): integrate mobile documentation navigation 2026-08-11 11:25:12 +08:00
chinboy 8f0d42b602 docs(Mobile): define isolated mobile LLMS output 2026-08-11 11:25:12 +08:00
chinboy 1e7fedb456 docs(Android): add mobile platform documentation boundaries 2026-08-11 11:25:12 +08:00
chinboy 9917774993 docs(iOS): split platform guide and validation evidence 2026-08-11 11:25:12 +08:00
chinboy 55a8a7f1d9 docs(iOS): move platform guide into canonical directory 2026-08-11 11:25:11 +08:00
chinboy 447359a8ee docs(Mobile): define mobile Gallery ownership 2026-08-11 11:25:11 +08:00
chinboy 97ee62fc84 docs(Mobile): add mobile control capability inventory 2026-08-11 11:25:11 +08:00
chinboy 6e81c13225 docs(Mobile): define mobile package and adapter boundaries 2026-08-11 11:25:11 +08:00
chinboy 957e7de590 docs(Mobile): add mobile runtime system architecture 2026-08-11 11:25:11 +08:00
chinboy 79a1ad5343 docs(Mobile): define mobile documentation authoring rules 2026-08-11 11:25:11 +08:00
chinboy 6fdbbcaef3 refactor(SearchEdit): rename IsSearching to IsOperating for clarity 2026-08-11 10:33:00 +08:00
chinboy 16150957de refactor(SearchEdit)!: unify search request semantics 2026-08-11 10:03:33 +08:00
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