NERDDISCO commited on
Commit
38029f4
·
1 Parent(s): f680c3f

feat(roadmap): added "in progress";

Browse files
examples/cyberpunk-standalone/src/components/roadmap-section.tsx CHANGED
@@ -1,12 +1,12 @@
1
  "use client";
2
- import { CheckCircle, Clock, Target, Github } from "lucide-react";
3
  import { Badge } from "@/components/ui/badge";
4
  import { cn } from "@/lib/utils";
5
 
6
  interface RoadmapItem {
7
  title: string;
8
  description: string;
9
- status: "completed" | "planned";
10
  }
11
 
12
  const roadmapItems: RoadmapItem[] = [
@@ -26,6 +26,11 @@ const roadmapItems: RoadmapItem[] = [
26
  description: "Manual robot control with keyboard and slider inputs",
27
  status: "completed",
28
  },
 
 
 
 
 
29
  {
30
  title: "record",
31
  description: "Record robot trajectories and sensor data to create datasets",
@@ -59,6 +64,14 @@ const statusConfig = {
59
  bgColor: "bg-green-500/10 dark:bg-green-400/5",
60
  borderColor: "border-green-500/30 dark:border-green-400/20",
61
  },
 
 
 
 
 
 
 
 
62
  planned: {
63
  icon: Clock,
64
  label: "PLANNED",
@@ -73,6 +86,9 @@ export function RoadmapSection() {
73
  const completedCount = roadmapItems.filter(
74
  (item) => item.status === "completed"
75
  ).length;
 
 
 
76
  const totalCount = roadmapItems.length;
77
 
78
  return (
@@ -101,15 +117,27 @@ export function RoadmapSection() {
101
  <div className="bg-primary/30 dark:bg-primary/10 border-b border-primary/20 p-4">
102
  <div className="flex items-center justify-between">
103
  <div className="flex items-center gap-4">
104
- <div className="flex items-center gap-2">
105
- <div className="w-2 h-2 bg-green-500 dark:bg-green-400 rounded-full animate-pulse"></div>
106
- <span className="text-green-600 dark:text-green-400 text-xs">
107
- {completedCount} COMPLETED
108
- </span>
109
- <div className="w-2 h-2 bg-slate-500 dark:bg-muted-foreground rounded-full"></div>
110
- <span className="text-slate-600 dark:text-muted-foreground text-xs">
111
- {totalCount - completedCount} PLANNED
112
- </span>
 
 
 
 
 
 
 
 
 
 
 
 
113
  </div>
114
  </div>
115
  <div className="text-xs text-muted-foreground">
@@ -152,7 +180,8 @@ export function RoadmapSection() {
152
  {/* Content */}
153
  <div className="flex-1 min-w-0">
154
  <h4 className={cn("font-bold text-lg", config.textColor)}>
155
- {item.title}()
 
156
  </h4>
157
  <p className="text-muted-foreground text-sm mt-1">
158
  {item.description}
@@ -175,7 +204,8 @@ export function RoadmapSection() {
175
  <StatusIcon
176
  className={cn(
177
  "w-4 h-4 flex-shrink-0 ml-3",
178
- config.textColor
 
179
  )}
180
  />
181
  </div>
 
1
  "use client";
2
+ import { CheckCircle, Clock, Loader2, Target, Github } from "lucide-react";
3
  import { Badge } from "@/components/ui/badge";
4
  import { cn } from "@/lib/utils";
5
 
6
  interface RoadmapItem {
7
  title: string;
8
  description: string;
9
+ status: "completed" | "in_progress" | "planned";
10
  }
11
 
12
  const roadmapItems: RoadmapItem[] = [
 
26
  description: "Manual robot control with keyboard and slider inputs",
27
  status: "completed",
28
  },
29
+ {
30
+ title: "SO-100 leader arm",
31
+ description: "Leader arm teleoperation support for intuitive robot control",
32
+ status: "in_progress",
33
+ },
34
  {
35
  title: "record",
36
  description: "Record robot trajectories and sensor data to create datasets",
 
64
  bgColor: "bg-green-500/10 dark:bg-green-400/5",
65
  borderColor: "border-green-500/30 dark:border-green-400/20",
66
  },
67
+ in_progress: {
68
+ icon: Loader2,
69
+ label: "IN PROGRESS",
70
+ dotColor: "bg-orange-500 dark:bg-orange-400",
71
+ textColor: "text-orange-600 dark:text-orange-400",
72
+ bgColor: "bg-orange-500/10 dark:bg-orange-400/5",
73
+ borderColor: "border-orange-500/30 dark:border-orange-400/20",
74
+ },
75
  planned: {
76
  icon: Clock,
77
  label: "PLANNED",
 
86
  const completedCount = roadmapItems.filter(
87
  (item) => item.status === "completed"
88
  ).length;
89
+ const inProgressCount = roadmapItems.filter(
90
+ (item) => item.status === "in_progress"
91
+ ).length;
92
  const totalCount = roadmapItems.length;
93
 
94
  return (
 
117
  <div className="bg-primary/30 dark:bg-primary/10 border-b border-primary/20 p-4">
118
  <div className="flex items-center justify-between">
119
  <div className="flex items-center gap-4">
120
+ <div className="flex items-center gap-4">
121
+ <div className="flex items-center gap-2">
122
+ <div className="w-2 h-2 bg-green-500 dark:bg-green-400 rounded-full"></div>
123
+ <span className="text-green-600 dark:text-green-400 text-xs">
124
+ {completedCount} COMPLETED
125
+ </span>
126
+ </div>
127
+ <div className="w-px h-4 bg-border dark:bg-white/10"></div>
128
+ <div className="flex items-center gap-2">
129
+ <div className="w-2 h-2 bg-orange-500 dark:bg-orange-400 rounded-full animate-pulse"></div>
130
+ <span className="text-orange-600 dark:text-orange-400 text-xs">
131
+ {inProgressCount} IN PROGRESS
132
+ </span>
133
+ </div>
134
+ <div className="w-px h-4 bg-border dark:bg-white/10"></div>
135
+ <div className="flex items-center gap-2">
136
+ <div className="w-2 h-2 bg-slate-500 dark:bg-muted-foreground rounded-full"></div>
137
+ <span className="text-slate-600 dark:text-muted-foreground text-xs">
138
+ {totalCount - completedCount - inProgressCount} PLANNED
139
+ </span>
140
+ </div>
141
  </div>
142
  </div>
143
  <div className="text-xs text-muted-foreground">
 
180
  {/* Content */}
181
  <div className="flex-1 min-w-0">
182
  <h4 className={cn("font-bold text-lg", config.textColor)}>
183
+ {item.title}
184
+ {item.title !== "SO-100 leader arm" ? "()" : ""}
185
  </h4>
186
  <p className="text-muted-foreground text-sm mt-1">
187
  {item.description}
 
204
  <StatusIcon
205
  className={cn(
206
  "w-4 h-4 flex-shrink-0 ml-3",
207
+ config.textColor,
208
+ item.status === "in_progress" && "animate-spin"
209
  )}
210
  />
211
  </div>