feat: unify creation entry templates

This commit is contained in:
2026-06-03 10:24:03 +08:00
parent b0865cfa19
commit 3f742fbaca
25 changed files with 820 additions and 346 deletions

View File

@@ -78,6 +78,7 @@ type CreationAgentWorkspaceProps = {
referenceImagePreviewSrc?: string | null;
referenceImageLabel?: string | null;
referenceImageError?: string | null;
showBackButton?: boolean;
onBack: () => void;
onSubmitText: (text: string, quickActionKey?: string) => void;
onPrimaryAction: () => void;
@@ -299,6 +300,7 @@ export function CreationAgentWorkspace({
referenceImagePreviewSrc = null,
referenceImageLabel = null,
referenceImageError = null,
showBackButton = true,
onBack,
onSubmitText,
onPrimaryAction,
@@ -465,18 +467,22 @@ export function CreationAgentWorkspace({
return (
<div className="mx-auto flex h-full min-h-0 w-full max-w-6xl flex-col gap-3 overflow-hidden px-1 sm:px-0">
<div
className={`relative overflow-hidden rounded-[1.8rem] px-4 py-4 text-white shadow-[0_20px_60px_rgba(15,23,42,0.18)] sm:px-5 ${theme.heroClass}`}
className={`creation-agent-hero relative overflow-hidden rounded-[1.8rem] px-4 py-4 text-white shadow-[0_20px_60px_rgba(15,23,42,0.18)] sm:px-5 ${theme.heroClass}`}
>
<div className="flex items-start justify-between gap-3">
<button
type="button"
aria-label="返回"
onClick={onBack}
disabled={isBusy}
className="inline-flex h-10 w-10 items-center justify-center rounded-full border border-white/16 bg-white/10 text-white/84 disabled:opacity-45"
>
<ArrowLeft className="h-4 w-4" />
</button>
{showBackButton ? (
<button
type="button"
aria-label="返回"
onClick={onBack}
disabled={isBusy}
className="creation-agent-hero__icon-button inline-flex h-10 w-10 items-center justify-center rounded-full border border-white/20 bg-white/10 text-white/80 disabled:opacity-45"
>
<ArrowLeft className="h-4 w-4" />
</button>
) : (
<span aria-hidden="true" />
)}
{canShowPrimaryAction ? (
<button
type="button"
@@ -498,7 +504,7 @@ export function CreationAgentWorkspace({
</div>
) : null}
{session.assistantSummary ? (
<div className="mt-2 max-w-2xl text-sm leading-6 text-white/76">
<div className="creation-agent-hero__summary mt-2 max-w-2xl text-sm leading-6 text-white/75">
{session.assistantSummary}
</div>
) : null}
@@ -507,15 +513,15 @@ export function CreationAgentWorkspace({
<div className={hasHeroCopy ? 'mt-4' : 'mt-6'}>
<div className="mb-2 flex items-center justify-between gap-3">
<span className="text-xs font-semibold tracking-[0.14em] text-white/72">
<span className="creation-agent-hero__progress-label text-xs font-semibold tracking-[0.14em] text-white/75">
</span>
<span className="text-sm font-semibold text-white/88">
<span className="creation-agent-hero__progress-value text-sm font-semibold text-white/90">
{progress}%
</span>
</div>
<div
className="h-2 overflow-hidden rounded-full bg-white/12"
className="creation-agent-hero__progress-track h-2 overflow-hidden rounded-full bg-white/20"
role="progressbar"
aria-valuemin={0}
aria-valuemax={100}
@@ -526,7 +532,7 @@ export function CreationAgentWorkspace({
style={{ width: progressFillWidth }}
/>
</div>
<div className="mt-2 text-xs leading-5 text-white/64">
<div className="creation-agent-hero__progress-hint mt-2 text-xs leading-5 text-white/70">
{resolveCreationAgentProgressHint(progress, progressCopy)}
</div>
</div>
@@ -539,7 +545,7 @@ export function CreationAgentWorkspace({
type="button"
disabled={isBusy}
onClick={() => onQuickAction?.(action)}
className="rounded-full border border-white/14 bg-white/10 px-3 py-1.5 text-xs font-semibold text-white/78 disabled:cursor-not-allowed disabled:opacity-45"
className="creation-agent-hero__quick-action rounded-full border border-white/20 bg-white/10 px-3 py-1.5 text-xs font-semibold text-white/80 disabled:cursor-not-allowed disabled:opacity-45"
>
{action.label}
</button>
@@ -582,7 +588,7 @@ export function CreationAgentWorkspace({
</div>
{referenceImagePreviewSrc ? (
<div className="mx-4 mb-3 flex items-center gap-3 rounded-[1rem] border border-[var(--platform-subpanel-border)] bg-white/72 px-3 py-2">
<div className="mx-4 mb-3 flex items-center gap-3 rounded-[1rem] border border-[var(--platform-subpanel-border)] bg-white/70 px-3 py-2">
<div className="h-12 w-12 shrink-0 overflow-hidden rounded-[0.9rem] bg-[var(--platform-track-fill)]">
<img
src={referenceImagePreviewSrc}