@redacto.io/consent-sdk-react 3.3.0 → 3.4.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @redacto.io/consent-sdk-react
2
2
 
3
+ ## 3.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: added notce 2.0
8
+
3
9
  ## 3.3.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -226,6 +226,8 @@ A modal popup component for consent collection. Displays a full-screen modal wit
226
226
  | `settings` | `object` | No | - | Custom styling options |
227
227
  | `applicationId` | `string` | No | - | Application-specific UUID |
228
228
  | `validateAgainst` | `"all" \| "required"` | No | `"all"` | Consent validation mode (see below) |
229
+ | `includeFullyConsentedData` | `boolean` | No | `false` | When true, API returns 200 with pre-selected purposes instead of 409 when user has already consented |
230
+ | `reviewModeButtonText` | `string` | No | `"Continue"` | Button text when in fully consented review mode (magic link flow) |
229
231
  | `onAccept` | `() => void` | Yes | - | Callback when consent is accepted |
230
232
  | `onDecline` | `() => void` | Yes | - | Callback when consent is declined |
231
233
  | `onError` | `(error: Error) => void` | No | - | Error handler callback |
@@ -244,6 +246,15 @@ The `validateAgainst` prop controls how the backend validates consent status whe
244
246
  - Use `"required"` for reconsent scenarios or when you only need to verify mandatory consent requirements
245
247
  - The mode affects API caching behavior: `"all"` responses are cached for performance, while `"required"` responses bypass cache to ensure up-to-date validation
246
248
 
249
+ **`includeFullyConsentedData` Parameter:**
250
+
251
+ When users arrive via a magic link and have already consented, the API normally returns 409 and the SDK bypasses to "Already Consented". Set `includeFullyConsentedData={true}` to instead show a **read-only review** of what they consented to, then a single Continue button.
252
+
253
+ - **Purposes**: Green tick for each selected purpose
254
+ - **Data elements**: Green tick = consented, empty circle = not consented (all read-only, no editing)
255
+ - **Partial selection**: If a purpose is selected but some data elements within it are not, the review correctly shows green ticks for consented elements and empty circles for non-consented ones
256
+ - Use `reviewModeButtonText` to customize the button label (default: "Continue")
257
+
247
258
  ### `RedactoNoticeConsentInline`
248
259
 
249
260
  An inline component for embedding consent directly in forms. The component can load consent content without tokens and automatically submits consent when tokens are provided and all required conditions are met.
package/dist/index.d.mts CHANGED
@@ -40,6 +40,8 @@ type Props$1 = Readonly<{
40
40
  onError?: (error: Error) => void;
41
41
  applicationId?: string;
42
42
  validateAgainst?: "all" | "required";
43
+ includeFullyConsentedData?: boolean;
44
+ reviewModeButtonText?: string;
43
45
  }>;
44
46
 
45
47
  /**
@@ -49,7 +51,7 @@ type Props$1 = Readonly<{
49
51
  * to view and manage their consent preferences. Supports both initial consent
50
52
  * collection and reconsent flows.
51
53
  */
52
- declare const RedactoNoticeConsent: ({ noticeId, accessToken, refreshToken, baseUrl, language, blockUI, onAccept, onDecline, onError, settings, applicationId, validateAgainst, }: Props$1) => react_jsx_runtime.JSX.Element;
54
+ declare const RedactoNoticeConsent: ({ noticeId, accessToken, refreshToken, baseUrl, language, blockUI, onAccept, onDecline, onError, settings, applicationId, validateAgainst, includeFullyConsentedData, reviewModeButtonText, }: Props$1) => react_jsx_runtime.JSX.Element;
53
55
 
54
56
  type Settings = {
55
57
  button: {
package/dist/index.d.ts CHANGED
@@ -40,6 +40,8 @@ type Props$1 = Readonly<{
40
40
  onError?: (error: Error) => void;
41
41
  applicationId?: string;
42
42
  validateAgainst?: "all" | "required";
43
+ includeFullyConsentedData?: boolean;
44
+ reviewModeButtonText?: string;
43
45
  }>;
44
46
 
45
47
  /**
@@ -49,7 +51,7 @@ type Props$1 = Readonly<{
49
51
  * to view and manage their consent preferences. Supports both initial consent
50
52
  * collection and reconsent flows.
51
53
  */
52
- declare const RedactoNoticeConsent: ({ noticeId, accessToken, refreshToken, baseUrl, language, blockUI, onAccept, onDecline, onError, settings, applicationId, validateAgainst, }: Props$1) => react_jsx_runtime.JSX.Element;
54
+ declare const RedactoNoticeConsent: ({ noticeId, accessToken, refreshToken, baseUrl, language, blockUI, onAccept, onDecline, onError, settings, applicationId, validateAgainst, includeFullyConsentedData, reviewModeButtonText, }: Props$1) => react_jsx_runtime.JSX.Element;
53
55
 
54
56
  type Settings = {
55
57
  button: {
package/dist/index.js CHANGED
@@ -79,6 +79,7 @@ var fetchConsentContent = async ({
79
79
  language = "en",
80
80
  specific_uuid,
81
81
  validate_against = "all",
82
+ include_fully_consented_data = false,
82
83
  signal
83
84
  // AbortSignal for request cancellation
84
85
  }) => {
@@ -95,7 +96,7 @@ var fetchConsentContent = async ({
95
96
  throw new Error("Invalid token: missing organization or workspace UUID");
96
97
  }
97
98
  const apiBaseUrl = baseUrl || BASE_URL;
98
- const cacheKey = `${accessToken}-${noticeId}-${validate_against}-${language}-${specific_uuid || ""}`;
99
+ const cacheKey = `${accessToken}-${noticeId}-${validate_against}-${language}-${specific_uuid || ""}-${include_fully_consented_data}`;
99
100
  if (validate_against === "all" && !specific_uuid) {
100
101
  const cachedData = getCachedData(cacheKey);
101
102
  if (cachedData) {
@@ -109,6 +110,9 @@ var fetchConsentContent = async ({
109
110
  url.searchParams.append("specific_uuid", specific_uuid);
110
111
  }
111
112
  url.searchParams.append("validate_against", validate_against);
113
+ if (include_fully_consented_data) {
114
+ url.searchParams.append("include_fully_consented_data", "true");
115
+ }
112
116
  const response = await fetch(url.toString(), {
113
117
  method: "GET",
114
118
  headers: {
@@ -393,6 +397,18 @@ var fetchTTSAudioUrls = async ({
393
397
  // src/RedactoNoticeConsent/assets/redacto-logo.png
394
398
  var redacto_logo_default = "data:image/png;base64,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";
395
399
 
400
+ // src/RedactoNoticeConsent/constants.ts
401
+ var DPO_AUDIO_ELEMENT_MAP = [
402
+ { audioKey: "grievance_text_audio_url", elementId: "dpo-grievance-text" },
403
+ { audioKey: "grievance_anchor_text_audio_url", elementId: "dpo-grievance-link" },
404
+ { audioKey: "grievance_email_connector_text_audio_url", elementId: "dpo-grievance-email-connector" },
405
+ { audioKey: "grievance_email_audio_url", elementId: "dpo-grievance-email" },
406
+ { audioKey: "dp_board_text_audio_url", elementId: "dpo-dp-board-text" },
407
+ { audioKey: "dp_board_anchor_text_audio_url", elementId: "dpo-dp-board-link" },
408
+ { audioKey: "dpo_text_audio_url", elementId: "dpo-dpo-text" },
409
+ { audioKey: "dpo_anchor_text_audio_url", elementId: "dpo-dpo-link" }
410
+ ];
411
+
396
412
  // src/RedactoNoticeConsent/injectStyles.ts
397
413
  var stylesInjected = false;
398
414
  var injectCheckboxStyles = () => {
@@ -582,8 +598,7 @@ var styles = {
582
598
  justifyContent: "space-between",
583
599
  alignItems: "center",
584
600
  paddingBottom: "15px",
585
- borderBottom: "1px solid #e5e7eb",
586
- boxShadow: "0 1px 2px rgba(0, 0, 0, 0.03)",
601
+ borderBottom: "none",
587
602
  backgroundColor: "#ffffff",
588
603
  margin: 0,
589
604
  boxSizing: "border-box",
@@ -637,7 +652,7 @@ var styles = {
637
652
  backgroundColor: "#ffffff"
638
653
  },
639
654
  middleSection: {
640
- margin: "20px 0px",
655
+ margin: "0px",
641
656
  display: "flex",
642
657
  flexDirection: "column",
643
658
  gap: "12px",
@@ -652,7 +667,6 @@ var styles = {
652
667
  fontSize: "16px",
653
668
  fontWeight: 400,
654
669
  lineHeight: "150%",
655
- letterSpacing: "0.2px",
656
670
  color: "#344054",
657
671
  margin: 0,
658
672
  padding: 0,
@@ -792,8 +806,7 @@ var styles = {
792
806
  justifyContent: "space-between",
793
807
  gap: "29px",
794
808
  paddingTop: "15px",
795
- borderTop: "1px solid #e5e7eb",
796
- boxShadow: "0 -1px 2px rgba(0, 0, 0, 0.03)",
809
+ borderTop: "none",
797
810
  backgroundColor: "#ffffff",
798
811
  margin: 0,
799
812
  boxSizing: "border-box"
@@ -1141,9 +1154,8 @@ var PurposeItem = ({
1141
1154
  ),
1142
1155
  isAlreadyConsented && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (() => {
1143
1156
  const combinedId = `${purpose.uuid}-${dataElement.uuid}`;
1144
- const isCurrentlySelected = selectedDataElements[combinedId] || false;
1145
1157
  const wasOriginallySelected = initialDataElementSelections[combinedId] || false;
1146
- if (isCurrentlySelected && wasOriginallySelected) {
1158
+ if (wasOriginallySelected) {
1147
1159
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1148
1160
  "div",
1149
1161
  {
@@ -1156,7 +1168,7 @@ var PurposeItem = ({
1156
1168
  borderRadius: "50%",
1157
1169
  backgroundColor: "#10B981"
1158
1170
  },
1159
- "aria-label": `Already consented to ${getTranslatedText(
1171
+ "aria-label": `Consented to ${getTranslatedText(
1160
1172
  `data_elements.name`,
1161
1173
  dataElement.name,
1162
1174
  dataElement.uuid
@@ -1186,17 +1198,23 @@ var PurposeItem = ({
1186
1198
  );
1187
1199
  } else {
1188
1200
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1189
- "input",
1201
+ "div",
1190
1202
  {
1191
- className: "redacto-checkbox-small",
1192
- type: "checkbox",
1193
- checked: isCurrentlySelected,
1194
- onChange: () => onDataElementToggle(dataElement.uuid, purpose.uuid),
1195
- "aria-label": `Select ${getTranslatedText(
1203
+ style: {
1204
+ display: "flex",
1205
+ alignItems: "center",
1206
+ justifyContent: "center",
1207
+ width: "16px",
1208
+ height: "16px",
1209
+ borderRadius: "50%",
1210
+ border: "2px solid #d0d5dd",
1211
+ backgroundColor: "transparent"
1212
+ },
1213
+ "aria-label": `Not consented to ${getTranslatedText(
1196
1214
  `data_elements.name`,
1197
1215
  dataElement.name,
1198
1216
  dataElement.uuid
1199
- )}${dataElement.required ? " (required)" : ""}`
1217
+ )}`
1200
1218
  }
1201
1219
  );
1202
1220
  }
@@ -1606,7 +1624,9 @@ var RedactoNoticeConsent = ({
1606
1624
  onError,
1607
1625
  settings,
1608
1626
  applicationId,
1609
- validateAgainst = "all"
1627
+ validateAgainst = "all",
1628
+ includeFullyConsentedData = false,
1629
+ reviewModeButtonText = "Continue"
1610
1630
  }) => {
1611
1631
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w;
1612
1632
  const propValidationError = (0, import_react2.useMemo)(() => {
@@ -1648,6 +1668,7 @@ var RedactoNoticeConsent = ({
1648
1668
  const [initialDataElementSelections, setInitialDataElementSelections] = (0, import_react2.useState)({});
1649
1669
  const [collapsedPurposes, setCollapsedPurposes] = (0, import_react2.useState)({});
1650
1670
  const [hasAlreadyConsented, setHasAlreadyConsented] = (0, import_react2.useState)(false);
1671
+ const [isFullyConsentedReviewMode, setIsFullyConsentedReviewMode] = (0, import_react2.useState)(false);
1651
1672
  const [isLanguageDropdownOpen, setIsLanguageDropdownOpen] = (0, import_react2.useState)(false);
1652
1673
  const [selectedLanguage, setSelectedLanguage] = (0, import_react2.useState)(language);
1653
1674
  const [errorMessage, setErrorMessage] = (0, import_react2.useState)(null);
@@ -1809,10 +1830,15 @@ var RedactoNoticeConsent = ({
1809
1830
  onAccept == null ? void 0 : onAccept();
1810
1831
  }
1811
1832
  }, [hasAlreadyConsented, onAccept]);
1833
+ const isDefaultLanguage = (lang) => {
1834
+ if (!content) return true;
1835
+ if (lang === "English" || lang === "en" || lang === "EN") return true;
1836
+ return false;
1837
+ };
1812
1838
  const getTranslatedText = (key, defaultText, itemId) => {
1813
1839
  var _a2, _b2;
1814
1840
  if (!content) return defaultText;
1815
- if (selectedLanguage === "English" || selectedLanguage === "en") {
1841
+ if (isDefaultLanguage(selectedLanguage)) {
1816
1842
  if (key === "privacy_policy_anchor_text" && content.privacy_policy_anchor_text) {
1817
1843
  return content.privacy_policy_anchor_text;
1818
1844
  }
@@ -1839,18 +1865,38 @@ var RedactoNoticeConsent = ({
1839
1865
  }
1840
1866
  if (itemId) {
1841
1867
  if (key === "purposes.name" || key === "purposes.description") {
1842
- return ((_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId]) || defaultText;
1868
+ const purposeData = (_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId];
1869
+ if (purposeData) {
1870
+ if (typeof purposeData === "string") {
1871
+ return key === "purposes.name" ? purposeData : defaultText;
1872
+ }
1873
+ return key === "purposes.name" ? purposeData.name || defaultText : purposeData.description || defaultText;
1874
+ }
1875
+ return defaultText;
1843
1876
  }
1844
1877
  if (key.startsWith("data_elements.")) {
1845
1878
  return ((_b2 = translationMap.data_elements) == null ? void 0 : _b2[itemId]) || defaultText;
1846
1879
  }
1847
1880
  }
1848
1881
  const value = translationMap[key];
1849
- if (typeof value === "string") {
1882
+ if (typeof value === "string" && value) {
1850
1883
  return value;
1851
1884
  }
1852
1885
  return defaultText;
1853
1886
  };
1887
+ const getTranslatedDpoText = (key, defaultText) => {
1888
+ if (!(content == null ? void 0 : content.dpo_info)) return defaultText;
1889
+ if (isDefaultLanguage(selectedLanguage)) {
1890
+ return content.dpo_info[key] || defaultText;
1891
+ }
1892
+ if (!content.supported_languages_and_translations) return defaultText;
1893
+ const translationMap = content.supported_languages_and_translations[selectedLanguage];
1894
+ if (translationMap == null ? void 0 : translationMap.dpo_info) {
1895
+ const translated = translationMap.dpo_info[key];
1896
+ if (translated) return translated;
1897
+ }
1898
+ return content.dpo_info[key] || defaultText;
1899
+ };
1854
1900
  const fetchNotice = async () => {
1855
1901
  var _a2;
1856
1902
  if (isRequestInProgressRef.current) {
@@ -1874,6 +1920,7 @@ var RedactoNoticeConsent = ({
1874
1920
  language,
1875
1921
  specific_uuid: applicationId,
1876
1922
  validate_against: validateAgainst,
1923
+ include_fully_consented_data: includeFullyConsentedData,
1877
1924
  signal: (_a2 = abortControllerRef.current) == null ? void 0 : _a2.signal
1878
1925
  });
1879
1926
  const activeConfig = consentContentData.detail.active_config;
@@ -1911,7 +1958,7 @@ var RedactoNoticeConsent = ({
1911
1958
  setCategorizedPurposes(newCategorizedPurposes);
1912
1959
  const initialPurposeState = activeConfig.purposes.reduce(
1913
1960
  (acc, purpose) => {
1914
- if (isReconsentRequired && (purposeSelections == null ? void 0 : purposeSelections[purpose.uuid])) {
1961
+ if (purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) {
1915
1962
  acc[purpose.uuid] = purposeSelections[purpose.uuid].selected;
1916
1963
  } else {
1917
1964
  acc[purpose.uuid] = false;
@@ -1926,7 +1973,7 @@ var RedactoNoticeConsent = ({
1926
1973
  purpose.data_elements.forEach((element) => {
1927
1974
  var _a3, _b2;
1928
1975
  const combinedId = `${purpose.uuid}-${element.uuid}`;
1929
- if (isReconsentRequired && ((_b2 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid])) {
1976
+ if ((_b2 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
1930
1977
  acc[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
1931
1978
  } else {
1932
1979
  acc[combinedId] = false;
@@ -1938,6 +1985,7 @@ var RedactoNoticeConsent = ({
1938
1985
  );
1939
1986
  setSelectedDataElements(initialDataElementState);
1940
1987
  if (isReconsentRequired && newCategorizedPurposes) {
1988
+ setIsFullyConsentedReviewMode(false);
1941
1989
  const initialSelections = {};
1942
1990
  newCategorizedPurposes.alreadyConsented.forEach((purpose) => {
1943
1991
  purpose.data_elements.forEach((element) => {
@@ -1951,7 +1999,36 @@ var RedactoNoticeConsent = ({
1951
1999
  });
1952
2000
  });
1953
2001
  setInitialDataElementSelections(initialSelections);
2002
+ } else if (includeFullyConsentedData && purposeSelections) {
2003
+ const allPurposesSelected = activeConfig.purposes.length > 0 && activeConfig.purposes.every(
2004
+ (p) => {
2005
+ var _a3;
2006
+ return ((_a3 = purposeSelections[p.uuid]) == null ? void 0 : _a3.selected) === true;
2007
+ }
2008
+ );
2009
+ setIsFullyConsentedReviewMode(allPurposesSelected);
2010
+ if (allPurposesSelected) {
2011
+ const initialSelections = {};
2012
+ activeConfig.purposes.forEach(
2013
+ (purpose) => {
2014
+ purpose.data_elements.forEach((element) => {
2015
+ var _a3, _b2;
2016
+ const combinedId = `${purpose.uuid}-${element.uuid}`;
2017
+ if ((_b2 = (_a3 = purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
2018
+ initialSelections[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
2019
+ } else {
2020
+ initialSelections[combinedId] = false;
2021
+ }
2022
+ });
2023
+ }
2024
+ );
2025
+ setInitialDataElementSelections(initialSelections);
2026
+ } else {
2027
+ setIsFullyConsentedReviewMode(false);
2028
+ setInitialDataElementSelections({});
2029
+ }
1954
2030
  } else {
2031
+ setIsFullyConsentedReviewMode(false);
1955
2032
  setInitialDataElementSelections({});
1956
2033
  }
1957
2034
  if (consentContentData.detail.is_minor) {
@@ -1983,7 +2060,8 @@ var RedactoNoticeConsent = ({
1983
2060
  refreshToken,
1984
2061
  language,
1985
2062
  applicationId,
1986
- validateAgainst
2063
+ validateAgainst,
2064
+ includeFullyConsentedData
1987
2065
  // Removed onError and isRefreshingToken from dependencies to prevent duplicate API calls
1988
2066
  // onError is only called on errors, not needed for initial data fetching
1989
2067
  ]);
@@ -2263,6 +2341,20 @@ var RedactoNoticeConsent = ({
2263
2341
  });
2264
2342
  }
2265
2343
  });
2344
+ if (content.additional_text && ttsAudioUrls.additional_text_audio_url) {
2345
+ sequence.push(ttsAudioUrls.additional_text_audio_url);
2346
+ }
2347
+ if (content.privacy_center_url && ttsAudioUrls.privacy_center_anchor_text_audio_url) {
2348
+ sequence.push(ttsAudioUrls.privacy_center_anchor_text_audio_url);
2349
+ }
2350
+ if (content.dpo_info && ttsAudioUrls.dpo_info_audio) {
2351
+ const dpoAudio = ttsAudioUrls.dpo_info_audio;
2352
+ DPO_AUDIO_ELEMENT_MAP.forEach(({ audioKey }) => {
2353
+ if (dpoAudio[audioKey]) {
2354
+ sequence.push(dpoAudio[audioKey]);
2355
+ }
2356
+ });
2357
+ }
2266
2358
  if (ttsAudioUrls.confirm_button_text_audio_url) {
2267
2359
  sequence.push(ttsAudioUrls.confirm_button_text_audio_url);
2268
2360
  }
@@ -2310,6 +2402,20 @@ var RedactoNoticeConsent = ({
2310
2402
  });
2311
2403
  }
2312
2404
  });
2405
+ if (content.additional_text && ttsAudioUrls.additional_text_audio_url) {
2406
+ elementIds.push("additional-text");
2407
+ }
2408
+ if (content.privacy_center_url && ttsAudioUrls.privacy_center_anchor_text_audio_url) {
2409
+ elementIds.push("privacy-center-link");
2410
+ }
2411
+ if (content.dpo_info && ttsAudioUrls.dpo_info_audio) {
2412
+ const dpoAudio = ttsAudioUrls.dpo_info_audio;
2413
+ DPO_AUDIO_ELEMENT_MAP.forEach(({ audioKey, elementId }) => {
2414
+ if (dpoAudio[audioKey]) {
2415
+ elementIds.push(elementId);
2416
+ }
2417
+ });
2418
+ }
2313
2419
  if (ttsAudioUrls.confirm_button_text_audio_url) {
2314
2420
  elementIds.push("confirm-button-text");
2315
2421
  }
@@ -3126,16 +3232,135 @@ var RedactoNoticeConsent = ({
3126
3232
  onPurposeCollapse: togglePurposeCollapse,
3127
3233
  onDataElementToggle: handleDataElementCheckboxChange,
3128
3234
  getTranslatedText,
3129
- isAlreadyConsented: false,
3130
- selectedLanguage
3235
+ isAlreadyConsented: isFullyConsentedReviewMode,
3236
+ selectedLanguage,
3237
+ initialDataElementSelections
3131
3238
  },
3132
3239
  `${purpose.uuid}-${selectedLanguage}`
3133
3240
  )) })
3241
+ ),
3242
+ ((content == null ? void 0 : content.privacy_center_url) || (content == null ? void 0 : content.dpo_info)) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3243
+ "div",
3244
+ {
3245
+ style: {
3246
+ ...styles.privacyText,
3247
+ ...responsiveStyles.privacyText,
3248
+ ...componentTextStyle,
3249
+ fontSize: isMobile ? "13px" : "14px",
3250
+ lineHeight: "1.4",
3251
+ borderTop: "1px solid rgba(152, 162, 179, 0.3)",
3252
+ paddingTop: "12px",
3253
+ marginTop: "12px"
3254
+ },
3255
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { style: { margin: 0, opacity: 0.6 }, children: [
3256
+ content.privacy_center_url && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
3257
+ content.additional_text && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "additional-text", children: getTranslatedText(
3258
+ "additional_text",
3259
+ content.additional_text
3260
+ ) }),
3261
+ " ",
3262
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3263
+ "a",
3264
+ {
3265
+ id: "privacy-center-link",
3266
+ style: { ...styles.link, ...linkStyle },
3267
+ href: content.privacy_center_url,
3268
+ target: "_blank",
3269
+ rel: "noopener noreferrer",
3270
+ children: getTranslatedText(
3271
+ "privacy_center_anchor_text",
3272
+ content.privacy_center_anchor_text || "Privacy Center"
3273
+ )
3274
+ }
3275
+ ),
3276
+ "."
3277
+ ] }),
3278
+ content.dpo_info && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
3279
+ content.privacy_center_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
3280
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-grievance-text", children: getTranslatedDpoText(
3281
+ "grievance_text",
3282
+ content.dpo_info.grievance_text || ""
3283
+ ) }),
3284
+ " ",
3285
+ content.dpo_info.grievance_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3286
+ "a",
3287
+ {
3288
+ id: "dpo-grievance-link",
3289
+ style: { ...styles.link, ...linkStyle },
3290
+ href: content.dpo_info.grievance_url,
3291
+ target: "_blank",
3292
+ rel: "noopener noreferrer",
3293
+ children: getTranslatedDpoText(
3294
+ "grievance_anchor_text",
3295
+ content.dpo_info.grievance_anchor_text || "click here"
3296
+ )
3297
+ }
3298
+ ),
3299
+ content.dpo_info.grievance_email && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
3300
+ " ",
3301
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-grievance-email-connector", children: getTranslatedDpoText(
3302
+ "grievance_email_connector_text",
3303
+ content.dpo_info.grievance_email_connector_text || "or email to"
3304
+ ) }),
3305
+ " ",
3306
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3307
+ "a",
3308
+ {
3309
+ id: "dpo-grievance-email",
3310
+ style: { ...styles.link, ...linkStyle },
3311
+ href: `mailto:${content.dpo_info.grievance_email}`,
3312
+ children: content.dpo_info.grievance_email
3313
+ }
3314
+ )
3315
+ ] }),
3316
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
3317
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-dp-board-text", children: getTranslatedDpoText(
3318
+ "dp_board_text",
3319
+ content.dpo_info.dp_board_text || ""
3320
+ ) }),
3321
+ " ",
3322
+ content.dpo_info.dp_board_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3323
+ "a",
3324
+ {
3325
+ id: "dpo-dp-board-link",
3326
+ style: { ...styles.link, ...linkStyle },
3327
+ href: content.dpo_info.dp_board_url,
3328
+ target: "_blank",
3329
+ rel: "noopener noreferrer",
3330
+ children: getTranslatedDpoText(
3331
+ "dp_board_anchor_text",
3332
+ content.dpo_info.dp_board_anchor_text || "here"
3333
+ )
3334
+ }
3335
+ ),
3336
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
3337
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-dpo-text", children: getTranslatedDpoText(
3338
+ "dpo_text",
3339
+ content.dpo_info.dpo_text || ""
3340
+ ) }),
3341
+ " ",
3342
+ content.dpo_info.dpo_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3343
+ "a",
3344
+ {
3345
+ id: "dpo-dpo-link",
3346
+ style: { ...styles.link, ...linkStyle },
3347
+ href: content.dpo_info.dpo_url,
3348
+ target: "_blank",
3349
+ rel: "noopener noreferrer",
3350
+ children: getTranslatedDpoText(
3351
+ "dpo_anchor_text",
3352
+ content.dpo_info.dpo_anchor_text || "Click here"
3353
+ )
3354
+ }
3355
+ )
3356
+ ] })
3357
+ ] })
3358
+ }
3134
3359
  )
3135
3360
  ]
3136
3361
  }
3137
3362
  ),
3138
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
3363
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3139
3364
  "div",
3140
3365
  {
3141
3366
  style: {
@@ -3143,7 +3368,22 @@ var RedactoNoticeConsent = ({
3143
3368
  ...responsiveStyles.bottomSection,
3144
3369
  ...sectionStyle
3145
3370
  },
3146
- children: [
3371
+ children: isFullyConsentedReviewMode ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3372
+ "button",
3373
+ {
3374
+ ref: lastFocusableRef,
3375
+ id: "review-mode-continue-button",
3376
+ style: {
3377
+ ...styles.button,
3378
+ ...responsiveStyles.button,
3379
+ ...styles.acceptButton,
3380
+ ...acceptButtonStyle
3381
+ },
3382
+ onClick: () => onAccept == null ? void 0 : onAccept(),
3383
+ "aria-label": reviewModeButtonText,
3384
+ children: reviewModeButtonText
3385
+ }
3386
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
3147
3387
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
3148
3388
  "button",
3149
3389
  {
@@ -3191,7 +3431,7 @@ var RedactoNoticeConsent = ({
3191
3431
  )
3192
3432
  }
3193
3433
  )
3194
- ]
3434
+ ] })
3195
3435
  }
3196
3436
  )
3197
3437
  ] })
@@ -3829,7 +4069,7 @@ var RedactoConsentInlineComponent = ({
3829
4069
  const getTranslatedText = (key, defaultText, itemId) => {
3830
4070
  var _a2, _b;
3831
4071
  if (!content) return defaultText;
3832
- if (selectedLanguage === content.default_language) {
4072
+ if (selectedLanguage === "English" || selectedLanguage === "en" || selectedLanguage === "EN") {
3833
4073
  if (key === "privacy_policy_anchor_text" && content.privacy_policy_anchor_text) {
3834
4074
  return content.privacy_policy_anchor_text;
3835
4075
  }
@@ -3844,14 +4084,21 @@ var RedactoConsentInlineComponent = ({
3844
4084
  }
3845
4085
  if (itemId) {
3846
4086
  if (key === "purposes.name" || key === "purposes.description") {
3847
- return ((_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId]) || defaultText;
4087
+ const purposeData = (_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId];
4088
+ if (purposeData) {
4089
+ if (typeof purposeData === "string") {
4090
+ return key === "purposes.name" ? purposeData : defaultText;
4091
+ }
4092
+ return key === "purposes.name" ? purposeData.name || defaultText : purposeData.description || defaultText;
4093
+ }
4094
+ return defaultText;
3848
4095
  }
3849
4096
  if (key.startsWith("data_elements.")) {
3850
4097
  return ((_b = translationMap.data_elements) == null ? void 0 : _b[itemId]) || defaultText;
3851
4098
  }
3852
4099
  }
3853
4100
  const value = translationMap[key];
3854
- if (typeof value === "string") {
4101
+ if (typeof value === "string" && value) {
3855
4102
  return value;
3856
4103
  }
3857
4104
  return defaultText;