@tantainnovative/ndpr-toolkit 3.5.0 → 3.5.5

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 +107 -0
  2. package/README.md +12 -7
  3. package/dist/adapters.js +1 -2
  4. package/dist/adapters.mjs +1 -2
  5. package/dist/breach.d.mts +80 -1
  6. package/dist/breach.d.ts +80 -1
  7. package/dist/breach.js +1 -2
  8. package/dist/breach.mjs +1 -2
  9. package/dist/{chunk-PATONNTZ.mjs → chunk-3HOXQNCH.mjs} +1 -2
  10. package/dist/{chunk-MJGOLP5M.js → chunk-3IA3KDII.js} +1 -2
  11. package/dist/{chunk-M2TPT5GB.js → chunk-3JPDTXGC.js} +1 -2
  12. package/dist/{chunk-BKRETVJ6.js → chunk-3YTAOT5O.js} +1 -2
  13. package/dist/{chunk-GOU6FU6Y.js → chunk-4CVBQC66.js} +1 -2
  14. package/dist/{chunk-E4NCJ7RD.mjs → chunk-4G3SRVRI.mjs} +1 -2
  15. package/dist/{chunk-6QPRDQZF.js → chunk-4QXTB3L6.js} +1 -2
  16. package/dist/{chunk-XNSZ7KUH.js → chunk-5GVMKUMP.js} +1 -2
  17. package/dist/chunk-66NQ5CVY.mjs +1 -0
  18. package/dist/{chunk-JBSCER34.js → chunk-6NXXQYQL.js} +1 -2
  19. package/dist/chunk-732C2EVN.js +1 -0
  20. package/dist/chunk-7BJXI2HI.mjs +1 -0
  21. package/dist/{chunk-C5QO3SX4.js → chunk-7IFSWCQP.js} +1 -2
  22. package/dist/{chunk-A4PK7JB2.js → chunk-7ZZO7GVB.js} +1 -2
  23. package/dist/chunk-AME4HJR4.js +1 -0
  24. package/dist/chunk-AOHKVFAS.mjs +322 -0
  25. package/dist/{chunk-HO5M7M4M.js → chunk-B46SJB5V.js} +1 -2
  26. package/dist/chunk-BFAX7JQA.mjs +1 -0
  27. package/dist/{chunk-ID2NYIVE.mjs → chunk-BNHQFZHL.mjs} +2 -3
  28. package/dist/{chunk-RLYTX3MM.js → chunk-BRS52EDT.js} +1 -2
  29. package/dist/{chunk-OPYQIJKY.js → chunk-C7IDR2IV.js} +1 -2
  30. package/dist/{chunk-CISJAQ6W.mjs → chunk-COD3RMTL.mjs} +1 -2
  31. package/dist/chunk-CR2QZTGW.js +1 -0
  32. package/dist/{chunk-6WIP33TW.mjs → chunk-DBZSN4WP.mjs} +1 -2
  33. package/dist/{chunk-74Z23WUA.mjs → chunk-EEQALYOY.mjs} +1 -2
  34. package/dist/chunk-EFIBHKQE.mjs +1 -0
  35. package/dist/{chunk-GKKAK6ES.mjs → chunk-EWVK45Z3.mjs} +1 -2
  36. package/dist/{chunk-QSVVAZVT.mjs → chunk-EXEXUAF6.mjs} +1 -2
  37. package/dist/chunk-EZCGTHQV.js +6 -0
  38. package/dist/{chunk-SYMQJO2W.mjs → chunk-GTYXVAJX.mjs} +2 -3
  39. package/dist/{chunk-6FGCGLH5.mjs → chunk-H3XJV2IR.mjs} +1 -2
  40. package/dist/chunk-HBLGN4SD.js +1 -0
  41. package/dist/{chunk-MCWV7S2G.js → chunk-HHK5LHEG.js} +1 -2
  42. package/dist/{chunk-XHROISIF.mjs → chunk-HWHBINVN.mjs} +1 -2
  43. package/dist/{chunk-3EGQWLJ6.js → chunk-I2LMQWK3.js} +2 -3
  44. package/dist/{chunk-NQNFS3QI.js → chunk-I3Y4LOSL.js} +4 -5
  45. package/dist/chunk-ITCY2Z66.mjs +4 -0
  46. package/dist/{chunk-Z6IIMLZU.mjs → chunk-KDAZQO3N.mjs} +1 -2
  47. package/dist/{chunk-J5WCPZLW.js → chunk-L2BRFMVS.js} +1 -2
  48. package/dist/chunk-L2VO3MEJ.js +1 -0
  49. package/dist/{chunk-R5FW5XUQ.mjs → chunk-LQTARVPU.mjs} +1 -2
  50. package/dist/{chunk-6TA2MVTU.mjs → chunk-LRRENTT5.mjs} +1 -2
  51. package/dist/{chunk-LIM64IV2.js → chunk-LVGT3DLT.js} +2 -3
  52. package/dist/{chunk-TXBZPCGF.mjs → chunk-LWIKDDSU.mjs} +1 -2
  53. package/dist/chunk-MPBPAEZC.mjs +1 -0
  54. package/dist/{chunk-Z73T6MWY.js → chunk-N3MQQUQP.js} +39 -35
  55. package/dist/{chunk-RY3PGVLZ.mjs → chunk-NBZUZYTB.mjs} +1 -2
  56. package/dist/{chunk-HGGLW5TE.js → chunk-NUWVPRNI.js} +1 -2
  57. package/dist/chunk-O45PKBZA.mjs +6 -0
  58. package/dist/chunk-O6CUBNXK.mjs +3 -0
  59. package/dist/{chunk-7SMLHZ4B.js → chunk-P4LNLCSF.js} +1 -2
  60. package/dist/{chunk-VWPGIES4.mjs → chunk-PCU6GKBE.mjs} +1 -2
  61. package/dist/chunk-PGI2LM6P.js +103 -0
  62. package/dist/{chunk-U62QYKVG.mjs → chunk-PJNKQPQP.mjs} +1 -2
  63. package/dist/{chunk-LSNL4XR5.js → chunk-PZRQWPWD.js} +1 -2
  64. package/dist/chunk-Q64735OC.js +144 -0
  65. package/dist/chunk-QPRYXVH2.js +1 -0
  66. package/dist/{chunk-MQFZHA2D.js → chunk-RFPLZDIO.js} +1 -2
  67. package/dist/chunk-RMQ7OLNY.mjs +144 -0
  68. package/dist/{chunk-2AW7KAZO.mjs → chunk-RPXRPGHL.mjs} +1 -2
  69. package/dist/chunk-RYREGZVQ.js +1 -0
  70. package/dist/{chunk-B4Z5MBUC.mjs → chunk-RZ6GC6WN.mjs} +1 -2
  71. package/dist/chunk-S6COXIZA.js +2 -0
  72. package/dist/chunk-SFGW37LE.mjs +1 -0
  73. package/dist/{chunk-3NQQSU4P.js → chunk-SJDDNB6M.js} +1 -2
  74. package/dist/{chunk-H3EYBSVP.mjs → chunk-TMXK4QKK.mjs} +2 -3
  75. package/dist/{chunk-P42Z5CFE.js → chunk-TQZWJGJ2.js} +1 -2
  76. package/dist/{chunk-EPT2K355.mjs → chunk-U5RWJRGA.mjs} +1 -2
  77. package/dist/{chunk-R3OYAJI6.mjs → chunk-UASG46LP.mjs} +1 -2
  78. package/dist/{chunk-RXL6CZAI.js → chunk-UAV7V4EM.js} +1 -2
  79. package/dist/chunk-UI536RU2.js +3 -0
  80. package/dist/{chunk-7AVN424U.js → chunk-UTFBKL73.js} +1 -2
  81. package/dist/{chunk-I54CDQGN.js → chunk-UXUMYP4L.js} +1 -2
  82. package/dist/{chunk-P3PULLYP.mjs → chunk-V7UFP6QU.mjs} +1 -2
  83. package/dist/{chunk-I4M2AA3N.js → chunk-VJTQXVAF.js} +1 -2
  84. package/dist/{chunk-ELKB2AFZ.js → chunk-VWED6UTN.js} +1 -2
  85. package/dist/{chunk-LU7PKE7Y.mjs → chunk-VYAL2TGT.mjs} +1 -2
  86. package/dist/chunk-W47OSMT6.js +2 -0
  87. package/dist/chunk-W65ZWTLD.mjs +1 -0
  88. package/dist/{chunk-5HL4UBFV.js → chunk-WDDCKYWA.js} +1 -2
  89. package/dist/{chunk-DJGS7SSN.mjs → chunk-WTGKZX7J.mjs} +1 -2
  90. package/dist/{chunk-TDDAYVKK.js → chunk-WZYCBW2R.js} +1 -2
  91. package/dist/chunk-X3GCGC3H.mjs +103 -0
  92. package/dist/chunk-XJO4DH3L.mjs +2 -0
  93. package/dist/{chunk-LWXZMKC2.js → chunk-XO3VQYTL.js} +7 -8
  94. package/dist/{chunk-IZCWCE7W.mjs → chunk-XOH4WXOZ.mjs} +1 -2
  95. package/dist/{chunk-SHMJNRHO.mjs → chunk-XP5PL6K7.mjs} +1 -2
  96. package/dist/{chunk-CKGJK4D7.mjs → chunk-Y3MKMAFQ.mjs} +2 -3
  97. package/dist/chunk-YFBDJ4FH.js +1 -0
  98. package/dist/chunk-YTU4FNM2.mjs +1 -0
  99. package/dist/{chunk-TV4U6AIS.js → chunk-Z763UI5U.js} +1 -2
  100. package/dist/chunk-ZHFLBL63.mjs +2 -0
  101. package/dist/{chunk-RRVKUCFR.mjs → chunk-ZIZL37BG.mjs} +1 -2
  102. package/dist/{chunk-WWT2ZSNU.mjs → chunk-ZJYULEER.mjs} +1 -2
  103. package/dist/{chunk-LJNNPAFU.mjs → chunk-ZQZJNKVB.mjs} +1 -2
  104. package/dist/chunk-ZVOIR4QH.js +4 -0
  105. package/dist/consent.js +1 -2
  106. package/dist/consent.mjs +1 -2
  107. package/dist/core.d.mts +98 -19
  108. package/dist/core.d.ts +98 -19
  109. package/dist/core.js +1 -2
  110. package/dist/core.mjs +1 -2
  111. package/dist/cross-border.d.mts +36 -14
  112. package/dist/cross-border.d.ts +36 -14
  113. package/dist/cross-border.js +1 -2
  114. package/dist/cross-border.mjs +1 -2
  115. package/dist/dpia.d.mts +4 -4
  116. package/dist/dpia.d.ts +4 -4
  117. package/dist/dpia.js +1 -2
  118. package/dist/dpia.mjs +1 -2
  119. package/dist/dsr.d.mts +30 -17
  120. package/dist/dsr.d.ts +30 -17
  121. package/dist/dsr.js +1 -2
  122. package/dist/dsr.mjs +1 -2
  123. package/dist/hooks.d.mts +113 -20
  124. package/dist/hooks.d.ts +113 -20
  125. package/dist/hooks.js +1 -2
  126. package/dist/hooks.mjs +1 -2
  127. package/dist/index.d.mts +422 -26
  128. package/dist/index.d.ts +422 -26
  129. package/dist/index.js +1 -2
  130. package/dist/index.mjs +1 -2
  131. package/dist/lawful-basis.js +1 -2
  132. package/dist/lawful-basis.mjs +1 -2
  133. package/dist/policy.js +1 -2
  134. package/dist/policy.mjs +1 -2
  135. package/dist/presets.d.mts +54 -5
  136. package/dist/presets.d.ts +54 -5
  137. package/dist/presets.js +1 -2
  138. package/dist/presets.mjs +1 -2
  139. package/dist/ropa.js +1 -2
  140. package/dist/ropa.mjs +1 -2
  141. package/dist/server.d.mts +89 -19
  142. package/dist/server.d.ts +89 -19
  143. package/dist/server.js +1 -2
  144. package/dist/server.mjs +1 -2
  145. package/dist/styles.css +34 -0
  146. package/dist/unstyled.d.mts +3 -1
  147. package/dist/unstyled.d.ts +3 -1
  148. package/dist/unstyled.js +1 -2
  149. package/dist/unstyled.mjs +1 -2
  150. package/package.json +59 -20
  151. package/dist/chunk-3VQAYQR7.js +0 -7
  152. package/dist/chunk-6HZL2WDU.mjs +0 -2
  153. package/dist/chunk-75TJPK2N.mjs +0 -2
  154. package/dist/chunk-ABDB7LEV.mjs +0 -2
  155. package/dist/chunk-AYKLAEOU.mjs +0 -2
  156. package/dist/chunk-C4YM4UMI.js +0 -2
  157. package/dist/chunk-CKJAECGV.js +0 -2
  158. package/dist/chunk-CPK5D5FY.js +0 -132
  159. package/dist/chunk-CWHBCQGT.mjs +0 -2
  160. package/dist/chunk-E64TU6IU.js +0 -2
  161. package/dist/chunk-F5TXUA4O.mjs +0 -4
  162. package/dist/chunk-GN5C32JB.mjs +0 -2
  163. package/dist/chunk-GRLIPT5V.mjs +0 -132
  164. package/dist/chunk-I557S566.mjs +0 -15
  165. package/dist/chunk-JFFOPHU3.mjs +0 -318
  166. package/dist/chunk-KF3EFJEF.mjs +0 -3
  167. package/dist/chunk-ORFC66EA.js +0 -4
  168. package/dist/chunk-S4GRSNB4.js +0 -2
  169. package/dist/chunk-SCWNM4PC.mjs +0 -2
  170. package/dist/chunk-SKKOMFXH.js +0 -81
  171. package/dist/chunk-TCN22KYP.mjs +0 -7
  172. package/dist/chunk-TUNQUVHU.mjs +0 -81
  173. package/dist/chunk-VIQUXWJC.js +0 -2
  174. package/dist/chunk-WTJGLNTB.js +0 -3
  175. package/dist/chunk-XIM7KMD6.js +0 -2
  176. package/dist/chunk-YPKUHSK4.js +0 -15
  177. package/dist/chunk-ZPKVLTSX.js +0 -2
package/dist/dsr.d.ts CHANGED
@@ -199,7 +199,7 @@ export declare interface DSRRequest {
199
199
  }
200
200
 
201
201
  /**
202
- * Data Subject Request form component. Implements NDPA Part IV, Sections 29-36
202
+ * Data Subject Request form component. Implements NDPA Part VI (Sections 34-38)
203
203
  * covering data subject rights including access, rectification, erasure, and portability.
204
204
  */
205
205
  export declare const DSRRequestForm: React__default.FC<DSRRequestFormProps>;
@@ -438,20 +438,25 @@ declare interface DSRTrackerProps {
438
438
  }
439
439
 
440
440
  /**
441
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
441
+ * Data Subject Rights types aligned with NDPA 2023 Part VI (Sections 34-38)
442
+ * and the related provisions in Part V (Section 27 — information to the data subject)
443
+ * and Part X (Section 46 — complaint to the Commission).
444
+ *
445
+ * Note: These are guidance labels — not legal advice. Verify with your DPO or counsel.
442
446
  */
443
447
  /**
444
- * Types of data subject requests per NDPA Part IV
445
- * - 'information': Right to be informed (Section 29)
446
- * - 'access': Right of access (Section 30)
447
- * - 'rectification': Right to rectification (Section 31)
448
- * - 'erasure': Right to erasure (Section 32)
449
- * - 'restriction': Right to restrict processing (Section 33)
450
- * - 'portability': Right to data portability (Section 34)
451
- * - 'objection': Right to object (Section 35)
452
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
448
+ * Types of data subject requests per NDPA Part VI
449
+ * - 'information': Right to be informed (Section 27 — provision of information; Section 34(1)(a))
450
+ * - 'access': Right of access / confirmation + data copy (Section 34(1)(a)–(b))
451
+ * - 'rectification': Right to rectification (Section 34(1)(c))
452
+ * - 'erasure': Right to erasure (Section 34(1)(d), Section 34(2))
453
+ * - 'restriction': Right to restrict processing (Section 34(1)(e))
454
+ * - 'portability': Right to data portability (Section 38)
455
+ * - 'objection': Right to object (Section 36)
456
+ * - 'automated_decision_making': Rights re. automated decisions / profiling (Section 37)
457
+ * - 'withdraw_consent': Right to withdraw consent (Section 35)
453
458
  */
454
- export declare type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
459
+ export declare type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making' | 'withdraw_consent';
455
460
 
456
461
  /**
457
462
  * Formats a DSR request for display or submission
@@ -481,7 +486,9 @@ export declare interface RequestType {
481
486
  /** Description of what this request type entails */
482
487
  description: string;
483
488
  /**
484
- * NDPA section reference (e.g., "Section 30" for access requests)
489
+ * NDPA 2023 section reference for this right
490
+ * (e.g., "Section 34(1)(a)" for access, "Section 38" for portability).
491
+ * Used for display purposes only — verify the exact subsection with counsel.
485
492
  */
486
493
  ndpaSection?: string;
487
494
  /**
@@ -559,9 +566,10 @@ declare interface UseDSRReturn {
559
566
  */
560
567
  requests: DSRRequest[];
561
568
  /**
562
- * Submit a new request
569
+ * Submit a new request. The hook assigns `id`, `status`, `createdAt`,
570
+ * `updatedAt`, and `dueDate` — pass everything else.
563
571
  */
564
- submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'submittedAt' | 'updatedAt' | 'estimatedCompletionDate'>) => DSRRequest;
572
+ submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'createdAt' | 'updatedAt' | 'dueDate'>) => DSRRequest;
565
573
  /**
566
574
  * Update an existing request
567
575
  */
@@ -573,7 +581,12 @@ declare interface UseDSRReturn {
573
581
  /**
574
582
  * Get requests by status
575
583
  */
576
- getRequestsByStatus: (status: RequestStatus) => DSRRequest[];
584
+ /**
585
+ * Filter requests by status. Accepts both the modern `DSRStatus` union and
586
+ * the deprecated `RequestStatus` for backward compatibility — pass the
587
+ * modern values (`'pending' | 'awaitingVerification' | 'inProgress' | ...`).
588
+ */
589
+ getRequestsByStatus: (status: DSRStatus | RequestStatus) => DSRRequest[];
577
590
  /**
578
591
  * Get requests by type
579
592
  */
@@ -646,7 +659,7 @@ export declare interface ValidateDsrSubmissionOptions {
646
659
  /**
647
660
  * Allowed request types. When provided, the payload's `requestType`
648
661
  * must be one of these — useful for locking the server to a specific
649
- * set of supported NDPA Part IV §29-36 rights.
662
+ * set of supported NDPA Part VI §34-38 (plus §35, §36, §37) data-subject rights.
650
663
  */
651
664
  allowedRequestTypes?: string[];
652
665
  }
package/dist/dsr.js CHANGED
@@ -1,3 +1,2 @@
1
1
  "use client";
2
- 'use strict';var chunkVIQUXWJC_js=require('./chunk-VIQUXWJC.js'),chunkZPKVLTSX_js=require('./chunk-ZPKVLTSX.js'),chunkCKJAECGV_js=require('./chunk-CKJAECGV.js'),chunkJ5WCPZLW_js=require('./chunk-J5WCPZLW.js');require('./chunk-I54CDQGN.js'),require('./chunk-E64TU6IU.js'),require('./chunk-ELKB2AFZ.js');var chunkMQFZHA2D_js=require('./chunk-MQFZHA2D.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var m=react.createContext(null);function P(){let e=react.useContext(m);if(!e)throw new Error("DSR compound components must be wrapped in <DSR.Provider>. Example: <DSR.Provider requestTypes={...}><DSR.Form /></DSR.Provider>");return e}var s=({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i,children:n})=>{let f=chunkCKJAECGV_js.a({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i}),x=chunkMQFZHA2D_js.b(chunkMQFZHA2D_js.a({},f),{requestTypes:e});return jsxRuntime.jsx(m.Provider,{value:x,children:n})};var C={Provider:s,Form:chunkZPKVLTSX_js.a,Dashboard:chunkVIQUXWJC_js.a,Tracker:chunkVIQUXWJC_js.b};Object.defineProperty(exports,"DSRDashboard",{enumerable:true,get:function(){return chunkVIQUXWJC_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkVIQUXWJC_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkZPKVLTSX_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkCKJAECGV_js.a}});Object.defineProperty(exports,"formatDSRRequest",{enumerable:true,get:function(){return chunkJ5WCPZLW_js.b}});Object.defineProperty(exports,"validateDsrSubmission",{enumerable:true,get:function(){return chunkJ5WCPZLW_js.a}});exports.DSR=C;exports.DSRProvider=s;exports.useDSRCompound=P;//# sourceMappingURL=dsr.js.map
3
- //# sourceMappingURL=dsr.js.map
2
+ 'use strict';var chunkCR2QZTGW_js=require('./chunk-CR2QZTGW.js'),chunkW47OSMT6_js=require('./chunk-W47OSMT6.js'),chunkHBLGN4SD_js=require('./chunk-HBLGN4SD.js'),chunkL2BRFMVS_js=require('./chunk-L2BRFMVS.js');require('./chunk-UXUMYP4L.js'),require('./chunk-AME4HJR4.js'),require('./chunk-VWED6UTN.js');var chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var p=react.createContext(null);function P(){let e=react.useContext(p);if(!e)throw new Error("DSR compound components must be wrapped in <DSR.Provider>. Example: <DSR.Provider requestTypes={...}><DSR.Form /></DSR.Provider>");return e}var m=({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i,children:n})=>{let f=chunkHBLGN4SD_js.a({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i}),x=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},f),{requestTypes:e});return jsxRuntime.jsx(p.Provider,{value:x,children:n})};var C={Provider:m,Form:chunkW47OSMT6_js.a,Dashboard:chunkCR2QZTGW_js.a,Tracker:chunkCR2QZTGW_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 chunkW47OSMT6_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,"validateDsrSubmission",{enumerable:true,get:function(){return chunkL2BRFMVS_js.a}});exports.DSR=C;exports.DSRProvider=m;exports.useDSRCompound=P;
package/dist/dsr.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  "use client";
2
- import {b,a}from'./chunk-SCWNM4PC.mjs';export{a as DSRDashboard,b as DSRTracker}from'./chunk-SCWNM4PC.mjs';import {a as a$1}from'./chunk-6HZL2WDU.mjs';export{a as DSRRequestForm}from'./chunk-6HZL2WDU.mjs';import {a as a$2}from'./chunk-CWHBCQGT.mjs';export{a as useDSR}from'./chunk-CWHBCQGT.mjs';export{b as formatDSRRequest,a as validateDsrSubmission}from'./chunk-B4Z5MBUC.mjs';import'./chunk-GKKAK6ES.mjs';import'./chunk-AYKLAEOU.mjs';import'./chunk-6WIP33TW.mjs';import {b as b$1,a as a$3}from'./chunk-WWT2ZSNU.mjs';import {createContext,useContext}from'react';import {jsx}from'react/jsx-runtime';var m=createContext(null);function P(){let e=useContext(m);if(!e)throw new Error("DSR compound components must be wrapped in <DSR.Provider>. Example: <DSR.Provider requestTypes={...}><DSR.Form /></DSR.Provider>");return e}var s=({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i,children:n})=>{let f=a$2({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i}),x=b$1(a$3({},f),{requestTypes:e});return jsx(m.Provider,{value:x,children:n})};var C={Provider:s,Form:a$1,Dashboard:a,Tracker:b};export{C as DSR,s as DSRProvider,P as useDSRCompound};//# sourceMappingURL=dsr.mjs.map
3
- //# sourceMappingURL=dsr.mjs.map
2
+ import {b,a}from'./chunk-66NQ5CVY.mjs';export{a as DSRDashboard,b as DSRTracker}from'./chunk-66NQ5CVY.mjs';import {a as a$1}from'./chunk-XJO4DH3L.mjs';export{a as DSRRequestForm}from'./chunk-XJO4DH3L.mjs';import {a as a$2}from'./chunk-MPBPAEZC.mjs';export{a as useDSR}from'./chunk-MPBPAEZC.mjs';export{b as formatDSRRequest,a as validateDsrSubmission}from'./chunk-RZ6GC6WN.mjs';import'./chunk-EWVK45Z3.mjs';import'./chunk-SFGW37LE.mjs';import'./chunk-DBZSN4WP.mjs';import {b as b$1,a as a$3}from'./chunk-ZJYULEER.mjs';import {createContext,useContext}from'react';import {jsx}from'react/jsx-runtime';var p=createContext(null);function P(){let e=useContext(p);if(!e)throw new Error("DSR compound components must be wrapped in <DSR.Provider>. Example: <DSR.Provider requestTypes={...}><DSR.Form /></DSR.Provider>");return e}var m=({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i,children:n})=>{let f=a$2({requestTypes:e,adapter:S,storageKey:D,useLocalStorage:d,onSubmit:u,onUpdate:i}),x=b$1(a$3({},f),{requestTypes:e});return jsx(p.Provider,{value:x,children:n})};var C={Provider:m,Form:a$1,Dashboard:a,Tracker:b};export{C as DSR,m as DSRProvider,P as useDSRCompound};
package/dist/hooks.d.mts CHANGED
@@ -1,3 +1,5 @@
1
+ import { RefObject } from 'react';
2
+
1
3
  /**
2
4
  * Adequacy status of a destination country
3
5
  */
@@ -57,10 +59,51 @@ export declare interface BreachReport {
57
59
  affectedSystems: string[];
58
60
  /** Types of data involved in the breach */
59
61
  dataTypes: string[];
60
- /** Whether sensitive personal data is involved (NDPA Section 27) */
62
+ /** Whether sensitive personal data is involved (NDPA Section 30) */
61
63
  involvesSensitiveData?: boolean;
62
64
  /** Estimated number of data subjects affected */
63
65
  estimatedAffectedSubjects?: number;
66
+ /**
67
+ * Approximate number of personal data RECORDS concerned (distinct from subject count).
68
+ * Required content under NDPA Section 40(1)(a) and Section 40(2).
69
+ */
70
+ approximateRecordCount?: number;
71
+ /**
72
+ * Categories of data subjects affected (e.g. customers, employees, minors, patients).
73
+ * Required content under NDPA Section 40(1)(a) and Section 40(2).
74
+ */
75
+ dataSubjectCategories?: string[];
76
+ /**
77
+ * Likely consequences of the breach for affected data subjects (e.g. identity theft,
78
+ * financial loss, reputational damage). Reported to the NDPC and, where applicable,
79
+ * communicated to data subjects under Section 40(3).
80
+ */
81
+ likelyConsequences?: string;
82
+ /**
83
+ * Measures taken or proposed to mitigate adverse effects of the breach.
84
+ * Required content for Section 40(3) communications to data subjects.
85
+ */
86
+ mitigationMeasures?: string;
87
+ /**
88
+ * Whether this is a phased / interim report submitted before full investigation
89
+ * is complete. The NDPC permits phased reporting where complete information is
90
+ * not available within 72 hours.
91
+ */
92
+ isPhasedReport?: boolean;
93
+ /**
94
+ * ID of the prior phased report this report supplements, if any.
95
+ */
96
+ supplementsReportId?: string;
97
+ /**
98
+ * Data Protection Officer contact details. The DPO is the named contact point
99
+ * for the NDPC per NDPA Section 32(3)(c). Required content in the regulatory
100
+ * report (Section 40(2)).
101
+ */
102
+ dpoContact?: {
103
+ name: string;
104
+ email: string;
105
+ phone?: string;
106
+ };
64
107
  /** Whether the breach is ongoing or contained */
65
108
  status: 'ongoing' | 'contained' | 'resolved';
66
109
  /** Initial actions taken to address the breach */
@@ -404,10 +447,10 @@ declare interface DOCXExportOptions {
404
447
  }
405
448
 
406
449
  /** A map of question IDs to their answer values */
407
- declare type DPIAAnswerMap = Record<string, DPIAAnswerValue>;
450
+ export declare type DPIAAnswerMap = Record<string, DPIAAnswerValue>;
408
451
 
409
452
  /** Possible value types for a DPIA answer */
410
- declare type DPIAAnswerValue = string | number | boolean | string[];
453
+ export declare type DPIAAnswerValue = string | number | boolean | string[];
411
454
 
412
455
  /**
413
456
  * Data Protection Impact Assessment types aligned with NDPA 2023 Sections 38-39
@@ -626,20 +669,25 @@ export declare interface DSRRequest {
626
669
  export declare type DSRStatus = 'pending' | 'awaitingVerification' | 'inProgress' | 'completed' | 'rejected';
627
670
 
628
671
  /**
629
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
672
+ * Data Subject Rights types aligned with NDPA 2023 Part VI (Sections 34-38)
673
+ * and the related provisions in Part V (Section 27 — information to the data subject)
674
+ * and Part X (Section 46 — complaint to the Commission).
675
+ *
676
+ * Note: These are guidance labels — not legal advice. Verify with your DPO or counsel.
630
677
  */
631
678
  /**
632
- * Types of data subject requests per NDPA Part IV
633
- * - 'information': Right to be informed (Section 29)
634
- * - 'access': Right of access (Section 30)
635
- * - 'rectification': Right to rectification (Section 31)
636
- * - 'erasure': Right to erasure (Section 32)
637
- * - 'restriction': Right to restrict processing (Section 33)
638
- * - 'portability': Right to data portability (Section 34)
639
- * - 'objection': Right to object (Section 35)
640
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
679
+ * Types of data subject requests per NDPA Part VI
680
+ * - 'information': Right to be informed (Section 27 — provision of information; Section 34(1)(a))
681
+ * - 'access': Right of access / confirmation + data copy (Section 34(1)(a)–(b))
682
+ * - 'rectification': Right to rectification (Section 34(1)(c))
683
+ * - 'erasure': Right to erasure (Section 34(1)(d), Section 34(2))
684
+ * - 'restriction': Right to restrict processing (Section 34(1)(e))
685
+ * - 'portability': Right to data portability (Section 38)
686
+ * - 'objection': Right to object (Section 36)
687
+ * - 'automated_decision_making': Rights re. automated decisions / profiling (Section 37)
688
+ * - 'withdraw_consent': Right to withdraw consent (Section 35)
641
689
  */
642
- export declare type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
690
+ export declare type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making' | 'withdraw_consent';
643
691
 
644
692
  declare type EffortLevel = 'low' | 'medium' | 'high';
645
693
 
@@ -1181,7 +1229,9 @@ declare interface RequestType {
1181
1229
  /** Description of what this request type entails */
1182
1230
  description: string;
1183
1231
  /**
1184
- * NDPA section reference (e.g., "Section 30" for access requests)
1232
+ * NDPA 2023 section reference for this right
1233
+ * (e.g., "Section 34(1)(a)" for access, "Section 38" for portability).
1234
+ * Used for display purposes only — verify the exact subsection with counsel.
1185
1235
  */
1186
1236
  ndpaSection?: string;
1187
1237
  /**
@@ -1330,8 +1380,11 @@ declare interface ThirdPartyProcessor {
1330
1380
  }
1331
1381
 
1332
1382
  /**
1333
- * Cross-Border Data Transfer types aligned with NDPA 2023 Part VI (Sections 41-45)
1334
- * Personal data may only be transferred outside Nigeria under specific conditions
1383
+ * Cross-Border Data Transfer types aligned with NDPA 2023 Part VIII (Sections 41-43).
1384
+ * Personal data may only be transferred outside Nigeria under the bases listed in
1385
+ * Section 41(1), where Section 42 defines adequacy and Section 43 lists derogations.
1386
+ *
1387
+ * Note: These are guidance labels — not legal advice. Verify with your DPO or counsel.
1335
1388
  */
1336
1389
  /**
1337
1390
  * Transfer mechanisms recognized under the NDPA
@@ -1878,9 +1931,10 @@ declare interface UseDSRReturn {
1878
1931
  */
1879
1932
  requests: DSRRequest[];
1880
1933
  /**
1881
- * Submit a new request
1934
+ * Submit a new request. The hook assigns `id`, `status`, `createdAt`,
1935
+ * `updatedAt`, and `dueDate` — pass everything else.
1882
1936
  */
1883
- submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'submittedAt' | 'updatedAt' | 'estimatedCompletionDate'>) => DSRRequest;
1937
+ submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'createdAt' | 'updatedAt' | 'dueDate'>) => DSRRequest;
1884
1938
  /**
1885
1939
  * Update an existing request
1886
1940
  */
@@ -1892,7 +1946,12 @@ declare interface UseDSRReturn {
1892
1946
  /**
1893
1947
  * Get requests by status
1894
1948
  */
1895
- getRequestsByStatus: (status: RequestStatus) => DSRRequest[];
1949
+ /**
1950
+ * Filter requests by status. Accepts both the modern `DSRStatus` union and
1951
+ * the deprecated `RequestStatus` for backward compatibility — pass the
1952
+ * modern values (`'pending' | 'awaitingVerification' | 'inProgress' | ...`).
1953
+ */
1954
+ getRequestsByStatus: (status: DSRStatus | RequestStatus) => DSRRequest[];
1896
1955
  /**
1897
1956
  * Get requests by type
1898
1957
  */
@@ -1915,6 +1974,40 @@ declare interface UseDSRReturn {
1915
1974
  isLoading: boolean;
1916
1975
  }
1917
1976
 
1977
+ /**
1978
+ * Trap keyboard focus inside a container while it is active, and restore
1979
+ * focus to the element that was active before activation when the container
1980
+ * deactivates. Centralises the trap/restore logic that was previously
1981
+ * duplicated (and broken — no restore) inside ConsentBanner.
1982
+ *
1983
+ * @example
1984
+ * ```tsx
1985
+ * const ref = useFocusTrap<HTMLDivElement>({ active: isOpen, onEscape: close });
1986
+ * return <div ref={ref}>...</div>;
1987
+ * ```
1988
+ */
1989
+ export declare function useFocusTrap<T extends HTMLElement = HTMLElement>(options: UseFocusTrapOptions): RefObject<T | null>;
1990
+
1991
+ export declare interface UseFocusTrapOptions {
1992
+ /**
1993
+ * Whether the focus trap is active. When transitioning from false → true,
1994
+ * the hook captures `document.activeElement` and moves focus into the
1995
+ * container; when transitioning back to false, the captured element is
1996
+ * re-focused (WCAG 2.4.3 — focus order).
1997
+ */
1998
+ active: boolean;
1999
+ /**
2000
+ * Optional callback fired on Escape keydown while the trap is active.
2001
+ * Typical use is to close the surrounding dialog.
2002
+ */
2003
+ onEscape?: () => void;
2004
+ /**
2005
+ * If false, do not auto-focus the first interactive element inside the
2006
+ * container on activation. Defaults to true.
2007
+ */
2008
+ autoFocus?: boolean;
2009
+ }
2010
+
1918
2011
  /**
1919
2012
  * Hook for managing lawful basis documentation for processing activities
1920
2013
  * in compliance with NDPA 2023 Section 25.
package/dist/hooks.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { RefObject } from 'react';
2
+
1
3
  /**
2
4
  * Adequacy status of a destination country
3
5
  */
@@ -57,10 +59,51 @@ export declare interface BreachReport {
57
59
  affectedSystems: string[];
58
60
  /** Types of data involved in the breach */
59
61
  dataTypes: string[];
60
- /** Whether sensitive personal data is involved (NDPA Section 27) */
62
+ /** Whether sensitive personal data is involved (NDPA Section 30) */
61
63
  involvesSensitiveData?: boolean;
62
64
  /** Estimated number of data subjects affected */
63
65
  estimatedAffectedSubjects?: number;
66
+ /**
67
+ * Approximate number of personal data RECORDS concerned (distinct from subject count).
68
+ * Required content under NDPA Section 40(1)(a) and Section 40(2).
69
+ */
70
+ approximateRecordCount?: number;
71
+ /**
72
+ * Categories of data subjects affected (e.g. customers, employees, minors, patients).
73
+ * Required content under NDPA Section 40(1)(a) and Section 40(2).
74
+ */
75
+ dataSubjectCategories?: string[];
76
+ /**
77
+ * Likely consequences of the breach for affected data subjects (e.g. identity theft,
78
+ * financial loss, reputational damage). Reported to the NDPC and, where applicable,
79
+ * communicated to data subjects under Section 40(3).
80
+ */
81
+ likelyConsequences?: string;
82
+ /**
83
+ * Measures taken or proposed to mitigate adverse effects of the breach.
84
+ * Required content for Section 40(3) communications to data subjects.
85
+ */
86
+ mitigationMeasures?: string;
87
+ /**
88
+ * Whether this is a phased / interim report submitted before full investigation
89
+ * is complete. The NDPC permits phased reporting where complete information is
90
+ * not available within 72 hours.
91
+ */
92
+ isPhasedReport?: boolean;
93
+ /**
94
+ * ID of the prior phased report this report supplements, if any.
95
+ */
96
+ supplementsReportId?: string;
97
+ /**
98
+ * Data Protection Officer contact details. The DPO is the named contact point
99
+ * for the NDPC per NDPA Section 32(3)(c). Required content in the regulatory
100
+ * report (Section 40(2)).
101
+ */
102
+ dpoContact?: {
103
+ name: string;
104
+ email: string;
105
+ phone?: string;
106
+ };
64
107
  /** Whether the breach is ongoing or contained */
65
108
  status: 'ongoing' | 'contained' | 'resolved';
66
109
  /** Initial actions taken to address the breach */
@@ -404,10 +447,10 @@ declare interface DOCXExportOptions {
404
447
  }
405
448
 
406
449
  /** A map of question IDs to their answer values */
407
- declare type DPIAAnswerMap = Record<string, DPIAAnswerValue>;
450
+ export declare type DPIAAnswerMap = Record<string, DPIAAnswerValue>;
408
451
 
409
452
  /** Possible value types for a DPIA answer */
410
- declare type DPIAAnswerValue = string | number | boolean | string[];
453
+ export declare type DPIAAnswerValue = string | number | boolean | string[];
411
454
 
412
455
  /**
413
456
  * Data Protection Impact Assessment types aligned with NDPA 2023 Sections 38-39
@@ -626,20 +669,25 @@ export declare interface DSRRequest {
626
669
  export declare type DSRStatus = 'pending' | 'awaitingVerification' | 'inProgress' | 'completed' | 'rejected';
627
670
 
628
671
  /**
629
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
672
+ * Data Subject Rights types aligned with NDPA 2023 Part VI (Sections 34-38)
673
+ * and the related provisions in Part V (Section 27 — information to the data subject)
674
+ * and Part X (Section 46 — complaint to the Commission).
675
+ *
676
+ * Note: These are guidance labels — not legal advice. Verify with your DPO or counsel.
630
677
  */
631
678
  /**
632
- * Types of data subject requests per NDPA Part IV
633
- * - 'information': Right to be informed (Section 29)
634
- * - 'access': Right of access (Section 30)
635
- * - 'rectification': Right to rectification (Section 31)
636
- * - 'erasure': Right to erasure (Section 32)
637
- * - 'restriction': Right to restrict processing (Section 33)
638
- * - 'portability': Right to data portability (Section 34)
639
- * - 'objection': Right to object (Section 35)
640
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
679
+ * Types of data subject requests per NDPA Part VI
680
+ * - 'information': Right to be informed (Section 27 — provision of information; Section 34(1)(a))
681
+ * - 'access': Right of access / confirmation + data copy (Section 34(1)(a)–(b))
682
+ * - 'rectification': Right to rectification (Section 34(1)(c))
683
+ * - 'erasure': Right to erasure (Section 34(1)(d), Section 34(2))
684
+ * - 'restriction': Right to restrict processing (Section 34(1)(e))
685
+ * - 'portability': Right to data portability (Section 38)
686
+ * - 'objection': Right to object (Section 36)
687
+ * - 'automated_decision_making': Rights re. automated decisions / profiling (Section 37)
688
+ * - 'withdraw_consent': Right to withdraw consent (Section 35)
641
689
  */
642
- export declare type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
690
+ export declare type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making' | 'withdraw_consent';
643
691
 
644
692
  declare type EffortLevel = 'low' | 'medium' | 'high';
645
693
 
@@ -1181,7 +1229,9 @@ declare interface RequestType {
1181
1229
  /** Description of what this request type entails */
1182
1230
  description: string;
1183
1231
  /**
1184
- * NDPA section reference (e.g., "Section 30" for access requests)
1232
+ * NDPA 2023 section reference for this right
1233
+ * (e.g., "Section 34(1)(a)" for access, "Section 38" for portability).
1234
+ * Used for display purposes only — verify the exact subsection with counsel.
1185
1235
  */
1186
1236
  ndpaSection?: string;
1187
1237
  /**
@@ -1330,8 +1380,11 @@ declare interface ThirdPartyProcessor {
1330
1380
  }
1331
1381
 
1332
1382
  /**
1333
- * Cross-Border Data Transfer types aligned with NDPA 2023 Part VI (Sections 41-45)
1334
- * Personal data may only be transferred outside Nigeria under specific conditions
1383
+ * Cross-Border Data Transfer types aligned with NDPA 2023 Part VIII (Sections 41-43).
1384
+ * Personal data may only be transferred outside Nigeria under the bases listed in
1385
+ * Section 41(1), where Section 42 defines adequacy and Section 43 lists derogations.
1386
+ *
1387
+ * Note: These are guidance labels — not legal advice. Verify with your DPO or counsel.
1335
1388
  */
1336
1389
  /**
1337
1390
  * Transfer mechanisms recognized under the NDPA
@@ -1878,9 +1931,10 @@ declare interface UseDSRReturn {
1878
1931
  */
1879
1932
  requests: DSRRequest[];
1880
1933
  /**
1881
- * Submit a new request
1934
+ * Submit a new request. The hook assigns `id`, `status`, `createdAt`,
1935
+ * `updatedAt`, and `dueDate` — pass everything else.
1882
1936
  */
1883
- submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'submittedAt' | 'updatedAt' | 'estimatedCompletionDate'>) => DSRRequest;
1937
+ submitRequest: (requestData: Omit<DSRRequest, 'id' | 'status' | 'createdAt' | 'updatedAt' | 'dueDate'>) => DSRRequest;
1884
1938
  /**
1885
1939
  * Update an existing request
1886
1940
  */
@@ -1892,7 +1946,12 @@ declare interface UseDSRReturn {
1892
1946
  /**
1893
1947
  * Get requests by status
1894
1948
  */
1895
- getRequestsByStatus: (status: RequestStatus) => DSRRequest[];
1949
+ /**
1950
+ * Filter requests by status. Accepts both the modern `DSRStatus` union and
1951
+ * the deprecated `RequestStatus` for backward compatibility — pass the
1952
+ * modern values (`'pending' | 'awaitingVerification' | 'inProgress' | ...`).
1953
+ */
1954
+ getRequestsByStatus: (status: DSRStatus | RequestStatus) => DSRRequest[];
1896
1955
  /**
1897
1956
  * Get requests by type
1898
1957
  */
@@ -1915,6 +1974,40 @@ declare interface UseDSRReturn {
1915
1974
  isLoading: boolean;
1916
1975
  }
1917
1976
 
1977
+ /**
1978
+ * Trap keyboard focus inside a container while it is active, and restore
1979
+ * focus to the element that was active before activation when the container
1980
+ * deactivates. Centralises the trap/restore logic that was previously
1981
+ * duplicated (and broken — no restore) inside ConsentBanner.
1982
+ *
1983
+ * @example
1984
+ * ```tsx
1985
+ * const ref = useFocusTrap<HTMLDivElement>({ active: isOpen, onEscape: close });
1986
+ * return <div ref={ref}>...</div>;
1987
+ * ```
1988
+ */
1989
+ export declare function useFocusTrap<T extends HTMLElement = HTMLElement>(options: UseFocusTrapOptions): RefObject<T | null>;
1990
+
1991
+ export declare interface UseFocusTrapOptions {
1992
+ /**
1993
+ * Whether the focus trap is active. When transitioning from false → true,
1994
+ * the hook captures `document.activeElement` and moves focus into the
1995
+ * container; when transitioning back to false, the captured element is
1996
+ * re-focused (WCAG 2.4.3 — focus order).
1997
+ */
1998
+ active: boolean;
1999
+ /**
2000
+ * Optional callback fired on Escape keydown while the trap is active.
2001
+ * Typical use is to close the surrounding dialog.
2002
+ */
2003
+ onEscape?: () => void;
2004
+ /**
2005
+ * If false, do not auto-focus the first interactive element inside the
2006
+ * container on activation. Defaults to true.
2007
+ */
2008
+ autoFocus?: boolean;
2009
+ }
2010
+
1918
2011
  /**
1919
2012
  * Hook for managing lawful basis documentation for processing activities
1920
2013
  * in compliance with NDPA 2023 Section 25.
package/dist/hooks.js CHANGED
@@ -1,3 +1,2 @@
1
1
  "use client";
2
- 'use strict';var chunkORFC66EA_js=require('./chunk-ORFC66EA.js'),chunkTV4U6AIS_js=require('./chunk-TV4U6AIS.js'),chunk7AVN424U_js=require('./chunk-7AVN424U.js'),chunkMCWV7S2G_js=require('./chunk-MCWV7S2G.js'),chunkM2TPT5GB_js=require('./chunk-M2TPT5GB.js');require('./chunk-Z73T6MWY.js'),require('./chunk-YPKUHSK4.js'),require('./chunk-LIM64IV2.js');var chunkS4GRSNB4_js=require('./chunk-S4GRSNB4.js');require('./chunk-CPK5D5FY.js'),require('./chunk-TDDAYVKK.js'),require('./chunk-C4YM4UMI.js'),require('./chunk-GOU6FU6Y.js');var chunk7SMLHZ4B_js=require('./chunk-7SMLHZ4B.js');require('./chunk-A4PK7JB2.js'),require('./chunk-HO5M7M4M.js');var chunkCKJAECGV_js=require('./chunk-CKJAECGV.js');require('./chunk-J5WCPZLW.js');var chunkOPYQIJKY_js=require('./chunk-OPYQIJKY.js');require('./chunk-P42Z5CFE.js');var chunkI4M2AA3N_js=require('./chunk-I4M2AA3N.js');require('./chunk-BKRETVJ6.js'),require('./chunk-ELKB2AFZ.js'),require('./chunk-MQFZHA2D.js');var react=require('react');function l({input:e}){let r=JSON.stringify(e);return react.useMemo(()=>chunkS4GRSNB4_js.a(e),[r])}Object.defineProperty(exports,"useAdaptivePolicyWizard",{enumerable:true,get:function(){return chunkORFC66EA_js.a}});Object.defineProperty(exports,"useDefaultPrivacyPolicy",{enumerable:true,get:function(){return chunkTV4U6AIS_js.b}});Object.defineProperty(exports,"usePrivacyPolicy",{enumerable:true,get:function(){return chunkTV4U6AIS_js.a}});Object.defineProperty(exports,"useLawfulBasis",{enumerable:true,get:function(){return chunk7AVN424U_js.a}});Object.defineProperty(exports,"useCrossBorderTransfer",{enumerable:true,get:function(){return chunkMCWV7S2G_js.a}});Object.defineProperty(exports,"useROPA",{enumerable:true,get:function(){return chunkM2TPT5GB_js.a}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunk7SMLHZ4B_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkCKJAECGV_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkOPYQIJKY_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkI4M2AA3N_js.a}});exports.useComplianceScore=l;//# sourceMappingURL=hooks.js.map
3
- //# sourceMappingURL=hooks.js.map
2
+ 'use strict';var chunkRYREGZVQ_js=require('./chunk-RYREGZVQ.js'),chunkZ763UI5U_js=require('./chunk-Z763UI5U.js'),chunkUTFBKL73_js=require('./chunk-UTFBKL73.js'),chunkHHK5LHEG_js=require('./chunk-HHK5LHEG.js'),chunk3JPDTXGC_js=require('./chunk-3JPDTXGC.js'),chunkUI536RU2_js=require('./chunk-UI536RU2.js');require('./chunk-N3MQQUQP.js'),require('./chunk-LVGT3DLT.js'),require('./chunk-QPRYXVH2.js'),require('./chunk-Q64735OC.js'),require('./chunk-WZYCBW2R.js'),require('./chunk-YFBDJ4FH.js'),require('./chunk-4CVBQC66.js');var chunkP4LNLCSF_js=require('./chunk-P4LNLCSF.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-7ZZO7GVB.js'),require('./chunk-B46SJB5V.js');var chunkHBLGN4SD_js=require('./chunk-HBLGN4SD.js');require('./chunk-L2BRFMVS.js');var chunkC7IDR2IV_js=require('./chunk-C7IDR2IV.js');require('./chunk-TQZWJGJ2.js');var chunkVJTQXVAF_js=require('./chunk-VJTQXVAF.js');require('./chunk-3YTAOT5O.js'),require('./chunk-ZVOIR4QH.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkRYREGZVQ_js.a}});Object.defineProperty(exports,"useDefaultPrivacyPolicy",{enumerable:true,get:function(){return chunkZ763UI5U_js.b}});Object.defineProperty(exports,"usePrivacyPolicy",{enumerable:true,get:function(){return chunkZ763UI5U_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,"useAdaptivePolicyWizard",{enumerable:true,get:function(){return chunkUI536RU2_js.a}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkP4LNLCSF_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkHBLGN4SD_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkC7IDR2IV_js.a}});Object.defineProperty(exports,"useBreach",{enumerable:true,get:function(){return chunkVJTQXVAF_js.a}});
package/dist/hooks.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  "use client";
2
- export{a as useAdaptivePolicyWizard}from'./chunk-F5TXUA4O.mjs';export{b as useDefaultPrivacyPolicy,a as usePrivacyPolicy}from'./chunk-LU7PKE7Y.mjs';export{a as useLawfulBasis}from'./chunk-E4NCJ7RD.mjs';export{a as useCrossBorderTransfer}from'./chunk-Z6IIMLZU.mjs';export{a as useROPA}from'./chunk-2AW7KAZO.mjs';import'./chunk-JFFOPHU3.mjs';import'./chunk-I557S566.mjs';import'./chunk-CKGJK4D7.mjs';import {a}from'./chunk-ABDB7LEV.mjs';import'./chunk-GRLIPT5V.mjs';import'./chunk-TXBZPCGF.mjs';import'./chunk-75TJPK2N.mjs';import'./chunk-SHMJNRHO.mjs';export{a as useConsent}from'./chunk-VWPGIES4.mjs';import'./chunk-R3OYAJI6.mjs';import'./chunk-U62QYKVG.mjs';export{a as useDSR}from'./chunk-CWHBCQGT.mjs';import'./chunk-B4Z5MBUC.mjs';export{a as useDPIA}from'./chunk-6FGCGLH5.mjs';import'./chunk-6TA2MVTU.mjs';export{a as useBreach}from'./chunk-PATONNTZ.mjs';import'./chunk-DJGS7SSN.mjs';import'./chunk-6WIP33TW.mjs';import'./chunk-WWT2ZSNU.mjs';import {useMemo}from'react';function l({input:e}){let r=JSON.stringify(e);return useMemo(()=>a(e),[r])}export{l as useComplianceScore};//# sourceMappingURL=hooks.mjs.map
3
- //# sourceMappingURL=hooks.mjs.map
2
+ export{a as useComplianceScore}from'./chunk-W65ZWTLD.mjs';export{b as useDefaultPrivacyPolicy,a as usePrivacyPolicy}from'./chunk-VYAL2TGT.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';export{a as useAdaptivePolicyWizard}from'./chunk-O6CUBNXK.mjs';import'./chunk-AOHKVFAS.mjs';import'./chunk-Y3MKMAFQ.mjs';import'./chunk-EFIBHKQE.mjs';import'./chunk-RMQ7OLNY.mjs';import'./chunk-LWIKDDSU.mjs';import'./chunk-7BJXI2HI.mjs';import'./chunk-XP5PL6K7.mjs';export{a as useConsent}from'./chunk-PCU6GKBE.mjs';export{a as useFocusTrap}from'./chunk-YTU4FNM2.mjs';import'./chunk-UASG46LP.mjs';import'./chunk-PJNKQPQP.mjs';export{a as useDSR}from'./chunk-MPBPAEZC.mjs';import'./chunk-RZ6GC6WN.mjs';export{a as useDPIA}from'./chunk-H3XJV2IR.mjs';import'./chunk-LRRENTT5.mjs';export{a as useBreach}from'./chunk-3HOXQNCH.mjs';import'./chunk-WTGKZX7J.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';