{title}
{description && ({description}
)}import { useState } from "react"; import { Link, useLocation, Navigate } from "react-router-dom"; import { Menu, X, ChevronRight, Lock, Home } from "lucide-react"; import { useAuth } from "@/contexts/AuthContext"; interface NavSpace { id: string; title: string; emoji: string; description: string; pages: NavPage[]; } interface NavPage { title: string; path: string; description?: string; } const spaces: NavSpace[] = [ { id: "space1", title: "START HERE", emoji: "🚀", description: "For All New Members", pages: [ { title: "Welcome", path: "/internal-docs", description: "Welcome to AeThex Ecosystem", }, { title: "Axiom Model", path: "/internal-docs/axiom-model", description: "Our 3-entity structure", }, { title: "Find Your Role", path: "/internal-docs/find-your-role", description: "Who are you in the ecosystem?", }, ], }, { id: "space2", title: "ECOSYSTEM-WIDE", emoji: "🌍", description: "Universal Rules", pages: [ { title: "Code of Conduct", path: "/internal-docs/code-of-conduct", description: "How we act", }, { title: "Communication Protocol", path: "/internal-docs/communication", description: "Discord, Slack, meetings", }, { title: "Meeting Cadence", path: "/internal-docs/meetings", description: "When & how we meet", }, { title: "Brand & Voice", path: "/internal-docs/brand", description: "How we talk publicly", }, { title: "Tech Stack", path: "/internal-docs/tech-stack", description: "Tools we use", }, ], }, { id: "space3", title: "THE FOUNDATION", emoji: "🏛️", description: "The Guardian", pages: [ { title: "Governance Model", path: "/internal-docs/foundation-governance", description: "The Parliament", }, { title: "Open-Source Protocol", path: "/internal-docs/foundation-protocol", description: "The AI Foundry", }, { title: "Community Programs", path: "/internal-docs/foundation-programs", description: "The University", }, ], }, { id: "space4", title: "THE CORP", emoji: "⚙️", description: "The Engine", pages: [ { title: "Product & Engineering", path: "/internal-docs/corp-product", description: "Development lifecycle", }, { title: "Product Blueprints", path: "/internal-docs/corp-blueprints", description: "The Factory", }, { title: "Client & Sales Ops", path: "/internal-docs/corp-clients", description: "Client onboarding & hiring", }, { title: "Platform Strategy", path: "/internal-docs/corp-platform", description: "The Monolith", }, ], }, { id: "space5", title: "PEOPLE & FINANCE", emoji: "👥", description: "Back Office", pages: [ { title: "Onboarding", path: "/internal-docs/onboarding", description: "New hire handbook", }, { title: "Finance & Payments", path: "/internal-docs/finance", description: "Invoicing & expenses", }, ], }, ]; interface InternalDocsLayoutProps { children: React.ReactNode; title?: string; description?: string; } export default function InternalDocsLayout({ children, title, description, }: InternalDocsLayoutProps) { const { user, loading } = useAuth(); const [sidebarOpen, setSidebarOpen] = useState(false); const location = useLocation(); if (loading) { return (
Loading...
{description}
)}