+
+
Expirări
+
+ {isLoading ? 'Se încarcă…' : `${totalExpiring} expirări în 90 zile${critical > 0 ? ` · ${critical} critice` : ''}`}
+
+
+
+ {!isLoading && totalExpiring === 0 && (
+
+
✅
+
Nicio expirare în următoarele 90 zile.
+
+ )}
+
+ {!isLoading && totalExpiring > 0 && (
+ <>
+ {/* Summary chips */}
+
+ {[
+ { label: 'Azi–7 zile', count: expiringDocs.filter((d) => daysUntil(d.expiresAt!) <= 7).length + expiringContracts.filter((c) => daysUntil(c.endDate!) <= 7).length, cls: 'text-signal-danger bg-signal-danger/5 border-signal-danger/20' },
+ { label: '8–30 zile', count: expiringDocs.filter((d) => { const n = daysUntil(d.expiresAt!); return n > 7 && n <= 30; }).length + expiringContracts.filter((c) => { const n = daysUntil(c.endDate!); return n > 7 && n <= 30; }).length, cls: 'text-signal-warn bg-signal-warn/5 border-signal-warn/20' },
+ { label: '31–90 zile', count: expiringDocs.filter((d) => daysUntil(d.expiresAt!) > 30).length + expiringContracts.filter((c) => daysUntil(c.endDate!) > 30).length, cls: 'text-ink-faint bg-muted/30 border-border/50' },
+ ].map(({ label, count, cls }) => count > 0 ? (
+
+ ) : null)}
+
+
+ {/* Expiring contracts */}
+ {expiringContracts.length > 0 && (
+
+
+
Contracte
+ Administrează →
+
+
+ {expiringContracts.map((c) => {
+ const days = daysUntil(c.endDate!);
+ return (
+
+
+
{c.title}
+
{c.contractType}
+
+
+
+ );
+ })}
+
+
+ )}
+
+ {/* Expiring documents */}
+ {expiringDocs.length > 0 && (
+
+
+
Documente
+ Bibliotecă →
+
+
+ {expiringDocs.map((d) => {
+ const days = daysUntil(d.expiresAt!);
+ return (
+
+
+
{d.filename}
+
{d.classification}
+
+
+
+
{d.expiresAt?.slice(0, 10)}
+
+
+ );
+ })}
+
+
+ )}
+ >
+ )}
+
+ );
+}