Build [v1.4.0] - Audit Dashboard & LDAP Restoration

This commit is contained in:
Daniel Bedeleanu
2026-04-12 09:39:17 +03:00
parent 5cceba21f4
commit f3d861b1a2
23 changed files with 973 additions and 382 deletions

View File

@@ -196,35 +196,33 @@ export default function InventoryPage() {
return (
<PageShell>
<div className="p-3 md:p-8 max-w-4xl mx-auto space-y-6">
<div className="p-3 md:p-8 max-w-7xl mx-auto space-y-6">
<datalist id="existing-types">
{existingTypes.map(t => <option key={t} value={t} />)}
</datalist>
<header className="max-w-4xl mx-auto w-full mb-8">
<h1 className="text-2xl font-black flex items-center gap-3">
<Package className="text-primary" size={28} />
Inventory Catalog
</h1>
<p className="text-sm text-slate-500 mt-1">Detailed view of all stock items by category</p>
<header className="flex items-center gap-5 mb-10">
<div className="p-4 bg-primary/10 rounded-[2rem] text-primary border border-primary/20 shadow-xl shadow-primary/5">
<Package size={32} />
</div>
<div>
<h1 className="text-3xl font-black tracking-tight text-white">Inventory Catalog</h1>
<p className="text-xs text-slate-500 font-bold mt-1">Enterprise Stock Overview</p>
</div>
</header>
<div className="max-w-4xl mx-auto w-full space-y-8">
<div className="w-full space-y-8">
{/* Stats Dashboard */}
<section className="grid grid-cols-2 md:grid-cols-4 gap-3">
<div className="bg-slate-900/50 border border-slate-800 p-4 rounded-3xl">
<div className="w-8 h-8 rounded-xl bg-primary/10 text-primary flex items-center justify-center mb-3">
<Layers size={18} />
</div>
<p className="text-xs font-black text-slate-500">Categories</p>
<p className="text-2xl font-black mt-1">{stats?.total_categories || categories.length}</p>
<div className="bg-slate-900/80 border border-slate-700/40 p-2 px-4 rounded-xl flex items-center gap-4 shadow-lg backdrop-blur-sm">
<Layers size={18} className="text-primary shrink-0 opacity-80" />
<p className="text-sm font-bold text-slate-300 whitespace-nowrap">Categories</p>
<p className="text-xl font-black text-white tabular-nums ml-auto">{stats?.total_categories || categories.length}</p>
</div>
<div className="bg-slate-900/50 border border-slate-800 p-4 rounded-3xl">
<div className="w-8 h-8 rounded-xl bg-green-500/10 text-green-500 flex items-center justify-center mb-3">
<Package size={18} />
</div>
<p className="text-xs font-black text-slate-500">Item Types</p>
<p className="text-2xl font-black mt-1">{stats?.total_items || inventory.length}</p>
<div className="bg-slate-900/80 border border-slate-700/40 p-2 px-4 rounded-xl flex items-center gap-4 shadow-lg backdrop-blur-sm">
<Package size={18} className="text-green-500 shrink-0 opacity-80" />
<p className="text-sm font-bold text-slate-300 whitespace-nowrap">Item Types</p>
<p className="text-xl font-black text-white tabular-nums ml-auto">{stats?.total_items || inventory.length}</p>
</div>
</section>
@@ -256,7 +254,7 @@ export default function InventoryPage() {
</div>
<div className="text-left">
<h3 className="font-bold text-lg">{cat}</h3>
<p className="text-xs font-black text-slate-500">
<p className="text-[9px] font-black text-slate-400">
{inventory.filter(i => i.category === cat).length} Item types in stock
</p>
</div>