@tantainnovative/ndpr-toolkit 2.4.1 → 3.0.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 (182) hide show
  1. package/README.md +226 -246
  2. package/dist/BreachReportForm-DpRrBoxU.d.ts +158 -0
  3. package/dist/BreachReportForm-yJ2Zl6gz.d.mts +158 -0
  4. package/dist/ConsentBanner-CDRT0o2k.d.mts +146 -0
  5. package/dist/ConsentBanner-Vxyt8SCX.d.ts +146 -0
  6. package/dist/{cross-border-entry-BrWVPly6.d.ts → CrossBorderTransferManager-D5Lc0e46.d.ts} +4 -5
  7. package/dist/{cross-border-entry-cCTvpwnT.d.mts → CrossBorderTransferManager-DkZhv9vD.d.mts} +4 -5
  8. package/dist/DPIAQuestionnaire-BkejviPj.d.mts +123 -0
  9. package/dist/DPIAQuestionnaire-DdSqXG3x.d.ts +123 -0
  10. package/dist/DSRRequestForm-BY8PogCU.d.mts +146 -0
  11. package/dist/DSRRequestForm-CHUg9cZh.d.ts +146 -0
  12. package/dist/DSRTracker-C6u_jAaK.d.mts +163 -0
  13. package/dist/DSRTracker-Dr_aT0pg.d.ts +163 -0
  14. package/dist/{lawful-basis-entry-CxZrofwG.d.mts → LawfulBasisTracker-CBqOxX1D.d.mts} +3 -5
  15. package/dist/{lawful-basis-entry-15qjKcNO.d.ts → LawfulBasisTracker-Cg30NbDA.d.ts} +3 -5
  16. package/dist/NDPRDashboard-CLJpEg0X.d.mts +44 -0
  17. package/dist/NDPRDashboard-DDWNd2Ah.d.ts +44 -0
  18. package/dist/{policy-E0fXZkda.d.mts → PolicyExporter-BIqSVjfC.d.mts} +4 -98
  19. package/dist/{policy-D2_jh5-T.d.ts → PolicyExporter-BNWaPBGU.d.ts} +4 -98
  20. package/dist/PolicyGenerator-BvcWPbxp.d.mts +96 -0
  21. package/dist/PolicyGenerator-BzRwtlgn.d.ts +96 -0
  22. package/dist/{ropa-entry-B0D7X1GV.d.ts → ROPAManager-BS4eB8Hw.d.mts} +4 -5
  23. package/dist/{ropa-entry-DiOThOc2.d.mts → ROPAManager-qxTrXLkD.d.ts} +4 -5
  24. package/dist/RegulatoryReportGenerator-BUYgzTTT.d.ts +282 -0
  25. package/dist/RegulatoryReportGenerator-DwcHcEFp.d.mts +282 -0
  26. package/dist/StepIndicator-D-nwRTyo.d.mts +171 -0
  27. package/dist/StepIndicator-D9ZATz_O.d.ts +171 -0
  28. package/dist/adapters.d.mts +25 -0
  29. package/dist/adapters.d.ts +25 -0
  30. package/dist/adapters.js +2 -0
  31. package/dist/adapters.mjs +2 -0
  32. package/dist/breach.d.mts +36 -431
  33. package/dist/breach.d.ts +36 -431
  34. package/dist/breach.js +1 -1
  35. package/dist/breach.mjs +1 -1
  36. package/dist/chunk-27NYSWUG.mjs +2 -0
  37. package/dist/chunk-2ORDHJRD.js +2 -0
  38. package/dist/chunk-2W7ARAW2.js +2 -0
  39. package/dist/chunk-3F34NACG.js +2 -0
  40. package/dist/chunk-3RGJV3VF.js +7 -0
  41. package/dist/chunk-3UWT64FI.mjs +2 -0
  42. package/dist/chunk-3V23O4ZJ.js +2 -0
  43. package/dist/chunk-3XAUN5IM.mjs +3 -0
  44. package/dist/chunk-5VMHKNJY.js +2 -0
  45. package/dist/chunk-6D3ZUGBB.mjs +2 -0
  46. package/dist/chunk-6E54NSAO.mjs +2 -0
  47. package/dist/chunk-7F5F5YWI.mjs +2 -0
  48. package/dist/chunk-7FIUX3ZM.js +89 -0
  49. package/dist/chunk-FR7ZYZXB.js +2 -0
  50. package/dist/chunk-FY5G6DGZ.js +7 -0
  51. package/dist/chunk-G26I6MP5.mjs +2 -0
  52. package/dist/chunk-GPJVTGHR.mjs +2 -0
  53. package/dist/chunk-GVANK6PL.js +3 -0
  54. package/dist/chunk-HNZK7LY3.mjs +2 -0
  55. package/dist/chunk-IKEPXHCZ.js +2 -0
  56. package/dist/chunk-IQQW52EF.js +2 -0
  57. package/dist/chunk-ISSGO2YT.mjs +72 -0
  58. package/dist/chunk-J6IKAGUP.mjs +89 -0
  59. package/dist/chunk-KHRBU5K7.js +2 -0
  60. package/dist/chunk-KNE4NXCY.mjs +7 -0
  61. package/dist/chunk-LFNA6WYQ.mjs +2 -0
  62. package/dist/chunk-NPI5T6NH.mjs +7 -0
  63. package/dist/chunk-NPLXE43Q.mjs +2 -0
  64. package/dist/chunk-P7BSBCB3.js +2 -0
  65. package/dist/chunk-PEH5GIMN.js +2 -0
  66. package/dist/chunk-RSUDIFZV.mjs +2 -0
  67. package/dist/chunk-SBNAMPAP.mjs +2 -0
  68. package/dist/chunk-SVCRYM4I.mjs +2 -0
  69. package/dist/chunk-U6VWHC46.js +72 -0
  70. package/dist/chunk-UK656RCG.js +2 -0
  71. package/dist/chunk-UNKXYVXY.js +2 -0
  72. package/dist/chunk-UOSEH6DC.js +2 -0
  73. package/dist/chunk-V37BM2LF.js +2 -0
  74. package/dist/chunk-V3MXWGXU.mjs +2 -0
  75. package/dist/chunk-VDZKGCAF.js +2 -0
  76. package/dist/chunk-WLSW4Z4W.mjs +2 -0
  77. package/dist/chunk-XSK4BSZJ.mjs +2 -0
  78. package/dist/chunk-YJCGEOLO.mjs +2 -0
  79. package/dist/chunk-ZCZ5RRZO.js +2 -0
  80. package/dist/compliance-score-racQe_E_.d.mts +115 -0
  81. package/dist/compliance-score-racQe_E_.d.ts +115 -0
  82. package/dist/consent.d.mts +67 -295
  83. package/dist/consent.d.ts +67 -295
  84. package/dist/consent.js +1 -1
  85. package/dist/consent.mjs +1 -1
  86. package/dist/core.d.mts +8 -5
  87. package/dist/core.d.ts +8 -5
  88. package/dist/core.js +1 -1
  89. package/dist/core.mjs +1 -1
  90. package/dist/cross-border-BBi9rZyO.d.mts +54 -0
  91. package/dist/cross-border-Dy-U9Hu6.d.ts +54 -0
  92. package/dist/{cross-border-BMcqLvjC.d.mts → cross-border-UyT00llA.d.mts} +1 -52
  93. package/dist/{cross-border-BMcqLvjC.d.ts → cross-border-UyT00llA.d.ts} +1 -52
  94. package/dist/cross-border.d.mts +32 -4
  95. package/dist/cross-border.d.ts +32 -4
  96. package/dist/cross-border.js +1 -1
  97. package/dist/cross-border.mjs +1 -1
  98. package/dist/dpia.d.mts +28 -284
  99. package/dist/dpia.d.ts +28 -284
  100. package/dist/dpia.js +1 -1
  101. package/dist/dpia.mjs +1 -1
  102. package/dist/dsr.d.mts +29 -300
  103. package/dist/dsr.d.ts +29 -300
  104. package/dist/dsr.js +1 -1
  105. package/dist/dsr.mjs +1 -1
  106. package/dist/hooks.d.mts +21 -10
  107. package/dist/hooks.d.ts +21 -10
  108. package/dist/hooks.js +1 -1
  109. package/dist/hooks.mjs +1 -1
  110. package/dist/index.d.mts +28 -18
  111. package/dist/index.d.ts +28 -18
  112. package/dist/index.js +1 -1
  113. package/dist/index.mjs +1 -1
  114. package/dist/lawful-basis.d.mts +31 -4
  115. package/dist/lawful-basis.d.ts +31 -4
  116. package/dist/lawful-basis.js +1 -1
  117. package/dist/lawful-basis.mjs +1 -1
  118. package/dist/policy.d.mts +36 -4
  119. package/dist/policy.d.ts +36 -4
  120. package/dist/policy.js +1 -1
  121. package/dist/policy.mjs +1 -1
  122. package/dist/presets.d.mts +124 -0
  123. package/dist/presets.d.ts +124 -0
  124. package/dist/presets.js +2 -0
  125. package/dist/presets.mjs +2 -0
  126. package/dist/{ropa-Li6UlL5H.d.ts → ropa-BDTM06tr.d.ts} +1 -49
  127. package/dist/{ropa-DP7pPPql.d.mts → ropa-CFHuT7jE.d.mts} +1 -49
  128. package/dist/ropa-CyynscU6.d.ts +51 -0
  129. package/dist/ropa-NIgxd8uP.d.mts +51 -0
  130. package/dist/ropa.d.mts +30 -4
  131. package/dist/ropa.d.ts +30 -4
  132. package/dist/ropa.js +1 -1
  133. package/dist/ropa.mjs +1 -1
  134. package/dist/styling-B7CBzYG7.d.ts +165 -0
  135. package/dist/styling-uJLsBbER.d.mts +165 -0
  136. package/dist/types-DK2CoKOC.d.mts +10 -0
  137. package/dist/types-DK2CoKOC.d.ts +10 -0
  138. package/dist/unstyled.d.mts +4 -4
  139. package/dist/unstyled.d.ts +4 -4
  140. package/dist/{useBreach-BBSoIcZO.d.mts → useBreach-CPr86Yan.d.mts} +18 -2
  141. package/dist/{useBreach-lFLbSyAN.d.ts → useBreach-DkVXvtJK.d.ts} +18 -2
  142. package/dist/{useConsent-D0pAfTlb.d.ts → useConsent-DCNkIJHR.d.mts} +12 -2
  143. package/dist/{useConsent-DOt2Njst.d.mts → useConsent-dOcELSfX.d.ts} +12 -2
  144. package/dist/{useCrossBorderTransfer-DmtACeqW.d.ts → useCrossBorderTransfer-BGNZt2lk.d.mts} +15 -3
  145. package/dist/{useCrossBorderTransfer-BZVFCXfr.d.mts → useCrossBorderTransfer-COqjgjsu.d.ts} +15 -3
  146. package/dist/{useDPIA-DBsg2yZx.d.ts → useDPIA-Dl16Te3r.d.ts} +13 -2
  147. package/dist/{useDPIA-Da7-Q_yW.d.mts → useDPIA-DzWye8JB.d.mts} +13 -2
  148. package/dist/{useDSR-YYZ6FYFs.d.mts → useDSR-C1LksCfP.d.mts} +13 -2
  149. package/dist/{useDSR-CYI7WCXr.d.ts → useDSR-DZel52O1.d.ts} +13 -2
  150. package/dist/{useDefaultPrivacyPolicy-CUluF_ic.d.mts → useDefaultPrivacyPolicy-BsYttRey.d.mts} +13 -2
  151. package/dist/{useDefaultPrivacyPolicy-B7kTHbZh.d.ts → useDefaultPrivacyPolicy-C-mG-A5S.d.ts} +13 -2
  152. package/dist/{useLawfulBasis-CpWuHtyh.d.mts → useLawfulBasis-CKJ-kw84.d.mts} +13 -2
  153. package/dist/{useLawfulBasis-CCWF9waR.d.ts → useLawfulBasis-DFTmu1ca.d.ts} +13 -2
  154. package/dist/{useROPA-BhJ3kvHp.d.ts → useROPA-BSSU1rfx.d.ts} +14 -2
  155. package/dist/{useROPA-DLFdjkxP.d.mts → useROPA-C2hjaBTz.d.mts} +14 -2
  156. package/package.json +18 -2
  157. package/dist/chunk-2XFAV267.mjs +0 -2
  158. package/dist/chunk-32UIWTGD.js +0 -72
  159. package/dist/chunk-3YCV2BA6.js +0 -2
  160. package/dist/chunk-4A354HL3.js +0 -2
  161. package/dist/chunk-5ZBO2UPH.js +0 -2
  162. package/dist/chunk-6GGGTRDZ.mjs +0 -2
  163. package/dist/chunk-BGHQTZAC.js +0 -94
  164. package/dist/chunk-BZTTQS4A.mjs +0 -7
  165. package/dist/chunk-EKVTLHBQ.js +0 -2
  166. package/dist/chunk-GMLNWS2N.mjs +0 -2
  167. package/dist/chunk-IBEKLDBY.mjs +0 -2
  168. package/dist/chunk-K3GMTMQ6.js +0 -2
  169. package/dist/chunk-L52PDW6O.mjs +0 -2
  170. package/dist/chunk-LI6WJ3LZ.js +0 -2
  171. package/dist/chunk-LXRXDTPI.js +0 -2
  172. package/dist/chunk-NW4A3JW6.mjs +0 -2
  173. package/dist/chunk-OITITR6K.mjs +0 -2
  174. package/dist/chunk-PDJGTQMY.mjs +0 -2
  175. package/dist/chunk-SKJCQKFL.mjs +0 -94
  176. package/dist/chunk-T44JQT2O.mjs +0 -2
  177. package/dist/chunk-TCJCE6WN.js +0 -2
  178. package/dist/chunk-VMJBW3EF.mjs +0 -2
  179. package/dist/chunk-WW3X3ELF.js +0 -2
  180. package/dist/chunk-XMYUYQH7.mjs +0 -72
  181. package/dist/chunk-ZNTMZ6NM.js +0 -7
  182. package/dist/chunk-ZU73VG3X.js +0 -2
@@ -1,310 +1,82 @@
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';
1
+ import { c as ConsentBannerProps } from './ConsentBanner-CDRT0o2k.mjs';
2
+ export { C as ConsentAnalyticsEvent, a as ConsentBanner, b as ConsentBannerClassNames } from './ConsentBanner-CDRT0o2k.mjs';
3
+ import { d as ConsentManagerProps, e as ConsentStorageProps } from './styling-uJLsBbER.mjs';
4
+ export { C as ConsentManager, a as ConsentManagerClassNames, b as ConsentStorage, c as ConsentStorageClassNames, r as resolveClass } from './styling-uJLsBbER.mjs';
5
+ export { u as useConsent } from './useConsent-DCNkIJHR.mjs';
5
6
  export { C as ConsentAuditEntry, a as appendAuditEntry, c as createAuditEntry, g as getAuditLog, v as validateConsent, b as validateConsentOptions } from './consent-audit-BdByjYlM.mjs';
7
+ import { C as ConsentOption, a as ConsentSettings } from './consent-CmVzqZUk.mjs';
8
+ export { b as ConsentStorageOptions, L as LawfulBasisType } from './consent-CmVzqZUk.mjs';
9
+ import * as React$1 from 'react';
10
+ import React__default from 'react';
11
+ import { S as StorageAdapter } from './types-DK2CoKOC.mjs';
6
12
 
7
- interface ConsentAnalyticsEvent {
8
- action: 'shown' | 'accepted_all' | 'rejected_all' | 'customized' | 'dismissed';
9
- timestamp: number;
10
- version: string;
11
- categories?: Record<string, boolean>;
12
- }
13
- interface ConsentBannerClassNames {
14
- root?: string;
15
- container?: string;
16
- title?: string;
17
- description?: string;
18
- optionsList?: string;
19
- optionItem?: string;
20
- optionCheckbox?: string;
21
- optionLabel?: string;
22
- optionDescription?: string;
23
- buttonGroup?: string;
24
- acceptButton?: string;
25
- rejectButton?: string;
26
- customizeButton?: string;
27
- saveButton?: string;
28
- customizePanel?: string;
29
- selectAllButton?: string;
30
- /** Alias for acceptButton */
31
- primaryButton?: string;
32
- /** Alias for rejectButton */
33
- secondaryButton?: string;
34
- }
35
- interface ConsentBannerProps {
36
- /**
37
- * Array of consent options to display
38
- */
39
- options: ConsentOption[];
40
- /**
41
- * Callback function called when user saves their consent choices
42
- */
43
- onSave: (settings: ConsentSettings) => void;
44
- /**
45
- * Title displayed on the banner
46
- * @default "We Value Your Privacy"
47
- */
48
- title?: string;
49
- /**
50
- * Description text displayed on the banner
51
- * @default "We use cookies and similar technologies to provide our services and enhance your experience. Your consent is collected in accordance with NDPA Sections 25-26."
52
- */
53
- description?: string;
54
- /**
55
- * Text for the accept all button
56
- * @default "Accept All"
57
- */
58
- acceptAllButtonText?: string;
59
- /**
60
- * Text for the reject all button
61
- * @default "Reject All"
62
- */
63
- rejectAllButtonText?: string;
64
- /**
65
- * Text for the customize button
66
- * @default "Customize"
67
- */
68
- customizeButtonText?: string;
69
- /**
70
- * Text for the save button
71
- * @default "Save Preferences"
72
- */
73
- saveButtonText?: string;
74
- /**
75
- * Position of the banner.
76
- * 'top', 'bottom', and 'center' render via a portal to document.body
77
- * with fixed positioning so the banner overlays the page.
78
- * 'inline' renders in the normal DOM tree without a portal.
79
- * @default "bottom"
80
- */
81
- position?: 'top' | 'bottom' | 'center' | 'inline';
82
- /**
83
- * z-index applied to the fixed-position banner.
84
- * Ignored when position is 'inline'.
85
- * @default 9999
86
- */
87
- zIndex?: number;
88
- /**
89
- * Version of the consent form
90
- * @default "1.0"
91
- */
92
- version?: string;
93
- /**
94
- * Whether to show the banner
95
- * If not provided, the banner will be shown if no consent has been saved
96
- */
97
- show?: boolean;
98
- /**
99
- * Storage key for consent settings
100
- * @default "ndpr_consent"
101
- */
102
- storageKey?: string;
103
- /**
104
- * Whether the banner manages its own localStorage persistence.
105
- * Set to false when an external storage mechanism (e.g., ConsentStorage)
106
- * is responsible for persisting consent settings under the same key.
107
- * This avoids race conditions where two writers target the same storage key.
108
- * @default true
109
- */
110
- manageStorage?: boolean;
111
- /**
112
- * Custom CSS class for the banner
113
- */
13
+ interface SaveButtonProps {
14
+ children?: React__default.ReactNode;
114
15
  className?: string;
115
- /**
116
- * Custom CSS class for the buttons
117
- */
118
- buttonClassName?: string;
119
- /**
120
- * Custom CSS class for the primary button
121
- */
122
- primaryButtonClassName?: string;
123
- /**
124
- * Custom CSS class for the secondary button
125
- */
126
- secondaryButtonClassName?: string;
127
- /**
128
- * Object of CSS class overrides keyed by semantic section name.
129
- * Takes priority over buttonClassName / primaryButtonClassName / secondaryButtonClassName.
130
- */
131
- classNames?: ConsentBannerClassNames;
132
- /**
133
- * When true, all default Tailwind classes are removed so consumers
134
- * can style from scratch using classNames.
135
- */
136
16
  unstyled?: boolean;
137
- /**
138
- * Optional analytics callback fired on each user interaction.
139
- * Called when the banner is shown, accepted, rejected, customized, or dismissed.
140
- */
141
- onAnalytics?: (event: ConsentAnalyticsEvent) => void;
17
+ consents?: Record<string, boolean>;
142
18
  }
143
- /**
144
- * Consent banner component. Implements NDPA Sections 25-26 consent requirements
145
- * for obtaining and managing data subject consent.
146
- */
147
- declare const ConsentBanner: React.FC<ConsentBannerProps>;
19
+ declare const SaveButton: React__default.FC<SaveButtonProps>;
148
20
 
149
- interface ConsentManagerClassNames {
150
- root?: string;
151
- header?: string;
152
- title?: string;
153
- description?: string;
154
- optionsList?: string;
155
- optionItem?: string;
156
- toggle?: string;
157
- saveButton?: string;
158
- resetButton?: string;
159
- /** Alias for saveButton */
160
- primaryButton?: string;
161
- /** Alias for resetButton */
162
- secondaryButton?: string;
163
- }
164
- interface ConsentManagerProps {
165
- /**
166
- * Array of consent options to display
167
- */
168
- options: ConsentOption[];
169
- /**
170
- * Current consent settings
171
- */
172
- settings?: ConsentSettings;
173
- /**
174
- * Callback function called when user saves their consent choices
175
- */
176
- onSave: (settings: ConsentSettings) => void;
177
- /**
178
- * Title displayed in the manager
179
- * @default "Manage Your Privacy Settings"
180
- */
181
- title?: string;
182
- /**
183
- * Description text displayed in the manager
184
- * @default "Update your consent preferences at any time. Required cookies cannot be disabled as they are necessary for the website to function. Consent management is provided in accordance with NDPA Sections 25-26."
185
- */
186
- description?: string;
187
- /**
188
- * Text for the save button
189
- * @default "Save Preferences"
190
- */
191
- saveButtonText?: string;
192
- /**
193
- * Text for the reset button
194
- * @default "Reset to Defaults"
195
- */
196
- resetButtonText?: string;
197
- /**
198
- * Version of the consent form
199
- * @default "1.0"
200
- */
201
- version?: string;
202
- /**
203
- * Custom CSS class for the manager
204
- */
21
+ interface RejectButtonProps {
22
+ children?: React__default.ReactNode;
205
23
  className?: string;
206
- /**
207
- * Custom CSS class for the buttons
208
- */
209
- buttonClassName?: string;
210
- /**
211
- * Custom CSS class for the primary button
212
- */
213
- primaryButtonClassName?: string;
214
- /**
215
- * Custom CSS class for the secondary button
216
- */
217
- secondaryButtonClassName?: string;
218
- /**
219
- * Object of CSS class overrides keyed by semantic section name.
220
- * Takes priority over buttonClassName / primaryButtonClassName / secondaryButtonClassName.
221
- */
222
- classNames?: ConsentManagerClassNames;
223
- /**
224
- * When true, all default Tailwind classes are removed so consumers
225
- * can style from scratch using classNames.
226
- */
227
24
  unstyled?: boolean;
228
- /**
229
- * Whether to show a success message after saving
230
- * @default true
231
- */
232
- showSuccessMessage?: boolean;
233
- /**
234
- * Success message to display after saving
235
- * @default "Your preferences have been saved."
236
- */
237
- successMessage?: string;
238
- /**
239
- * Duration to show the success message (in milliseconds)
240
- * @default 3000
241
- */
242
- successMessageDuration?: number;
243
25
  }
244
- /**
245
- * Consent management component. Implements NDPA Sections 25-26 consent requirements,
246
- * allowing data subjects to review and update their consent preferences.
247
- */
248
- declare const ConsentManager: React.FC<ConsentManagerProps>;
26
+ declare const RejectButton: React__default.FC<RejectButtonProps>;
249
27
 
250
- interface ConsentStorageClassNames {
251
- root?: string;
28
+ interface AcceptButtonProps {
29
+ children?: React__default.ReactNode;
30
+ className?: string;
31
+ unstyled?: boolean;
252
32
  }
253
- interface ConsentStorageProps {
254
- /**
255
- * Current consent settings
256
- */
257
- settings: ConsentSettings;
258
- /**
259
- * Storage options for consent settings
260
- */
261
- storageOptions?: ConsentStorageOptions;
262
- /**
263
- * Callback function called when settings are loaded from storage
264
- */
265
- onLoad?: (settings: ConsentSettings | null) => void;
266
- /**
267
- * Callback function called when settings are saved to storage
268
- */
269
- onSave?: (settings: ConsentSettings) => void;
270
- /**
271
- * Whether to automatically save settings to storage
272
- * @default true
273
- */
274
- autoSave?: boolean;
275
- /**
276
- * Whether to automatically load settings from storage on mount
277
- * @default true
278
- */
279
- autoLoad?: boolean;
280
- /**
281
- * Object of CSS class overrides keyed by semantic section name.
282
- */
283
- classNames?: ConsentStorageClassNames;
284
- /**
285
- * When true, all default classes are removed so consumers
286
- * can style from scratch using classNames.
287
- */
33
+ declare const AcceptButton: React__default.FC<AcceptButtonProps>;
34
+
35
+ interface OptionListProps {
36
+ classNames?: {
37
+ root?: string;
38
+ optionItem?: string;
39
+ optionCheckbox?: string;
40
+ optionLabel?: string;
41
+ optionDescription?: string;
42
+ };
288
43
  unstyled?: boolean;
289
- /**
290
- * Children to render
291
- * Can be either React nodes or a render prop function that receives storage methods
292
- */
293
- children?: React.ReactNode | ((props: {
294
- loadSettings: () => ConsentSettings | null;
295
- saveSettings: (settings: ConsentSettings) => void;
296
- clearSettings: () => void;
297
- loaded: boolean;
298
- }) => React.ReactNode);
299
44
  }
300
- declare const ConsentStorage: ({ settings, storageOptions, onLoad, onSave, autoSave, autoLoad, classNames, unstyled, children }: ConsentStorageProps) => React.ReactElement | null;
45
+ declare const OptionList: React__default.FC<OptionListProps>;
46
+
47
+ interface ConsentProviderProps {
48
+ options: ConsentOption[];
49
+ adapter?: StorageAdapter<ConsentSettings>;
50
+ version?: string;
51
+ onChange?: (settings: ConsentSettings) => void;
52
+ children: React__default.ReactNode;
53
+ }
54
+ declare const ConsentProvider: React__default.FC<ConsentProviderProps>;
55
+
56
+ declare const Consent: {
57
+ Provider: React$1.FC<ConsentProviderProps>;
58
+ OptionList: React$1.FC<OptionListProps>;
59
+ AcceptButton: React$1.FC<AcceptButtonProps>;
60
+ RejectButton: React$1.FC<RejectButtonProps>;
61
+ SaveButton: React$1.FC<SaveButtonProps>;
62
+ Banner: React$1.FC<ConsentBannerProps>;
63
+ Settings: React$1.FC<ConsentManagerProps>;
64
+ Storage: ({ settings, storageOptions, onLoad, onSave, autoSave, autoLoad, classNames, unstyled, children }: ConsentStorageProps) => React.ReactElement | null;
65
+ };
301
66
 
302
- /**
303
- * Resolves class names for a component section.
304
- * If unstyled is true, only the override class is used (or empty string).
305
- * If an override is provided, it fully REPLACES the default — no appending.
306
- * Otherwise the default class string is returned as-is.
307
- */
308
- declare function resolveClass(defaultClass: string, override?: string, unstyled?: boolean): string;
67
+ interface ConsentContextValue {
68
+ options: ConsentOption[];
69
+ settings: ConsentSettings | null;
70
+ hasConsent: (optionId: string) => boolean;
71
+ updateConsent: (consents: Record<string, boolean>) => void;
72
+ acceptAll: () => void;
73
+ rejectAll: () => void;
74
+ shouldShowBanner: boolean;
75
+ isValid: boolean;
76
+ validationErrors: string[];
77
+ resetConsent: () => void;
78
+ isLoading: boolean;
79
+ }
80
+ declare function useConsentCompound(): ConsentContextValue;
309
81
 
310
- export { type ConsentAnalyticsEvent, ConsentBanner, type ConsentBannerClassNames, ConsentManager, type ConsentManagerClassNames, ConsentOption, ConsentSettings, ConsentStorage, type ConsentStorageClassNames, ConsentStorageOptions, resolveClass };
82
+ export { Consent, AcceptButton as ConsentAcceptButton, ConsentOption, OptionList as ConsentOptionList, ConsentProvider, type ConsentProviderProps, RejectButton as ConsentRejectButton, SaveButton as ConsentSaveButton, ConsentSettings, StorageAdapter, useConsentCompound };