import { Copy, Check, Route, Settings2, AlertTriangle, Headphones, Monitor, Cloud, Globe, ShieldCheck, UserCog, Info, } from 'lucide-react' import { useTranslation } from 'react-i18next' import { formatBillingCurrencyFromUSD } from '@/lib/currency' import { formatLogQuota, formatTokens, formatUseTime } from '@/lib/format' import { cn } from '@/lib/utils' import { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/components/ui/dialog' import { Label } from '@/components/ui/label' import { ScrollArea } from '@/components/ui/scroll-area' import { StatusBadge, type StatusBadgeProps } from '@/components/status-badge' import { DynamicPricingBreakdown } from '@/features/pricing/components/dynamic-pricing-breakdown' import type { UsageLog } from '../../data/schema' import { parseLogOther, getParamOverrideActionLabel, parseAuditLine, decodeBillingExprB64, getTieredBillingSummary, hasAnyCacheTokens, isViolationFeeLog, getFirstResponseTimeColor, getResponseTimeColor, } from '../../lib/format' import { getLogTypeConfig, isPerCallBilling, isTimingLogType, } from '../../lib/utils' import type { LogOtherData } from '../../types' function timingTextColorClass( variant: 'success' | 'warning' | 'danger' ): string { if (variant === 'success') return 'text-emerald-600' if (variant === 'warning') return 'text-amber-600' return 'text-rose-600' } function DetailRow(props: { label: React.ReactNode value: React.ReactNode mono?: boolean muted?: boolean }) { return (