import { Link } from "react-router-dom"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Badge } from "@/components/ui/badge"; import { GamepadIcon, BriefcaseIcon, UsersIcon, ShoppingCartIcon, Rocket, Compass, ArrowRight, Check, Shield, } from "lucide-react"; import { cn } from "@/lib/utils"; import { useAuth } from "@/contexts/AuthContext"; import { useMemo, memo, type ComponentType } from "react"; export type RealmKey = | "game_developer" | "client" | "community_member" | "customer" | "staff"; export interface RealmOption { id: RealmKey; name: string; title: string; description: string; icon: ComponentType<{ className?: string }>; gradient: string; route: string; routeLabel: string; highlights: string[]; } export const REALM_OPTIONS: RealmOption[] = [ { id: "game_developer", name: "Development Forge", title: "Game Development", description: "Build immersive experiences, collaborate with other creators, and unlock our full suite of development tools.", icon: GamepadIcon, gradient: "from-neon-purple to-aethex-500", route: "/gameforge", routeLabel: "Game Development", highlights: [ "Advanced tooling and workflows", "Collaborative project spaces", "Mentors and technical reviews", ], }, { id: "client", name: "Strategist Nexus", title: "Consulting", description: "Engage AeThex teams for bespoke solutions, product consulting, and strategic execution across every milestone.", icon: BriefcaseIcon, gradient: "from-neon-blue to-aethex-400", route: "/corp", routeLabel: "Consulting", highlights: [ "Project leadership & delivery", "End-to-end service orchestration", "Outcome-driven partnership", ], }, { id: "community_member", name: "Innovation Commons", title: "Community", description: "Connect with innovators, share discoveries, and access exclusive research, events, and community resources.", icon: UsersIcon, gradient: "from-neon-green to-aethex-600", route: "/community", routeLabel: "Community", highlights: [ "Curated knowledge streams", "Collaborative guilds & events", "Access to experimental features", ], }, { id: "customer", name: "Experience Hub", title: "Get Started", description: "Discover AeThex products, manage licenses, and access tailored support for every experience you launch.", icon: ShoppingCartIcon, gradient: "from-amber-400 to-aethex-700", route: "/get-started", routeLabel: "Get Started", highlights: [ "Personalized product journeys", "Priority support & updates", "Insight dashboards", ], }, { id: "staff", name: "Operations Command", title: "AeThex Staff", description: "Internal realm for site staff and employees: operations dashboards, moderation, and admin tooling.", icon: Shield, gradient: "from-sky-600 to-indigo-700", route: "/staff", routeLabel: "Staff", highlights: [ "Moderation & triage", "Operational dashboards", "Internal tools & audits", ], }, ]; const EXPERIENCE_OPTIONS = [ { value: "beginner", label: "Pathfinder (Beginner)" }, { value: "intermediate", label: "Innovator (Intermediate)" }, { value: "advanced", label: "Visionary (Advanced)" }, { value: "expert", label: "Architect (Expert)" }, ]; interface RealmSwitcherProps { selectedRealm: RealmKey | null; onRealmChange: (realm: RealmKey) => void; selectedExperience: string; onExperienceChange: (value: string) => void; hasChanges: boolean; onSave: () => void; saving: boolean; } const RealmSwitcher = memo(function RealmSwitcher({ selectedRealm, onRealmChange, selectedExperience, onExperienceChange, hasChanges, onSave, saving, }: RealmSwitcherProps) { const { roles } = useAuth(); const canSeeStaff = useMemo( () => roles.some((r) => ["owner", "admin", "founder", "staff", "employee"].includes( r.toLowerCase(), ), ), [roles], ); const visibleOptions = useMemo( () => REALM_OPTIONS.filter((o) => (o.id === "staff" ? canSeeStaff : true)), [canSeeStaff], ); return (
Tailor your AeThex experience. Choose the realm that matches your goals and align the path difficulty that fits your craft.
{realm.description}
Path difficulty
Tune the experience level that unlocks curated resources and challenges matched to your expertise.
Your realm influences recommendations, default routes, and collaboration invites. You can change it anytime.