diff --git a/src/app/admin/ads/page.tsx b/src/app/admin/ads/page.tsx index 1e539d53..288c3063 100644 --- a/src/app/admin/ads/page.tsx +++ b/src/app/admin/ads/page.tsx @@ -61,10 +61,10 @@ export default async function AdminAds() { {/* eslint-disable-next-line @next/next/no-img-element */} - + {ad.image} - + {ad.createdAt ? ad.createdAt.toISOString().slice(0, 10) : "β€”"} diff --git a/src/app/admin/alerts/page.tsx b/src/app/admin/alerts/page.tsx index fa752948..3efc0bd1 100644 --- a/src/app/admin/alerts/page.tsx +++ b/src/app/admin/alerts/page.tsx @@ -96,7 +96,7 @@ export default async function AdminAlerts() {

{t("form.send")}

-

+

{t.rich("form.description", { code: (chunks) => {chunks}, })} @@ -134,7 +134,7 @@ export default async function AdminAlerts() { {alerts.map((a) => ( - + {fromDate(a.createdAt)} diff --git a/src/app/admin/applications/page.tsx b/src/app/admin/applications/page.tsx index 48e5142d..d071ddd3 100644 --- a/src/app/admin/applications/page.tsx +++ b/src/app/admin/applications/page.tsx @@ -89,7 +89,7 @@ export default async function AdminApplications() { {t("rankLabel", { rank: a.rankId })} -

+

{formatDate(a.createdAt)}

{a.content}

diff --git a/src/app/admin/articles/[id]/page.tsx b/src/app/admin/articles/[id]/page.tsx index 2c6cca93..fc665a00 100644 --- a/src/app/admin/articles/[id]/page.tsx +++ b/src/app/admin/articles/[id]/page.tsx @@ -39,7 +39,7 @@ export default async function EditArticle({

- {error ?

Error: {error}

: null} + {error ?

Error: {error}

: null} { "use server"; diff --git a/src/app/admin/articles/new/page.tsx b/src/app/admin/articles/new/page.tsx index 5ed0495a..431ed381 100644 --- a/src/app/admin/articles/new/page.tsx +++ b/src/app/admin/articles/new/page.tsx @@ -21,7 +21,7 @@ export default async function NewArticle({ searchParams }: { searchParams: Promi

- {error ?

Error: {error}

: null} + {error ?

Error: {error}

: null} ); diff --git a/src/app/admin/articles/page.tsx b/src/app/admin/articles/page.tsx index ccd541fd..ee680b0c 100644 --- a/src/app/admin/articles/page.tsx +++ b/src/app/admin/articles/page.tsx @@ -35,7 +35,7 @@ export default async function AdminArticles({ searchParams }: { searchParams: Pr - {error ?

Error: {error}

: null} + {error ?

Error: {error}

: null}
@@ -62,10 +62,10 @@ export default async function AdminArticles({ searchParams }: { searchParams: Pr {a.title} - + {a.slug} - + {a.createdAt ? a.createdAt.toISOString().slice(0, 10) : "β€”"} diff --git a/src/app/admin/badges/page.tsx b/src/app/admin/badges/page.tsx index 6e1f0e38..c30c60fb 100644 --- a/src/app/admin/badges/page.tsx +++ b/src/app/admin/badges/page.tsx @@ -39,12 +39,12 @@ export default async function AdminBadges({
{uploaded && ( -
+
{t("uploadedMessage", { code: uploaded })}
)} {error && ( -
+
{t("errorMessage", { error })}
)} @@ -121,7 +121,7 @@ export default async function AdminBadges({ {b.badgeKey} {b.badgeName} - {b.badgeDescription} + {b.badgeDescription} diff --git a/src/app/admin/bans/page.tsx b/src/app/admin/bans/page.tsx index 9258d710..125f7dd4 100644 --- a/src/app/admin/bans/page.tsx +++ b/src/app/admin/bans/page.tsx @@ -104,11 +104,11 @@ export default async function AdminBans() { {b.banReason || "β€”"} {b.banExpire === 0 ? ( - + {t("permanent")} ) : ( - + {fromUnix(b.banExpire)} )} diff --git a/src/app/admin/calendar/[id]/page.tsx b/src/app/admin/calendar/[id]/page.tsx index eb8cfd61..b98aef70 100644 --- a/src/app/admin/calendar/[id]/page.tsx +++ b/src/app/admin/calendar/[id]/page.tsx @@ -90,7 +90,7 @@ export default async function AdminCalendarCampaign({ params }: { params: Promis return (
-

+

← {t("title")}

@@ -101,7 +101,7 @@ export default async function AdminCalendarCampaign({ params }: { params: Promis ) : null}

{campaign.name || `#${campaign.id}`}

-

+

{t("detail.campaignMeta", { id: campaign.id, days: campaign.totalDays, @@ -135,36 +135,36 @@ export default async function AdminCalendarCampaign({ params }: { params: Promis {r.id} - {r.productName || β€”} + {r.productName || β€”} - + {r.itemId > 0 ? r.itemId : "β€”"} {r.credits > 0 ? ( r.credits ) : ( - β€” + β€” )} {r.pixels > 0 ? ( r.pixels ) : ( - β€” + β€” )} {r.points > 0 ? ( `${r.points} (${t("detail.typeLabel", { type: r.pointsType })})` ) : ( - β€” + β€” )} - + {r.badge || "β€”"} - + {r.subscriptionType ? `${r.subscriptionType} Β· ${r.subscriptionDays}d` : "β€”"} @@ -173,7 +173,7 @@ export default async function AdminCalendarCampaign({ params }: { params: Promis )} -

+

{t("detail.rewardCount", { count: rewards.length })}

diff --git a/src/app/admin/calendar/page.tsx b/src/app/admin/calendar/page.tsx index 6d680a85..33594a65 100644 --- a/src/app/admin/calendar/page.tsx +++ b/src/app/admin/calendar/page.tsx @@ -100,15 +100,15 @@ export default async function AdminCalendar() {

{c.name || `#${c.id}`}

{enabled ? t("statusEnabled") : t("statusDisabled")}
-

+

{t("campaignMeta", { id: c.id, days: c.totalDays, rewards: count })}

-

+

{t("startsAt", { date: fmtDate(c.startTimestamp) })} {c.lockExpired === "1" ? ` Β· ${t("locksExpired")}` : ""}

diff --git a/src/app/admin/catalog/[id]/catalog-detail-tabs.tsx b/src/app/admin/catalog/[id]/catalog-detail-tabs.tsx index 438e95a0..861e16e2 100644 --- a/src/app/admin/catalog/[id]/catalog-detail-tabs.tsx +++ b/src/app/admin/catalog/[id]/catalog-detail-tabs.tsx @@ -82,7 +82,7 @@ export function CatalogDetailTabs({ const furniSet = new Set(furniDataIdList) const missing = baseItems.filter((b) => !furniSet.has(b.id)).length return missing > 0 ? ( - + {missing} ) : null diff --git a/src/app/admin/catalog/[id]/catalog-items-table/catalog-items-table.tsx b/src/app/admin/catalog/[id]/catalog-items-table/catalog-items-table.tsx index 1701b767..bcba1acb 100644 --- a/src/app/admin/catalog/[id]/catalog-items-table/catalog-items-table.tsx +++ b/src/app/admin/catalog/[id]/catalog-items-table/catalog-items-table.tsx @@ -943,7 +943,7 @@ export function CatalogItemsTable({ {/* Unsaved changes banner */} {hasUnsavedChanges && ( -
+
You have unsaved changes ( {modifiedItems.length > 0 ? `${modifiedItems.length} item(s) modified` : ''} @@ -1051,7 +1051,7 @@ export function CatalogItemsTable({ {({ dragHandleProps }) => ( <> @@ -1111,7 +1111,7 @@ export function CatalogItemsTable({ className="h-8 text-xs w-16" title="Credits" /> - c + c {item.costCredits > 0 && ( - {item.costCredits}c + {item.costCredits}c )} {item.costPoints > 0 && ( @@ -1191,7 +1191,7 @@ export function CatalogItemsTable({
{missingItems.length > 0 && ( -
+
{missingItems.length} item(s) missing from FurnitureData.json β€” will be @@ -399,9 +399,9 @@ export function CatalogTranslateTab({ key={item.id} className={ isChanged - ? 'bg-yellow-50 dark:bg-yellow-950/20' + ? 'bg-[var(--color-warning-subtle)] dark:bg-[var(--color-warning-subtle)]' : isMissing - ? 'bg-orange-50/50 dark:bg-orange-950/10' + ? 'bg-[var(--color-warning-subtle)] dark:bg-[var(--color-warning-subtle)]' : undefined } > @@ -442,7 +442,7 @@ export function CatalogTranslateTab({ value={editedNames[item.id] || ''} onChange={(e) => handleNameChange(item.id, e.target.value)} disabled={!canEdit} - className={`h-8 text-sm ${nameChanged ? 'border-yellow-400 dark:border-yellow-600' : ''}`} + className={`h-8 text-sm ${nameChanged ? 'border-[var(--color-warning-border)] dark:border-[var(--color-warning-border)]' : ''}`} /> {currentCatalogName && currentCatalogName !== item.publicName && (

@@ -456,7 +456,7 @@ export function CatalogTranslateTab({ onChange={(e) => handleDescChange(item.id, e.target.value)} disabled={!canEdit} placeholder="No description" - className={`h-8 text-sm ${descChanged ? 'border-yellow-400 dark:border-yellow-600' : ''}`} + className={`h-8 text-sm ${descChanged ? 'border-[var(--color-warning-border)] dark:border-[var(--color-warning-border)]' : ''}`} /> @@ -464,7 +464,7 @@ export function CatalogTranslateTab({ {isChanged ? ( Modified @@ -474,7 +474,7 @@ export function CatalogTranslateTab({ {isMissing ? ( - +

Missing from FurnitureData.json

@@ -486,7 +486,7 @@ export function CatalogTranslateTab({ ) : ( - + In FurnitureData.json diff --git a/src/app/admin/catalog/builder-club/bc-manager.tsx b/src/app/admin/catalog/builder-club/bc-manager.tsx index 928177f1..01ba741c 100644 --- a/src/app/admin/catalog/builder-club/bc-manager.tsx +++ b/src/app/admin/catalog/builder-club/bc-manager.tsx @@ -124,7 +124,7 @@ export function BcPageDetail({ page, items, canEdit }: BcPageDetailProps) { /
- +

{page.caption}

#{page.id} @@ -306,7 +306,7 @@ export function BcPageDetail({ page, items, canEdit }: BcPageDetailProps) { type="button" variant="ghost" size="sm" - className="h-6 w-6 p-0 text-red-500 hover:text-red-600" + className="h-6 w-6 p-0 text-[var(--color-error-text-readable)] hover:text-[var(--color-error-text-readable)]" onClick={() => { if (!confirm(`Delete item "${item.catalogName}"?`)) return run(() => deleteBcItem({ id: item.id }), { diff --git a/src/app/admin/commandocentrum/page.tsx b/src/app/admin/commandocentrum/page.tsx index 8588ad2a..c65e4dc4 100644 --- a/src/app/admin/commandocentrum/page.tsx +++ b/src/app/admin/commandocentrum/page.tsx @@ -565,7 +565,7 @@ export default async function CommandoCentrum() { {activity.map((a) => ( - + {fromDate(a.createdAt)} {nameById.get(Number(a.userId)) ?? `#${a.userId}`} @@ -574,7 +574,7 @@ export default async function CommandoCentrum() { {a.action} - {a.description} + {a.description} ))} @@ -608,15 +608,15 @@ export default async function CommandoCentrum() { : t("empty"); return ( - + {formatTimestamp(e.timestamp)} {e.type} - + {e.version} -
+          
                           {snippet}
                         
diff --git a/src/app/admin/email-templates/page.tsx b/src/app/admin/email-templates/page.tsx index 3c7cc02b..b147be9f 100644 --- a/src/app/admin/email-templates/page.tsx +++ b/src/app/admin/email-templates/page.tsx @@ -50,7 +50,7 @@ export default async function AdminEmailTemplates() {