diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json
index f865e59fb2..69d9652f50 100644
--- a/src/i18n/messages/en.json
+++ b/src/i18n/messages/en.json
@@ -677,9 +677,16 @@
"docs": "Docs",
"issues": "Issues",
"endpoints": "Endpoints",
+ "endpointsSubtitle": "Your AI connection URLs",
"apiManager": "API Manager",
+ "apiManagerSubtitle": "Manage API keys and access",
"logs": "Logs",
"webhooks": "Webhooks",
+ "webhooksSubtitle": "Get notified of events",
+ "combosSubtitle": "Group providers for failover",
+ "batchSubtitle": "Process multiple requests",
+ "contextCavemanSubtitle": "Prompt compression",
+ "contextRtkSubtitle": "Output filtering",
"auditLog": "Audit Log",
"shutdown": "Shutdown",
"restart": "Restart",
diff --git a/src/shared/components/Sidebar.tsx b/src/shared/components/Sidebar.tsx
index e42443f7dc..83ceb61bbe 100644
--- a/src/shared/components/Sidebar.tsx
+++ b/src/shared/components/Sidebar.tsx
@@ -131,7 +131,11 @@ export default function Sidebar({
...section,
title: getSidebarLabel(section.titleKey, section.titleFallback),
items: section.items
- .map((item) => ({ ...item, label: t(item.i18nKey) }))
+ .map((item) => ({
+ ...item,
+ label: t(item.i18nKey),
+ subtitle: item.subtitleKey ? t(item.subtitleKey) : undefined,
+ }))
.filter((item) => !hiddenSidebarSet.has(item.id)),
}))
.filter((section) => section.items.length > 0);
@@ -156,7 +160,14 @@ export default function Sidebar({
const content = (
<>
{item.icon}
- {!collapsed && {item.label}}
+ {!collapsed && (
+
+ {item.label}
+ {item.subtitle && (
+ {item.subtitle}
+ )}
+
+ )}
>
);
diff --git a/src/shared/constants/sidebarVisibility.ts b/src/shared/constants/sidebarVisibility.ts
index 68622a0aa3..04b514ad20 100644
--- a/src/shared/constants/sidebarVisibility.ts
+++ b/src/shared/constants/sidebarVisibility.ts
@@ -40,6 +40,7 @@ export interface SidebarItemDefinition {
id: HideableSidebarItemId;
href: string;
i18nKey: string;
+ subtitleKey?: string;
icon: string;
exact?: boolean;
external?: boolean;
@@ -56,11 +57,35 @@ export interface SidebarSectionDefinition {
const PRIMARY_SIDEBAR_ITEMS: readonly SidebarItemDefinition[] = [
{ id: "home", href: "/dashboard", i18nKey: "home", icon: "home", exact: true },
- { id: "endpoints", href: "/dashboard/endpoint", i18nKey: "endpoints", icon: "api" },
- { id: "api-manager", href: "/dashboard/api-manager", i18nKey: "apiManager", icon: "vpn_key" },
+ {
+ id: "endpoints",
+ href: "/dashboard/endpoint",
+ i18nKey: "endpoints",
+ subtitleKey: "endpointsSubtitle",
+ icon: "api",
+ },
+ {
+ id: "api-manager",
+ href: "/dashboard/api-manager",
+ i18nKey: "apiManager",
+ subtitleKey: "apiManagerSubtitle",
+ icon: "vpn_key",
+ },
{ id: "providers", href: "/dashboard/providers", i18nKey: "providers", icon: "dns" },
- { id: "combos", href: "/dashboard/combos", i18nKey: "combos", icon: "layers" },
- { id: "batch", href: "/dashboard/batch", i18nKey: "batch", icon: "view_list" },
+ {
+ id: "combos",
+ href: "/dashboard/combos",
+ i18nKey: "combos",
+ subtitleKey: "combosSubtitle",
+ icon: "layers",
+ },
+ {
+ id: "batch",
+ href: "/dashboard/batch",
+ i18nKey: "batch",
+ subtitleKey: "batchSubtitle",
+ icon: "view_list",
+ },
{ id: "costs", href: "/dashboard/costs", i18nKey: "costs", icon: "account_balance_wallet" },
{ id: "analytics", href: "/dashboard/analytics", i18nKey: "analytics", icon: "analytics" },
{ id: "cache", href: "/dashboard/cache", i18nKey: "cache", icon: "cached" },
@@ -82,12 +107,14 @@ const CONTEXT_SIDEBAR_ITEMS: readonly SidebarItemDefinition[] = [
id: "context-caveman",
href: "/dashboard/context/caveman",
i18nKey: "contextCaveman",
+ subtitleKey: "contextCavemanSubtitle",
icon: "compress",
},
{
id: "context-rtk",
href: "/dashboard/context/rtk",
i18nKey: "contextRtk",
+ subtitleKey: "contextRtkSubtitle",
icon: "filter_alt",
},
{
@@ -112,7 +139,13 @@ const DEBUG_SIDEBAR_ITEMS: readonly SidebarItemDefinition[] = [
const SYSTEM_SIDEBAR_ITEMS: readonly SidebarItemDefinition[] = [
{ id: "logs", href: "/dashboard/logs", i18nKey: "logs", icon: "description" },
{ id: "audit", href: "/dashboard/audit", i18nKey: "auditLog", icon: "policy" },
- { id: "webhooks", href: "/dashboard/webhooks", i18nKey: "webhooks", icon: "webhook" },
+ {
+ id: "webhooks",
+ href: "/dashboard/webhooks",
+ i18nKey: "webhooks",
+ subtitleKey: "webhooksSubtitle",
+ icon: "webhook",
+ },
{ id: "health", href: "/dashboard/health", i18nKey: "health", icon: "health_and_safety" },
{ id: "proxy", href: "/dashboard/system/proxy", i18nKey: "proxy", icon: "dns" },
{ id: "settings", href: "/dashboard/settings", i18nKey: "settings", icon: "settings" },