Add FERPA and PCI DSS frameworks

Add FERPA and PCI DSS framework datasets (controls plus light/dark
logos), their logo components, and register both in the framework
selector so they can be imported like the existing frameworks.

Co-authored-by: Antoine Bouchardy <antoine@getprobo.com>
Signed-off-by: Sacha Al Himdani <sacha@probo.com>
This commit is contained in:
Sacha Al Himdani
2026-07-07 16:39:22 +02:00
parent 98f08b7439
commit ddfabc5940
5 changed files with 1527 additions and 19 deletions

View File

@@ -1,84 +1,84 @@
export function FERPA() {
export function FERPA(props: { className?: string }) {
const { className } = props;
return (
<svg
className={className}
version="1.1"
id="Layer_1"
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
viewBox="0 0 60 60"
enableBackground="new 0 0 60 60"
xmlSpace="preserve"
>
<rect
className="fill-none stroke-txt-primary"
x="10.500093"
y="10.500001"
transform="matrix(0.707107 -0.707107 0.707107 0.707107 -12.42638 30.000067)"
className="fill-none stroke-txt-primary"
width="39"
height="39"
transform="matrix(0.707107 -0.707107 0.707107 0.707107 -12.42638 30.000067)"
/>
<rect
className="fill-none stroke-txt-primary"
x="14.396727"
y="14.3968"
transform="matrix(0.707107 -0.707107 0.707107 0.707107 -12.426428 29.999947)"
className="fill-none stroke-txt-primary"
width="31.206398"
height="31.206398"
transform="matrix(0.707107 -0.707107 0.707107 0.707107 -12.426428 29.999947)"
/>
<path
className="fill-none stroke-txt-primary"
d="M39.9837,31.1087c-2.278999,0.845301-4.780701-0.233-4.780701-0.233 s1.193302-2.4489,3.472301-3.2943c2.278999-0.845301,4.780598,0.233,4.780598,0.233S42.262699,30.2633,39.9837,31.1087z"
strokeLinejoin="round"
d="M39.9837,31.1087c-2.278999,0.845301-4.780701-0.233-4.780701-0.233s1.193302-2.4489,3.472301-3.2943c2.278999-0.845301,4.780598,0.233,4.780598,0.233S42.262699,30.2633,39.9837,31.1087z"
/>
<path
className="fill-none stroke-txt-primary"
d="M36.877399,38.512798 c-2.544899,0.164001-4.714298-1.354-4.714298-1.354s1.9566-1.783897,4.501499-1.947998 c2.5448-0.164001,4.714298,1.354,4.714298,1.354S39.422298,38.348701,36.877399,38.512798z"
strokeLinejoin="round"
d="M36.877399,38.512798c-2.544899,0.164001-4.714298-1.354-4.714298-1.354s1.9566-1.783897,4.501499-1.947998c2.5448-0.164001,4.714298,1.354,4.714298,1.354S39.422298,38.348701,36.877399,38.512798z"
/>
<path
className="fill-none stroke-txt-primary"
d="M33.2052,28.852501 C32.822399,31.2246,30.2953,32.865898,30.2953,32.865898s-1.906399-2.204597-1.5236-4.576698s2.909901-4.013399,2.909901-4.013399 S33.588001,26.4804,33.2052,28.852501z"
strokeLinejoin="round"
d="M33.2052,28.852501C32.822399,31.2246,30.2953,32.865898,30.2953,32.865898s-1.906399-2.204597-1.5236-4.576698s2.909901-4.013399,2.909901-4.013399S33.588001,26.4804,33.2052,28.852501z"
/>
<path
className="fill-none stroke-txt-primary"
d="M24.9828,35.002602 c2.383701,0.302898,4.672001-1.657703,4.672001-1.657703s-1.5763-2.451498-3.9599-2.754299 c-2.383701-0.302898-4.672001,1.6577-4.672001,1.6577S22.599199,34.699799,24.9828,35.002602z"
strokeLinejoin="round"
d="M24.9828,35.002602c2.383701,0.302898,4.672001-1.657703,4.672001-1.657703s-1.5763-2.451498-3.9599-2.754299c-2.383701-0.302898-4.672001,1.6577-4.672001,1.6577S22.599199,34.699799,24.9828,35.002602z"
/>
<path
className="fill-none stroke-txt-primary"
d="M25.849501,41.308998 c1.8536,0.048302,3.400999-1.636497,3.400999-1.636497s-1.4578-1.762802-3.3113-1.811001 c-1.8536-0.048199-3.400999,1.636501-3.400999,1.636501S23.995899,41.260799,25.849501,41.308998z"
strokeLinejoin="round"
d="M25.849501,41.308998c1.8536,0.048302,3.400999-1.636497,3.400999-1.636497s-1.4578-1.762802-3.3113-1.811001c-1.8536-0.048199-3.400999,1.636501-3.400999,1.636501S23.995899,41.260799,25.849501,41.308998z"
/>
<path
className="fill-none stroke-txt-primary"
d="M34.430401,23.423201 c0.451698,2.0844,2.318699,3.4489,2.318699,3.4489s1.134701-2.015001,0.682999-4.099401 c-0.451698-2.0844-2.318699-3.4489-2.318699-3.4489S33.978699,21.3388,34.430401,23.423201z"
strokeLinejoin="round"
d="M34.430401,23.423201c0.451698,2.0844,2.318699,3.4489,2.318699,3.4489s1.134701-2.015001,0.682999-4.099401c-0.451698-2.0844-2.318699-3.4489-2.318699-3.4489S33.978699,21.3388,34.430401,23.423201z"
/>
<path
className="fill-none stroke-txt-primary"
d="M28.4242,22.279499 c-0.067101,2.361101-2.3174,4.212702-2.3174,4.212702s-2.141399-1.976601-2.0742-4.337702S26.3501,17.9419,26.3501,17.9419 S28.4914,19.9184,28.4242,22.279499z"
strokeLinejoin="round"
d="M28.4242,22.279499c-0.067101,2.361101-2.3174,4.212702-2.3174,4.212702s-2.141399-1.976601-2.0742-4.337702S26.3501,17.9419,26.3501,17.9419S28.4914,19.9184,28.4242,22.279499z"
/>
<path
className="fill-none stroke-txt-primary"
d="M21.2068,29.0975c2.361099,0.0672,4.3377-2.0742,4.3377-2.0742 s-1.851601-2.2502-4.2127-2.3174s-4.337601,2.0741-4.337601,2.0741S18.845699,29.0303,21.2068,29.0975z"
strokeLinejoin="round"
d="M21.2068,29.0975c2.361099,0.0672,4.3377-2.0742,4.3377-2.0742s-1.851601-2.2502-4.2127-2.3174s-4.337601,2.0741-4.337601,2.0741S18.845699,29.0303,21.2068,29.0975z"
/>
<path
className="fill-none stroke-txt-primary"
d="M24.527901,45.939899 c1.3981-0.696499,4.033499-3.188499,5.056-5.462601 M20.4883,20.946501c0,0,9.6497,7.2514,9.907299,15.638998 c0.0434,1.4137-0.288399,2.727802-0.811699,3.8918 M29.5839,40.477299c6.179401-6.8633,6.518799-16.037098,11.2883-18.222399"
strokeLinecap="round"
d="M24.527901,45.939899c1.3981-0.696499,4.033499-3.188499,5.056-5.462601 M20.4883,20.946501c0,0,9.6497,7.2514,9.907299,15.638998c0.0434,1.4137-0.288399,2.727802-0.811699,3.8918 M29.5839,40.477299c6.179401-6.8633,6.518799-16.037098,11.2883-18.222399"
/>
<rect
className="fill-none stroke-txt-primary"
x="10.500093"
y="10.500001"
transform="matrix(0.707107 -0.707107 0.707107 0.707107 -12.42638 30.000067)"
className="fill-none stroke-txt-primary"
width="39"
height="39"
transform="matrix(0.707107 -0.707107 0.707107 0.707107 -12.42638 30.000067)"
/>
</svg>
);

View File

@@ -0,0 +1,34 @@
export function PCIDSS(props: { className?: string }) {
const { className } = props;
return (
<svg
className={className}
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 60 60"
xmlSpace="preserve"
>
<path
className="fill-none stroke-txt-primary"
d="M45.2334,13.1035c.6201-.0345,1.1977.3163,1.4521.8828l8.4258,18.7627c.3681.8196-.0627,1.7769-.9199,2.0459l-37.0576,11.6299c-.7637.2396-1.5814-.1627-1.8574-.9141L4.9111,17.292c-.3474-.946.318-1.9586,1.3242-2.0147l38.998-2.1738Z"
/>
<path
className="fill-txt-primary"
d="M26.553,28.5203c0,.6231-.1557,1.1682-.4283,1.6745-.2726.4672-.662.8956-1.1682,1.2071-.5062.3115-1.1293.5452-1.8302.7009-.7009.1558-1.4797.2337-2.3754.2337h-.623v3.1931h-4.0498v-10.6307h4.7507c1.7913,0,3.1931.3115,4.2056.8956,1.0124.5841,1.5186,1.5187,1.5186,2.7258ZM22.659,28.5593c0-.9346-.7009-1.4019-2.0638-1.4019h-.5062v2.8427h.4672c.662,0,1.2072-.1169,1.5577-.3505.3504-.1947.5451-.5841.5451-1.0903ZM36.5996,35.5296c-.623.1168-1.324.1947-2.1417.1947-1.1293,0-2.1417-.1169-2.9984-.3894-.8956-.2726-1.6355-.6231-2.2585-1.0904-.6231-.4672-1.0904-1.0513-1.4019-1.7133-.3115-.701-.4673-1.4408-.4673-2.2586s.1558-1.5576.5063-2.2585c.3556-.6763.846-1.2726,1.4408-1.7523.623-.4673,1.3629-.8567,2.2195-1.1293.8567-.2725,1.7913-.3894,2.8037-.3894.7788,0,1.5187.039,2.1807.1558q.662.1558,1.1682.3505v2.8426c-.3894-.2337-.8567-.4284-1.3629-.5452-.5062-.1557-1.0514-.2336-1.5966-.2336-.9345,0-1.6744.2726-2.2585.7398-.5841.5063-.8567,1.2072-.8567,2.1807,0,.4673.0779.8956.2726,1.285.1947.3505.4283.662.7399.8957.3115.2336.6619.4283,1.0903.5451.4283.1168.8567.1947,1.324.1947s.9735-.0389,1.4407-.1557c.4673-.1169.9736-.2337,1.4798-.4673v2.6868l-1.324.3116ZM39.598,24.8989h4.0887v10.6696h-4.0887v-10.6696ZM44.1151,21.55c0,.701-.2337,1.2851-.701,1.6745-.4672.3894-1.0513.623-1.7523.623s-1.285-.1947-1.7523-.623c-.4673-.3894-.7009-.9735-.7009-1.6745,0-.7398.2336-1.285.7009-1.7133.4673-.4284,1.0514-.6231,1.7523-.6231s1.2851.1947,1.7523.6231c.4673.3894.701.9735.701,1.7133Z"
/>
<circle
className="fill-txt-primary"
cx="46.4229"
cy="12.5273"
r="4"
/>
<path
className="fill-none stroke-invert"
d="M44.7891,12.8784l.9803.9803,2.2874-2.2874"
/>
</svg>
);
}

View File

@@ -19,6 +19,7 @@ import { Dropdown, DropdownItem } from "../../Atoms/Dropdown/Dropdown";
import { TwentyOneCFRPart11 } from "../../Atoms/Frameworks/21CFRPart11";
import { CCPA } from "../../Atoms/Frameworks/CCPA";
import { DORA } from "../../Atoms/Frameworks/DORA";
import { FERPA } from "../../Atoms/Frameworks/FERPA";
import { GDPR } from "../../Atoms/Frameworks/GDPR";
import { HDS } from "../../Atoms/Frameworks/HDS";
import { HIPAA } from "../../Atoms/Frameworks/HIPAA";
@@ -26,6 +27,7 @@ import { ISO27001 } from "../../Atoms/Frameworks/ISO27001";
import { ISO27701 } from "../../Atoms/Frameworks/ISO27701";
import { ISO42001 } from "../../Atoms/Frameworks/ISO42001";
import { NIS2 } from "../../Atoms/Frameworks/NIS2";
import { PCIDSS } from "../../Atoms/Frameworks/PCIDSS";
import { SOC2 } from "../../Atoms/Frameworks/SOC2";
import { IconChevronDown, IconPlusLarge } from "../../Atoms/Icons";
@@ -98,6 +100,18 @@ const availableFrameworks = [
logo: <HDS className="size-8" />,
description: "Hébergement de Données de Santé",
},
{
id: "FERPA",
name: "FERPA",
logo: <FERPA className="size-8" />,
description: "Family Educational Rights and Privacy Act",
},
{
id: "PCI-DSS",
name: "PCI DSS",
logo: <PCIDSS className="size-8" />,
description: "Payment Card Industry Data Security Standard",
},
];
type Framework = (typeof availableFrameworks)[number];