diff --git a/apps/ai-game-creator-shell/src/features/resource-canvas/resourceCanvasChrome.css b/apps/ai-game-creator-shell/src/features/resource-canvas/resourceCanvasChrome.css index b30a4b3ca..d52bfaa22 100644 --- a/apps/ai-game-creator-shell/src/features/resource-canvas/resourceCanvasChrome.css +++ b/apps/ai-game-creator-shell/src/features/resource-canvas/resourceCanvasChrome.css @@ -1266,10 +1266,9 @@ max-width: calc(100% - 28px); } -/* 共享 chrome 的 `.genarrative-image-canvas__toolbar` 是横向滚动条(`overflow-x:auto`), - 会把它自己弹出的二级菜单(`bottom:100%+6px`)裁掉。这里改成换行、不裁切: - 「生成规范」的二级菜单必须可见,窄屏用换行兜底而不是横向滚动。 */ -/* 换行与不裁剪已由共享工具栏保证(`@genarrative/image-canvas-react`),这里只限宽。 */ +/* 「生成规范」的二级菜单(`bottom:100%+6px`)必须可见:换行与不裁剪由共享工具栏保证 + (`@genarrative/image-canvas-react` 的 `.genarrative-image-canvas__toolbar` 已从 + `overflow-x: auto` 改成 `flex-wrap: wrap`),这里只限宽,不再重复覆盖 overflow。 */ .game-resource-bottom-toolbar-strip { max-width: 100%; } diff --git a/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts b/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts index 1d5ac535f..05ae80777 100644 --- a/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts +++ b/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts @@ -8878,9 +8878,20 @@ export function registerProjectAgentStatusTests() { expect(dock).toMatch(/(?:^|[;\s])right:/u); expect(dock).not.toMatch(/(?:^|[;\s])left:/u); - // 二级菜单不能被工具栏自己的横向滚动裁掉(共享 chrome 默认 overflow-x: auto)。 - expect( - styleRuleBody(chromeStyles, '\\.game-resource-bottom-toolbar-strip'), - ).toMatch(/overflow:\s*visible/u); + // 二级菜单不能被工具栏自己的横向滚动裁掉。这个机制住在共享工具栏里:托管规则曾经是 + // `overflow-x: auto`(把它自己底部弹出的二级菜单裁掉,也把尾部工具滚出视野),现在 + // 换成「换行 + 不裁剪」,所以这里直接钉住共享规则本身 —— 谁把滚动容器加回来, + // 「生成规范」的二级菜单就会立刻被裁掉,这条断言先失败。 + const sharedToolbar = styleRuleBody( + readFileSync( + repoPath('packages/image-canvas-react/src/styles.css'), + 'utf8', + ), + '\\.genarrative-image-canvas__toolbar', + ); + expect(sharedToolbar).toMatch(/flex-wrap:\s*wrap/u); + expect(sharedToolbar).not.toMatch( + /overflow(?:-[xy])?\s*:\s*(?:auto|scroll|hidden)/u, + ); }); }