feat(portal-shell): clean widget design tokens and fix lint:tokens (P1-6)

516 mechanical replacements across 25 widget files:
- spacing xs/sm/md/lg/xl to numeric 1/2/3/4/6
- text-heading-3 to text-lg font-semibold
- bg-danger to bg-destructive
- border border dedup

Fix .eslintrc.tokens.js to use typescript-eslint parser (was importing
uninstalled @typescript-eslint/parser). lint:tokens now passes.
This commit is contained in:
SpecialX
2026-07-22 15:07:38 +08:00
parent 9358372657
commit a28a6bd6ea
27 changed files with 388 additions and 384 deletions

View File

@@ -1,4 +1,4 @@
"use client";
"use client";
/**
* user-menutopbar / top
@@ -30,7 +30,7 @@ export default function UserMenu(_props: PluginProps): React.ReactElement {
aria-label="用户菜单"
aria-expanded={open}
onClick={() => setOpen((v) => !v)}
className="flex items-center gap-2 rounded-md bg-card px-sm py-xs text-foreground"
className="flex items-center gap-2 rounded-md bg-card px-2 py-1 text-foreground"
>
<span
aria-hidden
@@ -41,12 +41,12 @@ export default function UserMenu(_props: PluginProps): React.ReactElement {
<span className="text-sm">{displayName}</span>
</button>
{open ? (
<ul className="absolute right-0 z-50 mt-sm w-56 rounded-xl border border bg-card p-2 shadow-md">
<li className="border-b border py-xs">
<ul className="absolute right-0 z-50 mt-2 w-56 rounded-xl border bg-card p-2 shadow-md">
<li className="border-b border py-1">
<p className="text-sm text-foreground">{displayName}</p>
<p className="text-xs text-muted-foreground">{displayEmail}</p>
</li>
<li className="py-xs text-sm text-muted-foreground">
<li className="py-1 text-sm text-muted-foreground">
{displayRole}
</li>
</ul>