Browse Source

style: right-align Run/Apply buttons in ControlPanel

Wrap each button in a flex justify-end container so they sit in the
bottom-right of the settings panel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
handoff-20260429-1057
shrimbly 4 months ago
parent
commit
665336d2be
  1. 12
      src/components/nodes/ControlPanel.tsx

12
src/components/nodes/ControlPanel.tsx

@ -482,6 +482,7 @@ function GenerateImageControls({ node }: { node: Node }) {
)}
</div>
<div className="flex justify-end">
<button
onClick={() => regenerateNode(node.id)}
disabled={isRunning}
@ -490,6 +491,7 @@ function GenerateImageControls({ node }: { node: Node }) {
<svg className="w-3 h-3" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z" /></svg>
{isRunning ? "Running..." : "Run"}
</button>
</div>
{isBrowseDialogOpen && (
<ModelSearchDialog
@ -584,6 +586,7 @@ function GenerateVideoControls({ node }: { node: Node }) {
)}
</div>
<div className="flex justify-end">
<button
onClick={() => regenerateNode(node.id)}
disabled={isRunning}
@ -592,6 +595,7 @@ function GenerateVideoControls({ node }: { node: Node }) {
<svg className="w-3 h-3" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z" /></svg>
{isRunning ? "Running..." : "Run"}
</button>
</div>
{isBrowseDialogOpen && (
<ModelSearchDialog
@ -688,6 +692,7 @@ function Generate3DControls({ node }: { node: Node }) {
)}
</div>
<div className="flex justify-end">
<button
onClick={() => regenerateNode(node.id)}
disabled={isRunning}
@ -696,6 +701,7 @@ function Generate3DControls({ node }: { node: Node }) {
<svg className="w-3 h-3" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z" /></svg>
{isRunning ? "Running..." : "Run"}
</button>
</div>
{isBrowseDialogOpen && (
<ModelSearchDialog
@ -719,6 +725,7 @@ function GenerateAudioControls({ node }: { node: Node }) {
<div className="text-xs text-neutral-400">
Audio generation settings
</div>
<div className="flex justify-end">
<button
onClick={() => regenerateNode(node.id)}
disabled={isRunning}
@ -728,6 +735,7 @@ function GenerateAudioControls({ node }: { node: Node }) {
{isRunning ? "Running..." : "Run"}
</button>
</div>
</div>
);
}
@ -836,6 +844,7 @@ function LLMControls({ node }: { node: Node }) {
/>
</div>
<div className="flex justify-end">
<button
onClick={() => regenerateNode(node.id)}
disabled={isRunning}
@ -845,6 +854,7 @@ function LLMControls({ node }: { node: Node }) {
{isRunning ? "Running..." : "Run"}
</button>
</div>
</div>
);
}
@ -937,6 +947,7 @@ function EaseCurveControls({ node }: { node: Node }) {
/>
</div>
<div className="flex justify-end">
<button
onClick={() => regenerateNode(node.id)}
disabled={isRunning}
@ -945,6 +956,7 @@ function EaseCurveControls({ node }: { node: Node }) {
<svg className="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" /></svg>
{isRunning ? "Applying..." : "Apply"}
</button>
</div>
{showPresets && typeof document !== 'undefined' && createPortal(
<div

Loading…
Cancel
Save