feat(create): 对话页布局 - 加宽输入区并修正参数弹窗
开始对话后工具条进顶栏、模式切换横排到录音左侧,输入区加宽并去掉黑底;参数弹窗改用工作台表面色,去掉细线描边。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -28,12 +28,13 @@ describe("creation library button", () => {
|
||||
const modePickerIndex = dockSource.indexOf("<ModePicker mode={props.mode}");
|
||||
|
||||
expect(modePickerIndex).toBeGreaterThanOrEqual(0);
|
||||
expect(source).not.toContain("creation-composer-mode-row");
|
||||
expect(dockSource).not.toContain('aria-label="打开素材库选择参考内容"');
|
||||
expect(dockSource).not.toContain('aria-label="从本机上传附件"');
|
||||
expect(source).toContain("onClick={props.onOpenLibrary}");
|
||||
expect(source).toContain("creation-reference-add-button");
|
||||
expect(source).toContain('showSelectedPrice={false} showOptionPrices variant="creation"');
|
||||
expect(source).toContain("canvas-node-composer-submit-cost");
|
||||
expect(source).toContain("creation-submit-cost");
|
||||
});
|
||||
|
||||
test("uploads from the library without adding a reference before confirmation", () => {
|
||||
@@ -68,7 +69,7 @@ describe("creation library button", () => {
|
||||
const source = readCreateWorkspaceSource();
|
||||
const styles = readFileSync(resolve(import.meta.dir, "../src/styles/globals.css"), "utf8");
|
||||
|
||||
expect(source).toContain('import { Reorder } from "motion/react"');
|
||||
expect(source).toContain("import { Reorder, LayoutGroup, motion, useReducedMotion } from \"motion/react\"");
|
||||
expect(source).toContain("<Reorder.Group");
|
||||
expect(source).toContain('axis="x"');
|
||||
expect(source).toContain("values={visibleAttachments}");
|
||||
@@ -144,3 +145,38 @@ describe("creation library button", () => {
|
||||
expect(source).not.toContain("onClick={() => props.fileInputRef.current?.click()}");
|
||||
});
|
||||
});
|
||||
|
||||
describe("creation homepage default mode", () => {
|
||||
test("opens the empty homepage on image generation instead of video", () => {
|
||||
const source = readCreateSource();
|
||||
expect(source).toContain("import { defaultCreationMode, modeLabels,");
|
||||
expect(source).toContain("initialComposerPreferences.mode || defaultCreationMode");
|
||||
expect(source).toContain("saved.mode || defaultCreationMode");
|
||||
expect(source).not.toContain('mode || "video"');
|
||||
});
|
||||
});
|
||||
|
||||
describe("creation thread chrome", () => {
|
||||
test("docks the conversation toolbar into the workspace top bar and keeps a compact thread composer", () => {
|
||||
const workspace = readCreateWorkspaceSource();
|
||||
const topBar = readFileSync(resolve(import.meta.dir, "../src/components/layout/workspace-top-bar.tsx"), "utf8");
|
||||
const product = readFileSync(resolve(import.meta.dir, "../src/styles/workspace-product.css"), "utf8");
|
||||
|
||||
expect(workspace).toContain("useWorkspaceTopBarMount");
|
||||
expect(workspace).toContain("createPortal(toolbar, mount)");
|
||||
expect(topBar).toContain("WorkspaceTopBarExtensionSlot");
|
||||
expect(product).toContain(".creation-chat-dock .creation-mode-tabs");
|
||||
expect(product).not.toContain("creation-composer-mode-row");
|
||||
});
|
||||
|
||||
test("parameter popovers use the user surface without a hairline stroke", () => {
|
||||
const css = readFileSync(resolve(import.meta.dir, "../src/pages/create/creation-product.css"), "utf8");
|
||||
|
||||
expect(css).toContain(".creation-control-popover .ant-popover-inner");
|
||||
expect(css).toContain("background: var(--user-surface-raised) !important");
|
||||
expect(css).toContain("border: 0 !important");
|
||||
expect(css).toContain("--border: transparent");
|
||||
expect(css).toContain(".creation-choice-grid button.is-selected");
|
||||
expect(css).toContain("background: var(--user-control-pressed) !important");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user