实现 UI 编辑器子节点互斥显示
新增 Stack / Exclusive 子节点显示模式及 Rust/TypeScript DTO。 Merged 物化自动使用 Exclusive,识别和手动节点默认使用 Stack。 拆分预览可见性 hook 与互斥子节点 Tab 组件,统一 Tree Panel 和最终预览状态。 补充 Inspector 模式选择、渲染规则、同步测试和技术方案文档。
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# UI 编辑器子节点显示规则
|
||||
|
||||
## 规则
|
||||
|
||||
`Node.children_display_mode` 控制父节点直接 children 的预览显示方式:
|
||||
|
||||
- `Stack`:所有直接 children 按现有树结构显示。
|
||||
- `Exclusive`:直接 children 中允许显示 0 或 1 个。
|
||||
|
||||
`Merged` 合并容器由 Rust materialize 阶段直接设置为 `Exclusive`,不由 LLM 决定,也不需要历史数据迁移。
|
||||
|
||||
## 状态与交互
|
||||
|
||||
编辑器预览可见性仍是按界面图隔离的临时状态。Tree Panel 的节点眼睛操作和最终预览的互斥 tab bar 必须共用同一套可见性状态:
|
||||
|
||||
```text
|
||||
[子节点 A] [子节点 B] [子节点 C]
|
||||
```
|
||||
|
||||
当前可见 child 高亮;点击其它 child 会隐藏兄弟并显示目标;点击当前高亮 child 会将其隐藏,允许进入全部隐藏状态。没有 child 可见时不高亮任何 tab。
|
||||
|
||||
最终预览只在当前选中的父节点为 `Exclusive` 时显示 tab bar。Inspector 只提供“子节点显示模式:叠加 / 互斥”选择,不增加独立的当前状态或隐藏按钮。
|
||||
|
||||
## 默认行为
|
||||
|
||||
`Exclusive` 节点没有显式隐藏状态时,最终预览按 children 顺序显示第一个 child。首次通过 Tree Panel 或 tab bar 修改后,状态由共享可见性状态明确记录。
|
||||
Reference in New Issue
Block a user