feat(canvas): frame-based layer separation UI

Render and manage the separated layers produced by the edit-elements
action as a manual-frame container with attached image and text
children.

- canvasNodeOps: frame container/child helpers, render ordering,
  auto-attach nodes to containing frames, and layer reordering
- CanvasWorkspace wires frame-aware selection, drag, resize, hide/lock,
  and layer reorder through the new ops
- CanvasPanels: expandable layer tree with rename/reorder
- designGateway.submitGeneratorTask + GeneratorTaskSubmitResponse and
  bbox/generator_name artifact metadata in the domain
- ArtboardPreview shows a working state for generating frame layers
- i18n: expandLayer / renameLayer / layerTitlePlaceholder; styles

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-09 12:27:00 +08:00
parent 039d166972
commit a1503a1687
9 changed files with 613 additions and 94 deletions
+3
View File
@@ -66,6 +66,7 @@
"recentProjects": "Recent Projects",
"viewAll": "View all",
"collapse": "Collapse",
"expandLayer": "Expand layer",
"newProject": "New Project",
"continueEditing": "Continue",
"inspiration": "Inspiration",
@@ -126,6 +127,8 @@
"renameCanvasTitle": "Rename canvas",
"renameImageNode": "Rename image",
"imageTitlePlaceholder": "Image name",
"renameLayer": "Rename layer",
"layerTitlePlaceholder": "Layer name",
"projectTitlePlaceholder": "Name this canvas",
"select": "Select",
"pan": "Move",
+3
View File
@@ -66,6 +66,7 @@
"recentProjects": "最近项目",
"viewAll": "查看全部",
"collapse": "收起",
"expandLayer": "展开图层",
"newProject": "新建项目",
"continueEditing": "继续编辑",
"inspiration": "灵感发现",
@@ -126,6 +127,8 @@
"renameCanvasTitle": "重命名画布",
"renameImageNode": "重命名图片",
"imageTitlePlaceholder": "输入图片名称",
"renameLayer": "重命名图层",
"layerTitlePlaceholder": "输入图层名称",
"projectTitlePlaceholder": "输入画布名称",
"select": "选择",
"pan": "移动",