feat(admin-ui): catalog refresh + token migration (Stage 3.2)
This commit is contained in:
@@ -299,7 +299,7 @@ function ActiveFilterChips({ filters, onRemove }: ActiveFilterChipsProps) {
|
||||
const { t } = useTranslation()
|
||||
return (
|
||||
<div className="flex flex-wrap items-center gap-2">
|
||||
<span className="text-2xs uppercase tracking-label text-carbon/70">
|
||||
<span className="text-2xs uppercase tracking-[0.10em] text-ink-2">
|
||||
{t('audit.filter.active')}
|
||||
</span>
|
||||
{filters.map((f) => (
|
||||
@@ -309,14 +309,14 @@ function ActiveFilterChips({ filters, onRemove }: ActiveFilterChipsProps) {
|
||||
onClick={() => onRemove(f.key)}
|
||||
className={[
|
||||
'inline-flex items-center gap-1.5 px-2 py-1 rounded-sm border text-2xs',
|
||||
'bg-white border-regolith hover:border-carbon/40 hover:bg-regolith/30',
|
||||
'bg-white border-line hover:border-carbon/40 hover:bg-line/30',
|
||||
'transition-colors group',
|
||||
].join(' ')}
|
||||
title={t('audit.filter.removeChip')}
|
||||
>
|
||||
<span className="text-carbon/70">{f.label}:</span>
|
||||
<span className="text-ink-2">{f.label}:</span>
|
||||
<span className="font-medium text-black">{f.value}</span>
|
||||
<XIcon size={12} className="text-carbon/50 group-hover:text-mars" />
|
||||
<XIcon size={12} className="text-mute group-hover:text-mars" />
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
@@ -356,7 +356,7 @@ function FilterPanel({
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="bg-white border border-regolith rounded-lg p-4 space-y-3">
|
||||
<div className="bg-white border border-line rounded-lg p-4 space-y-3">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3">
|
||||
<SingleSelect
|
||||
label={t('audit.filter.dictionary')}
|
||||
@@ -411,7 +411,7 @@ function FilterPanel({
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex justify-end gap-2 pt-2 border-t border-regolith">
|
||||
<div className="flex justify-end gap-2 pt-2 border-t border-line">
|
||||
<Button type="button" variant="secondary" onClick={onReset}>
|
||||
{t('audit.filter.reset')}
|
||||
</Button>
|
||||
@@ -486,7 +486,7 @@ function AuditRow({ row }: { row: AuditEntry }) {
|
||||
</TableCell>
|
||||
<TableCell>
|
||||
<span
|
||||
className="font-mono text-2xs text-carbon/70"
|
||||
className="font-mono text-2xs text-ink-2"
|
||||
title={row.traceId ?? ''}
|
||||
>
|
||||
{row.traceId ? row.traceId.slice(0, 8) : '—'}
|
||||
@@ -504,29 +504,29 @@ function AuditRow({ row }: { row: AuditEntry }) {
|
||||
{open && (
|
||||
<TableRow>
|
||||
<TableCell colSpan={8}>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3 bg-regolith/30 rounded p-3">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3 bg-line/30 rounded p-3">
|
||||
<div>
|
||||
<div className="text-2xs uppercase tracking-label text-carbon/70 mb-1">
|
||||
<div className="text-2xs uppercase tracking-[0.10em] text-ink-2 mb-1">
|
||||
{t('audit.diff.before')}
|
||||
</div>
|
||||
<pre className="text-2xs font-mono whitespace-pre-wrap break-all bg-white border border-regolith rounded p-2 max-h-60 overflow-auto">
|
||||
<pre className="text-2xs font-mono whitespace-pre-wrap break-all bg-white border border-line rounded p-2 max-h-60 overflow-auto">
|
||||
{row.payloadBefore
|
||||
? JSON.stringify(row.payloadBefore, null, 2)
|
||||
: '—'}
|
||||
</pre>
|
||||
</div>
|
||||
<div>
|
||||
<div className="text-2xs uppercase tracking-label text-carbon/70 mb-1">
|
||||
<div className="text-2xs uppercase tracking-[0.10em] text-ink-2 mb-1">
|
||||
{t('audit.diff.after')}
|
||||
</div>
|
||||
<pre className="text-2xs font-mono whitespace-pre-wrap break-all bg-white border border-regolith rounded p-2 max-h-60 overflow-auto">
|
||||
<pre className="text-2xs font-mono whitespace-pre-wrap break-all bg-white border border-line rounded p-2 max-h-60 overflow-auto">
|
||||
{row.payloadAfter
|
||||
? JSON.stringify(row.payloadAfter, null, 2)
|
||||
: '—'}
|
||||
</pre>
|
||||
</div>
|
||||
{(row.ipAddress || row.userAgent || row.requestId) && (
|
||||
<div className="md:col-span-2 text-2xs text-carbon/70 flex flex-wrap gap-x-4 gap-y-1 pt-1">
|
||||
<div className="md:col-span-2 text-2xs text-ink-2 flex flex-wrap gap-x-4 gap-y-1 pt-1">
|
||||
{row.ipAddress && <span>IP: {row.ipAddress}</span>}
|
||||
{row.requestId && <span>req: {row.requestId}</span>}
|
||||
{row.userAgent && (
|
||||
@@ -563,7 +563,7 @@ function Pagination({
|
||||
return (
|
||||
<div className="flex items-center justify-between flex-wrap gap-3">
|
||||
<div className="flex items-center gap-2 text-sm">
|
||||
<span className="text-carbon/70">{t('audit.page.size')}</span>
|
||||
<span className="text-ink-2">{t('audit.page.size')}</span>
|
||||
<SingleSelect
|
||||
options={PAGE_SIZE_OPTIONS}
|
||||
value={String(size)}
|
||||
|
||||
Reference in New Issue
Block a user