diff --git a/frontend/src/pages/PluginManager.tsx b/frontend/src/pages/PluginManager.tsx
index a08f1fed6..c55ecc2da 100644
--- a/frontend/src/pages/PluginManager.tsx
+++ b/frontend/src/pages/PluginManager.tsx
@@ -39,6 +39,15 @@ interface Plugin {
id: number;
}
+interface Stat {
+ label: string;
+ value: number;
+ color: string;
+ iconBg: string;
+ iconColor: string;
+ Icon: React.ComponentType<{ className?: string; style?: React.CSSProperties }>;
+}
+
export const PluginManager: React.FC = () => {
const { t } = useTranslation();
const { theme } = useTheme();
@@ -271,41 +280,93 @@ export const PluginManager: React.FC = () => {
{/* Stats */}
-
- {[
- {
- label: t('plugins.list.total'),
- value: availablePlugins.length,
- color: themeStyles.colors.text.primary,
- },
- {
- label: t('plugins.list.active'),
- value: availablePlugins.filter(p => p.enabled).length,
- color: themeStyles.colors.status.success,
- },
- {
- label: t('plugins.list.inactive'),
- value: availablePlugins.filter(p => !p.enabled).length,
- color: themeStyles.colors.text.secondary,
- },
- ].map((stat, index) => (
+
+ {(
+ [
+ {
+ label: t('plugins.list.total'),
+ value: availablePlugins.length,
+ color: themeStyles.colors.text.primary,
+ iconBg: themeStyles.colors.text.secondary + '15',
+ iconColor: themeStyles.colors.text.primary,
+ Icon: HiOutlinePuzzlePiece,
+ },
+ {
+ label: t('plugins.list.active'),
+ value: availablePlugins.filter(p => p.enabled).length,
+ color: themeStyles.colors.status.success,
+ iconBg: themeStyles.colors.status.success + '20',
+ iconColor: themeStyles.colors.status.success,
+ Icon: HiOutlineCheckCircle,
+ },
+ {
+ label: t('plugins.list.inactive'),
+ value: availablePlugins.filter(p => !p.enabled).length,
+ color: themeStyles.colors.text.secondary,
+ iconBg: themeStyles.colors.text.secondary + '20',
+ iconColor: themeStyles.colors.text.secondary,
+ Icon: HiOutlinePause,
+ },
+ ] as Stat[]
+ ).map((stat, index) => (
-
- {stat.value}
-
-
- {stat.label}
-
+ {/* Gradient overlay on hover */}
+
+
+
+
+
+
+
+
+ {stat.value}
+
+
+ {stat.label}
+
+
+
+ {/* Bottom accent line */}
+
))}