diff --git a/frontend/src/components/ui/progress.tsx b/frontend/src/components/ui/progress.tsx new file mode 100644 index 0000000..0b006ee --- /dev/null +++ b/frontend/src/components/ui/progress.tsx @@ -0,0 +1,17 @@ +import { cn } from '@/lib/utils' + +interface ProgressProps { + value: number + className?: string +} + +export function Progress({ value, className }: ProgressProps) { + return ( +
+
+
+ ) +} diff --git a/frontend/src/components/usage/UsageCard.tsx b/frontend/src/components/usage/UsageCard.tsx new file mode 100644 index 0000000..969db5f --- /dev/null +++ b/frontend/src/components/usage/UsageCard.tsx @@ -0,0 +1,51 @@ +import { Card } from '@/components/ui/card' +import { Progress } from '@/components/ui/progress' +import { Zap, Wallet } from 'lucide-react' + +export function UsageCard() { + const usage = { + tokensUsed: 124800, + tokensLimit: 200000, + budgetUsed: 42.5, + budgetLimit: 100, + } + + const tokenPercent = Math.round((usage.tokensUsed / usage.tokensLimit) * 100) + const budgetPercent = Math.round((usage.budgetUsed / usage.budgetLimit) * 100) + + return ( + +
+
+ +

Usage & Limits

+
+ Today +
+ +
+
+ Tokens + + {usage.tokensUsed.toLocaleString()} / {usage.tokensLimit.toLocaleString()} + +
+ +
{tokenPercent}% used
+
+ +
+
+ + Budget + + ${usage.budgetUsed} / ${usage.budgetLimit} +
+ +
+ {budgetPercent}% used ยท ${usage.budgetLimit - usage.budgetUsed} left +
+
+
+ ) +} diff --git a/frontend/src/pages/Dashboard.tsx b/frontend/src/pages/Dashboard.tsx index c3ea714..606f467 100644 --- a/frontend/src/pages/Dashboard.tsx +++ b/frontend/src/pages/Dashboard.tsx @@ -1,6 +1,7 @@ import { AgentGrid } from '@/components/agents/AgentGrid' import { Kanban } from '@/components/tasks/Kanban' import { ActivityFeed } from '@/components/ActivityFeed' +import { UsageCard } from '@/components/usage/UsageCard' import { useAppStore } from '@/store/useAppStore' export function Dashboard() { @@ -27,6 +28,9 @@ export function Dashboard() {
+
+ +