@tantainnovative/ndpr-toolkit 3.10.6 → 3.12.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.
Files changed (103) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +38 -24
  3. package/dist/adapters.d.mts +90 -4
  4. package/dist/adapters.d.ts +90 -4
  5. package/dist/breach.d.mts +13 -1
  6. package/dist/breach.d.ts +13 -1
  7. package/dist/breach.js +1 -1
  8. package/dist/breach.mjs +1 -1
  9. package/dist/{chunk-EZCGTHQV.js → chunk-4GIMXUMI.js} +3 -3
  10. package/dist/{chunk-HBLGN4SD.js → chunk-5AECGMEB.js} +1 -1
  11. package/dist/chunk-67KA345Q.mjs +1 -0
  12. package/dist/chunk-6OWCUDTN.mjs +1 -0
  13. package/dist/{chunk-4G3SRVRI.mjs → chunk-B6BRD5SL.mjs} +1 -1
  14. package/dist/chunk-CAFCRCTZ.mjs +1 -0
  15. package/dist/{chunk-VJTQXVAF.js → chunk-EHQVTFYO.js} +1 -1
  16. package/dist/{chunk-CNM6G5IA.js → chunk-FC3PTJFL.js} +1 -1
  17. package/dist/{chunk-H3IULCE3.js → chunk-HOAC5VUF.js} +1 -1
  18. package/dist/{chunk-H3XJV2IR.mjs → chunk-I3V3ITN7.mjs} +1 -1
  19. package/dist/{chunk-MPBPAEZC.mjs → chunk-IB3KSUPZ.mjs} +1 -1
  20. package/dist/{chunk-TAHSSITO.mjs → chunk-IHNAFXDM.mjs} +1 -1
  21. package/dist/chunk-IQO3SIAG.mjs +1 -0
  22. package/dist/{chunk-UTFBKL73.js → chunk-IRRUYR6M.js} +1 -1
  23. package/dist/{chunk-C7IDR2IV.js → chunk-JLQT3W3E.js} +1 -1
  24. package/dist/chunk-JYZOKO2W.mjs +103 -0
  25. package/dist/chunk-NX5MOBRI.js +1 -0
  26. package/dist/chunk-O2WEABB3.js +1 -0
  27. package/dist/chunk-OZHUINWS.js +1 -0
  28. package/dist/{chunk-66NQ5CVY.mjs → chunk-Q4CSVWSS.mjs} +1 -1
  29. package/dist/{chunk-CR2QZTGW.js → chunk-QMAVEHOR.js} +1 -1
  30. package/dist/{chunk-3HOXQNCH.mjs → chunk-RFXGD5NE.mjs} +1 -1
  31. package/dist/chunk-ROC64RLP.js +1 -0
  32. package/dist/{chunk-O45PKBZA.mjs → chunk-RR3KXNET.mjs} +3 -3
  33. package/dist/{chunk-KY6WYHWB.mjs → chunk-TN4TH3CT.mjs} +1 -1
  34. package/dist/chunk-VPNK7OID.mjs +1 -0
  35. package/dist/{chunk-O2RDZGM2.js → chunk-VUFTRKKC.js} +1 -1
  36. package/dist/chunk-WKUC65HL.mjs +1 -0
  37. package/dist/chunk-WXUXCRAJ.js +1 -0
  38. package/dist/chunk-YK22SYCT.js +103 -0
  39. package/dist/chunk-YSD2DFBR.js +6 -0
  40. package/dist/chunk-ZHX62QAL.mjs +6 -0
  41. package/dist/consent.d.mts +23 -1
  42. package/dist/consent.d.ts +23 -1
  43. package/dist/consent.js +1 -1
  44. package/dist/consent.mjs +1 -1
  45. package/dist/core.js +1 -1
  46. package/dist/core.mjs +1 -1
  47. package/dist/cross-border.d.mts +12 -1
  48. package/dist/cross-border.d.ts +12 -1
  49. package/dist/cross-border.js +1 -1
  50. package/dist/cross-border.mjs +1 -1
  51. package/dist/dpia.d.mts +16 -1
  52. package/dist/dpia.d.ts +16 -1
  53. package/dist/dpia.js +1 -1
  54. package/dist/dpia.mjs +1 -1
  55. package/dist/dsr.d.mts +21 -1
  56. package/dist/dsr.d.ts +21 -1
  57. package/dist/dsr.js +1 -1
  58. package/dist/dsr.mjs +1 -1
  59. package/dist/headless.d.mts +217 -24
  60. package/dist/headless.d.ts +217 -24
  61. package/dist/headless.js +1 -1
  62. package/dist/headless.mjs +1 -1
  63. package/dist/hooks.d.mts +217 -24
  64. package/dist/hooks.d.ts +217 -24
  65. package/dist/hooks.js +1 -1
  66. package/dist/hooks.mjs +1 -1
  67. package/dist/index.d.mts +419 -29
  68. package/dist/index.d.ts +419 -29
  69. package/dist/index.js +1 -1
  70. package/dist/index.mjs +1 -1
  71. package/dist/lawful-basis.d.mts +10 -0
  72. package/dist/lawful-basis.d.ts +10 -0
  73. package/dist/lawful-basis.js +1 -1
  74. package/dist/lawful-basis.mjs +1 -1
  75. package/dist/policy.d.mts +39 -1
  76. package/dist/policy.d.ts +39 -1
  77. package/dist/presets.js +1 -1
  78. package/dist/presets.mjs +1 -1
  79. package/dist/ropa.d.mts +39 -3
  80. package/dist/ropa.d.ts +39 -3
  81. package/dist/ropa.js +1 -1
  82. package/dist/ropa.mjs +1 -1
  83. package/dist/server.d.mts +86 -0
  84. package/dist/server.d.ts +86 -0
  85. package/dist/server.js +1 -1
  86. package/dist/server.mjs +1 -1
  87. package/dist/styles.css +2 -0
  88. package/package.json +1 -1
  89. package/dist/chunk-3JPDTXGC.js +0 -1
  90. package/dist/chunk-43OQNS2J.mjs +0 -6
  91. package/dist/chunk-5GVMKUMP.js +0 -1
  92. package/dist/chunk-COD3RMTL.mjs +0 -1
  93. package/dist/chunk-EXEXUAF6.mjs +0 -1
  94. package/dist/chunk-L2BRFMVS.js +0 -1
  95. package/dist/chunk-MOHBL6LX.mjs +0 -1
  96. package/dist/chunk-PGI2LM6P.js +0 -103
  97. package/dist/chunk-PZRQWPWD.js +0 -1
  98. package/dist/chunk-RPXRPGHL.mjs +0 -1
  99. package/dist/chunk-RZ6GC6WN.mjs +0 -1
  100. package/dist/chunk-SSH4U4TJ.js +0 -6
  101. package/dist/chunk-WDDCKYWA.js +0 -1
  102. package/dist/chunk-X3GCGC3H.mjs +0 -103
  103. package/dist/chunk-ZQZJNKVB.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'),chunkPGI2LM6P_js=require('./chunk-PGI2LM6P.js'),chunkO2RDZGM2_js=require('./chunk-O2RDZGM2.js'),chunkYWCBI7SI_js=require('./chunk-YWCBI7SI.js'),chunkPZRQWPWD_js=require('./chunk-PZRQWPWD.js'),chunkSSH4U4TJ_js=require('./chunk-SSH4U4TJ.js'),chunk5GVMKUMP_js=require('./chunk-5GVMKUMP.js'),chunkCNM6G5IA_js=require('./chunk-CNM6G5IA.js'),chunkVJTQXVAF_js=require('./chunk-VJTQXVAF.js'),chunkRC3XFXTJ_js=require('./chunk-RC3XFXTJ.js'),chunkQHW4UKGJ_js=require('./chunk-QHW4UKGJ.js'),chunkUTFBKL73_js=require('./chunk-UTFBKL73.js'),chunkHHK5LHEG_js=require('./chunk-HHK5LHEG.js'),chunk3JPDTXGC_js=require('./chunk-3JPDTXGC.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'),chunk73BMSK67_js=require('./chunk-73BMSK67.js'),chunkD3DVVJCT_js=require('./chunk-D3DVVJCT.js'),chunk3IA3KDII_js=require('./chunk-3IA3KDII.js'),chunkH3IULCE3_js=require('./chunk-H3IULCE3.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js');var chunkB46SJB5V_js=require('./chunk-B46SJB5V.js'),chunkCR2QZTGW_js=require('./chunk-CR2QZTGW.js'),chunkTWJHEIQH_js=require('./chunk-TWJHEIQH.js'),chunkUXUMYP4L_js=require('./chunk-UXUMYP4L.js'),chunkHBLGN4SD_js=require('./chunk-HBLGN4SD.js'),chunkL2BRFMVS_js=require('./chunk-L2BRFMVS.js'),chunkNDKDKDDX_js=require('./chunk-NDKDKDDX.js');require('./chunk-WKTKTLMF.js');var chunkEZCGTHQV_js=require('./chunk-EZCGTHQV.js'),chunkWDDCKYWA_js=require('./chunk-WDDCKYWA.js'),chunkC7IDR2IV_js=require('./chunk-C7IDR2IV.js'),chunkTQZWJGJ2_js=require('./chunk-TQZWJGJ2.js'),chunkZVOIR4QH_js=require('./chunk-ZVOIR4QH.js'),chunkAME4HJR4_js=require('./chunk-AME4HJR4.js');require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var xe=({theme:o,className:s,children:n})=>{let t=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:s,style:t,children:n})};var Ce=({variant:o="short",className:s,hidden:n})=>{if(n)return null;let t=o==="long"?chunkZVOIR4QH_js.b:chunkZVOIR4QH_js.a;return jsxRuntime.jsx("p",{role:"note",className:s!=null?s:"ndpr-legal-notice","data-ndpr-legal-notice":o,children:t})};Object.defineProperty(exports,"NDPRDashboard",{enumerable:true,get:function(){return chunkNUWVPRNI_js.a}});Object.defineProperty(exports,"BreachNotificationManager",{enumerable:true,get:function(){return chunkPGI2LM6P_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunkPGI2LM6P_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunkPGI2LM6P_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkO2RDZGM2_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunkYWCBI7SI_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunkYWCBI7SI_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunkYWCBI7SI_js.b}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkPZRQWPWD_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunkSSH4U4TJ_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunk5GVMKUMP_js.a}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkCNM6G5IA_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkVJTQXVAF_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 chunkUTFBKL73_js.a}});Object.defineProperty(exports,"useCrossBorderTransfer",{enumerable:true,get:function(){return chunkHHK5LHEG_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunk3JPDTXGC_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 chunk73BMSK67_js.a}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkD3DVVJCT_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 chunkH3IULCE3_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 chunkCR2QZTGW_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkCR2QZTGW_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkTWJHEIQH_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkUXUMYP4L_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkHBLGN4SD_js.a}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkL2BRFMVS_js.b}});Object.defineProperty(exports,"NDPRProvider",{enumerable:true,get:function(){return chunkNDKDKDDX_js.a}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunkNDKDKDDX_js.b}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunkEZCGTHQV_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunkEZCGTHQV_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkWDDCKYWA_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkC7IDR2IV_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}});exports.LegalNotice=Ce;exports.NDPRThemeProvider=xe;
2
+ 'use strict';var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkYK22SYCT_js=require('./chunk-YK22SYCT.js'),chunkVUFTRKKC_js=require('./chunk-VUFTRKKC.js'),chunkYWCBI7SI_js=require('./chunk-YWCBI7SI.js'),chunkNX5MOBRI_js=require('./chunk-NX5MOBRI.js'),chunkYSD2DFBR_js=require('./chunk-YSD2DFBR.js'),chunkWXUXCRAJ_js=require('./chunk-WXUXCRAJ.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'),chunk73BMSK67_js=require('./chunk-73BMSK67.js'),chunkD3DVVJCT_js=require('./chunk-D3DVVJCT.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'),chunkQMAVEHOR_js=require('./chunk-QMAVEHOR.js'),chunkTWJHEIQH_js=require('./chunk-TWJHEIQH.js'),chunkUXUMYP4L_js=require('./chunk-UXUMYP4L.js'),chunk5AECGMEB_js=require('./chunk-5AECGMEB.js'),chunkOZHUINWS_js=require('./chunk-OZHUINWS.js'),chunkNDKDKDDX_js=require('./chunk-NDKDKDDX.js');require('./chunk-WKTKTLMF.js');var chunk4GIMXUMI_js=require('./chunk-4GIMXUMI.js'),chunkROC64RLP_js=require('./chunk-ROC64RLP.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');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 chunkYK22SYCT_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunkYK22SYCT_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunkYK22SYCT_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkVUFTRKKC_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunkYWCBI7SI_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunkYWCBI7SI_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunkYWCBI7SI_js.b}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkNX5MOBRI_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunkYSD2DFBR_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunkWXUXCRAJ_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 chunk73BMSK67_js.a}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkD3DVVJCT_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 chunkQMAVEHOR_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkQMAVEHOR_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkTWJHEIQH_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkUXUMYP4L_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunk5AECGMEB_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,"NDPRProvider",{enumerable:true,get:function(){return chunkNDKDKDDX_js.a}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunkNDKDKDDX_js.b}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunk4GIMXUMI_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunk4GIMXUMI_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkROC64RLP_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}});exports.LegalNotice=De;exports.NDPRThemeProvider=xe;
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-X3GCGC3H.mjs';export{a as BreachReportForm}from'./chunk-KY6WYHWB.mjs';export{c as PolicyExporter,a as PolicyGenerator,b as PolicyPreview}from'./chunk-XN2UYZXH.mjs';export{a as LawfulBasisTracker}from'./chunk-COD3RMTL.mjs';export{a as CrossBorderTransferManager}from'./chunk-43OQNS2J.mjs';export{a as ROPAManager}from'./chunk-EXEXUAF6.mjs';export{a as useComplianceScore}from'./chunk-MOHBL6LX.mjs';export{a as useBreach}from'./chunk-3HOXQNCH.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-4G3SRVRI.mjs';export{a as useCrossBorderTransfer}from'./chunk-KDAZQO3N.mjs';export{a as useROPA}from'./chunk-RPXRPGHL.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-G7JKRYM5.mjs';export{a as ConsentBanner}from'./chunk-WYH3OA5L.mjs';export{c as appendAuditEntry,a as createAuditEntry,b as getAuditLog}from'./chunk-V7UFP6QU.mjs';export{a as useConsent}from'./chunk-TAHSSITO.mjs';export{a as useFocusTrap}from'./chunk-YTU4FNM2.mjs';import'./chunk-XC3DLYEG.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-PJNKQPQP.mjs';export{a as DSRDashboard,b as DSRTracker}from'./chunk-66NQ5CVY.mjs';export{a as DSRRequestForm}from'./chunk-IPWX5I5P.mjs';export{a as sanitizeInput}from'./chunk-EWVK45Z3.mjs';export{a as useDSR}from'./chunk-MPBPAEZC.mjs';export{b as formatDSRRequest}from'./chunk-RZ6GC6WN.mjs';export{a as NDPRProvider,b as useNDPRConfig}from'./chunk-25TNTLHJ.mjs';import'./chunk-RBMLGRDN.mjs';export{a as DPIAReport,b as StepIndicator}from'./chunk-O45PKBZA.mjs';export{a as DPIAQuestionnaire}from'./chunk-ZQZJNKVB.mjs';export{a as useDPIA}from'./chunk-H3XJV2IR.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';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';import {useMemo}from'react';import {jsx}from'react/jsx-runtime';var xe=({theme:o,className:s,children:n})=>{let t=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:s,style:t,children:n})};var Ce=({variant:o="short",className:s,hidden:n})=>{if(n)return null;let t=o==="long"?b:a;return jsx("p",{role:"note",className:s!=null?s:"ndpr-legal-notice","data-ndpr-legal-notice":o,children:t})};export{Ce as LegalNotice,xe as NDPRThemeProvider};
2
+ export{a as NDPRDashboard}from'./chunk-ZIZL37BG.mjs';export{b as BreachNotificationManager,a as BreachRiskAssessment,c as RegulatoryReportGenerator}from'./chunk-JYZOKO2W.mjs';export{a as BreachReportForm}from'./chunk-TN4TH3CT.mjs';export{c as PolicyExporter,a as PolicyGenerator,b as PolicyPreview}from'./chunk-XN2UYZXH.mjs';export{a as LawfulBasisTracker}from'./chunk-67KA345Q.mjs';export{a as CrossBorderTransferManager}from'./chunk-ZHX62QAL.mjs';export{a as ROPAManager}from'./chunk-CAFCRCTZ.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-WKUC65HL.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-G7JKRYM5.mjs';export{a as ConsentBanner}from'./chunk-WYH3OA5L.mjs';export{c as appendAuditEntry,a as createAuditEntry,b as getAuditLog}from'./chunk-V7UFP6QU.mjs';export{a as useConsent}from'./chunk-IHNAFXDM.mjs';export{a as useFocusTrap}from'./chunk-YTU4FNM2.mjs';import'./chunk-XC3DLYEG.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-PJNKQPQP.mjs';export{a as DSRDashboard,b as DSRTracker}from'./chunk-Q4CSVWSS.mjs';export{a as DSRRequestForm}from'./chunk-IPWX5I5P.mjs';export{a as sanitizeInput}from'./chunk-EWVK45Z3.mjs';export{a as useDSR}from'./chunk-IB3KSUPZ.mjs';export{b as formatDSRRequest,a as validateDsrSubmission}from'./chunk-VPNK7OID.mjs';export{a as NDPRProvider,b as useNDPRConfig}from'./chunk-25TNTLHJ.mjs';import'./chunk-RBMLGRDN.mjs';export{a as DPIAReport,b as StepIndicator}from'./chunk-RR3KXNET.mjs';export{a as DPIAQuestionnaire}from'./chunk-6OWCUDTN.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';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';import {useMemo}from'react';import {jsx}from'react/jsx-runtime';var xe=({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 De=({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{De as LegalNotice,xe as NDPRThemeProvider};
@@ -278,6 +278,16 @@ export declare interface StorageAdapter<T = unknown> {
278
278
  /**
279
279
  * Hook for managing lawful basis documentation for processing activities
280
280
  * in compliance with NDPA 2023 Section 25.
281
+ *
282
+ * @example
283
+ * ```tsx
284
+ * import { useLawfulBasis } from '@tantainnovative/ndpr-toolkit/hooks';
285
+ *
286
+ * function LawfulBasisRegistry() {
287
+ * const { activities, addActivity } = useLawfulBasis();
288
+ * return <p>{activities.length} processing activities documented.</p>;
289
+ * }
290
+ * ```
281
291
  */
282
292
  export declare function useLawfulBasis({ initialActivities, adapter, storageKey, useLocalStorage, onAdd, onUpdate, onRemove, }?: UseLawfulBasisOptions): UseLawfulBasisReturn;
283
293
 
@@ -278,6 +278,16 @@ export declare interface StorageAdapter<T = unknown> {
278
278
  /**
279
279
  * Hook for managing lawful basis documentation for processing activities
280
280
  * in compliance with NDPA 2023 Section 25.
281
+ *
282
+ * @example
283
+ * ```tsx
284
+ * import { useLawfulBasis } from '@tantainnovative/ndpr-toolkit/hooks';
285
+ *
286
+ * function LawfulBasisRegistry() {
287
+ * const { activities, addActivity } = useLawfulBasis();
288
+ * return <p>{activities.length} processing activities documented.</p>;
289
+ * }
290
+ * ```
281
291
  */
282
292
  export declare function useLawfulBasis({ initialActivities, adapter, storageKey, useLocalStorage, onAdd, onUpdate, onRemove, }?: UseLawfulBasisOptions): UseLawfulBasisReturn;
283
293
 
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';var chunkPZRQWPWD_js=require('./chunk-PZRQWPWD.js'),chunkUTFBKL73_js=require('./chunk-UTFBKL73.js'),chunkWZYCBW2R_js=require('./chunk-WZYCBW2R.js');require('./chunk-AME4HJR4.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=chunkUTFBKL73_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:chunkPZRQWPWD_js.a};Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkPZRQWPWD_js.a}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunkUTFBKL73_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;
2
+ 'use strict';var chunkNX5MOBRI_js=require('./chunk-NX5MOBRI.js'),chunkIRRUYR6M_js=require('./chunk-IRRUYR6M.js'),chunkWZYCBW2R_js=require('./chunk-WZYCBW2R.js');require('./chunk-AME4HJR4.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:chunkNX5MOBRI_js.a};Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkNX5MOBRI_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;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import {a}from'./chunk-COD3RMTL.mjs';export{a as LawfulBasisTracker}from'./chunk-COD3RMTL.mjs';import {a as a$1}from'./chunk-4G3SRVRI.mjs';export{a as useLawfulBasis}from'./chunk-4G3SRVRI.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-LWIKDDSU.mjs';import'./chunk-SFGW37LE.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};
2
+ import {a}from'./chunk-67KA345Q.mjs';export{a as LawfulBasisTracker}from'./chunk-67KA345Q.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-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/policy.d.mts CHANGED
@@ -1022,6 +1022,28 @@ export declare interface ThirdPartyProcessor {
1022
1022
  country: string;
1023
1023
  }
1024
1024
 
1025
+ /**
1026
+ * Multi-step privacy-policy authoring hook that adapts the generated draft
1027
+ * to the supplied template context (industry, processing purposes, data
1028
+ * categories, processors). Auto-persists a draft via the supplied adapter
1029
+ * and surfaces a live compliance score against the configured rule set.
1030
+ *
1031
+ * @example
1032
+ * ```tsx
1033
+ * import { useAdaptivePolicyWizard } from '@tantainnovative/ndpr-toolkit/hooks';
1034
+ *
1035
+ * function PolicyWizard() {
1036
+ * const { currentStep, nextStep, policy, complianceScore } = useAdaptivePolicyWizard();
1037
+ * return (
1038
+ * <div>
1039
+ * <p>Step {currentStep} — compliance: {complianceScore}%</p>
1040
+ * <button onClick={nextStep}>Next</button>
1041
+ * {policy && <pre>{policy.title}</pre>}
1042
+ * </div>
1043
+ * );
1044
+ * }
1045
+ * ```
1046
+ */
1025
1047
  export declare function useAdaptivePolicyWizard(options?: UseAdaptivePolicyWizardOptions): UseAdaptivePolicyWizardReturn;
1026
1048
 
1027
1049
  export declare interface UseAdaptivePolicyWizardOptions {
@@ -1155,7 +1177,23 @@ declare interface UseDefaultPrivacyPolicyOptions {
1155
1177
  export declare function usePolicyCompound(): PolicyContextValue;
1156
1178
 
1157
1179
  /**
1158
- * Hook for generating NDPA-compliant privacy policies
1180
+ * Hook for generating NDPA-compliant privacy policies.
1181
+ *
1182
+ * @example
1183
+ * ```tsx
1184
+ * import { usePrivacyPolicy } from '@tantainnovative/ndpr-toolkit/hooks';
1185
+ *
1186
+ * function PolicyBuilder({ templates }) {
1187
+ * const { policy, selectTemplate, generatePolicy } = usePrivacyPolicy({ templates });
1188
+ * return (
1189
+ * <div>
1190
+ * <button onClick={() => selectTemplate(templates[0].id)}>Select default</button>
1191
+ * <button onClick={generatePolicy}>Generate</button>
1192
+ * {policy && <pre>{policy.title}</pre>}
1193
+ * </div>
1194
+ * );
1195
+ * }
1196
+ * ```
1159
1197
  */
1160
1198
  export declare function usePrivacyPolicy({ templates, initialPolicy, adapter, storageKey, persist, useLocalStorage, onGenerate, }: UsePrivacyPolicyOptions): UsePrivacyPolicyReturn;
1161
1199
 
package/dist/policy.d.ts CHANGED
@@ -1022,6 +1022,28 @@ export declare interface ThirdPartyProcessor {
1022
1022
  country: string;
1023
1023
  }
1024
1024
 
1025
+ /**
1026
+ * Multi-step privacy-policy authoring hook that adapts the generated draft
1027
+ * to the supplied template context (industry, processing purposes, data
1028
+ * categories, processors). Auto-persists a draft via the supplied adapter
1029
+ * and surfaces a live compliance score against the configured rule set.
1030
+ *
1031
+ * @example
1032
+ * ```tsx
1033
+ * import { useAdaptivePolicyWizard } from '@tantainnovative/ndpr-toolkit/hooks';
1034
+ *
1035
+ * function PolicyWizard() {
1036
+ * const { currentStep, nextStep, policy, complianceScore } = useAdaptivePolicyWizard();
1037
+ * return (
1038
+ * <div>
1039
+ * <p>Step {currentStep} — compliance: {complianceScore}%</p>
1040
+ * <button onClick={nextStep}>Next</button>
1041
+ * {policy && <pre>{policy.title}</pre>}
1042
+ * </div>
1043
+ * );
1044
+ * }
1045
+ * ```
1046
+ */
1025
1047
  export declare function useAdaptivePolicyWizard(options?: UseAdaptivePolicyWizardOptions): UseAdaptivePolicyWizardReturn;
1026
1048
 
1027
1049
  export declare interface UseAdaptivePolicyWizardOptions {
@@ -1155,7 +1177,23 @@ declare interface UseDefaultPrivacyPolicyOptions {
1155
1177
  export declare function usePolicyCompound(): PolicyContextValue;
1156
1178
 
1157
1179
  /**
1158
- * Hook for generating NDPA-compliant privacy policies
1180
+ * Hook for generating NDPA-compliant privacy policies.
1181
+ *
1182
+ * @example
1183
+ * ```tsx
1184
+ * import { usePrivacyPolicy } from '@tantainnovative/ndpr-toolkit/hooks';
1185
+ *
1186
+ * function PolicyBuilder({ templates }) {
1187
+ * const { policy, selectTemplate, generatePolicy } = usePrivacyPolicy({ templates });
1188
+ * return (
1189
+ * <div>
1190
+ * <button onClick={() => selectTemplate(templates[0].id)}>Select default</button>
1191
+ * <button onClick={generatePolicy}>Generate</button>
1192
+ * {policy && <pre>{policy.title}</pre>}
1193
+ * </div>
1194
+ * );
1195
+ * }
1196
+ * ```
1159
1197
  */
1160
1198
  export declare function usePrivacyPolicy({ templates, initialPolicy, adapter, storageKey, persist, useLocalStorage, onGenerate, }: UsePrivacyPolicyOptions): UsePrivacyPolicyReturn;
1161
1199
 
package/dist/presets.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';var chunkEKNWO4DK_js=require('./chunk-EKNWO4DK.js'),chunkUS2VGJ7I_js=require('./chunk-US2VGJ7I.js'),chunkJWAN5J4Y_js=require('./chunk-JWAN5J4Y.js');require('./chunk-6GM2PBTF.js');var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkO2RDZGM2_js=require('./chunk-O2RDZGM2.js'),chunkPZRQWPWD_js=require('./chunk-PZRQWPWD.js'),chunkSSH4U4TJ_js=require('./chunk-SSH4U4TJ.js'),chunk5GVMKUMP_js=require('./chunk-5GVMKUMP.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-D3DVVJCT.js'),require('./chunk-L2VO3MEJ.js'),require('./chunk-TWJHEIQH.js'),require('./chunk-UXUMYP4L.js'),require('./chunk-NDKDKDDX.js'),require('./chunk-WKTKTLMF.js');var chunkWDDCKYWA_js=require('./chunk-WDDCKYWA.js');require('./chunk-ZVOIR4QH.js'),require('./chunk-AME4HJR4.js'),require('./chunk-VWED6UTN.js');var chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js'),jsxRuntime=require('react/jsx-runtime'),react=require('react');var L=[{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"}],I=({categories:c=L,adapter:r,classNames:u,unstyled:p,onSubmit:o=()=>{}})=>jsxRuntime.jsx(chunkO2RDZGM2_js.a,{categories:c,onSubmit:d=>{r&&r.save(d),o(d);},classNames:u,unstyled:p});var k=[{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"}]}]}],_=({sections:c=k,adapter:r,classNames:u,unstyled:p,onComplete:o=()=>{}})=>{let[n,d]=react.useState({}),[m,P]=react.useState(0),h=(a,C)=>{d(S=>chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},S),{[a]:C}));},e=()=>{m<c.length-1?P(a=>a+1):(r&&r.save(n),o(n));},t=()=>{m>0&&P(a=>a-1);},s=Math.round((m+1)/c.length*100);return jsxRuntime.jsx(chunkWDDCKYWA_js.a,{sections:c,answers:n,onAnswerChange:h,currentSectionIndex:m,onNextSection:e,onPrevSection:t,progress:s,classNames:u,unstyled:p})};var M=({initialActivities:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=react.useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});react.useEffect(()=>{if(!r)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d=e=>{r&&r.save(e);};return jsxRuntime.jsx(chunkPZRQWPWD_js.a,{activities:o,onAddActivity:e=>{let t=Date.now(),s=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{id:`activity-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d(a);},onUpdateActivity:(e,t)=>{let s=o.map(a=>a.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},a),t),{updatedAt:Date.now()}):a);n(s),d(s);},onArchiveActivity:e=>{let t=o.map(s=>s.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},s),{status:"inactive",updatedAt:Date.now()}):s);n(t),d(t);},classNames:u,unstyled:p})};var z=({initialTransfers:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=react.useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});react.useEffect(()=>{if(!r)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d=e=>{r&&r.save(e);};return jsxRuntime.jsx(chunkSSH4U4TJ_js.a,{transfers:o,onAddTransfer:e=>{let t=Date.now(),s=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{id:`transfer-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d(a);},onUpdateTransfer:(e,t)=>{let s=o.map(a=>a.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},a),t),{updatedAt:Date.now()}):a);n(s),d(s);},onRemoveTransfer:e=>{let t=o.filter(s=>s.id!==e);n(t),d(t);},classNames:u,unstyled:p})};var $={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},G=({initialData:c,adapter:r,classNames:u,unstyled:p})=>{let[o,n]=react.useState(c!=null?c:$);react.useEffect(()=>{if(!r)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){let s=yield r.load();!e&&s&&n(s);}),()=>{e=true;}},[r]);let d=e=>{r&&r.save(e);};return jsxRuntime.jsx(chunk5GVMKUMP_js.a,{ropa:o,onAddRecord:e=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:[...o.records,e],lastUpdated:Date.now()});n(t),d(t);},onUpdateRecord:(e,t)=>{let s=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:o.records.map(a=>a.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},a),t),{updatedAt:Date.now()}):a),lastUpdated:Date.now()});n(s),d(s);},onArchiveRecord:e=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:o.records.map(s=>s.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},s),{status:"archived",updatedAt:Date.now()}):s),lastUpdated:Date.now()});n(t),d(t);},classNames:u,unstyled:p})};var J=u=>{var p=u,{input:c}=p,r=chunkRFPLZDIO_js.c(p,["input"]);let o=chunkRDALAH3Y_js.a(c);return jsxRuntime.jsx(chunkNUWVPRNI_js.a,chunkRFPLZDIO_js.a({report:o},r))};Object.defineProperty(exports,"NDPRConsent",{enumerable:true,get:function(){return chunkEKNWO4DK_js.a}});Object.defineProperty(exports,"NDPRSubjectRights",{enumerable:true,get:function(){return chunkUS2VGJ7I_js.a}});Object.defineProperty(exports,"NDPRPrivacyPolicy",{enumerable:true,get:function(){return chunkJWAN5J4Y_js.a}});exports.NDPRBreachReport=I;exports.NDPRComplianceDashboard=J;exports.NDPRCrossBorder=z;exports.NDPRDPIA=_;exports.NDPRLawfulBasis=M;exports.NDPRROPA=G;
2
+ 'use strict';var chunkEKNWO4DK_js=require('./chunk-EKNWO4DK.js'),chunkUS2VGJ7I_js=require('./chunk-US2VGJ7I.js'),chunkJWAN5J4Y_js=require('./chunk-JWAN5J4Y.js');require('./chunk-6GM2PBTF.js');var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkVUFTRKKC_js=require('./chunk-VUFTRKKC.js'),chunkNX5MOBRI_js=require('./chunk-NX5MOBRI.js'),chunkYSD2DFBR_js=require('./chunk-YSD2DFBR.js'),chunkWXUXCRAJ_js=require('./chunk-WXUXCRAJ.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-D3DVVJCT.js'),require('./chunk-L2VO3MEJ.js'),require('./chunk-TWJHEIQH.js'),require('./chunk-UXUMYP4L.js'),require('./chunk-NDKDKDDX.js'),require('./chunk-WKTKTLMF.js');var chunkROC64RLP_js=require('./chunk-ROC64RLP.js');require('./chunk-ZVOIR4QH.js'),require('./chunk-AME4HJR4.js'),require('./chunk-VWED6UTN.js');var chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js'),jsxRuntime=require('react/jsx-runtime'),react=require('react');var L=[{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"}],I=({categories:c=L,adapter:r,classNames:u,unstyled:p,onSubmit:o=()=>{}})=>jsxRuntime.jsx(chunkVUFTRKKC_js.a,{categories:c,onSubmit:d=>{r&&r.save(d),o(d);},classNames:u,unstyled:p});var k=[{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"}]}]}],_=({sections:c=k,adapter:r,classNames:u,unstyled:p,onComplete:o=()=>{}})=>{let[n,d]=react.useState({}),[m,P]=react.useState(0),h=(a,C)=>{d(S=>chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},S),{[a]:C}));},e=()=>{m<c.length-1?P(a=>a+1):(r&&r.save(n),o(n));},t=()=>{m>0&&P(a=>a-1);},s=Math.round((m+1)/c.length*100);return jsxRuntime.jsx(chunkROC64RLP_js.a,{sections:c,answers:n,onAnswerChange:h,currentSectionIndex:m,onNextSection:e,onPrevSection:t,progress:s,classNames:u,unstyled:p})};var M=({initialActivities:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=react.useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});react.useEffect(()=>{if(!r)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d=e=>{r&&r.save(e);};return jsxRuntime.jsx(chunkNX5MOBRI_js.a,{activities:o,onAddActivity:e=>{let t=Date.now(),s=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{id:`activity-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d(a);},onUpdateActivity:(e,t)=>{let s=o.map(a=>a.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},a),t),{updatedAt:Date.now()}):a);n(s),d(s);},onArchiveActivity:e=>{let t=o.map(s=>s.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},s),{status:"inactive",updatedAt:Date.now()}):s);n(t),d(t);},classNames:u,unstyled:p})};var z=({initialTransfers:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=react.useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});react.useEffect(()=>{if(!r)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d=e=>{r&&r.save(e);};return jsxRuntime.jsx(chunkYSD2DFBR_js.a,{transfers:o,onAddTransfer:e=>{let t=Date.now(),s=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{id:`transfer-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d(a);},onUpdateTransfer:(e,t)=>{let s=o.map(a=>a.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},a),t),{updatedAt:Date.now()}):a);n(s),d(s);},onRemoveTransfer:e=>{let t=o.filter(s=>s.id!==e);n(t),d(t);},classNames:u,unstyled:p})};var $={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},G=({initialData:c,adapter:r,classNames:u,unstyled:p})=>{let[o,n]=react.useState(c!=null?c:$);react.useEffect(()=>{if(!r)return;let e=false;return chunkRFPLZDIO_js.d(null,null,function*(){let s=yield r.load();!e&&s&&n(s);}),()=>{e=true;}},[r]);let d=e=>{r&&r.save(e);};return jsxRuntime.jsx(chunkWXUXCRAJ_js.a,{ropa:o,onAddRecord:e=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:[...o.records,e],lastUpdated:Date.now()});n(t),d(t);},onUpdateRecord:(e,t)=>{let s=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:o.records.map(a=>a.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},a),t),{updatedAt:Date.now()}):a),lastUpdated:Date.now()});n(s),d(s);},onArchiveRecord:e=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},o),{records:o.records.map(s=>s.id===e?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},s),{status:"archived",updatedAt:Date.now()}):s),lastUpdated:Date.now()});n(t),d(t);},classNames:u,unstyled:p})};var J=u=>{var p=u,{input:c}=p,r=chunkRFPLZDIO_js.c(p,["input"]);let o=chunkRDALAH3Y_js.a(c);return jsxRuntime.jsx(chunkNUWVPRNI_js.a,chunkRFPLZDIO_js.a({report:o},r))};Object.defineProperty(exports,"NDPRConsent",{enumerable:true,get:function(){return chunkEKNWO4DK_js.a}});Object.defineProperty(exports,"NDPRSubjectRights",{enumerable:true,get:function(){return chunkUS2VGJ7I_js.a}});Object.defineProperty(exports,"NDPRPrivacyPolicy",{enumerable:true,get:function(){return chunkJWAN5J4Y_js.a}});exports.NDPRBreachReport=I;exports.NDPRComplianceDashboard=J;exports.NDPRCrossBorder=z;exports.NDPRDPIA=_;exports.NDPRLawfulBasis=M;exports.NDPRROPA=G;
package/dist/presets.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{a as NDPRConsent}from'./chunk-OLEUIYE2.mjs';export{a as NDPRSubjectRights}from'./chunk-MTSZ7GL6.mjs';export{a as NDPRPrivacyPolicy}from'./chunk-GEP52QFH.mjs';import'./chunk-TDHH7GS2.mjs';import {a as a$7}from'./chunk-ZIZL37BG.mjs';import {a}from'./chunk-KY6WYHWB.mjs';import {a as a$2}from'./chunk-COD3RMTL.mjs';import {a as a$4}from'./chunk-43OQNS2J.mjs';import {a as a$5}from'./chunk-EXEXUAF6.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-WYH3OA5L.mjs';import'./chunk-YTU4FNM2.mjs';import'./chunk-IPWX5I5P.mjs';import'./chunk-EWVK45Z3.mjs';import'./chunk-25TNTLHJ.mjs';import'./chunk-RBMLGRDN.mjs';import {a as a$1}from'./chunk-ZQZJNKVB.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-SFGW37LE.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 L=[{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"}],I=({categories:c=L,adapter:r,classNames:u,unstyled:p,onSubmit:o=()=>{}})=>jsx(a,{categories:c,onSubmit:d=>{r&&r.save(d),o(d);},classNames:u,unstyled:p});var k=[{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"}]}]}],_=({sections:c=k,adapter:r,classNames:u,unstyled:p,onComplete:o=()=>{}})=>{let[n,d]=useState({}),[m,P]=useState(0),h=(a,C)=>{d(S=>b(a$3({},S),{[a]:C}));},e=()=>{m<c.length-1?P(a=>a+1):(r&&r.save(n),o(n));},t=()=>{m>0&&P(a=>a-1);},s=Math.round((m+1)/c.length*100);return jsx(a$1,{sections:c,answers:n,onAnswerChange:h,currentSectionIndex:m,onNextSection:e,onPrevSection:t,progress:s,classNames:u,unstyled:p})};var M=({initialActivities:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});useEffect(()=>{if(!r)return;let e=false;return d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d$1=e=>{r&&r.save(e);};return jsx(a$2,{activities:o,onAddActivity:e=>{let t=Date.now(),s=b(a$3({},e),{id:`activity-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d$1(a);},onUpdateActivity:(e,t)=>{let s=o.map(a=>a.id===e?b(a$3(a$3({},a),t),{updatedAt:Date.now()}):a);n(s),d$1(s);},onArchiveActivity:e=>{let t=o.map(s=>s.id===e?b(a$3({},s),{status:"inactive",updatedAt:Date.now()}):s);n(t),d$1(t);},classNames:u,unstyled:p})};var z=({initialTransfers:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});useEffect(()=>{if(!r)return;let e=false;return d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d$1=e=>{r&&r.save(e);};return jsx(a$4,{transfers:o,onAddTransfer:e=>{let t=Date.now(),s=b(a$3({},e),{id:`transfer-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d$1(a);},onUpdateTransfer:(e,t)=>{let s=o.map(a=>a.id===e?b(a$3(a$3({},a),t),{updatedAt:Date.now()}):a);n(s),d$1(s);},onRemoveTransfer:e=>{let t=o.filter(s=>s.id!==e);n(t),d$1(t);},classNames:u,unstyled:p})};var $={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},G=({initialData:c,adapter:r,classNames:u,unstyled:p})=>{let[o,n]=useState(c!=null?c:$);useEffect(()=>{if(!r)return;let e=false;return d(null,null,function*(){let s=yield r.load();!e&&s&&n(s);}),()=>{e=true;}},[r]);let d$1=e=>{r&&r.save(e);};return jsx(a$5,{ropa:o,onAddRecord:e=>{let t=b(a$3({},o),{records:[...o.records,e],lastUpdated:Date.now()});n(t),d$1(t);},onUpdateRecord:(e,t)=>{let s=b(a$3({},o),{records:o.records.map(a=>a.id===e?b(a$3(a$3({},a),t),{updatedAt:Date.now()}):a),lastUpdated:Date.now()});n(s),d$1(s);},onArchiveRecord:e=>{let t=b(a$3({},o),{records:o.records.map(s=>s.id===e?b(a$3({},s),{status:"archived",updatedAt:Date.now()}):s),lastUpdated:Date.now()});n(t),d$1(t);},classNames:u,unstyled:p})};var J=u=>{var p=u,{input:c$1}=p,r=c(p,["input"]);let o=a$6(c$1);return jsx(a$7,a$3({report:o},r))};export{I as NDPRBreachReport,J as NDPRComplianceDashboard,z as NDPRCrossBorder,_ as NDPRDPIA,M as NDPRLawfulBasis,G as NDPRROPA};
2
+ export{a as NDPRConsent}from'./chunk-OLEUIYE2.mjs';export{a as NDPRSubjectRights}from'./chunk-MTSZ7GL6.mjs';export{a as NDPRPrivacyPolicy}from'./chunk-GEP52QFH.mjs';import'./chunk-TDHH7GS2.mjs';import {a as a$7}from'./chunk-ZIZL37BG.mjs';import {a}from'./chunk-TN4TH3CT.mjs';import {a as a$2}from'./chunk-67KA345Q.mjs';import {a as a$4}from'./chunk-ZHX62QAL.mjs';import {a as a$5}from'./chunk-CAFCRCTZ.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-WYH3OA5L.mjs';import'./chunk-YTU4FNM2.mjs';import'./chunk-IPWX5I5P.mjs';import'./chunk-EWVK45Z3.mjs';import'./chunk-25TNTLHJ.mjs';import'./chunk-RBMLGRDN.mjs';import {a as a$1}from'./chunk-6OWCUDTN.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-SFGW37LE.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 L=[{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"}],I=({categories:c=L,adapter:r,classNames:u,unstyled:p,onSubmit:o=()=>{}})=>jsx(a,{categories:c,onSubmit:d=>{r&&r.save(d),o(d);},classNames:u,unstyled:p});var k=[{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"}]}]}],_=({sections:c=k,adapter:r,classNames:u,unstyled:p,onComplete:o=()=>{}})=>{let[n,d]=useState({}),[m,P]=useState(0),h=(a,C)=>{d(S=>b(a$3({},S),{[a]:C}));},e=()=>{m<c.length-1?P(a=>a+1):(r&&r.save(n),o(n));},t=()=>{m>0&&P(a=>a-1);},s=Math.round((m+1)/c.length*100);return jsx(a$1,{sections:c,answers:n,onAnswerChange:h,currentSectionIndex:m,onNextSection:e,onPrevSection:t,progress:s,classNames:u,unstyled:p})};var M=({initialActivities:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});useEffect(()=>{if(!r)return;let e=false;return d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d$1=e=>{r&&r.save(e);};return jsx(a$2,{activities:o,onAddActivity:e=>{let t=Date.now(),s=b(a$3({},e),{id:`activity-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d$1(a);},onUpdateActivity:(e,t)=>{let s=o.map(a=>a.id===e?b(a$3(a$3({},a),t),{updatedAt:Date.now()}):a);n(s),d$1(s);},onArchiveActivity:e=>{let t=o.map(s=>s.id===e?b(a$3({},s),{status:"inactive",updatedAt:Date.now()}):s);n(t),d$1(t);},classNames:u,unstyled:p})};var z=({initialTransfers:c=[],adapter:r,classNames:u,unstyled:p})=>{let[o,n]=useState(()=>{if(r){let e=r.load();if(e&&!(e instanceof Promise))return e}return c});useEffect(()=>{if(!r)return;let e=false;return d(null,null,function*(){try{let t=yield r.load();!e&&t&&n(t);}catch(t){}}),()=>{e=true;}},[r]);let d$1=e=>{r&&r.save(e);};return jsx(a$4,{transfers:o,onAddTransfer:e=>{let t=Date.now(),s=b(a$3({},e),{id:`transfer-${t}`,createdAt:t,updatedAt:t}),a=[...o,s];n(a),d$1(a);},onUpdateTransfer:(e,t)=>{let s=o.map(a=>a.id===e?b(a$3(a$3({},a),t),{updatedAt:Date.now()}):a);n(s),d$1(s);},onRemoveTransfer:e=>{let t=o.filter(s=>s.id!==e);n(t),d$1(t);},classNames:u,unstyled:p})};var $={id:"ndpr-ropa-default",organizationName:"Your Organisation",organizationContact:"",organizationAddress:"",records:[],lastUpdated:Date.now(),version:"1.0"},G=({initialData:c,adapter:r,classNames:u,unstyled:p})=>{let[o,n]=useState(c!=null?c:$);useEffect(()=>{if(!r)return;let e=false;return d(null,null,function*(){let s=yield r.load();!e&&s&&n(s);}),()=>{e=true;}},[r]);let d$1=e=>{r&&r.save(e);};return jsx(a$5,{ropa:o,onAddRecord:e=>{let t=b(a$3({},o),{records:[...o.records,e],lastUpdated:Date.now()});n(t),d$1(t);},onUpdateRecord:(e,t)=>{let s=b(a$3({},o),{records:o.records.map(a=>a.id===e?b(a$3(a$3({},a),t),{updatedAt:Date.now()}):a),lastUpdated:Date.now()});n(s),d$1(s);},onArchiveRecord:e=>{let t=b(a$3({},o),{records:o.records.map(s=>s.id===e?b(a$3({},s),{status:"archived",updatedAt:Date.now()}):s),lastUpdated:Date.now()});n(t),d$1(t);},classNames:u,unstyled:p})};var J=u=>{var p=u,{input:c$1}=p,r=c(p,["input"]);let o=a$6(c$1);return jsx(a$7,a$3({report:o},r))};export{I as NDPRBreachReport,J as NDPRComplianceDashboard,z as NDPRCrossBorder,_ as NDPRDPIA,M as NDPRLawfulBasis,G as NDPRROPA};
package/dist/ropa.d.mts CHANGED
@@ -315,6 +315,21 @@ export declare interface StorageAdapter<T = unknown> {
315
315
  *
316
316
  * Provides state management and utility functions for maintaining
317
317
  * a comprehensive register of all data processing activities.
318
+ *
319
+ * @example
320
+ * ```tsx
321
+ * import { useROPA } from '@tantainnovative/ndpr-toolkit/hooks';
322
+ *
323
+ * function ROPARegister({ initialData }) {
324
+ * const { ropa, addRecord, exportCSV } = useROPA({ initialData });
325
+ * return (
326
+ * <div>
327
+ * <p>{ropa.records.length} processing records</p>
328
+ * <button onClick={() => download(exportCSV())}>Export CSV</button>
329
+ * </div>
330
+ * );
331
+ * }
332
+ * ```
318
333
  */
319
334
  export declare function useROPA({ initialData, adapter, onRecordAdd, onRecordUpdate, onRecordArchive, }: UseROPAOptions): UseROPAReturn;
320
335
 
@@ -367,17 +382,38 @@ export declare interface UseROPAReturn {
367
382
  */
368
383
  getRecord: (id: string) => ProcessingRecord | undefined;
369
384
  /**
370
- * Get a summary of the ROPA including statistics
385
+ * Get a summary of the ROPA including statistics.
386
+ * @deprecated Use the cached `summary` field instead — it is memoised on
387
+ * `ropa` so consumers don't pay the recompute cost on every call.
371
388
  */
372
389
  getSummary: () => ROPASummary;
373
390
  /**
374
- * Export the ROPA as a CSV string
391
+ * Export the ROPA as a CSV string.
392
+ * @deprecated Use the cached `csv` field instead — it is memoised on
393
+ * `ropa` so consumers don't pay the recompute cost on every call.
375
394
  */
376
395
  exportCSV: () => string;
377
396
  /**
378
- * Identify compliance gaps across all records
397
+ * Identify compliance gaps across all records.
398
+ * @deprecated Use the cached `complianceGaps` field instead — it is
399
+ * memoised on `ropa` so consumers don't pay the recompute cost on every call.
379
400
  */
380
401
  getComplianceGaps: () => ROPAComplianceGap[];
402
+ /**
403
+ * Memoised ROPA summary. Recomputed only when `ropa` changes.
404
+ * Prefer this over `getSummary()` to avoid redundant recomputation.
405
+ */
406
+ summary: ROPASummary;
407
+ /**
408
+ * Memoised CSV export string. Recomputed only when `ropa` changes.
409
+ * Prefer this over `exportCSV()` to avoid redundant recomputation.
410
+ */
411
+ csv: string;
412
+ /**
413
+ * Memoised compliance gap list. Recomputed only when `ropa` changes.
414
+ * Prefer this over `getComplianceGaps()` to avoid redundant recomputation.
415
+ */
416
+ complianceGaps: ROPAComplianceGap[];
381
417
  /**
382
418
  * Whether the adapter is still loading data (relevant for async adapters)
383
419
  */
package/dist/ropa.d.ts CHANGED
@@ -315,6 +315,21 @@ export declare interface StorageAdapter<T = unknown> {
315
315
  *
316
316
  * Provides state management and utility functions for maintaining
317
317
  * a comprehensive register of all data processing activities.
318
+ *
319
+ * @example
320
+ * ```tsx
321
+ * import { useROPA } from '@tantainnovative/ndpr-toolkit/hooks';
322
+ *
323
+ * function ROPARegister({ initialData }) {
324
+ * const { ropa, addRecord, exportCSV } = useROPA({ initialData });
325
+ * return (
326
+ * <div>
327
+ * <p>{ropa.records.length} processing records</p>
328
+ * <button onClick={() => download(exportCSV())}>Export CSV</button>
329
+ * </div>
330
+ * );
331
+ * }
332
+ * ```
318
333
  */
319
334
  export declare function useROPA({ initialData, adapter, onRecordAdd, onRecordUpdate, onRecordArchive, }: UseROPAOptions): UseROPAReturn;
320
335
 
@@ -367,17 +382,38 @@ export declare interface UseROPAReturn {
367
382
  */
368
383
  getRecord: (id: string) => ProcessingRecord | undefined;
369
384
  /**
370
- * Get a summary of the ROPA including statistics
385
+ * Get a summary of the ROPA including statistics.
386
+ * @deprecated Use the cached `summary` field instead — it is memoised on
387
+ * `ropa` so consumers don't pay the recompute cost on every call.
371
388
  */
372
389
  getSummary: () => ROPASummary;
373
390
  /**
374
- * Export the ROPA as a CSV string
391
+ * Export the ROPA as a CSV string.
392
+ * @deprecated Use the cached `csv` field instead — it is memoised on
393
+ * `ropa` so consumers don't pay the recompute cost on every call.
375
394
  */
376
395
  exportCSV: () => string;
377
396
  /**
378
- * Identify compliance gaps across all records
397
+ * Identify compliance gaps across all records.
398
+ * @deprecated Use the cached `complianceGaps` field instead — it is
399
+ * memoised on `ropa` so consumers don't pay the recompute cost on every call.
379
400
  */
380
401
  getComplianceGaps: () => ROPAComplianceGap[];
402
+ /**
403
+ * Memoised ROPA summary. Recomputed only when `ropa` changes.
404
+ * Prefer this over `getSummary()` to avoid redundant recomputation.
405
+ */
406
+ summary: ROPASummary;
407
+ /**
408
+ * Memoised CSV export string. Recomputed only when `ropa` changes.
409
+ * Prefer this over `exportCSV()` to avoid redundant recomputation.
410
+ */
411
+ csv: string;
412
+ /**
413
+ * Memoised compliance gap list. Recomputed only when `ropa` changes.
414
+ * Prefer this over `getComplianceGaps()` to avoid redundant recomputation.
415
+ */
416
+ complianceGaps: ROPAComplianceGap[];
381
417
  /**
382
418
  * Whether the adapter is still loading data (relevant for async adapters)
383
419
  */
package/dist/ropa.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';var chunk5GVMKUMP_js=require('./chunk-5GVMKUMP.js'),chunk3JPDTXGC_js=require('./chunk-3JPDTXGC.js'),chunk4CVBQC66_js=require('./chunk-4CVBQC66.js');require('./chunk-AME4HJR4.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var t=react.createContext(null);function u(){let r=react.useContext(t);if(!r)throw new Error("ROPA compound components must be wrapped in <ROPA.Provider>. Example: <ROPA.Provider initialData={...}><ROPA.Manager /></ROPA.Provider>");return r}var p=({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a,children:s})=>{let R=chunk3JPDTXGC_js.a({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a});return jsxRuntime.jsx(t.Provider,{value:R,children:s})};var v={Provider:p,Manager:chunk5GVMKUMP_js.a};Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunk5GVMKUMP_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunk3JPDTXGC_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}});exports.ROPA=v;exports.ROPAProvider=p;exports.useROPACompound=u;
2
+ 'use strict';var chunkWXUXCRAJ_js=require('./chunk-WXUXCRAJ.js'),chunkO2WEABB3_js=require('./chunk-O2WEABB3.js'),chunk4CVBQC66_js=require('./chunk-4CVBQC66.js');require('./chunk-AME4HJR4.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var t=react.createContext(null);function u(){let r=react.useContext(t);if(!r)throw new Error("ROPA compound components must be wrapped in <ROPA.Provider>. Example: <ROPA.Provider initialData={...}><ROPA.Manager /></ROPA.Provider>");return r}var p=({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a,children:s})=>{let R=chunkO2WEABB3_js.a({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a});return jsxRuntime.jsx(t.Provider,{value:R,children:s})};var v={Provider:p,Manager:chunkWXUXCRAJ_js.a};Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunkWXUXCRAJ_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunkO2WEABB3_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}});exports.ROPA=v;exports.ROPAProvider=p;exports.useROPACompound=u;
package/dist/ropa.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import {a}from'./chunk-EXEXUAF6.mjs';export{a as ROPAManager}from'./chunk-EXEXUAF6.mjs';import {a as a$1}from'./chunk-RPXRPGHL.mjs';export{a as useROPA}from'./chunk-RPXRPGHL.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-XP5PL6K7.mjs';import'./chunk-SFGW37LE.mjs';import'./chunk-ZJYULEER.mjs';import {createContext,useContext}from'react';import {jsx}from'react/jsx-runtime';var t=createContext(null);function u(){let r=useContext(t);if(!r)throw new Error("ROPA compound components must be wrapped in <ROPA.Provider>. Example: <ROPA.Provider initialData={...}><ROPA.Manager /></ROPA.Provider>");return r}var p=({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a,children:s})=>{let R=a$1({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a});return jsx(t.Provider,{value:R,children:s})};var v={Provider:p,Manager:a};export{v as ROPA,p as ROPAProvider,u as useROPACompound};
2
+ import {a}from'./chunk-CAFCRCTZ.mjs';export{a as ROPAManager}from'./chunk-CAFCRCTZ.mjs';import {a as a$1}from'./chunk-WKUC65HL.mjs';export{a as useROPA}from'./chunk-WKUC65HL.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-XP5PL6K7.mjs';import'./chunk-SFGW37LE.mjs';import'./chunk-ZJYULEER.mjs';import {createContext,useContext}from'react';import {jsx}from'react/jsx-runtime';var t=createContext(null);function u(){let r=useContext(t);if(!r)throw new Error("ROPA compound components must be wrapped in <ROPA.Provider>. Example: <ROPA.Provider initialData={...}><ROPA.Manager /></ROPA.Provider>");return r}var p=({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a,children:s})=>{let R=a$1({initialData:r,adapter:i,onRecordAdd:P,onRecordUpdate:n,onRecordArchive:a});return jsx(t.Provider,{value:R,children:s})};var v={Provider:p,Manager:a};export{v as ROPA,p as ROPAProvider,u as useROPACompound};