@tantainnovative/ndpr-toolkit 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -0
- package/dist/chunk-3APT25XO.mjs +1 -0
- package/dist/chunk-45D7AMB3.js +1 -0
- package/dist/chunk-65J4P5ID.js +1 -0
- package/dist/{chunk-NB6SKG76.mjs → chunk-6H6IXTHA.mjs} +1 -1
- package/dist/{chunk-GUERZD4O.mjs → chunk-6OPGI27L.mjs} +1 -1
- package/dist/{chunk-3XU6FL2I.js → chunk-6YFPDGNB.js} +1 -1
- package/dist/{chunk-IHNAFXDM.mjs → chunk-7Z7NURIA.mjs} +1 -1
- package/dist/chunk-D3HHDWBR.js +1 -0
- package/dist/chunk-DSIIEUAD.mjs +1 -0
- package/dist/chunk-H2FDWK4F.js +6 -0
- package/dist/chunk-HLFS3NXG.js +1 -0
- package/dist/chunk-JGY65SHX.mjs +1 -0
- package/dist/chunk-NI54X543.mjs +1 -0
- package/dist/{chunk-5F2IAUWJ.js → chunk-O4ATGGVK.js} +1 -1
- package/dist/chunk-P5MPUC5F.js +1 -0
- package/dist/{chunk-BGV2AKT7.mjs → chunk-PSPYIRIF.mjs} +1 -1
- package/dist/{chunk-HOAC5VUF.js → chunk-ROOUYQD4.js} +1 -1
- package/dist/{chunk-WMISQDSV.js → chunk-UJGNW6CH.js} +1 -1
- package/dist/chunk-UTXDZDYF.mjs +6 -0
- package/dist/chunk-W6VVLHRQ.mjs +1 -0
- package/dist/consent.d.mts +2 -0
- package/dist/consent.d.ts +2 -0
- package/dist/consent.js +1 -1
- package/dist/consent.mjs +1 -1
- package/dist/core.d.mts +13 -0
- package/dist/core.d.ts +13 -0
- package/dist/core.js +1 -1
- package/dist/core.mjs +1 -1
- package/dist/cross-border.d.mts +24 -0
- package/dist/cross-border.d.ts +24 -0
- package/dist/cross-border.js +1 -1
- package/dist/cross-border.mjs +1 -1
- package/dist/dsr.d.mts +3 -0
- package/dist/dsr.d.ts +3 -0
- package/dist/dsr.js +1 -1
- package/dist/dsr.mjs +1 -1
- package/dist/headless.d.mts +22 -1
- package/dist/headless.d.ts +22 -1
- package/dist/headless.js +1 -1
- package/dist/headless.mjs +1 -1
- package/dist/hooks.d.mts +22 -1
- package/dist/hooks.d.ts +22 -1
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +1 -1
- package/dist/index.d.mts +215 -1
- package/dist/index.d.ts +215 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/lawful-basis.d.mts +21 -0
- package/dist/lawful-basis.d.ts +21 -0
- package/dist/lawful-basis.js +1 -1
- package/dist/lawful-basis.mjs +1 -1
- package/dist/presets.d.mts +93 -0
- package/dist/presets.d.ts +93 -0
- package/dist/presets.js +1 -1
- package/dist/presets.mjs +1 -1
- package/dist/ropa-lite.d.mts +13 -1
- package/dist/ropa-lite.d.ts +13 -1
- package/dist/ropa-lite.js +1 -1
- package/dist/ropa-lite.mjs +1 -1
- package/dist/ropa.d.mts +43 -1
- package/dist/ropa.d.ts +43 -1
- package/dist/ropa.js +1 -1
- package/dist/ropa.mjs +1 -1
- package/dist/server.d.mts +135 -0
- package/dist/server.d.ts +135 -0
- package/dist/server.js +1 -1
- package/dist/server.mjs +1 -1
- package/dist/styles.css +18 -16
- package/package.json +1 -1
- package/dist/chunk-42JPSNVV.mjs +0 -6
- package/dist/chunk-7FXNGGMO.js +0 -1
- package/dist/chunk-B46SJB5V.js +0 -1
- package/dist/chunk-BL5W472Q.js +0 -1
- package/dist/chunk-O2WEABB3.js +0 -1
- package/dist/chunk-OZHUINWS.js +0 -1
- package/dist/chunk-PJNKQPQP.mjs +0 -1
- package/dist/chunk-RBKFNCGO.mjs +0 -1
- package/dist/chunk-VPNK7OID.mjs +0 -1
- package/dist/chunk-WKUC65HL.mjs +0 -1
- package/dist/chunk-XYGGUGTO.js +0 -6
- package/dist/chunk-Z2M5VJX2.mjs +0 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunk3I6FYA5C_js=require('./chunk-3I6FYA5C.js'),chunkD2UWB5OI_js=require('./chunk-D2UWB5OI.js'),chunk3SIYRGJF_js=require('./chunk-3SIYRGJF.js'),chunk7FXNGGMO_js=require('./chunk-7FXNGGMO.js'),chunkXYGGUGTO_js=require('./chunk-XYGGUGTO.js'),chunkBL5W472Q_js=require('./chunk-BL5W472Q.js'),chunkFC3PTJFL_js=require('./chunk-FC3PTJFL.js'),chunkEHQVTFYO_js=require('./chunk-EHQVTFYO.js'),chunkRC3XFXTJ_js=require('./chunk-RC3XFXTJ.js'),chunkQHW4UKGJ_js=require('./chunk-QHW4UKGJ.js'),chunkIRRUYR6M_js=require('./chunk-IRRUYR6M.js'),chunkHHK5LHEG_js=require('./chunk-HHK5LHEG.js'),chunkO2WEABB3_js=require('./chunk-O2WEABB3.js');require('./chunk-JS7SYL5P.js');var chunkRDALAH3Y_js=require('./chunk-RDALAH3Y.js'),chunk3YTAOT5O_js=require('./chunk-3YTAOT5O.js'),chunkD2ZKDQVL_js=require('./chunk-D2ZKDQVL.js');require('./chunk-6LJHLE6G.js');var chunkYFBDJ4FH_js=require('./chunk-YFBDJ4FH.js'),chunkWZYCBW2R_js=require('./chunk-WZYCBW2R.js'),chunk4CVBQC66_js=require('./chunk-4CVBQC66.js'),chunkSJDDNB6M_js=require('./chunk-SJDDNB6M.js'),chunk42UJFTII_js=require('./chunk-42UJFTII.js'),chunkZD2W3YU2_js=require('./chunk-ZD2W3YU2.js'),chunk3IA3KDII_js=require('./chunk-3IA3KDII.js'),chunkHOAC5VUF_js=require('./chunk-HOAC5VUF.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js');var chunkB46SJB5V_js=require('./chunk-B46SJB5V.js'),chunkWMISQDSV_js=require('./chunk-WMISQDSV.js'),chunkUZNWXJ2W_js=require('./chunk-UZNWXJ2W.js'),chunkUXUMYP4L_js=require('./chunk-UXUMYP4L.js'),chunk5F2IAUWJ_js=require('./chunk-5F2IAUWJ.js'),chunkOZHUINWS_js=require('./chunk-OZHUINWS.js'),chunk37VFK5SR_js=require('./chunk-37VFK5SR.js'),chunkWCTFED27_js=require('./chunk-WCTFED27.js'),chunkJLQT3W3E_js=require('./chunk-JLQT3W3E.js'),chunkTQZWJGJ2_js=require('./chunk-TQZWJGJ2.js'),chunkZVOIR4QH_js=require('./chunk-ZVOIR4QH.js'),chunkAME4HJR4_js=require('./chunk-AME4HJR4.js'),chunkYDKWD6MQ_js=require('./chunk-YDKWD6MQ.js');require('./chunk-TTMGFC6C.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var xe=({theme:o,className:t,children:s})=>{let n=react.useMemo(()=>{if(!o)return;let r={};if(o.colors){let e=o.colors;e.primary!==void 0&&(r["--ndpr-primary"]=e.primary),e.primaryHover!==void 0&&(r["--ndpr-primary-hover"]=e.primaryHover),e.primaryForeground!==void 0&&(r["--ndpr-primary-foreground"]=e.primaryForeground),e.background!==void 0&&(r["--ndpr-background"]=e.background),e.surface!==void 0&&(r["--ndpr-surface"]=e.surface),e.foreground!==void 0&&(r["--ndpr-foreground"]=e.foreground),e.muted!==void 0&&(r["--ndpr-muted"]=e.muted),e.mutedForeground!==void 0&&(r["--ndpr-muted-foreground"]=e.mutedForeground),e.border!==void 0&&(r["--ndpr-border"]=e.border),e.input!==void 0&&(r["--ndpr-input"]=e.input),e.ring!==void 0&&(r["--ndpr-ring"]=e.ring),e.success!==void 0&&(r["--ndpr-success"]=e.success),e.destructive!==void 0&&(r["--ndpr-destructive"]=e.destructive),e.warning!==void 0&&(r["--ndpr-warning"]=e.warning);}if(o.radius){let e=o.radius;e.sm!==void 0&&(r["--ndpr-radius-sm"]=e.sm),e.base!==void 0&&(r["--ndpr-radius"]=e.base),e.lg!==void 0&&(r["--ndpr-radius-lg"]=e.lg),e.full!==void 0&&(r["--ndpr-radius-full"]=e.full);}if(o.spacing){let e=o.spacing;e[1]!==void 0&&(r["--ndpr-space-1"]=e[1]),e[2]!==void 0&&(r["--ndpr-space-2"]=e[2]),e[3]!==void 0&&(r["--ndpr-space-3"]=e[3]),e[4]!==void 0&&(r["--ndpr-space-4"]=e[4]),e[5]!==void 0&&(r["--ndpr-space-5"]=e[5]),e[6]!==void 0&&(r["--ndpr-space-6"]=e[6]),e[8]!==void 0&&(r["--ndpr-space-8"]=e[8]);}if(o.shadow){let e=o.shadow;e.sm!==void 0&&(r["--ndpr-shadow-sm"]=e.sm),e.base!==void 0&&(r["--ndpr-shadow"]=e.base),e.lg!==void 0&&(r["--ndpr-shadow-lg"]=e.lg);}if(o.font){let e=o.font;e.sans!==void 0&&(r["--ndpr-font-sans"]=e.sans),e.sizeXs!==void 0&&(r["--ndpr-font-size-xs"]=e.sizeXs),e.sizeSm!==void 0&&(r["--ndpr-font-size-sm"]=e.sizeSm),e.sizeBase!==void 0&&(r["--ndpr-font-size-base"]=e.sizeBase),e.sizeLg!==void 0&&(r["--ndpr-font-size-lg"]=e.sizeLg),e.sizeXl!==void 0&&(r["--ndpr-font-size-xl"]=e.sizeXl),e.lineHeight!==void 0&&(r["--ndpr-line-height"]=e.lineHeight),e.lineHeightTight!==void 0&&(r["--ndpr-line-height-tight"]=e.lineHeightTight);}if(o.transition){let e=o.transition;e.base!==void 0&&(r["--ndpr-transition"]=e.base),e.slow!==void 0&&(r["--ndpr-transition-slow"]=e.slow);}if(o.z){let e=o.z;e.banner!==void 0&&(r["--ndpr-z-banner"]=String(e.banner)),e.modal!==void 0&&(r["--ndpr-z-modal"]=String(e.modal));}return Object.keys(r).length>0?r:void 0},[o]),p=o==null?void 0:o.mode;return jsxRuntime.jsx("div",{"data-ndpr-theme":"","data-theme":p,className:t,style:n,children:s})};var De=({variant:o="short",className:t,hidden:s})=>{if(s)return null;let n=o==="long"?chunkZVOIR4QH_js.b:chunkZVOIR4QH_js.a;return jsxRuntime.jsx("p",{role:"note",className:t!=null?t:"ndpr-legal-notice","data-ndpr-legal-notice":o,children:n})};Object.defineProperty(exports,"NDPRDashboard",{enumerable:true,get:function(){return chunkNUWVPRNI_js.a}});Object.defineProperty(exports,"BreachNotificationManager",{enumerable:true,get:function(){return chunk3I6FYA5C_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunk3I6FYA5C_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunk3I6FYA5C_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkD2UWB5OI_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunk3SIYRGJF_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunk3SIYRGJF_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunk3SIYRGJF_js.b}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunk7FXNGGMO_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunkXYGGUGTO_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunkBL5W472Q_js.a}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkFC3PTJFL_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkEHQVTFYO_js.a}});Object.defineProperty(exports,"useDefaultPrivacyPolicy",{enumerable:true,get:function(){return chunkRC3XFXTJ_js.b}});Object.defineProperty(exports,"usePrivacyPolicy",{enumerable:true,get:function(){return chunkRC3XFXTJ_js.a}});Object.defineProperty(exports,"useAdaptivePolicyWizard",{enumerable:true,get:function(){return chunkQHW4UKGJ_js.a}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunkIRRUYR6M_js.a}});Object.defineProperty(exports,"useCrossBorderTransfer",{enumerable:true,get:function(){return chunkHHK5LHEG_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunkO2WEABB3_js.a}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunkRDALAH3Y_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunk3YTAOT5O_js.a}});Object.defineProperty(exports,"DEFAULT_POLICY_SECTIONS",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.c}});Object.defineProperty(exports,"DEFAULT_POLICY_VARIABLES",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.d}});Object.defineProperty(exports,"createBusinessPolicyTemplate",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.e}});Object.defineProperty(exports,"generatePolicyText",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.b}});Object.defineProperty(exports,"assessTransferRisk",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.h}});Object.defineProperty(exports,"getTransferMechanismDescription",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.f}});Object.defineProperty(exports,"isNDPCApprovalRequired",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.e}});Object.defineProperty(exports,"validateTransfer",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.g}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkWZYCBW2R_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkWZYCBW2R_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkWZYCBW2R_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkWZYCBW2R_js.a}});Object.defineProperty(exports,"exportROPAToCSV",{enumerable:true,get:function(){return chunk4CVBQC66_js.c}});Object.defineProperty(exports,"generateROPASummary",{enumerable:true,get:function(){return chunk4CVBQC66_js.b}});Object.defineProperty(exports,"identifyComplianceGaps",{enumerable:true,get:function(){return chunk4CVBQC66_js.d}});Object.defineProperty(exports,"validateProcessingRecord",{enumerable:true,get:function(){return chunk4CVBQC66_js.a}});Object.defineProperty(exports,"ConsentStorage",{enumerable:true,get:function(){return chunkSJDDNB6M_js.a}});Object.defineProperty(exports,"ConsentManager",{enumerable:true,get:function(){return chunk42UJFTII_js.a}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkZD2W3YU2_js.a}});Object.defineProperty(exports,"appendAuditEntry",{enumerable:true,get:function(){return chunk3IA3KDII_js.c}});Object.defineProperty(exports,"createAuditEntry",{enumerable:true,get:function(){return chunk3IA3KDII_js.a}});Object.defineProperty(exports,"getAuditLog",{enumerable:true,get:function(){return chunk3IA3KDII_js.b}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkHOAC5VUF_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkB46SJB5V_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkB46SJB5V_js.b}});Object.defineProperty(exports,"DSRDashboard",{enumerable:true,get:function(){return chunkWMISQDSV_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkWMISQDSV_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkUZNWXJ2W_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkUXUMYP4L_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunk5F2IAUWJ_js.a}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkOZHUINWS_js.b}});Object.defineProperty(exports,"validateDsrSubmission",{enumerable:true,get:function(){return chunkOZHUINWS_js.a}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunk37VFK5SR_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunk37VFK5SR_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkWCTFED27_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkJLQT3W3E_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkTQZWJGJ2_js.a}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_LONG",{enumerable:true,get:function(){return chunkZVOIR4QH_js.b}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_SHORT",{enumerable:true,get:function(){return chunkZVOIR4QH_js.a}});Object.defineProperty(exports,"legalDisclaimerBlock",{enumerable:true,get:function(){return chunkZVOIR4QH_js.c}});Object.defineProperty(exports,"resolveClass",{enumerable:true,get:function(){return chunkAME4HJR4_js.a}});Object.defineProperty(exports,"NDPRProvider",{enumerable:true,get:function(){return chunkYDKWD6MQ_js.a}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunkYDKWD6MQ_js.b}});exports.LegalNotice=De;exports.NDPRThemeProvider=xe;
|
|
2
|
+
'use strict';var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunk3I6FYA5C_js=require('./chunk-3I6FYA5C.js'),chunkD2UWB5OI_js=require('./chunk-D2UWB5OI.js'),chunk3SIYRGJF_js=require('./chunk-3SIYRGJF.js'),chunk65J4P5ID_js=require('./chunk-65J4P5ID.js'),chunkH2FDWK4F_js=require('./chunk-H2FDWK4F.js'),chunkHLFS3NXG_js=require('./chunk-HLFS3NXG.js'),chunkFC3PTJFL_js=require('./chunk-FC3PTJFL.js'),chunkEHQVTFYO_js=require('./chunk-EHQVTFYO.js'),chunkRC3XFXTJ_js=require('./chunk-RC3XFXTJ.js'),chunkQHW4UKGJ_js=require('./chunk-QHW4UKGJ.js'),chunkIRRUYR6M_js=require('./chunk-IRRUYR6M.js'),chunkHHK5LHEG_js=require('./chunk-HHK5LHEG.js'),chunkP5MPUC5F_js=require('./chunk-P5MPUC5F.js');require('./chunk-JS7SYL5P.js');var chunkRDALAH3Y_js=require('./chunk-RDALAH3Y.js'),chunk3YTAOT5O_js=require('./chunk-3YTAOT5O.js'),chunkD2ZKDQVL_js=require('./chunk-D2ZKDQVL.js');require('./chunk-6LJHLE6G.js');var chunkYFBDJ4FH_js=require('./chunk-YFBDJ4FH.js'),chunkWZYCBW2R_js=require('./chunk-WZYCBW2R.js'),chunk4CVBQC66_js=require('./chunk-4CVBQC66.js'),chunkSJDDNB6M_js=require('./chunk-SJDDNB6M.js'),chunk42UJFTII_js=require('./chunk-42UJFTII.js'),chunkZD2W3YU2_js=require('./chunk-ZD2W3YU2.js'),chunk3IA3KDII_js=require('./chunk-3IA3KDII.js'),chunkROOUYQD4_js=require('./chunk-ROOUYQD4.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js');var chunkD3HHDWBR_js=require('./chunk-D3HHDWBR.js'),chunkUJGNW6CH_js=require('./chunk-UJGNW6CH.js'),chunkUZNWXJ2W_js=require('./chunk-UZNWXJ2W.js'),chunkUXUMYP4L_js=require('./chunk-UXUMYP4L.js'),chunkO4ATGGVK_js=require('./chunk-O4ATGGVK.js'),chunk45D7AMB3_js=require('./chunk-45D7AMB3.js'),chunk37VFK5SR_js=require('./chunk-37VFK5SR.js'),chunkWCTFED27_js=require('./chunk-WCTFED27.js'),chunkJLQT3W3E_js=require('./chunk-JLQT3W3E.js'),chunkTQZWJGJ2_js=require('./chunk-TQZWJGJ2.js'),chunkZVOIR4QH_js=require('./chunk-ZVOIR4QH.js'),chunkAME4HJR4_js=require('./chunk-AME4HJR4.js'),chunkYDKWD6MQ_js=require('./chunk-YDKWD6MQ.js');require('./chunk-TTMGFC6C.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var Ae=({theme:o,className:t,children:s})=>{let n=react.useMemo(()=>{if(!o)return;let r={};if(o.colors){let e=o.colors;e.primary!==void 0&&(r["--ndpr-primary"]=e.primary),e.primaryHover!==void 0&&(r["--ndpr-primary-hover"]=e.primaryHover),e.primaryForeground!==void 0&&(r["--ndpr-primary-foreground"]=e.primaryForeground),e.background!==void 0&&(r["--ndpr-background"]=e.background),e.surface!==void 0&&(r["--ndpr-surface"]=e.surface),e.foreground!==void 0&&(r["--ndpr-foreground"]=e.foreground),e.muted!==void 0&&(r["--ndpr-muted"]=e.muted),e.mutedForeground!==void 0&&(r["--ndpr-muted-foreground"]=e.mutedForeground),e.border!==void 0&&(r["--ndpr-border"]=e.border),e.input!==void 0&&(r["--ndpr-input"]=e.input),e.ring!==void 0&&(r["--ndpr-ring"]=e.ring),e.success!==void 0&&(r["--ndpr-success"]=e.success),e.destructive!==void 0&&(r["--ndpr-destructive"]=e.destructive),e.warning!==void 0&&(r["--ndpr-warning"]=e.warning);}if(o.radius){let e=o.radius;e.sm!==void 0&&(r["--ndpr-radius-sm"]=e.sm),e.base!==void 0&&(r["--ndpr-radius"]=e.base),e.lg!==void 0&&(r["--ndpr-radius-lg"]=e.lg),e.full!==void 0&&(r["--ndpr-radius-full"]=e.full);}if(o.spacing){let e=o.spacing;e[1]!==void 0&&(r["--ndpr-space-1"]=e[1]),e[2]!==void 0&&(r["--ndpr-space-2"]=e[2]),e[3]!==void 0&&(r["--ndpr-space-3"]=e[3]),e[4]!==void 0&&(r["--ndpr-space-4"]=e[4]),e[5]!==void 0&&(r["--ndpr-space-5"]=e[5]),e[6]!==void 0&&(r["--ndpr-space-6"]=e[6]),e[8]!==void 0&&(r["--ndpr-space-8"]=e[8]);}if(o.shadow){let e=o.shadow;e.sm!==void 0&&(r["--ndpr-shadow-sm"]=e.sm),e.base!==void 0&&(r["--ndpr-shadow"]=e.base),e.lg!==void 0&&(r["--ndpr-shadow-lg"]=e.lg);}if(o.font){let e=o.font;e.sans!==void 0&&(r["--ndpr-font-sans"]=e.sans),e.sizeXs!==void 0&&(r["--ndpr-font-size-xs"]=e.sizeXs),e.sizeSm!==void 0&&(r["--ndpr-font-size-sm"]=e.sizeSm),e.sizeBase!==void 0&&(r["--ndpr-font-size-base"]=e.sizeBase),e.sizeLg!==void 0&&(r["--ndpr-font-size-lg"]=e.sizeLg),e.sizeXl!==void 0&&(r["--ndpr-font-size-xl"]=e.sizeXl),e.lineHeight!==void 0&&(r["--ndpr-line-height"]=e.lineHeight),e.lineHeightTight!==void 0&&(r["--ndpr-line-height-tight"]=e.lineHeightTight);}if(o.transition){let e=o.transition;e.base!==void 0&&(r["--ndpr-transition"]=e.base),e.slow!==void 0&&(r["--ndpr-transition-slow"]=e.slow);}if(o.z){let e=o.z;e.banner!==void 0&&(r["--ndpr-z-banner"]=String(e.banner)),e.modal!==void 0&&(r["--ndpr-z-modal"]=String(e.modal));}return Object.keys(r).length>0?r:void 0},[o]),p=o==null?void 0:o.mode;return jsxRuntime.jsx("div",{"data-ndpr-theme":"","data-theme":p,className:t,style:n,children:s})};var be=({variant:o="short",className:t,hidden:s})=>{if(s)return null;let n=o==="long"?chunkZVOIR4QH_js.b:chunkZVOIR4QH_js.a;return jsxRuntime.jsx("p",{role:"note",className:t!=null?t:"ndpr-legal-notice","data-ndpr-legal-notice":o,children:n})};Object.defineProperty(exports,"NDPRDashboard",{enumerable:true,get:function(){return chunkNUWVPRNI_js.a}});Object.defineProperty(exports,"BreachNotificationManager",{enumerable:true,get:function(){return chunk3I6FYA5C_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunk3I6FYA5C_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunk3I6FYA5C_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkD2UWB5OI_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunk3SIYRGJF_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunk3SIYRGJF_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunk3SIYRGJF_js.b}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunk65J4P5ID_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunkH2FDWK4F_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunkHLFS3NXG_js.a}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkFC3PTJFL_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkEHQVTFYO_js.a}});Object.defineProperty(exports,"useDefaultPrivacyPolicy",{enumerable:true,get:function(){return chunkRC3XFXTJ_js.b}});Object.defineProperty(exports,"usePrivacyPolicy",{enumerable:true,get:function(){return chunkRC3XFXTJ_js.a}});Object.defineProperty(exports,"useAdaptivePolicyWizard",{enumerable:true,get:function(){return chunkQHW4UKGJ_js.a}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunkIRRUYR6M_js.a}});Object.defineProperty(exports,"useCrossBorderTransfer",{enumerable:true,get:function(){return chunkHHK5LHEG_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunkP5MPUC5F_js.a}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunkRDALAH3Y_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunk3YTAOT5O_js.a}});Object.defineProperty(exports,"DEFAULT_POLICY_SECTIONS",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.c}});Object.defineProperty(exports,"DEFAULT_POLICY_VARIABLES",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.d}});Object.defineProperty(exports,"createBusinessPolicyTemplate",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.e}});Object.defineProperty(exports,"generatePolicyText",{enumerable:true,get:function(){return chunkD2ZKDQVL_js.b}});Object.defineProperty(exports,"assessTransferRisk",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.h}});Object.defineProperty(exports,"getTransferMechanismDescription",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.f}});Object.defineProperty(exports,"isNDPCApprovalRequired",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.e}});Object.defineProperty(exports,"validateTransfer",{enumerable:true,get:function(){return chunkYFBDJ4FH_js.g}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkWZYCBW2R_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkWZYCBW2R_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkWZYCBW2R_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkWZYCBW2R_js.a}});Object.defineProperty(exports,"exportROPAToCSV",{enumerable:true,get:function(){return chunk4CVBQC66_js.c}});Object.defineProperty(exports,"generateROPASummary",{enumerable:true,get:function(){return chunk4CVBQC66_js.b}});Object.defineProperty(exports,"identifyComplianceGaps",{enumerable:true,get:function(){return chunk4CVBQC66_js.d}});Object.defineProperty(exports,"validateProcessingRecord",{enumerable:true,get:function(){return chunk4CVBQC66_js.a}});Object.defineProperty(exports,"ConsentStorage",{enumerable:true,get:function(){return chunkSJDDNB6M_js.a}});Object.defineProperty(exports,"ConsentManager",{enumerable:true,get:function(){return chunk42UJFTII_js.a}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkZD2W3YU2_js.a}});Object.defineProperty(exports,"appendAuditEntry",{enumerable:true,get:function(){return chunk3IA3KDII_js.c}});Object.defineProperty(exports,"createAuditEntry",{enumerable:true,get:function(){return chunk3IA3KDII_js.a}});Object.defineProperty(exports,"getAuditLog",{enumerable:true,get:function(){return chunk3IA3KDII_js.b}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkROOUYQD4_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkD3HHDWBR_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkD3HHDWBR_js.c}});Object.defineProperty(exports,"validateConsentOptionsStructured",{enumerable:true,get:function(){return chunkD3HHDWBR_js.d}});Object.defineProperty(exports,"validateConsentStructured",{enumerable:true,get:function(){return chunkD3HHDWBR_js.b}});Object.defineProperty(exports,"DSRDashboard",{enumerable:true,get:function(){return chunkUJGNW6CH_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkUJGNW6CH_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkUZNWXJ2W_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkUXUMYP4L_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkO4ATGGVK_js.a}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunk45D7AMB3_js.b}});Object.defineProperty(exports,"formatDSRRequestStructured",{enumerable:true,get:function(){return chunk45D7AMB3_js.d}});Object.defineProperty(exports,"validateDsrSubmission",{enumerable:true,get:function(){return chunk45D7AMB3_js.a}});Object.defineProperty(exports,"validateDsrSubmissionStructured",{enumerable:true,get:function(){return chunk45D7AMB3_js.c}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunk37VFK5SR_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunk37VFK5SR_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkWCTFED27_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkJLQT3W3E_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkTQZWJGJ2_js.a}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_LONG",{enumerable:true,get:function(){return chunkZVOIR4QH_js.b}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_SHORT",{enumerable:true,get:function(){return chunkZVOIR4QH_js.a}});Object.defineProperty(exports,"legalDisclaimerBlock",{enumerable:true,get:function(){return chunkZVOIR4QH_js.c}});Object.defineProperty(exports,"resolveClass",{enumerable:true,get:function(){return chunkAME4HJR4_js.a}});Object.defineProperty(exports,"NDPRProvider",{enumerable:true,get:function(){return chunkYDKWD6MQ_js.a}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunkYDKWD6MQ_js.b}});exports.LegalNotice=be;exports.NDPRThemeProvider=Ae;
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{a as NDPRDashboard}from'./chunk-ZIZL37BG.mjs';export{b as BreachNotificationManager,a as BreachRiskAssessment,c as RegulatoryReportGenerator}from'./chunk-J7BIJ45O.mjs';export{a as BreachReportForm}from'./chunk-DK7P5JEG.mjs';export{c as PolicyExporter,a as PolicyGenerator,b as PolicyPreview}from'./chunk-3H6FYU3Z.mjs';export{a as LawfulBasisTracker}from'./chunk-
|
|
2
|
+
export{a as NDPRDashboard}from'./chunk-ZIZL37BG.mjs';export{b as BreachNotificationManager,a as BreachRiskAssessment,c as RegulatoryReportGenerator}from'./chunk-J7BIJ45O.mjs';export{a as BreachReportForm}from'./chunk-DK7P5JEG.mjs';export{c as PolicyExporter,a as PolicyGenerator,b as PolicyPreview}from'./chunk-3H6FYU3Z.mjs';export{a as LawfulBasisTracker}from'./chunk-DSIIEUAD.mjs';export{a as CrossBorderTransferManager}from'./chunk-UTXDZDYF.mjs';export{a as ROPAManager}from'./chunk-W6VVLHRQ.mjs';export{a as useComplianceScore}from'./chunk-IQO3SIAG.mjs';export{a as useBreach}from'./chunk-RFXGD5NE.mjs';export{b as useDefaultPrivacyPolicy,a as usePrivacyPolicy}from'./chunk-UVXS7KRV.mjs';export{a as useAdaptivePolicyWizard}from'./chunk-KE2FZH2V.mjs';export{a as useLawfulBasis}from'./chunk-B6BRD5SL.mjs';export{a as useCrossBorderTransfer}from'./chunk-KDAZQO3N.mjs';export{a as useROPA}from'./chunk-JGY65SHX.mjs';import'./chunk-IVSNHT24.mjs';export{a as getComplianceScore}from'./chunk-7RBO42IW.mjs';export{a as calculateBreachSeverity}from'./chunk-WTGKZX7J.mjs';export{c as DEFAULT_POLICY_SECTIONS,d as DEFAULT_POLICY_VARIABLES,e as createBusinessPolicyTemplate,b as generatePolicyText}from'./chunk-NBQQ2GN3.mjs';import'./chunk-BIJSMSUU.mjs';export{h as assessTransferRisk,f as getTransferMechanismDescription,e as isNDPCApprovalRequired,g as validateTransfer}from'./chunk-7BJXI2HI.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-LWIKDDSU.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-XP5PL6K7.mjs';export{a as ConsentStorage}from'./chunk-XOH4WXOZ.mjs';export{a as ConsentManager}from'./chunk-BPMVJOHH.mjs';export{a as ConsentBanner}from'./chunk-I2ZBMR7F.mjs';export{c as appendAuditEntry,a as createAuditEntry,b as getAuditLog}from'./chunk-V7UFP6QU.mjs';export{a as useConsent}from'./chunk-7Z7NURIA.mjs';export{a as useFocusTrap}from'./chunk-YTU4FNM2.mjs';import'./chunk-XC3DLYEG.mjs';export{a as validateConsent,c as validateConsentOptions,d as validateConsentOptionsStructured,b as validateConsentStructured}from'./chunk-NI54X543.mjs';export{a as DSRDashboard,b as DSRTracker}from'./chunk-6H6IXTHA.mjs';export{a as DSRRequestForm}from'./chunk-L3FR4PQE.mjs';export{a as sanitizeInput}from'./chunk-EWVK45Z3.mjs';export{a as useDSR}from'./chunk-6OPGI27L.mjs';export{b as formatDSRRequest,d as formatDSRRequestStructured,a as validateDsrSubmission,c as validateDsrSubmissionStructured}from'./chunk-3APT25XO.mjs';export{a as DPIAReport,b as StepIndicator}from'./chunk-N72RNTGP.mjs';export{a as DPIAQuestionnaire}from'./chunk-ZQHGIOYP.mjs';export{a as useDPIA}from'./chunk-I3V3ITN7.mjs';export{a as assessDPIARisk}from'./chunk-LRRENTT5.mjs';import {b,a}from'./chunk-ITCY2Z66.mjs';export{b as LEGAL_DISCLAIMER_LONG,a as LEGAL_DISCLAIMER_SHORT,c as legalDisclaimerBlock}from'./chunk-ITCY2Z66.mjs';export{a as resolveClass}from'./chunk-SFGW37LE.mjs';export{a as NDPRProvider,b as useNDPRConfig}from'./chunk-FRQFU44F.mjs';import'./chunk-V5TZJJWU.mjs';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';import {useMemo}from'react';import {jsx}from'react/jsx-runtime';var Ae=({theme:o,className:t,children:s})=>{let n=useMemo(()=>{if(!o)return;let r={};if(o.colors){let e=o.colors;e.primary!==void 0&&(r["--ndpr-primary"]=e.primary),e.primaryHover!==void 0&&(r["--ndpr-primary-hover"]=e.primaryHover),e.primaryForeground!==void 0&&(r["--ndpr-primary-foreground"]=e.primaryForeground),e.background!==void 0&&(r["--ndpr-background"]=e.background),e.surface!==void 0&&(r["--ndpr-surface"]=e.surface),e.foreground!==void 0&&(r["--ndpr-foreground"]=e.foreground),e.muted!==void 0&&(r["--ndpr-muted"]=e.muted),e.mutedForeground!==void 0&&(r["--ndpr-muted-foreground"]=e.mutedForeground),e.border!==void 0&&(r["--ndpr-border"]=e.border),e.input!==void 0&&(r["--ndpr-input"]=e.input),e.ring!==void 0&&(r["--ndpr-ring"]=e.ring),e.success!==void 0&&(r["--ndpr-success"]=e.success),e.destructive!==void 0&&(r["--ndpr-destructive"]=e.destructive),e.warning!==void 0&&(r["--ndpr-warning"]=e.warning);}if(o.radius){let e=o.radius;e.sm!==void 0&&(r["--ndpr-radius-sm"]=e.sm),e.base!==void 0&&(r["--ndpr-radius"]=e.base),e.lg!==void 0&&(r["--ndpr-radius-lg"]=e.lg),e.full!==void 0&&(r["--ndpr-radius-full"]=e.full);}if(o.spacing){let e=o.spacing;e[1]!==void 0&&(r["--ndpr-space-1"]=e[1]),e[2]!==void 0&&(r["--ndpr-space-2"]=e[2]),e[3]!==void 0&&(r["--ndpr-space-3"]=e[3]),e[4]!==void 0&&(r["--ndpr-space-4"]=e[4]),e[5]!==void 0&&(r["--ndpr-space-5"]=e[5]),e[6]!==void 0&&(r["--ndpr-space-6"]=e[6]),e[8]!==void 0&&(r["--ndpr-space-8"]=e[8]);}if(o.shadow){let e=o.shadow;e.sm!==void 0&&(r["--ndpr-shadow-sm"]=e.sm),e.base!==void 0&&(r["--ndpr-shadow"]=e.base),e.lg!==void 0&&(r["--ndpr-shadow-lg"]=e.lg);}if(o.font){let e=o.font;e.sans!==void 0&&(r["--ndpr-font-sans"]=e.sans),e.sizeXs!==void 0&&(r["--ndpr-font-size-xs"]=e.sizeXs),e.sizeSm!==void 0&&(r["--ndpr-font-size-sm"]=e.sizeSm),e.sizeBase!==void 0&&(r["--ndpr-font-size-base"]=e.sizeBase),e.sizeLg!==void 0&&(r["--ndpr-font-size-lg"]=e.sizeLg),e.sizeXl!==void 0&&(r["--ndpr-font-size-xl"]=e.sizeXl),e.lineHeight!==void 0&&(r["--ndpr-line-height"]=e.lineHeight),e.lineHeightTight!==void 0&&(r["--ndpr-line-height-tight"]=e.lineHeightTight);}if(o.transition){let e=o.transition;e.base!==void 0&&(r["--ndpr-transition"]=e.base),e.slow!==void 0&&(r["--ndpr-transition-slow"]=e.slow);}if(o.z){let e=o.z;e.banner!==void 0&&(r["--ndpr-z-banner"]=String(e.banner)),e.modal!==void 0&&(r["--ndpr-z-modal"]=String(e.modal));}return Object.keys(r).length>0?r:void 0},[o]),p=o==null?void 0:o.mode;return jsx("div",{"data-ndpr-theme":"","data-theme":p,className:t,style:n,children:s})};var be=({variant:o="short",className:t,hidden:s})=>{if(s)return null;let n=o==="long"?b:a;return jsx("p",{role:"note",className:t!=null?t:"ndpr-legal-notice","data-ndpr-legal-notice":o,children:n})};export{be as LegalNotice,Ae as NDPRThemeProvider};
|
package/dist/lawful-basis.d.mts
CHANGED
|
@@ -112,16 +112,37 @@ declare interface LawfulBasisTrackerProps {
|
|
|
112
112
|
activities: ProcessingActivity[];
|
|
113
113
|
/**
|
|
114
114
|
* Callback when a new activity is created
|
|
115
|
+
* @deprecated Renamed to `onAdd` in 4.1. The legacy name still fires
|
|
116
|
+
* for backward compatibility and will be removed in 5.0.
|
|
115
117
|
*/
|
|
116
118
|
onAddActivity?: (activity: Omit<ProcessingActivity, 'id' | 'createdAt' | 'updatedAt'>) => void;
|
|
117
119
|
/**
|
|
118
120
|
* Callback when an activity is updated
|
|
121
|
+
* @deprecated Renamed to `onUpdate` in 4.1. The legacy name still fires
|
|
122
|
+
* for backward compatibility and will be removed in 5.0.
|
|
119
123
|
*/
|
|
120
124
|
onUpdateActivity?: (id: string, updates: Partial<ProcessingActivity>) => void;
|
|
121
125
|
/**
|
|
122
126
|
* Callback when an activity is archived
|
|
127
|
+
* @deprecated Renamed to `onArchive` in 4.1. The legacy name still fires
|
|
128
|
+
* for backward compatibility and will be removed in 5.0.
|
|
123
129
|
*/
|
|
124
130
|
onArchiveActivity?: (id: string) => void;
|
|
131
|
+
/**
|
|
132
|
+
* Callback when a new activity is created (uniform 4.1+ name).
|
|
133
|
+
* Takes precedence over `onAddActivity` when both are provided.
|
|
134
|
+
*/
|
|
135
|
+
onAdd?: (activity: Omit<ProcessingActivity, 'id' | 'createdAt' | 'updatedAt'>) => void;
|
|
136
|
+
/**
|
|
137
|
+
* Callback when an activity is updated (uniform 4.1+ name).
|
|
138
|
+
* Takes precedence over `onUpdateActivity` when both are provided.
|
|
139
|
+
*/
|
|
140
|
+
onUpdate?: (id: string, updates: Partial<ProcessingActivity>) => void;
|
|
141
|
+
/**
|
|
142
|
+
* Callback when an activity is archived (uniform 4.1+ name).
|
|
143
|
+
* Takes precedence over `onArchiveActivity` when both are provided.
|
|
144
|
+
*/
|
|
145
|
+
onArchive?: (id: string) => void;
|
|
125
146
|
/**
|
|
126
147
|
* Title displayed on the tracker
|
|
127
148
|
* @default "Lawful Basis Tracker"
|
package/dist/lawful-basis.d.ts
CHANGED
|
@@ -112,16 +112,37 @@ declare interface LawfulBasisTrackerProps {
|
|
|
112
112
|
activities: ProcessingActivity[];
|
|
113
113
|
/**
|
|
114
114
|
* Callback when a new activity is created
|
|
115
|
+
* @deprecated Renamed to `onAdd` in 4.1. The legacy name still fires
|
|
116
|
+
* for backward compatibility and will be removed in 5.0.
|
|
115
117
|
*/
|
|
116
118
|
onAddActivity?: (activity: Omit<ProcessingActivity, 'id' | 'createdAt' | 'updatedAt'>) => void;
|
|
117
119
|
/**
|
|
118
120
|
* Callback when an activity is updated
|
|
121
|
+
* @deprecated Renamed to `onUpdate` in 4.1. The legacy name still fires
|
|
122
|
+
* for backward compatibility and will be removed in 5.0.
|
|
119
123
|
*/
|
|
120
124
|
onUpdateActivity?: (id: string, updates: Partial<ProcessingActivity>) => void;
|
|
121
125
|
/**
|
|
122
126
|
* Callback when an activity is archived
|
|
127
|
+
* @deprecated Renamed to `onArchive` in 4.1. The legacy name still fires
|
|
128
|
+
* for backward compatibility and will be removed in 5.0.
|
|
123
129
|
*/
|
|
124
130
|
onArchiveActivity?: (id: string) => void;
|
|
131
|
+
/**
|
|
132
|
+
* Callback when a new activity is created (uniform 4.1+ name).
|
|
133
|
+
* Takes precedence over `onAddActivity` when both are provided.
|
|
134
|
+
*/
|
|
135
|
+
onAdd?: (activity: Omit<ProcessingActivity, 'id' | 'createdAt' | 'updatedAt'>) => void;
|
|
136
|
+
/**
|
|
137
|
+
* Callback when an activity is updated (uniform 4.1+ name).
|
|
138
|
+
* Takes precedence over `onUpdateActivity` when both are provided.
|
|
139
|
+
*/
|
|
140
|
+
onUpdate?: (id: string, updates: Partial<ProcessingActivity>) => void;
|
|
141
|
+
/**
|
|
142
|
+
* Callback when an activity is archived (uniform 4.1+ name).
|
|
143
|
+
* Takes precedence over `onArchiveActivity` when both are provided.
|
|
144
|
+
*/
|
|
145
|
+
onArchive?: (id: string) => void;
|
|
125
146
|
/**
|
|
126
147
|
* Title displayed on the tracker
|
|
127
148
|
* @default "Lawful Basis Tracker"
|
package/dist/lawful-basis.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var
|
|
2
|
+
'use strict';var chunk65J4P5ID_js=require('./chunk-65J4P5ID.js'),chunkIRRUYR6M_js=require('./chunk-IRRUYR6M.js'),chunkWZYCBW2R_js=require('./chunk-WZYCBW2R.js');require('./chunk-AME4HJR4.js'),require('./chunk-YDKWD6MQ.js'),require('./chunk-TTMGFC6C.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var o=react.createContext(null);function x(){let s=react.useContext(o);if(!s)throw new Error("LawfulBasis compound components must be wrapped in <LawfulBasis.Provider>. Example: <LawfulBasis.Provider><LawfulBasis.Tracker /></LawfulBasis.Provider>");return s}var r=({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l,children:n})=>{let m=chunkIRRUYR6M_js.a({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l});return jsxRuntime.jsx(o.Provider,{value:m,children:n})};var y={Provider:r,Tracker:chunk65J4P5ID_js.a};Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunk65J4P5ID_js.a}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunkIRRUYR6M_js.a}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkWZYCBW2R_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkWZYCBW2R_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkWZYCBW2R_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkWZYCBW2R_js.a}});exports.LawfulBasis=y;exports.LawfulBasisProvider=r;exports.useLawfulBasisCompound=x;
|
package/dist/lawful-basis.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {a}from'./chunk-
|
|
2
|
+
import {a}from'./chunk-DSIIEUAD.mjs';export{a as LawfulBasisTracker}from'./chunk-DSIIEUAD.mjs';import {a as a$1}from'./chunk-B6BRD5SL.mjs';export{a as useLawfulBasis}from'./chunk-B6BRD5SL.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-LWIKDDSU.mjs';import'./chunk-SFGW37LE.mjs';import'./chunk-FRQFU44F.mjs';import'./chunk-V5TZJJWU.mjs';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';import {createContext,useContext}from'react';import {jsx}from'react/jsx-runtime';var o=createContext(null);function x(){let s=useContext(o);if(!s)throw new Error("LawfulBasis compound components must be wrapped in <LawfulBasis.Provider>. Example: <LawfulBasis.Provider><LawfulBasis.Tracker /></LawfulBasis.Provider>");return s}var r=({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l,children:n})=>{let m=a$1({adapter:s,storageKey:t,useLocalStorage:i,initialActivities:u,onAdd:f,onUpdate:p,onRemove:l});return jsx(o.Provider,{value:m,children:n})};var y={Provider:r,Tracker:a};export{y as LawfulBasis,r as LawfulBasisProvider,x as useLawfulBasisCompound};
|
package/dist/presets.d.mts
CHANGED
|
@@ -444,6 +444,87 @@ declare interface DPIAQuestionnaireClassNames {
|
|
|
444
444
|
progressBar?: string;
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
+
/**
|
|
448
|
+
* Represents the result of a completed DPIA
|
|
449
|
+
*/
|
|
450
|
+
declare interface DPIAResult {
|
|
451
|
+
/** Unique identifier for the DPIA */
|
|
452
|
+
id: string;
|
|
453
|
+
/** Title of the DPIA */
|
|
454
|
+
title: string;
|
|
455
|
+
/** Description of the processing activity being assessed */
|
|
456
|
+
processingDescription: string;
|
|
457
|
+
/** Timestamp when the DPIA was started */
|
|
458
|
+
startedAt: number;
|
|
459
|
+
/** Timestamp when the DPIA was completed */
|
|
460
|
+
completedAt?: number;
|
|
461
|
+
/** Person responsible for conducting the DPIA */
|
|
462
|
+
assessor: {
|
|
463
|
+
name: string;
|
|
464
|
+
role: string;
|
|
465
|
+
email: string;
|
|
466
|
+
};
|
|
467
|
+
/** Answers to all questions in the DPIA */
|
|
468
|
+
answers: Record<string, string | number | boolean | string[]>;
|
|
469
|
+
/** Risks identified in the DPIA */
|
|
470
|
+
risks: DPIARisk[];
|
|
471
|
+
/** Overall risk level of the processing activity */
|
|
472
|
+
overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
473
|
+
/** Whether the DPIA concluded that the processing can proceed */
|
|
474
|
+
canProceed: boolean;
|
|
475
|
+
/** Reasons why the processing can or cannot proceed */
|
|
476
|
+
conclusion: string;
|
|
477
|
+
/** Recommendations for the processing activity */
|
|
478
|
+
recommendations?: string[];
|
|
479
|
+
/** Next review date for the DPIA */
|
|
480
|
+
reviewDate?: number;
|
|
481
|
+
/** Version of the DPIA questionnaire used */
|
|
482
|
+
version: string;
|
|
483
|
+
/**
|
|
484
|
+
* Whether prior consultation with NDPC is required
|
|
485
|
+
* Per NDPA Section 28(2), consultation is required when DPIA indicates high residual risk
|
|
486
|
+
*/
|
|
487
|
+
ndpcConsultationRequired?: boolean;
|
|
488
|
+
/** Date when NDPC consultation was initiated */
|
|
489
|
+
ndpcConsultationDate?: number;
|
|
490
|
+
/** Reference number from NDPC consultation */
|
|
491
|
+
ndpcConsultationReference?: string;
|
|
492
|
+
/**
|
|
493
|
+
* The lawful basis for the processing activity being assessed
|
|
494
|
+
*/
|
|
495
|
+
lawfulBasis?: string;
|
|
496
|
+
/**
|
|
497
|
+
* Whether this DPIA involves cross-border data transfers
|
|
498
|
+
*/
|
|
499
|
+
involvesCrossBorderTransfer?: boolean;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
/**
|
|
503
|
+
* Represents a risk identified in the DPIA
|
|
504
|
+
*/
|
|
505
|
+
declare interface DPIARisk {
|
|
506
|
+
/** Unique identifier for the risk */
|
|
507
|
+
id: string;
|
|
508
|
+
/** Description of the risk */
|
|
509
|
+
description: string;
|
|
510
|
+
/** Likelihood of the risk occurring (1-5) */
|
|
511
|
+
likelihood: number;
|
|
512
|
+
/** Impact if the risk occurs (1-5) */
|
|
513
|
+
impact: number;
|
|
514
|
+
/** Overall risk score (likelihood * impact) */
|
|
515
|
+
score: number;
|
|
516
|
+
/** Risk level based on the score */
|
|
517
|
+
level: 'low' | 'medium' | 'high' | 'critical';
|
|
518
|
+
/** Measures to mitigate the risk */
|
|
519
|
+
mitigationMeasures?: string[];
|
|
520
|
+
/** Whether the risk has been mitigated */
|
|
521
|
+
mitigated: boolean;
|
|
522
|
+
/** Residual risk score after mitigation */
|
|
523
|
+
residualScore?: number;
|
|
524
|
+
/** Questions that identified this risk */
|
|
525
|
+
relatedQuestionIds: string[];
|
|
526
|
+
}
|
|
527
|
+
|
|
447
528
|
/**
|
|
448
529
|
* Represents a section in the DPIA questionnaire
|
|
449
530
|
*/
|
|
@@ -765,7 +846,19 @@ export declare interface NDPRDPIAProps {
|
|
|
765
846
|
adapter?: StorageAdapter<DPIAAnswerMap>;
|
|
766
847
|
classNames?: DPIAQuestionnaireClassNames;
|
|
767
848
|
unstyled?: boolean;
|
|
849
|
+
/**
|
|
850
|
+
* Fired when the questionnaire is submitted, with the raw answer map.
|
|
851
|
+
* @deprecated Use `onResult` (4.1+) to receive a full `DPIAResult`
|
|
852
|
+
* containing the computed risk score. `onComplete` will be removed in
|
|
853
|
+
* 5.0.
|
|
854
|
+
*/
|
|
768
855
|
onComplete?: (answers: DPIAAnswerMap) => void;
|
|
856
|
+
/**
|
|
857
|
+
* Fired when the questionnaire is submitted, with the full `DPIAResult`
|
|
858
|
+
* including risks, overall risk level, conclusion, and recommendations.
|
|
859
|
+
* Replaces `onComplete` from 4.1+.
|
|
860
|
+
*/
|
|
861
|
+
onResult?: (result: DPIAResult) => void;
|
|
769
862
|
/**
|
|
770
863
|
* UX copy overrides — see {@link NDPRDPIACopy}.
|
|
771
864
|
*/
|
package/dist/presets.d.ts
CHANGED
|
@@ -444,6 +444,87 @@ declare interface DPIAQuestionnaireClassNames {
|
|
|
444
444
|
progressBar?: string;
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
+
/**
|
|
448
|
+
* Represents the result of a completed DPIA
|
|
449
|
+
*/
|
|
450
|
+
declare interface DPIAResult {
|
|
451
|
+
/** Unique identifier for the DPIA */
|
|
452
|
+
id: string;
|
|
453
|
+
/** Title of the DPIA */
|
|
454
|
+
title: string;
|
|
455
|
+
/** Description of the processing activity being assessed */
|
|
456
|
+
processingDescription: string;
|
|
457
|
+
/** Timestamp when the DPIA was started */
|
|
458
|
+
startedAt: number;
|
|
459
|
+
/** Timestamp when the DPIA was completed */
|
|
460
|
+
completedAt?: number;
|
|
461
|
+
/** Person responsible for conducting the DPIA */
|
|
462
|
+
assessor: {
|
|
463
|
+
name: string;
|
|
464
|
+
role: string;
|
|
465
|
+
email: string;
|
|
466
|
+
};
|
|
467
|
+
/** Answers to all questions in the DPIA */
|
|
468
|
+
answers: Record<string, string | number | boolean | string[]>;
|
|
469
|
+
/** Risks identified in the DPIA */
|
|
470
|
+
risks: DPIARisk[];
|
|
471
|
+
/** Overall risk level of the processing activity */
|
|
472
|
+
overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
473
|
+
/** Whether the DPIA concluded that the processing can proceed */
|
|
474
|
+
canProceed: boolean;
|
|
475
|
+
/** Reasons why the processing can or cannot proceed */
|
|
476
|
+
conclusion: string;
|
|
477
|
+
/** Recommendations for the processing activity */
|
|
478
|
+
recommendations?: string[];
|
|
479
|
+
/** Next review date for the DPIA */
|
|
480
|
+
reviewDate?: number;
|
|
481
|
+
/** Version of the DPIA questionnaire used */
|
|
482
|
+
version: string;
|
|
483
|
+
/**
|
|
484
|
+
* Whether prior consultation with NDPC is required
|
|
485
|
+
* Per NDPA Section 28(2), consultation is required when DPIA indicates high residual risk
|
|
486
|
+
*/
|
|
487
|
+
ndpcConsultationRequired?: boolean;
|
|
488
|
+
/** Date when NDPC consultation was initiated */
|
|
489
|
+
ndpcConsultationDate?: number;
|
|
490
|
+
/** Reference number from NDPC consultation */
|
|
491
|
+
ndpcConsultationReference?: string;
|
|
492
|
+
/**
|
|
493
|
+
* The lawful basis for the processing activity being assessed
|
|
494
|
+
*/
|
|
495
|
+
lawfulBasis?: string;
|
|
496
|
+
/**
|
|
497
|
+
* Whether this DPIA involves cross-border data transfers
|
|
498
|
+
*/
|
|
499
|
+
involvesCrossBorderTransfer?: boolean;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
/**
|
|
503
|
+
* Represents a risk identified in the DPIA
|
|
504
|
+
*/
|
|
505
|
+
declare interface DPIARisk {
|
|
506
|
+
/** Unique identifier for the risk */
|
|
507
|
+
id: string;
|
|
508
|
+
/** Description of the risk */
|
|
509
|
+
description: string;
|
|
510
|
+
/** Likelihood of the risk occurring (1-5) */
|
|
511
|
+
likelihood: number;
|
|
512
|
+
/** Impact if the risk occurs (1-5) */
|
|
513
|
+
impact: number;
|
|
514
|
+
/** Overall risk score (likelihood * impact) */
|
|
515
|
+
score: number;
|
|
516
|
+
/** Risk level based on the score */
|
|
517
|
+
level: 'low' | 'medium' | 'high' | 'critical';
|
|
518
|
+
/** Measures to mitigate the risk */
|
|
519
|
+
mitigationMeasures?: string[];
|
|
520
|
+
/** Whether the risk has been mitigated */
|
|
521
|
+
mitigated: boolean;
|
|
522
|
+
/** Residual risk score after mitigation */
|
|
523
|
+
residualScore?: number;
|
|
524
|
+
/** Questions that identified this risk */
|
|
525
|
+
relatedQuestionIds: string[];
|
|
526
|
+
}
|
|
527
|
+
|
|
447
528
|
/**
|
|
448
529
|
* Represents a section in the DPIA questionnaire
|
|
449
530
|
*/
|
|
@@ -765,7 +846,19 @@ export declare interface NDPRDPIAProps {
|
|
|
765
846
|
adapter?: StorageAdapter<DPIAAnswerMap>;
|
|
766
847
|
classNames?: DPIAQuestionnaireClassNames;
|
|
767
848
|
unstyled?: boolean;
|
|
849
|
+
/**
|
|
850
|
+
* Fired when the questionnaire is submitted, with the raw answer map.
|
|
851
|
+
* @deprecated Use `onResult` (4.1+) to receive a full `DPIAResult`
|
|
852
|
+
* containing the computed risk score. `onComplete` will be removed in
|
|
853
|
+
* 5.0.
|
|
854
|
+
*/
|
|
768
855
|
onComplete?: (answers: DPIAAnswerMap) => void;
|
|
856
|
+
/**
|
|
857
|
+
* Fired when the questionnaire is submitted, with the full `DPIAResult`
|
|
858
|
+
* including risks, overall risk level, conclusion, and recommendations.
|
|
859
|
+
* Replaces `onComplete` from 4.1+.
|
|
860
|
+
*/
|
|
861
|
+
onResult?: (result: DPIAResult) => void;
|
|
769
862
|
/**
|
|
770
863
|
* UX copy overrides — see {@link NDPRDPIACopy}.
|
|
771
864
|
*/
|
package/dist/presets.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var chunk63WM5PHZ_js=require('./chunk-63WM5PHZ.js'),chunkKH3EQJQE_js=require('./chunk-KH3EQJQE.js'),chunk3E4IH7CE_js=require('./chunk-3E4IH7CE.js');require('./chunk-F5MGMNQF.js');var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkD2UWB5OI_js=require('./chunk-D2UWB5OI.js'),chunk7FXNGGMO_js=require('./chunk-7FXNGGMO.js'),chunkXYGGUGTO_js=require('./chunk-XYGGUGTO.js'),chunkBL5W472Q_js=require('./chunk-BL5W472Q.js');require('./chunk-NUOHT3LO.js'),require('./chunk-QHW4UKGJ.js'),require('./chunk-JS7SYL5P.js');var chunkRDALAH3Y_js=require('./chunk-RDALAH3Y.js');require('./chunk-6LJHLE6G.js'),require('./chunk-YFBDJ4FH.js'),require('./chunk-WZYCBW2R.js'),require('./chunk-4CVBQC66.js'),require('./chunk-ZD2W3YU2.js'),require('./chunk-L2VO3MEJ.js'),require('./chunk-UZNWXJ2W.js'),require('./chunk-UXUMYP4L.js');var chunkWCTFED27_js=require('./chunk-WCTFED27.js');require('./chunk-ZVOIR4QH.js'),require('./chunk-AME4HJR4.js'),require('./chunk-YDKWD6MQ.js'),require('./chunk-TTMGFC6C.js'),require('./chunk-VWED6UTN.js');var chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js'),jsxRuntime=require('react/jsx-runtime'),react=require('react');var W=[{id:"unauthorized_access",name:"Unauthorized Access",description:"Unauthorized access to personal data",defaultSeverity:"high"},{id:"data_loss",name:"Data Loss",description:"Loss of personal data",defaultSeverity:"high"},{id:"data_theft",name:"Data Theft",description:"Theft of personal data",defaultSeverity:"critical"},{id:"system_breach",name:"System Breach",description:"Breach of system containing personal data",defaultSeverity:"critical"},{id:"accidental_disclosure",name:"Accidental Disclosure",description:"Unintended disclosure of personal data",defaultSeverity:"medium"}],Y=({categories:c=W,adapter:s,classNames:R,unstyled:h,onSubmit:a=()=>{},copy:r,description:l,submitTo:o,submitOptions:i,onSubmitError:m,onSubmitSuccess:v})=>{var t;let f=n=>chunkRFPLZDIO_js.d(null,null,function*(){var p,N;if(o){let w=typeof(i==null?void 0:i.headers)=="function"?i.headers():(p=i==null?void 0:i.headers)!=null?p:{};try{let A=yield fetch(o,{method:"POST",headers:chunkRFPLZDIO_js.a({"Content-Type":"application/json"},w),credentials:(N=i==null?void 0:i.credentials)!=null?N:"same-origin",body:JSON.stringify(n)});if(!A.ok)m==null||m({response:A});else if(v){let P;try{let D=yield A.clone().text();D&&(P=JSON.parse(D));}catch(D){}v({response:A,data:n,body:P});}}catch(A){m==null||m({error:A});}}else s&&s.save(n);a(n);}),e=(t=r==null?void 0:r.description)!=null?t:l;return jsxRuntime.jsx(chunkD2UWB5OI_js.a,{categories:c,onSubmit:f,classNames:R,unstyled:h,title:r==null?void 0:r.title,description:e,submitButtonText:r==null?void 0:r.submitButton})};var J=[{id:"project_overview",title:"Project Overview",description:"Provide basic details about the processing activity being assessed.",order:0,questions:[{id:"project_name",text:"What is the name of the project or processing activity?",type:"text",required:true},{id:"project_description",text:"Describe the nature and purpose of the processing.",guidance:"Include what personal data will be collected, why it is needed, and how it will be used.",type:"textarea",required:true},{id:"data_controller",text:"Who is the data controller responsible for this processing?",type:"text",required:true}]},{id:"necessity",title:"Necessity & Proportionality",description:"Assess whether the processing is necessary and proportionate to the purposes.",order:1,questions:[{id:"lawful_basis",text:"What is the lawful basis for processing under the NDPA 2023?",type:"select",required:true,options:[{value:"consent",label:"Consent (Section 25(1)(a))"},{value:"contract",label:"Contract (Section 25(1)(b))"},{value:"legal_obligation",label:"Legal Obligation (Section 25(1)(c))"},{value:"vital_interests",label:"Vital Interests (Section 25(1)(d))"},{value:"public_task",label:"Public Task (Section 25(1)(e))"},{value:"legitimate_interests",label:"Legitimate Interests (Section 25(1)(f))"}]},{id:"data_minimisation",text:"Is the processing limited to what is necessary for the specified purpose?",type:"radio",required:true,options:[{value:"yes",label:"Yes \u2014 only minimum data is collected",riskLevel:"low"},{value:"partial",label:"Partially \u2014 some additional data may be collected",riskLevel:"medium"},{value:"no",label:"No \u2014 more data is collected than strictly necessary",riskLevel:"high"}]}]},{id:"risk_identification",title:"Risk Identification",description:"Identify and assess risks to data subjects arising from the processing.",order:2,questions:[{id:"sensitive_data",text:"Does the processing involve sensitive personal data (e.g., health, biometric, financial, children's data)?",type:"radio",required:true,options:[{value:"no",label:"No sensitive data",riskLevel:"low"},{value:"yes_protected",label:"Yes, with appropriate safeguards",riskLevel:"medium"},{value:"yes_unprotected",label:"Yes, without adequate safeguards",riskLevel:"high"}]},{id:"scale",text:"What is the scale of processing?",type:"radio",required:true,options:[{value:"small",label:"Small scale (fewer than 1,000 individuals)",riskLevel:"low"},{value:"medium",label:"Medium scale (1,000 to 100,000 individuals)",riskLevel:"medium"},{value:"large",label:"Large scale (over 100,000 individuals)",riskLevel:"high"}]},{id:"cross_border",text:"Will data be transferred outside Nigeria?",type:"radio",required:true,options:[{value:"no",label:"No international transfers",riskLevel:"low"},{value:"adequate",label:"Yes, to countries with adequate protection",riskLevel:"medium"},{value:"inadequate",label:"Yes, to countries without adequate protection",riskLevel:"high"}]}]},{id:"mitigation",title:"Risk Mitigation & Measures",description:"Document the measures taken to address identified risks.",order:3,questions:[{id:"security_measures",text:"What technical and organisational security measures are in place?",guidance:"Include encryption, access controls, pseudonymisation, staff training, etc.",type:"textarea",required:true},{id:"retention_period",text:"What is the data retention period?",guidance:"Specify how long data will be kept and the criteria used to determine this.",type:"text",required:true},{id:"dpo_consulted",text:"Has the Data Protection Officer (DPO) been consulted on this assessment?",type:"radio",required:false,options:[{value:"yes",label:"Yes",riskLevel:"low"},{value:"no",label:"No",riskLevel:"medium"},{value:"na",label:"Not applicable \u2014 no DPO appointed",riskLevel:"medium"}]}]}],Q=({sections:c=J,adapter:s,classNames:R,unstyled:h,onComplete:a=()=>{},copy:r,submitTo:l,submitOptions:o,onSubmitError:i,onSubmitSuccess:m})=>{let[v,f]=react.useState({}),[e,t]=react.useState(0),n=(P,D)=>{f(C=>chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},C),{[P]:D}));},p=P=>chunkRFPLZDIO_js.d(null,null,function*(){var D,C;if(l){let F=typeof(o==null?void 0:o.headers)=="function"?o.headers():(D=o==null?void 0:o.headers)!=null?D:{};try{let y=yield fetch(l,{method:"POST",headers:chunkRFPLZDIO_js.a({"Content-Type":"application/json"},F),credentials:(C=o==null?void 0:o.credentials)!=null?C:"same-origin",body:JSON.stringify(P)});if(!y.ok)i==null||i({response:y});else if(m){let x;try{let B=yield y.clone().text();B&&(x=JSON.parse(B));}catch(B){}m({response:y,data:P,body:x});}}catch(y){i==null||i({error:y});}}else s&&s.save(P);a(P);}),N=()=>{e<c.length-1?t(P=>P+1):p(v);},w=()=>{e>0&&t(P=>P-1);},A=Math.round((e+1)/c.length*100);return jsxRuntime.jsx(chunkWCTFED27_js.a,{sections:c,answers:v,onAnswerChange:n,currentSectionIndex:e,onNextSection:N,onPrevSection:w,progress:A,classNames:R,unstyled:h,submitButtonText:r==null?void 0:r.submitButton,nextButtonText:r==null?void 0:r.nextButton,prevButtonText:r==null?void 0:r.prevButton})};var H=({initialData:c,adapter:s,classNames:R,unstyled:h,copy:a})=>{let r=c!=null?c:[],[l,o]=react.useState(()=>{if(s){let e=s.load();if(e&&!(e instanceof Promise))return e}return r});react.useEffect(()=>{if(!s)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let t=yield s.load();!e&&t&&o(t);}catch(t){}}),()=>{e=true;}},[s]);let i=e=>{s&&s.save(e);};return jsxRuntime.jsx(chunk7FXNGGMO_js.a,{activities:l,onAddActivity:e=>{let t=Date.now(),n=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{id:`activity-${t}`,createdAt:t,updatedAt:t}),p=[...l,n];o(p),i(p);},onUpdateActivity:(e,t)=>{let n=l.map(p=>p.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},p),t),{updatedAt:Date.now()}):p);o(n),i(n);},onArchiveActivity:e=>{let t=l.map(n=>n.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},n),{status:"inactive",updatedAt:Date.now()}):n);o(t),i(t);},classNames:R,unstyled:h,title:a==null?void 0:a.title,description:a==null?void 0:a.description})};var E=({initialData:c,adapter:s,classNames:R,unstyled:h,copy:a})=>{let r=c!=null?c:[],[l,o]=react.useState(()=>{if(s){let e=s.load();if(e&&!(e instanceof Promise))return e}return r});react.useEffect(()=>{if(!s)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let t=yield s.load();!e&&t&&o(t);}catch(t){}}),()=>{e=true;}},[s]);let i=e=>{s&&s.save(e);};return jsxRuntime.jsx(chunkXYGGUGTO_js.a,{transfers:l,onAddTransfer:e=>{let t=Date.now(),n=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{id:`transfer-${t}`,createdAt:t,updatedAt:t}),p=[...l,n];o(p),i(p);},onUpdateTransfer:(e,t)=>{let n=l.map(p=>p.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},p),t),{updatedAt:Date.now()}):p);o(n),i(n);},onRemoveTransfer:e=>{let t=l.filter(n=>n.id!==e);o(t),i(t);},classNames:R,unstyled:h,title:a==null?void 0:a.title,description:a==null?void 0:a.description})};var se={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},oe=({initialData:c,adapter:s,classNames:R,unstyled:h,copy:a})=>{let[r,l]=react.useState(c!=null?c:se);react.useEffect(()=>{if(!s)return;let f=false;return chunkRFPLZDIO_js.d(null,null,function*(){let t=yield s.load();!f&&t&&l(t);}),()=>{f=true;}},[s]);let o=f=>{s&&s.save(f);};return jsxRuntime.jsx(chunkBL5W472Q_js.a,{ropa:r,onAddRecord:f=>{let e=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},r),{records:[...r.records,f],lastUpdated:Date.now()});l(e),o(e);},onUpdateRecord:(f,e)=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},r),{records:r.records.map(n=>n.id===f?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},n),e),{updatedAt:Date.now()}):n),lastUpdated:Date.now()});l(t),o(t);},onArchiveRecord:f=>{let e=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},r),{records:r.records.map(t=>t.id===f?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},t),{status:"archived",updatedAt:Date.now()}):t),lastUpdated:Date.now()});l(e),o(e);},classNames:R,unstyled:h,title:a==null?void 0:a.title,description:a==null?void 0:a.description})};var ie=R=>{var h=R,{input:c}=h,s=chunkRFPLZDIO_js.c(h,["input"]);let a=chunkRDALAH3Y_js.a(c);return jsxRuntime.jsx(chunkNUWVPRNI_js.a,chunkRFPLZDIO_js.a({report:a},s))};Object.defineProperty(exports,"NDPRConsent",{enumerable:true,get:function(){return chunk63WM5PHZ_js.a}});Object.defineProperty(exports,"NDPRSubjectRights",{enumerable:true,get:function(){return chunkKH3EQJQE_js.a}});Object.defineProperty(exports,"NDPRPrivacyPolicy",{enumerable:true,get:function(){return chunk3E4IH7CE_js.a}});exports.NDPRBreachReport=Y;exports.NDPRComplianceDashboard=ie;exports.NDPRCrossBorder=E;exports.NDPRDPIA=Q;exports.NDPRLawfulBasis=H;exports.NDPRROPA=oe;
|
|
2
|
+
'use strict';var chunk63WM5PHZ_js=require('./chunk-63WM5PHZ.js'),chunkKH3EQJQE_js=require('./chunk-KH3EQJQE.js'),chunk3E4IH7CE_js=require('./chunk-3E4IH7CE.js');require('./chunk-F5MGMNQF.js');var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkD2UWB5OI_js=require('./chunk-D2UWB5OI.js'),chunk65J4P5ID_js=require('./chunk-65J4P5ID.js'),chunkH2FDWK4F_js=require('./chunk-H2FDWK4F.js'),chunkHLFS3NXG_js=require('./chunk-HLFS3NXG.js');require('./chunk-NUOHT3LO.js'),require('./chunk-QHW4UKGJ.js'),require('./chunk-JS7SYL5P.js');var chunkRDALAH3Y_js=require('./chunk-RDALAH3Y.js');require('./chunk-6LJHLE6G.js'),require('./chunk-YFBDJ4FH.js'),require('./chunk-WZYCBW2R.js'),require('./chunk-4CVBQC66.js'),require('./chunk-ZD2W3YU2.js'),require('./chunk-L2VO3MEJ.js'),require('./chunk-UZNWXJ2W.js'),require('./chunk-UXUMYP4L.js');var chunkWCTFED27_js=require('./chunk-WCTFED27.js'),chunkTQZWJGJ2_js=require('./chunk-TQZWJGJ2.js');require('./chunk-ZVOIR4QH.js'),require('./chunk-AME4HJR4.js'),require('./chunk-YDKWD6MQ.js'),require('./chunk-TTMGFC6C.js'),require('./chunk-VWED6UTN.js');var chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js'),jsxRuntime=require('react/jsx-runtime'),react=require('react');var $=[{id:"unauthorized_access",name:"Unauthorized Access",description:"Unauthorized access to personal data",defaultSeverity:"high"},{id:"data_loss",name:"Data Loss",description:"Loss of personal data",defaultSeverity:"high"},{id:"data_theft",name:"Data Theft",description:"Theft of personal data",defaultSeverity:"critical"},{id:"system_breach",name:"System Breach",description:"Breach of system containing personal data",defaultSeverity:"critical"},{id:"accidental_disclosure",name:"Accidental Disclosure",description:"Unintended disclosure of personal data",defaultSeverity:"medium"}],j=({categories:u=$,adapter:a,classNames:P,unstyled:h,onSubmit:r=()=>{},copy:o,description:n,submitTo:i,submitOptions:s,onSubmitError:l,onSubmitSuccess:R})=>{var e;let c=d=>chunkRFPLZDIO_js.d(null,null,function*(){var f,N;if(i){let x=typeof(s==null?void 0:s.headers)=="function"?s.headers():(f=s==null?void 0:s.headers)!=null?f:{};try{let A=yield fetch(i,{method:"POST",headers:chunkRFPLZDIO_js.a({"Content-Type":"application/json"},x),credentials:(N=s==null?void 0:s.credentials)!=null?N:"same-origin",body:JSON.stringify(d)});if(!A.ok)l==null||l({response:A});else if(R){let w;try{let y=yield A.clone().text();y&&(w=JSON.parse(y));}catch(y){}R({response:A,data:d,body:w});}}catch(A){l==null||l({error:A});}}else a&&a.save(d);r(d);}),t=(e=o==null?void 0:o.description)!=null?e:n;return jsxRuntime.jsx(chunkD2UWB5OI_js.a,{categories:u,onSubmit:c,classNames:P,unstyled:h,title:o==null?void 0:o.title,description:t,submitButtonText:o==null?void 0:o.submitButton})};var H=[{id:"project_overview",title:"Project Overview",description:"Provide basic details about the processing activity being assessed.",order:0,questions:[{id:"project_name",text:"What is the name of the project or processing activity?",type:"text",required:true},{id:"project_description",text:"Describe the nature and purpose of the processing.",guidance:"Include what personal data will be collected, why it is needed, and how it will be used.",type:"textarea",required:true},{id:"data_controller",text:"Who is the data controller responsible for this processing?",type:"text",required:true}]},{id:"necessity",title:"Necessity & Proportionality",description:"Assess whether the processing is necessary and proportionate to the purposes.",order:1,questions:[{id:"lawful_basis",text:"What is the lawful basis for processing under the NDPA 2023?",type:"select",required:true,options:[{value:"consent",label:"Consent (Section 25(1)(a))"},{value:"contract",label:"Contract (Section 25(1)(b))"},{value:"legal_obligation",label:"Legal Obligation (Section 25(1)(c))"},{value:"vital_interests",label:"Vital Interests (Section 25(1)(d))"},{value:"public_task",label:"Public Task (Section 25(1)(e))"},{value:"legitimate_interests",label:"Legitimate Interests (Section 25(1)(f))"}]},{id:"data_minimisation",text:"Is the processing limited to what is necessary for the specified purpose?",type:"radio",required:true,options:[{value:"yes",label:"Yes \u2014 only minimum data is collected",riskLevel:"low"},{value:"partial",label:"Partially \u2014 some additional data may be collected",riskLevel:"medium"},{value:"no",label:"No \u2014 more data is collected than strictly necessary",riskLevel:"high"}]}]},{id:"risk_identification",title:"Risk Identification",description:"Identify and assess risks to data subjects arising from the processing.",order:2,questions:[{id:"sensitive_data",text:"Does the processing involve sensitive personal data (e.g., health, biometric, financial, children's data)?",type:"radio",required:true,options:[{value:"no",label:"No sensitive data",riskLevel:"low"},{value:"yes_protected",label:"Yes, with appropriate safeguards",riskLevel:"medium"},{value:"yes_unprotected",label:"Yes, without adequate safeguards",riskLevel:"high"}]},{id:"scale",text:"What is the scale of processing?",type:"radio",required:true,options:[{value:"small",label:"Small scale (fewer than 1,000 individuals)",riskLevel:"low"},{value:"medium",label:"Medium scale (1,000 to 100,000 individuals)",riskLevel:"medium"},{value:"large",label:"Large scale (over 100,000 individuals)",riskLevel:"high"}]},{id:"cross_border",text:"Will data be transferred outside Nigeria?",type:"radio",required:true,options:[{value:"no",label:"No international transfers",riskLevel:"low"},{value:"adequate",label:"Yes, to countries with adequate protection",riskLevel:"medium"},{value:"inadequate",label:"Yes, to countries without adequate protection",riskLevel:"high"}]}]},{id:"mitigation",title:"Risk Mitigation & Measures",description:"Document the measures taken to address identified risks.",order:3,questions:[{id:"security_measures",text:"What technical and organisational security measures are in place?",guidance:"Include encryption, access controls, pseudonymisation, staff training, etc.",type:"textarea",required:true},{id:"retention_period",text:"What is the data retention period?",guidance:"Specify how long data will be kept and the criteria used to determine this.",type:"text",required:true},{id:"dpo_consulted",text:"Has the Data Protection Officer (DPO) been consulted on this assessment?",type:"radio",required:false,options:[{value:"yes",label:"Yes",riskLevel:"low"},{value:"no",label:"No",riskLevel:"medium"},{value:"na",label:"Not applicable \u2014 no DPO appointed",riskLevel:"medium"}]}]}];function K(u,a){let P=[],h=i=>{let s=a[i.id];if(s!=null&&i.riskLevel)if(["select","radio","checkbox"].includes(i.type)&&i.options)(Array.isArray(s)?s:[s]).forEach(R=>{var t;let c=(t=i.options)==null?void 0:t.find(e=>e.value===R);if(c!=null&&c.riskLevel){let e=c.riskLevel,d=e==="low"?1:e==="medium"?3:5,f=e==="low"?1:e==="medium"?3:5;P.push({id:`risk_${P.length+1}`,description:`${i.text} - ${c.label}`,likelihood:d,impact:f,score:d*f,level:e,mitigated:false,relatedQuestionIds:[i.id]});}});else {let l=i.riskLevel,R=l==="low"?1:l==="medium"?3:5,c=l==="low"?1:l==="medium"?3:5;P.push({id:`risk_${P.length+1}`,description:i.text,likelihood:R,impact:c,score:R*c,level:l,mitigated:false,relatedQuestionIds:[i.id]});}};u.forEach(i=>i.questions.forEach(h));let r=Date.now(),o={id:`dpia_${r}`,title:"",processingDescription:"",startedAt:r,completedAt:r,assessor:{name:"",role:"",email:""},answers:a,risks:P,overallRiskLevel:"low",canProceed:true,conclusion:"",version:"1.0"},n=chunkTQZWJGJ2_js.a(o);return o.overallRiskLevel=n.overallRiskLevel,o.canProceed=n.canProceed,o.conclusion=n.canProceed?"Based on the assessment, the processing can proceed with appropriate safeguards.":"Based on the assessment, the processing should not proceed without further mitigation measures.",o.recommendations=n.recommendations,o}var X=({sections:u=H,adapter:a,classNames:P,unstyled:h,onComplete:r,onResult:o,copy:n,submitTo:i,submitOptions:s,onSubmitError:l,onSubmitSuccess:R})=>{let[c,t]=react.useState({}),[e,d]=react.useState(0),f=react.useRef(false);react.useEffect(()=>{process.env.NODE_ENV==="production"||f.current||r!==void 0&&o===void 0&&(f.current=true,console.warn("[ndpr-toolkit/dpia] `onComplete` is deprecated; use `onResult` to receive the full DPIAResult. Will be removed in 5.0."));},[r,o]);let N=(v,C)=>{t(B=>chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},B),{[v]:C}));},x=v=>chunkRFPLZDIO_js.d(null,null,function*(){var C,B;if(i){let Q=typeof(s==null?void 0:s.headers)=="function"?s.headers():(C=s==null?void 0:s.headers)!=null?C:{};try{let D=yield fetch(i,{method:"POST",headers:chunkRFPLZDIO_js.a({"Content-Type":"application/json"},Q),credentials:(B=s==null?void 0:s.credentials)!=null?B:"same-origin",body:JSON.stringify(v)});if(!D.ok)l==null||l({response:D});else if(R){let I;try{let k=yield D.clone().text();k&&(I=JSON.parse(k));}catch(k){}R({response:D,data:v,body:I});}}catch(D){l==null||l({error:D});}}else a&&a.save(v);o&&o(K(u,v)),r==null||r(v);}),A=()=>{e<u.length-1?d(v=>v+1):x(c);},w=()=>{e>0&&d(v=>v-1);},y=Math.round((e+1)/u.length*100);return jsxRuntime.jsx(chunkWCTFED27_js.a,{sections:u,answers:c,onAnswerChange:N,currentSectionIndex:e,onNextSection:A,onPrevSection:w,progress:y,classNames:P,unstyled:h,submitButtonText:n==null?void 0:n.submitButton,nextButtonText:n==null?void 0:n.nextButton,prevButtonText:n==null?void 0:n.prevButton})};var te=({initialData:u,adapter:a,classNames:P,unstyled:h,copy:r})=>{let o=u!=null?u:[],[n,i]=react.useState(()=>{if(a){let t=a.load();if(t&&!(t instanceof Promise))return t}return o});react.useEffect(()=>{if(!a)return;let t=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let e=yield a.load();!t&&e&&i(e);}catch(e){}}),()=>{t=true;}},[a]);let s=t=>{a&&a.save(t);};return jsxRuntime.jsx(chunk65J4P5ID_js.a,{activities:n,onAdd:t=>{let e=Date.now(),d=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},t),{id:`activity-${e}`,createdAt:e,updatedAt:e}),f=[...n,d];i(f),s(f);},onUpdate:(t,e)=>{let d=n.map(f=>f.id===t?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},f),e),{updatedAt:Date.now()}):f);i(d),s(d);},onArchive:t=>{let e=n.map(d=>d.id===t?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},d),{status:"inactive",updatedAt:Date.now()}):d);i(e),s(e);},classNames:P,unstyled:h,title:r==null?void 0:r.title,description:r==null?void 0:r.description})};var ae=({initialData:u,adapter:a,classNames:P,unstyled:h,copy:r})=>{let o=u!=null?u:[],[n,i]=react.useState(()=>{if(a){let t=a.load();if(t&&!(t instanceof Promise))return t}return o});react.useEffect(()=>{if(!a)return;let t=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let e=yield a.load();!t&&e&&i(e);}catch(e){}}),()=>{t=true;}},[a]);let s=t=>{a&&a.save(t);};return jsxRuntime.jsx(chunkH2FDWK4F_js.a,{transfers:n,onAdd:t=>{let e=Date.now(),d=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},t),{id:`transfer-${e}`,createdAt:e,updatedAt:e}),f=[...n,d];i(f),s(f);},onUpdate:(t,e)=>{let d=n.map(f=>f.id===t?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},f),e),{updatedAt:Date.now()}):f);i(d),s(d);},onArchive:t=>{let e=n.filter(d=>d.id!==t);i(e),s(e);},classNames:P,unstyled:h,title:r==null?void 0:r.title,description:r==null?void 0:r.description})};var ce={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},le=({initialData:u,adapter:a,classNames:P,unstyled:h,copy:r})=>{let[o,n]=react.useState(u!=null?u:ce);react.useEffect(()=>{if(!a)return;let c=false;return chunkRFPLZDIO_js.d(null,null,function*(){let e=yield a.load();!c&&e&&n(e);}),()=>{c=true;}},[a]);let i=c=>{a&&a.save(c);};return jsxRuntime.jsx(chunkHLFS3NXG_js.a,{ropa:o,onAdd:c=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:[...o.records,c],lastUpdated:Date.now()});n(t),i(t);},onUpdate:(c,t)=>{let e=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:o.records.map(d=>d.id===c?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},d),t),{updatedAt:Date.now()}):d),lastUpdated:Date.now()});n(e),i(e);},onArchive:c=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:o.records.map(e=>e.id===c?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{status:"archived",updatedAt:Date.now()}):e),lastUpdated:Date.now()});n(t),i(t);},classNames:P,unstyled:h,title:r==null?void 0:r.title,description:r==null?void 0:r.description})};var ue=P=>{var h=P,{input:u}=h,a=chunkRFPLZDIO_js.c(h,["input"]);let r=chunkRDALAH3Y_js.a(u);return jsxRuntime.jsx(chunkNUWVPRNI_js.a,chunkRFPLZDIO_js.a({report:r},a))};Object.defineProperty(exports,"NDPRConsent",{enumerable:true,get:function(){return chunk63WM5PHZ_js.a}});Object.defineProperty(exports,"NDPRSubjectRights",{enumerable:true,get:function(){return chunkKH3EQJQE_js.a}});Object.defineProperty(exports,"NDPRPrivacyPolicy",{enumerable:true,get:function(){return chunk3E4IH7CE_js.a}});exports.NDPRBreachReport=j;exports.NDPRComplianceDashboard=ue;exports.NDPRCrossBorder=ae;exports.NDPRDPIA=X;exports.NDPRLawfulBasis=te;exports.NDPRROPA=le;
|
package/dist/presets.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{a as NDPRConsent}from'./chunk-6A6VI7ZP.mjs';export{a as NDPRSubjectRights}from'./chunk-WVHMY2BV.mjs';export{a as NDPRPrivacyPolicy}from'./chunk-B2EXRSYG.mjs';import'./chunk-ELK6VFKC.mjs';import {a as a$7}from'./chunk-ZIZL37BG.mjs';import {a}from'./chunk-DK7P5JEG.mjs';import {a as a$2}from'./chunk-RBKFNCGO.mjs';import {a as a$4}from'./chunk-42JPSNVV.mjs';import {a as a$5}from'./chunk-Z2M5VJX2.mjs';import'./chunk-CWY2FMIC.mjs';import'./chunk-KE2FZH2V.mjs';import'./chunk-IVSNHT24.mjs';import {a as a$6}from'./chunk-7RBO42IW.mjs';import'./chunk-BIJSMSUU.mjs';import'./chunk-7BJXI2HI.mjs';import'./chunk-LWIKDDSU.mjs';import'./chunk-XP5PL6K7.mjs';import'./chunk-I2ZBMR7F.mjs';import'./chunk-YTU4FNM2.mjs';import'./chunk-L3FR4PQE.mjs';import'./chunk-EWVK45Z3.mjs';import {a as a$1}from'./chunk-ZQHGIOYP.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-SFGW37LE.mjs';import'./chunk-FRQFU44F.mjs';import'./chunk-V5TZJJWU.mjs';import'./chunk-DBZSN4WP.mjs';import {d,b,a as a$3,c}from'./chunk-ZJYULEER.mjs';import {jsx}from'react/jsx-runtime';import {useState,useEffect}from'react';var W=[{id:"unauthorized_access",name:"Unauthorized Access",description:"Unauthorized access to personal data",defaultSeverity:"high"},{id:"data_loss",name:"Data Loss",description:"Loss of personal data",defaultSeverity:"high"},{id:"data_theft",name:"Data Theft",description:"Theft of personal data",defaultSeverity:"critical"},{id:"system_breach",name:"System Breach",description:"Breach of system containing personal data",defaultSeverity:"critical"},{id:"accidental_disclosure",name:"Accidental Disclosure",description:"Unintended disclosure of personal data",defaultSeverity:"medium"}],Y=({categories:c=W,adapter:s,classNames:R,unstyled:h,onSubmit:a$1=()=>{},copy:r,description:l,submitTo:o,submitOptions:i,onSubmitError:m,onSubmitSuccess:v})=>{var t;let f=n=>d(null,null,function*(){var p,N;if(o){let w=typeof(i==null?void 0:i.headers)=="function"?i.headers():(p=i==null?void 0:i.headers)!=null?p:{};try{let A=yield fetch(o,{method:"POST",headers:a$3({"Content-Type":"application/json"},w),credentials:(N=i==null?void 0:i.credentials)!=null?N:"same-origin",body:JSON.stringify(n)});if(!A.ok)m==null||m({response:A});else if(v){let P;try{let D=yield A.clone().text();D&&(P=JSON.parse(D));}catch(D){}v({response:A,data:n,body:P});}}catch(A){m==null||m({error:A});}}else s&&s.save(n);a$1(n);}),e=(t=r==null?void 0:r.description)!=null?t:l;return jsx(a,{categories:c,onSubmit:f,classNames:R,unstyled:h,title:r==null?void 0:r.title,description:e,submitButtonText:r==null?void 0:r.submitButton})};var J=[{id:"project_overview",title:"Project Overview",description:"Provide basic details about the processing activity being assessed.",order:0,questions:[{id:"project_name",text:"What is the name of the project or processing activity?",type:"text",required:true},{id:"project_description",text:"Describe the nature and purpose of the processing.",guidance:"Include what personal data will be collected, why it is needed, and how it will be used.",type:"textarea",required:true},{id:"data_controller",text:"Who is the data controller responsible for this processing?",type:"text",required:true}]},{id:"necessity",title:"Necessity & Proportionality",description:"Assess whether the processing is necessary and proportionate to the purposes.",order:1,questions:[{id:"lawful_basis",text:"What is the lawful basis for processing under the NDPA 2023?",type:"select",required:true,options:[{value:"consent",label:"Consent (Section 25(1)(a))"},{value:"contract",label:"Contract (Section 25(1)(b))"},{value:"legal_obligation",label:"Legal Obligation (Section 25(1)(c))"},{value:"vital_interests",label:"Vital Interests (Section 25(1)(d))"},{value:"public_task",label:"Public Task (Section 25(1)(e))"},{value:"legitimate_interests",label:"Legitimate Interests (Section 25(1)(f))"}]},{id:"data_minimisation",text:"Is the processing limited to what is necessary for the specified purpose?",type:"radio",required:true,options:[{value:"yes",label:"Yes \u2014 only minimum data is collected",riskLevel:"low"},{value:"partial",label:"Partially \u2014 some additional data may be collected",riskLevel:"medium"},{value:"no",label:"No \u2014 more data is collected than strictly necessary",riskLevel:"high"}]}]},{id:"risk_identification",title:"Risk Identification",description:"Identify and assess risks to data subjects arising from the processing.",order:2,questions:[{id:"sensitive_data",text:"Does the processing involve sensitive personal data (e.g., health, biometric, financial, children's data)?",type:"radio",required:true,options:[{value:"no",label:"No sensitive data",riskLevel:"low"},{value:"yes_protected",label:"Yes, with appropriate safeguards",riskLevel:"medium"},{value:"yes_unprotected",label:"Yes, without adequate safeguards",riskLevel:"high"}]},{id:"scale",text:"What is the scale of processing?",type:"radio",required:true,options:[{value:"small",label:"Small scale (fewer than 1,000 individuals)",riskLevel:"low"},{value:"medium",label:"Medium scale (1,000 to 100,000 individuals)",riskLevel:"medium"},{value:"large",label:"Large scale (over 100,000 individuals)",riskLevel:"high"}]},{id:"cross_border",text:"Will data be transferred outside Nigeria?",type:"radio",required:true,options:[{value:"no",label:"No international transfers",riskLevel:"low"},{value:"adequate",label:"Yes, to countries with adequate protection",riskLevel:"medium"},{value:"inadequate",label:"Yes, to countries without adequate protection",riskLevel:"high"}]}]},{id:"mitigation",title:"Risk Mitigation & Measures",description:"Document the measures taken to address identified risks.",order:3,questions:[{id:"security_measures",text:"What technical and organisational security measures are in place?",guidance:"Include encryption, access controls, pseudonymisation, staff training, etc.",type:"textarea",required:true},{id:"retention_period",text:"What is the data retention period?",guidance:"Specify how long data will be kept and the criteria used to determine this.",type:"text",required:true},{id:"dpo_consulted",text:"Has the Data Protection Officer (DPO) been consulted on this assessment?",type:"radio",required:false,options:[{value:"yes",label:"Yes",riskLevel:"low"},{value:"no",label:"No",riskLevel:"medium"},{value:"na",label:"Not applicable \u2014 no DPO appointed",riskLevel:"medium"}]}]}],Q=({sections:c=J,adapter:s,classNames:R,unstyled:h,onComplete:a=()=>{},copy:r,submitTo:l,submitOptions:o,onSubmitError:i,onSubmitSuccess:m})=>{let[v,f]=useState({}),[e,t]=useState(0),n=(P,D)=>{f(C=>b(a$3({},C),{[P]:D}));},p=P=>d(null,null,function*(){var D,C;if(l){let F=typeof(o==null?void 0:o.headers)=="function"?o.headers():(D=o==null?void 0:o.headers)!=null?D:{};try{let y=yield fetch(l,{method:"POST",headers:a$3({"Content-Type":"application/json"},F),credentials:(C=o==null?void 0:o.credentials)!=null?C:"same-origin",body:JSON.stringify(P)});if(!y.ok)i==null||i({response:y});else if(m){let x;try{let B=yield y.clone().text();B&&(x=JSON.parse(B));}catch(B){}m({response:y,data:P,body:x});}}catch(y){i==null||i({error:y});}}else s&&s.save(P);a(P);}),N=()=>{e<c.length-1?t(P=>P+1):p(v);},w=()=>{e>0&&t(P=>P-1);},A=Math.round((e+1)/c.length*100);return jsx(a$1,{sections:c,answers:v,onAnswerChange:n,currentSectionIndex:e,onNextSection:N,onPrevSection:w,progress:A,classNames:R,unstyled:h,submitButtonText:r==null?void 0:r.submitButton,nextButtonText:r==null?void 0:r.nextButton,prevButtonText:r==null?void 0:r.prevButton})};var H=({initialData:c,adapter:s,classNames:R,unstyled:h,copy:a})=>{let r=c!=null?c:[],[l,o]=useState(()=>{if(s){let e=s.load();if(e&&!(e instanceof Promise))return e}return r});useEffect(()=>{if(!s)return;let e=false;return d(null,null,function*(){try{let t=yield s.load();!e&&t&&o(t);}catch(t){}}),()=>{e=true;}},[s]);let i=e=>{s&&s.save(e);};return jsx(a$2,{activities:l,onAddActivity:e=>{let t=Date.now(),n=b(a$3({},e),{id:`activity-${t}`,createdAt:t,updatedAt:t}),p=[...l,n];o(p),i(p);},onUpdateActivity:(e,t)=>{let n=l.map(p=>p.id===e?b(a$3(a$3({},p),t),{updatedAt:Date.now()}):p);o(n),i(n);},onArchiveActivity:e=>{let t=l.map(n=>n.id===e?b(a$3({},n),{status:"inactive",updatedAt:Date.now()}):n);o(t),i(t);},classNames:R,unstyled:h,title:a==null?void 0:a.title,description:a==null?void 0:a.description})};var E=({initialData:c,adapter:s,classNames:R,unstyled:h,copy:a})=>{let r=c!=null?c:[],[l,o]=useState(()=>{if(s){let e=s.load();if(e&&!(e instanceof Promise))return e}return r});useEffect(()=>{if(!s)return;let e=false;return d(null,null,function*(){try{let t=yield s.load();!e&&t&&o(t);}catch(t){}}),()=>{e=true;}},[s]);let i=e=>{s&&s.save(e);};return jsx(a$4,{transfers:l,onAddTransfer:e=>{let t=Date.now(),n=b(a$3({},e),{id:`transfer-${t}`,createdAt:t,updatedAt:t}),p=[...l,n];o(p),i(p);},onUpdateTransfer:(e,t)=>{let n=l.map(p=>p.id===e?b(a$3(a$3({},p),t),{updatedAt:Date.now()}):p);o(n),i(n);},onRemoveTransfer:e=>{let t=l.filter(n=>n.id!==e);o(t),i(t);},classNames:R,unstyled:h,title:a==null?void 0:a.title,description:a==null?void 0:a.description})};var se={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},oe=({initialData:c,adapter:s,classNames:R,unstyled:h,copy:a})=>{let[r,l]=useState(c!=null?c:se);useEffect(()=>{if(!s)return;let f=false;return d(null,null,function*(){let t=yield s.load();!f&&t&&l(t);}),()=>{f=true;}},[s]);let o=f=>{s&&s.save(f);};return jsx(a$5,{ropa:r,onAddRecord:f=>{let e=b(a$3({},r),{records:[...r.records,f],lastUpdated:Date.now()});l(e),o(e);},onUpdateRecord:(f,e)=>{let t=b(a$3({},r),{records:r.records.map(n=>n.id===f?b(a$3(a$3({},n),e),{updatedAt:Date.now()}):n),lastUpdated:Date.now()});l(t),o(t);},onArchiveRecord:f=>{let e=b(a$3({},r),{records:r.records.map(t=>t.id===f?b(a$3({},t),{status:"archived",updatedAt:Date.now()}):t),lastUpdated:Date.now()});l(e),o(e);},classNames:R,unstyled:h,title:a==null?void 0:a.title,description:a==null?void 0:a.description})};var ie=R=>{var h=R,{input:c$1}=h,s=c(h,["input"]);let a=a$6(c$1);return jsx(a$7,a$3({report:a},s))};export{Y as NDPRBreachReport,ie as NDPRComplianceDashboard,E as NDPRCrossBorder,Q as NDPRDPIA,H as NDPRLawfulBasis,oe as NDPRROPA};
|
|
2
|
+
export{a as NDPRConsent}from'./chunk-6A6VI7ZP.mjs';export{a as NDPRSubjectRights}from'./chunk-WVHMY2BV.mjs';export{a as NDPRPrivacyPolicy}from'./chunk-B2EXRSYG.mjs';import'./chunk-ELK6VFKC.mjs';import {a as a$7}from'./chunk-ZIZL37BG.mjs';import {a}from'./chunk-DK7P5JEG.mjs';import {a as a$2}from'./chunk-DSIIEUAD.mjs';import {a as a$4}from'./chunk-UTXDZDYF.mjs';import {a as a$5}from'./chunk-W6VVLHRQ.mjs';import'./chunk-CWY2FMIC.mjs';import'./chunk-KE2FZH2V.mjs';import'./chunk-IVSNHT24.mjs';import {a as a$6}from'./chunk-7RBO42IW.mjs';import'./chunk-BIJSMSUU.mjs';import'./chunk-7BJXI2HI.mjs';import'./chunk-LWIKDDSU.mjs';import'./chunk-XP5PL6K7.mjs';import'./chunk-I2ZBMR7F.mjs';import'./chunk-YTU4FNM2.mjs';import'./chunk-L3FR4PQE.mjs';import'./chunk-EWVK45Z3.mjs';import {a as a$1}from'./chunk-ZQHGIOYP.mjs';import {a as a$8}from'./chunk-LRRENTT5.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-SFGW37LE.mjs';import'./chunk-FRQFU44F.mjs';import'./chunk-V5TZJJWU.mjs';import'./chunk-DBZSN4WP.mjs';import {d,b,a as a$3,c}from'./chunk-ZJYULEER.mjs';import {jsx}from'react/jsx-runtime';import {useState,useRef,useEffect}from'react';var $=[{id:"unauthorized_access",name:"Unauthorized Access",description:"Unauthorized access to personal data",defaultSeverity:"high"},{id:"data_loss",name:"Data Loss",description:"Loss of personal data",defaultSeverity:"high"},{id:"data_theft",name:"Data Theft",description:"Theft of personal data",defaultSeverity:"critical"},{id:"system_breach",name:"System Breach",description:"Breach of system containing personal data",defaultSeverity:"critical"},{id:"accidental_disclosure",name:"Accidental Disclosure",description:"Unintended disclosure of personal data",defaultSeverity:"medium"}],j=({categories:u=$,adapter:a$1,classNames:P,unstyled:h,onSubmit:r=()=>{},copy:o,description:n,submitTo:i,submitOptions:s,onSubmitError:l,onSubmitSuccess:R})=>{var e;let c=d$1=>d(null,null,function*(){var f,N;if(i){let x=typeof(s==null?void 0:s.headers)=="function"?s.headers():(f=s==null?void 0:s.headers)!=null?f:{};try{let A=yield fetch(i,{method:"POST",headers:a$3({"Content-Type":"application/json"},x),credentials:(N=s==null?void 0:s.credentials)!=null?N:"same-origin",body:JSON.stringify(d$1)});if(!A.ok)l==null||l({response:A});else if(R){let w;try{let y=yield A.clone().text();y&&(w=JSON.parse(y));}catch(y){}R({response:A,data:d$1,body:w});}}catch(A){l==null||l({error:A});}}else a$1&&a$1.save(d$1);r(d$1);}),t=(e=o==null?void 0:o.description)!=null?e:n;return jsx(a,{categories:u,onSubmit:c,classNames:P,unstyled:h,title:o==null?void 0:o.title,description:t,submitButtonText:o==null?void 0:o.submitButton})};var H=[{id:"project_overview",title:"Project Overview",description:"Provide basic details about the processing activity being assessed.",order:0,questions:[{id:"project_name",text:"What is the name of the project or processing activity?",type:"text",required:true},{id:"project_description",text:"Describe the nature and purpose of the processing.",guidance:"Include what personal data will be collected, why it is needed, and how it will be used.",type:"textarea",required:true},{id:"data_controller",text:"Who is the data controller responsible for this processing?",type:"text",required:true}]},{id:"necessity",title:"Necessity & Proportionality",description:"Assess whether the processing is necessary and proportionate to the purposes.",order:1,questions:[{id:"lawful_basis",text:"What is the lawful basis for processing under the NDPA 2023?",type:"select",required:true,options:[{value:"consent",label:"Consent (Section 25(1)(a))"},{value:"contract",label:"Contract (Section 25(1)(b))"},{value:"legal_obligation",label:"Legal Obligation (Section 25(1)(c))"},{value:"vital_interests",label:"Vital Interests (Section 25(1)(d))"},{value:"public_task",label:"Public Task (Section 25(1)(e))"},{value:"legitimate_interests",label:"Legitimate Interests (Section 25(1)(f))"}]},{id:"data_minimisation",text:"Is the processing limited to what is necessary for the specified purpose?",type:"radio",required:true,options:[{value:"yes",label:"Yes \u2014 only minimum data is collected",riskLevel:"low"},{value:"partial",label:"Partially \u2014 some additional data may be collected",riskLevel:"medium"},{value:"no",label:"No \u2014 more data is collected than strictly necessary",riskLevel:"high"}]}]},{id:"risk_identification",title:"Risk Identification",description:"Identify and assess risks to data subjects arising from the processing.",order:2,questions:[{id:"sensitive_data",text:"Does the processing involve sensitive personal data (e.g., health, biometric, financial, children's data)?",type:"radio",required:true,options:[{value:"no",label:"No sensitive data",riskLevel:"low"},{value:"yes_protected",label:"Yes, with appropriate safeguards",riskLevel:"medium"},{value:"yes_unprotected",label:"Yes, without adequate safeguards",riskLevel:"high"}]},{id:"scale",text:"What is the scale of processing?",type:"radio",required:true,options:[{value:"small",label:"Small scale (fewer than 1,000 individuals)",riskLevel:"low"},{value:"medium",label:"Medium scale (1,000 to 100,000 individuals)",riskLevel:"medium"},{value:"large",label:"Large scale (over 100,000 individuals)",riskLevel:"high"}]},{id:"cross_border",text:"Will data be transferred outside Nigeria?",type:"radio",required:true,options:[{value:"no",label:"No international transfers",riskLevel:"low"},{value:"adequate",label:"Yes, to countries with adequate protection",riskLevel:"medium"},{value:"inadequate",label:"Yes, to countries without adequate protection",riskLevel:"high"}]}]},{id:"mitigation",title:"Risk Mitigation & Measures",description:"Document the measures taken to address identified risks.",order:3,questions:[{id:"security_measures",text:"What technical and organisational security measures are in place?",guidance:"Include encryption, access controls, pseudonymisation, staff training, etc.",type:"textarea",required:true},{id:"retention_period",text:"What is the data retention period?",guidance:"Specify how long data will be kept and the criteria used to determine this.",type:"text",required:true},{id:"dpo_consulted",text:"Has the Data Protection Officer (DPO) been consulted on this assessment?",type:"radio",required:false,options:[{value:"yes",label:"Yes",riskLevel:"low"},{value:"no",label:"No",riskLevel:"medium"},{value:"na",label:"Not applicable \u2014 no DPO appointed",riskLevel:"medium"}]}]}];function K(u,a){let P=[],h=i=>{let s=a[i.id];if(s!=null&&i.riskLevel)if(["select","radio","checkbox"].includes(i.type)&&i.options)(Array.isArray(s)?s:[s]).forEach(R=>{var t;let c=(t=i.options)==null?void 0:t.find(e=>e.value===R);if(c!=null&&c.riskLevel){let e=c.riskLevel,d=e==="low"?1:e==="medium"?3:5,f=e==="low"?1:e==="medium"?3:5;P.push({id:`risk_${P.length+1}`,description:`${i.text} - ${c.label}`,likelihood:d,impact:f,score:d*f,level:e,mitigated:false,relatedQuestionIds:[i.id]});}});else {let l=i.riskLevel,R=l==="low"?1:l==="medium"?3:5,c=l==="low"?1:l==="medium"?3:5;P.push({id:`risk_${P.length+1}`,description:i.text,likelihood:R,impact:c,score:R*c,level:l,mitigated:false,relatedQuestionIds:[i.id]});}};u.forEach(i=>i.questions.forEach(h));let r=Date.now(),o={id:`dpia_${r}`,title:"",processingDescription:"",startedAt:r,completedAt:r,assessor:{name:"",role:"",email:""},answers:a,risks:P,overallRiskLevel:"low",canProceed:true,conclusion:"",version:"1.0"},n=a$8(o);return o.overallRiskLevel=n.overallRiskLevel,o.canProceed=n.canProceed,o.conclusion=n.canProceed?"Based on the assessment, the processing can proceed with appropriate safeguards.":"Based on the assessment, the processing should not proceed without further mitigation measures.",o.recommendations=n.recommendations,o}var X=({sections:u=H,adapter:a,classNames:P,unstyled:h,onComplete:r,onResult:o,copy:n,submitTo:i,submitOptions:s,onSubmitError:l,onSubmitSuccess:R})=>{let[c,t]=useState({}),[e,d$1]=useState(0),f=useRef(false);useEffect(()=>{process.env.NODE_ENV==="production"||f.current||r!==void 0&&o===void 0&&(f.current=true,console.warn("[ndpr-toolkit/dpia] `onComplete` is deprecated; use `onResult` to receive the full DPIAResult. Will be removed in 5.0."));},[r,o]);let N=(v,C)=>{t(B=>b(a$3({},B),{[v]:C}));},x=v=>d(null,null,function*(){var C,B;if(i){let Q=typeof(s==null?void 0:s.headers)=="function"?s.headers():(C=s==null?void 0:s.headers)!=null?C:{};try{let D=yield fetch(i,{method:"POST",headers:a$3({"Content-Type":"application/json"},Q),credentials:(B=s==null?void 0:s.credentials)!=null?B:"same-origin",body:JSON.stringify(v)});if(!D.ok)l==null||l({response:D});else if(R){let I;try{let k=yield D.clone().text();k&&(I=JSON.parse(k));}catch(k){}R({response:D,data:v,body:I});}}catch(D){l==null||l({error:D});}}else a&&a.save(v);o&&o(K(u,v)),r==null||r(v);}),A=()=>{e<u.length-1?d$1(v=>v+1):x(c);},w=()=>{e>0&&d$1(v=>v-1);},y=Math.round((e+1)/u.length*100);return jsx(a$1,{sections:u,answers:c,onAnswerChange:N,currentSectionIndex:e,onNextSection:A,onPrevSection:w,progress:y,classNames:P,unstyled:h,submitButtonText:n==null?void 0:n.submitButton,nextButtonText:n==null?void 0:n.nextButton,prevButtonText:n==null?void 0:n.prevButton})};var te=({initialData:u,adapter:a,classNames:P,unstyled:h,copy:r})=>{let o=u!=null?u:[],[n,i]=useState(()=>{if(a){let t=a.load();if(t&&!(t instanceof Promise))return t}return o});useEffect(()=>{if(!a)return;let t=false;return d(null,null,function*(){try{let e=yield a.load();!t&&e&&i(e);}catch(e){}}),()=>{t=true;}},[a]);let s=t=>{a&&a.save(t);};return jsx(a$2,{activities:n,onAdd:t=>{let e=Date.now(),d=b(a$3({},t),{id:`activity-${e}`,createdAt:e,updatedAt:e}),f=[...n,d];i(f),s(f);},onUpdate:(t,e)=>{let d=n.map(f=>f.id===t?b(a$3(a$3({},f),e),{updatedAt:Date.now()}):f);i(d),s(d);},onArchive:t=>{let e=n.map(d=>d.id===t?b(a$3({},d),{status:"inactive",updatedAt:Date.now()}):d);i(e),s(e);},classNames:P,unstyled:h,title:r==null?void 0:r.title,description:r==null?void 0:r.description})};var ae=({initialData:u,adapter:a,classNames:P,unstyled:h,copy:r})=>{let o=u!=null?u:[],[n,i]=useState(()=>{if(a){let t=a.load();if(t&&!(t instanceof Promise))return t}return o});useEffect(()=>{if(!a)return;let t=false;return d(null,null,function*(){try{let e=yield a.load();!t&&e&&i(e);}catch(e){}}),()=>{t=true;}},[a]);let s=t=>{a&&a.save(t);};return jsx(a$4,{transfers:n,onAdd:t=>{let e=Date.now(),d=b(a$3({},t),{id:`transfer-${e}`,createdAt:e,updatedAt:e}),f=[...n,d];i(f),s(f);},onUpdate:(t,e)=>{let d=n.map(f=>f.id===t?b(a$3(a$3({},f),e),{updatedAt:Date.now()}):f);i(d),s(d);},onArchive:t=>{let e=n.filter(d=>d.id!==t);i(e),s(e);},classNames:P,unstyled:h,title:r==null?void 0:r.title,description:r==null?void 0:r.description})};var ce={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},le=({initialData:u,adapter:a,classNames:P,unstyled:h,copy:r})=>{let[o,n]=useState(u!=null?u:ce);useEffect(()=>{if(!a)return;let c=false;return d(null,null,function*(){let e=yield a.load();!c&&e&&n(e);}),()=>{c=true;}},[a]);let i=c=>{a&&a.save(c);};return jsx(a$5,{ropa:o,onAdd:c=>{let t=b(a$3({},o),{records:[...o.records,c],lastUpdated:Date.now()});n(t),i(t);},onUpdate:(c,t)=>{let e=b(a$3({},o),{records:o.records.map(d=>d.id===c?b(a$3(a$3({},d),t),{updatedAt:Date.now()}):d),lastUpdated:Date.now()});n(e),i(e);},onArchive:c=>{let t=b(a$3({},o),{records:o.records.map(e=>e.id===c?b(a$3({},e),{status:"archived",updatedAt:Date.now()}):e),lastUpdated:Date.now()});n(t),i(t);},classNames:P,unstyled:h,title:r==null?void 0:r.title,description:r==null?void 0:r.description})};var ue=P=>{var h=P,{input:u}=h,a=c(h,["input"]);let r=a$6(u);return jsx(a$7,a$3({report:r},a))};export{j as NDPRBreachReport,ue as NDPRComplianceDashboard,ae as NDPRCrossBorder,X as NDPRDPIA,te as NDPRLawfulBasis,le as NDPRROPA};
|
package/dist/ropa-lite.d.mts
CHANGED
|
@@ -175,7 +175,19 @@ export declare interface ROPAManagerLiteClassNames {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
export declare interface ROPAManagerLiteProps {
|
|
178
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Flat list of processing records.
|
|
180
|
+
* @deprecated Use `ropa` (4.1+) to pass the full
|
|
181
|
+
* `RecordOfProcessingActivities` object, matching the full
|
|
182
|
+
* `ROPAManager` API. The `records` prop will be removed in 5.0.
|
|
183
|
+
*/
|
|
184
|
+
records?: ProcessingRecord[];
|
|
185
|
+
/**
|
|
186
|
+
* Full Record of Processing Activities (4.1+). Takes precedence over
|
|
187
|
+
* `records` when both are provided. This will become the canonical
|
|
188
|
+
* shape in 5.0.
|
|
189
|
+
*/
|
|
190
|
+
ropa?: RecordOfProcessingActivities;
|
|
179
191
|
title?: string;
|
|
180
192
|
description?: string;
|
|
181
193
|
className?: string;
|
package/dist/ropa-lite.d.ts
CHANGED
|
@@ -175,7 +175,19 @@ export declare interface ROPAManagerLiteClassNames {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
export declare interface ROPAManagerLiteProps {
|
|
178
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Flat list of processing records.
|
|
180
|
+
* @deprecated Use `ropa` (4.1+) to pass the full
|
|
181
|
+
* `RecordOfProcessingActivities` object, matching the full
|
|
182
|
+
* `ROPAManager` API. The `records` prop will be removed in 5.0.
|
|
183
|
+
*/
|
|
184
|
+
records?: ProcessingRecord[];
|
|
185
|
+
/**
|
|
186
|
+
* Full Record of Processing Activities (4.1+). Takes precedence over
|
|
187
|
+
* `records` when both are provided. This will become the canonical
|
|
188
|
+
* shape in 5.0.
|
|
189
|
+
*/
|
|
190
|
+
ropa?: RecordOfProcessingActivities;
|
|
179
191
|
title?: string;
|
|
180
192
|
description?: string;
|
|
181
193
|
className?: string;
|