inbox-accent-coloursrun.md02_define/output/spec.mdnotification-inbox-list.tsx keyed its accent map on the UPPER_SNAKE notification constants that
the remove-dead-misc-schema run deleted, so every inbox row renders the default accent and the
visual grouping by family — bids vs invoices vs SLA breaches — is gone. The regression was known
at that run's ship gate and left for intake but never filed; every persona's inbox and sidebar
notification centre is affected.
Replace the dead per-type accent map with a pure helper, resolveNotificationAccent, that keys on
the dot.case type's family prefix (the segment before the first .): bid.*, quote.*,
invoice.*, project.*, service-lead.*, user.*, messaging.*, sla.* — the eight live
families in packages/services/src/notifications/. Each family maps to a distinct theme-aware
design token (semantic aliases plus categorical chart tokens from @sustentus/ui globals), so the
accents hold in light and dark mode, and any unmapped type falls back to the neutral
border-l-border default. NotificationInboxList calls the helper; the sidebar notification
centre and the full notifications page render through that same component, so they inherit the
accents with no edits.
03_build/output/notes.mdresolveNotificationAccent(type) takes the segment before the first . as the family and maps
the eight live families (bid, quote, invoice, project, service-lead, user,
messaging, sla) to distinct theme-aware tokens; exports DEFAULT_NOTIFICATION_ACCENT
(border-l-border) as the fallback for unmapped families.typeAccent map and the raw border-l-blue-500 default; rows now call
resolveNotificationAccent(n.type).primary,
chart-8, success, chart-9, warning, muted-foreground, info, destructive), all
redefined for .dark in @sustentus/ui globals; the centre and the full page both render
NotificationInboxList, so they share the map with no edits.., resolves to border-l-border; unit-tested.invoice.some-future-event resolves identically to invoice.paid;
unit-tested.bid → primary
(violet) and quote → chart-8 (lighter violet) are deliberate siblings; sla → destructive,
invoice → success, service-lead → warning, messaging → info, user →
muted-foreground, project → chart-9. All are theme-aware tokens (no raw Tailwind palette
classes); the two chart tokens are the design system's categorical accents, reviewed as such..ts file — covered by apps/web's
@source "components/**/*.{js,ts,jsx,tsx,mdx}", so Tailwind generates them.--no-verify; files were written prettier-clean, but the Formatting CI check is
the one to watch.notification-center.tsx and notifications-full-page.tsx were verified as pure consumers of
NotificationInboxList — no local accent logic, no edits needed.