@@ -80,7 +80,7 @@ function FrameworkOverviewPageContent({
|
|||||||
).length;
|
).length;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-background p-6">
|
<div className="min-h-screen bg-background p-6 space-y-6">
|
||||||
<div className="space-y-4 mb-8">
|
<div className="space-y-4 mb-8">
|
||||||
<h1 className="text-2xl font-semibold">{framework.name}</h1>
|
<h1 className="text-2xl font-semibold">{framework.name}</h1>
|
||||||
<p className="text-muted-foreground max-w-3xl">
|
<p className="text-muted-foreground max-w-3xl">
|
||||||
@@ -88,28 +88,51 @@ function FrameworkOverviewPageContent({
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="mb-8 space-y-4">
|
<div>
|
||||||
<div className="flex items-center gap-2 text-sm">
|
<div className="flex justify-between items-center mb-4">
|
||||||
<div className="bg-primary/10 text-primary px-3 py-1 rounded-md flex items-center gap-2">
|
<h2 className="text-xl font-semibold">Timeline</h2>
|
||||||
<FileText className="w-4 h-4" />
|
<div className="flex items-center gap-2 px-3 py-1 rounded-full bg-[#2A2A2A] text-[#A3E635] text-sm">
|
||||||
Frame 153
|
|
||||||
</div>
|
|
||||||
<div className="bg-warning/10 text-warning px-3 py-1 rounded-md flex items-center gap-2">
|
|
||||||
<Clock className="w-4 h-4" />
|
<Clock className="w-4 h-4" />
|
||||||
12 hours left
|
<span>12 hours left</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-card p-4 rounded-lg space-y-4">
|
<div className="rounded-lg border bg-card p-6">
|
||||||
<h3 className="font-medium">Preparation phase</h3>
|
<h3 className="font-medium mb-4">Preparation phase</h3>
|
||||||
<Progress value={30} className="h-2" />
|
<div className="relative">
|
||||||
<div className="flex justify-between text-sm text-muted-foreground">
|
<div className="flex w-full">
|
||||||
|
<div className="w-[20%]">
|
||||||
|
<div className="h-2 rounded-md bg-gradient-to-r from-blue-400 via-green-300 to-yellow-300" />
|
||||||
|
</div>
|
||||||
|
<div className="w-[8px] bg-transparent z-10" />
|
||||||
|
<div className="w-[45%]">
|
||||||
|
<div className="h-2 rounded-md bg-muted" />
|
||||||
|
</div>
|
||||||
|
<div className="w-[8px] bg-transparent z-10" />
|
||||||
|
<div className="w-[15%]">
|
||||||
|
<div className="h-2 rounded-md bg-muted" />
|
||||||
|
</div>
|
||||||
|
<div className="w-[8px] bg-transparent z-10" />
|
||||||
|
<div className="w-[20%]">
|
||||||
|
<div className="h-2 rounded-md bg-muted" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="mt-2 flex w-full text-sm text-muted-foreground">
|
||||||
|
<div className="w-[20%]">
|
||||||
<span>Preparation</span>
|
<span>Preparation</span>
|
||||||
|
</div>
|
||||||
|
<div className="w-[45%]">
|
||||||
<span>Observation period: 3 month</span>
|
<span>Observation period: 3 month</span>
|
||||||
|
</div>
|
||||||
|
<div className="w-[15%]">
|
||||||
<span>Audit: 6-9 days</span>
|
<span>Audit: 6-9 days</span>
|
||||||
|
</div>
|
||||||
|
<div className="w-[20%]">
|
||||||
<span>Report: 10-14 days</span>
|
<span>Report: 10-14 days</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="mb-6 flex justify-between items-center">
|
<div className="mb-6 flex justify-between items-center">
|
||||||
<h2 className="text-xl font-semibold">Controls</h2>
|
<h2 className="text-xl font-semibold">Controls</h2>
|
||||||
@@ -118,36 +141,39 @@ function FrameworkOverviewPageContent({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
<div className="grid grid-cols-3 gap-2">
|
||||||
{controlCards.map((card, index) => (
|
{controlCards.map((card, index) => (
|
||||||
<Card key={index}>
|
<div
|
||||||
<CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
|
key={index}
|
||||||
<CardTitle className="text-sm font-medium flex items-center gap-2">
|
className="block p-4 rounded-lg border bg-card text-card-foreground"
|
||||||
<Shield className="w-4 h-4" />
|
>
|
||||||
{card.title}
|
<div className="flex items-center justify-between">
|
||||||
</CardTitle>
|
<div className="flex items-center gap-2">
|
||||||
|
<Shield className="w-4 h-4 text-muted-foreground" />
|
||||||
|
<span className="text-sm font-medium">{card.title}</span>
|
||||||
|
</div>
|
||||||
<Avatar className="h-6 w-6">
|
<Avatar className="h-6 w-6">
|
||||||
<AvatarFallback>U</AvatarFallback>
|
<AvatarFallback>U</AvatarFallback>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
</CardHeader>
|
</div>
|
||||||
<CardContent>
|
<div className="mt-4 space-y-2">
|
||||||
<div className="flex gap-1 my-2">
|
<div className="flex gap-1">
|
||||||
{Array(card.total)
|
{Array(card.total)
|
||||||
.fill(0)
|
.fill(0)
|
||||||
.map((_, i) => (
|
.map((_, i) => (
|
||||||
<div
|
<div
|
||||||
key={i}
|
key={i}
|
||||||
className={`h-2 w-2 rounded-sm ${
|
className={`h-4 w-4 ${
|
||||||
i < card.completed ? "bg-primary" : "bg-muted"
|
i < card.completed ? "bg-[#D1FA84] rounded" : "bg-muted rounded"
|
||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-muted-foreground">
|
<span className="text-sm text-muted-foreground">
|
||||||
{card.completed}/{card.total} Controls validated
|
{card.completed}/{card.total} Controls validated
|
||||||
</p>
|
</span>
|
||||||
</CardContent>
|
</div>
|
||||||
</Card>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user