Update AppImage

This commit is contained in:
MacRimi
2025-10-23 19:47:26 +02:00
parent dadb215ce0
commit 03a007b9b6
2 changed files with 64 additions and 104 deletions

View File

@@ -1,8 +1,10 @@
@import "tailwindcss"; @tailwind base;
@import "tw-animate-css"; @tailwind components;
@tailwind utilities;
@custom-variant dark (&:is(.dark *));
/* ===================== */
/* Light Mode (default) */
/* ===================== */
:root { :root {
--background: oklch(1 0 0); /* blanco */ --background: oklch(1 0 0); /* blanco */
--foreground: oklch(0.145 0 0); /* casi negro */ --foreground: oklch(0.145 0 0); /* casi negro */
@@ -48,8 +50,6 @@
--sidebar-accent-foreground: var(--primary); --sidebar-accent-foreground: var(--primary);
--sidebar-border: var(--border); --sidebar-border: var(--border);
--sidebar-ring: var(--ring); --sidebar-ring: var(--ring);
/* Removed custom layout variables that were causing compilation issues */
} }
/* ===================== */ /* ===================== */
@@ -84,8 +84,8 @@
--input: var(--border); --input: var(--border);
--ring: oklch(0.55 0 0); --ring: oklch(0.55 0 0);
--chart-1: oklch(0.6 0.2 255); --chart-1: oklch(0.60 0.20 255);
--chart-2: oklch(0.7 0.16 165); --chart-2: oklch(0.70 0.16 165);
--chart-3: oklch(0.76 0.19 70); --chart-3: oklch(0.76 0.19 70);
--chart-4: oklch(0.63 0.25 305); --chart-4: oklch(0.63 0.25 305);
--chart-5: oklch(0.66 0.24 20); --chart-5: oklch(0.66 0.24 20);
@@ -100,84 +100,47 @@
--sidebar-ring: var(--ring); --sidebar-ring: var(--ring);
} }
/* Removed media query for mobile layout variables */ /* ===================== */
/* Base layer */
/* ===================== */
@layer base {
* {
@apply border-border;
}
@theme inline { body {
/* optional: --font-sans, --font-serif, --font-mono if they are applied in the layout.tsx */ @apply bg-background text-foreground;
--color-background: var(--background); }
--color-foreground: var(--foreground);
--color-card: var(--card); /* Foco accesible */
--color-card-foreground: var(--card-foreground); :is(button,[role="button"],a,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus {
--color-popover: var(--popover); @apply outline-none;
--color-popover-foreground: var(--popover-foreground); }
--color-primary: var(--primary); :is(button,[role="button"],a,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible {
--color-primary-foreground: var(--primary-foreground); @apply ring-2;
--color-secondary: var(--secondary); --tw-ring-color: var(--ring);
--color-secondary-foreground: var(--secondary-foreground); --tw-ring-opacity: 0.5; /* equivalente al /50 */
--color-muted: var(--muted); }
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
} }
/* Removed @layer directives for Tailwind v4 compatibility */ /* ===================== */
/* Base styles without @layer wrapper */ /* Ajustes para Charts */
* { /* ===================== */
border-color: var(--border); @layer components {
outline-color: color-mix(in oklch, var(--ring) 50%, transparent); /* Recharts axis */
} .recharts-cartesian-axis-tick tspan {
body {
background-color: var(--background);
color: var(--foreground);
}
/* Accessible focus styles */
:is(button, [role="button"], a, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus {
outline: none;
}
:is(button, [role="button"], a, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
outline: 2px solid color-mix(in oklch, var(--ring) 50%, transparent);
outline-offset: 2px;
}
/* Chart component styles */
.recharts-cartesian-axis-tick tspan {
fill: var(--muted-foreground); fill: var(--muted-foreground);
} }
.recharts-cartesian-axis-line,
.recharts-cartesian-axis-line, .recharts-cartesian-grid line {
.recharts-cartesian-grid line {
stroke: var(--border); stroke: var(--border);
} }
.chartjs-render-monitor text { /* Chart.js axis */
.chartjs-render-monitor text {
fill: var(--muted-foreground); fill: var(--muted-foreground);
} }
.chartjs-render-monitor line {
.chartjs-render-monitor line {
stroke: var(--border); stroke: var(--border);
}
} }

View File

@@ -133,11 +133,11 @@ export function ProxmoxDashboard() {
const handleScroll = () => { const handleScroll = () => {
const currentScrollY = window.scrollY const currentScrollY = window.scrollY
if (currentScrollY < 10) { // Only hide navigation if scrolled down more than 100px
// Always show navigation when at the very top if (currentScrollY < 100) {
setShowNavigation(true) setShowNavigation(true)
} else if (currentScrollY > lastScrollY && currentScrollY > 80) { } else if (currentScrollY > lastScrollY) {
// Scrolling down - hide navigation (only after 80px) // Scrolling down - hide navigation
setShowNavigation(false) setShowNavigation(false)
} else if (currentScrollY < lastScrollY) { } else if (currentScrollY < lastScrollY) {
// Scrolling up - show navigation // Scrolling up - show navigation
@@ -228,7 +228,7 @@ export function ProxmoxDashboard() {
</div> </div>
)} )}
<header className="border-b border-border bg-card fixed top-0 left-0 right-0 z-50 shadow-sm"> <header className="border-b border-border bg-card sticky top-0 z-50 shadow-sm">
<div className="container mx-auto px-4 md:px-6 py-4 md:py-4"> <div className="container mx-auto px-4 md:px-6 py-4 md:py-4">
{/* Logo and Title */} {/* Logo and Title */}
<div className="flex items-start justify-between gap-3"> <div className="flex items-start justify-between gap-3">
@@ -317,14 +317,11 @@ export function ProxmoxDashboard() {
</header> </header>
<div <div
className={`fixed left-0 right-0 bg-background border-b border-border transition-transform duration-300 ease-in-out z-40 ${ className={`sticky top-[88px] z-40 bg-background transition-transform duration-300 ease-in-out ${
showNavigation ? "translate-y-0" : "-translate-y-full" showNavigation ? "translate-y-0" : "-translate-y-[120%]"
}`} }`}
style={{
top: "88px",
}}
> >
<div className="container mx-auto px-4 md:px-6 pt-4 md:pt-6 pb-4"> <div className="container mx-auto px-4 md:px-6 pt-4 md:pt-6">
<Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-0"> <Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-0">
<TabsList className="hidden md:grid w-full grid-cols-6 bg-card border border-border"> <TabsList className="hidden md:grid w-full grid-cols-6 bg-card border border-border">
<TabsTrigger <TabsTrigger
@@ -473,7 +470,7 @@ export function ProxmoxDashboard() {
</div> </div>
</div> </div>
<div className="container mx-auto px-4 md:px-6 py-4 md:py-6" style={{ paddingTop: "160px" }}> <div className="container mx-auto px-4 md:px-6 py-4 md:py-6">
<Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-4 md:space-y-6"> <Tabs value={activeTab} onValueChange={setActiveTab} className="space-y-4 md:space-y-6">
<TabsContent value="overview" className="space-y-4 md:space-y-6 mt-0"> <TabsContent value="overview" className="space-y-4 md:space-y-6 mt-0">
<SystemOverview key={`overview-${componentKey}`} /> <SystemOverview key={`overview-${componentKey}`} />