Update AppImage

This commit is contained in:
MacRimi
2025-09-28 22:53:42 +02:00
parent 96cbc75a5e
commit e404557d62
9 changed files with 99 additions and 111 deletions

View File

@@ -4,7 +4,6 @@
@custom-variant dark (&:is(.dark *)); @custom-variant dark (&:is(.dark *));
:root { :root {
/* Proxmox light theme colors */
--background: oklch(1 0 0); --background: oklch(1 0 0);
--foreground: oklch(0.145 0 0); --foreground: oklch(0.145 0 0);
--card: oklch(1 0 0); --card: oklch(1 0 0);
@@ -32,10 +31,11 @@
--radius: 0.625rem; --radius: 0.625rem;
--sidebar: oklch(0.985 0 0); --sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.145 0 0); --sidebar-foreground: oklch(0.145 0 0);
--header-bg: oklch(1 0 0);
--header-foreground: oklch(0.145 0 0);
} }
.dark { .dark {
/* Proxmox dark theme with proper gray background (#2b2f36) */
--background: oklch(0.205 0.005 240); /* Proxmox dark gray #2b2f36 */ --background: oklch(0.205 0.005 240); /* Proxmox dark gray #2b2f36 */
--foreground: oklch(0.985 0 0); --foreground: oklch(0.985 0 0);
--card: oklch(0.235 0.005 240); /* Slightly lighter gray for cards #363c45 */ --card: oklch(0.235 0.005 240); /* Slightly lighter gray for cards #363c45 */
@@ -55,12 +55,15 @@
--border: oklch(0.335 0.005 240); /* More visible borders */ --border: oklch(0.335 0.005 240); /* More visible borders */
--input: oklch(0.285 0.005 240); --input: oklch(0.285 0.005 240);
--ring: oklch(0.439 0 0); --ring: oklch(0.439 0 0);
/* Updated chart colors to be more vibrant and visible in dark mode */
--chart-1: oklch(0.65 0.2 220); /* Bright Blue */ --chart-1: oklch(0.65 0.2 220); /* Bright Blue */
--chart-2: oklch(0.65 0.2 140); /* Bright Green */ --chart-2: oklch(0.65 0.2 140); /* Bright Green */
--chart-3: oklch(0.7 0.2 50); /* Bright Yellow */ --chart-3: oklch(0.7 0.2 50); /* Bright Yellow */
--chart-4: oklch(0.65 0.2 300); /* Bright Purple */ --chart-4: oklch(0.65 0.2 300); /* Bright Purple */
--chart-5: oklch(0.65 0.2 20); /* Bright Orange */ --chart-5: oklch(0.65 0.2 20); /* Bright Orange */
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--sidebar: oklch(0.205 0 0); --sidebar: oklch(0.205 0 0);
--sidebar-foreground: oklch(0.985 0 0); --sidebar-foreground: oklch(0.985 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary: oklch(0.488 0.243 264.376);
@@ -69,12 +72,13 @@
--sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-accent-foreground: oklch(0.985 0 0);
--sidebar-border: oklch(0.285 0.005 240); --sidebar-border: oklch(0.285 0.005 240);
--sidebar-ring: oklch(0.439 0 0); --sidebar-ring: oklch(0.439 0 0);
/* Header is black only in dark mode */
--header-bg: oklch(0 0 0); --header-bg: oklch(0 0 0);
--header-foreground: oklch(1 0 0); --header-foreground: oklch(1 0 0);
} }
@theme inline { @theme inline {
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
--color-background: var(--background); --color-background: var(--background);
--color-foreground: var(--foreground); --color-foreground: var(--foreground);
--color-card: var(--card); --color-card: var(--card);
@@ -111,9 +115,6 @@
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border); --color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring); --color-sidebar-ring: var(--sidebar-ring);
/* Custom header colors */
--color-header-bg: var(--header-bg);
--color-header-foreground: var(--header-foreground);
} }
@layer base { @layer base {
@@ -123,14 +124,11 @@
body { body {
@apply bg-background text-foreground; @apply bg-background text-foreground;
} }
}
/* Header styling that adapts to theme */
.header-bg { .header-bg {
background-color: var(--header-bg); background-color: var(--header-bg);
color: var(--header-foreground); color: var(--header-foreground);
backdrop-filter: none; /* Remove any blur effects */
} }
/* Custom scrollbar with better contrast */ /* Custom scrollbar with better contrast */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 6px; width: 6px;
@@ -200,3 +198,4 @@
padding: 0.125rem 0.5rem; padding: 0.125rem 0.5rem;
white-space: nowrap; white-space: nowrap;
} }
}

View File

@@ -9,21 +9,8 @@ import "./globals.css"
export const metadata: Metadata = { export const metadata: Metadata = {
title: "ProxMenux Monitor", title: "ProxMenux Monitor",
description: "Proxmox System Dashboard and Monitor", description: "Proxmox System Dashboard",
generator: "v0.app", generator: "v0.app",
manifest: "/manifest.json",
icons: {
icon: [
{ url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" },
{ url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" },
],
apple: [{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" }],
},
viewport: "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no",
themeColor: [
{ media: "(prefers-color-scheme: light)", color: "#ffffff" },
{ media: "(prefers-color-scheme: dark)", color: "#1a1a1a" },
],
} }
export default function RootLayout({ export default function RootLayout({
@@ -33,13 +20,13 @@ export default function RootLayout({
}>) { }>) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<body className={`${GeistSans.variable} ${GeistMono.variable} antialiased`}> <body className={`font-sans ${GeistSans.variable} ${GeistMono.variable}`}>
<Suspense fallback={<div>Loading...</div>}> <Suspense fallback={null}>
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange> <ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
{children} {children}
</ThemeProvider> </ThemeProvider>
<Analytics />
</Suspense> </Suspense>
<Analytics />
</body> </body>
</html> </html>
) )

View File

@@ -1,6 +1,6 @@
import { ProxmoxDashboard } from "../components/proxmox-dashboard" import { ProxmoxDashboard } from "../AppImage/components/proxmox-dashboard"
export default function Home() { export default function Page() {
return ( return (
<main className="min-h-screen bg-background"> <main className="min-h-screen bg-background">
<ProxmoxDashboard /> <ProxmoxDashboard />

View File

@@ -1,7 +1,7 @@
"use client" "use client"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Card, CardContent, CardHeader, CardTitle } from "./ui/card"
import { Badge } from "@/components/ui/badge" import { Badge } from "./ui/badge"
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, AreaChart, Area } from "recharts" import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, AreaChart, Area } from "recharts"
import { Wifi, Globe, Shield, Activity, Network, Router } from "lucide-react" import { Wifi, Globe, Shield, Activity, Network, Router } from "lucide-react"
@@ -80,9 +80,11 @@ export function NetworkMetrics() {
</Card> </Card>
<Card className="bg-card border-border"> <Card className="bg-card border-border">
<CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2"> <CardHeader>
<CardTitle className="text-sm font-medium text-muted-foreground">Latency</CardTitle> <CardTitle className="text-foreground flex items-center">
<Globe className="h-4 w-4 text-muted-foreground" /> <Globe className="h-5 w-5 mr-2" />
Latency
</CardTitle>
</CardHeader> </CardHeader>
<CardContent> <CardContent>
<div className="text-2xl font-bold text-foreground">12ms</div> <div className="text-2xl font-bold text-foreground">12ms</div>

View File

@@ -1,8 +1,8 @@
"use client" "use client"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Card, CardContent, CardHeader, CardTitle } from "./ui/card"
import { Progress } from "@/components/ui/progress" import { Progress } from "./ui/progress"
import { Badge } from "@/components/ui/badge" import { Badge } from "./ui/badge"
import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip } from "recharts" import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip } from "recharts"
import { HardDrive, Database, Archive, AlertTriangle, CheckCircle, Activity } from "lucide-react" import { HardDrive, Database, Archive, AlertTriangle, CheckCircle, Activity } from "lucide-react"

View File

@@ -1,11 +1,11 @@
"use client" "use client"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Card, CardContent, CardHeader, CardTitle } from "./ui/card"
import { Badge } from "@/components/ui/badge" import { Badge } from "./ui/badge"
import { Button } from "@/components/ui/button" import { Button } from "./ui/button"
import { Input } from "@/components/ui/input" import { Input } from "./ui/input"
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./ui/select"
import { ScrollArea } from "@/components/ui/scroll-area" import { ScrollArea } from "./ui/scroll-area"
import { FileText, Search, Download, AlertTriangle, Info, CheckCircle, XCircle } from "lucide-react" import { FileText, Search, Download, AlertTriangle, Info, CheckCircle, XCircle } from "lucide-react"
import { useState } from "react" import { useState } from "react"

View File

@@ -1,8 +1,8 @@
"use client" "use client"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Card, CardContent, CardHeader, CardTitle } from "./ui/card"
import { Progress } from "@/components/ui/progress" import { Progress } from "./ui/progress"
import { Badge } from "@/components/ui/badge" import { Badge } from "./ui/badge"
import { XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, AreaChart, Area } from "recharts" import { XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, AreaChart, Area } from "recharts"
import { Cpu, MemoryStick, Thermometer, Users, Activity, Server, Zap } from "lucide-react" import { Cpu, MemoryStick, Thermometer, Users, Activity, Server, Zap } from "lucide-react"

View File

@@ -2,7 +2,7 @@
import { Moon, Sun } from "lucide-react" import { Moon, Sun } from "lucide-react"
import { useTheme } from "next-themes" import { useTheme } from "next-themes"
import { Button } from "@/components/ui/button" import { Button } from "./ui/button"
export function ThemeToggle() { export function ThemeToggle() {
const { theme, setTheme } = useTheme() const { theme, setTheme } = useTheme()

View File

@@ -1,8 +1,8 @@
"use client" "use client"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Card, CardContent, CardHeader, CardTitle } from "./ui/card"
import { Badge } from "@/components/ui/badge" import { Badge } from "./ui/badge"
import { Progress } from "@/components/ui/progress" import { Progress } from "./ui/progress"
import { Server, Play, Square, RotateCcw, Monitor, Cpu, MemoryStick } from "lucide-react" import { Server, Play, Square, RotateCcw, Monitor, Cpu, MemoryStick } from "lucide-react"
const virtualMachines = [ const virtualMachines = [