Merge branch 'worktree-neo-surveillance-redesign'

This commit is contained in:
Developer
2026-07-28 14:32:00 +07:00
25 changed files with 891 additions and 291 deletions
@@ -1,20 +1,23 @@
"use client";
import type { LucideIcon } from "lucide-react";
import { Inbox } from "lucide-react";
import { GlassPanel } from "@/components/glass/panel";
interface EmptyStateProps {
icon?: LucideIcon;
title?: string;
description?: string;
}
export function EmptyState({
icon: Icon = Inbox,
title = "No data yet",
description = "Nothing to display here yet.",
}: EmptyStateProps) {
return (
<GlassPanel dense className="flex flex-col items-center gap-2 py-12">
<Inbox className="size-8 text-text-secondary/20" />
<Icon className="size-8 text-text-secondary/20" />
<p className="text-sm text-text-secondary/60">{title}</p>
<p className="text-xs text-text-secondary/40">{description}</p>
</GlassPanel>
@@ -33,7 +33,7 @@ export function LoadingSkeleton({
if (columns) {
return (
<div className={`grid grid-cols-1 md:grid-cols-${Math.min(columns, 6)} gap-3`}>
<div className={`grid grid-cols-1 md:grid-cols-${columns} gap-3`}>
{items}
</div>
);