@tantainnovative/ndpr-toolkit 5.5.0 → 5.6.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 (45) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +25 -0
  3. package/dist/chunk-675DXBED.mjs +1 -0
  4. package/dist/{chunk-QKXGVT2Q.js → chunk-GJH7YFBO.js} +1 -1
  5. package/dist/chunk-H3Q3I6XC.js +1 -0
  6. package/dist/{chunk-XCKX2WKD.js → chunk-HCZDQWHY.js} +1 -1
  7. package/dist/chunk-LAAJVTUV.mjs +1 -0
  8. package/dist/{chunk-JXK5RUR3.mjs → chunk-ME77GU4Q.mjs} +1 -1
  9. package/dist/chunk-MGXWQW5I.mjs +1 -0
  10. package/dist/chunk-VFRGCBJY.js +1 -0
  11. package/dist/{chunk-PQ5IPUJN.mjs → chunk-VXLOPB33.mjs} +1 -1
  12. package/dist/chunk-ZVWSSXV2.js +1 -0
  13. package/dist/consent.d.mts +88 -0
  14. package/dist/consent.d.ts +88 -0
  15. package/dist/consent.js +1 -1
  16. package/dist/consent.mjs +1 -1
  17. package/dist/core.d.mts +88 -0
  18. package/dist/core.d.ts +88 -0
  19. package/dist/core.js +1 -1
  20. package/dist/core.mjs +1 -1
  21. package/dist/headless.d.mts +163 -0
  22. package/dist/headless.d.ts +163 -0
  23. package/dist/headless.js +1 -1
  24. package/dist/headless.mjs +1 -1
  25. package/dist/hooks.d.mts +90 -0
  26. package/dist/hooks.d.ts +90 -0
  27. package/dist/hooks.js +1 -1
  28. package/dist/hooks.mjs +1 -1
  29. package/dist/index.d.mts +105 -0
  30. package/dist/index.d.ts +105 -0
  31. package/dist/index.js +1 -1
  32. package/dist/index.mjs +1 -1
  33. package/dist/server.d.mts +88 -0
  34. package/dist/server.d.ts +88 -0
  35. package/dist/server.js +1 -1
  36. package/dist/server.mjs +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunk-DKLJ5DYN.js +0 -1
  39. package/dist/chunk-OW4GO3JF.js +0 -1
  40. package/dist/chunk-Q5KB2DN3.mjs +0 -1
  41. package/dist/chunk-R3ZKV2J7.mjs +0 -1
  42. package/dist/chunk-SZXHNJGG.mjs +0 -1
  43. package/dist/chunk-WKY26JLT.js +0 -1
  44. /package/dist/{chunk-YQTZWPOS.mjs → chunk-23CULZBM.mjs} +0 -0
  45. /package/dist/{chunk-OVW5ASY3.js → chunk-VKDW2IHV.js} +0 -0
package/dist/hooks.d.mts CHANGED
@@ -478,6 +478,44 @@ export declare interface ConsentStorageOptions {
478
478
  };
479
479
  }
480
480
 
481
+ /** How a present cookie was classified. */
482
+ export declare type CookieMatchSource = 'declared' | 'known' | 'none';
483
+
484
+ export declare interface CookieScanOptions {
485
+ /**
486
+ * The cookie string to scan, in `document.cookie` form (`a=1; b=2`).
487
+ * Defaults to `document.cookie` in the browser, or `''` on the server.
488
+ */
489
+ cookieString?: string;
490
+ /** Reference timestamp (epoch ms) recorded on the result. Defaults to `Date.now()`. */
491
+ asOf?: number;
492
+ /** Extra known cookies, checked before the built-in registry (so they can override it). */
493
+ knownCookies?: DeclaredCookie[];
494
+ /** Whether to fall back to the built-in known-cookie registry for undeclared cookies. @default true */
495
+ useKnownRegistry?: boolean;
496
+ }
497
+
498
+ export declare interface CookieScanResult {
499
+ /** When the scan ran (epoch ms). */
500
+ scannedAt: number;
501
+ /** Number of cookies present. */
502
+ total: number;
503
+ /** Every present cookie, classified. */
504
+ cookies: ScannedCookie[];
505
+ /** Cookies that matched one of your declared cookies. */
506
+ declared: ScannedCookie[];
507
+ /** Cookies present but NOT in your declaration — the compliance gap. */
508
+ undeclared: ScannedCookie[];
509
+ /** Undeclared cookies the built-in registry could still identify. */
510
+ identified: ScannedCookie[];
511
+ /** Undeclared cookies that could not be identified at all. */
512
+ unknown: ScannedCookie[];
513
+ /** Present cookies grouped by resolved category; unclassified cookies go under `uncategorized`. */
514
+ byCategory: Record<string, ScannedCookie[]>;
515
+ /** True when there are no undeclared cookies. */
516
+ complete: boolean;
517
+ }
518
+
481
519
  /**
482
520
  * Summary of cross-border transfer compliance
483
521
  */
@@ -667,6 +705,30 @@ declare interface DCPMIThresholds {
667
705
  */
668
706
  declare type DCPMITier = 'UHL' | 'EHL' | 'OHL' | 'listed' | 'none';
669
707
 
708
+ /**
709
+ * Cookie scanner — audits the cookies actually present in the browser against
710
+ * the cookies you have declared, surfacing undeclared cookies that put you out
711
+ * of step with your cookie notice (NDPA 2023 S.25-26 / NDPC GAID 2025 on
712
+ * specific, informed consent).
713
+ *
714
+ * Pure and DOM-optional: pass `cookieString` to scan an arbitrary value (a
715
+ * `Cookie:` header on the server, a test fixture), or call it in the browser
716
+ * and it reads `document.cookie`. Safe to import from a server bundle.
717
+ */
718
+ /** A cookie you declare against a consent category. */
719
+ export declare interface DeclaredCookie {
720
+ /** Exact cookie name, a prefix (with `prefix: true`), or a RegExp matched against the name. */
721
+ name: string | RegExp;
722
+ /** Consent category this cookie belongs to (e.g. 'necessary', 'analytics', 'marketing'). */
723
+ category: string;
724
+ /** Who sets the cookie (e.g. 'Google Analytics'). */
725
+ provider?: string;
726
+ /** What the cookie is used for — surfaced in your cookie policy. */
727
+ purpose?: string;
728
+ /** Treat a string `name` as a prefix match instead of an exact match. Ignored for RegExp names. */
729
+ prefix?: boolean;
730
+ }
731
+
670
732
  /** Options for DOCX export of the finalised policy. */
671
733
  declare interface DOCXExportOptions {
672
734
  includeTOC?: boolean;
@@ -1555,6 +1617,17 @@ export declare interface ROPASummary {
1555
1617
  lastUpdated: number;
1556
1618
  }
1557
1619
 
1620
+ export declare interface ScannedCookie {
1621
+ /** The cookie name as found in the cookie string. */
1622
+ name: string;
1623
+ /** Resolved consent category, or `null` when it could not be classified. */
1624
+ category: string | null;
1625
+ /** Whether it matched your declaration, only the known registry, or nothing. */
1626
+ matchedBy: CookieMatchSource;
1627
+ provider?: string;
1628
+ purpose?: string;
1629
+ }
1630
+
1558
1631
  /**
1559
1632
  * Additional conditions required for processing sensitive personal data
1560
1633
  * per NDPA Section 30
@@ -1987,6 +2060,23 @@ export declare interface UseConsentReturn {
1987
2060
  isLoading: boolean;
1988
2061
  }
1989
2062
 
2063
+ /**
2064
+ * React hook that scans `document.cookie` against your declared cookies on
2065
+ * mount and exposes a `rescan()` to re-run after you set or clear cookies.
2066
+ *
2067
+ * `result` is `null` until the first client-side scan, so server and first
2068
+ * client render agree (no hydration mismatch). `rescan` is stable and always
2069
+ * reads the latest `declared`/`options` — callers don't need to memoise them.
2070
+ */
2071
+ export declare function useCookieScan(declared?: DeclaredCookie[], options?: CookieScanOptions): UseCookieScanReturn;
2072
+
2073
+ export declare interface UseCookieScanReturn {
2074
+ /** The latest scan, or `null` before the first client-side scan (e.g. during SSR). */
2075
+ result: CookieScanResult | null;
2076
+ /** Re-read the cookies and recompute the scan with the current arguments. */
2077
+ rescan: () => void;
2078
+ }
2079
+
1990
2080
  /**
1991
2081
  * Hook for managing cross-border data transfers in compliance with NDPA Part VIII (Sections 41-43).
1992
2082
  *
package/dist/hooks.d.ts CHANGED
@@ -478,6 +478,44 @@ export declare interface ConsentStorageOptions {
478
478
  };
479
479
  }
480
480
 
481
+ /** How a present cookie was classified. */
482
+ export declare type CookieMatchSource = 'declared' | 'known' | 'none';
483
+
484
+ export declare interface CookieScanOptions {
485
+ /**
486
+ * The cookie string to scan, in `document.cookie` form (`a=1; b=2`).
487
+ * Defaults to `document.cookie` in the browser, or `''` on the server.
488
+ */
489
+ cookieString?: string;
490
+ /** Reference timestamp (epoch ms) recorded on the result. Defaults to `Date.now()`. */
491
+ asOf?: number;
492
+ /** Extra known cookies, checked before the built-in registry (so they can override it). */
493
+ knownCookies?: DeclaredCookie[];
494
+ /** Whether to fall back to the built-in known-cookie registry for undeclared cookies. @default true */
495
+ useKnownRegistry?: boolean;
496
+ }
497
+
498
+ export declare interface CookieScanResult {
499
+ /** When the scan ran (epoch ms). */
500
+ scannedAt: number;
501
+ /** Number of cookies present. */
502
+ total: number;
503
+ /** Every present cookie, classified. */
504
+ cookies: ScannedCookie[];
505
+ /** Cookies that matched one of your declared cookies. */
506
+ declared: ScannedCookie[];
507
+ /** Cookies present but NOT in your declaration — the compliance gap. */
508
+ undeclared: ScannedCookie[];
509
+ /** Undeclared cookies the built-in registry could still identify. */
510
+ identified: ScannedCookie[];
511
+ /** Undeclared cookies that could not be identified at all. */
512
+ unknown: ScannedCookie[];
513
+ /** Present cookies grouped by resolved category; unclassified cookies go under `uncategorized`. */
514
+ byCategory: Record<string, ScannedCookie[]>;
515
+ /** True when there are no undeclared cookies. */
516
+ complete: boolean;
517
+ }
518
+
481
519
  /**
482
520
  * Summary of cross-border transfer compliance
483
521
  */
@@ -667,6 +705,30 @@ declare interface DCPMIThresholds {
667
705
  */
668
706
  declare type DCPMITier = 'UHL' | 'EHL' | 'OHL' | 'listed' | 'none';
669
707
 
708
+ /**
709
+ * Cookie scanner — audits the cookies actually present in the browser against
710
+ * the cookies you have declared, surfacing undeclared cookies that put you out
711
+ * of step with your cookie notice (NDPA 2023 S.25-26 / NDPC GAID 2025 on
712
+ * specific, informed consent).
713
+ *
714
+ * Pure and DOM-optional: pass `cookieString` to scan an arbitrary value (a
715
+ * `Cookie:` header on the server, a test fixture), or call it in the browser
716
+ * and it reads `document.cookie`. Safe to import from a server bundle.
717
+ */
718
+ /** A cookie you declare against a consent category. */
719
+ export declare interface DeclaredCookie {
720
+ /** Exact cookie name, a prefix (with `prefix: true`), or a RegExp matched against the name. */
721
+ name: string | RegExp;
722
+ /** Consent category this cookie belongs to (e.g. 'necessary', 'analytics', 'marketing'). */
723
+ category: string;
724
+ /** Who sets the cookie (e.g. 'Google Analytics'). */
725
+ provider?: string;
726
+ /** What the cookie is used for — surfaced in your cookie policy. */
727
+ purpose?: string;
728
+ /** Treat a string `name` as a prefix match instead of an exact match. Ignored for RegExp names. */
729
+ prefix?: boolean;
730
+ }
731
+
670
732
  /** Options for DOCX export of the finalised policy. */
671
733
  declare interface DOCXExportOptions {
672
734
  includeTOC?: boolean;
@@ -1555,6 +1617,17 @@ export declare interface ROPASummary {
1555
1617
  lastUpdated: number;
1556
1618
  }
1557
1619
 
1620
+ export declare interface ScannedCookie {
1621
+ /** The cookie name as found in the cookie string. */
1622
+ name: string;
1623
+ /** Resolved consent category, or `null` when it could not be classified. */
1624
+ category: string | null;
1625
+ /** Whether it matched your declaration, only the known registry, or nothing. */
1626
+ matchedBy: CookieMatchSource;
1627
+ provider?: string;
1628
+ purpose?: string;
1629
+ }
1630
+
1558
1631
  /**
1559
1632
  * Additional conditions required for processing sensitive personal data
1560
1633
  * per NDPA Section 30
@@ -1987,6 +2060,23 @@ export declare interface UseConsentReturn {
1987
2060
  isLoading: boolean;
1988
2061
  }
1989
2062
 
2063
+ /**
2064
+ * React hook that scans `document.cookie` against your declared cookies on
2065
+ * mount and exposes a `rescan()` to re-run after you set or clear cookies.
2066
+ *
2067
+ * `result` is `null` until the first client-side scan, so server and first
2068
+ * client render agree (no hydration mismatch). `rescan` is stable and always
2069
+ * reads the latest `declared`/`options` — callers don't need to memoise them.
2070
+ */
2071
+ export declare function useCookieScan(declared?: DeclaredCookie[], options?: CookieScanOptions): UseCookieScanReturn;
2072
+
2073
+ export declare interface UseCookieScanReturn {
2074
+ /** The latest scan, or `null` before the first client-side scan (e.g. during SSR). */
2075
+ result: CookieScanResult | null;
2076
+ /** Re-read the cookies and recompute the scan with the current arguments. */
2077
+ rescan: () => void;
2078
+ }
2079
+
1990
2080
  /**
1991
2081
  * Hook for managing cross-border data transfers in compliance with NDPA Part VIII (Sections 41-43).
1992
2082
  *
package/dist/hooks.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';require('./chunk-OVW5ASY3.js');var chunkOW4GO3JF_js=require('./chunk-OW4GO3JF.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'),chunkTLIHFGIJ_js=require('./chunk-TLIHFGIJ.js');require('./chunk-JS7SYL5P.js'),require('./chunk-WKY26JLT.js'),require('./chunk-7TTXS7JX.js'),require('./chunk-3YTAOT5O.js'),require('./chunk-Y346CURW.js'),require('./chunk-D2ZKDQVL.js'),require('./chunk-6LJHLE6G.js'),require('./chunk-YFBDJ4FH.js'),require('./chunk-WZYCBW2R.js'),require('./chunk-4CVBQC66.js');var chunkQKXGVT2Q_js=require('./chunk-QKXGVT2Q.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js'),require('./chunk-DKLJ5DYN.js');var chunkTVA6D6S4_js=require('./chunk-TVA6D6S4.js');require('./chunk-R2ZZMATR.js');var chunkJLQT3W3E_js=require('./chunk-JLQT3W3E.js');require('./chunk-TQZWJGJ2.js'),require('./chunk-ZVOIR4QH.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');Object.defineProperty(exports,"useBreachNotificationAssessment",{enumerable:true,get:function(){return chunkOW4GO3JF_js.a}});Object.defineProperty(exports,"useComplianceAuditReturn",{enumerable:true,get:function(){return chunkOW4GO3JF_js.d}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkOW4GO3JF_js.b}});Object.defineProperty(exports,"useDCPMI",{enumerable:true,get:function(){return chunkOW4GO3JF_js.c}});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 chunkTLIHFGIJ_js.a}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkQKXGVT2Q_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkTVA6D6S4_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkJLQT3W3E_js.a}});
2
+ 'use strict';require('./chunk-VKDW2IHV.js');var chunkH3Q3I6XC_js=require('./chunk-H3Q3I6XC.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'),chunkTLIHFGIJ_js=require('./chunk-TLIHFGIJ.js');require('./chunk-JS7SYL5P.js'),require('./chunk-VFRGCBJY.js'),require('./chunk-7TTXS7JX.js'),require('./chunk-3YTAOT5O.js'),require('./chunk-Y346CURW.js'),require('./chunk-D2ZKDQVL.js'),require('./chunk-6LJHLE6G.js'),require('./chunk-YFBDJ4FH.js'),require('./chunk-WZYCBW2R.js'),require('./chunk-4CVBQC66.js');var chunkGJH7YFBO_js=require('./chunk-GJH7YFBO.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js'),require('./chunk-ZVWSSXV2.js');var chunkTVA6D6S4_js=require('./chunk-TVA6D6S4.js');require('./chunk-R2ZZMATR.js');var chunkJLQT3W3E_js=require('./chunk-JLQT3W3E.js');require('./chunk-TQZWJGJ2.js'),require('./chunk-ZVOIR4QH.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');Object.defineProperty(exports,"useBreachNotificationAssessment",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.a}});Object.defineProperty(exports,"useComplianceAuditReturn",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.e}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.b}});Object.defineProperty(exports,"useCookieScan",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.d}});Object.defineProperty(exports,"useDCPMI",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.c}});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 chunkTLIHFGIJ_js.a}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkGJH7YFBO_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkTVA6D6S4_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkJLQT3W3E_js.a}});
package/dist/hooks.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import'./chunk-YQTZWPOS.mjs';export{a as useBreachNotificationAssessment,d as useComplianceAuditReturn,b as useComplianceScore,c as useDCPMI}from'./chunk-Q5KB2DN3.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-FRMVSG4N.mjs';import'./chunk-IVSNHT24.mjs';import'./chunk-SZXHNJGG.mjs';import'./chunk-6A7M4CGJ.mjs';import'./chunk-WTGKZX7J.mjs';import'./chunk-WJSUVPYX.mjs';import'./chunk-NBQQ2GN3.mjs';import'./chunk-BIJSMSUU.mjs';import'./chunk-7BJXI2HI.mjs';import'./chunk-LWIKDDSU.mjs';import'./chunk-XP5PL6K7.mjs';export{a as useConsent}from'./chunk-PQ5IPUJN.mjs';export{a as useFocusTrap}from'./chunk-YTU4FNM2.mjs';import'./chunk-XC3DLYEG.mjs';import'./chunk-R3ZKV2J7.mjs';export{a as useDSR}from'./chunk-ZSRO4L3C.mjs';import'./chunk-RRVML7CU.mjs';export{a as useDPIA}from'./chunk-I3V3ITN7.mjs';import'./chunk-LRRENTT5.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';
2
+ import'./chunk-23CULZBM.mjs';export{a as useBreachNotificationAssessment,e as useComplianceAuditReturn,b as useComplianceScore,d as useCookieScan,c as useDCPMI}from'./chunk-LAAJVTUV.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-FRMVSG4N.mjs';import'./chunk-IVSNHT24.mjs';import'./chunk-MGXWQW5I.mjs';import'./chunk-6A7M4CGJ.mjs';import'./chunk-WTGKZX7J.mjs';import'./chunk-WJSUVPYX.mjs';import'./chunk-NBQQ2GN3.mjs';import'./chunk-BIJSMSUU.mjs';import'./chunk-7BJXI2HI.mjs';import'./chunk-LWIKDDSU.mjs';import'./chunk-XP5PL6K7.mjs';export{a as useConsent}from'./chunk-VXLOPB33.mjs';export{a as useFocusTrap}from'./chunk-YTU4FNM2.mjs';import'./chunk-XC3DLYEG.mjs';import'./chunk-675DXBED.mjs';export{a as useDSR}from'./chunk-ZSRO4L3C.mjs';import'./chunk-RRVML7CU.mjs';export{a as useDPIA}from'./chunk-I3V3ITN7.mjs';import'./chunk-LRRENTT5.mjs';import'./chunk-ITCY2Z66.mjs';import'./chunk-DBZSN4WP.mjs';import'./chunk-ZJYULEER.mjs';
package/dist/index.d.mts CHANGED
@@ -1369,6 +1369,44 @@ export declare interface CookieAdapterOptions {
1369
1369
  sameSite?: 'Strict' | 'Lax' | 'None';
1370
1370
  }
1371
1371
 
1372
+ /** How a present cookie was classified. */
1373
+ export declare type CookieMatchSource = 'declared' | 'known' | 'none';
1374
+
1375
+ export declare interface CookieScanOptions {
1376
+ /**
1377
+ * The cookie string to scan, in `document.cookie` form (`a=1; b=2`).
1378
+ * Defaults to `document.cookie` in the browser, or `''` on the server.
1379
+ */
1380
+ cookieString?: string;
1381
+ /** Reference timestamp (epoch ms) recorded on the result. Defaults to `Date.now()`. */
1382
+ asOf?: number;
1383
+ /** Extra known cookies, checked before the built-in registry (so they can override it). */
1384
+ knownCookies?: DeclaredCookie[];
1385
+ /** Whether to fall back to the built-in known-cookie registry for undeclared cookies. @default true */
1386
+ useKnownRegistry?: boolean;
1387
+ }
1388
+
1389
+ export declare interface CookieScanResult {
1390
+ /** When the scan ran (epoch ms). */
1391
+ scannedAt: number;
1392
+ /** Number of cookies present. */
1393
+ total: number;
1394
+ /** Every present cookie, classified. */
1395
+ cookies: ScannedCookie[];
1396
+ /** Cookies that matched one of your declared cookies. */
1397
+ declared: ScannedCookie[];
1398
+ /** Cookies present but NOT in your declaration — the compliance gap. */
1399
+ undeclared: ScannedCookie[];
1400
+ /** Undeclared cookies the built-in registry could still identify. */
1401
+ identified: ScannedCookie[];
1402
+ /** Undeclared cookies that could not be identified at all. */
1403
+ unknown: ScannedCookie[];
1404
+ /** Present cookies grouped by resolved category; unclassified cookies go under `uncategorized`. */
1405
+ byCategory: Record<string, ScannedCookie[]>;
1406
+ /** True when there are no undeclared cookies. */
1407
+ complete: boolean;
1408
+ }
1409
+
1372
1410
  /**
1373
1411
  * Creates a new audit entry from consent settings. If `previousSettings` is
1374
1412
  * provided, the action is automatically determined by comparing old and new
@@ -1665,6 +1703,30 @@ export declare interface DCPMIThresholds {
1665
1703
  */
1666
1704
  export declare type DCPMITier = 'UHL' | 'EHL' | 'OHL' | 'listed' | 'none';
1667
1705
 
1706
+ /**
1707
+ * Cookie scanner — audits the cookies actually present in the browser against
1708
+ * the cookies you have declared, surfacing undeclared cookies that put you out
1709
+ * of step with your cookie notice (NDPA 2023 S.25-26 / NDPC GAID 2025 on
1710
+ * specific, informed consent).
1711
+ *
1712
+ * Pure and DOM-optional: pass `cookieString` to scan an arbitrary value (a
1713
+ * `Cookie:` header on the server, a test fixture), or call it in the browser
1714
+ * and it reads `document.cookie`. Safe to import from a server bundle.
1715
+ */
1716
+ /** A cookie you declare against a consent category. */
1717
+ export declare interface DeclaredCookie {
1718
+ /** Exact cookie name, a prefix (with `prefix: true`), or a RegExp matched against the name. */
1719
+ name: string | RegExp;
1720
+ /** Consent category this cookie belongs to (e.g. 'necessary', 'analytics', 'marketing'). */
1721
+ category: string;
1722
+ /** Who sets the cookie (e.g. 'Google Analytics'). */
1723
+ provider?: string;
1724
+ /** What the cookie is used for — surfaced in your cookie policy. */
1725
+ purpose?: string;
1726
+ /** Treat a string `name` as a prefix match instead of an exact match. Ignored for RegExp names. */
1727
+ prefix?: boolean;
1728
+ }
1729
+
1668
1730
  /** September 2025 GAID baseline annual fees (NGN). */
1669
1731
  export declare const DEFAULT_DCPMI_FEES_NGN: DCPMIFees;
1670
1732
 
@@ -2628,6 +2690,14 @@ declare type Industry = 'fintech' | 'healthcare' | 'ecommerce' | 'saas' | 'educa
2628
2690
  */
2629
2691
  export declare function isNDPCApprovalRequired(mechanism: TransferMechanism): boolean;
2630
2692
 
2693
+ /**
2694
+ * Built-in registry of widely deployed third-party cookies, so an undeclared
2695
+ * cookie can often still be identified (provider + likely category). Override
2696
+ * or extend via {@link CookieScanOptions.knownCookies}; categories follow the
2697
+ * common necessary / functional / analytics / marketing taxonomy.
2698
+ */
2699
+ export declare const KNOWN_COOKIES: DeclaredCookie[];
2700
+
2631
2701
  /**
2632
2702
  * Lawful Basis types aligned with NDPA 2023 Part III (Sections 24-28)
2633
2703
  * Every processing activity must have a documented lawful basis
@@ -4350,6 +4420,24 @@ export declare function runNdprAudit(input: NdprAuditInput, options?: NdprAuditO
4350
4420
  */
4351
4421
  export declare function sanitizeInput(input: string): string;
4352
4422
 
4423
+ /**
4424
+ * Scan the cookies present against your declared cookies and a registry of
4425
+ * well-known third-party cookies. Returns which cookies are declared, which are
4426
+ * undeclared (and whether they can still be identified), and a per-category view.
4427
+ */
4428
+ export declare function scanCookies(declared?: DeclaredCookie[], options?: CookieScanOptions): CookieScanResult;
4429
+
4430
+ export declare interface ScannedCookie {
4431
+ /** The cookie name as found in the cookie string. */
4432
+ name: string;
4433
+ /** Resolved consent category, or `null` when it could not be classified. */
4434
+ category: string | null;
4435
+ /** Whether it matched your declaration, only the known registry, or nothing. */
4436
+ matchedBy: CookieMatchSource;
4437
+ provider?: string;
4438
+ purpose?: string;
4439
+ }
4440
+
4353
4441
  /**
4354
4442
  * Additional conditions required for processing sensitive personal data
4355
4443
  * per NDPA Section 30
@@ -4938,6 +5026,23 @@ declare interface UseConsentReturn {
4938
5026
  isLoading: boolean;
4939
5027
  }
4940
5028
 
5029
+ /**
5030
+ * React hook that scans `document.cookie` against your declared cookies on
5031
+ * mount and exposes a `rescan()` to re-run after you set or clear cookies.
5032
+ *
5033
+ * `result` is `null` until the first client-side scan, so server and first
5034
+ * client render agree (no hydration mismatch). `rescan` is stable and always
5035
+ * reads the latest `declared`/`options` — callers don't need to memoise them.
5036
+ */
5037
+ export declare function useCookieScan(declared?: DeclaredCookie[], options?: CookieScanOptions): UseCookieScanReturn;
5038
+
5039
+ export declare interface UseCookieScanReturn {
5040
+ /** The latest scan, or `null` before the first client-side scan (e.g. during SSR). */
5041
+ result: CookieScanResult | null;
5042
+ /** Re-read the cookies and recompute the scan with the current arguments. */
5043
+ rescan: () => void;
5044
+ }
5045
+
4941
5046
  /**
4942
5047
  * Hook for managing cross-border data transfers in compliance with NDPA Part VIII (Sections 41-43).
4943
5048
  *
package/dist/index.d.ts CHANGED
@@ -1369,6 +1369,44 @@ export declare interface CookieAdapterOptions {
1369
1369
  sameSite?: 'Strict' | 'Lax' | 'None';
1370
1370
  }
1371
1371
 
1372
+ /** How a present cookie was classified. */
1373
+ export declare type CookieMatchSource = 'declared' | 'known' | 'none';
1374
+
1375
+ export declare interface CookieScanOptions {
1376
+ /**
1377
+ * The cookie string to scan, in `document.cookie` form (`a=1; b=2`).
1378
+ * Defaults to `document.cookie` in the browser, or `''` on the server.
1379
+ */
1380
+ cookieString?: string;
1381
+ /** Reference timestamp (epoch ms) recorded on the result. Defaults to `Date.now()`. */
1382
+ asOf?: number;
1383
+ /** Extra known cookies, checked before the built-in registry (so they can override it). */
1384
+ knownCookies?: DeclaredCookie[];
1385
+ /** Whether to fall back to the built-in known-cookie registry for undeclared cookies. @default true */
1386
+ useKnownRegistry?: boolean;
1387
+ }
1388
+
1389
+ export declare interface CookieScanResult {
1390
+ /** When the scan ran (epoch ms). */
1391
+ scannedAt: number;
1392
+ /** Number of cookies present. */
1393
+ total: number;
1394
+ /** Every present cookie, classified. */
1395
+ cookies: ScannedCookie[];
1396
+ /** Cookies that matched one of your declared cookies. */
1397
+ declared: ScannedCookie[];
1398
+ /** Cookies present but NOT in your declaration — the compliance gap. */
1399
+ undeclared: ScannedCookie[];
1400
+ /** Undeclared cookies the built-in registry could still identify. */
1401
+ identified: ScannedCookie[];
1402
+ /** Undeclared cookies that could not be identified at all. */
1403
+ unknown: ScannedCookie[];
1404
+ /** Present cookies grouped by resolved category; unclassified cookies go under `uncategorized`. */
1405
+ byCategory: Record<string, ScannedCookie[]>;
1406
+ /** True when there are no undeclared cookies. */
1407
+ complete: boolean;
1408
+ }
1409
+
1372
1410
  /**
1373
1411
  * Creates a new audit entry from consent settings. If `previousSettings` is
1374
1412
  * provided, the action is automatically determined by comparing old and new
@@ -1665,6 +1703,30 @@ export declare interface DCPMIThresholds {
1665
1703
  */
1666
1704
  export declare type DCPMITier = 'UHL' | 'EHL' | 'OHL' | 'listed' | 'none';
1667
1705
 
1706
+ /**
1707
+ * Cookie scanner — audits the cookies actually present in the browser against
1708
+ * the cookies you have declared, surfacing undeclared cookies that put you out
1709
+ * of step with your cookie notice (NDPA 2023 S.25-26 / NDPC GAID 2025 on
1710
+ * specific, informed consent).
1711
+ *
1712
+ * Pure and DOM-optional: pass `cookieString` to scan an arbitrary value (a
1713
+ * `Cookie:` header on the server, a test fixture), or call it in the browser
1714
+ * and it reads `document.cookie`. Safe to import from a server bundle.
1715
+ */
1716
+ /** A cookie you declare against a consent category. */
1717
+ export declare interface DeclaredCookie {
1718
+ /** Exact cookie name, a prefix (with `prefix: true`), or a RegExp matched against the name. */
1719
+ name: string | RegExp;
1720
+ /** Consent category this cookie belongs to (e.g. 'necessary', 'analytics', 'marketing'). */
1721
+ category: string;
1722
+ /** Who sets the cookie (e.g. 'Google Analytics'). */
1723
+ provider?: string;
1724
+ /** What the cookie is used for — surfaced in your cookie policy. */
1725
+ purpose?: string;
1726
+ /** Treat a string `name` as a prefix match instead of an exact match. Ignored for RegExp names. */
1727
+ prefix?: boolean;
1728
+ }
1729
+
1668
1730
  /** September 2025 GAID baseline annual fees (NGN). */
1669
1731
  export declare const DEFAULT_DCPMI_FEES_NGN: DCPMIFees;
1670
1732
 
@@ -2628,6 +2690,14 @@ declare type Industry = 'fintech' | 'healthcare' | 'ecommerce' | 'saas' | 'educa
2628
2690
  */
2629
2691
  export declare function isNDPCApprovalRequired(mechanism: TransferMechanism): boolean;
2630
2692
 
2693
+ /**
2694
+ * Built-in registry of widely deployed third-party cookies, so an undeclared
2695
+ * cookie can often still be identified (provider + likely category). Override
2696
+ * or extend via {@link CookieScanOptions.knownCookies}; categories follow the
2697
+ * common necessary / functional / analytics / marketing taxonomy.
2698
+ */
2699
+ export declare const KNOWN_COOKIES: DeclaredCookie[];
2700
+
2631
2701
  /**
2632
2702
  * Lawful Basis types aligned with NDPA 2023 Part III (Sections 24-28)
2633
2703
  * Every processing activity must have a documented lawful basis
@@ -4350,6 +4420,24 @@ export declare function runNdprAudit(input: NdprAuditInput, options?: NdprAuditO
4350
4420
  */
4351
4421
  export declare function sanitizeInput(input: string): string;
4352
4422
 
4423
+ /**
4424
+ * Scan the cookies present against your declared cookies and a registry of
4425
+ * well-known third-party cookies. Returns which cookies are declared, which are
4426
+ * undeclared (and whether they can still be identified), and a per-category view.
4427
+ */
4428
+ export declare function scanCookies(declared?: DeclaredCookie[], options?: CookieScanOptions): CookieScanResult;
4429
+
4430
+ export declare interface ScannedCookie {
4431
+ /** The cookie name as found in the cookie string. */
4432
+ name: string;
4433
+ /** Resolved consent category, or `null` when it could not be classified. */
4434
+ category: string | null;
4435
+ /** Whether it matched your declaration, only the known registry, or nothing. */
4436
+ matchedBy: CookieMatchSource;
4437
+ provider?: string;
4438
+ purpose?: string;
4439
+ }
4440
+
4353
4441
  /**
4354
4442
  * Additional conditions required for processing sensitive personal data
4355
4443
  * per NDPA Section 30
@@ -4938,6 +5026,23 @@ declare interface UseConsentReturn {
4938
5026
  isLoading: boolean;
4939
5027
  }
4940
5028
 
5029
+ /**
5030
+ * React hook that scans `document.cookie` against your declared cookies on
5031
+ * mount and exposes a `rescan()` to re-run after you set or clear cookies.
5032
+ *
5033
+ * `result` is `null` until the first client-side scan, so server and first
5034
+ * client render agree (no hydration mismatch). `rescan` is stable and always
5035
+ * reads the latest `declared`/`options` — callers don't need to memoise them.
5036
+ */
5037
+ export declare function useCookieScan(declared?: DeclaredCookie[], options?: CookieScanOptions): UseCookieScanReturn;
5038
+
5039
+ export declare interface UseCookieScanReturn {
5040
+ /** The latest scan, or `null` before the first client-side scan (e.g. during SSR). */
5041
+ result: CookieScanResult | null;
5042
+ /** Re-read the cookies and recompute the scan with the current arguments. */
5043
+ rescan: () => void;
5044
+ }
5045
+
4941
5046
  /**
4942
5047
  * Hook for managing cross-border data transfers in compliance with NDPA Part VIII (Sections 41-43).
4943
5048
  *
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- 'use strict';var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkC7OOUURS_js=require('./chunk-C7OOUURS.js'),chunkLHQG25Y2_js=require('./chunk-LHQG25Y2.js'),chunk2MGLU3FY_js=require('./chunk-2MGLU3FY.js'),chunkERCGW2DJ_js=require('./chunk-ERCGW2DJ.js'),chunk2OSZT7KI_js=require('./chunk-2OSZT7KI.js'),chunk37VR2MXL_js=require('./chunk-37VR2MXL.js'),chunkXCKX2WKD_js=require('./chunk-XCKX2WKD.js'),chunkOW4GO3JF_js=require('./chunk-OW4GO3JF.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'),chunkTLIHFGIJ_js=require('./chunk-TLIHFGIJ.js');require('./chunk-JS7SYL5P.js');var chunkWKY26JLT_js=require('./chunk-WKY26JLT.js'),chunk7TTXS7JX_js=require('./chunk-7TTXS7JX.js'),chunk3YTAOT5O_js=require('./chunk-3YTAOT5O.js'),chunkY346CURW_js=require('./chunk-Y346CURW.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'),chunkC32TMS75_js=require('./chunk-C32TMS75.js'),chunkPXUX4FYM_js=require('./chunk-PXUX4FYM.js'),chunk3IA3KDII_js=require('./chunk-3IA3KDII.js'),chunkQKXGVT2Q_js=require('./chunk-QKXGVT2Q.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js');var chunkDKLJ5DYN_js=require('./chunk-DKLJ5DYN.js'),chunkTYR5PFYD_js=require('./chunk-TYR5PFYD.js'),chunkFRHFIEWZ_js=require('./chunk-FRHFIEWZ.js'),chunkUXUMYP4L_js=require('./chunk-UXUMYP4L.js'),chunkTVA6D6S4_js=require('./chunk-TVA6D6S4.js'),chunkR2ZZMATR_js=require('./chunk-R2ZZMATR.js'),chunkQG72X7G4_js=require('./chunk-QG72X7G4.js'),chunkDRQURLN5_js=require('./chunk-DRQURLN5.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'),chunkI5ZDNSX5_js=require('./chunk-I5ZDNSX5.js');require('./chunk-7563FVMY.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var Ie=({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 Le=({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 chunkC7OOUURS_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunkC7OOUURS_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunkC7OOUURS_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkLHQG25Y2_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunk2MGLU3FY_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunk2MGLU3FY_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunk2MGLU3FY_js.b}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkERCGW2DJ_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunk2OSZT7KI_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunk37VR2MXL_js.a}});Object.defineProperty(exports,"formatNdprAuditReport",{enumerable:true,get:function(){return chunkXCKX2WKD_js.b}});Object.defineProperty(exports,"runNdprAudit",{enumerable:true,get:function(){return chunkXCKX2WKD_js.a}});Object.defineProperty(exports,"useBreachNotificationAssessment",{enumerable:true,get:function(){return chunkOW4GO3JF_js.a}});Object.defineProperty(exports,"useComplianceAuditReturn",{enumerable:true,get:function(){return chunkOW4GO3JF_js.d}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkOW4GO3JF_js.b}});Object.defineProperty(exports,"useDCPMI",{enumerable:true,get:function(){return chunkOW4GO3JF_js.c}});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 chunkTLIHFGIJ_js.a}});Object.defineProperty(exports,"DEFAULT_DCPMI_FEES_NGN",{enumerable:true,get:function(){return chunkWKY26JLT_js.b}});Object.defineProperty(exports,"DEFAULT_DCPMI_THRESHOLDS",{enumerable:true,get:function(){return chunkWKY26JLT_js.a}});Object.defineProperty(exports,"classifyDCPMI",{enumerable:true,get:function(){return chunkWKY26JLT_js.c}});Object.defineProperty(exports,"generateComplianceAuditReturn",{enumerable:true,get:function(){return chunkWKY26JLT_js.d}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunk7TTXS7JX_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunk3YTAOT5O_js.a}});Object.defineProperty(exports,"assessBreachNotification",{enumerable:true,get:function(){return chunkY346CURW_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 chunkC32TMS75_js.a}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkPXUX4FYM_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 chunkQKXGVT2Q_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"validateConsentOptionsStructured",{enumerable:true,get:function(){return chunkDKLJ5DYN_js.b}});Object.defineProperty(exports,"validateConsentStructured",{enumerable:true,get:function(){return chunkDKLJ5DYN_js.a}});Object.defineProperty(exports,"DSRDashboard",{enumerable:true,get:function(){return chunkTYR5PFYD_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkTYR5PFYD_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkFRHFIEWZ_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkUXUMYP4L_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkTVA6D6S4_js.a}});Object.defineProperty(exports,"formatDSRRequestStructured",{enumerable:true,get:function(){return chunkR2ZZMATR_js.b}});Object.defineProperty(exports,"validateDsrSubmissionStructured",{enumerable:true,get:function(){return chunkR2ZZMATR_js.a}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunkQG72X7G4_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunkQG72X7G4_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkDRQURLN5_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkJLQT3W3E_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkTQZWJGJ2_js.a}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_LONG",{enumerable:true,get:function(){return chunkZVOIR4QH_js.b}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_SHORT",{enumerable:true,get:function(){return chunkZVOIR4QH_js.a}});Object.defineProperty(exports,"legalDisclaimerBlock",{enumerable:true,get:function(){return chunkZVOIR4QH_js.c}});Object.defineProperty(exports,"resolveClass",{enumerable:true,get:function(){return chunkAME4HJR4_js.a}});Object.defineProperty(exports,"NDPRProvider",{enumerable:true,get:function(){return chunkI5ZDNSX5_js.a}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunkI5ZDNSX5_js.b}});exports.LegalNotice=Le;exports.NDPRThemeProvider=Ie;
2
+ 'use strict';var chunkNUWVPRNI_js=require('./chunk-NUWVPRNI.js'),chunkC7OOUURS_js=require('./chunk-C7OOUURS.js'),chunkLHQG25Y2_js=require('./chunk-LHQG25Y2.js'),chunk2MGLU3FY_js=require('./chunk-2MGLU3FY.js'),chunkERCGW2DJ_js=require('./chunk-ERCGW2DJ.js'),chunk2OSZT7KI_js=require('./chunk-2OSZT7KI.js'),chunk37VR2MXL_js=require('./chunk-37VR2MXL.js'),chunkHCZDQWHY_js=require('./chunk-HCZDQWHY.js'),chunkH3Q3I6XC_js=require('./chunk-H3Q3I6XC.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'),chunkTLIHFGIJ_js=require('./chunk-TLIHFGIJ.js');require('./chunk-JS7SYL5P.js');var chunkVFRGCBJY_js=require('./chunk-VFRGCBJY.js'),chunk7TTXS7JX_js=require('./chunk-7TTXS7JX.js'),chunk3YTAOT5O_js=require('./chunk-3YTAOT5O.js'),chunkY346CURW_js=require('./chunk-Y346CURW.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'),chunkC32TMS75_js=require('./chunk-C32TMS75.js'),chunkPXUX4FYM_js=require('./chunk-PXUX4FYM.js'),chunk3IA3KDII_js=require('./chunk-3IA3KDII.js'),chunkGJH7YFBO_js=require('./chunk-GJH7YFBO.js'),chunkL2VO3MEJ_js=require('./chunk-L2VO3MEJ.js');require('./chunk-C2KEXHRX.js');var chunkZVWSSXV2_js=require('./chunk-ZVWSSXV2.js'),chunkTYR5PFYD_js=require('./chunk-TYR5PFYD.js'),chunkFRHFIEWZ_js=require('./chunk-FRHFIEWZ.js'),chunkUXUMYP4L_js=require('./chunk-UXUMYP4L.js'),chunkTVA6D6S4_js=require('./chunk-TVA6D6S4.js'),chunkR2ZZMATR_js=require('./chunk-R2ZZMATR.js'),chunkQG72X7G4_js=require('./chunk-QG72X7G4.js'),chunkDRQURLN5_js=require('./chunk-DRQURLN5.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'),chunkI5ZDNSX5_js=require('./chunk-I5ZDNSX5.js');require('./chunk-7563FVMY.js'),require('./chunk-VWED6UTN.js'),require('./chunk-RFPLZDIO.js');var react=require('react'),jsxRuntime=require('react/jsx-runtime');var ke=({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 Me=({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 chunkC7OOUURS_js.b}});Object.defineProperty(exports,"BreachRiskAssessment",{enumerable:true,get:function(){return chunkC7OOUURS_js.a}});Object.defineProperty(exports,"RegulatoryReportGenerator",{enumerable:true,get:function(){return chunkC7OOUURS_js.c}});Object.defineProperty(exports,"BreachReportForm",{enumerable:true,get:function(){return chunkLHQG25Y2_js.a}});Object.defineProperty(exports,"PolicyExporter",{enumerable:true,get:function(){return chunk2MGLU3FY_js.c}});Object.defineProperty(exports,"PolicyGenerator",{enumerable:true,get:function(){return chunk2MGLU3FY_js.a}});Object.defineProperty(exports,"PolicyPreview",{enumerable:true,get:function(){return chunk2MGLU3FY_js.b}});Object.defineProperty(exports,"LawfulBasisTracker",{enumerable:true,get:function(){return chunkERCGW2DJ_js.a}});Object.defineProperty(exports,"CrossBorderTransferManager",{enumerable:true,get:function(){return chunk2OSZT7KI_js.a}});Object.defineProperty(exports,"ROPAManager",{enumerable:true,get:function(){return chunk37VR2MXL_js.a}});Object.defineProperty(exports,"formatNdprAuditReport",{enumerable:true,get:function(){return chunkHCZDQWHY_js.b}});Object.defineProperty(exports,"runNdprAudit",{enumerable:true,get:function(){return chunkHCZDQWHY_js.a}});Object.defineProperty(exports,"useBreachNotificationAssessment",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.a}});Object.defineProperty(exports,"useComplianceAuditReturn",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.e}});Object.defineProperty(exports,"useComplianceScore",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.b}});Object.defineProperty(exports,"useCookieScan",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.d}});Object.defineProperty(exports,"useDCPMI",{enumerable:true,get:function(){return chunkH3Q3I6XC_js.c}});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 chunkTLIHFGIJ_js.a}});Object.defineProperty(exports,"DEFAULT_DCPMI_FEES_NGN",{enumerable:true,get:function(){return chunkVFRGCBJY_js.b}});Object.defineProperty(exports,"DEFAULT_DCPMI_THRESHOLDS",{enumerable:true,get:function(){return chunkVFRGCBJY_js.a}});Object.defineProperty(exports,"classifyDCPMI",{enumerable:true,get:function(){return chunkVFRGCBJY_js.c}});Object.defineProperty(exports,"generateComplianceAuditReturn",{enumerable:true,get:function(){return chunkVFRGCBJY_js.d}});Object.defineProperty(exports,"getComplianceScore",{enumerable:true,get:function(){return chunk7TTXS7JX_js.a}});Object.defineProperty(exports,"calculateBreachSeverity",{enumerable:true,get:function(){return chunk3YTAOT5O_js.a}});Object.defineProperty(exports,"assessBreachNotification",{enumerable:true,get:function(){return chunkY346CURW_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 chunkC32TMS75_js.a}});Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkPXUX4FYM_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 chunkGJH7YFBO_js.a}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkL2VO3MEJ_js.a}});Object.defineProperty(exports,"KNOWN_COOKIES",{enumerable:true,get:function(){return chunkZVWSSXV2_js.c}});Object.defineProperty(exports,"scanCookies",{enumerable:true,get:function(){return chunkZVWSSXV2_js.d}});Object.defineProperty(exports,"validateConsentOptionsStructured",{enumerable:true,get:function(){return chunkZVWSSXV2_js.b}});Object.defineProperty(exports,"validateConsentStructured",{enumerable:true,get:function(){return chunkZVWSSXV2_js.a}});Object.defineProperty(exports,"DSRDashboard",{enumerable:true,get:function(){return chunkTYR5PFYD_js.a}});Object.defineProperty(exports,"DSRTracker",{enumerable:true,get:function(){return chunkTYR5PFYD_js.b}});Object.defineProperty(exports,"DSRRequestForm",{enumerable:true,get:function(){return chunkFRHFIEWZ_js.a}});Object.defineProperty(exports,"sanitizeInput",{enumerable:true,get:function(){return chunkUXUMYP4L_js.a}});Object.defineProperty(exports,"useDSR",{enumerable:true,get:function(){return chunkTVA6D6S4_js.a}});Object.defineProperty(exports,"formatDSRRequestStructured",{enumerable:true,get:function(){return chunkR2ZZMATR_js.b}});Object.defineProperty(exports,"validateDsrSubmissionStructured",{enumerable:true,get:function(){return chunkR2ZZMATR_js.a}});Object.defineProperty(exports,"DPIAReport",{enumerable:true,get:function(){return chunkQG72X7G4_js.a}});Object.defineProperty(exports,"StepIndicator",{enumerable:true,get:function(){return chunkQG72X7G4_js.b}});Object.defineProperty(exports,"DPIAQuestionnaire",{enumerable:true,get:function(){return chunkDRQURLN5_js.a}});Object.defineProperty(exports,"useDPIA",{enumerable:true,get:function(){return chunkJLQT3W3E_js.a}});Object.defineProperty(exports,"assessDPIARisk",{enumerable:true,get:function(){return chunkTQZWJGJ2_js.a}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_LONG",{enumerable:true,get:function(){return chunkZVOIR4QH_js.b}});Object.defineProperty(exports,"LEGAL_DISCLAIMER_SHORT",{enumerable:true,get:function(){return chunkZVOIR4QH_js.a}});Object.defineProperty(exports,"legalDisclaimerBlock",{enumerable:true,get:function(){return chunkZVOIR4QH_js.c}});Object.defineProperty(exports,"resolveClass",{enumerable:true,get:function(){return chunkAME4HJR4_js.a}});Object.defineProperty(exports,"NDPRProvider",{enumerable:true,get:function(){return chunkI5ZDNSX5_js.a}});Object.defineProperty(exports,"useNDPRConfig",{enumerable:true,get:function(){return chunkI5ZDNSX5_js.b}});exports.LegalNotice=Me;exports.NDPRThemeProvider=ke;