调整 Agent 对话栏 Logo 与工作台布局
放大 Agent 栏产品 Logo 并接入正式钱包入口 移除工作台外层卡片圆角与间距,改用区域底色和竖向分隔 将资源依赖/类型切换整理为联通分段按钮
This commit is contained in:
@@ -307,6 +307,7 @@ export function WorkspaceLauncherShell({
|
||||
preview={activeProjectPreview}
|
||||
agentRuntimeSummaries={activeProjectAgentRuntimeSummaries}
|
||||
agentResults={activeProjectAgentResults}
|
||||
walletEntry={<AccountWalletBar controller={accountWallet} />}
|
||||
onPlay={() =>
|
||||
requestCurrentProjectPlay(currentProjectContext.projectPath)
|
||||
}
|
||||
|
||||
@@ -4923,11 +4923,14 @@ iframe.preview-frame {
|
||||
|
||||
/* GameAgent V1.0 project workbench */
|
||||
.game-project-workbench {
|
||||
width: calc(100vw - 72px);
|
||||
--game-workbench-stage-fill: #fffdfa;
|
||||
--game-workbench-agent-fill: #fbf7f2;
|
||||
width: calc(100vw - var(--launcher-sidebar-width));
|
||||
max-width: none;
|
||||
min-height: 0;
|
||||
gap: 10px;
|
||||
padding: 72px 8px 8px;
|
||||
gap: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
color: var(--platform-text-base);
|
||||
}
|
||||
@@ -4941,7 +4944,7 @@ iframe.preview-frame {
|
||||
z-index: 0;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(360px, 0.36fr);
|
||||
gap: 10px;
|
||||
gap: 0;
|
||||
height: clamp(560px, calc(100dvh - 206px), 780px);
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
@@ -4951,21 +4954,27 @@ iframe.preview-frame {
|
||||
.game-workbench-chat {
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--platform-desktop-panel-border);
|
||||
border-radius: 16px;
|
||||
background: var(--platform-desktop-panel-fill);
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
border-left: 1px solid var(--platform-line-soft);
|
||||
background: var(--game-workbench-agent-fill);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.game-workbench-stage {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-rows: auto auto minmax(0, 1fr);
|
||||
box-shadow: var(--platform-panel-shadow);
|
||||
border-left: 0;
|
||||
background: var(--game-workbench-stage-fill);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.game-workbench-chat {
|
||||
border-color: var(--platform-line-soft);
|
||||
box-shadow: var(--platform-nav-active-shadow);
|
||||
.game-workbench-editor-shell {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
background: var(--game-workbench-stage-fill);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.game-workbench-stage[data-resource-view-state^='resources.asset-canvas'] {
|
||||
@@ -4985,8 +4994,7 @@ iframe.preview-frame {
|
||||
gap: 12px;
|
||||
min-height: 48px;
|
||||
padding: 8px 12px;
|
||||
border-bottom: 1px solid var(--platform-line-soft);
|
||||
background: var(--platform-desktop-topbar-fill);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.game-workbench-tabs,
|
||||
@@ -5004,6 +5012,27 @@ iframe.preview-frame {
|
||||
background: var(--platform-nav-fill);
|
||||
}
|
||||
|
||||
.game-resource-sort-tabs {
|
||||
flex-wrap: nowrap;
|
||||
gap: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.game-workbench-tabs.game-resource-sort-tabs button {
|
||||
min-height: 36px;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.game-workbench-tabs.game-resource-sort-tabs button + button {
|
||||
border-left: 1px solid var(--platform-subpanel-border);
|
||||
}
|
||||
|
||||
.game-workbench-tabs.game-resource-sort-tabs button.is-active {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.game-workbench-tabs button,
|
||||
.game-workbench-view-actions button {
|
||||
display: inline-flex;
|
||||
@@ -6049,7 +6078,7 @@ iframe.preview-frame {
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
padding: 12px;
|
||||
background: #fffdfa;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.game-run-preview {
|
||||
@@ -6176,12 +6205,12 @@ iframe.preview-frame {
|
||||
}
|
||||
|
||||
.game-workbench-chat > header {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 9px;
|
||||
padding: 12px 14px;
|
||||
border-bottom: 1px solid var(--platform-line-soft);
|
||||
background: var(--platform-subpanel-fill);
|
||||
padding: 4px 14px;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.game-workbench-chat > header > div {
|
||||
@@ -6189,6 +6218,29 @@ iframe.preview-frame {
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.launcher-main:has(.game-project-workbench) > .launcher-account-bar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.game-workbench-chat-title {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
justify-items: center;
|
||||
text-align: center;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.game-workbench-chat-wallet {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.game-workbench-chat-wallet .launcher-account-bar {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.game-workbench-approval-trigger {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
@@ -6218,15 +6270,11 @@ iframe.preview-frame {
|
||||
}
|
||||
|
||||
.game-workbench-chat-avatar {
|
||||
display: grid;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 50%;
|
||||
background: var(--platform-button-primary-fill);
|
||||
color: var(--platform-button-primary-text);
|
||||
font-size: 12px;
|
||||
font-weight: 900;
|
||||
place-items: center;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
flex: 0 0 auto;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 5px 9px rgb(182 98 63 / 16%));
|
||||
}
|
||||
|
||||
.game-workbench-chat .project-supervisor-surface {
|
||||
@@ -6418,8 +6466,7 @@ iframe.preview-frame {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding-top: 8px;
|
||||
border-top: 1px solid var(--platform-line-soft);
|
||||
background: var(--platform-desktop-panel-fill);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.game-workbench-chat .project-supervisor-composer textarea {
|
||||
@@ -6863,8 +6910,8 @@ iframe.preview-frame {
|
||||
|
||||
@media (max-width: 760px) {
|
||||
.game-project-workbench {
|
||||
width: min(100%, calc(100vw - 76px));
|
||||
padding-top: 70px;
|
||||
width: min(100%, calc(100vw - var(--launcher-sidebar-width)));
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.game-workbench-layout {
|
||||
@@ -6878,6 +6925,11 @@ iframe.preview-frame {
|
||||
min-height: 560px;
|
||||
}
|
||||
|
||||
.game-workbench-chat {
|
||||
border-top: 1px solid var(--platform-line-soft);
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
.game-workbench-toolbar,
|
||||
.game-workbench-view-actions {
|
||||
align-items: stretch;
|
||||
|
||||
@@ -44,6 +44,7 @@ import type {
|
||||
GameIterationVersion,
|
||||
ProjectResourceCanvasLayoutMode,
|
||||
} from '../../../../../packages/shared/src/contracts/gameCreationApp';
|
||||
import PRODUCT_LOGO from '../../../../../packages/shared/src/icons/taonier-product-ip.png';
|
||||
import {
|
||||
type AssetCanvasCommitNotification,
|
||||
type AssetCanvasExitResult,
|
||||
@@ -283,6 +284,7 @@ export type ProjectDevelopmentViewProps = {
|
||||
agentRuntimeSummaries?: ProjectAgentRuntimeSummary[];
|
||||
agentResults?: ProjectAgentResultSummary[];
|
||||
supervisor: ReactNode;
|
||||
walletEntry?: ReactNode;
|
||||
onHomeOpen: () => void;
|
||||
onProjectsOpen: () => void;
|
||||
onPlay?: () => void;
|
||||
@@ -722,6 +724,7 @@ export default function ProjectDevelopmentView({
|
||||
agentRuntimeSummaries = emptyProjectAgentRuntimeSummaries,
|
||||
agentResults = emptyProjectAgentResults,
|
||||
supervisor,
|
||||
walletEntry,
|
||||
onManifestChange,
|
||||
onPlay,
|
||||
}: ProjectDevelopmentViewProps) {
|
||||
@@ -3028,7 +3031,7 @@ export default function ProjectDevelopmentView({
|
||||
>
|
||||
{mode === 'resources' && uiEditorRoute ? (
|
||||
<div
|
||||
className="h-full min-h-0 min-w-0 w-full overflow-hidden rounded-2xl border border-(--platform-desktop-panel-border) bg-(--platform-desktop-panel-fill) shadow-(--platform-panel-shadow)"
|
||||
className="game-workbench-editor-shell h-full min-h-0 min-w-0 w-full overflow-hidden"
|
||||
data-resource-view-state={resourceViewState}
|
||||
>
|
||||
<UiEditorPage
|
||||
@@ -3127,15 +3130,6 @@ export default function ProjectDevelopmentView({
|
||||
<Sparkles size={15} aria-hidden="true" />
|
||||
新增 UI 设计
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={sortMode === 'dependency' ? 'is-active' : ''}
|
||||
aria-pressed={sortMode === 'dependency'}
|
||||
onClick={() => showResourceSortMode('dependency')}
|
||||
>
|
||||
<FolderTree size={15} aria-hidden="true" />
|
||||
按依赖
|
||||
</button>
|
||||
<span
|
||||
className="game-resource-reorder-status"
|
||||
role="status"
|
||||
@@ -3143,15 +3137,32 @@ export default function ProjectDevelopmentView({
|
||||
>
|
||||
{resourceLayoutSaving ? '保存中' : resourceLayoutNotice}
|
||||
</span>
|
||||
<button
|
||||
type="button"
|
||||
className={sortMode === 'type' ? 'is-active' : ''}
|
||||
aria-pressed={sortMode === 'type'}
|
||||
onClick={() => showResourceSortMode('type')}
|
||||
<div
|
||||
className="game-workbench-tabs game-resource-sort-tabs"
|
||||
role="group"
|
||||
aria-label="资源排列方式"
|
||||
>
|
||||
<ListFilter size={15} aria-hidden="true" />
|
||||
按类型
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={sortMode === 'dependency' ? 'is-active' : ''}
|
||||
aria-label="按依赖"
|
||||
aria-pressed={sortMode === 'dependency'}
|
||||
onClick={() => showResourceSortMode('dependency')}
|
||||
>
|
||||
<FolderTree size={15} aria-hidden="true" />
|
||||
依赖
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={sortMode === 'type' ? 'is-active' : ''}
|
||||
aria-label="按类型"
|
||||
aria-pressed={sortMode === 'type'}
|
||||
onClick={() => showResourceSortMode('type')}
|
||||
>
|
||||
<ListFilter size={15} aria-hidden="true" />
|
||||
类型
|
||||
</button>
|
||||
</div>
|
||||
</>
|
||||
) : null}
|
||||
</div>
|
||||
@@ -3905,13 +3916,20 @@ export default function ProjectDevelopmentView({
|
||||
|
||||
<aside className="game-workbench-chat" aria-label="陶泥儿 Agent 对话">
|
||||
<header>
|
||||
<span className="game-workbench-chat-avatar">陶</span>
|
||||
<div>
|
||||
<img
|
||||
className="game-workbench-chat-avatar"
|
||||
src={PRODUCT_LOGO}
|
||||
alt="陶泥儿"
|
||||
/>
|
||||
<div className="game-workbench-chat-title">
|
||||
<strong>与陶泥儿的对话</strong>
|
||||
<small>
|
||||
{professionalDagVisible ? '项目总控 Agent' : '智能创作'}
|
||||
</small>
|
||||
</div>
|
||||
{walletEntry ? (
|
||||
<div className="game-workbench-chat-wallet">{walletEntry}</div>
|
||||
) : null}
|
||||
{professionalDagVisible ? (
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user