@tantainnovative/ndpr-toolkit 1.0.9 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +295 -124
  2. package/dist/breach-BpSBPrdk.d.mts +185 -0
  3. package/dist/breach-BpSBPrdk.d.ts +185 -0
  4. package/dist/breach-D5zJYNph.d.mts +17 -0
  5. package/dist/breach-D7NgrdMX.d.ts +17 -0
  6. package/dist/breach.d.mts +275 -0
  7. package/dist/breach.d.ts +275 -0
  8. package/dist/breach.js +2 -0
  9. package/dist/breach.js.map +1 -0
  10. package/dist/breach.mjs +2 -0
  11. package/dist/breach.mjs.map +1 -0
  12. package/dist/chunk-2SYNHRP6.mjs +2 -0
  13. package/dist/chunk-2SYNHRP6.mjs.map +1 -0
  14. package/dist/chunk-2XHD22J7.mjs +7 -0
  15. package/dist/chunk-2XHD22J7.mjs.map +1 -0
  16. package/dist/chunk-4A354HL3.js +2 -0
  17. package/dist/chunk-4A354HL3.js.map +1 -0
  18. package/dist/chunk-4DKT6IB6.js +94 -0
  19. package/dist/chunk-4DKT6IB6.js.map +1 -0
  20. package/dist/chunk-5ZBO2UPH.js +2 -0
  21. package/dist/chunk-5ZBO2UPH.js.map +1 -0
  22. package/dist/chunk-6JFTAYXV.mjs +2 -0
  23. package/dist/chunk-6JFTAYXV.mjs.map +1 -0
  24. package/dist/chunk-6JVYYLS7.js +2 -0
  25. package/dist/chunk-6JVYYLS7.js.map +1 -0
  26. package/dist/chunk-6SGG6WPA.mjs +2 -0
  27. package/dist/chunk-6SGG6WPA.mjs.map +1 -0
  28. package/dist/chunk-AQEGDEQM.js +7 -0
  29. package/dist/chunk-AQEGDEQM.js.map +1 -0
  30. package/dist/chunk-C2IJWCZQ.mjs +2 -0
  31. package/dist/chunk-C2IJWCZQ.mjs.map +1 -0
  32. package/dist/chunk-CMZTI7SG.js +2 -0
  33. package/dist/chunk-CMZTI7SG.js.map +1 -0
  34. package/dist/chunk-DB3JH4DS.mjs +2 -0
  35. package/dist/chunk-DB3JH4DS.mjs.map +1 -0
  36. package/dist/chunk-EWOZKYLY.mjs +2 -0
  37. package/dist/chunk-EWOZKYLY.mjs.map +1 -0
  38. package/dist/chunk-FFW7RUAG.mjs +94 -0
  39. package/dist/chunk-FFW7RUAG.mjs.map +1 -0
  40. package/dist/chunk-FK3CSFLJ.js +2 -0
  41. package/dist/chunk-FK3CSFLJ.js.map +1 -0
  42. package/dist/chunk-GIV2OHE6.mjs +2 -0
  43. package/dist/chunk-GIV2OHE6.mjs.map +1 -0
  44. package/dist/chunk-GMLNWS2N.mjs +2 -0
  45. package/dist/chunk-GMLNWS2N.mjs.map +1 -0
  46. package/dist/chunk-IQF726GS.js +2 -0
  47. package/dist/chunk-IQF726GS.js.map +1 -0
  48. package/dist/chunk-IWUUVRLJ.js +2 -0
  49. package/dist/chunk-IWUUVRLJ.js.map +1 -0
  50. package/dist/chunk-JUN6YPLL.mjs +72 -0
  51. package/dist/chunk-JUN6YPLL.mjs.map +1 -0
  52. package/dist/chunk-L3FKTBGV.js +72 -0
  53. package/dist/chunk-L3FKTBGV.js.map +1 -0
  54. package/dist/chunk-L52PDW6O.mjs +2 -0
  55. package/dist/chunk-L52PDW6O.mjs.map +1 -0
  56. package/dist/chunk-LI6WJ3LZ.js +2 -0
  57. package/dist/chunk-LI6WJ3LZ.js.map +1 -0
  58. package/dist/chunk-LXRXDTPI.js +2 -0
  59. package/dist/chunk-LXRXDTPI.js.map +1 -0
  60. package/dist/chunk-MQFZHA2D.js +2 -0
  61. package/dist/chunk-MQFZHA2D.js.map +1 -0
  62. package/dist/chunk-OITITR6K.mjs +2 -0
  63. package/dist/chunk-OITITR6K.mjs.map +1 -0
  64. package/dist/chunk-PDJGTQMY.mjs +2 -0
  65. package/dist/chunk-PDJGTQMY.mjs.map +1 -0
  66. package/dist/chunk-PGSA2O5P.mjs +2 -0
  67. package/dist/chunk-PGSA2O5P.mjs.map +1 -0
  68. package/dist/chunk-PM7CMTMB.js +4 -0
  69. package/dist/chunk-PM7CMTMB.js.map +1 -0
  70. package/dist/chunk-PYEX7DFR.mjs +4 -0
  71. package/dist/chunk-PYEX7DFR.mjs.map +1 -0
  72. package/dist/chunk-QKK5S54L.mjs +2 -0
  73. package/dist/chunk-QKK5S54L.mjs.map +1 -0
  74. package/dist/chunk-RB26MIRI.js +2 -0
  75. package/dist/chunk-RB26MIRI.js.map +1 -0
  76. package/dist/chunk-RGYK4VAY.mjs +2 -0
  77. package/dist/chunk-RGYK4VAY.mjs.map +1 -0
  78. package/dist/chunk-RHWW5FDP.js +16 -0
  79. package/dist/chunk-RHWW5FDP.js.map +1 -0
  80. package/dist/chunk-RYZEIDNR.js +2 -0
  81. package/dist/chunk-RYZEIDNR.js.map +1 -0
  82. package/dist/chunk-SLNMKGQ2.mjs +2 -0
  83. package/dist/chunk-SLNMKGQ2.mjs.map +1 -0
  84. package/dist/chunk-SSGJREE3.js +2 -0
  85. package/dist/chunk-SSGJREE3.js.map +1 -0
  86. package/dist/chunk-SWF3YVE5.js +4 -0
  87. package/dist/chunk-SWF3YVE5.js.map +1 -0
  88. package/dist/chunk-T44JQT2O.mjs +2 -0
  89. package/dist/chunk-T44JQT2O.mjs.map +1 -0
  90. package/dist/chunk-TDDAYVKK.js +2 -0
  91. package/dist/chunk-TDDAYVKK.js.map +1 -0
  92. package/dist/chunk-TXBZPCGF.mjs +2 -0
  93. package/dist/chunk-TXBZPCGF.mjs.map +1 -0
  94. package/dist/chunk-U2CGMEWB.js +2 -0
  95. package/dist/chunk-U2CGMEWB.js.map +1 -0
  96. package/dist/chunk-UUWVBENC.js +2 -0
  97. package/dist/chunk-UUWVBENC.js.map +1 -0
  98. package/dist/chunk-UYP64PV7.mjs +4 -0
  99. package/dist/chunk-UYP64PV7.mjs.map +1 -0
  100. package/dist/chunk-VMJBW3EF.mjs +2 -0
  101. package/dist/chunk-VMJBW3EF.mjs.map +1 -0
  102. package/dist/chunk-WW3X3ELF.js +2 -0
  103. package/dist/chunk-WW3X3ELF.js.map +1 -0
  104. package/dist/chunk-WWT2ZSNU.mjs +2 -0
  105. package/dist/chunk-WWT2ZSNU.mjs.map +1 -0
  106. package/dist/chunk-XMKA6GVK.mjs +16 -0
  107. package/dist/chunk-XMKA6GVK.mjs.map +1 -0
  108. package/dist/chunk-Y34DQYS7.js +2 -0
  109. package/dist/chunk-Y34DQYS7.js.map +1 -0
  110. package/dist/chunk-ZU73VG3X.js +2 -0
  111. package/dist/chunk-ZU73VG3X.js.map +1 -0
  112. package/dist/consent-CmVzqZUk.d.mts +99 -0
  113. package/dist/consent-CmVzqZUk.d.ts +99 -0
  114. package/dist/consent-DCc5zjXI.d.mts +24 -0
  115. package/dist/consent-DLWb5ota.d.ts +24 -0
  116. package/dist/consent.d.mts +197 -0
  117. package/dist/consent.d.ts +197 -0
  118. package/dist/consent.js +2 -0
  119. package/dist/consent.js.map +1 -0
  120. package/dist/consent.mjs +2 -0
  121. package/dist/consent.mjs.map +1 -0
  122. package/dist/core.d.mts +14 -0
  123. package/dist/core.d.ts +14 -0
  124. package/dist/core.js +2 -0
  125. package/dist/core.js.map +1 -0
  126. package/dist/core.mjs +2 -0
  127. package/dist/core.mjs.map +1 -0
  128. package/dist/cross-border-BrIy1ieh.d.mts +192 -0
  129. package/dist/cross-border-BrIy1ieh.d.ts +192 -0
  130. package/dist/cross-border.d.mts +58 -0
  131. package/dist/cross-border.d.ts +58 -0
  132. package/dist/cross-border.js +2 -0
  133. package/dist/cross-border.js.map +1 -0
  134. package/dist/cross-border.mjs +2 -0
  135. package/dist/cross-border.mjs.map +1 -0
  136. package/dist/dpia-B9ZZJG5a.d.mts +15 -0
  137. package/dist/dpia-fdtTd2DI.d.ts +15 -0
  138. package/dist/dpia-vWfE_9bO.d.mts +137 -0
  139. package/dist/dpia-vWfE_9bO.d.ts +137 -0
  140. package/dist/dpia.d.mts +179 -0
  141. package/dist/dpia.d.ts +179 -0
  142. package/dist/dpia.js +2 -0
  143. package/dist/dpia.js.map +1 -0
  144. package/dist/dpia.mjs +2 -0
  145. package/dist/dpia.mjs.map +1 -0
  146. package/dist/dsr-jq5NUEdz.d.ts +14 -0
  147. package/dist/dsr-pQzQ3H1O.d.mts +128 -0
  148. package/dist/dsr-pQzQ3H1O.d.ts +128 -0
  149. package/dist/dsr-whPkiI0_.d.mts +14 -0
  150. package/dist/dsr.d.mts +192 -0
  151. package/dist/dsr.d.ts +192 -0
  152. package/dist/dsr.js +2 -0
  153. package/dist/dsr.js.map +1 -0
  154. package/dist/dsr.mjs +2 -0
  155. package/dist/dsr.mjs.map +1 -0
  156. package/dist/hooks.d.mts +17 -0
  157. package/dist/hooks.d.ts +17 -0
  158. package/dist/hooks.js +2 -0
  159. package/dist/hooks.js.map +1 -0
  160. package/dist/hooks.mjs +2 -0
  161. package/dist/hooks.mjs.map +1 -0
  162. package/dist/index.d.mts +31 -448
  163. package/dist/index.d.ts +31 -448
  164. package/dist/index.js +1 -190
  165. package/dist/index.js.map +1 -1
  166. package/dist/index.mjs +1 -190
  167. package/dist/index.mjs.map +1 -1
  168. package/dist/lawful-basis-CWtvDG1x.d.mts +112 -0
  169. package/dist/lawful-basis-CWtvDG1x.d.ts +112 -0
  170. package/dist/lawful-basis-D-oXFizg.d.mts +57 -0
  171. package/dist/lawful-basis-v04AhbK2.d.ts +57 -0
  172. package/dist/lawful-basis.d.mts +55 -0
  173. package/dist/lawful-basis.d.ts +55 -0
  174. package/dist/lawful-basis.js +2 -0
  175. package/dist/lawful-basis.js.map +1 -0
  176. package/dist/lawful-basis.mjs +2 -0
  177. package/dist/lawful-basis.mjs.map +1 -0
  178. package/dist/policy.d.mts +195 -0
  179. package/dist/policy.d.ts +195 -0
  180. package/dist/policy.js +2 -0
  181. package/dist/policy.js.map +1 -0
  182. package/dist/policy.mjs +2 -0
  183. package/dist/policy.mjs.map +1 -0
  184. package/dist/privacy-9FcJceMr.d.mts +15 -0
  185. package/dist/privacy-BXz7O2ej.d.ts +15 -0
  186. package/dist/privacy-Ca6te9Ir.d.mts +138 -0
  187. package/dist/privacy-Ca6te9Ir.d.ts +138 -0
  188. package/dist/ropa-BebGfqKQ.d.ts +200 -0
  189. package/dist/ropa-Rb4dsFSz.d.mts +200 -0
  190. package/dist/ropa.d.mts +45 -0
  191. package/dist/ropa.d.ts +45 -0
  192. package/dist/ropa.js +2 -0
  193. package/dist/ropa.js.map +1 -0
  194. package/dist/ropa.mjs +2 -0
  195. package/dist/ropa.mjs.map +1 -0
  196. package/dist/unstyled.d.mts +4 -4
  197. package/dist/unstyled.d.ts +4 -4
  198. package/dist/unstyled.js +1 -1
  199. package/dist/unstyled.js.map +1 -1
  200. package/dist/unstyled.mjs +1 -1
  201. package/dist/unstyled.mjs.map +1 -1
  202. package/dist/useBreach-DRKnexsk.d.mts +99 -0
  203. package/dist/useBreach-DuT0N0K1.d.ts +99 -0
  204. package/dist/useConsent-D0pAfTlb.d.ts +65 -0
  205. package/dist/useConsent-DOt2Njst.d.mts +65 -0
  206. package/dist/useCrossBorderTransfer-D4FQYfFt.d.ts +66 -0
  207. package/dist/useCrossBorderTransfer-TVnY8_UX.d.mts +66 -0
  208. package/dist/useDPIA-DFDHBLSa.d.ts +94 -0
  209. package/dist/useDPIA-FqPofFaV.d.mts +94 -0
  210. package/dist/useDSR-DAqqOBXb.d.ts +74 -0
  211. package/dist/useDSR-OXM5Q9rf.d.mts +74 -0
  212. package/dist/useLawfulBasis-DNQ8YszQ.d.mts +68 -0
  213. package/dist/useLawfulBasis-RILM_xsx.d.ts +68 -0
  214. package/dist/usePrivacyPolicy-CfySfBLS.d.ts +89 -0
  215. package/dist/usePrivacyPolicy-Dit2sFuV.d.mts +89 -0
  216. package/dist/useROPA-Bcs6cRdi.d.ts +64 -0
  217. package/dist/useROPA-nmcSiUYv.d.mts +64 -0
  218. package/package.json +162 -35
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Consent types aligned with NDPA 2023 Section 25-26
3
+ * Consent must be freely given, specific, informed, and unambiguous
4
+ */
5
+ /**
6
+ * Represents a consent option that can be presented to users
7
+ */
8
+ interface ConsentOption {
9
+ /** Unique identifier for the consent option */
10
+ id: string;
11
+ /** Display label for the consent option */
12
+ label: string;
13
+ /** Detailed description of what this consent option covers */
14
+ description: string;
15
+ /** Whether this consent option is required (cannot be declined) */
16
+ required: boolean;
17
+ /**
18
+ * The specific purpose for which data will be processed
19
+ * NDPA Section 25(2) requires consent to be specific to each purpose
20
+ */
21
+ purpose: string;
22
+ /**
23
+ * Default state of the consent option
24
+ * @default false
25
+ */
26
+ defaultValue?: boolean;
27
+ /**
28
+ * Categories of personal data covered by this consent option
29
+ */
30
+ dataCategories?: string[];
31
+ }
32
+ /**
33
+ * Represents the user's consent settings
34
+ */
35
+ interface ConsentSettings {
36
+ /** Map of consent option IDs to boolean values indicating consent status */
37
+ consents: Record<string, boolean>;
38
+ /** Timestamp when consent was last updated */
39
+ timestamp: number;
40
+ /** Version of the consent form that was accepted */
41
+ version: string;
42
+ /** Method used to collect consent (e.g., "banner", "settings", "api") */
43
+ method: string;
44
+ /** Whether the user has actively made a choice (as opposed to default settings) */
45
+ hasInteracted: boolean;
46
+ /**
47
+ * The lawful basis under which processing is conducted
48
+ * Required by NDPA Section 25(1)
49
+ */
50
+ lawfulBasis?: LawfulBasisType;
51
+ }
52
+ /**
53
+ * Lawful basis for processing personal data per NDPA Section 25(1)
54
+ */
55
+ type LawfulBasisType = 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_interest' | 'legitimate_interests';
56
+ /**
57
+ * Represents the storage mechanism for consent settings
58
+ */
59
+ interface ConsentStorageOptions {
60
+ /**
61
+ * Storage key for consent settings
62
+ * @default "ndpr_consent"
63
+ */
64
+ storageKey?: string;
65
+ /**
66
+ * Storage type to use
67
+ * @default "localStorage"
68
+ */
69
+ storageType?: 'localStorage' | 'sessionStorage' | 'cookie';
70
+ /**
71
+ * Cookie options (only used when storageType is "cookie")
72
+ */
73
+ cookieOptions?: {
74
+ /** Domain for the cookie */
75
+ domain?: string;
76
+ /**
77
+ * Path for the cookie
78
+ * @default "/"
79
+ */
80
+ path?: string;
81
+ /**
82
+ * Expiration days for the cookie
83
+ * @default 365
84
+ */
85
+ expires?: number;
86
+ /**
87
+ * Whether the cookie should be secure
88
+ * @default true
89
+ */
90
+ secure?: boolean;
91
+ /**
92
+ * SameSite attribute for the cookie
93
+ * @default "Lax"
94
+ */
95
+ sameSite?: 'Strict' | 'Lax' | 'None';
96
+ };
97
+ }
98
+
99
+ export type { ConsentOption as C, LawfulBasisType as L, ConsentSettings as a, ConsentStorageOptions as b };
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Consent types aligned with NDPA 2023 Section 25-26
3
+ * Consent must be freely given, specific, informed, and unambiguous
4
+ */
5
+ /**
6
+ * Represents a consent option that can be presented to users
7
+ */
8
+ interface ConsentOption {
9
+ /** Unique identifier for the consent option */
10
+ id: string;
11
+ /** Display label for the consent option */
12
+ label: string;
13
+ /** Detailed description of what this consent option covers */
14
+ description: string;
15
+ /** Whether this consent option is required (cannot be declined) */
16
+ required: boolean;
17
+ /**
18
+ * The specific purpose for which data will be processed
19
+ * NDPA Section 25(2) requires consent to be specific to each purpose
20
+ */
21
+ purpose: string;
22
+ /**
23
+ * Default state of the consent option
24
+ * @default false
25
+ */
26
+ defaultValue?: boolean;
27
+ /**
28
+ * Categories of personal data covered by this consent option
29
+ */
30
+ dataCategories?: string[];
31
+ }
32
+ /**
33
+ * Represents the user's consent settings
34
+ */
35
+ interface ConsentSettings {
36
+ /** Map of consent option IDs to boolean values indicating consent status */
37
+ consents: Record<string, boolean>;
38
+ /** Timestamp when consent was last updated */
39
+ timestamp: number;
40
+ /** Version of the consent form that was accepted */
41
+ version: string;
42
+ /** Method used to collect consent (e.g., "banner", "settings", "api") */
43
+ method: string;
44
+ /** Whether the user has actively made a choice (as opposed to default settings) */
45
+ hasInteracted: boolean;
46
+ /**
47
+ * The lawful basis under which processing is conducted
48
+ * Required by NDPA Section 25(1)
49
+ */
50
+ lawfulBasis?: LawfulBasisType;
51
+ }
52
+ /**
53
+ * Lawful basis for processing personal data per NDPA Section 25(1)
54
+ */
55
+ type LawfulBasisType = 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_interest' | 'legitimate_interests';
56
+ /**
57
+ * Represents the storage mechanism for consent settings
58
+ */
59
+ interface ConsentStorageOptions {
60
+ /**
61
+ * Storage key for consent settings
62
+ * @default "ndpr_consent"
63
+ */
64
+ storageKey?: string;
65
+ /**
66
+ * Storage type to use
67
+ * @default "localStorage"
68
+ */
69
+ storageType?: 'localStorage' | 'sessionStorage' | 'cookie';
70
+ /**
71
+ * Cookie options (only used when storageType is "cookie")
72
+ */
73
+ cookieOptions?: {
74
+ /** Domain for the cookie */
75
+ domain?: string;
76
+ /**
77
+ * Path for the cookie
78
+ * @default "/"
79
+ */
80
+ path?: string;
81
+ /**
82
+ * Expiration days for the cookie
83
+ * @default 365
84
+ */
85
+ expires?: number;
86
+ /**
87
+ * Whether the cookie should be secure
88
+ * @default true
89
+ */
90
+ secure?: boolean;
91
+ /**
92
+ * SameSite attribute for the cookie
93
+ * @default "Lax"
94
+ */
95
+ sameSite?: 'Strict' | 'Lax' | 'None';
96
+ };
97
+ }
98
+
99
+ export type { ConsentOption as C, LawfulBasisType as L, ConsentSettings as a, ConsentStorageOptions as b };
@@ -0,0 +1,24 @@
1
+ import { a as ConsentSettings, C as ConsentOption } from './consent-CmVzqZUk.mjs';
2
+
3
+ /**
4
+ * Validates consent settings to ensure they meet NDPA requirements
5
+ * @param settings The consent settings to validate
6
+ * @returns An object containing validation result and any error messages
7
+ */
8
+ declare function validateConsent(settings: ConsentSettings): {
9
+ valid: boolean;
10
+ errors: string[];
11
+ };
12
+ /**
13
+ * Validates that consent options meet NDPA Section 26 requirements.
14
+ * Each consent option must specify a purpose for which data will be processed,
15
+ * as consent must be specific and informed per the Nigeria Data Protection Act.
16
+ * @param options The consent options to validate
17
+ * @returns An object containing validation result and any error messages
18
+ */
19
+ declare function validateConsentOptions(options: ConsentOption[]): {
20
+ valid: boolean;
21
+ errors: string[];
22
+ };
23
+
24
+ export { validateConsentOptions as a, validateConsent as v };
@@ -0,0 +1,24 @@
1
+ import { a as ConsentSettings, C as ConsentOption } from './consent-CmVzqZUk.js';
2
+
3
+ /**
4
+ * Validates consent settings to ensure they meet NDPA requirements
5
+ * @param settings The consent settings to validate
6
+ * @returns An object containing validation result and any error messages
7
+ */
8
+ declare function validateConsent(settings: ConsentSettings): {
9
+ valid: boolean;
10
+ errors: string[];
11
+ };
12
+ /**
13
+ * Validates that consent options meet NDPA Section 26 requirements.
14
+ * Each consent option must specify a purpose for which data will be processed,
15
+ * as consent must be specific and informed per the Nigeria Data Protection Act.
16
+ * @param options The consent options to validate
17
+ * @returns An object containing validation result and any error messages
18
+ */
19
+ declare function validateConsentOptions(options: ConsentOption[]): {
20
+ valid: boolean;
21
+ errors: string[];
22
+ };
23
+
24
+ export { validateConsentOptions as a, validateConsent as v };
@@ -0,0 +1,197 @@
1
+ import React from 'react';
2
+ import { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions } from './consent-CmVzqZUk.mjs';
3
+ export { L as LawfulBasisType } from './consent-CmVzqZUk.mjs';
4
+ export { u as useConsent } from './useConsent-DOt2Njst.mjs';
5
+ export { v as validateConsent, a as validateConsentOptions } from './consent-DCc5zjXI.mjs';
6
+
7
+ interface ConsentBannerProps {
8
+ /**
9
+ * Array of consent options to display
10
+ */
11
+ options: ConsentOption[];
12
+ /**
13
+ * Callback function called when user saves their consent choices
14
+ */
15
+ onSave: (settings: ConsentSettings) => void;
16
+ /**
17
+ * Title displayed on the banner
18
+ * @default "We Value Your Privacy"
19
+ */
20
+ title?: string;
21
+ /**
22
+ * Description text displayed on the banner
23
+ * @default "We use cookies and similar technologies to provide our services and enhance your experience."
24
+ */
25
+ description?: string;
26
+ /**
27
+ * Text for the accept all button
28
+ * @default "Accept All"
29
+ */
30
+ acceptAllButtonText?: string;
31
+ /**
32
+ * Text for the reject all button
33
+ * @default "Reject All"
34
+ */
35
+ rejectAllButtonText?: string;
36
+ /**
37
+ * Text for the customize button
38
+ * @default "Customize"
39
+ */
40
+ customizeButtonText?: string;
41
+ /**
42
+ * Text for the save button
43
+ * @default "Save Preferences"
44
+ */
45
+ saveButtonText?: string;
46
+ /**
47
+ * Position of the banner
48
+ * @default "bottom"
49
+ */
50
+ position?: 'top' | 'bottom' | 'center';
51
+ /**
52
+ * Version of the consent form
53
+ * @default "1.0"
54
+ */
55
+ version?: string;
56
+ /**
57
+ * Whether to show the banner
58
+ * If not provided, the banner will be shown if no consent has been saved
59
+ */
60
+ show?: boolean;
61
+ /**
62
+ * Storage key for consent settings
63
+ * @default "ndpr_consent"
64
+ */
65
+ storageKey?: string;
66
+ /**
67
+ * Custom CSS class for the banner
68
+ */
69
+ className?: string;
70
+ /**
71
+ * Custom CSS class for the buttons
72
+ */
73
+ buttonClassName?: string;
74
+ /**
75
+ * Custom CSS class for the primary button
76
+ */
77
+ primaryButtonClassName?: string;
78
+ /**
79
+ * Custom CSS class for the secondary button
80
+ */
81
+ secondaryButtonClassName?: string;
82
+ }
83
+ declare const ConsentBanner: React.FC<ConsentBannerProps>;
84
+
85
+ interface ConsentManagerProps {
86
+ /**
87
+ * Array of consent options to display
88
+ */
89
+ options: ConsentOption[];
90
+ /**
91
+ * Current consent settings
92
+ */
93
+ settings?: ConsentSettings;
94
+ /**
95
+ * Callback function called when user saves their consent choices
96
+ */
97
+ onSave: (settings: ConsentSettings) => void;
98
+ /**
99
+ * Title displayed in the manager
100
+ * @default "Manage Your Privacy Settings"
101
+ */
102
+ title?: string;
103
+ /**
104
+ * Description text displayed in the manager
105
+ * @default "Update your consent preferences at any time. Required cookies cannot be disabled as they are necessary for the website to function."
106
+ */
107
+ description?: string;
108
+ /**
109
+ * Text for the save button
110
+ * @default "Save Preferences"
111
+ */
112
+ saveButtonText?: string;
113
+ /**
114
+ * Text for the reset button
115
+ * @default "Reset to Defaults"
116
+ */
117
+ resetButtonText?: string;
118
+ /**
119
+ * Version of the consent form
120
+ * @default "1.0"
121
+ */
122
+ version?: string;
123
+ /**
124
+ * Custom CSS class for the manager
125
+ */
126
+ className?: string;
127
+ /**
128
+ * Custom CSS class for the buttons
129
+ */
130
+ buttonClassName?: string;
131
+ /**
132
+ * Custom CSS class for the primary button
133
+ */
134
+ primaryButtonClassName?: string;
135
+ /**
136
+ * Custom CSS class for the secondary button
137
+ */
138
+ secondaryButtonClassName?: string;
139
+ /**
140
+ * Whether to show a success message after saving
141
+ * @default true
142
+ */
143
+ showSuccessMessage?: boolean;
144
+ /**
145
+ * Success message to display after saving
146
+ * @default "Your preferences have been saved."
147
+ */
148
+ successMessage?: string;
149
+ /**
150
+ * Duration to show the success message (in milliseconds)
151
+ * @default 3000
152
+ */
153
+ successMessageDuration?: number;
154
+ }
155
+ declare const ConsentManager: React.FC<ConsentManagerProps>;
156
+
157
+ interface ConsentStorageProps {
158
+ /**
159
+ * Current consent settings
160
+ */
161
+ settings: ConsentSettings;
162
+ /**
163
+ * Storage options for consent settings
164
+ */
165
+ storageOptions?: ConsentStorageOptions;
166
+ /**
167
+ * Callback function called when settings are loaded from storage
168
+ */
169
+ onLoad?: (settings: ConsentSettings | null) => void;
170
+ /**
171
+ * Callback function called when settings are saved to storage
172
+ */
173
+ onSave?: (settings: ConsentSettings) => void;
174
+ /**
175
+ * Whether to automatically save settings to storage
176
+ * @default true
177
+ */
178
+ autoSave?: boolean;
179
+ /**
180
+ * Whether to automatically load settings from storage on mount
181
+ * @default true
182
+ */
183
+ autoLoad?: boolean;
184
+ /**
185
+ * Children to render
186
+ * Can be either React nodes or a render prop function that receives storage methods
187
+ */
188
+ children?: React.ReactNode | ((props: {
189
+ loadSettings: () => ConsentSettings | null;
190
+ saveSettings: (settings: ConsentSettings) => void;
191
+ clearSettings: () => void;
192
+ loaded: boolean;
193
+ }) => React.ReactNode);
194
+ }
195
+ declare const ConsentStorage: ({ settings, storageOptions, onLoad, onSave, autoSave, autoLoad, children }: ConsentStorageProps) => React.ReactElement | null;
196
+
197
+ export { ConsentBanner, ConsentManager, ConsentOption, ConsentSettings, ConsentStorage, ConsentStorageOptions };
@@ -0,0 +1,197 @@
1
+ import React from 'react';
2
+ import { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions } from './consent-CmVzqZUk.js';
3
+ export { L as LawfulBasisType } from './consent-CmVzqZUk.js';
4
+ export { u as useConsent } from './useConsent-D0pAfTlb.js';
5
+ export { v as validateConsent, a as validateConsentOptions } from './consent-DLWb5ota.js';
6
+
7
+ interface ConsentBannerProps {
8
+ /**
9
+ * Array of consent options to display
10
+ */
11
+ options: ConsentOption[];
12
+ /**
13
+ * Callback function called when user saves their consent choices
14
+ */
15
+ onSave: (settings: ConsentSettings) => void;
16
+ /**
17
+ * Title displayed on the banner
18
+ * @default "We Value Your Privacy"
19
+ */
20
+ title?: string;
21
+ /**
22
+ * Description text displayed on the banner
23
+ * @default "We use cookies and similar technologies to provide our services and enhance your experience."
24
+ */
25
+ description?: string;
26
+ /**
27
+ * Text for the accept all button
28
+ * @default "Accept All"
29
+ */
30
+ acceptAllButtonText?: string;
31
+ /**
32
+ * Text for the reject all button
33
+ * @default "Reject All"
34
+ */
35
+ rejectAllButtonText?: string;
36
+ /**
37
+ * Text for the customize button
38
+ * @default "Customize"
39
+ */
40
+ customizeButtonText?: string;
41
+ /**
42
+ * Text for the save button
43
+ * @default "Save Preferences"
44
+ */
45
+ saveButtonText?: string;
46
+ /**
47
+ * Position of the banner
48
+ * @default "bottom"
49
+ */
50
+ position?: 'top' | 'bottom' | 'center';
51
+ /**
52
+ * Version of the consent form
53
+ * @default "1.0"
54
+ */
55
+ version?: string;
56
+ /**
57
+ * Whether to show the banner
58
+ * If not provided, the banner will be shown if no consent has been saved
59
+ */
60
+ show?: boolean;
61
+ /**
62
+ * Storage key for consent settings
63
+ * @default "ndpr_consent"
64
+ */
65
+ storageKey?: string;
66
+ /**
67
+ * Custom CSS class for the banner
68
+ */
69
+ className?: string;
70
+ /**
71
+ * Custom CSS class for the buttons
72
+ */
73
+ buttonClassName?: string;
74
+ /**
75
+ * Custom CSS class for the primary button
76
+ */
77
+ primaryButtonClassName?: string;
78
+ /**
79
+ * Custom CSS class for the secondary button
80
+ */
81
+ secondaryButtonClassName?: string;
82
+ }
83
+ declare const ConsentBanner: React.FC<ConsentBannerProps>;
84
+
85
+ interface ConsentManagerProps {
86
+ /**
87
+ * Array of consent options to display
88
+ */
89
+ options: ConsentOption[];
90
+ /**
91
+ * Current consent settings
92
+ */
93
+ settings?: ConsentSettings;
94
+ /**
95
+ * Callback function called when user saves their consent choices
96
+ */
97
+ onSave: (settings: ConsentSettings) => void;
98
+ /**
99
+ * Title displayed in the manager
100
+ * @default "Manage Your Privacy Settings"
101
+ */
102
+ title?: string;
103
+ /**
104
+ * Description text displayed in the manager
105
+ * @default "Update your consent preferences at any time. Required cookies cannot be disabled as they are necessary for the website to function."
106
+ */
107
+ description?: string;
108
+ /**
109
+ * Text for the save button
110
+ * @default "Save Preferences"
111
+ */
112
+ saveButtonText?: string;
113
+ /**
114
+ * Text for the reset button
115
+ * @default "Reset to Defaults"
116
+ */
117
+ resetButtonText?: string;
118
+ /**
119
+ * Version of the consent form
120
+ * @default "1.0"
121
+ */
122
+ version?: string;
123
+ /**
124
+ * Custom CSS class for the manager
125
+ */
126
+ className?: string;
127
+ /**
128
+ * Custom CSS class for the buttons
129
+ */
130
+ buttonClassName?: string;
131
+ /**
132
+ * Custom CSS class for the primary button
133
+ */
134
+ primaryButtonClassName?: string;
135
+ /**
136
+ * Custom CSS class for the secondary button
137
+ */
138
+ secondaryButtonClassName?: string;
139
+ /**
140
+ * Whether to show a success message after saving
141
+ * @default true
142
+ */
143
+ showSuccessMessage?: boolean;
144
+ /**
145
+ * Success message to display after saving
146
+ * @default "Your preferences have been saved."
147
+ */
148
+ successMessage?: string;
149
+ /**
150
+ * Duration to show the success message (in milliseconds)
151
+ * @default 3000
152
+ */
153
+ successMessageDuration?: number;
154
+ }
155
+ declare const ConsentManager: React.FC<ConsentManagerProps>;
156
+
157
+ interface ConsentStorageProps {
158
+ /**
159
+ * Current consent settings
160
+ */
161
+ settings: ConsentSettings;
162
+ /**
163
+ * Storage options for consent settings
164
+ */
165
+ storageOptions?: ConsentStorageOptions;
166
+ /**
167
+ * Callback function called when settings are loaded from storage
168
+ */
169
+ onLoad?: (settings: ConsentSettings | null) => void;
170
+ /**
171
+ * Callback function called when settings are saved to storage
172
+ */
173
+ onSave?: (settings: ConsentSettings) => void;
174
+ /**
175
+ * Whether to automatically save settings to storage
176
+ * @default true
177
+ */
178
+ autoSave?: boolean;
179
+ /**
180
+ * Whether to automatically load settings from storage on mount
181
+ * @default true
182
+ */
183
+ autoLoad?: boolean;
184
+ /**
185
+ * Children to render
186
+ * Can be either React nodes or a render prop function that receives storage methods
187
+ */
188
+ children?: React.ReactNode | ((props: {
189
+ loadSettings: () => ConsentSettings | null;
190
+ saveSettings: (settings: ConsentSettings) => void;
191
+ clearSettings: () => void;
192
+ loaded: boolean;
193
+ }) => React.ReactNode);
194
+ }
195
+ declare const ConsentStorage: ({ settings, storageOptions, onLoad, onSave, autoSave, autoLoad, children }: ConsentStorageProps) => React.ReactElement | null;
196
+
197
+ export { ConsentBanner, ConsentManager, ConsentOption, ConsentSettings, ConsentStorage, ConsentStorageOptions };
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkFK3CSFLJ_js=require('./chunk-FK3CSFLJ.js'),chunkZU73VG3X_js=require('./chunk-ZU73VG3X.js'),chunkY34DQYS7_js=require('./chunk-Y34DQYS7.js');require('./chunk-MQFZHA2D.js');Object.defineProperty(exports,"ConsentBanner",{enumerable:true,get:function(){return chunkFK3CSFLJ_js.a}});Object.defineProperty(exports,"ConsentManager",{enumerable:true,get:function(){return chunkFK3CSFLJ_js.b}});Object.defineProperty(exports,"ConsentStorage",{enumerable:true,get:function(){return chunkFK3CSFLJ_js.c}});Object.defineProperty(exports,"useConsent",{enumerable:true,get:function(){return chunkZU73VG3X_js.a}});Object.defineProperty(exports,"validateConsent",{enumerable:true,get:function(){return chunkY34DQYS7_js.a}});Object.defineProperty(exports,"validateConsentOptions",{enumerable:true,get:function(){return chunkY34DQYS7_js.b}});//# sourceMappingURL=consent.js.map
2
+ //# sourceMappingURL=consent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"consent.js"}
@@ -0,0 +1,2 @@
1
+ export{a as ConsentBanner,b as ConsentManager,c as ConsentStorage}from'./chunk-SLNMKGQ2.mjs';export{a as useConsent}from'./chunk-PDJGTQMY.mjs';export{a as validateConsent,b as validateConsentOptions}from'./chunk-GIV2OHE6.mjs';import'./chunk-WWT2ZSNU.mjs';//# sourceMappingURL=consent.mjs.map
2
+ //# sourceMappingURL=consent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"consent.mjs"}
@@ -0,0 +1,14 @@
1
+ export { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions, L as LawfulBasisType } from './consent-CmVzqZUk.mjs';
2
+ export { D as DSRRequest, a as DSRStatus, b as DSRType, c as RequestStatus, R as RequestType } from './dsr-pQzQ3H1O.mjs';
3
+ export { D as DPIAQuestion, b as DPIAResult, c as DPIARisk, a as DPIASection } from './dpia-vWfE_9bO.mjs';
4
+ export { a as BreachCategory, B as BreachReport, N as NotificationRequirement, b as RegulatoryNotification, R as RiskAssessment } from './breach-BpSBPrdk.mjs';
5
+ export { O as OrganizationInfo, P as PolicySection, a as PolicyTemplate, b as PolicyVariable, c as PrivacyPolicy } from './privacy-Ca6te9Ir.mjs';
6
+ export { L as LawfulBasis, b as LawfulBasisSummary, a as LegitimateInterestAssessment, P as ProcessingActivity, S as SensitiveDataCondition } from './lawful-basis-CWtvDG1x.mjs';
7
+ export { A as AdequacyStatus, b as CrossBorderSummary, C as CrossBorderTransfer, a as TransferImpactAssessment, T as TransferMechanism, e as TransferRiskResult, d as TransferValidationResult, c as assessTransferRisk, g as getTransferMechanismDescription, i as isNDPCApprovalRequired, v as validateTransfer } from './cross-border-BrIy1ieh.mjs';
8
+ export { P as ProcessingRecord, b as ROPAComplianceGap, a as ROPASummary, c as ROPAValidationResult, R as RecordOfProcessingActivities, e as exportROPAToCSV, g as generateROPASummary, i as identifyComplianceGaps, v as validateProcessingRecord } from './ropa-Rb4dsFSz.mjs';
9
+ export { L as LawfulBasisComplianceGap, c as LawfulBasisValidationResult, a as assessComplianceGaps, b as generateLawfulBasisSummary, g as getLawfulBasisDescription, v as validateProcessingActivity } from './lawful-basis-D-oXFizg.mjs';
10
+ export { v as validateConsent, a as validateConsentOptions } from './consent-DCc5zjXI.mjs';
11
+ export { f as formatDSRRequest } from './dsr-whPkiI0_.mjs';
12
+ export { a as assessDPIARisk } from './dpia-B9ZZJG5a.mjs';
13
+ export { c as calculateBreachSeverity } from './breach-D5zJYNph.mjs';
14
+ export { g as generatePolicyText } from './privacy-9FcJceMr.mjs';
package/dist/core.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ export { C as ConsentOption, a as ConsentSettings, b as ConsentStorageOptions, L as LawfulBasisType } from './consent-CmVzqZUk.js';
2
+ export { D as DSRRequest, a as DSRStatus, b as DSRType, c as RequestStatus, R as RequestType } from './dsr-pQzQ3H1O.js';
3
+ export { D as DPIAQuestion, b as DPIAResult, c as DPIARisk, a as DPIASection } from './dpia-vWfE_9bO.js';
4
+ export { a as BreachCategory, B as BreachReport, N as NotificationRequirement, b as RegulatoryNotification, R as RiskAssessment } from './breach-BpSBPrdk.js';
5
+ export { O as OrganizationInfo, P as PolicySection, a as PolicyTemplate, b as PolicyVariable, c as PrivacyPolicy } from './privacy-Ca6te9Ir.js';
6
+ export { L as LawfulBasis, b as LawfulBasisSummary, a as LegitimateInterestAssessment, P as ProcessingActivity, S as SensitiveDataCondition } from './lawful-basis-CWtvDG1x.js';
7
+ export { A as AdequacyStatus, b as CrossBorderSummary, C as CrossBorderTransfer, a as TransferImpactAssessment, T as TransferMechanism, e as TransferRiskResult, d as TransferValidationResult, c as assessTransferRisk, g as getTransferMechanismDescription, i as isNDPCApprovalRequired, v as validateTransfer } from './cross-border-BrIy1ieh.js';
8
+ export { P as ProcessingRecord, b as ROPAComplianceGap, a as ROPASummary, c as ROPAValidationResult, R as RecordOfProcessingActivities, e as exportROPAToCSV, g as generateROPASummary, i as identifyComplianceGaps, v as validateProcessingRecord } from './ropa-BebGfqKQ.js';
9
+ export { L as LawfulBasisComplianceGap, c as LawfulBasisValidationResult, a as assessComplianceGaps, b as generateLawfulBasisSummary, g as getLawfulBasisDescription, v as validateProcessingActivity } from './lawful-basis-v04AhbK2.js';
10
+ export { v as validateConsent, a as validateConsentOptions } from './consent-DLWb5ota.js';
11
+ export { f as formatDSRRequest } from './dsr-jq5NUEdz.js';
12
+ export { a as assessDPIARisk } from './dpia-fdtTd2DI.js';
13
+ export { c as calculateBreachSeverity } from './breach-D7NgrdMX.js';
14
+ export { g as generatePolicyText } from './privacy-BXz7O2ej.js';