Merge tag '1.14.5_cleaned'

project was cleaned
This commit is contained in:
2026-04-23 11:47:44 +03:00
5758 changed files with 2046069 additions and 16179 deletions

View File

@@ -27,20 +27,20 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
return (
<div className="flex flex-col items-center justify-center py-3 lg:py-4 xl:py-52 text-secondary gap-4 animate-pulse">
<div className="w-10 h-10 border-4 border-primary/20 border-t-primary rounded-full animate-spin" />
<p className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-black tracking-widest italic">Securing Audit Stream...</p>
<p className="text-xs font-normal tracking-widest italic">Securing Audit Stream...</p>
</div>
);
}
if (logs.length === 0) {
return (
<div className="bg-surface/20 border border-slate-800/50 border-dashed rounded-[2.5rem] py-2 lg:py-3 xl:py-40 flex flex-col items-center justify-center text-center gap-6">
<div className="bg-surface/20 border border-slate-800/50 border-dashed rounded-[2.5rem] py-20 flex flex-col items-center justify-center text-center gap-3 md:gap-4">
<div className="w-16 h-16 bg-surface rounded-2xl flex items-center justify-center text-slate-700 border border-slate-800">
<ArrowDownCircle size={32} />
</div>
<div>
<p className="text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-black text-secondary tracking-tight">No events found</p>
<p className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl text-secondary font-bold mt-1">Refine your strategic filters</p>
<p className="text-xl font-normal text-secondary tracking-tight">No events found</p>
<p className="text-xs text-secondary font-normal mt-1">Refine your strategic filters</p>
</div>
</div>
);
@@ -58,7 +58,7 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
<div className="flex-1 min-w-0 z-10 flex items-center gap-4">
{/* Compact Action Badge */}
<div className={cn(
"text-[10px] font-black px-3 lg:px-4 xl:px-5 py-1.5 rounded-lg border min-w-[85px] text-center tracking-tight",
"text-[10px] font-normal px-3 py-1.5 rounded-lg border min-w-[85px] text-center tracking-tight",
log.action.includes('CHECK_IN') ? "bg-green-500/10 text-green-500 border-green-500/20" :
(log.action.includes('TRASH') ? "bg-rose-500/10 text-rose-500 border-rose-500/20" :
(log.action.includes('DB') ? "bg-sky-500/10 text-sky-400 border-sky-500/20" :
@@ -84,7 +84,7 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
<div className="shrink-0 flex items-center gap-3 z-10">
<div className={cn(
"text-lg lg:text-xl xl:text-2xl lg:text-3xl xl:text-4xl font-black tabular-nums min-w-[35px] text-right",
"text-lg font-normal tabular-nums min-w-[35px] text-right",
(log.quantity_change || 0) > 0 ? "text-green-500" : ((log.quantity_change || 0) < 0 ? "text-rose-500" : "text-primary/50")
)}>
{log.quantity_change ? (log.quantity_change > 0 ? `+${log.quantity_change}` : log.quantity_change) : (log.action.includes('DB') ? 'SYS' : '±')}
@@ -96,18 +96,18 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
{/* Selected Log Modal */}
{selectedLog && (
<div className="fixed inset-0 z-[100] flex items-end sm:items-center justify-center p-0 sm:p-4 lg:p-5 xl:p-6 lg:p-8 xl:p-10 bg-background/90 animate-in fade-in duration-300">
<div className="bg-surface border-t sm:border border-slate-800 rounded-t-[2.5rem] sm:rounded-[3rem] p-6 sm:p-10 max-w-lg w-full shadow-2xl space-y-8 animate-in slide-in-from-bottom-10 duration-300 overflow-hidden">
<div className="fixed inset-0 z-[100] flex items-end sm:items-center justify-center p-0 sm:p-4 bg-background/90 animate-in fade-in duration-300">
<div className="bg-surface border-t sm:border border-slate-800 rounded-t-[2.5rem] sm:rounded-[3rem] p-4 md:p-6 max-w-lg w-full shadow-2xl space-y-3 md:space-y-4 animate-in slide-in-from-bottom-10 duration-300 overflow-hidden">
<div className="flex justify-between items-start">
<div className="space-y-1 pr-4">
<div className={cn(
"text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-bold px-4 lg:px-5 xl:px-6 py-1.5 rounded-full border inline-block tracking-widest",
"text-xs font-normal px-4 py-1.5 rounded-full border inline-block tracking-widest",
selectedLog.action.includes('CHECK_IN') ? "bg-green-500/10 text-green-500 border-green-500/30" :
(selectedLog.action.includes('TRASH') ? "bg-rose-500/10 text-rose-500 border-rose-500/30" : "bg-primary/10 text-primary border-primary/30")
)}>
{selectedLog.action}
</div>
<h2 className="text-2xl lg:text-3xl xl:text-4xl font-black text-white tracking-tight pt-2 leading-tight">
<h2 className="text-2xl font-normal text-white tracking-tight pt-2 leading-tight">
{selectedLog.resolved_name}
</h2>
</div>
@@ -117,14 +117,14 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
</div>
<div className="grid grid-cols-2 gap-4">
<div className="space-y-1 bg-background/50 p-4 lg:p-5 xl:p-6 lg:p-8 xl:p-10 rounded-2xl border border-slate-800/50">
<p className="text-[11px] font-bold text-muted tracking-widest">Protocol Operator</p>
<p className="text-sm lg:text-base xl:text-lg lg:text-xl xl:text-2xl lg:text-3xl xl:text-4xl font-black text-secondary">{selectedLog.username || 'Automated Process'}</p>
<div className="space-y-1 bg-background/50 p-4 rounded-2xl border border-slate-800/50">
<p className="text-[11px] font-normal text-muted tracking-widest">Protocol Operator</p>
<p className="text-sm font-normal text-secondary">{selectedLog.username || 'Automated Process'}</p>
</div>
<div className="space-y-1 bg-background/50 p-4 lg:p-5 xl:p-6 lg:p-8 xl:p-10 rounded-2xl border border-slate-800/50">
<p className="text-[11px] font-bold text-muted tracking-widest">Quantity Delta</p>
<div className="space-y-1 bg-background/50 p-4 rounded-2xl border border-slate-800/50">
<p className="text-[11px] font-normal text-muted tracking-widest">Quantity Delta</p>
<p className={cn(
"text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-black tabular-nums",
"text-xl font-normal tabular-nums",
(selectedLog.quantity_change || 0) > 0 ? "text-green-500" : "text-rose-500"
)}>
{selectedLog.quantity_change
@@ -136,8 +136,8 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
<div className="space-y-5">
<div className="space-y-1">
<p className="text-[11px] font-bold text-muted tracking-widest ml-1">Universal Timestamp</p>
<p className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-bold text-secondary bg-background/30 p-4 lg:p-5 xl:p-6 lg:p-8 xl:p-10 rounded-2xl border border-slate-800/30 tabular-nums">
<p className="text-[11px] font-normal text-muted tracking-widest ml-1">Universal Timestamp</p>
<p className="text-xs font-normal text-secondary bg-background/30 p-4 rounded-2xl border border-slate-800/30 tabular-nums">
{new Date(selectedLog.timestamp).toLocaleString(undefined, { dateStyle: 'full', timeStyle: 'medium' })}
</p>
</div>
@@ -149,15 +149,15 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
<div className="space-y-4 pt-2">
<div className="flex items-center gap-3">
<div className="h-px flex-1 bg-slate-800/50" />
<p className="text-[8px] font-black text-slate-700 tracking-[0.2em]">Snapshot Record</p>
<p className="text-[8px] font-normal text-slate-700 tracking-[0.2em]">Snapshot Record</p>
<div className="h-px flex-1 bg-slate-800/50" />
</div>
<div className="grid grid-cols-2 gap-2.5">
{Object.entries(snap).map(([key, val]) => (
(val && key !== 'image_url' && key !== 'id') ? (
<div key={key} className="bg-background/20 p-3 lg:p-4 xl:p-5 lg:p-6 xl:p-8 rounded-xl border border-slate-800/20">
<p className="text-[10px] font-bold text-muted mb-1 tracking-tight opacity-70">{key.replace('_', ' ')}</p>
<p className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-bold text-secondary truncate" title={String(val)}>{String(val)}</p>
<div key={key} className="bg-background/20 p-3 rounded-xl border border-slate-800/20">
<p className="text-[10px] font-normal text-muted mb-1 tracking-tight opacity-70">{key.replace('_', ' ')}</p>
<p className="text-xs font-normal text-secondary truncate" title={String(val)}>{String(val)}</p>
</div>
) : null
))}
@@ -169,8 +169,8 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
{selectedLog.details && (
<div className="space-y-1.5">
<p className="text-[11px] font-bold text-muted tracking-widest ml-1">Intervention Details</p>
<div className="bg-primary/5 text-primary/80 p-5 lg:p-6 xl:p-8 rounded-3xl border border-primary/10 text-sm lg:text-base xl:text-lg lg:text-xl xl:text-2xl lg:text-3xl xl:text-4xl font-medium leading-relaxed italic shadow-inner">
<p className="text-[11px] font-normal text-muted tracking-widest ml-1">Intervention Details</p>
<div className="bg-primary/5 text-primary/80 p-5 rounded-3xl border border-primary/10 text-sm font-medium leading-relaxed italic shadow-inner">
"{selectedLog.details}"
</div>
</div>
@@ -179,7 +179,7 @@ export default function LogsTable({ logs, loading }: LogsTableProps) {
<button
onClick={() => setSelectedLog(null)}
className="w-full bg-slate-800 hover:bg-slate-700 text-white font-black py-4.5 rounded-2xl transition-all active:scale-95 border border-slate-700 shadow-xl"
className="w-full bg-slate-800 hover:bg-slate-700 text-white font-normal py-4.5 rounded-2xl transition-all active:scale-95 border border-slate-700 shadow-xl"
>
Close Audit Insight
</button>