import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import type { ProviderCostHistogramResponse, ProviderLatencyHistogramResponse, ProviderTokenHistogramResponse } from "@/lib/types/logs"; import { CHART_COLORS, CHART_HEADER_ACTIONS_CLASS, CHART_HEADER_CONTROLS_CLASS, CHART_HEADER_LEGEND_CLASS, LATENCY_COLORS, getModelColor, } from "../utils/chartUtils"; import { ChartCard } from "./charts/chartCard"; import { type ChartType, ChartTypeToggle } from "./charts/chartTypeToggle"; import { ProviderCostChart } from "./charts/providerCostChart"; import { ProviderFilterSelect } from "./charts/providerFilterSelect"; import { ProviderLatencyChart } from "./charts/providerLatencyChart"; import { ProviderTokenChart } from "./charts/providerTokenChart"; export interface ProviderUsageTabProps { // Data providerCostData: ProviderCostHistogramResponse | null; providerTokenData: ProviderTokenHistogramResponse | null; providerLatencyData: ProviderLatencyHistogramResponse | null; // Loading states loadingProviderCost: boolean; loadingProviderTokens: boolean; loadingProviderLatency: boolean; // Time range startTime: number; endTime: number; // Chart types providerCostChartType: ChartType; providerTokenChartType: ChartType; providerLatencyChartType: ChartType; // Provider selections providerCostProvider: string; providerTokenProvider: string; providerLatencyProvider: string; // Derived provider lists availableProviders: string[]; providerCostProviders: string[]; providerTokenProviders: string[]; providerLatencyProviders: string[]; // Chart type toggle callbacks onProviderCostChartToggle: (type: ChartType) => void; onProviderTokenChartToggle: (type: ChartType) => void; onProviderLatencyChartToggle: (type: ChartType) => void; // Filter callbacks onProviderCostProviderChange: (provider: string) => void; onProviderTokenProviderChange: (provider: string) => void; onProviderLatencyProviderChange: (provider: string) => void; } export function ProviderUsageTab({ providerCostData, providerTokenData, providerLatencyData, loadingProviderCost, loadingProviderTokens, loadingProviderLatency, startTime, endTime, providerCostChartType, providerTokenChartType, providerLatencyChartType, providerCostProvider, providerTokenProvider, providerLatencyProvider, availableProviders, providerCostProviders, providerTokenProviders, providerLatencyProviders, onProviderCostChartToggle, onProviderTokenChartToggle, onProviderLatencyChartToggle, onProviderCostProviderChange, onProviderTokenProviderChange, onProviderLatencyProviderChange, }: ProviderUsageTabProps) { return (