diff --git a/src/components/flows/flow-builder.tsx b/src/components/flows/flow-builder.tsx index a1eaab6..a7c4fc8 100644 --- a/src/components/flows/flow-builder.tsx +++ b/src/components/flows/flow-builder.tsx @@ -657,7 +657,14 @@ export function FlowBuilder({ initialFlow, initialNodes }: FlowBuilderProps) { )} - + {/* Sticky-bottom so the activate-readiness status follows the + user as they scroll through nodes. The parent
in the + dashboard shell is the scroll container; this stays pinned + to the viewport bottom (with a 1rem gap) until the page + naturally ends, at which point it falls back into flow. */} +
+ +
); } @@ -2041,9 +2048,12 @@ function ValidationPanel({ onJump: (key: string) => void; }) { if (issues.length === 0) { + // Slate-950 base + emerald accents so the panel stays readable when + // sticky-positioned over scrolled-behind node cards (a translucent + // bg-emerald-500/10 would bleed through ugly). return ( -
- +
+ No issues. Ready to activate.
); @@ -2051,7 +2061,12 @@ function ValidationPanel({ const errors = issues.filter((i) => i.severity === "error"); const warnings = issues.filter((i) => i.severity === "warning"); return ( -
+
0 ? "border-red-500/40" : "border-amber-500/40", + )} + >
{errors.length > 0 ? (