@tantainnovative/ndpr-toolkit 3.4.1 → 3.5.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 (177) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/adapters.d.mts +34 -25
  3. package/dist/adapters.d.ts +34 -25
  4. package/dist/breach.d.mts +803 -44
  5. package/dist/breach.d.ts +803 -44
  6. package/dist/breach.js +1 -1
  7. package/dist/breach.mjs +1 -1
  8. package/dist/{chunk-ASLMPY54.js → chunk-3EGQWLJ6.js} +3 -3
  9. package/dist/chunk-B4Z5MBUC.mjs +2 -0
  10. package/dist/{chunk-LSCMXAPY.mjs → chunk-CKGJK4D7.mjs} +3 -3
  11. package/dist/{chunk-XSEZDQLB.js → chunk-CKJAECGV.js} +2 -2
  12. package/dist/{chunk-AHSMDPG5.js → chunk-CPK5D5FY.js} +2 -2
  13. package/dist/{chunk-DCJK5OZT.mjs → chunk-CWHBCQGT.mjs} +2 -2
  14. package/dist/{chunk-MLOWRZXO.mjs → chunk-F5TXUA4O.mjs} +3 -3
  15. package/dist/{chunk-BN77GP4W.mjs → chunk-GN5C32JB.mjs} +2 -2
  16. package/dist/{chunk-ZLSWOFAY.mjs → chunk-GRLIPT5V.mjs} +2 -2
  17. package/dist/{chunk-DUY6F3GT.mjs → chunk-H3EYBSVP.mjs} +3 -3
  18. package/dist/{chunk-NFJ4CB63.mjs → chunk-ID2NYIVE.mjs} +3 -3
  19. package/dist/chunk-J5WCPZLW.js +2 -0
  20. package/dist/{chunk-P2YV6DR3.js → chunk-LIM64IV2.js} +3 -3
  21. package/dist/chunk-LU7PKE7Y.mjs +2 -0
  22. package/dist/{chunk-HQSU7LGM.js → chunk-LWXZMKC2.js} +4 -4
  23. package/dist/{chunk-4BOEFDDE.js → chunk-ORFC66EA.js} +3 -3
  24. package/dist/{chunk-VTITKWGX.mjs → chunk-QSVVAZVT.mjs} +2 -2
  25. package/dist/chunk-SCWNM4PC.mjs +2 -0
  26. package/dist/{chunk-EHAZIKDX.js → chunk-SKKOMFXH.js} +2 -2
  27. package/dist/{chunk-WH6ZMUOS.mjs → chunk-TUNQUVHU.mjs} +2 -2
  28. package/dist/chunk-TV4U6AIS.js +2 -0
  29. package/dist/{chunk-ZYLDLGFL.js → chunk-VIQUXWJC.js} +2 -2
  30. package/dist/{chunk-SUEGUY35.js → chunk-XIM7KMD6.js} +2 -2
  31. package/dist/{chunk-P6QAFBCV.js → chunk-XNSZ7KUH.js} +2 -2
  32. package/dist/consent.d.mts +648 -84
  33. package/dist/consent.d.ts +648 -84
  34. package/dist/consent.js +1 -1
  35. package/dist/consent.mjs +1 -1
  36. package/dist/core.d.mts +2049 -23
  37. package/dist/core.d.ts +2049 -23
  38. package/dist/core.js +1 -1
  39. package/dist/core.mjs +1 -1
  40. package/dist/cross-border.d.mts +470 -99
  41. package/dist/cross-border.d.ts +470 -99
  42. package/dist/dpia.d.mts +591 -37
  43. package/dist/dpia.d.ts +591 -37
  44. package/dist/dsr.d.mts +654 -37
  45. package/dist/dsr.d.ts +654 -37
  46. package/dist/dsr.js +1 -1
  47. package/dist/dsr.mjs +1 -1
  48. package/dist/hooks.d.mts +2174 -30
  49. package/dist/hooks.d.ts +2174 -30
  50. package/dist/hooks.js +1 -1
  51. package/dist/hooks.mjs +1 -1
  52. package/dist/index.d.mts +4428 -43
  53. package/dist/index.d.ts +4428 -43
  54. package/dist/index.js +1 -1
  55. package/dist/index.mjs +1 -1
  56. package/dist/lawful-basis.d.mts +368 -32
  57. package/dist/lawful-basis.d.ts +368 -32
  58. package/dist/policy.d.mts +1178 -83
  59. package/dist/policy.d.ts +1178 -83
  60. package/dist/policy.js +1 -1
  61. package/dist/policy.mjs +1 -1
  62. package/dist/presets.d.mts +1020 -114
  63. package/dist/presets.d.ts +1020 -114
  64. package/dist/presets.js +1 -1
  65. package/dist/presets.mjs +1 -1
  66. package/dist/ropa.d.mts +396 -31
  67. package/dist/ropa.d.ts +396 -31
  68. package/dist/ropa.js +1 -1
  69. package/dist/ropa.mjs +1 -1
  70. package/dist/server.d.mts +2133 -24
  71. package/dist/server.d.ts +2133 -24
  72. package/dist/server.js +1 -1
  73. package/dist/server.mjs +1 -1
  74. package/dist/unstyled.d.mts +523 -55
  75. package/dist/unstyled.d.ts +523 -55
  76. package/dist/unstyled.js +1 -1
  77. package/dist/unstyled.mjs +1 -1
  78. package/package.json +3 -3
  79. package/dist/BreachReportForm-DpRrBoxU.d.ts +0 -158
  80. package/dist/BreachReportForm-yJ2Zl6gz.d.mts +0 -158
  81. package/dist/ConsentBanner-F5ayys5K.d.mts +0 -156
  82. package/dist/ConsentBanner-VqIPophc.d.ts +0 -156
  83. package/dist/ConsentManager-C7I3PDe8.d.mts +0 -105
  84. package/dist/ConsentManager-CQ2IZtUU.d.ts +0 -105
  85. package/dist/CrossBorderTransferManager-D5Lc0e46.d.ts +0 -90
  86. package/dist/CrossBorderTransferManager-DkZhv9vD.d.mts +0 -90
  87. package/dist/DPIAQuestionnaire-VXBoWFMC.d.ts +0 -123
  88. package/dist/DPIAQuestionnaire-jkt1Veb6.d.mts +0 -123
  89. package/dist/DSRRequestForm-D8rPTNmU.d.ts +0 -146
  90. package/dist/DSRRequestForm-DRouEr9j.d.mts +0 -146
  91. package/dist/DSRTracker-Bl__d4df.d.ts +0 -163
  92. package/dist/DSRTracker-CSVDfgQQ.d.mts +0 -163
  93. package/dist/LawfulBasisTracker-CBqOxX1D.d.mts +0 -85
  94. package/dist/LawfulBasisTracker-Cg30NbDA.d.ts +0 -85
  95. package/dist/NDPRDashboard-CLJpEg0X.d.mts +0 -44
  96. package/dist/NDPRDashboard-DDWNd2Ah.d.ts +0 -44
  97. package/dist/NDPRProvider-DYFb8xEl.d.ts +0 -68
  98. package/dist/NDPRProvider-U3QNu6MA.d.mts +0 -68
  99. package/dist/PolicyExporter-Bgi6nz82.d.mts +0 -291
  100. package/dist/PolicyExporter-BnvuFncj.d.ts +0 -291
  101. package/dist/ROPAManager-BS4eB8Hw.d.mts +0 -79
  102. package/dist/ROPAManager-qxTrXLkD.d.ts +0 -79
  103. package/dist/RegulatoryReportGenerator-BUYgzTTT.d.ts +0 -282
  104. package/dist/RegulatoryReportGenerator-DwcHcEFp.d.mts +0 -282
  105. package/dist/StepIndicator-CgrlokSV.d.ts +0 -171
  106. package/dist/StepIndicator-W8S_QjgO.d.mts +0 -171
  107. package/dist/breach-B_-6lDqS.d.mts +0 -17
  108. package/dist/breach-CzXqSsaY.d.ts +0 -17
  109. package/dist/breach-Eu9byel8.d.mts +0 -185
  110. package/dist/breach-Eu9byel8.d.ts +0 -185
  111. package/dist/chunk-2L7BSG7G.mjs +0 -2
  112. package/dist/chunk-5X32J5IA.mjs +0 -2
  113. package/dist/chunk-7D2OIPHH.mjs +0 -2
  114. package/dist/chunk-JKKRPS4P.js +0 -2
  115. package/dist/chunk-UHTJ6UFW.js +0 -2
  116. package/dist/compliance-score-racQe_E_.d.mts +0 -115
  117. package/dist/compliance-score-racQe_E_.d.ts +0 -115
  118. package/dist/consent-CmVzqZUk.d.mts +0 -99
  119. package/dist/consent-CmVzqZUk.d.ts +0 -99
  120. package/dist/consent-audit-BdByjYlM.d.mts +0 -65
  121. package/dist/consent-audit-DhbfMR0n.d.ts +0 -65
  122. package/dist/cross-border-BBi9rZyO.d.mts +0 -54
  123. package/dist/cross-border-Dy-U9Hu6.d.ts +0 -54
  124. package/dist/cross-border-UyT00llA.d.mts +0 -141
  125. package/dist/cross-border-UyT00llA.d.ts +0 -141
  126. package/dist/docx-4n8g4zul.d.mts +0 -64
  127. package/dist/docx-VvcTLYZM.d.ts +0 -64
  128. package/dist/dpia-D82hUrJe.d.ts +0 -15
  129. package/dist/dpia-DQDFw2_l.d.mts +0 -15
  130. package/dist/dpia-c9GiiOq0.d.mts +0 -137
  131. package/dist/dpia-c9GiiOq0.d.ts +0 -137
  132. package/dist/dsr-CIx5sd7e.d.ts +0 -14
  133. package/dist/dsr-XZ_HqTlA.d.mts +0 -14
  134. package/dist/dsr-yKbqX531.d.mts +0 -128
  135. package/dist/dsr-yKbqX531.d.ts +0 -128
  136. package/dist/lawful-basis-BEyI0kGg.d.ts +0 -57
  137. package/dist/lawful-basis-C2eGaoHM.d.mts +0 -57
  138. package/dist/lawful-basis-Cv1VmDLn.d.mts +0 -112
  139. package/dist/lawful-basis-Cv1VmDLn.d.ts +0 -112
  140. package/dist/locale-CxJx2tzn.d.mts +0 -25
  141. package/dist/locale-DSkrtf-c.d.ts +0 -25
  142. package/dist/policy-engine-5qTfp2z4.d.mts +0 -174
  143. package/dist/policy-engine-DzPxskOK.d.ts +0 -174
  144. package/dist/policy-sections-9tCb7VU7.d.ts +0 -56
  145. package/dist/policy-sections-CBWcJv-R.d.mts +0 -56
  146. package/dist/policy-templates-DhLwq4R-.d.ts +0 -43
  147. package/dist/policy-templates-DwYl2329.d.mts +0 -43
  148. package/dist/privacy-Ca6te9Ir.d.mts +0 -138
  149. package/dist/privacy-Ca6te9Ir.d.ts +0 -138
  150. package/dist/ropa-BDTM06tr.d.ts +0 -152
  151. package/dist/ropa-CFHuT7jE.d.mts +0 -152
  152. package/dist/ropa-CyynscU6.d.ts +0 -51
  153. package/dist/ropa-NIgxd8uP.d.mts +0 -51
  154. package/dist/sanitize-CxxwKxAx.d.mts +0 -94
  155. package/dist/sanitize-CxxwKxAx.d.ts +0 -94
  156. package/dist/styling-BMDGQDgS.d.mts +0 -64
  157. package/dist/styling-BaoQtV06.d.ts +0 -64
  158. package/dist/types-DK2CoKOC.d.mts +0 -10
  159. package/dist/types-DK2CoKOC.d.ts +0 -10
  160. package/dist/useAdaptivePolicyWizard-BSLyltzZ.d.mts +0 -52
  161. package/dist/useAdaptivePolicyWizard-CL7C7MTZ.d.ts +0 -52
  162. package/dist/useBreach-CPr86Yan.d.mts +0 -115
  163. package/dist/useBreach-DkVXvtJK.d.ts +0 -115
  164. package/dist/useConsent-DCNkIJHR.d.mts +0 -75
  165. package/dist/useConsent-dOcELSfX.d.ts +0 -75
  166. package/dist/useCrossBorderTransfer-DixjLjN1.d.mts +0 -78
  167. package/dist/useCrossBorderTransfer-DvSq06lv.d.ts +0 -78
  168. package/dist/useDPIA-B6180UQn.d.mts +0 -109
  169. package/dist/useDPIA-CTqbNbww.d.ts +0 -109
  170. package/dist/useDSR-WvHk8_iu.d.mts +0 -85
  171. package/dist/useDSR-wH4H6hSM.d.ts +0 -85
  172. package/dist/useDefaultPrivacyPolicy-Cs2WQSYQ.d.mts +0 -162
  173. package/dist/useDefaultPrivacyPolicy-DkOqMg2e.d.ts +0 -162
  174. package/dist/useLawfulBasis-CKJ-kw84.d.mts +0 -79
  175. package/dist/useLawfulBasis-DFTmu1ca.d.ts +0 -79
  176. package/dist/useROPA-BSSU1rfx.d.ts +0 -76
  177. package/dist/useROPA-C2hjaBTz.d.mts +0 -76
package/dist/server.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkJBSCER34_js=require('./chunk-JBSCER34.js'),chunk6QPRDQZF_js=require('./chunk-6QPRDQZF.js'),chunkC5QO3SX4_js=require('./chunk-C5QO3SX4.js'),chunkZ73T6MWY_js=require('./chunk-Z73T6MWY.js'),chunkYPKUHSK4_js=require('./chunk-YPKUHSK4.js'),chunkP2YV6DR3_js=require('./chunk-P2YV6DR3.js'),chunkS4GRSNB4_js=require('./chunk-S4GRSNB4.js'),chunkAHSMDPG5_js=require('./chunk-AHSMDPG5.js'),chunkTDDAYVKK_js=require('./chunk-TDDAYVKK.js'),chunkC4YM4UMI_js=require('./chunk-C4YM4UMI.js'),chunkGOU6FU6Y_js=require('./chunk-GOU6FU6Y.js'),chunkMJGOLP5M_js=require('./chunk-MJGOLP5M.js'),chunkA4PK7JB2_js=require('./chunk-A4PK7JB2.js'),chunkHO5M7M4M_js=require('./chunk-HO5M7M4M.js'),chunkJKKRPS4P_js=require('./chunk-JKKRPS4P.js'),chunkP42Z5CFE_js=require('./chunk-P42Z5CFE.js'),chunkBKRETVJ6_js=require('./chunk-BKRETVJ6.js'),chunkI54CDQGN_js=require('./chunk-I54CDQGN.js'),chunkELKB2AFZ_js=require('./chunk-ELKB2AFZ.js');require('./chunk-MQFZHA2D.js');Object.defineProperty(exports,"apiAdapter",{enumerable:true,get:function(){return chunkJBSCER34_js.a}});Object.defineProperty(exports,"composeAdapters",{enumerable:true,get:function(){return chunkJBSCER34_js.c}});Object.defineProperty(exports,"memoryAdapter",{enumerable:true,get:function(){return chunkJBSCER34_js.b}});Object.defineProperty(exports,"hausaLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.c}});Object.defineProperty(exports,"igboLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.b}});Object.defineProperty(exports,"pidginLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.d}});Object.defineProperty(exports,"yorubaLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.a}});Object.defineProperty(exports,"defaultLocale",{enumerable:true,get:function(){return chunkC5QO3SX4_js.a}});Object.defineProperty(exports,"mergeLocale",{enumerable:true,get:function(){return chunkC5QO3SX4_js.b}});Object.defineProperty(exports,"exportDOCX",{enumerable:true,get:function(){return chunkZ73T6MWY_js.d}});Object.defineProperty(exports,"exportHTML",{enumerable:true,get:function(){return chunkZ73T6MWY_js.a}});Object.defineProperty(exports,"exportMarkdown",{enumerable:true,get:function(){return chunkZ73T6MWY_js.b}});Object.defineProperty(exports,"exportPDF",{enumerable:true,get:function(){return chunkZ73T6MWY_js.c}});Object.defineProperty(exports,"DEFAULT_DATA_CATEGORIES",{enumerable:true,get:function(){return chunkYPKUHSK4_js.a}});Object.defineProperty(exports,"createDefaultContext",{enumerable:true,get:function(){return chunkYPKUHSK4_js.b}});Object.defineProperty(exports,"evaluatePolicyCompliance",{enumerable:true,get:function(){return chunkYPKUHSK4_js.c}});Object.defineProperty(exports,"DEFAULT_POLICY_SECTIONS",{enumerable:true,get:function(){return chunkP2YV6DR3_js.c}});Object.defineProperty(exports,"DEFAULT_POLICY_VARIABLES",{enumerable:true,get:function(){return chunkP2YV6DR3_js.d}});Object.defineProperty(exports,"createBusinessPolicyTemplate",{enumerable:true,get:function(){return chunkP2YV6DR3_js.e}});Object.defineProperty(exports,"findUnfilledTokens",{enumerable:true,get:function(){return chunkP2YV6DR3_js.a}});Object.defineProperty(exports,"generatePolicyText",{enumerable:true,get:function(){return chunkP2YV6DR3_js.b}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunkS4GRSNB4_js.a}});Object.defineProperty(exports,"UNFILLED_PREFIX",{enumerable:true,get:function(){return chunkAHSMDPG5_js.a}});Object.defineProperty(exports,"UNFILLED_SUFFIX",{enumerable:true,get:function(){return chunkAHSMDPG5_js.b}});Object.defineProperty(exports,"assemblePolicy",{enumerable:true,get:function(){return chunkAHSMDPG5_js.c}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkTDDAYVKK_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkTDDAYVKK_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkTDDAYVKK_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkTDDAYVKK_js.a}});Object.defineProperty(exports,"assessTransferRisk",{enumerable:true,get:function(){return chunkC4YM4UMI_js.h}});Object.defineProperty(exports,"getTransferMechanismDescription",{enumerable:true,get:function(){return chunkC4YM4UMI_js.f}});Object.defineProperty(exports,"isNDPCApprovalRequired",{enumerable:true,get:function(){return chunkC4YM4UMI_js.e}});Object.defineProperty(exports,"validateTransfer",{enumerable:true,get:function(){return chunkC4YM4UMI_js.g}});Object.defineProperty(exports,"exportROPAToCSV",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.c}});Object.defineProperty(exports,"generateROPASummary",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.b}});Object.defineProperty(exports,"identifyComplianceGaps",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.d}});Object.defineProperty(exports,"validateProcessingRecord",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.a}});Object.defineProperty(exports,"appendAuditEntry",{enumerable:true,get:function(){return chunkMJGOLP5M_js.c}});Object.defineProperty(exports,"createAuditEntry",{enumerable:true,get:function(){return chunkMJGOLP5M_js.a}});Object.defineProperty(exports,"getAuditLog",{enumerable:true,get:function(){return chunkMJGOLP5M_js.b}});Object.defineProperty(exports,"cookieAdapter",{enumerable:true,get:function(){return chunkA4PK7JB2_js.b}});Object.defineProperty(exports,"sessionStorageAdapter",{enumerable:true,get:function(){return chunkA4PK7JB2_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkHO5M7M4M_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkHO5M7M4M_js.b}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkJKKRPS4P_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkP42Z5CFE_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunkBKRETVJ6_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkI54CDQGN_js.a}});Object.defineProperty(exports,"localStorageAdapter",{enumerable:true,get:function(){return chunkELKB2AFZ_js.a}});//# sourceMappingURL=server.js.map
1
+ 'use strict';var chunkJBSCER34_js=require('./chunk-JBSCER34.js'),chunk6QPRDQZF_js=require('./chunk-6QPRDQZF.js'),chunkC5QO3SX4_js=require('./chunk-C5QO3SX4.js'),chunkZ73T6MWY_js=require('./chunk-Z73T6MWY.js'),chunkYPKUHSK4_js=require('./chunk-YPKUHSK4.js'),chunkLIM64IV2_js=require('./chunk-LIM64IV2.js'),chunkS4GRSNB4_js=require('./chunk-S4GRSNB4.js'),chunkCPK5D5FY_js=require('./chunk-CPK5D5FY.js'),chunkTDDAYVKK_js=require('./chunk-TDDAYVKK.js'),chunkC4YM4UMI_js=require('./chunk-C4YM4UMI.js'),chunkGOU6FU6Y_js=require('./chunk-GOU6FU6Y.js'),chunkMJGOLP5M_js=require('./chunk-MJGOLP5M.js'),chunkA4PK7JB2_js=require('./chunk-A4PK7JB2.js'),chunkHO5M7M4M_js=require('./chunk-HO5M7M4M.js'),chunkJ5WCPZLW_js=require('./chunk-J5WCPZLW.js'),chunkP42Z5CFE_js=require('./chunk-P42Z5CFE.js'),chunkBKRETVJ6_js=require('./chunk-BKRETVJ6.js'),chunkI54CDQGN_js=require('./chunk-I54CDQGN.js'),chunkELKB2AFZ_js=require('./chunk-ELKB2AFZ.js');require('./chunk-MQFZHA2D.js');Object.defineProperty(exports,"apiAdapter",{enumerable:true,get:function(){return chunkJBSCER34_js.a}});Object.defineProperty(exports,"composeAdapters",{enumerable:true,get:function(){return chunkJBSCER34_js.c}});Object.defineProperty(exports,"memoryAdapter",{enumerable:true,get:function(){return chunkJBSCER34_js.b}});Object.defineProperty(exports,"hausaLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.c}});Object.defineProperty(exports,"igboLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.b}});Object.defineProperty(exports,"pidginLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.d}});Object.defineProperty(exports,"yorubaLocale",{enumerable:true,get:function(){return chunk6QPRDQZF_js.a}});Object.defineProperty(exports,"defaultLocale",{enumerable:true,get:function(){return chunkC5QO3SX4_js.a}});Object.defineProperty(exports,"mergeLocale",{enumerable:true,get:function(){return chunkC5QO3SX4_js.b}});Object.defineProperty(exports,"exportDOCX",{enumerable:true,get:function(){return chunkZ73T6MWY_js.d}});Object.defineProperty(exports,"exportHTML",{enumerable:true,get:function(){return chunkZ73T6MWY_js.a}});Object.defineProperty(exports,"exportMarkdown",{enumerable:true,get:function(){return chunkZ73T6MWY_js.b}});Object.defineProperty(exports,"exportPDF",{enumerable:true,get:function(){return chunkZ73T6MWY_js.c}});Object.defineProperty(exports,"DEFAULT_DATA_CATEGORIES",{enumerable:true,get:function(){return chunkYPKUHSK4_js.a}});Object.defineProperty(exports,"createDefaultContext",{enumerable:true,get:function(){return chunkYPKUHSK4_js.b}});Object.defineProperty(exports,"evaluatePolicyCompliance",{enumerable:true,get:function(){return chunkYPKUHSK4_js.c}});Object.defineProperty(exports,"DEFAULT_POLICY_SECTIONS",{enumerable:true,get:function(){return chunkLIM64IV2_js.c}});Object.defineProperty(exports,"DEFAULT_POLICY_VARIABLES",{enumerable:true,get:function(){return chunkLIM64IV2_js.d}});Object.defineProperty(exports,"createBusinessPolicyTemplate",{enumerable:true,get:function(){return chunkLIM64IV2_js.e}});Object.defineProperty(exports,"findUnfilledTokens",{enumerable:true,get:function(){return chunkLIM64IV2_js.a}});Object.defineProperty(exports,"generatePolicyText",{enumerable:true,get:function(){return chunkLIM64IV2_js.b}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunkS4GRSNB4_js.a}});Object.defineProperty(exports,"UNFILLED_PREFIX",{enumerable:true,get:function(){return chunkCPK5D5FY_js.a}});Object.defineProperty(exports,"UNFILLED_SUFFIX",{enumerable:true,get:function(){return chunkCPK5D5FY_js.b}});Object.defineProperty(exports,"assemblePolicy",{enumerable:true,get:function(){return chunkCPK5D5FY_js.c}});Object.defineProperty(exports,"assessComplianceGaps",{enumerable:true,get:function(){return chunkTDDAYVKK_js.c}});Object.defineProperty(exports,"generateLawfulBasisSummary",{enumerable:true,get:function(){return chunkTDDAYVKK_js.d}});Object.defineProperty(exports,"getLawfulBasisDescription",{enumerable:true,get:function(){return chunkTDDAYVKK_js.b}});Object.defineProperty(exports,"validateProcessingActivity",{enumerable:true,get:function(){return chunkTDDAYVKK_js.a}});Object.defineProperty(exports,"assessTransferRisk",{enumerable:true,get:function(){return chunkC4YM4UMI_js.h}});Object.defineProperty(exports,"getTransferMechanismDescription",{enumerable:true,get:function(){return chunkC4YM4UMI_js.f}});Object.defineProperty(exports,"isNDPCApprovalRequired",{enumerable:true,get:function(){return chunkC4YM4UMI_js.e}});Object.defineProperty(exports,"validateTransfer",{enumerable:true,get:function(){return chunkC4YM4UMI_js.g}});Object.defineProperty(exports,"exportROPAToCSV",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.c}});Object.defineProperty(exports,"generateROPASummary",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.b}});Object.defineProperty(exports,"identifyComplianceGaps",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.d}});Object.defineProperty(exports,"validateProcessingRecord",{enumerable:true,get:function(){return chunkGOU6FU6Y_js.a}});Object.defineProperty(exports,"appendAuditEntry",{enumerable:true,get:function(){return chunkMJGOLP5M_js.c}});Object.defineProperty(exports,"createAuditEntry",{enumerable:true,get:function(){return chunkMJGOLP5M_js.a}});Object.defineProperty(exports,"getAuditLog",{enumerable:true,get:function(){return chunkMJGOLP5M_js.b}});Object.defineProperty(exports,"cookieAdapter",{enumerable:true,get:function(){return chunkA4PK7JB2_js.b}});Object.defineProperty(exports,"sessionStorageAdapter",{enumerable:true,get:function(){return chunkA4PK7JB2_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkHO5M7M4M_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkHO5M7M4M_js.b}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkJ5WCPZLW_js.b}});Object.defineProperty(exports,"validateDsrSubmission",{enumerable:true,get:function(){return chunkJ5WCPZLW_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkP42Z5CFE_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunkBKRETVJ6_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkI54CDQGN_js.a}});Object.defineProperty(exports,"localStorageAdapter",{enumerable:true,get:function(){return chunkELKB2AFZ_js.a}});//# sourceMappingURL=server.js.map
2
2
  //# sourceMappingURL=server.js.map
package/dist/server.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{a as apiAdapter,c as composeAdapters,b as memoryAdapter}from'./chunk-RY3PGVLZ.mjs';export{c as hausaLocale,b as igboLocale,d as pidginLocale,a as yorubaLocale}from'./chunk-R5FW5XUQ.mjs';export{a as defaultLocale,b as mergeLocale}from'./chunk-XHROISIF.mjs';export{d as exportDOCX,a as exportHTML,b as exportMarkdown,c as exportPDF}from'./chunk-JFFOPHU3.mjs';export{a as DEFAULT_DATA_CATEGORIES,b as createDefaultContext,c as evaluatePolicyCompliance}from'./chunk-I557S566.mjs';export{c as DEFAULT_POLICY_SECTIONS,d as DEFAULT_POLICY_VARIABLES,e as createBusinessPolicyTemplate,a as findUnfilledTokens,b as generatePolicyText}from'./chunk-LSCMXAPY.mjs';export{a as getComplianceScore}from'./chunk-ABDB7LEV.mjs';export{a as UNFILLED_PREFIX,b as UNFILLED_SUFFIX,c as assemblePolicy}from'./chunk-ZLSWOFAY.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-TXBZPCGF.mjs';export{h as assessTransferRisk,f as getTransferMechanismDescription,e as isNDPCApprovalRequired,g as validateTransfer}from'./chunk-75TJPK2N.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-SHMJNRHO.mjs';export{c as appendAuditEntry,a as createAuditEntry,b as getAuditLog}from'./chunk-P3PULLYP.mjs';export{b as cookieAdapter,a as sessionStorageAdapter}from'./chunk-R3OYAJI6.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-U62QYKVG.mjs';export{a as formatDSRRequest}from'./chunk-7D2OIPHH.mjs';export{a as assessDPIARisk}from'./chunk-6TA2MVTU.mjs';export{a as calculateBreachSeverity}from'./chunk-DJGS7SSN.mjs';export{a as sanitizeInput}from'./chunk-GKKAK6ES.mjs';export{a as localStorageAdapter}from'./chunk-6WIP33TW.mjs';import'./chunk-WWT2ZSNU.mjs';//# sourceMappingURL=server.mjs.map
1
+ export{a as apiAdapter,c as composeAdapters,b as memoryAdapter}from'./chunk-RY3PGVLZ.mjs';export{c as hausaLocale,b as igboLocale,d as pidginLocale,a as yorubaLocale}from'./chunk-R5FW5XUQ.mjs';export{a as defaultLocale,b as mergeLocale}from'./chunk-XHROISIF.mjs';export{d as exportDOCX,a as exportHTML,b as exportMarkdown,c as exportPDF}from'./chunk-JFFOPHU3.mjs';export{a as DEFAULT_DATA_CATEGORIES,b as createDefaultContext,c as evaluatePolicyCompliance}from'./chunk-I557S566.mjs';export{c as DEFAULT_POLICY_SECTIONS,d as DEFAULT_POLICY_VARIABLES,e as createBusinessPolicyTemplate,a as findUnfilledTokens,b as generatePolicyText}from'./chunk-CKGJK4D7.mjs';export{a as getComplianceScore}from'./chunk-ABDB7LEV.mjs';export{a as UNFILLED_PREFIX,b as UNFILLED_SUFFIX,c as assemblePolicy}from'./chunk-GRLIPT5V.mjs';export{c as assessComplianceGaps,d as generateLawfulBasisSummary,b as getLawfulBasisDescription,a as validateProcessingActivity}from'./chunk-TXBZPCGF.mjs';export{h as assessTransferRisk,f as getTransferMechanismDescription,e as isNDPCApprovalRequired,g as validateTransfer}from'./chunk-75TJPK2N.mjs';export{c as exportROPAToCSV,b as generateROPASummary,d as identifyComplianceGaps,a as validateProcessingRecord}from'./chunk-SHMJNRHO.mjs';export{c as appendAuditEntry,a as createAuditEntry,b as getAuditLog}from'./chunk-P3PULLYP.mjs';export{b as cookieAdapter,a as sessionStorageAdapter}from'./chunk-R3OYAJI6.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-U62QYKVG.mjs';export{b as formatDSRRequest,a as validateDsrSubmission}from'./chunk-B4Z5MBUC.mjs';export{a as assessDPIARisk}from'./chunk-6TA2MVTU.mjs';export{a as calculateBreachSeverity}from'./chunk-DJGS7SSN.mjs';export{a as sanitizeInput}from'./chunk-GKKAK6ES.mjs';export{a as localStorageAdapter}from'./chunk-6WIP33TW.mjs';import'./chunk-WWT2ZSNU.mjs';//# sourceMappingURL=server.mjs.map
2
2
  //# sourceMappingURL=server.mjs.map
@@ -1,55 +1,523 @@
1
- import React__default from 'react';
2
- import { c as ConsentBannerProps } from './ConsentBanner-F5ayys5K.mjs';
3
- export { C as ConsentAnalyticsEvent, b as ConsentBannerClassNames } from './ConsentBanner-F5ayys5K.mjs';
4
- import { b as ConsentManagerProps } from './ConsentManager-C7I3PDe8.mjs';
5
- export { a as ConsentManagerClassNames } from './ConsentManager-C7I3PDe8.mjs';
6
- import { c as DSRRequestFormProps } from './DSRRequestForm-DRouEr9j.mjs';
7
- export { b as DSRRequestFormClassNames } from './DSRRequestForm-DRouEr9j.mjs';
8
- import './consent-CmVzqZUk.mjs';
9
- import './dsr-yKbqX531.mjs';
10
-
11
- /**
12
- * Unstyled entry — design-system-friendly component variants.
13
- *
14
- * Components imported from this subpath default `unstyled` to `true`,
15
- * which strips every default class name from the rendered markup.
16
- * Consumers using their own design system (Tailwind, Mantine, Chakra,
17
- * shadcn, raw CSS) get logic + accessibility + semantic structure
18
- * without any pre-applied visual styling.
19
- *
20
- * Markup, ARIA attributes, focus management, keyboard handling, and the
21
- * `data-ndpr-component` data attributes are all preserved — those are
22
- * part of the contract, not styling.
23
- *
24
- * @example
25
- * ```tsx
26
- * // app/cookie-banner.tsx
27
- * import { ConsentBanner } from '@tantainnovative/ndpr-toolkit/unstyled';
28
- *
29
- * export function CookieBanner() {
30
- * return (
31
- * <ConsentBanner
32
- * options={[]}
33
- * onSave={() => {}}
34
- * classNames={{
35
- * root: 'fixed bottom-0 inset-x-0 bg-white p-6 shadow-2xl',
36
- * title: 'text-xl font-bold mb-2',
37
- * buttonGroup: 'flex gap-2 mt-4',
38
- * acceptButton: 'btn-primary',
39
- * rejectButton: 'btn-secondary',
40
- * }}
41
- * />
42
- * );
43
- * }
44
- * ```
45
- *
46
- * For components not yet migrated to the BEM stylesheet (DPIA, Breach,
47
- * ROPA, etc.), import them from their normal subpath and pass
48
- * `unstyled` manually if available — the migration completes in 3.5.x.
49
- */
50
-
51
- declare const ConsentBanner: React__default.FC<ConsentBannerProps>;
52
- declare const ConsentManager: React__default.FC<ConsentManagerProps>;
53
- declare const DSRRequestForm: React__default.FC<DSRRequestFormProps>;
54
-
55
- export { ConsentBanner, ConsentBannerProps, ConsentManager, ConsentManagerProps, DSRRequestForm, DSRRequestFormProps };
1
+ import React__default from 'react';
2
+
3
+ export declare interface ConsentAnalyticsEvent {
4
+ action: 'shown' | 'accepted_all' | 'rejected_all' | 'customized' | 'dismissed';
5
+ timestamp: number;
6
+ version: string;
7
+ categories?: Record<string, boolean>;
8
+ }
9
+
10
+ /**
11
+ * Unstyled entry — design-system-friendly component variants.
12
+ *
13
+ * Components imported from this subpath default `unstyled` to `true`,
14
+ * which strips every default class name from the rendered markup.
15
+ * Consumers using their own design system (Tailwind, Mantine, Chakra,
16
+ * shadcn, raw CSS) get logic + accessibility + semantic structure
17
+ * without any pre-applied visual styling.
18
+ *
19
+ * Markup, ARIA attributes, focus management, keyboard handling, and the
20
+ * `data-ndpr-component` data attributes are all preserved those are
21
+ * part of the contract, not styling.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // app/cookie-banner.tsx
26
+ * import { ConsentBanner } from '@tantainnovative/ndpr-toolkit/unstyled';
27
+ *
28
+ * export function CookieBanner() {
29
+ * return (
30
+ * <ConsentBanner
31
+ * options={[]}
32
+ * onSave={() => {}}
33
+ * classNames={{
34
+ * root: 'fixed bottom-0 inset-x-0 bg-white p-6 shadow-2xl',
35
+ * title: 'text-xl font-bold mb-2',
36
+ * buttonGroup: 'flex gap-2 mt-4',
37
+ * acceptButton: 'btn-primary',
38
+ * rejectButton: 'btn-secondary',
39
+ * }}
40
+ * />
41
+ * );
42
+ * }
43
+ * ```
44
+ *
45
+ * For components not yet migrated to the BEM stylesheet (DPIA, Breach,
46
+ * ROPA, etc.), import them from their normal subpath and pass
47
+ * `unstyled` manually if available the migration completes in 3.5.x.
48
+ */
49
+ export declare const ConsentBanner: React__default.FC<ConsentBannerProps>;
50
+
51
+ export declare interface ConsentBannerClassNames {
52
+ root?: string;
53
+ container?: string;
54
+ title?: string;
55
+ description?: string;
56
+ optionsList?: string;
57
+ optionItem?: string;
58
+ optionCheckbox?: string;
59
+ optionLabel?: string;
60
+ optionDescription?: string;
61
+ buttonGroup?: string;
62
+ acceptButton?: string;
63
+ rejectButton?: string;
64
+ customizeButton?: string;
65
+ saveButton?: string;
66
+ customizePanel?: string;
67
+ selectAllButton?: string;
68
+ /** Alias for acceptButton */
69
+ primaryButton?: string;
70
+ /** Alias for rejectButton */
71
+ secondaryButton?: string;
72
+ }
73
+
74
+ export declare interface ConsentBannerProps {
75
+ /**
76
+ * Array of consent options to display
77
+ */
78
+ options: ConsentOption[];
79
+ /**
80
+ * Callback function called when user saves their consent choices
81
+ */
82
+ onSave: (settings: ConsentSettings) => void;
83
+ /**
84
+ * Title displayed on the banner
85
+ * @default "We Value Your Privacy"
86
+ */
87
+ title?: string;
88
+ /**
89
+ * Description text displayed on the banner
90
+ * @default "We use cookies and similar technologies to provide our services and enhance your experience. Your consent is collected in accordance with NDPA Sections 25-26."
91
+ */
92
+ description?: string;
93
+ /**
94
+ * Text for the accept all button
95
+ * @default "Accept All"
96
+ */
97
+ acceptAllButtonText?: string;
98
+ /**
99
+ * Text for the reject all button
100
+ * @default "Reject All"
101
+ */
102
+ rejectAllButtonText?: string;
103
+ /**
104
+ * Text for the customize button
105
+ * @default "Customize"
106
+ */
107
+ customizeButtonText?: string;
108
+ /**
109
+ * Text for the save button
110
+ * @default "Save Preferences"
111
+ */
112
+ saveButtonText?: string;
113
+ /**
114
+ * Position of the banner.
115
+ * 'top', 'bottom', and 'center' render via a portal to document.body
116
+ * with fixed positioning so the banner overlays the page.
117
+ * 'inline' renders in the normal DOM tree without a portal.
118
+ * @default "bottom"
119
+ */
120
+ position?: 'top' | 'bottom' | 'center' | 'inline';
121
+ /**
122
+ * Visual treatment.
123
+ * - 'bar' (default): full-width strip pinned to the edge.
124
+ * - 'card' : bounded floating card with rounded corners and a margin
125
+ * from the screen edges. Pairs well with `position="bottom"`.
126
+ * - 'modal' : centered card with a backdrop overlay. Forces center
127
+ * placement regardless of `position`.
128
+ * @default "bar"
129
+ */
130
+ variant?: 'bar' | 'card' | 'modal';
131
+ /**
132
+ * z-index applied to the fixed-position banner.
133
+ * Ignored when position is 'inline'.
134
+ * @default 9999
135
+ */
136
+ zIndex?: number;
137
+ /**
138
+ * Version of the consent form
139
+ * @default "1.0"
140
+ */
141
+ version?: string;
142
+ /**
143
+ * Whether to show the banner
144
+ * If not provided, the banner will be shown if no consent has been saved
145
+ */
146
+ show?: boolean;
147
+ /**
148
+ * Storage key for consent settings
149
+ * @default "ndpr_consent"
150
+ */
151
+ storageKey?: string;
152
+ /**
153
+ * Whether the banner manages its own localStorage persistence.
154
+ * Set to false when an external storage mechanism (e.g., ConsentStorage)
155
+ * is responsible for persisting consent settings under the same key.
156
+ * This avoids race conditions where two writers target the same storage key.
157
+ * @default true
158
+ */
159
+ manageStorage?: boolean;
160
+ /**
161
+ * Custom CSS class for the banner
162
+ */
163
+ className?: string;
164
+ /**
165
+ * Custom CSS class for the buttons
166
+ */
167
+ buttonClassName?: string;
168
+ /**
169
+ * Custom CSS class for the primary button
170
+ */
171
+ primaryButtonClassName?: string;
172
+ /**
173
+ * Custom CSS class for the secondary button
174
+ */
175
+ secondaryButtonClassName?: string;
176
+ /**
177
+ * Object of CSS class overrides keyed by semantic section name.
178
+ * Takes priority over buttonClassName / primaryButtonClassName / secondaryButtonClassName.
179
+ */
180
+ classNames?: ConsentBannerClassNames;
181
+ /**
182
+ * When true, all default Tailwind classes are removed so consumers
183
+ * can style from scratch using classNames.
184
+ */
185
+ unstyled?: boolean;
186
+ /**
187
+ * Optional analytics callback fired on each user interaction.
188
+ * Called when the banner is shown, accepted, rejected, customized, or dismissed.
189
+ */
190
+ onAnalytics?: (event: ConsentAnalyticsEvent) => void;
191
+ }
192
+
193
+ export declare const ConsentManager: React__default.FC<ConsentManagerProps>;
194
+
195
+ export declare interface ConsentManagerClassNames {
196
+ root?: string;
197
+ header?: string;
198
+ title?: string;
199
+ description?: string;
200
+ optionsList?: string;
201
+ optionItem?: string;
202
+ toggle?: string;
203
+ saveButton?: string;
204
+ resetButton?: string;
205
+ /** Alias for saveButton */
206
+ primaryButton?: string;
207
+ /** Alias for resetButton */
208
+ secondaryButton?: string;
209
+ }
210
+
211
+ export declare interface ConsentManagerProps {
212
+ /**
213
+ * Array of consent options to display
214
+ */
215
+ options: ConsentOption[];
216
+ /**
217
+ * Current consent settings
218
+ */
219
+ settings?: ConsentSettings;
220
+ /**
221
+ * Callback function called when user saves their consent choices
222
+ */
223
+ onSave: (settings: ConsentSettings) => void;
224
+ /**
225
+ * Title displayed in the manager
226
+ * @default "Manage Your Privacy Settings"
227
+ */
228
+ title?: string;
229
+ /**
230
+ * Description text displayed in the manager
231
+ * @default "Update your consent preferences at any time. Required cookies cannot be disabled as they are necessary for the website to function. Consent management is provided in accordance with NDPA Sections 25-26."
232
+ */
233
+ description?: string;
234
+ /**
235
+ * Text for the save button
236
+ * @default "Save Preferences"
237
+ */
238
+ saveButtonText?: string;
239
+ /**
240
+ * Text for the reset button
241
+ * @default "Reset to Defaults"
242
+ */
243
+ resetButtonText?: string;
244
+ /**
245
+ * Version of the consent form
246
+ * @default "1.0"
247
+ */
248
+ version?: string;
249
+ /**
250
+ * Custom CSS class for the manager
251
+ */
252
+ className?: string;
253
+ /**
254
+ * Custom CSS class for the buttons
255
+ */
256
+ buttonClassName?: string;
257
+ /**
258
+ * Custom CSS class for the primary button
259
+ */
260
+ primaryButtonClassName?: string;
261
+ /**
262
+ * Custom CSS class for the secondary button
263
+ */
264
+ secondaryButtonClassName?: string;
265
+ /**
266
+ * Object of CSS class overrides keyed by semantic section name.
267
+ * Takes priority over buttonClassName / primaryButtonClassName / secondaryButtonClassName.
268
+ */
269
+ classNames?: ConsentManagerClassNames;
270
+ /**
271
+ * When true, all default Tailwind classes are removed so consumers
272
+ * can style from scratch using classNames.
273
+ */
274
+ unstyled?: boolean;
275
+ /**
276
+ * Whether to show a success message after saving
277
+ * @default true
278
+ */
279
+ showSuccessMessage?: boolean;
280
+ /**
281
+ * Success message to display after saving
282
+ * @default "Your preferences have been saved."
283
+ */
284
+ successMessage?: string;
285
+ /**
286
+ * Duration to show the success message (in milliseconds)
287
+ * @default 3000
288
+ */
289
+ successMessageDuration?: number;
290
+ }
291
+
292
+ /**
293
+ * Consent types aligned with NDPA 2023 Section 25-26
294
+ * Consent must be freely given, specific, informed, and unambiguous
295
+ */
296
+ /**
297
+ * Represents a consent option that can be presented to users
298
+ */
299
+ declare interface ConsentOption {
300
+ /** Unique identifier for the consent option */
301
+ id: string;
302
+ /** Display label for the consent option */
303
+ label: string;
304
+ /** Detailed description of what this consent option covers */
305
+ description: string;
306
+ /** Whether this consent option is required (cannot be declined) */
307
+ required: boolean;
308
+ /**
309
+ * The specific purpose for which data will be processed
310
+ * NDPA Section 25(2) requires consent to be specific to each purpose
311
+ */
312
+ purpose: string;
313
+ /**
314
+ * Default state of the consent option
315
+ * @default false
316
+ */
317
+ defaultValue?: boolean;
318
+ /**
319
+ * Categories of personal data covered by this consent option
320
+ */
321
+ dataCategories?: string[];
322
+ }
323
+
324
+ /**
325
+ * Represents the user's consent settings
326
+ */
327
+ declare interface ConsentSettings {
328
+ /** Map of consent option IDs to boolean values indicating consent status */
329
+ consents: Record<string, boolean>;
330
+ /** Timestamp when consent was last updated */
331
+ timestamp: number;
332
+ /** Version of the consent form that was accepted */
333
+ version: string;
334
+ /** Method used to collect consent (e.g., "banner", "settings", "api") */
335
+ method: string;
336
+ /** Whether the user has actively made a choice (as opposed to default settings) */
337
+ hasInteracted: boolean;
338
+ /**
339
+ * The lawful basis under which processing is conducted
340
+ * Required by NDPA Section 25(1)
341
+ */
342
+ lawfulBasis?: LawfulBasisType;
343
+ }
344
+
345
+ /**
346
+ * Represents the data submitted by the DSR request form.
347
+ */
348
+ declare interface DSRFormSubmission {
349
+ /** The selected request type identifier */
350
+ requestType: string;
351
+ /** Data subject personal information */
352
+ dataSubject: {
353
+ fullName: string;
354
+ email: string;
355
+ phone?: string;
356
+ identifierType: string;
357
+ identifierValue: string;
358
+ };
359
+ /** Additional information provided for the selected request type */
360
+ additionalInfo?: Record<string, string | number | boolean | null>;
361
+ /** Timestamp (ms) when the form was submitted */
362
+ submittedAt: number;
363
+ }
364
+
365
+ export declare const DSRRequestForm: React__default.FC<DSRRequestFormProps>;
366
+
367
+ export declare interface DSRRequestFormClassNames {
368
+ root?: string;
369
+ title?: string;
370
+ description?: string;
371
+ form?: string;
372
+ fieldGroup?: string;
373
+ label?: string;
374
+ input?: string;
375
+ select?: string;
376
+ textarea?: string;
377
+ submitButton?: string;
378
+ /** Alias for submitButton */
379
+ primaryButton?: string;
380
+ successMessage?: string;
381
+ /** Custom class applied when isSubmitting is true (e.g. a loading overlay) */
382
+ loadingOverlay?: string;
383
+ }
384
+
385
+ export declare interface DSRRequestFormProps {
386
+ /**
387
+ * Array of request types that can be submitted
388
+ */
389
+ requestTypes: RequestType[];
390
+ /**
391
+ * Callback function called when form is submitted
392
+ */
393
+ onSubmit: (data: DSRFormSubmission) => void;
394
+ /**
395
+ * Callback function called when form validation fails
396
+ */
397
+ onValidationError?: (errors: Record<string, string>) => void;
398
+ /**
399
+ * Title displayed on the form
400
+ * @default "Submit a Data Subject Request"
401
+ */
402
+ title?: string;
403
+ /**
404
+ * Description text displayed on the form
405
+ * @default "Use this form to exercise your rights under the Nigeria Data Protection Act (NDPA), Part IV, Sections 29-36."
406
+ */
407
+ description?: string;
408
+ /**
409
+ * Text for the submit button
410
+ * @default "Submit Request"
411
+ */
412
+ submitButtonText?: string;
413
+ /**
414
+ * Custom CSS class for the form
415
+ */
416
+ className?: string;
417
+ /**
418
+ * Custom CSS class for the submit button
419
+ */
420
+ buttonClassName?: string;
421
+ /**
422
+ * Whether to show a confirmation message after submission
423
+ * @default true
424
+ */
425
+ showConfirmation?: boolean;
426
+ /**
427
+ * Confirmation message to display after submission
428
+ * @default "Your request has been submitted successfully. You will receive a confirmation email shortly."
429
+ */
430
+ confirmationMessage?: string;
431
+ /**
432
+ * Whether to require identity verification
433
+ * @default true
434
+ */
435
+ requireIdentityVerification?: boolean;
436
+ /**
437
+ * Types of identifiers accepted for verification
438
+ * @default ["email", "account", "customer_id"]
439
+ */
440
+ identifierTypes?: Array<{
441
+ id: string;
442
+ label: string;
443
+ }>;
444
+ /**
445
+ * Whether to collect additional contact information
446
+ * @default true
447
+ */
448
+ collectAdditionalContact?: boolean;
449
+ /**
450
+ * Custom labels for form fields
451
+ */
452
+ labels?: {
453
+ name?: string;
454
+ email?: string;
455
+ requestType?: string;
456
+ description?: string;
457
+ submit?: string;
458
+ };
459
+ /**
460
+ * Object of CSS class overrides keyed by semantic section name.
461
+ */
462
+ classNames?: DSRRequestFormClassNames;
463
+ /**
464
+ * When true, all default Tailwind classes are removed so consumers
465
+ * can style from scratch using classNames.
466
+ */
467
+ unstyled?: boolean;
468
+ /**
469
+ * Whether the form is currently submitting.
470
+ * When true, the submit button is disabled and shows "Submitting..." text.
471
+ */
472
+ isSubmitting?: boolean;
473
+ /**
474
+ * Default values to pre-fill form fields.
475
+ * Useful for editing existing requests or pre-populating known data.
476
+ */
477
+ defaultValues?: Partial<DSRFormSubmission>;
478
+ /**
479
+ * Callback fired when the form is reset via the Reset button.
480
+ * To fully remount the component (clearing all internal state),
481
+ * change the `key` prop from the parent.
482
+ */
483
+ onReset?: () => void;
484
+ }
485
+
486
+ /**
487
+ * Lawful basis for processing personal data per NDPA Section 25(1)
488
+ */
489
+ declare type LawfulBasisType = 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_interest' | 'legitimate_interests';
490
+
491
+ /**
492
+ * Represents a type of data subject request (detailed configuration)
493
+ */
494
+ declare interface RequestType {
495
+ /** Unique identifier for the request type */
496
+ id: string;
497
+ /** Display name for the request type */
498
+ name: string;
499
+ /** Description of what this request type entails */
500
+ description: string;
501
+ /**
502
+ * NDPA section reference (e.g., "Section 30" for access requests)
503
+ */
504
+ ndpaSection?: string;
505
+ /**
506
+ * Estimated time to fulfill this type of request (in days)
507
+ * NDPA requires response within 30 days
508
+ */
509
+ estimatedCompletionTime: number;
510
+ /** Whether additional information is required for this request type */
511
+ requiresAdditionalInfo: boolean;
512
+ /** Custom fields required for this request type */
513
+ additionalFields?: Array<{
514
+ id: string;
515
+ label: string;
516
+ type: 'text' | 'textarea' | 'select' | 'checkbox' | 'file';
517
+ options?: string[];
518
+ required: boolean;
519
+ placeholder?: string;
520
+ }>;
521
+ }
522
+
523
+ export { }