polish(admin): 抽出后台控件包并统一各页布局与交互

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-16 19:03:21 +08:00
parent cfc6c1403b
commit f73d2a89e8
23 changed files with 1720 additions and 1412 deletions

View File

@@ -0,0 +1,30 @@
import type { ReactNode } from "react";
/** 图标 + 主文案 + 辅文案 */
export default function AdminEmpty({
icon,
title,
description,
className = "",
}: {
icon: ReactNode;
title: string;
description?: string;
className?: string;
}) {
return (
<div className={`text-center py-16 px-6 ${className}`.trim()}>
<span
className="inline-flex w-12 h-12 rounded-full items-center justify-center mb-3"
style={{ background: "var(--panel-2)", color: "var(--ink-3)" }}
aria-hidden
>
{icon}
</span>
<p className="text-[14.5px]" style={{ color: "var(--ink)" }}>
{title}
</p>
{description ? <p className="meta mt-1.5 text-[12.5px]">{description}</p> : null}
</div>
);
}