From 006700d5b714b81f44ef283ae72106391e7126eb Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sat, 18 Oct 2025 23:54:09 +0000 Subject: [PATCH] Add GalaxyMap component with planet nodes and progress rings cgen-739244e46cef4cf8a43258149fa4484d --- client/components/roadmap/GalaxyMap.tsx | 62 +++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 client/components/roadmap/GalaxyMap.tsx diff --git a/client/components/roadmap/GalaxyMap.tsx b/client/components/roadmap/GalaxyMap.tsx new file mode 100644 index 00000000..fc0cfaa5 --- /dev/null +++ b/client/components/roadmap/GalaxyMap.tsx @@ -0,0 +1,62 @@ +import { Badge } from "@/components/ui/badge"; +import { cn } from "@/lib/utils"; +import { Rocket, Target, Flame, Sparkles, Waypoints } from "lucide-react"; + +export interface PhaseSummary { + id: "now" | "month1" | "month2" | "month3"; + label: string; + percent: number; // 0..100 +} + +export default function GalaxyMap({ phases, onSelect }: { phases: PhaseSummary[]; onSelect?: (id: PhaseSummary["id"]) => void }) { + const iconFor: Record = { + now: Target, + month1: Flame, + month2: Rocket, + month3: Sparkles, + }; + + return ( +
+
+ + + + + + + + + + + +
+ +
+ {phases.map((p) => { + const Icon = iconFor[p.id]; + return ( + + ); + })} +
+ +
+ +

Planets represent phases. Progress fills as quests are claimed.

+
+
+ ); +}