Add vendor certifications tab

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Jonathan
2025-06-01 12:08:27 +02:00
committed by Sacha Al Himdani
parent b94b58e2de
commit df23fd635f
37 changed files with 2266 additions and 199 deletions

View File

@@ -0,0 +1,34 @@
type Translator = (s: string) => string;
export const certifications = {
securityStandards: [
"SOC 2",
"ISO 27001",
"HITRUST",
"NIST",
"SOC 2 Type 2",
"SOC 2 Type 1",
],
regulatoryLegal: ["HIPAA", "FERPA", "FISMA", "PIPEDA", "GDPR", "CCPA"],
industrySpecific: ["FinTech", "MPAA", "GSMA"],
internationalGov: ["FedRAMP", "ENS High", "IRAP", "CJIS"],
custom: [] as string[],
} as const;
export const certificationCategoryLabel = (
__: Translator,
category: keyof typeof certifications,
) => {
switch (category) {
case "securityStandards":
return __("Security Standards");
case "regulatoryLegal":
return __("Regulatory & Legal");
case "industrySpecific":
return __("Industry-Specific");
case "internationalGov":
return __("International & Government");
default:
return __("Custom certifications");
}
};

View File

@@ -0,0 +1,7 @@
export function withViewTransition(fn: () => void) {
if (!document.startViewTransition) {
fn();
return;
}
document.startViewTransition(fn);
}

View File

@@ -1,4 +1,4 @@
export { objectKeys } from "./object";
export { objectKeys, objectEntries } from "./object";
export { sprintf, faviconUrl } from "./string";
export {
getTreatment,
@@ -6,7 +6,9 @@ export {
getRiskLikelihoods,
getSeverity,
} from "./risk";
export { withViewTransition } from "./dom";
export { times, groupBy, isEmpty } from "./array";
export { randomInt } from "./number";
export { getMeasureStateLabel, measureStates } from "./measure";
export { getRole, getRoles, peopleRoles } from "./people";
export { certificationCategoryLabel, certifications } from "./certifications";

View File

@@ -4,3 +4,7 @@
export function objectKeys<T extends Record<string, unknown>>(object: T) {
return Object.keys(object) as (keyof T)[];
}
export function objectEntries<T extends Record<string, unknown>>(object: T) {
return Object.entries(object) as [keyof T, T[keyof T]][];
}