diff --git a/portal/src/components/corporate/InstitutionalComplianceHub.tsx b/portal/src/components/corporate/InstitutionalComplianceHub.tsx index 3bfd9ae..8ffb854 100644 --- a/portal/src/components/corporate/InstitutionalComplianceHub.tsx +++ b/portal/src/components/corporate/InstitutionalComplianceHub.tsx @@ -1,9 +1,10 @@ -import { ArrowRight, Building2, Globe2, Scale, ShieldAlert } from 'lucide-react'; +import { ArrowRight, Building2, FileText, Globe2, Scale, ShieldAlert } from 'lucide-react'; import Link from 'next/link'; import { institutionalUx, jurisdictionStatusClass, + type InstitutionalPortal, type JurisdictionCard, type LegalTrack, type OnboardingStep, @@ -13,6 +14,9 @@ export function InstitutionalComplianceHub() { const { disclaimer, legalTracks, onboardingJourney, jurisdictionCards, portals, prohibitedClaimsPreview } = institutionalUx; + const counselPortals = portals.filter((p) => p.audience === 'counsel'); + const institutionalPortals = portals.filter((p) => p.audience !== 'counsel'); + return (
) : null} + {/* Counsel return — external counsel */} + {counselPortals.length > 0 ? ( +
+
+
+
+ + External counsel returns +
+

+ Track A checklist and Track B WP-1–4 deliverables — signed matrices, memoranda PDFs, and gap + register. Preferred channel: Gitea issue with the counsel-return template. +

+
+
+ {counselPortals.map((p) => ( + + ))} +
+
+
+ ) : null} + {/* Portal links */}
- {portals.map((p) => ( - - {p.id.includes('onboard') ? ( - - ) : ( - - )} - {p.label} - - + {institutionalPortals.map((p) => ( + ))}
@@ -102,6 +117,37 @@ export function InstitutionalComplianceHub() { ); } +function CounselPortalButton({ portal, primary }: { portal: InstitutionalPortal; primary?: boolean }) { + const className = primary + ? 'inline-flex items-center gap-1.5 rounded-lg border border-indigo-400/50 bg-indigo-500/20 px-4 py-2.5 text-sm font-semibold text-indigo-100 no-underline transition hover:border-indigo-300/60 hover:bg-indigo-500/30' + : 'inline-flex items-center gap-1.5 rounded-lg border border-gray-700 bg-gray-900/50 px-4 py-2.5 text-sm font-medium text-indigo-200 no-underline transition hover:border-indigo-500/40 hover:text-indigo-100'; + + return ( + + + {portal.label} + + + ); +} + +function PortalLink({ portal }: { portal: InstitutionalPortal }) { + return ( + + {portal.id.includes('onboard') ? ( + + ) : ( + + )} + {portal.label} + + + ); +} + function LegalTrackCard({ track }: { track: LegalTrack }) { return (