diff --git a/web/src/components/canvas/canvas-node-prompt-panel.tsx b/web/src/components/canvas/canvas-node-prompt-panel.tsx index baa627620..af30e3fe0 100644 --- a/web/src/components/canvas/canvas-node-prompt-panel.tsx +++ b/web/src/components/canvas/canvas-node-prompt-panel.tsx @@ -113,7 +113,7 @@ export function CanvasNodePromptPanel({ node, isRunning, onPromptChange, onConfi } as CSSProperties; const composerSurfaceStyle = { ...composerTokens, - border: `1px solid ${theme.node.edge}`, + border: `1px solid color-mix(in srgb, ${theme.node.edge} 42%, transparent)`, background: theme.node.panel, color: theme.node.text, boxShadow: theme.node.shadow, diff --git a/web/src/components/canvas/canvas-node.tsx b/web/src/components/canvas/canvas-node.tsx index e407fb66f..cb5209fb7 100644 --- a/web/src/components/canvas/canvas-node.tsx +++ b/web/src/components/canvas/canvas-node.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useEffect, useRef, useState } from "react"; import type { ReactNode } from "react"; -import { AlertCircle, BookOpenCheck, CheckCircle2, ChevronRight, Clapperboard, Copy, Download, Image as ImageIcon, Lock, Maximize2, Music2, Pencil, Plus, RefreshCw, Replace, Settings2, Star, Trash2, Type, Upload, Video } from "lucide-react"; +import { AlertCircle, BookOpenCheck, CheckCircle2, ChevronRight, Clapperboard, Copy, Download, Image as ImageIcon, Lock, Maximize2, Music2, Pencil, Plus, RefreshCw, Settings2, Star, Trash2, Type, Video } from "lucide-react"; import { useCanvasNodeActions } from "./canvas-node-action-context"; @@ -95,7 +95,6 @@ export const CanvasNode = React.memo(function CanvasNode({ onOpenTaskDetails, onOpenVersions, onViewImage, - onReplaceMedia, onOpenTextEditor, onOpenDirector, onOpenDrawing, @@ -112,7 +111,6 @@ export const CanvasNode = React.memo(function CanvasNode({ const hasAudioContent = data.type === CanvasNodeType.Audio && Boolean(data.metadata?.content); const isComposerNode = data.type === CanvasNodeType.Config; const hasMediaContent = hasImageContent || hasVideoContent || hasAudioContent; - const hasReplaceAction = !readOnly && (data.type === CanvasNodeType.Image || data.type === CanvasNodeType.Video); const isBatchRoot = data.type === CanvasNodeType.Image && Boolean(data.metadata?.isBatchRoot) && batchCount > 1; const isBatchChild = data.type === CanvasNodeType.Image && Boolean(data.metadata?.batchRootId); const showStatusTrack = Boolean(resourceLabel || data.metadata?.locked || isBatchRoot || (isBatchChild && !readOnly) || (hasMediaContent && !readOnly)); @@ -367,25 +365,6 @@ export const CanvasNode = React.memo(function CanvasNode({ /> - {hasReplaceAction && (!hasMediaContent || isSelected || hovered) ? ( -
event.stopPropagation()} - onPointerDown={(event) => event.stopPropagation()} - > - -
- ) : null} - {data.type === CanvasNodeType.Text && data.metadata?.workflowKind !== "character" && !readOnly ? (
) : null} {showStatusTrack ? ( -
+
{resourceLabel && data.type !== CanvasNodeType.Image ? : null} {hasMediaContent && !readOnly ? : null} {isBatchRoot ? onToggleBatch?.(data.id)} /> : null} @@ -638,7 +617,7 @@ function NodeExternalHeader({ node, scale, active, editable, editing, draft, the style={{ maxWidth: maxHeaderWidth, borderRadius: "var(--r-sm)", - background: theme.node.panel, + background: "transparent", paddingInline: "var(--space-1-half)", color: active ? theme.node.text : theme.node.label, transform: `scale(var(--canvas-live-inverse-scale, ${inverseScale}))`, @@ -653,7 +632,7 @@ function NodeExternalHeader({ node, scale, active, editable, editing, draft, the autoFocus value={draft} className="h-6 min-w-20 max-w-[190px] flex-1 truncate rounded bg-transparent px-1.5 text-xs font-medium outline-none" - style={{ background: theme.spatial.elevated, color: theme.node.text }} + style={{ background: "transparent", color: theme.node.text }} onChange={(event) => onDraftChange(event.target.value)} onFocus={(event) => event.currentTarget.select()} onBlur={onCommit} diff --git a/web/src/components/canvas/canvas-project-sidebar.tsx b/web/src/components/canvas/canvas-project-sidebar.tsx index 4ad72af7b..b1cf5e3a1 100644 --- a/web/src/components/canvas/canvas-project-sidebar.tsx +++ b/web/src/components/canvas/canvas-project-sidebar.tsx @@ -242,7 +242,7 @@ export function CanvasProjectSidebar({ projectId, detail, onAddChapter, onLocate
-
@@ -308,16 +315,8 @@ export function CanvasScriptNodeContent({ ) : null}
-
- onUpdateRow(row.id, { durationSeconds: Math.max(1, row.durationSeconds - 1) })}> - - - {row.durationSeconds}s - onUpdateRow(row.id, { durationSeconds: Math.min(60, row.durationSeconds + 1) })}> - - -
onUpdateRow(row.id, { plotDescription: value })} borderColor={theme.node.stroke} /> + onUpdateRow(row.id, { videoMotionPrompt: value })} borderColor={theme.node.stroke} /> onUpdateRow(row.id, { dialogue: value })} borderColor={theme.node.stroke} />