UNPKG

@tantainnovative/ndpr-toolkit

Version:

Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023

2 lines 8.39 kB
"use client"; 'use strict';var chunkWZYCBW2R_js=require('./chunk-WZYCBW2R.js'),chunkAME4HJR4_js=require('./chunk-AME4HJR4.js'),chunkI5ZDNSX5_js=require('./chunk-I5ZDNSX5.js');require('./chunk-7563FVMY.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var I={consent:"Consent",contract:"Contract",legal_obligation:"Legal Obligation",vital_interests:"Vital Interests",public_interest:"Public Interest",legitimate_interests:"Legitimate Interests"},$={consent:"ndpr-badge ndpr-badge--info",contract:"ndpr-badge ndpr-badge--info",legal_obligation:"ndpr-badge ndpr-badge--info",vital_interests:"ndpr-badge ndpr-badge--destructive",public_interest:"ndpr-badge ndpr-badge--warning",legitimate_interests:"bg-indigo-100 text-indigo-800 dark:bg-indigo-900 dark:text-indigo-200"},H={active:"Active",inactive:"Inactive",under_review:"Under Review",archived:"Archived"},U={active:"ndpr-badge ndpr-badge--success",inactive:"ndpr-badge ndpr-badge--neutral",under_review:"ndpr-badge ndpr-badge--warning",archived:"ndpr-badge ndpr-badge--destructive"},K=p=>new Date(p).toLocaleDateString(),M=({activities:p,title:g,description:c,className:B="",classNames:e,unstyled:i,showSummary:A=true,showComplianceGaps:S=true,onActivityClick:u})=>{var h,L;let w=chunkI5ZDNSX5_js.c(),k=(h=g!=null?g:w.lawfulBasis.title)!=null?h:"Lawful Basis Tracker",C=(L=c!=null?c:w.lawfulBasis.description)!=null?L:"Document and track the lawful basis for each processing activity as required by NDPA 2023 Section 25.",_=react.useMemo(()=>[...p].sort((r,d)=>d.updatedAt-r.updatedAt),[p]),l=react.useMemo(()=>chunkWZYCBW2R_js.d(p),[p]),o=react.useMemo(()=>chunkWZYCBW2R_js.c(p),[p]),m=react.useMemo(()=>o.filter(r=>r.severity==="high"),[o]),b=react.useMemo(()=>o.filter(r=>r.severity==="medium"),[o]),P=r=>jsxRuntime.jsx("span",{className:chunkAME4HJR4_js.a(`px-2 py-1 rounded text-xs font-medium ${U[r]}`,e==null?void 0:e.statusBadge,i),children:H[r]}),T=r=>jsxRuntime.jsx("span",{className:`px-2 py-1 rounded text-xs font-medium ${$[r]}`,children:I[r]}),D=r=>r.dpoApproval?r.dpoApproval.approved?jsxRuntime.jsx("span",{className:"ndpr-badge ndpr-badge--success",children:"Approved"}):jsxRuntime.jsx("span",{className:"ndpr-badge ndpr-badge--warning",children:"Pending Approval"}):jsxRuntime.jsx("span",{className:"px-2 py-1 rounded text-xs font-medium bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-400",children:"No DPO Review"}),R=()=>jsxRuntime.jsxs("div",{"data-ndpr-component":"lawful-basis-tracker-lite",className:chunkAME4HJR4_js.a("grid grid-cols-2 md:grid-cols-4 gap-4 mb-6",e==null?void 0:e.summary,i),role:"status","aria-label":"Compliance summary",children:[jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("ndpr-alert ndpr-alert--info",e==null?void 0:e.summaryCard,i),children:[jsxRuntime.jsx("p",{className:"ndpr-stat__value ndpr-text-info",children:l.totalActivities}),jsxRuntime.jsx("p",{className:"text-sm ndpr-text-info",children:"Total Activities"})]}),jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("bg-orange-50 dark:bg-orange-900/20 p-4 rounded-lg",e==null?void 0:e.summaryCard,i),children:[jsxRuntime.jsx("p",{className:"ndpr-stat__value ndpr-text-warning",children:l.sensitiveDataActivities}),jsxRuntime.jsx("p",{className:"text-sm ndpr-text-warning",children:"Sensitive Data"})]}),jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("ndpr-alert ndpr-alert--info",e==null?void 0:e.summaryCard,i),children:[jsxRuntime.jsx("p",{className:"ndpr-stat__value ndpr-text-info",children:l.crossBorderActivities}),jsxRuntime.jsx("p",{className:"text-sm ndpr-text-info",children:"Cross-Border Transfers"})]}),jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("ndpr-alert ndpr-alert--destructive",e==null?void 0:e.summaryCard,i),children:[jsxRuntime.jsx("p",{className:"ndpr-stat__value ndpr-text-destructive",children:l.activitiesWithoutApproval.length}),jsxRuntime.jsx("p",{className:"text-sm ndpr-text-destructive",children:"Pending Approval"})]})]}),G=()=>o.length===0?jsxRuntime.jsxs("div",{className:"bg-green-50 dark:bg-green-900/20 p-4 rounded-lg mb-6",role:"status","aria-label":"No compliance gaps",children:[jsxRuntime.jsx("p",{className:"text-sm ndpr-text-success font-medium",children:"No compliance gaps detected."}),jsxRuntime.jsx("p",{className:"text-xs ndpr-text-success mt-1",children:"All processing activities appear to be properly documented."})]}):jsxRuntime.jsxs("div",{className:"mb-6",role:"status","aria-label":`${o.length} compliance gaps detected`,children:[m.length>0&&jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("bg-red-50 dark:bg-red-900/20 p-4 rounded-lg mb-3",e==null?void 0:e.gapAlert,i),children:[jsxRuntime.jsxs("p",{className:"text-sm ndpr-text-destructive font-medium mb-2",children:["High Priority (",m.length,")"]}),jsxRuntime.jsx("ul",{className:"space-y-1",children:m.map((r,d)=>jsxRuntime.jsx("li",{className:"text-xs ndpr-text-destructive",children:r.description},d))})]}),b.length>0&&jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("ndpr-alert ndpr-alert--warning",e==null?void 0:e.gapAlert,i),children:[jsxRuntime.jsxs("p",{className:"text-sm ndpr-text-warning font-medium mb-2",children:["Medium Priority (",b.length,")"]}),jsxRuntime.jsx("ul",{className:"space-y-1",children:b.map((r,d)=>jsxRuntime.jsx("li",{className:"text-xs ndpr-text-warning",children:r.description},d))})]})]});return jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a(`bg-white dark:bg-gray-800 p-6 rounded-lg shadow-md ${B}`,e==null?void 0:e.root,i),children:[jsxRuntime.jsxs("div",{className:chunkAME4HJR4_js.a("",e==null?void 0:e.header,i),children:[jsxRuntime.jsx("h2",{className:chunkAME4HJR4_js.a("ndpr-section-heading",e==null?void 0:e.title,i),children:k}),jsxRuntime.jsx("p",{className:"ndpr-card__subtitle",children:C})]}),A&&R(),S&&G(),_.length===0?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 bg-gray-50 dark:bg-gray-700 rounded-md",children:jsxRuntime.jsx("p",{className:"ndpr-card__subtitle",children:"No processing activities found."})}):jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:chunkAME4HJR4_js.a("w-full text-sm text-left",e==null?void 0:e.table,i),children:[jsxRuntime.jsx("thead",{className:chunkAME4HJR4_js.a("ndpr-table__head",e==null?void 0:e.tableHeader,i),children:jsxRuntime.jsxs("tr",{children:[jsxRuntime.jsx("th",{className:"ndpr-table__cell",children:"Activity"}),jsxRuntime.jsx("th",{className:"ndpr-table__cell",children:"Lawful Basis"}),jsxRuntime.jsx("th",{className:"ndpr-table__cell",children:"Status"}),jsxRuntime.jsx("th",{className:"ndpr-table__cell",children:"DPO Approval"}),jsxRuntime.jsx("th",{className:"ndpr-table__cell",children:"Sensitive Data"}),jsxRuntime.jsx("th",{className:"ndpr-table__cell",children:"Last Updated"})]})}),jsxRuntime.jsx("tbody",{children:_.map(r=>{let d=typeof u=="function",E=d?f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),u(r));}:void 0;return jsxRuntime.jsxs("tr",{className:chunkAME4HJR4_js.a(`border-b border-gray-200 dark:border-gray-600${d?" hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer":""}`,e==null?void 0:e.tableRow,i),onClick:d?()=>u(r):void 0,onKeyDown:E,role:d?"button":void 0,tabIndex:d?0:void 0,"aria-label":d?`View ${r.name}`:void 0,children:[jsxRuntime.jsxs("td",{className:"ndpr-table__cell",children:[jsxRuntime.jsx("span",{className:"font-medium ndpr-text-primary",children:r.name}),jsxRuntime.jsx("p",{className:"text-xs ndpr-text-muted mt-1 truncate max-w-xs",children:r.description})]}),jsxRuntime.jsx("td",{className:"ndpr-table__cell",children:T(r.lawfulBasis)}),jsxRuntime.jsx("td",{className:"ndpr-table__cell",children:P(r.status)}),jsxRuntime.jsx("td",{className:"ndpr-table__cell",children:D(r)}),jsxRuntime.jsx("td",{className:"ndpr-table__cell",children:jsxRuntime.jsx("span",{className:`text-xs ${r.involvesSensitiveData?"ndpr-text-warning font-medium":"ndpr-card__subtitle"}`,children:r.involvesSensitiveData?"Yes":"No"})}),jsxRuntime.jsx("td",{className:"ndpr-table__cell ndpr-table__cell--muted",children:K(r.updatedAt)})]},r.id)})})]})})]})};Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkWZYCBW2R_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkWZYCBW2R_js.d}});exports.LawfulBasisTrackerLite=M;