/** Copy + route segment for Prism primary-nav hubs (empty-state shells). */ export interface PrismHubMeta { title: string /** Meta line under the title (count, record ID, freshness). Omit it unless * the hub has a fact to show; never a blurb that restates the title. */ description?: string } export const PRISM_HUB_META: Record = { "program-details": { title: "Program details", }, students: { title: "Students", }, "faculty-staff": { title: "Faculty and staff", }, "student-compliance": { title: "Student compliance", }, "faculty-compliance": { title: "Faculty compliance", }, reports: { title: "Reports", }, courses: { title: "Courses", }, "curriculum-mapping": { title: "Curriculum mapping", }, "competency-management": { title: "Competency", }, sites: { title: "Sites", }, "process-my-requests": { title: "Process my requests", }, placements: { title: "Placements", }, "learning-activities": { title: "Learning activities", }, team: { title: "Team", }, compliance: { title: "Compliance", }, } export function prismHubMetaForSegment(segment: string): PrismHubMeta { return ( PRISM_HUB_META[segment] ?? { title: sentenceCaseSegment(segment), } ) } /** Slug to sentence case: `process-my-requests` becomes `Process my requests`. */ function sentenceCaseSegment(segment: string): string { const words = segment.split("-").filter(Boolean) if (!words.length) return segment const [first, ...rest] = words return [first.charAt(0).toUpperCase() + first.slice(1), ...rest].join(" ") }