feat(admin-ui): catalog refresh + token migration (Stage 3.2)
This commit is contained in:
@@ -54,7 +54,7 @@ const NeighborCard = ({
|
||||
to="/dictionaries/$name"
|
||||
params={{ name: dict.name }}
|
||||
search={{ view: 'hub' }}
|
||||
className={`group block bg-white border border-regolith rounded-lg p-3 transition hover:shadow-hover hover:border-ultramarain/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ultramarain/40 ${
|
||||
className={`group block bg-white border border-line rounded-lg p-3 transition hover:shadow-hover hover:border-accent/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40 ${
|
||||
side === 'left' ? 'text-right' : 'text-left'
|
||||
}`}
|
||||
>
|
||||
@@ -65,11 +65,11 @@ const NeighborCard = ({
|
||||
}`}
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h4 className="font-primary text-[14px] font-semibold text-ultramarain truncate group-hover:underline">
|
||||
<h4 className="font-sans text-[14px] font-semibold text-accent truncate group-hover:underline">
|
||||
{dict.displayName ?? dict.name}
|
||||
</h4>
|
||||
</div>
|
||||
<div className="mt-0.5 font-mono text-[10px] text-carbon/60 truncate">
|
||||
<div className="mt-0.5 font-mono text-[10px] text-mute truncate">
|
||||
{dict.name}
|
||||
</div>
|
||||
</Link>
|
||||
@@ -85,7 +85,7 @@ const SectionLabel = ({
|
||||
const { t } = useTranslation()
|
||||
return (
|
||||
<div
|
||||
className={`text-2xs uppercase tracking-label text-carbon/60 mb-2 ${
|
||||
className={`text-2xs uppercase tracking-[0.10em] text-mute mb-2 ${
|
||||
side === 'left' ? 'text-right' : 'text-left'
|
||||
}`}
|
||||
>
|
||||
@@ -141,7 +141,7 @@ export function DictionaryHubView({ detail }: { detail: DictionaryDetail }) {
|
||||
<div className="md:order-1 order-2 space-y-2">
|
||||
<SectionLabel side="left" count={outgoingDicts.length} />
|
||||
{outgoingDicts.length === 0 ? (
|
||||
<div className="text-2xs text-carbon/40 text-right italic">
|
||||
<div className="text-2xs text-mute/70 text-right italic">
|
||||
{t('hub.noOutgoing', { defaultValue: 'нет исходящих ссылок' })}
|
||||
</div>
|
||||
) : (
|
||||
@@ -156,7 +156,7 @@ export function DictionaryHubView({ detail }: { detail: DictionaryDetail }) {
|
||||
{/* Center: focused dict (large card) */}
|
||||
<div className="md:order-2 order-1 relative">
|
||||
<div
|
||||
className="relative bg-white rounded-xl p-5 border-2 border-ultramarain"
|
||||
className="relative bg-white rounded-xl p-5 border-2 border-accent"
|
||||
style={{ boxShadow: '0 18px 36px -22px rgba(20,30,140,.5)' }}
|
||||
>
|
||||
<div className="flex items-start gap-2 mb-2 flex-wrap">
|
||||
@@ -166,22 +166,22 @@ export function DictionaryHubView({ detail }: { detail: DictionaryDetail }) {
|
||||
{t('dict.list.approval', { defaultValue: 'approval' })}
|
||||
</Badge>
|
||||
)}
|
||||
<span className="ml-auto font-mono text-[11px] text-carbon/60">
|
||||
<span className="ml-auto font-mono text-[11px] text-mute">
|
||||
v{detail.schemaVersion}
|
||||
</span>
|
||||
</div>
|
||||
<h2 className="font-primary text-[22px] font-semibold text-ultramarain leading-tight">
|
||||
<h2 className="font-sans text-[22px] font-semibold text-accent leading-tight">
|
||||
{detail.displayName ?? detail.name}
|
||||
</h2>
|
||||
<div className="font-mono text-[11px] text-carbon/60 mt-0.5">
|
||||
<div className="font-mono text-[11px] text-mute mt-0.5">
|
||||
{detail.name}
|
||||
</div>
|
||||
{detail.description && (
|
||||
<p className="text-[13px] text-carbon mt-3 leading-relaxed">
|
||||
<p className="text-[13px] text-ink mt-3 leading-relaxed">
|
||||
{detail.description}
|
||||
</p>
|
||||
)}
|
||||
<div className="mt-4 pt-3 border-t border-regolith flex items-center justify-between text-2xs uppercase tracking-label text-carbon/60">
|
||||
<div className="mt-4 pt-3 border-t border-line flex items-center justify-between text-2xs uppercase tracking-[0.10em] text-mute">
|
||||
<span>{detail.bundle}</span>
|
||||
<span>{detail.supportedLocales.join(', ')}</span>
|
||||
{typeof detail.recordCount === 'number' && (
|
||||
@@ -197,7 +197,7 @@ export function DictionaryHubView({ detail }: { detail: DictionaryDetail }) {
|
||||
<div className="md:order-3 order-3 space-y-2">
|
||||
<SectionLabel side="right" count={incomingDicts.length} />
|
||||
{incomingDicts.length === 0 ? (
|
||||
<div className="text-2xs text-carbon/40 italic">
|
||||
<div className="text-2xs text-mute/70 italic">
|
||||
{t('hub.noIncoming', { defaultValue: 'никто не ссылается' })}
|
||||
</div>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user