@@ -221,7 +221,7 @@ const AdditionalModelSettings: React.FC = ({
className="w-full accent-primary disabled:cursor-not-allowed"
onChange={(event) => handleTemperatureChange(Number(event.target.value))}
/>
-
+
0
1.0
2.0
@@ -267,7 +267,7 @@ const AdditionalModelSettings: React.FC
= ({
className="w-full accent-primary disabled:cursor-not-allowed"
onChange={(event) => handleMaxTokensChange(Number(event.target.value))}
/>
-
+
1
32768
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/AgentBuilderView.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/AgentBuilderView.tsx
index 5d58a0c5485..1a5509b2019 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/AgentBuilderView.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/AgentBuilderView.tsx
@@ -492,7 +492,7 @@ export default function AgentBuilderView({
{loadingAgents ? (
-
+
) : (
<>
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatImageUpload.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatImageUpload.tsx
index 7db046ad464..36e0a1e8bbe 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatImageUpload.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatImageUpload.tsx
@@ -56,7 +56,7 @@ const ChatImageUpload: React.FC
= ({ chatUploadedImage, on
size="icon-sm"
disabled={disabled}
aria-label="Attach image or PDF"
- className="text-muted-foreground/70 hover:text-muted-foreground"
+ className="text-muted-foreground hover:text-foreground"
onClick={() => inputRef.current?.click()}
/>
}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatUI.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatUI.tsx
index 03590eade34..2dd3972a714 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatUI.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ChatUI.tsx
@@ -1395,7 +1395,7 @@ const ChatUI: React.FC = ({
type="button"
variant="ghost"
size="icon-xs"
- className="cursor-not-allowed text-muted-foreground/70"
+ className="cursor-not-allowed text-muted-foreground"
disabled
aria-label="Model Settings unavailable"
/>
@@ -1484,7 +1484,7 @@ const ChatUI: React.FC = ({
/>
}
>
-
+
{endpointType === EndpointType.MCP
@@ -1615,7 +1615,7 @@ const ChatUI: React.FC = ({
setByokModalServer(server)}
>
Reconnect
@@ -1625,7 +1625,7 @@ const ChatUI: React.FC = ({
setByokModalServer(server)}
>
Connect
@@ -1643,7 +1643,7 @@ const ChatUI: React.FC = ({
Vector Store
-
+
Select vector store(s) to use for this LLM API call. You can set up your vector store{" "}
@@ -1667,7 +1667,7 @@ const ChatUI: React.FC = ({
Guardrails
-
+
Select guardrail(s) to use for this LLM API call. You can set up your guardrails{" "}
@@ -1692,7 +1692,7 @@ const ChatUI: React.FC = ({
Policies
-
+
Select policy/policies to apply to this LLM API call. Policies define which guardrails are
@@ -1756,7 +1756,7 @@ const ChatUI: React.FC = ({
{chatHistory.length === 0 && (
-
+
Start a conversation, generate an image, or handle audio
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterOutput.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterOutput.tsx
index 4979d6794a0..91972b5d770 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterOutput.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterOutput.tsx
@@ -196,7 +196,7 @@ const CodeInterpreterOutput: React.FC
= ({ code, ann
) : (
- Image not available
+ Image not available
)}
@@ -215,7 +215,7 @@ const CodeInterpreterOutput: React.FC
= ({ code, ann
>
{annotation.filename}
-
+
))}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterTool.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterTool.tsx
index 379cc36de61..0ad3170e1bf 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterTool.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/CodeInterpreterTool.tsx
@@ -53,7 +53,7 @@ const CodeInterpreterTool: React.FC = ({
Code Interpreter
-
+
Run Python code to generate files, charts, and analyze data. Container is created automatically.
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/FilePreviewCard.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/FilePreviewCard.tsx
index 2f81831ab3d..974b8738050 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/FilePreviewCard.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/FilePreviewCard.tsx
@@ -16,7 +16,7 @@ function FilePreviewCard({ file, previewUrl, onRemove }: FilePreviewCardProps) {
{isPdf ? (
-
+
) : (
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/RealtimePlayground.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/RealtimePlayground.tsx
index 031523fc61d..b14707bc16a 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/RealtimePlayground.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/RealtimePlayground.tsx
@@ -404,10 +404,10 @@ const RealtimePlayground: React.FC
= ({
{/* Messages */}
{messages.length === 0 && !isConnected && (
-
+
Realtime Voice Playground
-
+
Click Connect to start a realtime session. You can speak using your microphone or type messages.
The AI will respond with voice and text.
@@ -419,11 +419,13 @@ const RealtimePlayground: React.FC
= ({
className={`flex ${msg.role === "user" ? "justify-end" : msg.role === "status" ? "justify-center" : "justify-start"}`}
>
{msg.role === "status" ? (
- {msg.content}
+ {msg.content}
) : (
{msg.role === "user" ? "You" : "AI"}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ResponsesImageUpload.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ResponsesImageUpload.tsx
index 97eed2e6ace..607d9ce1ee1 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ResponsesImageUpload.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/ResponsesImageUpload.tsx
@@ -60,7 +60,7 @@ const ResponsesImageUpload: React.FC
= ({
size="icon-sm"
disabled={disabled}
aria-label="Attach image or PDF"
- className="text-muted-foreground/70 hover:text-muted-foreground"
+ className="text-muted-foreground hover:text-foreground"
onClick={() => inputRef.current?.click()}
/>
}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SearchResultsDisplay.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SearchResultsDisplay.tsx
index 244c77a12ae..2e729500c77 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SearchResultsDisplay.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SearchResultsDisplay.tsx
@@ -52,7 +52,7 @@ export function SearchResultsDisplay({ searchResults }: SearchResultsDisplayProp
Query:
"{resultPage.search_query}"
-
•
+
•
{resultPage.data.length} result{resultPage.data.length !== 1 ? "s" : ""}
@@ -72,9 +72,9 @@ export function SearchResultsDisplay({ searchResults }: SearchResultsDisplayProp
-
+
{result.filename || result.file_id || `Result ${resultIndex + 1}`}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SessionManagement.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SessionManagement.tsx
index cf3898c58a0..35c8e839159 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SessionManagement.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/chat_ui/SessionManagement.tsx
@@ -64,7 +64,7 @@ const SessionManagement: React.FC
= ({
Session Management
-
+
Choose between LiteLLM API session management (using previous_response_id) or UI-based session management
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/CompareUI.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/CompareUI.tsx
index 8e13dce1d98..640509f9f96 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/CompareUI.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/CompareUI.tsx
@@ -819,7 +819,7 @@ export default function CompareUI({ accessToken, disabledPersonalKeyCreation }:
{isUploadedFilePdf ? (
-
+
) : (
@@ -835,7 +835,7 @@ export default function CompareUI({ accessToken, disabledPersonalKeyCreation }:
{isUploadedFilePdf ? "PDF" : "Image"}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/components/ComparisonPanel.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/components/ComparisonPanel.tsx
index bc4b2c951ff..37a4ddcb0a0 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/components/ComparisonPanel.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/compareUI/components/ComparisonPanel.tsx
@@ -85,7 +85,7 @@ export function ComparisonPanel({
};
const disabledOpacity = comparison.useAdvancedParams ? 1 : 0.4;
- const disabledTextColor = comparison.useAdvancedParams ? "text-foreground" : "text-muted-foreground/70";
+ const disabledTextColor = comparison.useAdvancedParams ? "text-foreground" : "text-muted-foreground";
const handleTogglePopover = () => {
setPopoverVisible((prev) => !prev);
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/complianceUI/ComplianceUI.tsx b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/complianceUI/ComplianceUI.tsx
index 7151e23144d..b61533e4328 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/playground/components/complianceUI/ComplianceUI.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/playground/components/complianceUI/ComplianceUI.tsx
@@ -735,7 +735,7 @@ export default function ComplianceUI({
>
@@ -751,10 +751,10 @@ export default function ComplianceUI({
onClick={() => setShowGuardrailDropdown(!showGuardrailDropdown)}
className="w-full flex items-center justify-between border border-border rounded-lg px-3 py-2 text-sm text-left hover:border-ring transition-colors"
>
- 0 ? "text-foreground" : "text-muted-foreground/70"}>
+ 0 ? "text-foreground" : "text-muted-foreground"}>
{selectedGuardrails.length > 0 ? `${selectedGuardrails.length} selected` : "None selected"}
-
+
{showGuardrailDropdown && (
@@ -773,11 +773,11 @@ export default function ComplianceUI({
- {selectedGuardrails.includes(g.id) && }
+ {selectedGuardrails.includes(g.id) && }
{g.name}
- {g.type &&
{g.type}
}
+ {g.type &&
{g.type}
}
))
@@ -815,7 +815,7 @@ export default function ComplianceUI({
batchAbortControllerRef.current?.abort()}
- className="flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm font-medium transition-colors whitespace-nowrap bg-destructive text-white hover:bg-destructive/80"
+ className="flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm font-medium transition-colors whitespace-nowrap bg-destructive text-destructive-foreground hover:bg-destructive/80"
>
Stop
@@ -824,7 +824,7 @@ export default function ComplianceUI({
type="button"
onClick={runTests}
disabled={selectedPromptIds.size === 0 || disabledPersonalKeyCreation}
- className={`flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm font-medium transition-colors whitespace-nowrap ${selectedPromptIds.size === 0 || disabledPersonalKeyCreation ? "bg-muted text-muted-foreground/70 cursor-not-allowed" : "bg-info text-white hover:bg-info/80"}`}
+ className={`flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm font-medium transition-colors whitespace-nowrap ${selectedPromptIds.size === 0 || disabledPersonalKeyCreation ? "bg-muted text-muted-foreground cursor-not-allowed" : "bg-info text-info-foreground hover:bg-info/80"}`}
>
Simulate ({selectedPromptIds.size})
@@ -858,19 +858,19 @@ export default function ComplianceUI({
Test Prompts
-
+
{selectedPromptIds.size}/{totalPromptCount}
-
+
setSearchPrompt(e.target.value)}
placeholder="Search prompts..."
- className="w-full border border-border rounded-lg pl-8 pr-3 py-1.5 text-xs placeholder:text-muted-foreground/70 focus:outline-hidden focus:ring-2 focus:ring-blue-500/20 focus:border-info"
+ className="w-full border border-border rounded-lg pl-8 pr-3 py-1.5 text-xs placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-blue-500/20 focus:border-info"
/>
@@ -883,7 +883,7 @@ export default function ComplianceUI({
>
Select All
-
·
+
·
setNewPromptText(e.target.value)}
placeholder="Enter your test prompt..."
rows={2}
- className="w-full border border-border rounded-sm px-2.5 py-1.5 text-xs text-foreground placeholder:text-muted-foreground/70 focus:outline-hidden focus:ring-2 focus:ring-blue-500/20 focus:border-info resize-none bg-card"
+ className="w-full border border-border rounded-sm px-2.5 py-1.5 text-xs text-foreground placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-blue-500/20 focus:border-info resize-none bg-card"
/>
@@ -958,7 +958,7 @@ export default function ComplianceUI({
type="button"
onClick={addCustomPrompt}
disabled={!newPromptText.trim()}
- className={`text-[11px] font-medium px-2.5 py-1 rounded-sm ${newPromptText.trim() ? "bg-info text-white" : "bg-muted text-muted-foreground/70"}`}
+ className={`text-[11px] font-medium px-2.5 py-1 rounded-sm ${newPromptText.trim() ? "bg-info text-info-foreground" : "bg-muted text-muted-foreground"}`}
>
Add
@@ -985,7 +985,7 @@ export default function ComplianceUI({
Required columns: {" "}
prompt,{" "}
expected_result{" "}
-
(fail or pass)
+
(fail or pass)
Optional columns: {" "}
@@ -1049,14 +1049,14 @@ export default function ComplianceUI({
className="w-full flex items-center gap-2 px-3 py-2.5 text-left bg-muted hover:bg-accent transition-colors rounded-lg border border-border"
>
{isExpanded ? (
-
+
) : (
-
+
)}
{fw.name}
- {fwPromptCount} prompts
+ {fwPromptCount} prompts
{fwSelectedCount > 0 && (
@@ -1092,9 +1092,9 @@ export default function ComplianceUI({
className="w-full flex items-center gap-1.5 px-2.5 py-2 text-left hover:bg-accent transition-colors"
>
{isCatExpanded ? (
-
+
) : (
-
+
)}
{category.name}
-
+
{category.prompts.length}
{selectedInCat > 0 && (
@@ -1118,7 +1118,7 @@ export default function ComplianceUI({
{isCatExpanded && (
-
+
{category.description}
@@ -1234,7 +1234,7 @@ export default function ComplianceUI({
})}
) : (
-
+
No policies or guardrails selected — select above to test against specific rules.
)}
@@ -1245,7 +1245,7 @@ export default function ComplianceUI({
-
+
Type a prompt below to quickly test it.
@@ -1254,10 +1254,10 @@ export default function ComplianceUI({
{quickTestMessages.map((msg) => (
{msg.type === "system" && (
@@ -1284,7 +1284,7 @@ export default function ComplianceUI({
{isQuickTesting && (
)}
@@ -1300,23 +1300,23 @@ export default function ComplianceUI({
onKeyDown={handleQuickTestKeyDown}
placeholder="Enter text to test..."
rows={3}
- className="w-full px-3 pt-3 pb-1 text-sm text-foreground placeholder:text-muted-foreground/70 focus:outline-hidden resize-none"
+ className="w-full px-3 pt-3 pb-1 text-sm text-foreground placeholder:text-muted-foreground focus:outline-hidden resize-none"
/>
-
+
Press Enter to
submit ·{" "}
Shift+Enter for new
line
- {quickTestInput.length}
+ {quickTestInput.length}
{isQuickTesting ? : }{" "}
{testButtonLabel}
@@ -1400,7 +1400,7 @@ export default function ComplianceUI({
-
+
Select prompts and click Simulate to run batch compliance tests.
@@ -1458,7 +1458,7 @@ export default function ComplianceUI({
{result.status !== "complete" ? (
-
+
) : result.isMatch ? (
) : (
@@ -1468,7 +1468,7 @@ export default function ComplianceUI({
{result.prompt}
-
+
{result.category}
@@ -1497,7 +1497,7 @@ export default function ComplianceUI({
return next;
});
}}
- className="shrink-0 p-0.5 text-muted-foreground/70 hover:text-muted-foreground"
+ className="shrink-0 p-0.5 text-muted-foreground hover:text-foreground"
aria-label={isExpanded ? "Collapse" : "Expand"}
>
{isExpanded ? (
@@ -1512,14 +1512,14 @@ export default function ComplianceUI({
{result.triggeredBy && (
- Triggered by: {" "}
+ Triggered by: {" "}
{result.triggeredBy}
)}
- Verdict: {" "}
+ Verdict: {" "}
{result.isMatch
? "Correctly handled"
@@ -1530,7 +1530,7 @@ export default function ComplianceUI({
{result.returnedText != null && result.returnedText !== "" && (
-
LLM response:
+
LLM response:
{result.returnedText}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/policies/_components/ai_suggestion_modal.tsx b/ui/litellm-dashboard/src/app/(dashboard)/policies/_components/ai_suggestion_modal.tsx
index f52bdd15df4..21cf8dc4462 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/policies/_components/ai_suggestion_modal.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/policies/_components/ai_suggestion_modal.tsx
@@ -393,7 +393,7 @@ const AiSuggestionModal: React.FC
= ({
return (
= ({
))}
{template.guardrails && template.guardrails.length > 4 && (
-
+
+{template.guardrails.length - 4} more
)}
@@ -528,7 +528,7 @@ const AiSuggestionModal: React.FC = ({
setTestResults(null);
setTestOverallAction(null);
}}
- className="text-muted-foreground/70 hover:text-muted-foreground"
+ className="text-muted-foreground hover:text-foreground"
>
@@ -853,7 +853,7 @@ const AiSuggestionModal: React.FC = ({
{attackExamples.map((example, index) => (
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/EntityUsage.tsx b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/EntityUsage.tsx
index 6f25095f567..69198e42279 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/EntityUsage.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/EntityUsage.tsx
@@ -351,7 +351,7 @@ const EntityUsage: React.FC = ({
[],
);
- const chev = "size-3 text-muted-foreground/70";
+ const chev = "size-3 text-muted-foreground";
const expandIcon = showCostBreakdown ? : ;
const renderSummaryTile = ({ title, value, className, tooltip, expandable }: SummaryTile) => (
@@ -365,9 +365,7 @@ const EntityUsage: React.FC = ({
{title}
{tooltip ? (
- }
- />
+ } />
{tooltip}
) : null}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/SpendByProvider.tsx b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/SpendByProvider.tsx
index 87979fb795e..f5d6db67478 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/SpendByProvider.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/EntityUsage/SpendByProvider.tsx
@@ -97,9 +97,7 @@ const SpendByProvider: React.FC = ({ loading, isDateChangi
Show Unknown
- }
- />
+ } />
Requests that failed to route to a provider
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx
index cb04633588a..446687d978b 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx
@@ -255,7 +255,7 @@ const UsageAIChatPanel: React.FC = ({ open, onClose, acce
@@ -295,7 +295,7 @@ const UsageAIChatPanel: React.FC = ({ open, onClose, acce
{/* Chat messages */}
{messages.length === 0 && !streamingContent && !isLoading && (
-
+
= ({ open, onClose, acce
{msg.role === "user" ? (
-
@@ -383,12 +383,12 @@ const UsageAIChatPanel: React.FC
= ({ open, onClose, acce
Clear chat
- Enter to send
+ Enter to send
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsagePageView.tsx b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsagePageView.tsx
index f8f50717eba..cce5f16efb2 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsagePageView.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsagePageView.tsx
@@ -593,9 +593,7 @@ const UsagePage: React.FC = ({ teams, organizations }) => {
{gatewayActivity && (
- }
+ render={ }
/>
Counted by the gateway when it answers a request, independent of spend logging.
@@ -624,9 +622,7 @@ const UsagePage: React.FC = ({ teams, organizations }) => {
Failed Requests
- }
+ render={ }
/>
{gatewayActivity
@@ -665,9 +661,9 @@ const UsagePage: React.FC = ({ teams, organizations }) => {
Total Tokens
{showTokenBreakdown ? (
-
+
) : (
-
+
)}
@@ -765,7 +761,7 @@ const UsagePage: React.FC = ({ teams, organizations }) => {
+
}
/>
diff --git a/ui/litellm-dashboard/src/app/globals.css b/ui/litellm-dashboard/src/app/globals.css
index 04a09693287..6d851d1ce27 100644
--- a/ui/litellm-dashboard/src/app/globals.css
+++ b/ui/litellm-dashboard/src/app/globals.css
@@ -92,9 +92,13 @@
--accent: oklch(0.967 0.003 264.542);
--accent-foreground: oklch(0.21 0.034 264.665);
--destructive: oklch(0.577 0.245 27.325);
+ --destructive-foreground: oklch(1 0 0);
--success: oklch(0.527 0.154 150.069);
+ --success-foreground: oklch(1 0 0);
--warning: oklch(0.555 0.163 48.998);
+ --warning-foreground: oklch(1 0 0);
--info: oklch(0.546 0.245 262.881);
+ --info-foreground: oklch(1 0 0);
--border: oklch(0.928 0.006 264.531);
--input: oklch(0.928 0.006 264.531);
--ring: oklch(0.707 0.022 261.325);
@@ -130,9 +134,13 @@
--accent: oklch(0.309 0 0);
--accent-foreground: oklch(0.964 0 0);
--destructive: oklch(0.704 0.191 22.216);
+ --destructive-foreground: oklch(0.209 0 0);
--success: oklch(0.792 0.209 151.711);
+ --success-foreground: oklch(0.209 0 0);
--warning: oklch(0.828 0.189 84.429);
+ --warning-foreground: oklch(0.209 0 0);
--info: oklch(0.707 0.165 254.624);
+ --info-foreground: oklch(0.209 0 0);
--border: oklch(0.309 0 0);
--input: oklch(0.56 0 0);
--ring: oklch(0.569 0 0);
@@ -172,9 +180,13 @@
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
+ --color-destructive-foreground: var(--destructive-foreground);
--color-success: var(--success);
+ --color-success-foreground: var(--success-foreground);
--color-warning: var(--warning);
+ --color-warning-foreground: var(--warning-foreground);
--color-info: var(--info);
+ --color-info-foreground: var(--info-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
@@ -244,7 +256,7 @@
input::placeholder,
textarea::placeholder {
- color: color-mix(in oklab, var(--color-muted-foreground) 70%, transparent);
+ color: var(--color-muted-foreground);
}
body {
diff --git a/ui/litellm-dashboard/src/components/AIHub/UsefulLinksManagement.tsx b/ui/litellm-dashboard/src/components/AIHub/UsefulLinksManagement.tsx
index 7a2ff5e253f..17ae6c4bf30 100644
--- a/ui/litellm-dashboard/src/components/AIHub/UsefulLinksManagement.tsx
+++ b/ui/litellm-dashboard/src/components/AIHub/UsefulLinksManagement.tsx
@@ -280,7 +280,7 @@ const UsefulLinksManagement: React.FC = ({ accessTok
Add Link
@@ -312,7 +312,7 @@ const UsefulLinksManagement: React.FC = ({ accessTok
Save Order
diff --git a/ui/litellm-dashboard/src/components/GuardrailsMonitor/LogViewer.tsx b/ui/litellm-dashboard/src/components/GuardrailsMonitor/LogViewer.tsx
index 63c8f45574a..8d073feae82 100644
--- a/ui/litellm-dashboard/src/components/GuardrailsMonitor/LogViewer.tsx
+++ b/ui/litellm-dashboard/src/components/GuardrailsMonitor/LogViewer.tsx
@@ -183,15 +183,15 @@ export function LogViewer({
>
{config.label}
- {log.timestamp}
- ·
+ {log.timestamp}
+ ·
{log.model && (
{log.model}
)}
{log.input_snippet ?? log.input ?? "—"}
-
+
);
})}
diff --git a/ui/litellm-dashboard/src/components/GuardrailsMonitor/MetricCard.tsx b/ui/litellm-dashboard/src/components/GuardrailsMonitor/MetricCard.tsx
index 314f3085c76..d5d249e4799 100644
--- a/ui/litellm-dashboard/src/components/GuardrailsMonitor/MetricCard.tsx
+++ b/ui/litellm-dashboard/src/components/GuardrailsMonitor/MetricCard.tsx
@@ -13,7 +13,7 @@ export function MetricCard({ label, value, valueColor = "text-foreground", icon,
{label}
- {icon && {icon} }
+ {icon && {icon} }
{value}
{subtitle &&
{subtitle}
}
diff --git a/ui/litellm-dashboard/src/components/HelpLink.tsx b/ui/litellm-dashboard/src/components/HelpLink.tsx
index be1f3e0a546..844e1f8d533 100644
--- a/ui/litellm-dashboard/src/components/HelpLink.tsx
+++ b/ui/litellm-dashboard/src/components/HelpLink.tsx
@@ -88,7 +88,7 @@ export const HelpIcon: React.FC
= ({ content, learnMoreHref, lear
setShowTooltip(true)}
onMouseLeave={() => setShowTooltip(false)}
onFocus={() => setShowTooltip(true)}
@@ -189,7 +189,7 @@ export const DocsMenu: React.FC = ({ items, children = "Docs", cl
onClick={() => setIsOpen(false)}
>
{item.label}
-
+
))}
diff --git a/ui/litellm-dashboard/src/components/Navbar/UserDropdown/UserDropdown.tsx b/ui/litellm-dashboard/src/components/Navbar/UserDropdown/UserDropdown.tsx
index 3eb54f8f301..95f76dbb2cc 100644
--- a/ui/litellm-dashboard/src/components/Navbar/UserDropdown/UserDropdown.tsx
+++ b/ui/litellm-dashboard/src/components/Navbar/UserDropdown/UserDropdown.tsx
@@ -247,7 +247,7 @@ const UserDropdown: React.FC = ({ onLogout, variant = "navbar
{displayName}
-
+
)}
) : (
- No groups mapped
+ No groups mapped
),
},
];
@@ -48,7 +48,7 @@ export default function RoleMappings({ roleMappings }: { roleMappings: RoleMappi
-
+
Role Mappings
diff --git a/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/FallbackGroupConfig.tsx b/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/FallbackGroupConfig.tsx
index b45398eaed1..ba7b73a0ccb 100644
--- a/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/FallbackGroupConfig.tsx
+++ b/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/FallbackGroupConfig.tsx
@@ -134,7 +134,7 @@ export function FallbackGroupConfig({
{/* Fallback List */}
{group.fallbackModels.length === 0 ? (
-
+
No fallback models selected
Add models from the dropdown above
@@ -146,7 +146,7 @@ export function FallbackGroupConfig({
className="group flex items-center justify-between p-3 bg-card rounded-lg border border-border hover:border-indigo-300 hover:shadow-xs transition-all"
>
-
+
{index + 1}
@@ -158,7 +158,7 @@ export function FallbackGroupConfig({
type="button"
aria-label={`Remove ${modelValue}`}
onClick={() => removeFallback(index)}
- className="opacity-0 group-hover:opacity-100 transition-opacity text-muted-foreground/70 hover:text-destructive p-1"
+ className="opacity-0 group-hover:opacity-100 transition-opacity text-muted-foreground hover:text-destructive p-1"
>
diff --git a/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/Fallbacks.tsx b/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/Fallbacks.tsx
index d896574e04b..2ccd1a70dc5 100644
--- a/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/Fallbacks.tsx
+++ b/ui/litellm-dashboard/src/components/Settings/RouterSettings/Fallbacks/Fallbacks.tsx
@@ -56,7 +56,7 @@ function renderFallbacksChain(
{list.map((model, i) => (
{i > 0 && (
-
+
)}
diff --git a/ui/litellm-dashboard/src/components/UsagePage/components/EntityUsage/TopKeyView.tsx b/ui/litellm-dashboard/src/components/UsagePage/components/EntityUsage/TopKeyView.tsx
index 46990370918..eed449d6676 100644
--- a/ui/litellm-dashboard/src/components/UsagePage/components/EntityUsage/TopKeyView.tsx
+++ b/ui/litellm-dashboard/src/components/UsagePage/components/EntityUsage/TopKeyView.tsx
@@ -122,10 +122,10 @@ const TopKeyView: React.FC = ({ topKeys, teams, showTags = fals
content={
- Tag Name: {tag.tag}
+ Tag Name: {tag.tag}
- Spend: {" "}
+ Spend: {" "}
{tag.usage > 0 && tag.usage < 0.01 ? "<$0.01" : `$${formatNumberWithCommas(tag.usage, 2)}`}
@@ -224,15 +224,15 @@ const TopKeyView: React.FC = ({ topKeys, teams, showTags = fals
- Key Alias:
+ Key Alias:
{item?.key_alias}
- Key ID:
+ Key ID:
{item?.api_key}
- Spend:
+ Spend:
${formatNumberWithCommas(item?.spend, 2)}
diff --git a/ui/litellm-dashboard/src/components/VirtualKeysPage/keyTableColumns.tsx b/ui/litellm-dashboard/src/components/VirtualKeysPage/keyTableColumns.tsx
index 89ecb3c22b8..51b8b734b4c 100644
--- a/ui/litellm-dashboard/src/components/VirtualKeysPage/keyTableColumns.tsx
+++ b/ui/litellm-dashboard/src/components/VirtualKeysPage/keyTableColumns.tsx
@@ -76,7 +76,7 @@ const UserPopoverCell = ({
{ label: "User ID", value: userId },
].map(({ label, value }) => (
-
{label}
+
{label}
{value ? (
) : (
@@ -119,7 +119,7 @@ const InfoHeader = ({ label, tooltip }: { label: string; tooltip: string }) => (
{label}
- } />
+ } />
{tooltip}
diff --git a/ui/litellm-dashboard/src/components/activity_metrics.tsx b/ui/litellm-dashboard/src/components/activity_metrics.tsx
index b8e5b70ae1f..a3fff08faae 100644
--- a/ui/litellm-dashboard/src/components/activity_metrics.tsx
+++ b/ui/litellm-dashboard/src/components/activity_metrics.tsx
@@ -234,7 +234,7 @@ const ModelCollapsible = ({
>
{header}
diff --git a/ui/litellm-dashboard/src/components/add_model/ClassificationMethodConfig.tsx b/ui/litellm-dashboard/src/components/add_model/ClassificationMethodConfig.tsx
index 854b67df696..9f2774edfbe 100644
--- a/ui/litellm-dashboard/src/components/add_model/ClassificationMethodConfig.tsx
+++ b/ui/litellm-dashboard/src/components/add_model/ClassificationMethodConfig.tsx
@@ -310,7 +310,7 @@ const ClassificationMethodConfig: React.FC
= ({
Classification Rubric
-
+
= ({
/>
Include Assistant Turns
-
+
@@ -451,7 +451,7 @@ const ClassificationMethodConfig: React.FC = ({
Custom Technical Keywords
-
+
diff --git a/ui/litellm-dashboard/src/components/add_model/ComplexityRouterConfig.tsx b/ui/litellm-dashboard/src/components/add_model/ComplexityRouterConfig.tsx
index 474b19e43a5..d199327a21e 100644
--- a/ui/litellm-dashboard/src/components/add_model/ComplexityRouterConfig.tsx
+++ b/ui/litellm-dashboard/src/components/add_model/ComplexityRouterConfig.tsx
@@ -262,7 +262,7 @@ const ComplexityRouterConfig: React.FC = ({
Complexity Tier Configuration
-
+
@@ -291,7 +291,7 @@ const ComplexityRouterConfig: React.FC = ({
{label} Tier
-
+
Tier {index + 1} of {TIER_KEYS.length} · {tier}
@@ -342,7 +342,7 @@ const ComplexityRouterConfig: React.FC = ({
Default Model
-
+
= ({ keywords, onCha
Escalation Keywords
-
+
diff --git a/ui/litellm-dashboard/src/components/add_model/KeywordTierRules.tsx b/ui/litellm-dashboard/src/components/add_model/KeywordTierRules.tsx
index 949c8a31f2a..b5291a34cb6 100644
--- a/ui/litellm-dashboard/src/components/add_model/KeywordTierRules.tsx
+++ b/ui/litellm-dashboard/src/components/add_model/KeywordTierRules.tsx
@@ -51,7 +51,7 @@ const KeywordTierRules: React.FC = ({ rules, onChange, ti
Keyword Tier Overrides
-
+
diff --git a/ui/litellm-dashboard/src/components/add_model/SemanticKeywordMatching.tsx b/ui/litellm-dashboard/src/components/add_model/SemanticKeywordMatching.tsx
index 666fabfcede..5684d32a319 100644
--- a/ui/litellm-dashboard/src/components/add_model/SemanticKeywordMatching.tsx
+++ b/ui/litellm-dashboard/src/components/add_model/SemanticKeywordMatching.tsx
@@ -43,7 +43,7 @@ const SemanticKeywordMatching: React.FC = ({
Semantic keyword matching
-
+
diff --git a/ui/litellm-dashboard/src/components/bulk_create_users_button.tsx b/ui/litellm-dashboard/src/components/bulk_create_users_button.tsx
index 0943a9765fe..8669f067d6d 100644
--- a/ui/litellm-dashboard/src/components/bulk_create_users_button.tsx
+++ b/ui/litellm-dashboard/src/components/bulk_create_users_button.tsx
@@ -525,7 +525,9 @@ const BulkCreateUsersButton: React.FC = ({
{parsedData.length === 0 ? (
-
1
+
+ 1
+
Download and fill the template
@@ -604,7 +606,9 @@ const BulkCreateUsersButton: React.FC
= ({
-
2
+
+ 2
+
Upload your completed CSV
@@ -669,7 +673,7 @@ const BulkCreateUsersButton: React.FC = ({
className="sr-only"
onChange={handleFileInputChange}
/>
-
+
Drag and drop your CSV file here
or
Browse files
@@ -697,7 +701,9 @@ const BulkCreateUsersButton: React.FC = ({
) : (
-
3
+
+ 3
+
{parsedData.some((user) => user.status === "success" || user.status === "failed")
? "User Creation Results"
diff --git a/ui/litellm-dashboard/src/components/chat/ConversationList.tsx b/ui/litellm-dashboard/src/components/chat/ConversationList.tsx
index da57b70d096..0f513ad4381 100644
--- a/ui/litellm-dashboard/src/components/chat/ConversationList.tsx
+++ b/ui/litellm-dashboard/src/components/chat/ConversationList.tsx
@@ -190,7 +190,7 @@ const ConversationRow: React.FC = ({ conv, isActive, onSel
Cancel
onDelete(conv.id)}
- className="bg-destructive text-white hover:bg-destructive/90"
+ className="bg-destructive text-destructive-foreground hover:bg-destructive/90"
>
Delete
diff --git a/ui/litellm-dashboard/src/components/chat_ui/MCPEventsDisplay.tsx b/ui/litellm-dashboard/src/components/chat_ui/MCPEventsDisplay.tsx
index 144c7d609a3..632553e6d1b 100644
--- a/ui/litellm-dashboard/src/components/chat_ui/MCPEventsDisplay.tsx
+++ b/ui/litellm-dashboard/src/components/chat_ui/MCPEventsDisplay.tsx
@@ -161,10 +161,10 @@ interface MCPEventPanelProps {
function MCPEventPanel({ title, open, onOpenChange, children }: MCPEventPanelProps) {
return (
-
+
= ({
{autoRotate && rotationInterval && (
<>
- •
+ •
Every {rotationInterval}
>
)}
@@ -87,7 +87,7 @@ const AutoRotationView: React.FC = ({
{!autoRotate && !lastRotationAt && !keyRotationAt && !nextRotationAt && (
-
+
Auto-rotation is not enabled for this key
)}
diff --git a/ui/litellm-dashboard/src/components/common_components/RouterSettingsSummary.tsx b/ui/litellm-dashboard/src/components/common_components/RouterSettingsSummary.tsx
index 9f4e6285f12..0d0b6a19503 100644
--- a/ui/litellm-dashboard/src/components/common_components/RouterSettingsSummary.tsx
+++ b/ui/litellm-dashboard/src/components/common_components/RouterSettingsSummary.tsx
@@ -18,7 +18,7 @@ export default function RouterSettingsSummary({
emptyText = "No router settings configured",
}: RouterSettingsSummaryProps) {
if (!hasRouterSettings(routerSettings)) {
- return {emptyText}
;
+ return {emptyText}
;
}
const settings = routerSettings as Record;
@@ -44,7 +44,7 @@ export default function RouterSettingsSummary({
{fallbacks.map(([model, targets]) => (
{model}
- ->
+ ->
{Array.isArray(targets) ? targets.join(", ") : String(targets)}
))}
diff --git a/ui/litellm-dashboard/src/components/key_team_helpers/BudgetFallbacksEditor.tsx b/ui/litellm-dashboard/src/components/key_team_helpers/BudgetFallbacksEditor.tsx
index 1bd7fbe11a2..c0c12356c6f 100644
--- a/ui/litellm-dashboard/src/components/key_team_helpers/BudgetFallbacksEditor.tsx
+++ b/ui/litellm-dashboard/src/components/key_team_helpers/BudgetFallbacksEditor.tsx
@@ -87,7 +87,7 @@ export function BudgetFallbacksEditor({ value, onChange, availableModels }: Budg
removeEntry(entry.id)}
- className="absolute top-2 right-2 text-muted-foreground/70 hover:text-destructive transition-colors p-1"
+ className="absolute top-2 right-2 text-muted-foreground hover:text-destructive transition-colors p-1"
>
@@ -125,7 +125,7 @@ export function BudgetFallbacksEditor({ value, onChange, availableModels }: Budg
className="w-full"
/>
{entry.fallbackModels.length > 1 && (
-
+
Tried in order; first model still within its own budget is used
)}
diff --git a/ui/litellm-dashboard/src/components/logging_settings_view.tsx b/ui/litellm-dashboard/src/components/logging_settings_view.tsx
index 8f81d8cef67..d4a0fc1327f 100644
--- a/ui/litellm-dashboard/src/components/logging_settings_view.tsx
+++ b/ui/litellm-dashboard/src/components/logging_settings_view.tsx
@@ -97,7 +97,7 @@ export function LoggingSettingsView({
) : (
-
+
No logging integrations configured
)}
@@ -140,7 +140,7 @@ export function LoggingSettingsView({
) : (
-
+
No callbacks disabled
)}
diff --git a/ui/litellm-dashboard/src/components/mcp_tools/ByokCredentialModal.tsx b/ui/litellm-dashboard/src/components/mcp_tools/ByokCredentialModal.tsx
index 01accca123a..64dd066b535 100644
--- a/ui/litellm-dashboard/src/components/mcp_tools/ByokCredentialModal.tsx
+++ b/ui/litellm-dashboard/src/components/mcp_tools/ByokCredentialModal.tsx
@@ -87,7 +87,7 @@ export const ByokCredentialModal: React.FC
= ({ server
-
+
@@ -99,7 +99,7 @@ export const ByokCredentialModal: React.FC = ({ server
L
-
+
{firstLetter}
@@ -158,7 +158,7 @@ export const ByokCredentialModal: React.FC = ({ server
Cancel
@@ -223,7 +223,7 @@ export const ByokCredentialModal: React.FC = ({ server
Connect & Authorize
diff --git a/ui/litellm-dashboard/src/components/model_dashboard/HealthChecksTableColumns.tsx b/ui/litellm-dashboard/src/components/model_dashboard/HealthChecksTableColumns.tsx
index f0a63d397e2..d108058da12 100644
--- a/ui/litellm-dashboard/src/components/model_dashboard/HealthChecksTableColumns.tsx
+++ b/ui/litellm-dashboard/src/components/model_dashboard/HealthChecksTableColumns.tsx
@@ -135,7 +135,7 @@ function RunHealthCheckButton({
className={cn(
"rounded-md p-2 transition-colors",
isLoading
- ? "cursor-not-allowed bg-muted text-muted-foreground/70"
+ ? "cursor-not-allowed bg-muted text-muted-foreground"
: "text-indigo-600 hover:bg-indigo-50 hover:text-indigo-700",
)}
>
diff --git a/ui/litellm-dashboard/src/components/model_group_alias_settings.tsx b/ui/litellm-dashboard/src/components/model_group_alias_settings.tsx
index 09511742786..1e943da25c5 100644
--- a/ui/litellm-dashboard/src/components/model_group_alias_settings.tsx
+++ b/ui/litellm-dashboard/src/components/model_group_alias_settings.tsx
@@ -206,7 +206,7 @@ const ModelGroupAliasSettings: React.FC = ({
Add Alias
diff --git a/ui/litellm-dashboard/src/components/permissions/AgentPermissions.tsx b/ui/litellm-dashboard/src/components/permissions/AgentPermissions.tsx
index b7a5b4ce197..d84bd1834f8 100644
--- a/ui/litellm-dashboard/src/components/permissions/AgentPermissions.tsx
+++ b/ui/litellm-dashboard/src/components/permissions/AgentPermissions.tsx
@@ -96,7 +96,7 @@ export function AgentPermissions({ agents, agentAccessGroups = [], accessToken }
) : (
-
+
No agents or access groups configured
)}
diff --git a/ui/litellm-dashboard/src/components/permissions/MCPServerPermissions.tsx b/ui/litellm-dashboard/src/components/permissions/MCPServerPermissions.tsx
index 8c0c96627c1..50461d52d27 100644
--- a/ui/litellm-dashboard/src/components/permissions/MCPServerPermissions.tsx
+++ b/ui/litellm-dashboard/src/components/permissions/MCPServerPermissions.tsx
@@ -173,9 +173,9 @@ export function MCPServerPermissions({
{toolsForServer.length === 1 ? "tool" : "tools"}
{isExpanded ? (
-
+
) : (
-
+
)}
)}
@@ -229,9 +229,9 @@ export function MCPServerPermissions({
{toolCount}
{toolCount === 1 ? "tool" : "tools"}
{isExpanded ? (
-
+
) : (
-
+
)}
)}
@@ -258,7 +258,7 @@ export function MCPServerPermissions({
) : (
-
+
No MCP servers, access groups, or toolsets configured
)}
diff --git a/ui/litellm-dashboard/src/components/permissions/VectorStorePermissions.tsx b/ui/litellm-dashboard/src/components/permissions/VectorStorePermissions.tsx
index b92b7bc3635..70a3430352c 100644
--- a/ui/litellm-dashboard/src/components/permissions/VectorStorePermissions.tsx
+++ b/ui/litellm-dashboard/src/components/permissions/VectorStorePermissions.tsx
@@ -69,7 +69,7 @@ export function VectorStorePermissions({ vectorStores, accessToken }: VectorStor
) : (
-
+
No vector stores configured
)}
diff --git a/ui/litellm-dashboard/src/components/public_model_hub.tsx b/ui/litellm-dashboard/src/components/public_model_hub.tsx
index 20360ee8c59..171b7992325 100644
--- a/ui/litellm-dashboard/src/components/public_model_hub.tsx
+++ b/ui/litellm-dashboard/src/components/public_model_hub.tsx
@@ -597,7 +597,7 @@ const PublicModelHub: React.FC
= ({ accessToken, isEmbedded
Search Models:
- } />
+ } />
Smart search with relevance ranking - finds models containing your search terms, ranked by
relevance. Try searching 'xai grok-4', 'claude-4', 'gpt-4', or
@@ -606,7 +606,7 @@ const PublicModelHub: React.FC = ({ accessToken, isEmbedded
-
+
= ({ accessToken, isEmbedded
Search Agents:
- }
- />
+ } />
Search agents by name or description
-
+
= ({ accessToken, isEmbedded
Search MCP Servers:
- }
- />
+ } />
Search MCP servers by name or description
-
+
= ({
{formatDisplayRange(value.from, value.to)}
= ({ isDateChanging = false
{isDateChanging ? "Processing date selection..." : "Loading chart data..."}
-
+
{isDateChanging ? "This will only take a moment" : "Fetching your data"}
diff --git a/ui/litellm-dashboard/src/components/team/TeamInfo.tsx b/ui/litellm-dashboard/src/components/team/TeamInfo.tsx
index 25b40bf6c7c..727445e4fcd 100644
--- a/ui/litellm-dashboard/src/components/team/TeamInfo.tsx
+++ b/ui/litellm-dashboard/src/components/team/TeamInfo.tsx
@@ -1048,7 +1048,7 @@ const TeamInfoView: React.FC
= ({
{policy}
- {loadingPolicies &&
Loading guardrails...
}
+ {loadingPolicies &&
Loading guardrails...
}
{!loadingPolicies && policyGuardrails[policy] && policyGuardrails[policy].length > 0 && (
@@ -1743,14 +1743,14 @@ const TeamInfoView: React.FC
= ({
{(() => {
const aliasEntries = Object.entries(info.litellm_model_table?.model_aliases ?? {});
if (aliasEntries.length === 0) {
- return No model aliases configured
;
+ return No model aliases configured
;
}
return (
{aliasEntries.map(([alias, target]) => (
{alias}
- {" -> "}
+ {" -> "}
{target}
))}
@@ -1850,7 +1850,7 @@ const TeamInfoView: React.FC
= ({
{info.router_settings.enable_tag_filtering && Tag Filtering: Enabled
}
) : (
- No router settings configured
+ No router settings configured
)}
diff --git a/ui/litellm-dashboard/src/components/templates/KeyInfoHeader.tsx b/ui/litellm-dashboard/src/components/templates/KeyInfoHeader.tsx
index 6f44d7d87c0..a6fbed5a041 100644
--- a/ui/litellm-dashboard/src/components/templates/KeyInfoHeader.tsx
+++ b/ui/litellm-dashboard/src/components/templates/KeyInfoHeader.tsx
@@ -100,7 +100,7 @@ function UserField({ userAlias, userEmail, userId }: { userAlias?: string | null
{ label: "User ID", value: userId || null },
].map(({ label, value }) => (
-
{label}
+
{label}
{value ? (
diff --git a/ui/litellm-dashboard/src/components/templates/key_info_view.tsx b/ui/litellm-dashboard/src/components/templates/key_info_view.tsx
index 7126ead75bd..b14820d8afa 100644
--- a/ui/litellm-dashboard/src/components/templates/key_info_view.tsx
+++ b/ui/litellm-dashboard/src/components/templates/key_info_view.tsx
@@ -695,7 +695,7 @@ export default function KeyInfoView({
{policy}
- {loadingPolicies && Loading guardrails...
}
+ {loadingPolicies && Loading guardrails...
}
{!loadingPolicies && policyGuardrails[policy] && policyGuardrails[policy].length > 0 && (
@@ -883,7 +883,7 @@ export default function KeyInfoView({
{Object.entries(currentKeyData.budget_fallbacks).map(([model, fallbacks]) => (
{model}
- ->
+ ->
{fallbacks.join(", ")}
))}
diff --git a/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/CompliancePanel.tsx b/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/CompliancePanel.tsx
index 6f95e2e8068..06450f2b7d2 100644
--- a/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/CompliancePanel.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/CompliancePanel.tsx
@@ -68,7 +68,7 @@ const ComplianceCard = ({
) : error ? (
- }>--
+ }>--
{error}
@@ -120,7 +120,7 @@ const ComplianceCard = ({
{check.check_name}
- {check.article}
+ {check.article}
{check.detail}
diff --git a/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/GuardrailViewer.tsx b/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/GuardrailViewer.tsx
index b72f1cedf23..b5ea9d6d883 100644
--- a/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/GuardrailViewer.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/GuardrailViewer/GuardrailViewer.tsx
@@ -430,7 +430,7 @@ const RequestLifecycle = ({ entries }: { entries: GuardrailInformation[] }) => {
{item.status}
)}
-
T+{item.offsetMs}ms
+
T+{item.offsetMs}ms
@@ -670,7 +670,7 @@ const GuardrailViewer = ({ data, accessToken, logEntry }: GuardrailViewerProps)
{guardrailEntries.length} guardrail{guardrailEntries.length !== 1 ? "s" : ""} evaluated
-
|
+
|
{copiedLeftPanelId ? : }
diff --git a/ui/litellm-dashboard/src/components/view_logs/RequestLogsTableColumns.tsx b/ui/litellm-dashboard/src/components/view_logs/RequestLogsTableColumns.tsx
index a3590857103..fc7d1cf0a71 100644
--- a/ui/litellm-dashboard/src/components/view_logs/RequestLogsTableColumns.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/RequestLogsTableColumns.tsx
@@ -143,7 +143,7 @@ export const getRequestLogsTableColumns = ({
return (
{spend ?
: money}
- {isMultiCallSession &&
session total }
+ {isMultiCallSession &&
session total }
{mcpCount > 0 && mcpSpend > 0 && (
incl. {getSpendString(mcpSpend)} from {mcpCount} MCP
@@ -253,7 +253,7 @@ export const getRequestLogsTableColumns = ({
return (
{String(log.total_tokens || "0")}
-
+
({String(log.prompt_tokens || "0")}+{String(log.completion_tokens || "0")})
diff --git a/ui/litellm-dashboard/src/components/view_logs/TypeBadges.tsx b/ui/litellm-dashboard/src/components/view_logs/TypeBadges.tsx
index 712f41dd3ad..df8e2f6ef00 100644
--- a/ui/litellm-dashboard/src/components/view_logs/TypeBadges.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/TypeBadges.tsx
@@ -13,7 +13,7 @@ export const SparkleIcon = ({ size = 12 }: { size?: number }) => (
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
- className="shrink-0 text-muted-foreground/70"
+ className="shrink-0 text-muted-foreground"
>