diff --git a/gtm-architect/v2/components/Layout.tsx b/gtm-architect/v2/components/Layout.tsx new file mode 100644 index 00000000..0bacedcf --- /dev/null +++ b/gtm-architect/v2/components/Layout.tsx @@ -0,0 +1,158 @@ +import React from 'react'; +import { Phase, Language, Theme } from '../types'; +import { Activity, Target, Crosshair, Map, FileText, CheckCircle, Lock, Moon, Sun, Languages, ShieldCheck, Terminal, LayoutTemplate, TrendingUp, Shield } from 'lucide-react'; + +interface LayoutProps { + currentPhase: Phase; + maxAllowedPhase: Phase; + onPhaseSelect: (phase: Phase) => void; + children: React.ReactNode; + theme: Theme; + toggleTheme: () => void; + language: Language; + setLanguage: (lang: Language) => void; + labels: any; +} + +const getStepIcon = (id: Phase) => { + switch(id) { + case Phase.Input: return Terminal; + case Phase.ProductAnalysis: return Activity; + case Phase.ICPDiscovery: return Target; + case Phase.WhaleHunting: return Crosshair; + case Phase.Strategy: return Map; + case Phase.AssetGeneration: return FileText; + case Phase.SalesEnablement: return ShieldCheck; + case Phase.LandingPage: return LayoutTemplate; + case Phase.BusinessCase: return TrendingUp; + case Phase.TechTranslator: return Shield; + default: return Activity; + } +} + +export const Layout: React.FC = ({ + currentPhase, + maxAllowedPhase, + onPhaseSelect, + children, + theme, + toggleTheme, + language, + setLanguage, + labels +}) => { + + const steps = [ + { id: Phase.Input, label: labels.initTitle ? 'Input' : 'Input' }, + { id: Phase.ProductAnalysis, label: labels.phase1 }, + { id: Phase.ICPDiscovery, label: labels.phase2 }, + { id: Phase.WhaleHunting, label: labels.phase3 }, + { id: Phase.Strategy, label: labels.phase4 }, + { id: Phase.AssetGeneration, label: labels.phase5 }, + { id: Phase.SalesEnablement, label: labels.phase6 }, + { id: Phase.LandingPage, label: labels.phase7 }, + { id: Phase.BusinessCase, label: labels.phase8 }, + { id: Phase.TechTranslator, label: labels.phase9 }, + ]; + + return ( +
+ {/* Sidebar */} +
+
+

+
+ ROBOPLANET +

+

GTM Architect Engine

+
+ +
+ + +
+ + + +
+ System Status: ONLINE
+ Language: {language.toUpperCase()}
+ Mode: {theme.toUpperCase()} +
+
+ + {/* Main Content */} +
+
+ {children} +
+
+
+ ); +}; \ No newline at end of file