From 42fbb21946c29514ff9cf32f88085ee79621b725 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sat, 8 Nov 2025 10:45:43 +0000 Subject: [PATCH] Create Realm Selection component for onboarding cgen-9b5c4fb84616438b8a38a4ffe83b0b86 --- .../components/onboarding/RealmSelection.tsx | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 client/components/onboarding/RealmSelection.tsx diff --git a/client/components/onboarding/RealmSelection.tsx b/client/components/onboarding/RealmSelection.tsx new file mode 100644 index 00000000..9593089f --- /dev/null +++ b/client/components/onboarding/RealmSelection.tsx @@ -0,0 +1,103 @@ +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", + }, + { + id: "devlink", + title: "๐Ÿ’ป Dev-Link", + description: "Professional Networking - Career development platform", + color: "from-cyan-500/20 to-cyan-600/20", + borderColor: "border-cyan-400", + }, +]; + +export default function RealmSelection({ selectedRealm, onSelect, onNext }: RealmSelectionProps) { + return ( +
+
+

Choose Your Primary Realm

+

+ Select the AeThex realm that best matches your primary focus. You can always change this later. +

+
+ +
+ {REALMS.map(realm => ( +
onSelect(realm.id)} + className={`cursor-pointer transition-all duration-200 transform hover:scale-105 ${ + selectedRealm === realm.id ? "scale-105" : "" + }`} + > + + +
+
+ {realm.title} +
+ {selectedRealm === realm.id && ( + + )} +
+
+ + {realm.description} + +
+
+ ))} +
+ +
+
+ +
+
+ ); +}