{activeTool.replace(/-/g, " ").replace(/^shape /, "")}
- {/* Tool-specific option components are rendered here by each agent */}
-
+
+ {OptionsComponent && }
+
);
}
diff --git a/apps/web/src/components/editor/editor-right-panel.tsx b/apps/web/src/components/editor/editor-right-panel.tsx
index 827d094f..1d36c51d 100644
--- a/apps/web/src/components/editor/editor-right-panel.tsx
+++ b/apps/web/src/components/editor/editor-right-panel.tsx
@@ -2,7 +2,11 @@
import { ChevronRight } from "lucide-react";
import { cn } from "@/lib/utils";
import { useEditorStore } from "@/stores/editor-store";
+import { AdjustmentsPanel } from "./panels/adjustments-panel";
+import { ColorPanel } from "./panels/color-panel";
+import { HistoryPanel } from "./panels/history-panel";
import { LayersPanel } from "./panels/layers-panel";
+import { NavigatorPanel } from "./panels/navigator-panel";
const TABS = [
{ id: "layers" as const, label: "Layers" },
@@ -15,6 +19,7 @@ export function EditorRightPanel() {
const activeTab = useEditorStore((s) => s.rightPanelTab);
const setTab = useEditorStore((s) => s.setRightPanelTab);
const togglePanel = useEditorStore((s) => s.toggleRightPanel);
+ const sourceImageUrl = useEditorStore((s) => s.sourceImageUrl);
if (!visible) {
return (
@@ -31,6 +36,10 @@ export function EditorRightPanel() {
return (
+ {/* Navigator always visible when image loaded */}
+ {sourceImageUrl &&
}
+
+ {/* Tabs */}
{TABS.map((tab) => (
+
+ {/* Tab content */}
{activeTab === "layers" &&
}
- {activeTab !== "layers" &&
}
+ {activeTab === "adjustments" &&
}
+ {activeTab === "history" &&
}
+
+
+ {/* Color panel always visible at bottom */}
+
+
- {/* Color panel always visible at bottom (Agent 5) */}
-
);
}