diff --git a/src/components/nodes/BaseNode.tsx b/src/components/nodes/BaseNode.tsx
index 4160d480..e591b914 100644
--- a/src/components/nodes/BaseNode.tsx
+++ b/src/components/nodes/BaseNode.tsx
@@ -21,6 +21,8 @@ interface BaseNodeProps {
fullBleed?: boolean;
/** Media URL (image/video) to use for aspect-fit resize on resize-handle double-click */
aspectFitMedia?: string | null;
+ /** When true, bottom corners lose rounding so the selection ring connects to the settings panel below */
+ settingsExpanded?: boolean;
}
/**
@@ -62,6 +64,7 @@ export function BaseNode({
minHeight = 100,
fullBleed = false,
aspectFitMedia,
+ settingsExpanded = false,
}: BaseNodeProps) {
const currentNodeIds = useWorkflowStore((state) => state.currentNodeIds);
const setHoveredNodeId = useWorkflowStore((state) => state.setHoveredNodeId);
@@ -127,7 +130,7 @@ export function BaseNode({
diff --git a/src/components/nodes/GenerateAudioNode.tsx b/src/components/nodes/GenerateAudioNode.tsx
index 15e5236b..80e7f05d 100644
--- a/src/components/nodes/GenerateAudioNode.tsx
+++ b/src/components/nodes/GenerateAudioNode.tsx
@@ -232,6 +232,7 @@ export function GenerateAudioNode({ id, data, selected }: NodeProps
{/* Input handles - ALWAYS use same IDs and positions for connection stability */}
diff --git a/src/components/nodes/GenerateVideoNode.tsx b/src/components/nodes/GenerateVideoNode.tsx
index 106d050f..6aeedca7 100644
--- a/src/components/nodes/GenerateVideoNode.tsx
+++ b/src/components/nodes/GenerateVideoNode.tsx
@@ -444,6 +444,7 @@ export function GenerateVideoNode({ id, data, selected }: NodeProps
{/* Dynamic input handles based on model schema */}
diff --git a/src/components/nodes/LLMGenerateNode.tsx b/src/components/nodes/LLMGenerateNode.tsx
index 60083db0..bc932177 100644
--- a/src/components/nodes/LLMGenerateNode.tsx
+++ b/src/components/nodes/LLMGenerateNode.tsx
@@ -125,6 +125,7 @@ export function LLMGenerateNode({ id, data, selected }: NodeProps
{/* Image input - optional */}