aethex-forge/client/components/onboarding/RealmSelection.tsx
sirpiglr 2e6de6e57c Remove references to Dev-Link across the application
Removes the "Dev-Link" identifier and associated configurations from various UI components and navigation elements, consolidating its functionality into the "Nexus" realm.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: c78d9734-c653-46ad-a86e-c692f7d13621
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/aPpJgbb
Replit-Helium-Checkpoint-Created: true
2025-12-13 02:36:31 +00:00

114 lines
3.2 KiB
TypeScript

import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { CheckCircle2 } from "lucide-react";
interface RealmSelectionProps {
selectedRealm: string;
onSelect: (realm: string) => void;
onNext: () => void;
}
const REALMS = [
{
id: "labs",
title: "🧪 Labs",
description:
"Research & Development - Cutting-edge innovation and experimentation",
color: "from-yellow-500/20 to-yellow-600/20",
borderColor: "border-yellow-400",
},
{
id: "gameforge",
title: "🎮 GameForge",
description: "Game Development - Fast shipping cycles and game creation",
color: "from-green-500/20 to-green-600/20",
borderColor: "border-green-400",
},
{
id: "corp",
title: "💼 Corp",
description: "Enterprise Solutions - Professional services and consulting",
color: "from-blue-500/20 to-blue-600/20",
borderColor: "border-blue-400",
},
{
id: "foundation",
title: "🤝 Foundation",
description: "Community & Education - Open source and learning",
color: "from-red-500/20 to-red-600/20",
borderColor: "border-red-400",
},
];
export default function RealmSelection({
selectedRealm,
onSelect,
onNext,
}: RealmSelectionProps) {
return (
<div className="space-y-6">
<div>
<h2 className="text-2xl font-bold text-white mb-2">
Choose Your Primary Realm
</h2>
<p className="text-gray-400">
Select the AeThex realm that best matches your primary focus. You can
always change this later.
</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{REALMS.map((realm) => (
<div
key={realm.id}
onClick={() => onSelect(realm.id)}
className={`cursor-pointer transition-all duration-200 transform hover:scale-105 ${
selectedRealm === realm.id ? "scale-105" : ""
}`}
>
<Card
className={`h-full border-2 ${realm.borderColor} ${
selectedRealm === realm.id
? "ring-2 ring-offset-2 ring-white"
: ""
} hover:shadow-lg transition-shadow`}
>
<CardHeader>
<div className="flex items-start justify-between">
<div>
<CardTitle className="text-lg">{realm.title}</CardTitle>
</div>
{selectedRealm === realm.id && (
<CheckCircle2 className="h-6 w-6 text-green-500 flex-shrink-0" />
)}
</div>
</CardHeader>
<CardContent>
<CardDescription className="text-sm">
{realm.description}
</CardDescription>
</CardContent>
</Card>
</div>
))}
</div>
<div className="flex justify-between pt-8">
<div />
<Button
onClick={onNext}
disabled={!selectedRealm}
className="bg-gradient-to-r from-purple-500 to-pink-500 hover:from-purple-600 hover:to-pink-600 text-white"
>
Continue
</Button>
</div>
</div>
);
}