'use client' import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog' import type { UsageBudget } from '@/components/usage-budget-provider' interface UsageDialogProps { open: boolean onOpenChange: (open: boolean) => void usage: UsageBudget } export function formatUsageRenewal(resetAt: string) { const date = new Date(resetAt) if (Number.isNaN(date.getTime())) return 'Renewal date unavailable' return `Renews ${new Intl.DateTimeFormat('en-US', { month: 'long', day: 'numeric', hour: 'numeric', minute: '2-digit' }).format(date)}` } export function UsageDialog({ open, onOpenChange, usage }: UsageDialogProps) { const percentage = usage.limit > 0 ? Math.min(100, Math.max(0, (usage.remaining / usage.limit) * 100)) : 0 return ( Monthly usage Your remaining monthly usage and renewal date.

{usage.remaining} of {usage.limit} remaining

{formatUsageRenewal(usage.resetAt)}

Usage renews monthly based on when your account was created.

Quick {usage.costs?.quick ?? 1} per message
Adaptive {usage.costs?.adaptive ?? 2} per message
) }