diff --git a/admin-compliance/app/sdk/multi-tenant/_components/ComplianceRing.tsx b/admin-compliance/app/sdk/multi-tenant/_components/ComplianceRing.tsx new file mode 100644 index 0000000..db6b22f --- /dev/null +++ b/admin-compliance/app/sdk/multi-tenant/_components/ComplianceRing.tsx @@ -0,0 +1,42 @@ +'use client' + +import { getScoreColor } from './helpers' + +export function ComplianceRing({ score, size = 64 }: { score: number; size?: number }) { + const strokeWidth = 5 + const radius = (size - strokeWidth) / 2 + const circumference = 2 * Math.PI * radius + const progress = Math.max(0, Math.min(100, score)) + const offset = circumference - (progress / 100) * circumference + const color = getScoreColor(score) + + return ( +
{description}
+ {action &&{tenant.slug}
+{tenant.max_users.toLocaleString('de-DE')}
+{tenant.llm_quota_monthly.toLocaleString('de-DE')}
+{tenant.compliance_score} / 100
+{formatDateTime(tenant.updated_at)}
+{tenant.slug}
+{tenant.open_incidents}
+{tenant.open_reports}
+{tenant.pending_dsrs}
+{tenant.training_completion_rate}%
+{tenant.vendor_risk_high}
++ {tenant.compliance_score}/100 +
+{tenant.max_users.toLocaleString('de-DE')}
+{tenant.llm_quota_monthly.toLocaleString('de-DE')}
+{ns.name}
+{ns.slug}
+{description}
- {action &&{tenant.slug}
-{tenant.max_users.toLocaleString('de-DE')}
-{tenant.llm_quota_monthly.toLocaleString('de-DE')}
-{tenant.compliance_score} / 100
-{formatDateTime(tenant.updated_at)}
-{tenant.slug}
-{tenant.open_incidents}
-{tenant.open_reports}
-{tenant.pending_dsrs}
-{tenant.training_completion_rate}%
-{tenant.vendor_risk_high}
-- {tenant.compliance_score}/100 -
-{tenant.max_users.toLocaleString('de-DE')}
-{tenant.llm_quota_monthly.toLocaleString('de-DE')}
-{ns.name}
-{ns.slug}
-