diff --git a/src/components/ProjectSetupModal.tsx b/src/components/ProjectSetupModal.tsx index 60ca0497..a8f6ba4d 100644 --- a/src/components/ProjectSetupModal.tsx +++ b/src/components/ProjectSetupModal.tsx @@ -381,39 +381,47 @@ export function ProjectSetupModal({ if (!isOpen) return null; return ( -
+
e.stopPropagation()} + >
e.stopPropagation()} onKeyDown={handleKeyDown} > -
-

- {mode === "new" ? "New Project" : "Project Settings"} -

+
+
+ +

+ {mode === "new" ? "New Project" : "Project Settings"} +

+
{/* Tab Bar */} -
+
@@ -421,7 +429,7 @@ export function ProjectSetupModal({
{/* Scrollable tab content area */} -
+
{/* Project Tab Content */} {activeTab === "project" && ( @@ -436,7 +444,7 @@ export function ProjectSetupModal({ onChange={(e) => setName(e.target.value)} placeholder="my-project" autoFocus - className="w-full px-3 py-2 bg-neutral-900 border border-neutral-600 rounded text-neutral-100 text-sm focus:outline-none focus:border-neutral-500" + className="w-full px-3 py-2 bg-neutral-900 border border-neutral-600 rounded-lg text-neutral-100 text-sm focus:outline-none focus:border-neutral-500" />
@@ -450,18 +458,18 @@ export function ProjectSetupModal({ value={directoryPath} onChange={(e) => setDirectoryPath(e.target.value)} placeholder="/Users/username/projects/my-project" - className="flex-1 px-3 py-2 bg-neutral-900 border border-neutral-600 rounded text-neutral-100 text-sm focus:outline-none focus:border-neutral-500" + className="flex-1 px-3 py-2 bg-neutral-900 border border-neutral-600 rounded-lg text-neutral-100 text-sm focus:outline-none focus:border-neutral-500" />
-

+

Workflow files and images will be saved here. Subfolders for inputs and generations will be auto-created.

@@ -470,7 +478,7 @@ export function ProjectSetupModal({
-

+

Add API keys via .env.local for better security. Keys added here override .env and are stored in your browser.

@@ -897,7 +899,7 @@ export function ProjectSetupModal({ ) : ( <> - System default (Gemini nano-banana-pro) + System default (Gemini nano-banana-pro)
{!localNodeDefaults.llm ? ( -

Using system defaults (Google Gemini 3 Flash)

+

Using system defaults (Google Gemini 3 Flash)

) : null} {/* Provider dropdown */} @@ -1092,14 +1094,14 @@ export function ProjectSetupModal({ className="flex-1 h-1 bg-neutral-700 rounded-lg appearance-none cursor-pointer accent-neutral-400" />
-

+

Maximum number of nodes to execute in parallel during workflow execution. Higher values may improve speed but increase API rate limit risk.

-

+

These defaults are applied when creating nodes via keyboard shortcuts (Shift+G, Shift+L, etc).

@@ -1107,106 +1109,107 @@ export function ProjectSetupModal({ {/* Canvas Tab Content */} {activeTab === "canvas" && ( -
+
+

Configure how you navigate and interact with the canvas.

{/* Pan Mode */} -
-

Pan Mode

-
- {([ - { value: "space" as PanMode, label: "Space + Drag", description: "Hold Space and drag to pan (default)" }, - { value: "middleMouse" as PanMode, label: "Middle Mouse", description: "Click and drag with middle mouse button" }, - { value: "always" as PanMode, label: "Always On", description: "Pan without holding any keys" }, - ] as const).map((option) => ( - - ))} +
+
+
+ Pan Mode +

+ {localCanvasSettings.panMode === "space" && "Hold Space and drag to pan"} + {localCanvasSettings.panMode === "middleMouse" && "Click and drag with middle mouse button"} + {localCanvasSettings.panMode === "always" && "Pan without holding any keys"} +

+
+
+ {([ + { value: "space" as PanMode, label: "Space + Drag" }, + { value: "middleMouse" as PanMode, label: "Middle Mouse" }, + { value: "always" as PanMode, label: "Always On" }, + ] as const).map((option) => ( + + ))} +
{/* Zoom Mode */} -
-

Zoom Mode

-
- {([ - { value: "altScroll" as ZoomMode, label: "Alt + Scroll", description: "Hold Alt and scroll to zoom (default)" }, - { value: "ctrlScroll" as ZoomMode, label: "Ctrl + Scroll", description: "Hold Ctrl/Cmd and scroll to zoom" }, - { value: "scroll" as ZoomMode, label: "Scroll", description: "Scroll to zoom without holding any keys" }, - ] as const).map((option) => ( - - ))} +
+
+
+ Zoom Mode +

+ {localCanvasSettings.zoomMode === "altScroll" && "Hold Alt and scroll to zoom"} + {localCanvasSettings.zoomMode === "ctrlScroll" && "Hold Ctrl/Cmd and scroll to zoom"} + {localCanvasSettings.zoomMode === "scroll" && "Scroll to zoom without modifier keys"} +

+
+
+ {([ + { value: "altScroll" as ZoomMode, label: "Alt + Scroll" }, + { value: "ctrlScroll" as ZoomMode, label: "Ctrl + Scroll" }, + { value: "scroll" as ZoomMode, label: "Scroll" }, + ] as const).map((option) => ( + + ))} +
{/* Selection Mode */} -
-

Selection Mode

-
- {([ - { value: "click" as SelectionMode, label: "Click", description: "Click to select nodes (default)" }, - { value: "altDrag" as SelectionMode, label: "Alt + Drag", description: "Hold Alt and drag to select multiple nodes" }, - { value: "shiftDrag" as SelectionMode, label: "Shift + Drag", description: "Hold Shift and drag to select multiple nodes" }, - ] as const).map((option) => ( - - ))} +
+
+
+ Selection Mode +

+ {localCanvasSettings.selectionMode === "click" && "Click to select nodes"} + {localCanvasSettings.selectionMode === "altDrag" && "Hold Alt and drag to select"} + {localCanvasSettings.selectionMode === "shiftDrag" && "Hold Shift and drag to select"} +

+
+
+ {([ + { value: "click" as SelectionMode, label: "Click" }, + { value: "altDrag" as SelectionMode, label: "Alt + Drag" }, + { value: "shiftDrag" as SelectionMode, label: "Shift + Drag" }, + ] as const).map((option) => ( + + ))} +
@@ -1215,7 +1218,7 @@ export function ProjectSetupModal({
{/* Fixed footer */} -
+