style: 对齐 AGC 输入区参考样式

- 输入区外框统一承载编辑器和底部控制行

- @ 放左侧,模型选择和发送放右侧

- 恢复输入编辑器滚动条样式

- 消息列表为底部输入框保留滚动条空间
This commit is contained in:
2026-09-08 19:40:24 +08:00
parent cc569e7e1e
commit 5f36ab8081
2 changed files with 109 additions and 24 deletions
@@ -164,6 +164,7 @@ export function ProjectSupervisorView({
const submitButton = (
<button
type="submit"
className="project-supervisor-submit-button"
aria-label={submitLabel}
title={submitLabel}
disabled={
@@ -400,23 +401,27 @@ export function ProjectSupervisorView({
/>
{directCodex ? (
<div className="project-supervisor-composer-controls">
<ConversationModelSelect
ref={modelSelectRef}
disabled={runtimePanelProps.controlBusy || needsUserInput}
onReady={setModelReady}
projectPath={projectPath}
/>
<button
type="button"
className="project-supervisor-reference-trigger"
aria-label="插入素材引用"
title="插入素材引用"
disabled={runtimePanelProps.controlBusy || needsUserInput}
onClick={() => composerRef?.current?.openPicker()}
>
<AtSign size={15} aria-hidden="true" />
</button>
{submitButton}
<div className="project-supervisor-composer-controls-left">
<button
type="button"
className="project-supervisor-reference-trigger"
aria-label="插入素材引用"
title="插入素材引用"
disabled={runtimePanelProps.controlBusy || needsUserInput}
onClick={() => composerRef?.current?.openPicker()}
>
<AtSign size={15} aria-hidden="true" />
</button>
</div>
<div className="project-supervisor-composer-controls-right">
<ConversationModelSelect
ref={modelSelectRef}
disabled={runtimePanelProps.controlBusy || needsUserInput}
onReady={setModelReady}
projectPath={projectPath}
/>
{submitButton}
</div>
</div>
) : (
submitButton
+87 -7
View File
@@ -9047,7 +9047,7 @@ iframe.preview-frame {
bottom: 0;
left: 0;
z-index: 5;
padding: 10px 12px 8px;
padding: 8px 12px;
border: 1px solid var(--platform-surface-border);
border-radius: 14px;
background: var(--platform-input-fill);
@@ -9060,8 +9060,8 @@ iframe.preview-frame {
.project-supervisor-composer.is-direct-codex
.resource-reference-input {
width: 100%;
min-height: 64px;
padding: 0 0 6px;
min-height: 56px;
padding: 0 0 4px;
border: 0;
border-radius: 0;
background: transparent;
@@ -9091,13 +9091,36 @@ iframe.preview-frame {
.project-supervisor-composer-controls {
display: flex;
align-items: center;
justify-content: flex-end;
justify-content: space-between;
gap: 8px;
min-width: 0;
padding-top: 4px;
padding-top: 2px;
pointer-events: auto;
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-composer-controls
.project-supervisor-composer-controls-left,
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-composer-controls
.project-supervisor-composer-controls-right {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-composer-controls-right {
margin-left: auto;
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
@@ -9113,7 +9136,12 @@ iframe.preview-frame {
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-composer-controls
> button {
.project-supervisor-reference-trigger,
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-composer-controls
.project-supervisor-submit-button {
position: static !important;
right: auto !important;
bottom: auto !important;
@@ -9125,9 +9153,61 @@ iframe.preview-frame {
padding: 0;
border: 0;
border-radius: 9px;
place-items: center;
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-reference-trigger {
background: transparent;
color: var(--platform-text-soft);
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-reference-trigger:hover:not(:disabled),
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-reference-trigger:focus-visible {
background: var(--platform-button-ghost-fill);
color: var(--platform-text-strong);
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-composer.is-direct-codex
.project-supervisor-submit-button {
background: var(--platform-button-primary-fill);
color: var(--platform-button-primary-text);
place-items: center;
}
.game-workbench-chat
.project-supervisor-surface.is-direct-codex
.project-supervisor-message-list {
bottom: 116px;
}
.resource-reference-input-editor {
scrollbar-color: #cbd5e1 transparent;
scrollbar-width: thin;
}
.resource-reference-input-editor::-webkit-scrollbar {
width: 8px;
}
.resource-reference-input-editor::-webkit-scrollbar-thumb {
border: 2px solid transparent;
border-radius: 999px;
background: #cbd5e1;
background-clip: padding-box;
}
.resource-reference-input-editor::-webkit-scrollbar-track {
background: transparent;
}
.project-supervisor-composer .resource-reference-input {