diff --git a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx
index 33846275..dff0cd1e 100644
--- a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx
+++ b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx
@@ -173,22 +173,556 @@ function EntrepType({ value, onChange }) {
}
function LayoutPreview({ styleId }: { styleId: string }) {
- // Styles are 100% width, 104px tall absolute layouts resembling the wireframes.
+ // Ultra-high-fidelity CSS-rendered miniatures representing your actual page-dashboard.jsx designs!
const isDark = styleId === "rail";
const accentColor = "var(--accent)";
+ // Theme palettes from page-dashboard.jsx
+ const c = isDark
+ ? {
+ bg: "#0e0f12",
+ panel: "#16171d",
+ border: "rgba(255,255,255,0.06)",
+ text: "#f5f4f2",
+ subtext: "#a09fa6",
+ muted: "#686972",
+ accent: "var(--accent)",
+ up: "#22c55e",
+ down: "#ff4d5e",
+ }
+ : {
+ bg: "#fafaf9",
+ panel: "#ffffff",
+ border: "#ebebe6",
+ text: "#1a1a1a",
+ subtext: "#5a5a5e",
+ muted: "#a09a90",
+ accent: "var(--accent)",
+ up: "#2e7d32",
+ down: "#d32f2f",
+ };
+
const wireLine = (w: string | number, opacity = 0.25) => (
);
+ // High-fidelity Avatars matching your screenshots (MR, TR, DP, SK)
+ const MiniAvatar = ({
+ text: label,
+ color,
+ }: {
+ text: string;
+ color: string;
+ }) => (
+
+ {label}
+
+ );
+
+ // Common high-fidelity dashboard body matching page-dashboard.jsx
+ const renderDashboardMockup = () => (
+
+ {/* Header */}
+
+
+
+ Workspace dashboard
+
+
+ Good afternoon, Mira
+
+
+ 3 deals moved stage today · 12 unread in Inbox · 1 task overdue
+
+
+
+
+
+ {/* KPI Strip */}
+
+ {[
+ { l: "Revenue · MTD", v: "€286,420", d: "+18.4%", up: true },
+ { l: "Active deals", v: "168", d: "+12", up: true },
+ { l: "Win rate · 30d", v: "34.2%", d: "−1.1%", up: false },
+ { l: "Pipeline ratio", v: "4.8×", d: "healthy", up: true },
+ ].map((k, i) => (
+
+
+
+ {k.l}
+
+
+ {k.d}
+
+
+
+ {k.v}
+
+
+
+ ))}
+
+
+ {/* Main Grid: charts, activity and leaderboards */}
+
+ {/* Left column: Daily Revenue Chart + Recent Activity */}
+
+ {/* Revenue Daily Chart */}
+
+
+ Revenue, daily
+
+
+ {[10, 16, 22, 18, 25, 8, 6, 14, 20, 26, 22, 28, 12, 10].map(
+ (h, idx) => (
+
+ ),
+ )}
+
+
+
+ {/* Recent Activity Card */}
+
+
+ Recent activity
+
+
+ {[
+ {
+ av: "MR",
+ col: "#d4b8a8",
+ name: "Mira Reyes",
+ action: "moved Q3 to ",
+ highlight: "Negotiation",
+ hlCol: c.accent,
+ },
+ {
+ av: "TR",
+ col: "#c2d3a8",
+ name: "Theo Roux",
+ action: "logged call with ",
+ highlight: "Sun Kim",
+ hlCol: c.text,
+ },
+ {
+ av: "DP",
+ col: "#b8d4e8",
+ name: "Devi Patel",
+ action: "closed ",
+ highlight: "Halcyon",
+ hlCol: c.text,
+ },
+ ].map((act, i) => (
+
+
+
+
+ {act.name}
+
+
+ {act.action}
+
+ {act.highlight}
+
+
+
+
+ ))}
+
+
+
+
+ {/* Right column: Pipeline Funnel + Team leaderboard */}
+
+ {/* Pipeline Funnel */}
+
+
+ Pipeline funnel
+
+
+ {[
+ { s: "New", w: "100%", col: "#5e5cff" },
+ { s: "Qual", w: "80%", col: "#6d5cff" },
+ { s: "Prop", w: "60%", col: "#7c5cff" },
+ { s: "Nego", w: "40%", col: "#8c5cff" },
+ { s: "Won", w: "20%", col: "#22c55e" },
+ ].map((f, i) => (
+
+ ))}
+
+
+
+ {/* Team Leaders Card */}
+
+
+ Team · this month
+
+
+ {[
+ { av: "MR", col: "#d4b8a8", name: "Mira Reyes", val: "€124k" },
+ { av: "DP", col: "#b8d4e8", name: "Devi Patel", val: "€86k" },
+ { av: "TR", col: "#c2d3a8", name: "Theo Roux", val: "€62k" },
+ ].map((team, i) => (
+
+
+
+
+
+ {team.name}
+
+
+ {team.val}
+
+
+
+
+
+ ))}
+
+
+
+
+
+ );
+
let content;
if (styleId === "sidebar") {
// Left-side menu column + main dashboard area — Light/Minimal CRM theme (Screen 3)
@@ -204,7 +738,7 @@ function LayoutPreview({ styleId }: { styleId: string }) {
{/* Sidebar */}
- {/* Logo */}
-
+ {/* Logo / Workspace Selector */}
+
- {wireLine(18, 0.55)}
+
+
+ Lattice Studio
+
+
+ Free · 4 members
+
+
{/* Mini Search box */}
- {/* Menu items */}
+ >
+ {wireLine(16, 0.15)}
+
+ {/* Menu Sections (VIEWS, TOOLS, ADMIN) */}
- {wireLine(24, 0.45)}
- {wireLine(20, 0.3)}
- {wireLine(26, 0.3)}
-
-
- {/* Main Dashboard (Light) */}
-
- {/* Header */}
-
- {wireLine(36, 0.65)}
-
-
- {/* 4 Mini Cards Grid */}
-
- {[1, 2, 3, 4].map((i) => (
-
- {wireLine("50%", 0.3)}
+ {/* Standard Links */}
+
- {/* Charts/Table Row */}
-
-
- {wireLine("40%", 0.4)}
- {/* Simulated bars */}
- {[6, 12, 10, 16, 20, 14, 8].map((h, idx) => (
-
- ))}
+ {wireLine(14, 0.35)}
+
+
+ {wireLine(16, 0.35)}
-
- {wireLine("70%", 0.4)}
- {wireLine("100%", 0.15)}
- {wireLine("90%", 0.15)}
+
+ {/* Views */}
+
+
+ VIEWS
+
+ {["Companies", "People", "Opportunities"].map((v) => (
+
+ {wireLine(24, 0.35)}
+
+ ))}
+
+
+ {/* Tools */}
+
+
+ TOOLS
+
+ {["Insights", "Automations", "Docs"].map((v) => (
+
+ {wireLine(20, 0.35)}
+
+ ))}
+
+
+ {/* Admin */}
+
+
+ ADMIN
+
+
+ {wireLine(18, 0.35)}
+
+ {/* Main Dashboard (Light) */}
+ {renderDashboardMockup()}
);
} else if (styleId === "topbar") {
@@ -388,7 +947,7 @@ function LayoutPreview({ styleId }: { styleId: string }) {
style={{
height: 20,
borderBottom: "1px solid rgba(255,255,255,0.08)",
- padding: "0 8px",
+ padding: "0 10px",
display: "flex",
alignItems: "center",
justifyContent: "space-between",
@@ -405,17 +964,56 @@ function LayoutPreview({ styleId }: { styleId: string }) {
opacity: 0.9,
}}
/>
-
-
+
+ Lattice
+
+
+ /
+
+
+
+ /
+
+
+ dashboard
+
{/* Miniature ⌘K Bar */}
- {/* Light Dashboard below */}
+
+ {/* Page tabs secondary bar */}
- {/* Header */}
+ {["Overview", "Reports", "Goals", "Anomalies", "Custom"].map(
+ (tab, idx) => (
+
+ {tab}
+
+ ),
+ )}
+
+
+ {/* Light Dashboard below */}
+ {renderDashboardMockup()}
+
+ );
+ } else if (styleId === "rail") {
+ // Icon rail + secondary vertical list panel — Complete Dark-mode Dashboard (Screen 1)
+ content = (
+
+ {/* Far-left Icon Rail (Black) */}
+
+
+ {[1, 2, 3, 4].map((i) => (
+
+ ))}
+
+ {/* Secondary List Panel (Dark) */}
+
+ {/* Group Header */}
- {wireLine(36, 0.65)}
- {wireLine(24, 0.35)}
+
+ MY DASHBOARDS
+
- {/* 4 Mini Cards Grid */}
-
- {[1, 2, 3, 4].map((i) => (
+ {/* Active lists */}
+
+ {[
+ { n: "Workspace overview", s: "default", active: true },
+ { n: "Revenue · weekly", s: "shared by Theo" },
+ { n: "Pipeline health", s: "auto-refresh" },
+ { n: "Team performance", s: "private" },
+ ].map((dash, idx) => (
- {wireLine("50%", 0.3)}
-
+ >
+ {dash.n}
+
+
{dash.s}
))}
- {/* Charts Row */}
-
-
-
- {[6, 12, 10, 16, 20, 14, 8].map((h, idx) => (
-
- ))}
-
-
-
- {wireLine("70%", 0.4)}
- {wireLine("100%", 0.15)}
-
-
+ {/* Main Content Area (Dark) */}
+ {renderDashboardMockup()}
);
- } else if (styleId === "rail") {
+ } else if (styleId === "flux") {
// Icon rail + secondary vertical list panel — Complete Dark-mode Dashboard (Screen 1)
content = (