@redacto.io/consent-sdk-react 10.0.0-beta.9 → 10.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.
- package/NOTICE.md +17 -0
- package/README.md +141 -3
- package/dist/chunk-FEGTW73Q.mjs +182 -0
- package/dist/fonts.d.mts +35 -0
- package/dist/fonts.d.ts +35 -0
- package/dist/fonts.js +183 -0
- package/dist/fonts.mjs +10 -0
- package/dist/index.d.mts +12 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +724 -365
- package/dist/index.mjs +346 -201
- package/dist/montserrat.generated-NBTECYRW.mjs +22 -0
- package/dist/privacy-center.d.mts +0 -1
- package/dist/privacy-center.d.ts +0 -1
- package/dist/privacy-center.js +2 -66
- package/dist/privacy-center.mjs +2 -66
- package/dist/types-6Aj7faxL.d.mts +57 -0
- package/dist/types-6Aj7faxL.d.ts +57 -0
- package/package.json +10 -1
- package/.turbo/turbo-build.log +0 -22
- package/.turbo/turbo-test.log +0 -203
- package/.turbo/turbo-verify-pack.log +0 -6
- package/CHANGELOG.md +0 -353
- package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.test.tsx +0 -934
- package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.tsx +0 -2160
- package/src/RedactoNoticeAssisted/api/index.ts +0 -275
- package/src/RedactoNoticeAssisted/api/types.ts +0 -182
- package/src/RedactoNoticeAssisted/assets/redacto-logo.png +0 -0
- package/src/RedactoNoticeAssisted/constants.ts +0 -51
- package/src/RedactoNoticeAssisted/i18n.ts +0 -1408
- package/src/RedactoNoticeAssisted/index.ts +0 -1
- package/src/RedactoNoticeAssisted/injectStyles.ts +0 -251
- package/src/RedactoNoticeAssisted/styles.ts +0 -730
- package/src/RedactoNoticeAssisted/types.ts +0 -26
- package/src/RedactoNoticeAssisted/useMediaQuery.ts +0 -36
- package/src/RedactoNoticeConsent/RedactoNoticeConsent.test.tsx +0 -1152
- package/src/RedactoNoticeConsent/RedactoNoticeConsent.tsx +0 -4308
- package/src/RedactoNoticeConsent/api/index.ts +0 -542
- package/src/RedactoNoticeConsent/api/sandbox.ts +0 -150
- package/src/RedactoNoticeConsent/api/types.ts +0 -515
- package/src/RedactoNoticeConsent/assets/redacto-logo.png +0 -0
- package/src/RedactoNoticeConsent/components/DigiLockerCallback.tsx +0 -602
- package/src/RedactoNoticeConsent/components/index.ts +0 -7
- package/src/RedactoNoticeConsent/constants.ts +0 -20
- package/src/RedactoNoticeConsent/index.ts +0 -1
- package/src/RedactoNoticeConsent/injectStyles.ts +0 -151
- package/src/RedactoNoticeConsent/language-codes.ts +0 -95
- package/src/RedactoNoticeConsent/services/storage.ts +0 -122
- package/src/RedactoNoticeConsent/styles.ts +0 -409
- package/src/RedactoNoticeConsent/types.ts +0 -80
- package/src/RedactoNoticeConsent/useMediaQuery.ts +0 -36
- package/src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.test.tsx +0 -369
- package/src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.tsx +0 -687
- package/src/RedactoNoticeConsentInline/api/index.ts +0 -106
- package/src/RedactoNoticeConsentInline/api/types.ts +0 -183
- package/src/RedactoNoticeConsentInline/assets/redacto-logo.png +0 -0
- package/src/RedactoNoticeConsentInline/index.ts +0 -1
- package/src/RedactoNoticeConsentInline/injectStyles.ts +0 -40
- package/src/RedactoNoticeConsentInline/styles.ts +0 -397
- package/src/RedactoNoticeConsentInline/types.ts +0 -51
- package/src/RedactoNoticeConsentInline/useMediaQuery.ts +0 -36
- package/src/RedactoPrivacyCenter/NotificationsPage.tsx +0 -182
- package/src/RedactoPrivacyCenter/PrivacyCenterActivityPage.tsx +0 -19
- package/src/RedactoPrivacyCenter/PrivacyCenterCaseDetailsPage.tsx +0 -156
- package/src/RedactoPrivacyCenter/PrivacyCenterConsentManagerPage.tsx +0 -17
- package/src/RedactoPrivacyCenter/PrivacyCenterFormPage.tsx +0 -79
- package/src/RedactoPrivacyCenter/PrivacyCenterHomePage.tsx +0 -36
- package/src/RedactoPrivacyCenter/PrivacyCenterLayout.tsx +0 -177
- package/src/RedactoPrivacyCenter/PrivacyCenterMyReceiptPage.tsx +0 -26
- package/src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx +0 -93
- package/src/RedactoPrivacyCenter/api/actions.ts +0 -695
- package/src/RedactoPrivacyCenter/api/client.ts +0 -1003
- package/src/RedactoPrivacyCenter/api/config.ts +0 -33
- package/src/RedactoPrivacyCenter/api/fetcher.ts +0 -275
- package/src/RedactoPrivacyCenter/api/orgBranding.ts +0 -16
- package/src/RedactoPrivacyCenter/api/upload.ts +0 -93
- package/src/RedactoPrivacyCenter/assets/character.svg +0 -31
- package/src/RedactoPrivacyCenter/assets/fileAttach.svg +0 -9
- package/src/RedactoPrivacyCenter/assets/greenTick.svg +0 -4
- package/src/RedactoPrivacyCenter/assets/mail.svg +0 -3
- package/src/RedactoPrivacyCenter/assets/poweredByRedacto.svg +0 -9
- package/src/RedactoPrivacyCenter/assets/sentImg.svg +0 -9
- package/src/RedactoPrivacyCenter/assets/uploadFileIcon.svg +0 -9
- package/src/RedactoPrivacyCenter/components/ActivitiesList.tsx +0 -252
- package/src/RedactoPrivacyCenter/components/ActivityTimeline.tsx +0 -239
- package/src/RedactoPrivacyCenter/components/AppShell/AppShell.tsx +0 -268
- package/src/RedactoPrivacyCenter/components/AppShell/MobileNavDrawer.tsx +0 -218
- package/src/RedactoPrivacyCenter/components/AppShell/NavItem.tsx +0 -205
- package/src/RedactoPrivacyCenter/components/AppShell/PageHeader.tsx +0 -107
- package/src/RedactoPrivacyCenter/components/AppShell/SidebarNav.tsx +0 -100
- package/src/RedactoPrivacyCenter/components/AppShell/TopAppBar.tsx +0 -339
- package/src/RedactoPrivacyCenter/components/AppShell/UserMenu.tsx +0 -245
- package/src/RedactoPrivacyCenter/components/AppShell/hooks/useIsTruncated.ts +0 -28
- package/src/RedactoPrivacyCenter/components/AppShell/hooks/useKeyboardShortcut.ts +0 -40
- package/src/RedactoPrivacyCenter/components/AppShell/hooks/useSidebarState.ts +0 -62
- package/src/RedactoPrivacyCenter/components/AppShell/usePrivacyCenterExitAction.ts +0 -36
- package/src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx +0 -38
- package/src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx +0 -31
- package/src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx +0 -79
- package/src/RedactoPrivacyCenter/components/CaseDetails/FinalizedTooltipWrapper.tsx +0 -25
- package/src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx +0 -96
- package/src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx +0 -97
- package/src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx +0 -156
- package/src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx +0 -171
- package/src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx +0 -23
- package/src/RedactoPrivacyCenter/components/CaseDetails/useFileUpload.ts +0 -116
- package/src/RedactoPrivacyCenter/components/CaseDetails/useMessagePolling.ts +0 -43
- package/src/RedactoPrivacyCenter/components/CaseDetails/utils.ts +0 -71
- package/src/RedactoPrivacyCenter/components/CaseDetailsModal.tsx +0 -469
- package/src/RedactoPrivacyCenter/components/CaseHistory.tsx +0 -426
- package/src/RedactoPrivacyCenter/components/ConsentManager.tsx +0 -1206
- package/src/RedactoPrivacyCenter/components/ConsentManagerCells.tsx +0 -218
- package/src/RedactoPrivacyCenter/components/ConsentManagerColumns.tsx +0 -138
- package/src/RedactoPrivacyCenter/components/ConsentManagerConstants.ts +0 -7
- package/src/RedactoPrivacyCenter/components/ConsentManagerExpandedRow.tsx +0 -179
- package/src/RedactoPrivacyCenter/components/ConsentManagerGroupedColumns.tsx +0 -318
- package/src/RedactoPrivacyCenter/components/ConsentManagerProductCards.tsx +0 -333
- package/src/RedactoPrivacyCenter/components/ConsentManagerPurposeCards.tsx +0 -102
- package/src/RedactoPrivacyCenter/components/ConsentManagerTableSkeleton.tsx +0 -159
- package/src/RedactoPrivacyCenter/components/DataRequest/CorrectionDataSection.tsx +0 -189
- package/src/RedactoPrivacyCenter/components/DataRequest/GrievanceDataSection.tsx +0 -118
- package/src/RedactoPrivacyCenter/components/DataRequest/NominationDataSection.tsx +0 -66
- package/src/RedactoPrivacyCenter/components/DataRequest/ProductSelectionSection.tsx +0 -222
- package/src/RedactoPrivacyCenter/components/DataRequest/PurposeSelectionSection.tsx +0 -331
- package/src/RedactoPrivacyCenter/components/Form.tsx +0 -1821
- package/src/RedactoPrivacyCenter/components/GrievanceTable.tsx +0 -174
- package/src/RedactoPrivacyCenter/components/GrievanceTablePagination.tsx +0 -337
- package/src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx +0 -334
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationBell.tsx +0 -173
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationCTAButton.tsx +0 -18
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationDropdown.tsx +0 -54
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationDropdownItem.tsx +0 -57
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationIcon.tsx +0 -19
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationListPanel.tsx +0 -92
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationRefreshButton.tsx +0 -20
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx +0 -58
- package/src/RedactoPrivacyCenter/components/NotificationHub/StatCard.tsx +0 -10
- package/src/RedactoPrivacyCenter/components/NotificationHub/useNotificationActions.ts +0 -112
- package/src/RedactoPrivacyCenter/components/NotificationHub/utils.ts +0 -27
- package/src/RedactoPrivacyCenter/components/Pagination.tsx +0 -140
- package/src/RedactoPrivacyCenter/components/PrivacyCenterEmptyState.tsx +0 -76
- package/src/RedactoPrivacyCenter/components/PrivacyCenterSessionExpired.tsx +0 -97
- package/src/RedactoPrivacyCenter/components/ReceiptsList.tsx +0 -454
- package/src/RedactoPrivacyCenter/components/RequestSubmit.tsx +0 -270
- package/src/RedactoPrivacyCenter/components/SelectUser.tsx +0 -95
- package/src/RedactoPrivacyCenter/components/SelectUserGate.tsx +0 -195
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/constants.tsx +0 -25
- package/src/RedactoPrivacyCenter/components/SideMenuBarPC/types.ts +0 -21
- package/src/RedactoPrivacyCenter/components/caseHistoryColumns.tsx +0 -159
- package/src/RedactoPrivacyCenter/components/constant.ts +0 -52
- package/src/RedactoPrivacyCenter/components/groupHelpers.ts +0 -155
- package/src/RedactoPrivacyCenter/components/receiptColumns.tsx +0 -203
- package/src/RedactoPrivacyCenter/components/types.ts +0 -123
- package/src/RedactoPrivacyCenter/components/utils.tsx +0 -10
- package/src/RedactoPrivacyCenter/config/routes.ts +0 -9
- package/src/RedactoPrivacyCenter/config/table.ts +0 -25
- package/src/RedactoPrivacyCenter/context/AuthContext.tsx +0 -252
- package/src/RedactoPrivacyCenter/context/BaseUrlContext.tsx +0 -47
- package/src/RedactoPrivacyCenter/context/BrandingContext.tsx +0 -52
- package/src/RedactoPrivacyCenter/context/DataAvailabilityContext.session-expired.test.tsx +0 -92
- package/src/RedactoPrivacyCenter/context/DataAvailabilityContext.tsx +0 -181
- package/src/RedactoPrivacyCenter/context/LocaleContext.tsx +0 -11
- package/src/RedactoPrivacyCenter/context/NavigationContext.tsx +0 -96
- package/src/RedactoPrivacyCenter/context/OrganizationContext.tsx +0 -30
- package/src/RedactoPrivacyCenter/context/PageChromeContext.tsx +0 -80
- package/src/RedactoPrivacyCenter/context/ProfileSwitchContext.tsx +0 -15
- package/src/RedactoPrivacyCenter/context/types.ts +0 -57
- package/src/RedactoPrivacyCenter/lib/api.ts +0 -759
- package/src/RedactoPrivacyCenter/lib/consent-manager/utils.tsx +0 -67
- package/src/RedactoPrivacyCenter/lib/constants.ts +0 -283
- package/src/RedactoPrivacyCenter/lib/i18n.ts +0 -81
- package/src/RedactoPrivacyCenter/lib/locales.ts +0 -102
- package/src/RedactoPrivacyCenter/lib/queries.ts +0 -141
- package/src/RedactoPrivacyCenter/lib/sandbox.ts +0 -104
- package/src/RedactoPrivacyCenter/lib/types.ts +0 -896
- package/src/RedactoPrivacyCenter/lib/useCurrentLanguage.ts +0 -37
- package/src/RedactoPrivacyCenter/lib/utils.refresh-circuit.test.ts +0 -127
- package/src/RedactoPrivacyCenter/lib/utils.refresh-storage.test.ts +0 -85
- package/src/RedactoPrivacyCenter/lib/utils.session-expired.test.ts +0 -109
- package/src/RedactoPrivacyCenter/lib/utils.ts +0 -798
- package/src/RedactoPrivacyCenter/locales/as/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/bn/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/brx/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/doi/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/en/translation.json +0 -357
- package/src/RedactoPrivacyCenter/locales/gom/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/gu/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/hi/translation.json +0 -345
- package/src/RedactoPrivacyCenter/locales/kn/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/ks/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/mai/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/ml/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/mr/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/ne/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/or/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/pa/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/sa/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/sat/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/sd/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/ta/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/te/translation.json +0 -342
- package/src/RedactoPrivacyCenter/locales/ur/translation.json +0 -342
- package/src/RedactoPrivacyCenter/styles/applyBrandingTheme.ts +0 -66
- package/src/RedactoPrivacyCenter/styles/base.css +0 -117
- package/src/RedactoPrivacyCenter/styles/injectStyles.ts +0 -3108
- package/src/RedactoPrivacyCenter/styles/pcStyles.ts +0 -831
- package/src/RedactoPrivacyCenter/styles/responsive.ts +0 -138
- package/src/RedactoPrivacyCenter/styles/variables.css +0 -96
- package/src/RedactoPrivacyCenter/table/AdvancedTable.tsx +0 -387
- package/src/RedactoPrivacyCenter/table/AdvancedTablePagination.tsx +0 -468
- package/src/RedactoPrivacyCenter/table/index.ts +0 -2
- package/src/RedactoPrivacyCenter/types/images.d.ts +0 -29
- package/src/RedactoPrivacyCenter/ui/Footer.tsx +0 -69
- package/src/RedactoPrivacyCenter/ui/FormBlockWrapper.tsx +0 -54
- package/src/RedactoPrivacyCenter/ui/PCAccordion.tsx +0 -93
- package/src/RedactoPrivacyCenter/ui/PCActionIcon.tsx +0 -47
- package/src/RedactoPrivacyCenter/ui/PCAvatar.test.tsx +0 -83
- package/src/RedactoPrivacyCenter/ui/PCAvatar.tsx +0 -93
- package/src/RedactoPrivacyCenter/ui/PCBadge.tsx +0 -48
- package/src/RedactoPrivacyCenter/ui/PCButton.tsx +0 -77
- package/src/RedactoPrivacyCenter/ui/PCCheckbox.tsx +0 -55
- package/src/RedactoPrivacyCenter/ui/PCCollapse.tsx +0 -107
- package/src/RedactoPrivacyCenter/ui/PCEmpty.tsx +0 -35
- package/src/RedactoPrivacyCenter/ui/PCInput.tsx +0 -132
- package/src/RedactoPrivacyCenter/ui/PCLoader.tsx +0 -31
- package/src/RedactoPrivacyCenter/ui/PCModal.tsx +0 -106
- package/src/RedactoPrivacyCenter/ui/PCPopover.tsx +0 -206
- package/src/RedactoPrivacyCenter/ui/PCSelect.tsx +0 -433
- package/src/RedactoPrivacyCenter/ui/PCTable.tsx +0 -149
- package/src/RedactoPrivacyCenter/ui/PCText.tsx +0 -41
- package/src/RedactoPrivacyCenter/ui/PCTextarea.tsx +0 -43
- package/src/RedactoPrivacyCenter/ui/PCTitle.tsx +0 -37
- package/src/RedactoPrivacyCenter/ui/PCTooltip.tsx +0 -121
- package/src/RedactoPrivacyCenter/ui/SimpleBar.tsx +0 -25
- package/src/RedactoPrivacyCenter/ui/StatusBadge.tsx +0 -53
- package/src/RedactoPrivacyCenter/ui/index.ts +0 -18
- package/src/RedactoPrivacyCenter/utils/cn.ts +0 -28
- package/src/RedactoPrivacyCenter/utils/date.ts +0 -48
- package/src/RedactoPrivacyCenter/utils/status.ts +0 -111
- package/src/RedactoPrivacyCenter/utils/toast.ts +0 -130
- package/src/index.ts +0 -19
- package/src/privacy-center.ts +0 -113
- package/src/shared/api-errors.ts +0 -180
- package/src/shared/notice-consent-status.ts +0 -190
- package/src/shared/sandbox.ts +0 -6
- package/src/types/css.d.ts +0 -4
- package/src/types/images.d.ts +0 -19
- package/src/types/react-jsx.d.ts +0 -26
- package/tests/DataAvailabilityContext.test.tsx +0 -123
- package/tests/Form.test.tsx +0 -1424
- package/tests/ManageConsentErrorMapping.test.tsx +0 -85
- package/tests/ProductSelectionSection.test.tsx +0 -328
- package/tests/RequestSubmit.test.tsx +0 -135
- package/tests/RevocablePurpose.test.tsx +0 -146
- package/tests/RevokeWarningMessage.test.tsx +0 -151
- package/tests/consentClient.test.ts +0 -217
- package/tests/manageConsentServer.test.ts +0 -38
- package/tests/mocks.ts +0 -257
- package/tests/resolveContactFromJwt.test.ts +0 -44
- package/tests/setup.ts +0 -16
- package/tsconfig.json +0 -16
- package/tsup.config.ts +0 -31
- package/vitest.config.ts +0 -16
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
// CSS injection utility for the consent SDK
|
|
2
|
-
let stylesInjected = false;
|
|
3
|
-
|
|
4
|
-
export const injectCheckboxStyles = () => {
|
|
5
|
-
if (stylesInjected || typeof document === 'undefined') {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const STYLE_ID = 'redacto-consent-checkbox-styles';
|
|
10
|
-
|
|
11
|
-
// Check if styles are already injected
|
|
12
|
-
if (document.getElementById(STYLE_ID)) {
|
|
13
|
-
stylesInjected = true;
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const style = document.createElement('style');
|
|
18
|
-
style.id = STYLE_ID;
|
|
19
|
-
style.textContent = `
|
|
20
|
-
/* Redacto Consent SDK Checkbox Styles */
|
|
21
|
-
.redacto-checkbox-large {
|
|
22
|
-
appearance: none !important;
|
|
23
|
-
-webkit-appearance: none !important;
|
|
24
|
-
-moz-appearance: none !important;
|
|
25
|
-
height: 20px !important;
|
|
26
|
-
width: 20px !important;
|
|
27
|
-
border: 2px solid #d0d5dd !important;
|
|
28
|
-
border-radius: 5px !important;
|
|
29
|
-
background-color: transparent !important;
|
|
30
|
-
cursor: pointer !important;
|
|
31
|
-
position: relative !important;
|
|
32
|
-
box-sizing: border-box !important;
|
|
33
|
-
margin: 0 !important;
|
|
34
|
-
padding: 4px !important;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.redacto-checkbox-small {
|
|
38
|
-
appearance: none !important;
|
|
39
|
-
-webkit-appearance: none !important;
|
|
40
|
-
-moz-appearance: none !important;
|
|
41
|
-
height: 16px !important;
|
|
42
|
-
width: 16px !important;
|
|
43
|
-
border: 2px solid #d0d5dd !important;
|
|
44
|
-
border-radius: 5px !important;
|
|
45
|
-
background-color: transparent !important;
|
|
46
|
-
cursor: pointer !important;
|
|
47
|
-
position: relative !important;
|
|
48
|
-
box-sizing: border-box !important;
|
|
49
|
-
margin: 0 !important;
|
|
50
|
-
padding: 4px !important;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.redacto-checkbox-large:checked {
|
|
54
|
-
background-color: #4f87ff !important;
|
|
55
|
-
border-color: #4f87ff !important;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.redacto-checkbox-small:checked {
|
|
59
|
-
background-color: #4f87ff !important;
|
|
60
|
-
border-color: #4f87ff !important;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.redacto-checkbox-large:checked::after {
|
|
64
|
-
content: '' !important;
|
|
65
|
-
position: absolute !important;
|
|
66
|
-
left: 50% !important;
|
|
67
|
-
top: 50% !important;
|
|
68
|
-
transform: translate(-50%, -50%) rotate(45deg) !important;
|
|
69
|
-
width: 4px !important;
|
|
70
|
-
height: 8px !important;
|
|
71
|
-
border: solid white !important;
|
|
72
|
-
border-width: 0 2px 2px 0 !important;
|
|
73
|
-
box-sizing: border-box !important;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.redacto-checkbox-small:checked::after {
|
|
77
|
-
content: '' !important;
|
|
78
|
-
position: absolute !important;
|
|
79
|
-
left: 50% !important;
|
|
80
|
-
top: 50% !important;
|
|
81
|
-
transform: translate(-50%, -50%) rotate(45deg) !important;
|
|
82
|
-
width: 3px !important;
|
|
83
|
-
height: 6px !important;
|
|
84
|
-
border: solid white !important;
|
|
85
|
-
border-width: 0 1.5px 1.5px 0 !important;
|
|
86
|
-
box-sizing: border-box !important;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.redacto-checkbox-large:focus {
|
|
90
|
-
outline: 2px solid #4f87ff !important;
|
|
91
|
-
outline-offset: 2px !important;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.redacto-checkbox-small:focus {
|
|
95
|
-
outline: 2px solid #4f87ff !important;
|
|
96
|
-
outline-offset: 2px !important;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/* TTS Highlight Styles - Visible highlighting without layout shift */
|
|
100
|
-
.redacto-tts-highlight {
|
|
101
|
-
position: relative !important;
|
|
102
|
-
transition: background-color 0.3s ease, outline 0.3s ease !important;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/* Block-level elements - headings */
|
|
106
|
-
h2.redacto-tts-highlight,
|
|
107
|
-
h3.redacto-tts-highlight {
|
|
108
|
-
background-color: #FFF9C4 !important;
|
|
109
|
-
border-radius: 3px !important;
|
|
110
|
-
padding: 2px 4px !important;
|
|
111
|
-
margin: -2px -4px !important;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* Inline elements - spans, links */
|
|
115
|
-
span.redacto-tts-highlight,
|
|
116
|
-
a.redacto-tts-highlight {
|
|
117
|
-
background-color: #FFF9C4 !important;
|
|
118
|
-
border-radius: 3px !important;
|
|
119
|
-
padding: 2px 4px !important;
|
|
120
|
-
margin: -2px -4px !important;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/* Paragraphs - handle carefully to avoid layout shift */
|
|
124
|
-
p.redacto-tts-highlight {
|
|
125
|
-
background-color: #FFF9C4 !important;
|
|
126
|
-
border-radius: 3px !important;
|
|
127
|
-
padding: 2px 4px !important;
|
|
128
|
-
margin: -2px -4px !important;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/* Buttons - use outline to keep button styles intact */
|
|
132
|
-
button.redacto-tts-highlight {
|
|
133
|
-
outline: 3px solid #FFF9C4 !important;
|
|
134
|
-
outline-offset: 2px !important;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/* Spinner animation for verification screens */
|
|
138
|
-
@keyframes spin {
|
|
139
|
-
from { transform: rotate(0deg); }
|
|
140
|
-
to { transform: rotate(360deg); }
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/* DigiLocker callback retry button hover */
|
|
144
|
-
.redacto-dl-retry-btn:hover {
|
|
145
|
-
background-color: #2563eb !important;
|
|
146
|
-
}
|
|
147
|
-
`;
|
|
148
|
-
|
|
149
|
-
document.head.appendChild(style);
|
|
150
|
-
stylesInjected = true;
|
|
151
|
-
};
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Maps English language names to "Native script (English)" display labels.
|
|
3
|
-
* English itself is kept as-is; all others show the native script first.
|
|
4
|
-
*/
|
|
5
|
-
export const LANGUAGE_NATIVE_LABELS: Record<string, string> = {
|
|
6
|
-
English: "English",
|
|
7
|
-
Assamese: "অসমীয়া (Assamese)",
|
|
8
|
-
Bengali: "বাংলা (Bengali)",
|
|
9
|
-
Bodo: "बड़ो (Bodo)",
|
|
10
|
-
Dogri: "डोगरी (Dogri)",
|
|
11
|
-
Gujarati: "ગુજરાતી (Gujarati)",
|
|
12
|
-
Hindi: "हिन्दी (Hindi)",
|
|
13
|
-
Kannada: "ಕನ್ನಡ (Kannada)",
|
|
14
|
-
Kashmiri: "كٲشُر (Kashmiri)",
|
|
15
|
-
"Goan Konkani": "कोंकणी (Goan Konkani)",
|
|
16
|
-
Maithili: "मैथिली (Maithili)",
|
|
17
|
-
Malayalam: "മലയാളം (Malayalam)",
|
|
18
|
-
Manipuri: "ꯃꯩꯇꯩꯂꯣꯟ (Manipuri)",
|
|
19
|
-
Marathi: "मराठी (Marathi)",
|
|
20
|
-
Nepali: "नेपाली (Nepali)",
|
|
21
|
-
Odia: "ଓଡ଼ିଆ (Odia)",
|
|
22
|
-
Punjabi: "ਪੰਜਾਬੀ (Punjabi)",
|
|
23
|
-
Sanskrit: "संस्कृतम् (Sanskrit)",
|
|
24
|
-
Santali: "ᱥᱟᱱᱛᱟᱲᱤ (Santali)",
|
|
25
|
-
Sindhi: "سنڌي (Sindhi)",
|
|
26
|
-
Tamil: "தமிழ் (Tamil)",
|
|
27
|
-
Telugu: "తెలుగు (Telugu)",
|
|
28
|
-
Urdu: "اردو (Urdu)",
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/** Returns the "Native (English)" display label for a language name, falling back to the name itself. */
|
|
32
|
-
export const toNativeLabel = (name: string): string =>
|
|
33
|
-
LANGUAGE_NATIVE_LABELS[name] ?? name;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Maps display language names (as used in supported_languages_and_translations
|
|
37
|
-
* keys and the language dropdown) to BCP-47 codes for the submit-consent payload.
|
|
38
|
-
*
|
|
39
|
-
* Covers English + the 22 languages in the 8th Schedule of the Indian Constitution
|
|
40
|
-
* (DPDP Act 2023, Sections 5 & 6).
|
|
41
|
-
*/
|
|
42
|
-
const LANGUAGE_NAME_TO_BCP47: Record<string, string> = {
|
|
43
|
-
English: "en",
|
|
44
|
-
Assamese: "as",
|
|
45
|
-
Bengali: "bn",
|
|
46
|
-
Bodo: "brx",
|
|
47
|
-
Dogri: "doi",
|
|
48
|
-
Gujarati: "gu",
|
|
49
|
-
Hindi: "hi",
|
|
50
|
-
Kannada: "kn",
|
|
51
|
-
Kashmiri: "ks",
|
|
52
|
-
"Goan Konkani": "gom",
|
|
53
|
-
Maithili: "mai",
|
|
54
|
-
Malayalam: "ml",
|
|
55
|
-
Manipuri: "mni-Mtei",
|
|
56
|
-
Marathi: "mr",
|
|
57
|
-
Nepali: "ne",
|
|
58
|
-
Odia: "or",
|
|
59
|
-
Punjabi: "pa",
|
|
60
|
-
Sanskrit: "sa",
|
|
61
|
-
Santali: "sat",
|
|
62
|
-
Sindhi: "sd",
|
|
63
|
-
Tamil: "ta",
|
|
64
|
-
Telugu: "te",
|
|
65
|
-
Urdu: "ur",
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
const KNOWN_BCP47_CODES = new Set(Object.values(LANGUAGE_NAME_TO_BCP47));
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Convert a language display name or code to a BCP-47 code.
|
|
72
|
-
* Handles these cases:
|
|
73
|
-
* 1. Display name ("Punjabi") → BCP-47 ("pa")
|
|
74
|
-
* 2. Already a BCP-47 tag, including region/script subtags ("pa", "en-US", "zh-Hans") → returned as-is
|
|
75
|
-
* 3. Unknown value → falls back to "en"
|
|
76
|
-
*/
|
|
77
|
-
export const toBcp47Code = (language: string): string => {
|
|
78
|
-
if (LANGUAGE_NAME_TO_BCP47[language]) {
|
|
79
|
-
return LANGUAGE_NAME_TO_BCP47[language];
|
|
80
|
-
}
|
|
81
|
-
if (KNOWN_BCP47_CODES.has(language)) {
|
|
82
|
-
return language;
|
|
83
|
-
}
|
|
84
|
-
const lower = language.toLowerCase();
|
|
85
|
-
for (const [name, code] of Object.entries(LANGUAGE_NAME_TO_BCP47)) {
|
|
86
|
-
if (name.toLowerCase() === lower) {
|
|
87
|
-
return code;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
// Pass through well-formed BCP-47 tags with subtags (e.g. en-US, pa-IN, zh-Hans).
|
|
91
|
-
if (/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/.test(language)) {
|
|
92
|
-
return language;
|
|
93
|
-
}
|
|
94
|
-
return "en";
|
|
95
|
-
};
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session Storage Service
|
|
3
|
-
*
|
|
4
|
-
* Handles state persistence for consent flow during DigiLocker redirects.
|
|
5
|
-
* Uses sessionStorage to maintain state across page navigations.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { PersistedConsentState } from "../api/types";
|
|
9
|
-
|
|
10
|
-
const STORAGE_KEY = "redacto_consent_sdk_state";
|
|
11
|
-
const STATE_EXPIRY_MS = 30 * 60 * 1000; // 30 minutes
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Check if code is running in browser environment
|
|
15
|
-
*/
|
|
16
|
-
const isBrowser = (): boolean => {
|
|
17
|
-
return typeof window !== "undefined" && typeof window.sessionStorage !== "undefined";
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Save consent flow state to sessionStorage
|
|
22
|
-
*/
|
|
23
|
-
export const saveConsentState = (state: PersistedConsentState): void => {
|
|
24
|
-
if (!isBrowser()) {
|
|
25
|
-
console.warn("SessionStorage not available - state not persisted");
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
try {
|
|
30
|
-
const stateWithTimestamp = {
|
|
31
|
-
...state,
|
|
32
|
-
timestamp: new Date().toISOString(),
|
|
33
|
-
};
|
|
34
|
-
sessionStorage.setItem(STORAGE_KEY, JSON.stringify(stateWithTimestamp));
|
|
35
|
-
} catch (error) {
|
|
36
|
-
console.error("Failed to save consent state:", error);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Retrieve consent flow state from sessionStorage
|
|
42
|
-
* Returns null if state doesn't exist or is expired
|
|
43
|
-
*/
|
|
44
|
-
export const getConsentState = (): PersistedConsentState | null => {
|
|
45
|
-
if (!isBrowser()) {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
const savedState = sessionStorage.getItem(STORAGE_KEY);
|
|
51
|
-
if (!savedState) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const parsed: PersistedConsentState = JSON.parse(savedState);
|
|
56
|
-
|
|
57
|
-
// Check if state is expired
|
|
58
|
-
const stateAge = Date.now() - new Date(parsed.timestamp).getTime();
|
|
59
|
-
if (stateAge > STATE_EXPIRY_MS) {
|
|
60
|
-
clearConsentState();
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return parsed;
|
|
65
|
-
} catch (error) {
|
|
66
|
-
console.error("Failed to get consent state:", error);
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Clear consent flow state from sessionStorage
|
|
73
|
-
*/
|
|
74
|
-
export const clearConsentState = (): void => {
|
|
75
|
-
if (!isBrowser()) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
try {
|
|
80
|
-
sessionStorage.removeItem(STORAGE_KEY);
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error("Failed to clear consent state:", error);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Update specific fields in the persisted consent state
|
|
88
|
-
*/
|
|
89
|
-
export const updateConsentState = (updates: Partial<PersistedConsentState>): void => {
|
|
90
|
-
const currentState = getConsentState();
|
|
91
|
-
if (currentState) {
|
|
92
|
-
saveConsentState({
|
|
93
|
-
...currentState,
|
|
94
|
-
...updates,
|
|
95
|
-
timestamp: new Date().toISOString(),
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Check if there's a pending verification to resume
|
|
102
|
-
*/
|
|
103
|
-
export const hasPendingVerification = (): boolean => {
|
|
104
|
-
const state = getConsentState();
|
|
105
|
-
return state !== null && state.flowState === "digilocker-pending";
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Get verification result from persisted state
|
|
110
|
-
*/
|
|
111
|
-
export const getVerificationResult = (): "pending" | "verified" | "failed" | "in_progress" | "expired" | null => {
|
|
112
|
-
const state = getConsentState();
|
|
113
|
-
return state?.verificationResult ?? null;
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Get verification reference from persisted state (after successful verification)
|
|
118
|
-
*/
|
|
119
|
-
export const getVerificationReference = (): string | null => {
|
|
120
|
-
const state = getConsentState();
|
|
121
|
-
return state?.verificationReference ?? null;
|
|
122
|
-
};
|