@redacto.io/consent-sdk-react 3.4.0 → 3.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.
- package/CHANGELOG.md +12 -0
- package/LICENSE +176 -0
- package/dist/index.d.mts +51 -4
- package/dist/index.d.ts +51 -4
- package/dist/index.js +1912 -345
- package/dist/index.mjs +1911 -345
- package/dist/privacy-center.d.mts +566 -0
- package/dist/privacy-center.d.ts +566 -0
- package/dist/privacy-center.js +17174 -0
- package/dist/privacy-center.mjs +17136 -0
- package/package.json +47 -3
- package/src/RedactoNoticeConsent/RedactoNoticeConsent.test.tsx +201 -118
- package/src/RedactoNoticeConsent/RedactoNoticeConsent.tsx +1194 -93
- package/src/RedactoNoticeConsent/api/index.ts +337 -246
- package/src/RedactoNoticeConsent/api/types.ts +140 -41
- package/src/RedactoNoticeConsent/components/DigiLockerCallback.tsx +602 -0
- package/src/RedactoNoticeConsent/components/index.ts +7 -0
- package/src/RedactoNoticeConsent/injectStyles.ts +11 -0
- package/src/RedactoNoticeConsent/language-codes.ts +61 -0
- package/src/RedactoNoticeConsent/services/storage.ts +122 -0
- package/src/RedactoNoticeConsent/types.ts +2 -0
- package/src/RedactoNoticeConsentInline/api/index.ts +26 -64
- package/src/RedactoNoticeConsentInline/api/types.ts +0 -25
- package/src/RedactoPrivacyCenter/PrivacyCenterActivityPage.tsx +19 -0
- package/src/RedactoPrivacyCenter/PrivacyCenterConsentManagerPage.tsx +17 -0
- package/src/RedactoPrivacyCenter/PrivacyCenterFormPage.tsx +79 -0
- package/src/RedactoPrivacyCenter/PrivacyCenterHomePage.tsx +27 -0
- package/src/RedactoPrivacyCenter/PrivacyCenterLayout.tsx +142 -0
- package/src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx +51 -0
- package/src/RedactoPrivacyCenter/api/actions.ts +444 -0
- package/src/RedactoPrivacyCenter/api/client.ts +413 -0
- package/src/RedactoPrivacyCenter/api/config.ts +33 -0
- package/src/RedactoPrivacyCenter/api/fetcher.ts +181 -0
- package/src/RedactoPrivacyCenter/api/upload.ts +93 -0
- package/src/RedactoPrivacyCenter/assets/character.svg +31 -0
- package/src/RedactoPrivacyCenter/assets/fileAttach.svg +9 -0
- package/src/RedactoPrivacyCenter/assets/greenTick.svg +4 -0
- package/src/RedactoPrivacyCenter/assets/mail.svg +3 -0
- package/src/RedactoPrivacyCenter/assets/poweredByRedacto.svg +9 -0
- package/src/RedactoPrivacyCenter/assets/sentImg.svg +9 -0
- package/src/RedactoPrivacyCenter/assets/uploadFileIcon.svg +9 -0
- package/src/RedactoPrivacyCenter/components/ActivitiesList.tsx +272 -0
- package/src/RedactoPrivacyCenter/components/CaseDetailsModal.tsx +468 -0
- package/src/RedactoPrivacyCenter/components/CaseHistory.tsx +433 -0
- package/src/RedactoPrivacyCenter/components/ConsentManager.tsx +726 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerColumns.tsx +239 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerConstants.ts +7 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerTableSkeleton.tsx +155 -0
- package/src/RedactoPrivacyCenter/components/DataRequest/CorrectionDataSection.tsx +189 -0
- package/src/RedactoPrivacyCenter/components/DataRequest/GrievanceDataSection.tsx +118 -0
- package/src/RedactoPrivacyCenter/components/DataRequest/NominationDataSection.tsx +66 -0
- package/src/RedactoPrivacyCenter/components/DataRequest/PurposeSelectionSection.tsx +305 -0
- package/src/RedactoPrivacyCenter/components/Form.tsx +1455 -0
- package/src/RedactoPrivacyCenter/components/GrievanceTable.tsx +176 -0
- package/src/RedactoPrivacyCenter/components/GrievanceTablePagination.tsx +330 -0
- package/src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx +329 -0
- package/src/RedactoPrivacyCenter/components/Pagination.tsx +140 -0
- package/src/RedactoPrivacyCenter/components/PrivacyCenterLayout.tsx +302 -0
- package/src/RedactoPrivacyCenter/components/RequestSubmit.tsx +218 -0
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/SideBarPC.tsx +475 -0
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/SideMenuPC.tsx +412 -0
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/constants.tsx +42 -0
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/menuItemsPC.tsx +1 -0
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/types.ts +40 -0
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/utils.ts +38 -0
- package/src/RedactoPrivacyCenter/components/ThemeTransitionOverlay.tsx +85 -0
- package/src/RedactoPrivacyCenter/components/activitiesColumns.tsx +141 -0
- package/src/RedactoPrivacyCenter/components/caseHistoryColumns.tsx +179 -0
- package/src/RedactoPrivacyCenter/components/constant.ts +20 -0
- package/src/RedactoPrivacyCenter/components/types.ts +68 -0
- package/src/RedactoPrivacyCenter/components/utils.tsx +10 -0
- package/src/RedactoPrivacyCenter/config/routes.ts +9 -0
- package/src/RedactoPrivacyCenter/config/table.ts +25 -0
- package/src/RedactoPrivacyCenter/context/AuthContext.tsx +123 -0
- package/src/RedactoPrivacyCenter/context/BaseUrlContext.tsx +44 -0
- package/src/RedactoPrivacyCenter/context/LocaleContext.tsx +11 -0
- package/src/RedactoPrivacyCenter/context/NavigationContext.tsx +64 -0
- package/src/RedactoPrivacyCenter/context/OrganizationContext.tsx +30 -0
- package/src/RedactoPrivacyCenter/context/PageChromeContext.tsx +60 -0
- package/src/RedactoPrivacyCenter/context/theme.tsx +127 -0
- package/src/RedactoPrivacyCenter/lib/api.ts +468 -0
- package/src/RedactoPrivacyCenter/lib/consent-manager/utils.tsx +63 -0
- package/src/RedactoPrivacyCenter/lib/constants.ts +116 -0
- package/src/RedactoPrivacyCenter/lib/i18n.ts +81 -0
- package/src/RedactoPrivacyCenter/lib/locales.ts +105 -0
- package/src/RedactoPrivacyCenter/lib/queries.ts +30 -0
- package/src/RedactoPrivacyCenter/lib/types.ts +346 -0
- package/src/RedactoPrivacyCenter/lib/useCurrentLanguage.ts +37 -0
- package/src/RedactoPrivacyCenter/lib/utils.ts +625 -0
- package/src/RedactoPrivacyCenter/locales/as/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/bho/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/bn/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/brx/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/doi/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/en/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/gom/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/gu/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/hi/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/kn/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/ks/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/mai/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/ml/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/mr/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/ne/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/or/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/pa/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/sa/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/sat/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/sd/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/ta/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/te/translation.json +188 -0
- package/src/RedactoPrivacyCenter/locales/ur/translation.json +188 -0
- package/src/RedactoPrivacyCenter/styles/base.css +117 -0
- package/src/RedactoPrivacyCenter/styles/injectStyles.ts +1000 -0
- package/src/RedactoPrivacyCenter/styles/pcStyles.ts +819 -0
- package/src/RedactoPrivacyCenter/styles/responsive.ts +138 -0
- package/src/RedactoPrivacyCenter/styles/variables.css +133 -0
- package/src/RedactoPrivacyCenter/table/AdvancedTable.tsx +365 -0
- package/src/RedactoPrivacyCenter/table/AdvancedTablePagination.tsx +479 -0
- package/src/RedactoPrivacyCenter/table/index.ts +2 -0
- package/src/RedactoPrivacyCenter/types/images.d.ts +29 -0
- package/src/RedactoPrivacyCenter/ui/Footer.tsx +73 -0
- package/src/RedactoPrivacyCenter/ui/FormBlockWrapper.tsx +54 -0
- package/src/RedactoPrivacyCenter/ui/PCAccordion.tsx +87 -0
- package/src/RedactoPrivacyCenter/ui/PCActionIcon.tsx +47 -0
- package/src/RedactoPrivacyCenter/ui/PCAvatar.tsx +69 -0
- package/src/RedactoPrivacyCenter/ui/PCBadge.tsx +48 -0
- package/src/RedactoPrivacyCenter/ui/PCButton.tsx +77 -0
- package/src/RedactoPrivacyCenter/ui/PCCheckbox.tsx +55 -0
- package/src/RedactoPrivacyCenter/ui/PCCollapse.tsx +97 -0
- package/src/RedactoPrivacyCenter/ui/PCEmpty.tsx +35 -0
- package/src/RedactoPrivacyCenter/ui/PCInput.tsx +128 -0
- package/src/RedactoPrivacyCenter/ui/PCLoader.tsx +30 -0
- package/src/RedactoPrivacyCenter/ui/PCModal.tsx +104 -0
- package/src/RedactoPrivacyCenter/ui/PCPopover.tsx +175 -0
- package/src/RedactoPrivacyCenter/ui/PCSelect.tsx +381 -0
- package/src/RedactoPrivacyCenter/ui/PCTable.tsx +137 -0
- package/src/RedactoPrivacyCenter/ui/PCText.tsx +39 -0
- package/src/RedactoPrivacyCenter/ui/PCTextarea.tsx +43 -0
- package/src/RedactoPrivacyCenter/ui/PCTitle.tsx +37 -0
- package/src/RedactoPrivacyCenter/ui/PCTooltip.tsx +119 -0
- package/src/RedactoPrivacyCenter/ui/SimpleBar.tsx +25 -0
- package/src/RedactoPrivacyCenter/ui/StatusBadge.tsx +55 -0
- package/src/RedactoPrivacyCenter/ui/ThemeToggle.tsx +70 -0
- package/src/RedactoPrivacyCenter/ui/index.ts +18 -0
- package/src/RedactoPrivacyCenter/utils/cn.ts +28 -0
- package/src/RedactoPrivacyCenter/utils/date.ts +48 -0
- package/src/RedactoPrivacyCenter/utils/status.ts +111 -0
- package/src/RedactoPrivacyCenter/utils/toast.ts +130 -0
- package/src/index.ts +10 -0
- package/src/privacy-center.ts +107 -0
- package/tsconfig.json +2 -0
- package/tsup.config.ts +16 -1
- package/src/utils/isLegacyApi.ts +0 -12
|
@@ -170,34 +170,13 @@ export type ConsentEventPayload = {
|
|
|
170
170
|
select_all_mandatory: boolean;
|
|
171
171
|
source?: string;
|
|
172
172
|
declined?: boolean;
|
|
173
|
+
language?: string;
|
|
173
174
|
meta_data?: {
|
|
174
|
-
specific_uuid
|
|
175
|
+
specific_uuid?: string;
|
|
176
|
+
minor_age?: number;
|
|
175
177
|
};
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// @deprecated Remove when production backend supports the new payload format.
|
|
179
|
-
export type LegacyConsentEventPayload = {
|
|
180
|
-
primary_email?: string;
|
|
181
|
-
notice_uuid: string;
|
|
182
|
-
source: string;
|
|
183
|
-
declined: boolean;
|
|
184
|
-
consents: {
|
|
185
|
-
purposes: Array<{
|
|
186
|
-
uuid: string;
|
|
187
|
-
name: string;
|
|
188
|
-
description: string;
|
|
189
|
-
industries?: string;
|
|
190
|
-
selected: boolean;
|
|
191
|
-
data_elements: Array<{
|
|
192
|
-
uuid: string;
|
|
193
|
-
name: string;
|
|
194
|
-
enabled: boolean;
|
|
195
|
-
required: boolean;
|
|
196
|
-
selected: boolean;
|
|
197
|
-
}>;
|
|
198
|
-
}>;
|
|
199
|
-
};
|
|
200
|
-
meta_data?: { specific_uuid: string };
|
|
178
|
+
guardian_verification_reference?: string;
|
|
179
|
+
self_declared_adult?: boolean;
|
|
201
180
|
};
|
|
202
181
|
|
|
203
182
|
export type DataElement = {
|
|
@@ -223,23 +202,13 @@ export type SubmitConsentEventParams = {
|
|
|
223
202
|
noticeUuid: string;
|
|
224
203
|
purposes: Array<Purpose>;
|
|
225
204
|
declined: boolean;
|
|
205
|
+
language?: string;
|
|
226
206
|
meta_data?: {
|
|
227
|
-
specific_uuid
|
|
207
|
+
specific_uuid?: string;
|
|
208
|
+
minor_age?: number;
|
|
228
209
|
};
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
export type SubmitGuardianInfoParams = {
|
|
232
|
-
accessToken: string;
|
|
233
|
-
baseUrl?: string;
|
|
234
|
-
guardianName: string;
|
|
235
|
-
guardianContact: string;
|
|
236
|
-
guardianRelationship: string;
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
export type GuardianInfoPayload = {
|
|
240
|
-
guardian_name: string;
|
|
241
|
-
guardian_contact: string;
|
|
242
|
-
guardian_relationship: string;
|
|
210
|
+
guardianVerificationReference?: string;
|
|
211
|
+
selfDeclaredAdult?: boolean;
|
|
243
212
|
};
|
|
244
213
|
|
|
245
214
|
// UI Component Types
|
|
@@ -355,3 +324,133 @@ export type FetchTTSAudioUrlsParams = {
|
|
|
355
324
|
noticeUuid: string;
|
|
356
325
|
language: string;
|
|
357
326
|
};
|
|
327
|
+
|
|
328
|
+
// =============================================================================
|
|
329
|
+
// Guardian Verification Types (aligned with backend API)
|
|
330
|
+
// =============================================================================
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Parameters for initiating guardian verification
|
|
334
|
+
* POST /guardian/initiate-verification
|
|
335
|
+
*/
|
|
336
|
+
export type InitiateGuardianVerificationParams = {
|
|
337
|
+
accessToken: string;
|
|
338
|
+
baseUrl?: string;
|
|
339
|
+
guardianName: string;
|
|
340
|
+
guardianContact: string;
|
|
341
|
+
guardianRelationship: string;
|
|
342
|
+
frontendCallbackUrl?: string;
|
|
343
|
+
metadata?: Record<string, unknown>;
|
|
344
|
+
signal?: AbortSignal;
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Response from initiate verification API
|
|
349
|
+
*
|
|
350
|
+
* Two shapes:
|
|
351
|
+
* 1. New verification needed: already_verified=false, includes session_token + digilocker_redirect_url
|
|
352
|
+
* 2. Already verified: already_verified=true, includes verification_reference — skip DigiLocker
|
|
353
|
+
*/
|
|
354
|
+
export type InitiateGuardianVerificationResponse = {
|
|
355
|
+
success: boolean;
|
|
356
|
+
guardian_info_uuid: string;
|
|
357
|
+
already_verified: boolean;
|
|
358
|
+
/** Present only when already_verified=true */
|
|
359
|
+
verification_reference?: string;
|
|
360
|
+
/** Present only when already_verified=false (new flow) */
|
|
361
|
+
session_token?: string;
|
|
362
|
+
/** Present only when already_verified=false (new flow) */
|
|
363
|
+
digilocker_redirect_url?: string;
|
|
364
|
+
/** Present only when already_verified=false (new flow) */
|
|
365
|
+
expires_at?: string;
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Parameters for checking verification status
|
|
370
|
+
* POST /guardian/verify-status
|
|
371
|
+
*/
|
|
372
|
+
export type VerifyGuardianStatusParams = {
|
|
373
|
+
accessToken: string;
|
|
374
|
+
baseUrl?: string;
|
|
375
|
+
sessionToken: string;
|
|
376
|
+
signal?: AbortSignal;
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Guardian details returned after successful verification
|
|
381
|
+
*/
|
|
382
|
+
export type GuardianVerificationDetails = {
|
|
383
|
+
verified_name: string | null;
|
|
384
|
+
is_guardian_adult: boolean | null;
|
|
385
|
+
verified_at: string;
|
|
386
|
+
verification_reference: string | null;
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Response from verify status API
|
|
391
|
+
*/
|
|
392
|
+
export type VerifyGuardianStatusResponse = {
|
|
393
|
+
status: "pending" | "in_progress" | "verified" | "failed" | "expired";
|
|
394
|
+
guardian_info_uuid: string | null;
|
|
395
|
+
verification_reference: string | null;
|
|
396
|
+
guardian_details: GuardianVerificationDetails | null;
|
|
397
|
+
error: string | null;
|
|
398
|
+
error_code: GuardianVerificationErrorCode | null;
|
|
399
|
+
can_retry: boolean;
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* Error codes from guardian verification
|
|
404
|
+
*/
|
|
405
|
+
export type GuardianVerificationErrorCode =
|
|
406
|
+
| "SESSION_EXPIRED"
|
|
407
|
+
| "GUARDIAN_UNDER_18"
|
|
408
|
+
| "TOKEN_FAILED"
|
|
409
|
+
| "DIGILOCKER_AUTH_FAILED"
|
|
410
|
+
| "NO_AUTH_CODE";
|
|
411
|
+
|
|
412
|
+
// =============================================================================
|
|
413
|
+
// Session Storage Types for redirect flow
|
|
414
|
+
// =============================================================================
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* State persisted during DigiLocker redirect flow.
|
|
418
|
+
* NOTE: accessToken is intentionally excluded — never store tokens in sessionStorage.
|
|
419
|
+
* The host app must provide the token when the component re-mounts.
|
|
420
|
+
*/
|
|
421
|
+
export type PersistedConsentState = {
|
|
422
|
+
flowState: ConsentFlowState;
|
|
423
|
+
sessionToken?: string;
|
|
424
|
+
guardianInfoUuid?: string;
|
|
425
|
+
verificationReference?: string;
|
|
426
|
+
selectedPurposes?: Record<string, boolean>;
|
|
427
|
+
selectedDataElements?: Record<string, boolean>;
|
|
428
|
+
timestamp: string;
|
|
429
|
+
originalUrl: string;
|
|
430
|
+
verificationResult?: "pending" | "verified" | "failed" | "in_progress" | "expired";
|
|
431
|
+
noticeId?: string;
|
|
432
|
+
baseUrl?: string;
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
export type ConsentFlowState =
|
|
436
|
+
| "age-check"
|
|
437
|
+
| "guardian-details"
|
|
438
|
+
| "digilocker-pending"
|
|
439
|
+
| "consent-form"
|
|
440
|
+
| "submitting"
|
|
441
|
+
| "success"
|
|
442
|
+
| "error";
|
|
443
|
+
|
|
444
|
+
// =============================================================================
|
|
445
|
+
// DigiLocker Callback Types
|
|
446
|
+
// =============================================================================
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Props for DigiLockerCallback component
|
|
450
|
+
*/
|
|
451
|
+
export type DigiLockerCallbackProps = {
|
|
452
|
+
accessToken: string;
|
|
453
|
+
baseUrl?: string;
|
|
454
|
+
onSuccess?: (verificationReference: string) => void;
|
|
455
|
+
onError?: (error: Error, errorCode?: GuardianVerificationErrorCode) => void;
|
|
456
|
+
};
|