@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.
Files changed (264) hide show
  1. package/NOTICE.md +17 -0
  2. package/README.md +141 -3
  3. package/dist/chunk-FEGTW73Q.mjs +182 -0
  4. package/dist/fonts.d.mts +35 -0
  5. package/dist/fonts.d.ts +35 -0
  6. package/dist/fonts.js +183 -0
  7. package/dist/fonts.mjs +10 -0
  8. package/dist/index.d.mts +12 -1
  9. package/dist/index.d.ts +12 -1
  10. package/dist/index.js +724 -365
  11. package/dist/index.mjs +346 -201
  12. package/dist/montserrat.generated-NBTECYRW.mjs +22 -0
  13. package/dist/privacy-center.d.mts +0 -1
  14. package/dist/privacy-center.d.ts +0 -1
  15. package/dist/privacy-center.js +2 -66
  16. package/dist/privacy-center.mjs +2 -66
  17. package/dist/types-6Aj7faxL.d.mts +57 -0
  18. package/dist/types-6Aj7faxL.d.ts +57 -0
  19. package/package.json +10 -1
  20. package/.turbo/turbo-build.log +0 -22
  21. package/.turbo/turbo-test.log +0 -203
  22. package/.turbo/turbo-verify-pack.log +0 -6
  23. package/CHANGELOG.md +0 -353
  24. package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.test.tsx +0 -934
  25. package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.tsx +0 -2160
  26. package/src/RedactoNoticeAssisted/api/index.ts +0 -275
  27. package/src/RedactoNoticeAssisted/api/types.ts +0 -182
  28. package/src/RedactoNoticeAssisted/assets/redacto-logo.png +0 -0
  29. package/src/RedactoNoticeAssisted/constants.ts +0 -51
  30. package/src/RedactoNoticeAssisted/i18n.ts +0 -1408
  31. package/src/RedactoNoticeAssisted/index.ts +0 -1
  32. package/src/RedactoNoticeAssisted/injectStyles.ts +0 -251
  33. package/src/RedactoNoticeAssisted/styles.ts +0 -730
  34. package/src/RedactoNoticeAssisted/types.ts +0 -26
  35. package/src/RedactoNoticeAssisted/useMediaQuery.ts +0 -36
  36. package/src/RedactoNoticeConsent/RedactoNoticeConsent.test.tsx +0 -1152
  37. package/src/RedactoNoticeConsent/RedactoNoticeConsent.tsx +0 -4308
  38. package/src/RedactoNoticeConsent/api/index.ts +0 -542
  39. package/src/RedactoNoticeConsent/api/sandbox.ts +0 -150
  40. package/src/RedactoNoticeConsent/api/types.ts +0 -515
  41. package/src/RedactoNoticeConsent/assets/redacto-logo.png +0 -0
  42. package/src/RedactoNoticeConsent/components/DigiLockerCallback.tsx +0 -602
  43. package/src/RedactoNoticeConsent/components/index.ts +0 -7
  44. package/src/RedactoNoticeConsent/constants.ts +0 -20
  45. package/src/RedactoNoticeConsent/index.ts +0 -1
  46. package/src/RedactoNoticeConsent/injectStyles.ts +0 -151
  47. package/src/RedactoNoticeConsent/language-codes.ts +0 -95
  48. package/src/RedactoNoticeConsent/services/storage.ts +0 -122
  49. package/src/RedactoNoticeConsent/styles.ts +0 -409
  50. package/src/RedactoNoticeConsent/types.ts +0 -80
  51. package/src/RedactoNoticeConsent/useMediaQuery.ts +0 -36
  52. package/src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.test.tsx +0 -369
  53. package/src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.tsx +0 -687
  54. package/src/RedactoNoticeConsentInline/api/index.ts +0 -106
  55. package/src/RedactoNoticeConsentInline/api/types.ts +0 -183
  56. package/src/RedactoNoticeConsentInline/assets/redacto-logo.png +0 -0
  57. package/src/RedactoNoticeConsentInline/index.ts +0 -1
  58. package/src/RedactoNoticeConsentInline/injectStyles.ts +0 -40
  59. package/src/RedactoNoticeConsentInline/styles.ts +0 -397
  60. package/src/RedactoNoticeConsentInline/types.ts +0 -51
  61. package/src/RedactoNoticeConsentInline/useMediaQuery.ts +0 -36
  62. package/src/RedactoPrivacyCenter/NotificationsPage.tsx +0 -182
  63. package/src/RedactoPrivacyCenter/PrivacyCenterActivityPage.tsx +0 -19
  64. package/src/RedactoPrivacyCenter/PrivacyCenterCaseDetailsPage.tsx +0 -156
  65. package/src/RedactoPrivacyCenter/PrivacyCenterConsentManagerPage.tsx +0 -17
  66. package/src/RedactoPrivacyCenter/PrivacyCenterFormPage.tsx +0 -79
  67. package/src/RedactoPrivacyCenter/PrivacyCenterHomePage.tsx +0 -36
  68. package/src/RedactoPrivacyCenter/PrivacyCenterLayout.tsx +0 -177
  69. package/src/RedactoPrivacyCenter/PrivacyCenterMyReceiptPage.tsx +0 -26
  70. package/src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx +0 -93
  71. package/src/RedactoPrivacyCenter/api/actions.ts +0 -695
  72. package/src/RedactoPrivacyCenter/api/client.ts +0 -1003
  73. package/src/RedactoPrivacyCenter/api/config.ts +0 -33
  74. package/src/RedactoPrivacyCenter/api/fetcher.ts +0 -275
  75. package/src/RedactoPrivacyCenter/api/orgBranding.ts +0 -16
  76. package/src/RedactoPrivacyCenter/api/upload.ts +0 -93
  77. package/src/RedactoPrivacyCenter/assets/character.svg +0 -31
  78. package/src/RedactoPrivacyCenter/assets/fileAttach.svg +0 -9
  79. package/src/RedactoPrivacyCenter/assets/greenTick.svg +0 -4
  80. package/src/RedactoPrivacyCenter/assets/mail.svg +0 -3
  81. package/src/RedactoPrivacyCenter/assets/poweredByRedacto.svg +0 -9
  82. package/src/RedactoPrivacyCenter/assets/sentImg.svg +0 -9
  83. package/src/RedactoPrivacyCenter/assets/uploadFileIcon.svg +0 -9
  84. package/src/RedactoPrivacyCenter/components/ActivitiesList.tsx +0 -252
  85. package/src/RedactoPrivacyCenter/components/ActivityTimeline.tsx +0 -239
  86. package/src/RedactoPrivacyCenter/components/AppShell/AppShell.tsx +0 -268
  87. package/src/RedactoPrivacyCenter/components/AppShell/MobileNavDrawer.tsx +0 -218
  88. package/src/RedactoPrivacyCenter/components/AppShell/NavItem.tsx +0 -205
  89. package/src/RedactoPrivacyCenter/components/AppShell/PageHeader.tsx +0 -107
  90. package/src/RedactoPrivacyCenter/components/AppShell/SidebarNav.tsx +0 -100
  91. package/src/RedactoPrivacyCenter/components/AppShell/TopAppBar.tsx +0 -339
  92. package/src/RedactoPrivacyCenter/components/AppShell/UserMenu.tsx +0 -245
  93. package/src/RedactoPrivacyCenter/components/AppShell/hooks/useIsTruncated.ts +0 -28
  94. package/src/RedactoPrivacyCenter/components/AppShell/hooks/useKeyboardShortcut.ts +0 -40
  95. package/src/RedactoPrivacyCenter/components/AppShell/hooks/useSidebarState.ts +0 -62
  96. package/src/RedactoPrivacyCenter/components/AppShell/usePrivacyCenterExitAction.ts +0 -36
  97. package/src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx +0 -38
  98. package/src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx +0 -31
  99. package/src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx +0 -79
  100. package/src/RedactoPrivacyCenter/components/CaseDetails/FinalizedTooltipWrapper.tsx +0 -25
  101. package/src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx +0 -96
  102. package/src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx +0 -97
  103. package/src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx +0 -156
  104. package/src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx +0 -171
  105. package/src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx +0 -23
  106. package/src/RedactoPrivacyCenter/components/CaseDetails/useFileUpload.ts +0 -116
  107. package/src/RedactoPrivacyCenter/components/CaseDetails/useMessagePolling.ts +0 -43
  108. package/src/RedactoPrivacyCenter/components/CaseDetails/utils.ts +0 -71
  109. package/src/RedactoPrivacyCenter/components/CaseDetailsModal.tsx +0 -469
  110. package/src/RedactoPrivacyCenter/components/CaseHistory.tsx +0 -426
  111. package/src/RedactoPrivacyCenter/components/ConsentManager.tsx +0 -1206
  112. package/src/RedactoPrivacyCenter/components/ConsentManagerCells.tsx +0 -218
  113. package/src/RedactoPrivacyCenter/components/ConsentManagerColumns.tsx +0 -138
  114. package/src/RedactoPrivacyCenter/components/ConsentManagerConstants.ts +0 -7
  115. package/src/RedactoPrivacyCenter/components/ConsentManagerExpandedRow.tsx +0 -179
  116. package/src/RedactoPrivacyCenter/components/ConsentManagerGroupedColumns.tsx +0 -318
  117. package/src/RedactoPrivacyCenter/components/ConsentManagerProductCards.tsx +0 -333
  118. package/src/RedactoPrivacyCenter/components/ConsentManagerPurposeCards.tsx +0 -102
  119. package/src/RedactoPrivacyCenter/components/ConsentManagerTableSkeleton.tsx +0 -159
  120. package/src/RedactoPrivacyCenter/components/DataRequest/CorrectionDataSection.tsx +0 -189
  121. package/src/RedactoPrivacyCenter/components/DataRequest/GrievanceDataSection.tsx +0 -118
  122. package/src/RedactoPrivacyCenter/components/DataRequest/NominationDataSection.tsx +0 -66
  123. package/src/RedactoPrivacyCenter/components/DataRequest/ProductSelectionSection.tsx +0 -222
  124. package/src/RedactoPrivacyCenter/components/DataRequest/PurposeSelectionSection.tsx +0 -331
  125. package/src/RedactoPrivacyCenter/components/Form.tsx +0 -1821
  126. package/src/RedactoPrivacyCenter/components/GrievanceTable.tsx +0 -174
  127. package/src/RedactoPrivacyCenter/components/GrievanceTablePagination.tsx +0 -337
  128. package/src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx +0 -334
  129. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationBell.tsx +0 -173
  130. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationCTAButton.tsx +0 -18
  131. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationDropdown.tsx +0 -54
  132. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationDropdownItem.tsx +0 -57
  133. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationIcon.tsx +0 -19
  134. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationListPanel.tsx +0 -92
  135. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationRefreshButton.tsx +0 -20
  136. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx +0 -58
  137. package/src/RedactoPrivacyCenter/components/NotificationHub/StatCard.tsx +0 -10
  138. package/src/RedactoPrivacyCenter/components/NotificationHub/useNotificationActions.ts +0 -112
  139. package/src/RedactoPrivacyCenter/components/NotificationHub/utils.ts +0 -27
  140. package/src/RedactoPrivacyCenter/components/Pagination.tsx +0 -140
  141. package/src/RedactoPrivacyCenter/components/PrivacyCenterEmptyState.tsx +0 -76
  142. package/src/RedactoPrivacyCenter/components/PrivacyCenterSessionExpired.tsx +0 -97
  143. package/src/RedactoPrivacyCenter/components/ReceiptsList.tsx +0 -454
  144. package/src/RedactoPrivacyCenter/components/RequestSubmit.tsx +0 -270
  145. package/src/RedactoPrivacyCenter/components/SelectUser.tsx +0 -95
  146. package/src/RedactoPrivacyCenter/components/SelectUserGate.tsx +0 -195
  147. package/src/RedactoPrivacyCenter/components/SideMenuBarPC/constants.tsx +0 -25
  148. package/src/RedactoPrivacyCenter/components/SideMenuBarPC/types.ts +0 -21
  149. package/src/RedactoPrivacyCenter/components/caseHistoryColumns.tsx +0 -159
  150. package/src/RedactoPrivacyCenter/components/constant.ts +0 -52
  151. package/src/RedactoPrivacyCenter/components/groupHelpers.ts +0 -155
  152. package/src/RedactoPrivacyCenter/components/receiptColumns.tsx +0 -203
  153. package/src/RedactoPrivacyCenter/components/types.ts +0 -123
  154. package/src/RedactoPrivacyCenter/components/utils.tsx +0 -10
  155. package/src/RedactoPrivacyCenter/config/routes.ts +0 -9
  156. package/src/RedactoPrivacyCenter/config/table.ts +0 -25
  157. package/src/RedactoPrivacyCenter/context/AuthContext.tsx +0 -252
  158. package/src/RedactoPrivacyCenter/context/BaseUrlContext.tsx +0 -47
  159. package/src/RedactoPrivacyCenter/context/BrandingContext.tsx +0 -52
  160. package/src/RedactoPrivacyCenter/context/DataAvailabilityContext.session-expired.test.tsx +0 -92
  161. package/src/RedactoPrivacyCenter/context/DataAvailabilityContext.tsx +0 -181
  162. package/src/RedactoPrivacyCenter/context/LocaleContext.tsx +0 -11
  163. package/src/RedactoPrivacyCenter/context/NavigationContext.tsx +0 -96
  164. package/src/RedactoPrivacyCenter/context/OrganizationContext.tsx +0 -30
  165. package/src/RedactoPrivacyCenter/context/PageChromeContext.tsx +0 -80
  166. package/src/RedactoPrivacyCenter/context/ProfileSwitchContext.tsx +0 -15
  167. package/src/RedactoPrivacyCenter/context/types.ts +0 -57
  168. package/src/RedactoPrivacyCenter/lib/api.ts +0 -759
  169. package/src/RedactoPrivacyCenter/lib/consent-manager/utils.tsx +0 -67
  170. package/src/RedactoPrivacyCenter/lib/constants.ts +0 -283
  171. package/src/RedactoPrivacyCenter/lib/i18n.ts +0 -81
  172. package/src/RedactoPrivacyCenter/lib/locales.ts +0 -102
  173. package/src/RedactoPrivacyCenter/lib/queries.ts +0 -141
  174. package/src/RedactoPrivacyCenter/lib/sandbox.ts +0 -104
  175. package/src/RedactoPrivacyCenter/lib/types.ts +0 -896
  176. package/src/RedactoPrivacyCenter/lib/useCurrentLanguage.ts +0 -37
  177. package/src/RedactoPrivacyCenter/lib/utils.refresh-circuit.test.ts +0 -127
  178. package/src/RedactoPrivacyCenter/lib/utils.refresh-storage.test.ts +0 -85
  179. package/src/RedactoPrivacyCenter/lib/utils.session-expired.test.ts +0 -109
  180. package/src/RedactoPrivacyCenter/lib/utils.ts +0 -798
  181. package/src/RedactoPrivacyCenter/locales/as/translation.json +0 -342
  182. package/src/RedactoPrivacyCenter/locales/bn/translation.json +0 -342
  183. package/src/RedactoPrivacyCenter/locales/brx/translation.json +0 -342
  184. package/src/RedactoPrivacyCenter/locales/doi/translation.json +0 -342
  185. package/src/RedactoPrivacyCenter/locales/en/translation.json +0 -357
  186. package/src/RedactoPrivacyCenter/locales/gom/translation.json +0 -342
  187. package/src/RedactoPrivacyCenter/locales/gu/translation.json +0 -342
  188. package/src/RedactoPrivacyCenter/locales/hi/translation.json +0 -345
  189. package/src/RedactoPrivacyCenter/locales/kn/translation.json +0 -342
  190. package/src/RedactoPrivacyCenter/locales/ks/translation.json +0 -342
  191. package/src/RedactoPrivacyCenter/locales/mai/translation.json +0 -342
  192. package/src/RedactoPrivacyCenter/locales/ml/translation.json +0 -342
  193. package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +0 -342
  194. package/src/RedactoPrivacyCenter/locales/mr/translation.json +0 -342
  195. package/src/RedactoPrivacyCenter/locales/ne/translation.json +0 -342
  196. package/src/RedactoPrivacyCenter/locales/or/translation.json +0 -342
  197. package/src/RedactoPrivacyCenter/locales/pa/translation.json +0 -342
  198. package/src/RedactoPrivacyCenter/locales/sa/translation.json +0 -342
  199. package/src/RedactoPrivacyCenter/locales/sat/translation.json +0 -342
  200. package/src/RedactoPrivacyCenter/locales/sd/translation.json +0 -342
  201. package/src/RedactoPrivacyCenter/locales/ta/translation.json +0 -342
  202. package/src/RedactoPrivacyCenter/locales/te/translation.json +0 -342
  203. package/src/RedactoPrivacyCenter/locales/ur/translation.json +0 -342
  204. package/src/RedactoPrivacyCenter/styles/applyBrandingTheme.ts +0 -66
  205. package/src/RedactoPrivacyCenter/styles/base.css +0 -117
  206. package/src/RedactoPrivacyCenter/styles/injectStyles.ts +0 -3108
  207. package/src/RedactoPrivacyCenter/styles/pcStyles.ts +0 -831
  208. package/src/RedactoPrivacyCenter/styles/responsive.ts +0 -138
  209. package/src/RedactoPrivacyCenter/styles/variables.css +0 -96
  210. package/src/RedactoPrivacyCenter/table/AdvancedTable.tsx +0 -387
  211. package/src/RedactoPrivacyCenter/table/AdvancedTablePagination.tsx +0 -468
  212. package/src/RedactoPrivacyCenter/table/index.ts +0 -2
  213. package/src/RedactoPrivacyCenter/types/images.d.ts +0 -29
  214. package/src/RedactoPrivacyCenter/ui/Footer.tsx +0 -69
  215. package/src/RedactoPrivacyCenter/ui/FormBlockWrapper.tsx +0 -54
  216. package/src/RedactoPrivacyCenter/ui/PCAccordion.tsx +0 -93
  217. package/src/RedactoPrivacyCenter/ui/PCActionIcon.tsx +0 -47
  218. package/src/RedactoPrivacyCenter/ui/PCAvatar.test.tsx +0 -83
  219. package/src/RedactoPrivacyCenter/ui/PCAvatar.tsx +0 -93
  220. package/src/RedactoPrivacyCenter/ui/PCBadge.tsx +0 -48
  221. package/src/RedactoPrivacyCenter/ui/PCButton.tsx +0 -77
  222. package/src/RedactoPrivacyCenter/ui/PCCheckbox.tsx +0 -55
  223. package/src/RedactoPrivacyCenter/ui/PCCollapse.tsx +0 -107
  224. package/src/RedactoPrivacyCenter/ui/PCEmpty.tsx +0 -35
  225. package/src/RedactoPrivacyCenter/ui/PCInput.tsx +0 -132
  226. package/src/RedactoPrivacyCenter/ui/PCLoader.tsx +0 -31
  227. package/src/RedactoPrivacyCenter/ui/PCModal.tsx +0 -106
  228. package/src/RedactoPrivacyCenter/ui/PCPopover.tsx +0 -206
  229. package/src/RedactoPrivacyCenter/ui/PCSelect.tsx +0 -433
  230. package/src/RedactoPrivacyCenter/ui/PCTable.tsx +0 -149
  231. package/src/RedactoPrivacyCenter/ui/PCText.tsx +0 -41
  232. package/src/RedactoPrivacyCenter/ui/PCTextarea.tsx +0 -43
  233. package/src/RedactoPrivacyCenter/ui/PCTitle.tsx +0 -37
  234. package/src/RedactoPrivacyCenter/ui/PCTooltip.tsx +0 -121
  235. package/src/RedactoPrivacyCenter/ui/SimpleBar.tsx +0 -25
  236. package/src/RedactoPrivacyCenter/ui/StatusBadge.tsx +0 -53
  237. package/src/RedactoPrivacyCenter/ui/index.ts +0 -18
  238. package/src/RedactoPrivacyCenter/utils/cn.ts +0 -28
  239. package/src/RedactoPrivacyCenter/utils/date.ts +0 -48
  240. package/src/RedactoPrivacyCenter/utils/status.ts +0 -111
  241. package/src/RedactoPrivacyCenter/utils/toast.ts +0 -130
  242. package/src/index.ts +0 -19
  243. package/src/privacy-center.ts +0 -113
  244. package/src/shared/api-errors.ts +0 -180
  245. package/src/shared/notice-consent-status.ts +0 -190
  246. package/src/shared/sandbox.ts +0 -6
  247. package/src/types/css.d.ts +0 -4
  248. package/src/types/images.d.ts +0 -19
  249. package/src/types/react-jsx.d.ts +0 -26
  250. package/tests/DataAvailabilityContext.test.tsx +0 -123
  251. package/tests/Form.test.tsx +0 -1424
  252. package/tests/ManageConsentErrorMapping.test.tsx +0 -85
  253. package/tests/ProductSelectionSection.test.tsx +0 -328
  254. package/tests/RequestSubmit.test.tsx +0 -135
  255. package/tests/RevocablePurpose.test.tsx +0 -146
  256. package/tests/RevokeWarningMessage.test.tsx +0 -151
  257. package/tests/consentClient.test.ts +0 -217
  258. package/tests/manageConsentServer.test.ts +0 -38
  259. package/tests/mocks.ts +0 -257
  260. package/tests/resolveContactFromJwt.test.ts +0 -44
  261. package/tests/setup.ts +0 -16
  262. package/tsconfig.json +0 -16
  263. package/tsup.config.ts +0 -31
  264. package/vitest.config.ts +0 -16
package/dist/index.mjs CHANGED
@@ -2,9 +2,19 @@ import {
2
2
  SANDBOX_TOKEN_HEADER,
3
3
  useMediaQuery
4
4
  } from "./chunk-OGL6OC3A.mjs";
5
+ import {
6
+ FONT_FAMILY_SEPARATOR,
7
+ FONT_NAME_QUOTE_CHARACTERS,
8
+ NOTICE_FONT_ENTRY_BY_ID,
9
+ NOTICE_FONT_FACE_STYLE_ID_PREFIX,
10
+ NOTICE_FONT_LOAD_ERROR_MESSAGE,
11
+ NOTICE_FONT_ROOT_PROPS,
12
+ injectNoticeFontStyles,
13
+ resolveNoticeFontFamily
14
+ } from "./chunk-FEGTW73Q.mjs";
5
15
 
6
16
  // src/RedactoNoticeConsent/RedactoNoticeConsent.tsx
7
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
17
+ import { useCallback, useEffect as useEffect2, useMemo as useMemo2, useRef, useState } from "react";
8
18
 
9
19
  // src/RedactoNoticeConsent/api/index.ts
10
20
  import { jwtDecode as jwtDecode2 } from "jwt-decode";
@@ -360,48 +370,10 @@ var submitConsentEvent = async ({
360
370
  }
361
371
  apiCache.clear();
362
372
  };
363
- var buildLedgerConsentOverlay = (status, configPurposes) => {
364
- var _a, _b;
365
- const byUuid = new Map(status.purposes.map((p) => [p.uuid, p]));
366
- const hasHistory = status.purposes.some(
367
- (p) => (p.status || "INACTIVE") !== "INACTIVE"
368
- );
369
- if (!hasHistory) {
370
- return null;
371
- }
372
- const purpose_selections = {};
373
- for (const cp of configPurposes) {
374
- const lp = byUuid.get(cp.uuid);
375
- const purposeStatus = (lp == null ? void 0 : lp.status) || "INACTIVE";
376
- const selectedByUuid = new Map(
377
- ((lp == null ? void 0 : lp.data_elements) || []).map((de) => [de.uuid, de.selected])
378
- );
379
- const data_elements = {};
380
- for (const de of cp.data_elements) {
381
- data_elements[de.uuid] = {
382
- selected: (_a = selectedByUuid.get(de.uuid)) != null ? _a : false,
383
- enabled: de.enabled,
384
- required: de.required
385
- };
386
- }
387
- purpose_selections[cp.uuid] = {
388
- selected: (_b = lp == null ? void 0 : lp.selected) != null ? _b : false,
389
- status: purposeStatus,
390
- needs_reconsent: purposeStatus !== "ACTIVE",
391
- data_elements
392
- };
393
- }
394
- const reconsent_required = configPurposes.some(
395
- (cp) => {
396
- var _a2;
397
- return (((_a2 = purpose_selections[cp.uuid]) == null ? void 0 : _a2.status) || "INACTIVE") !== "ACTIVE";
398
- }
399
- );
400
- return { reconsent_required, purpose_selections };
401
- };
402
373
  var fetchTTSAudioUrls = async ({
403
374
  accessToken,
404
375
  baseUrl,
376
+ ledgerBaseUrl,
405
377
  noticeUuid,
406
378
  language,
407
379
  signal,
@@ -411,7 +383,7 @@ var fetchTTSAudioUrls = async ({
411
383
  throw new Error("accessToken (or token), noticeUuid, and language are required");
412
384
  }
413
385
  const { organisationUuid: ORGANISATION_UUID, workspaceUuid: WORKSPACE_UUID, sandbox } = resolveRequestAuth(accessToken, sandboxParams, decodeTokenSafely);
414
- const apiBaseUrl = baseUrl || BASE_URL;
386
+ const apiBaseUrl = (sandbox ? null : ledgerBaseUrl) || baseUrl || BASE_URL;
415
387
  const url = new URL(
416
388
  `${apiBaseUrl}/public/organisations/${ORGANISATION_UUID}/workspaces/${WORKSPACE_UUID}/notices/${noticeUuid}/audio/${language}`
417
389
  );
@@ -585,6 +557,12 @@ var verifyGuardianStatus = async ({
585
557
  var redacto_logo_default = "data:image/png;base64,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";
586
558
 
587
559
  // src/RedactoNoticeConsent/constants.ts
560
+ var DEFAULT_LOGO_POSITION = "left";
561
+ var LOGO_POSITION_JUSTIFY = {
562
+ left: "flex-start",
563
+ center: "center",
564
+ right: "flex-end"
565
+ };
588
566
  var DPO_AUDIO_ELEMENT_MAP = [
589
567
  { audioKey: "grievance_text_audio_url", elementId: "dpo-grievance-text" },
590
568
  { audioKey: "grievance_anchor_text_audio_url", elementId: "dpo-grievance-link" },
@@ -596,6 +574,10 @@ var DPO_AUDIO_ELEMENT_MAP = [
596
574
  { audioKey: "dpo_anchor_text_audio_url", elementId: "dpo-dpo-link" }
597
575
  ];
598
576
 
577
+ // src/RedactoNoticeConsent/layout.ts
578
+ var resolveLogoPosition = (raw) => raw === "center" || raw === "right" ? raw : DEFAULT_LOGO_POSITION;
579
+ var logoRowJustify = (position) => LOGO_POSITION_JUSTIFY[position];
580
+
599
581
  // src/RedactoNoticeConsent/language-codes.ts
600
582
  var LANGUAGE_NATIVE_LABELS = {
601
583
  English: "English",
@@ -817,6 +799,123 @@ var injectCheckboxStyles = () => {
817
799
  stylesInjected = true;
818
800
  };
819
801
 
802
+ // src/shared/useNoticeFont.ts
803
+ import { useEffect, useMemo } from "react";
804
+
805
+ // src/shared/fonts/font-sources.generated.ts
806
+ var NOTICE_FONT_SOURCE_IMPORTS = {
807
+ "montserrat": () => import("./montserrat.generated-NBTECYRW.mjs")
808
+ };
809
+
810
+ // src/shared/notice-webfont.ts
811
+ var noticeFontOptions = {};
812
+ var configureNoticeFonts = (options) => {
813
+ noticeFontOptions = { ...noticeFontOptions, ...options };
814
+ };
815
+ var toFamilyTokens = (value) => value.split(FONT_FAMILY_SEPARATOR).map(
816
+ (token) => token.trim().replace(FONT_NAME_QUOTE_CHARACTERS, "").toLowerCase()
817
+ );
818
+ var findNoticeFontEntry = (value) => {
819
+ const id = toFamilyTokens(value).find(
820
+ (token) => Boolean(NOTICE_FONT_ENTRY_BY_ID[token])
821
+ );
822
+ if (!id) {
823
+ return void 0;
824
+ }
825
+ return NOTICE_FONT_ENTRY_BY_ID[id];
826
+ };
827
+ var toFontFaceCss = (entry, sources) => sources.map(
828
+ ({ weight, url }) => [
829
+ "@font-face {",
830
+ ` font-family: "${entry.cssFamily}";`,
831
+ " font-style: normal;",
832
+ ` font-weight: ${weight};`,
833
+ // `swap`, never the `auto` default: auto gives most browsers a ~3s block
834
+ // period with INVISIBLE text, which is unacceptable for a consent notice.
835
+ " font-display: swap;",
836
+ // `local()` still leads: the bundled copy is Latin + Latin-Extended only,
837
+ // so a visitor's own installation covers more scripts than ours does.
838
+ ` src: local("${entry.cssFamily}"),`,
839
+ // Quoted url(): a data URI carries `,` and `;`, which are hostile to an
840
+ // unquoted url token. Base64 never contains a double quote.
841
+ ` url("${url}") format("woff2");`,
842
+ "}"
843
+ ].join("\n")
844
+ ).join("\n\n");
845
+ var fontSourceLoads = /* @__PURE__ */ new Map();
846
+ var loadFontSources = (entry, importSources) => {
847
+ const pending = fontSourceLoads.get(entry.id);
848
+ if (pending) {
849
+ return pending;
850
+ }
851
+ const load = importSources().then((module) => module.NOTICE_FONT_SOURCES).catch((error) => {
852
+ fontSourceLoads.delete(entry.id);
853
+ throw error;
854
+ });
855
+ fontSourceLoads.set(entry.id, load);
856
+ return load;
857
+ };
858
+ var injectedFontFaceIds = /* @__PURE__ */ new Set();
859
+ var injectFontFace = (entry, sources) => {
860
+ if (injectedFontFaceIds.has(entry.id)) {
861
+ return;
862
+ }
863
+ injectedFontFaceIds.add(entry.id);
864
+ const styleId = `${NOTICE_FONT_FACE_STYLE_ID_PREFIX}${entry.slug}`;
865
+ if (document.getElementById(styleId)) {
866
+ return;
867
+ }
868
+ const style = document.createElement("style");
869
+ style.id = styleId;
870
+ style.textContent = toFontFaceCss(entry, sources);
871
+ document.head.appendChild(style);
872
+ };
873
+ var loadNoticeWebfont = async (value, signal) => {
874
+ if (typeof document === "undefined" || noticeFontOptions.disabled) {
875
+ return;
876
+ }
877
+ if (signal == null ? void 0 : signal.aborted) {
878
+ return;
879
+ }
880
+ const entry = findNoticeFontEntry(value);
881
+ if (!entry || entry.source !== "webfont" || injectedFontFaceIds.has(entry.id)) {
882
+ return;
883
+ }
884
+ const importSources = NOTICE_FONT_SOURCE_IMPORTS[entry.slug];
885
+ if (!importSources) {
886
+ return;
887
+ }
888
+ try {
889
+ const sources = await loadFontSources(entry, importSources);
890
+ if (signal == null ? void 0 : signal.aborted) {
891
+ return;
892
+ }
893
+ injectFontFace(entry, sources);
894
+ } catch (error) {
895
+ console.error(NOTICE_FONT_LOAD_ERROR_MESSAGE, error);
896
+ }
897
+ };
898
+
899
+ // src/shared/useNoticeFont.ts
900
+ var useNoticeFont = ({
901
+ hostFont,
902
+ noticeFont
903
+ }) => {
904
+ const fontFamily = useMemo(
905
+ () => resolveNoticeFontFamily({ hostFont, noticeFont }),
906
+ [hostFont, noticeFont]
907
+ );
908
+ useEffect(() => {
909
+ injectNoticeFontStyles();
910
+ }, []);
911
+ useEffect(() => {
912
+ const controller = new AbortController();
913
+ void loadNoticeWebfont(fontFamily, controller.signal);
914
+ return () => controller.abort();
915
+ }, [fontFamily]);
916
+ return fontFamily;
917
+ };
918
+
820
919
  // src/RedactoNoticeConsent/styles.ts
821
920
  var styles = {
822
921
  overlay: {
@@ -888,6 +987,41 @@ var styles = {
888
987
  padding: 0,
889
988
  boxSizing: "border-box"
890
989
  },
990
+ // The main notice header is two stacked rows: the logo alone on row 1,
991
+ // aligned per active_config.logo_position, then the title and the
992
+ // TTS/language controls on row 2. `topSection` and `topLeft` above keep their
993
+ // single-row shape for the age-verification, guardian and verification
994
+ // screens, which have no controls to place and share those styles.
995
+ headerStack: {
996
+ display: "flex",
997
+ flexDirection: "column",
998
+ alignItems: "stretch",
999
+ gap: "10px",
1000
+ paddingBottom: "15px",
1001
+ borderBottom: "none",
1002
+ backgroundColor: "#ffffff",
1003
+ margin: 0,
1004
+ boxSizing: "border-box",
1005
+ textAlign: "left"
1006
+ },
1007
+ logoRow: {
1008
+ display: "flex",
1009
+ alignItems: "center",
1010
+ width: "100%",
1011
+ margin: 0,
1012
+ padding: 0,
1013
+ boxSizing: "border-box"
1014
+ },
1015
+ headerRow: {
1016
+ display: "flex",
1017
+ alignItems: "center",
1018
+ justifyContent: "space-between",
1019
+ gap: "10px",
1020
+ width: "100%",
1021
+ margin: 0,
1022
+ padding: 0,
1023
+ boxSizing: "border-box"
1024
+ },
891
1025
  logo: {
892
1026
  height: "32px",
893
1027
  width: "auto",
@@ -931,7 +1065,8 @@ var styles = {
931
1065
  boxSizing: "border-box",
932
1066
  textAlign: "left",
933
1067
  cursor: "pointer",
934
- backgroundColor: "#ffffff"
1068
+ backgroundColor: "#ffffff",
1069
+ fontFamily: "inherit"
935
1070
  },
936
1071
  middleSection: {
937
1072
  margin: "0px",
@@ -1104,7 +1239,8 @@ var styles = {
1104
1239
  cursor: "pointer",
1105
1240
  margin: 0,
1106
1241
  boxSizing: "border-box",
1107
- textAlign: "center"
1242
+ textAlign: "center",
1243
+ fontFamily: "inherit"
1108
1244
  },
1109
1245
  acceptButton: {
1110
1246
  backgroundColor: "#4f87ff",
@@ -1118,6 +1254,9 @@ var styles = {
1118
1254
  },
1119
1255
  languageSelectorContainer: {
1120
1256
  position: "relative",
1257
+ // Shares `headerRow` with the title, which grows; without this a long
1258
+ // heading squeezes the language button instead of wrapping itself.
1259
+ flexShrink: 0,
1121
1260
  margin: 0,
1122
1261
  padding: 0,
1123
1262
  boxSizing: "border-box"
@@ -1257,19 +1396,17 @@ var PurposeItem = ({
1257
1396
  selectedLanguage,
1258
1397
  initialDataElementSelections = {}
1259
1398
  }) => {
1260
- const headingStyle = useMemo(
1399
+ const headingStyle = useMemo2(
1261
1400
  () => ({
1262
- color: (settings == null ? void 0 : settings.headingColor) || "#323B4B",
1263
- fontFamily: (settings == null ? void 0 : settings.font) || "inherit"
1401
+ color: (settings == null ? void 0 : settings.headingColor) || "#323B4B"
1264
1402
  }),
1265
- [settings]
1403
+ [settings == null ? void 0 : settings.headingColor]
1266
1404
  );
1267
- const textStyle = useMemo(
1405
+ const textStyle = useMemo2(
1268
1406
  () => ({
1269
- color: (settings == null ? void 0 : settings.textColor) || "#344054",
1270
- fontFamily: (settings == null ? void 0 : settings.font) || "inherit"
1407
+ color: (settings == null ? void 0 : settings.textColor) || "#344054"
1271
1408
  }),
1272
- [settings]
1409
+ [settings == null ? void 0 : settings.textColor]
1273
1410
  );
1274
1411
  return /* @__PURE__ */ jsxs("div", { children: [
1275
1412
  /* @__PURE__ */ jsxs("div", { style: styles4.optionItem, children: [
@@ -1574,7 +1711,7 @@ var GuardianForm = ({
1574
1711
  const [openUpward, setOpenUpward] = useState(false);
1575
1712
  const dropdownRef = useRef(null);
1576
1713
  const optionsRef = useRef(null);
1577
- useEffect(() => {
1714
+ useEffect2(() => {
1578
1715
  if (!isDropdownOpen) return;
1579
1716
  const handleClickOutside = (e) => {
1580
1717
  if (dropdownRef.current && !dropdownRef.current.contains(e.target)) {
@@ -1585,7 +1722,7 @@ var GuardianForm = ({
1585
1722
  document.addEventListener("mousedown", handleClickOutside);
1586
1723
  return () => document.removeEventListener("mousedown", handleClickOutside);
1587
1724
  }, [isDropdownOpen]);
1588
- useEffect(() => {
1725
+ useEffect2(() => {
1589
1726
  if (!isDropdownOpen || !dropdownRef.current) return;
1590
1727
  const rect = dropdownRef.current.getBoundingClientRect();
1591
1728
  const spaceBelow = window.innerHeight - rect.bottom;
@@ -1627,7 +1764,7 @@ var GuardianForm = ({
1627
1764
  break;
1628
1765
  }
1629
1766
  };
1630
- useEffect(() => {
1767
+ useEffect2(() => {
1631
1768
  var _a2;
1632
1769
  if (focusedIndex >= 0 && optionsRef.current) {
1633
1770
  const option = optionsRef.current.children[focusedIndex];
@@ -1638,14 +1775,12 @@ var GuardianForm = ({
1638
1775
  const textColor = (settings == null ? void 0 : settings.textColor) || "#344054";
1639
1776
  const bgColor = (settings == null ? void 0 : settings.backgroundColor) || "#ffffff";
1640
1777
  const radius = (settings == null ? void 0 : settings.borderRadius) || "8px";
1641
- const font = (settings == null ? void 0 : settings.font) || "inherit";
1642
1778
  const inputStyle = {
1643
1779
  width: "100%",
1644
1780
  padding: "10px 12px",
1645
1781
  border: `1px solid ${borderColor}`,
1646
1782
  borderRadius: radius,
1647
1783
  fontSize: "13px",
1648
- fontFamily: font,
1649
1784
  color: textColor,
1650
1785
  backgroundColor: bgColor,
1651
1786
  marginBottom: "2px",
@@ -1903,7 +2038,6 @@ var GuardianForm = ({
1903
2038
  style: {
1904
2039
  padding: "9px 12px",
1905
2040
  fontSize: "13px",
1906
- fontFamily: font,
1907
2041
  color: isSelected ? accentColor : textColor,
1908
2042
  backgroundColor: isFocused ? "#F3F4F6" : "transparent",
1909
2043
  cursor: "pointer",
@@ -2444,7 +2578,7 @@ var RedactoNoticeConsent = ({
2444
2578
  reviewModeButtonText = "Continue"
2445
2579
  }) => {
2446
2580
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
2447
- const sandboxParams = useMemo(
2581
+ const sandboxParams = useMemo2(
2448
2582
  () => ({
2449
2583
  token,
2450
2584
  sandboxUcic: ucic,
@@ -2454,7 +2588,7 @@ var RedactoNoticeConsent = ({
2454
2588
  }),
2455
2589
  [token, ucic, email, mobile, organisationUuid, workspaceUuid]
2456
2590
  );
2457
- const propValidationError = useMemo(() => {
2591
+ const propValidationError = useMemo2(() => {
2458
2592
  if (!(noticeId == null ? void 0 : noticeId.trim())) {
2459
2593
  return "RedactoNoticeConsent: 'noticeId' prop is required and cannot be empty";
2460
2594
  }
@@ -2560,7 +2694,7 @@ var RedactoNoticeConsent = ({
2560
2694
  const isPollingStatusRef = useRef(false);
2561
2695
  const verificationSessionTokenRef = useRef(null);
2562
2696
  const isMobile = useMediaQuery("(max-width: 768px)");
2563
- const responsiveStyles = useMemo(
2697
+ const responsiveStyles = useMemo2(
2564
2698
  () => ({
2565
2699
  modal: {
2566
2700
  width: isMobile ? "90%" : "700px"
@@ -2618,9 +2752,7 @@ var RedactoNoticeConsent = ({
2618
2752
  height: isMobile ? "auto" : void 0,
2619
2753
  width: isMobile ? "auto" : void 0
2620
2754
  },
2621
- topSection: {
2622
- flexDirection: isMobile ? "column" : "row",
2623
- alignItems: isMobile ? "stretch" : "flex-start",
2755
+ headerStack: {
2624
2756
  gap: isMobile ? "12px" : "10px"
2625
2757
  },
2626
2758
  logo: {
@@ -2641,28 +2773,36 @@ var RedactoNoticeConsent = ({
2641
2773
  }),
2642
2774
  [isMobile]
2643
2775
  );
2644
- const componentHeadingStyle = useMemo(
2776
+ const fontFamily = useNoticeFont({
2777
+ hostFont: settings == null ? void 0 : settings.font,
2778
+ noticeFont: content == null ? void 0 : content.font_preference
2779
+ });
2780
+ const componentHeadingStyle = useMemo2(
2645
2781
  () => ({
2646
- color: (settings == null ? void 0 : settings.headingColor) || "#323B4B",
2647
- fontFamily: (settings == null ? void 0 : settings.font) || "inherit"
2782
+ color: (settings == null ? void 0 : settings.headingColor) || "#323B4B"
2648
2783
  }),
2649
- [settings == null ? void 0 : settings.headingColor, settings == null ? void 0 : settings.font]
2784
+ [settings == null ? void 0 : settings.headingColor]
2650
2785
  );
2651
- const componentTextStyle = useMemo(
2786
+ const componentTextStyle = useMemo2(
2652
2787
  () => ({
2653
- color: (settings == null ? void 0 : settings.textColor) || "#344054",
2654
- fontFamily: (settings == null ? void 0 : settings.font) || "inherit"
2788
+ color: (settings == null ? void 0 : settings.textColor) || "#344054"
2655
2789
  }),
2656
- [settings == null ? void 0 : settings.textColor, settings == null ? void 0 : settings.font]
2790
+ [settings == null ? void 0 : settings.textColor]
2657
2791
  );
2658
- const sectionStyle = useMemo(
2792
+ const sectionStyle = useMemo2(
2659
2793
  () => ({
2660
- color: (settings == null ? void 0 : settings.textColor) || "#344054",
2661
- fontFamily: (settings == null ? void 0 : settings.font) || "inherit"
2794
+ color: (settings == null ? void 0 : settings.textColor) || "#344054"
2662
2795
  }),
2663
- [settings == null ? void 0 : settings.textColor, settings == null ? void 0 : settings.font]
2796
+ [settings == null ? void 0 : settings.textColor]
2664
2797
  );
2665
- const areAllRequiredElementsChecked = useMemo(() => {
2798
+ const logoRowStyle = useMemo2(
2799
+ () => ({
2800
+ ...styles.logoRow,
2801
+ justifyContent: logoRowJustify(resolveLogoPosition(content == null ? void 0 : content.logo_position))
2802
+ }),
2803
+ [content == null ? void 0 : content.logo_position]
2804
+ );
2805
+ const areAllRequiredElementsChecked = useMemo2(() => {
2666
2806
  if (!content) return false;
2667
2807
  return content.purposes.every((purpose) => {
2668
2808
  const requiredElements = purpose.data_elements.filter(
@@ -2674,7 +2814,7 @@ var RedactoNoticeConsent = ({
2674
2814
  });
2675
2815
  }, [content, selectedDataElements]);
2676
2816
  const acceptDisabled = isSubmitting || !areAllRequiredElementsChecked;
2677
- useEffect(() => {
2817
+ useEffect2(() => {
2678
2818
  var _a2, _b2;
2679
2819
  clearApiCache();
2680
2820
  isRequestInProgressRef.current = false;
@@ -2737,7 +2877,7 @@ var RedactoNoticeConsent = ({
2737
2877
  }
2738
2878
  isInitialMountRef.current = false;
2739
2879
  }, [accessToken]);
2740
- useEffect(() => {
2880
+ useEffect2(() => {
2741
2881
  if (hasAlreadyConsented) {
2742
2882
  onAccept == null ? void 0 : onAccept();
2743
2883
  }
@@ -2810,7 +2950,7 @@ var RedactoNoticeConsent = ({
2810
2950
  return content.dpo_info[key] || defaultText;
2811
2951
  };
2812
2952
  const fetchNotice = async () => {
2813
- var _a2, _b2, _c2;
2953
+ var _a2;
2814
2954
  if (isRequestInProgressRef.current) {
2815
2955
  return;
2816
2956
  }
@@ -2824,11 +2964,12 @@ var RedactoNoticeConsent = ({
2824
2964
  setShowAgeVerification(false);
2825
2965
  setShowGuardianForm(false);
2826
2966
  try {
2967
+ const noticeBaseUrl = ledgerBaseUrl && !applicationId && !token ? ledgerBaseUrl : baseUrl;
2827
2968
  const consentContentData = await fetchConsentContent({
2828
2969
  noticeId,
2829
2970
  accessToken,
2830
2971
  refreshToken,
2831
- baseUrl,
2972
+ baseUrl: noticeBaseUrl,
2832
2973
  language,
2833
2974
  specific_uuid: applicationId,
2834
2975
  validate_against: validateAgainst,
@@ -2852,25 +2993,8 @@ var RedactoNoticeConsent = ({
2852
2993
  {}
2853
2994
  );
2854
2995
  setCollapsedPurposes(initialCollapsedState);
2855
- let isReconsentRequired = consentContentData.detail.reconsent_required;
2856
- let purposeSelections = consentContentData.detail.purpose_selections;
2857
- if (ledgerBaseUrl && !applicationId) {
2858
- const ledgerStatus = await fetchNoticeConsentStatus({
2859
- accessToken,
2860
- ledgerBaseUrl,
2861
- noticeUuid: noticeId,
2862
- signal: (_b2 = abortControllerRef.current) == null ? void 0 : _b2.signal,
2863
- ...sandboxParams
2864
- });
2865
- if (ledgerStatus) {
2866
- const overlay = buildLedgerConsentOverlay(
2867
- ledgerStatus,
2868
- activeConfig.purposes
2869
- );
2870
- isReconsentRequired = (_c2 = overlay == null ? void 0 : overlay.reconsent_required) != null ? _c2 : false;
2871
- purposeSelections = overlay == null ? void 0 : overlay.purpose_selections;
2872
- }
2873
- }
2996
+ const isReconsentRequired = consentContentData.detail.reconsent_required;
2997
+ const purposeSelections = consentContentData.detail.purpose_selections;
2874
2998
  const newCategorizedPurposes = isReconsentRequired ? {
2875
2999
  alreadyConsented: activeConfig.purposes.filter(
2876
3000
  (purpose) => {
@@ -2901,9 +3025,9 @@ var RedactoNoticeConsent = ({
2901
3025
  const initialDataElementState = activeConfig.purposes.reduce(
2902
3026
  (acc, purpose) => {
2903
3027
  purpose.data_elements.forEach((element) => {
2904
- var _a3, _b3;
3028
+ var _a3, _b2;
2905
3029
  const combinedId = `${purpose.uuid}-${element.uuid}`;
2906
- if ((_b3 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b3[element.uuid]) {
3030
+ if ((_b2 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
2907
3031
  acc[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
2908
3032
  } else {
2909
3033
  acc[combinedId] = false;
@@ -2919,9 +3043,9 @@ var RedactoNoticeConsent = ({
2919
3043
  const initialSelections = {};
2920
3044
  newCategorizedPurposes.alreadyConsented.forEach((purpose) => {
2921
3045
  purpose.data_elements.forEach((element) => {
2922
- var _a3, _b3;
3046
+ var _a3, _b2;
2923
3047
  const combinedId = `${purpose.uuid}-${element.uuid}`;
2924
- if ((_b3 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b3[element.uuid]) {
3048
+ if ((_b2 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
2925
3049
  initialSelections[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
2926
3050
  } else {
2927
3051
  initialSelections[combinedId] = false;
@@ -2942,9 +3066,9 @@ var RedactoNoticeConsent = ({
2942
3066
  activeConfig.purposes.forEach(
2943
3067
  (purpose) => {
2944
3068
  purpose.data_elements.forEach((element) => {
2945
- var _a3, _b3;
3069
+ var _a3, _b2;
2946
3070
  const combinedId = `${purpose.uuid}-${element.uuid}`;
2947
- if ((_b3 = (_a3 = purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b3[element.uuid]) {
3071
+ if ((_b2 = (_a3 = purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
2948
3072
  initialSelections[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
2949
3073
  } else {
2950
3074
  initialSelections[combinedId] = false;
@@ -2985,7 +3109,7 @@ var RedactoNoticeConsent = ({
2985
3109
  isRequestInProgressRef.current = false;
2986
3110
  }
2987
3111
  };
2988
- useEffect(() => {
3112
+ useEffect2(() => {
2989
3113
  injectCheckboxStyles();
2990
3114
  fetchNotice();
2991
3115
  }, [
@@ -2995,6 +3119,7 @@ var RedactoNoticeConsent = ({
2995
3119
  sandboxParams,
2996
3120
  language,
2997
3121
  applicationId,
3122
+ ledgerBaseUrl,
2998
3123
  validateAgainst,
2999
3124
  includeFullyConsentedData
3000
3125
  // Removed onError and isRefreshingToken from dependencies to prevent duplicate API calls
@@ -3539,7 +3664,7 @@ var RedactoNoticeConsent = ({
3539
3664
  }
3540
3665
  clearConsentState();
3541
3666
  }, []);
3542
- const availableLanguages = useMemo(() => {
3667
+ const availableLanguages = useMemo2(() => {
3543
3668
  if (!content) return [language];
3544
3669
  const pinned = ["English"];
3545
3670
  if (content.default_language && content.default_language !== "English" && content.default_language !== "en") {
@@ -3561,7 +3686,7 @@ var RedactoNoticeConsent = ({
3561
3686
  },
3562
3687
  [content]
3563
3688
  );
3564
- const audioSequence = useMemo(() => {
3689
+ const audioSequence = useMemo2(() => {
3565
3690
  if (!ttsAudioUrls || !content) return [];
3566
3691
  const sequence = [];
3567
3692
  if (ttsAudioUrls.notice_banner_heading_audio_url) {
@@ -3626,7 +3751,7 @@ var RedactoNoticeConsent = ({
3626
3751
  }
3627
3752
  return sequence;
3628
3753
  }, [ttsAudioUrls, content, categorizedPurposes]);
3629
- const elementIdSequence = useMemo(() => {
3754
+ const elementIdSequence = useMemo2(() => {
3630
3755
  if (!ttsAudioUrls || !content) return [];
3631
3756
  const elementIds = [];
3632
3757
  if (ttsAudioUrls.notice_banner_heading_audio_url) {
@@ -3759,7 +3884,7 @@ var RedactoNoticeConsent = ({
3759
3884
  playAudio();
3760
3885
  }
3761
3886
  }, [isPlaying, playAudio, pauseAudio]);
3762
- useEffect(() => {
3887
+ useEffect2(() => {
3763
3888
  var _a2;
3764
3889
  if (!isPlaying || !content || audioSequence.length === 0) return;
3765
3890
  const currentIndex = currentAudioIndex;
@@ -3793,7 +3918,7 @@ var RedactoNoticeConsent = ({
3793
3918
  categorizedPurposes,
3794
3919
  collapsedPurposes
3795
3920
  ]);
3796
- useEffect(() => {
3921
+ useEffect2(() => {
3797
3922
  const removeAllHighlights = () => {
3798
3923
  document.querySelectorAll(".redacto-tts-highlight").forEach((el) => {
3799
3924
  el.classList.remove("redacto-tts-highlight");
@@ -3829,7 +3954,7 @@ var RedactoNoticeConsent = ({
3829
3954
  removeAllHighlights();
3830
3955
  };
3831
3956
  }, [highlightedElementId, isPlaying]);
3832
- useEffect(() => {
3957
+ useEffect2(() => {
3833
3958
  setIsTTSAvailable(false);
3834
3959
  setTtsAudioUrls(null);
3835
3960
  stopAudio();
@@ -3841,6 +3966,7 @@ var RedactoNoticeConsent = ({
3841
3966
  fetchTTSAudioUrls({
3842
3967
  accessToken,
3843
3968
  baseUrl,
3969
+ ledgerBaseUrl,
3844
3970
  noticeUuid: content.notice_uuid,
3845
3971
  language: languageCode,
3846
3972
  signal: ttsAbortController.signal,
@@ -3857,10 +3983,11 @@ var RedactoNoticeConsent = ({
3857
3983
  return () => {
3858
3984
  ttsAbortController.abort();
3859
3985
  };
3860
- }, [content, selectedLanguage, accessToken, sandboxParams, baseUrl, getLanguageCode]);
3986
+ }, [content, selectedLanguage, accessToken, sandboxParams, baseUrl, ledgerBaseUrl, getLanguageCode]);
3861
3987
  const modalStyle = {
3862
3988
  borderRadius: (settings == null ? void 0 : settings.borderRadius) || "8px",
3863
- backgroundColor: (settings == null ? void 0 : settings.backgroundColor) || "#ffffff"
3989
+ backgroundColor: (settings == null ? void 0 : settings.backgroundColor) || "#ffffff",
3990
+ fontFamily
3864
3991
  };
3865
3992
  const buttonStyle = {
3866
3993
  borderRadius: (settings == null ? void 0 : settings.borderRadius) || "8px"
@@ -3894,7 +4021,7 @@ var RedactoNoticeConsent = ({
3894
4021
  const handleCloseError = () => {
3895
4022
  setErrorMessage(null);
3896
4023
  };
3897
- useEffect(() => {
4024
+ useEffect2(() => {
3898
4025
  const handleKeyDown = (event) => {
3899
4026
  if (!modalRef.current) return;
3900
4027
  const focusableElements = modalRef.current.querySelectorAll(
@@ -3933,13 +4060,13 @@ var RedactoNoticeConsent = ({
3933
4060
  modal == null ? void 0 : modal.removeEventListener("keydown", handleKeyDown);
3934
4061
  };
3935
4062
  }, [isLoading, handleDecline]);
3936
- useEffect(() => {
4063
+ useEffect2(() => {
3937
4064
  stopAudio();
3938
4065
  }, [selectedLanguage, stopAudio]);
3939
- useEffect(() => {
4066
+ useEffect2(() => {
3940
4067
  stopAudio();
3941
4068
  }, [content, stopAudio]);
3942
- useEffect(() => {
4069
+ useEffect2(() => {
3943
4070
  return () => {
3944
4071
  var _a2, _b2;
3945
4072
  if (abortControllerRef.current) {
@@ -3965,7 +4092,7 @@ var RedactoNoticeConsent = ({
3965
4092
  }
3966
4093
  };
3967
4094
  }, [stopAudio]);
3968
- useEffect(() => {
4095
+ useEffect2(() => {
3969
4096
  const persistedState = getConsentState();
3970
4097
  if (!persistedState) return;
3971
4098
  if (persistedState.noticeId && persistedState.noticeId !== noticeId) {
@@ -4015,6 +4142,7 @@ var RedactoNoticeConsent = ({
4015
4142
  "div",
4016
4143
  {
4017
4144
  ref: modalRef,
4145
+ ...NOTICE_FONT_ROOT_PROPS,
4018
4146
  style: {
4019
4147
  ...styles.modal,
4020
4148
  ...responsiveStyles.modal,
@@ -4275,8 +4403,8 @@ var RedactoNoticeConsent = ({
4275
4403
  "div",
4276
4404
  {
4277
4405
  style: {
4278
- ...styles.topSection,
4279
- ...responsiveStyles.topSection,
4406
+ ...styles.headerStack,
4407
+ ...responsiveStyles.headerStack,
4280
4408
  ...sectionStyle
4281
4409
  },
4282
4410
  children: (() => {
@@ -4445,40 +4573,12 @@ var RedactoNoticeConsent = ({
4445
4573
  }
4446
4574
  )
4447
4575
  ] });
4448
- return isMobile ? /* @__PURE__ */ jsxs(Fragment, { children: [
4449
- /* @__PURE__ */ jsxs(
4450
- "div",
4451
- {
4452
- style: {
4453
- display: "flex",
4454
- alignItems: "center",
4455
- gap: "10px",
4456
- width: "100%"
4457
- },
4458
- children: [
4459
- logoNode,
4460
- /* @__PURE__ */ jsx(
4461
- "div",
4462
- {
4463
- style: {
4464
- marginLeft: "auto",
4465
- display: "flex",
4466
- alignItems: "center",
4467
- flexShrink: 0
4468
- },
4469
- children: controlsBlock
4470
- }
4471
- )
4472
- ]
4473
- }
4474
- ),
4475
- titleNode
4476
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4477
- /* @__PURE__ */ jsxs("div", { style: styles.topLeft, children: [
4478
- logoNode,
4479
- titleNode
4480
- ] }),
4481
- controlsBlock
4576
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
4577
+ /* @__PURE__ */ jsx("div", { style: logoRowStyle, children: logoNode }),
4578
+ /* @__PURE__ */ jsxs("div", { style: styles.headerRow, children: [
4579
+ titleNode,
4580
+ controlsBlock
4581
+ ] })
4482
4582
  ] });
4483
4583
  })()
4484
4584
  }
@@ -4823,7 +4923,7 @@ var RedactoNoticeConsent = ({
4823
4923
  };
4824
4924
 
4825
4925
  // src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.tsx
4826
- import { useEffect as useEffect3, useMemo as useMemo2, useState as useState3, useRef as useRef2, useCallback as useCallback2, memo } from "react";
4926
+ import { useEffect as useEffect4, useMemo as useMemo3, useState as useState3, useRef as useRef2, useCallback as useCallback2, memo } from "react";
4827
4927
 
4828
4928
  // src/RedactoNoticeConsentInline/api/index.ts
4829
4929
  var BASE_URL2 = "https://api.redacto.tech/consent";
@@ -4831,12 +4931,16 @@ var fetchConsentContent2 = async ({
4831
4931
  org_uuid,
4832
4932
  workspace_uuid,
4833
4933
  notice_uuid,
4934
+ accessToken,
4834
4935
  baseUrl,
4835
- specific_uuid
4936
+ language,
4937
+ specific_uuid,
4938
+ signal
4836
4939
  }) => {
4837
4940
  const apiBaseUrl = baseUrl || BASE_URL2;
4941
+ const noticesUrl = `${apiBaseUrl}/public/organisations/${org_uuid}/workspaces/${workspace_uuid}/notices`;
4838
4942
  const url = new URL(
4839
- `${apiBaseUrl}/public/organisations/${org_uuid}/workspaces/${workspace_uuid}/notices/get-notice/${notice_uuid}`
4943
+ accessToken ? `${noticesUrl}/${notice_uuid}` : `${noticesUrl}/get-notice/${notice_uuid}`
4840
4944
  );
4841
4945
  if (specific_uuid) {
4842
4946
  url.searchParams.append("specific_uuid", specific_uuid);
@@ -4844,8 +4948,11 @@ var fetchConsentContent2 = async ({
4844
4948
  const response = await fetch(url.toString(), {
4845
4949
  method: "GET",
4846
4950
  headers: {
4847
- "Content-Type": "application/json"
4848
- }
4951
+ "Content-Type": "application/json",
4952
+ "Accept-Language": language || "en",
4953
+ ...accessToken ? { Authorization: `Bearer ${accessToken}` } : {}
4954
+ },
4955
+ signal
4849
4956
  });
4850
4957
  if (!response.ok) {
4851
4958
  throw await parseApiError(
@@ -4910,6 +5017,15 @@ var submitConsentEvent2 = async ({
4910
5017
 
4911
5018
  // src/RedactoNoticeConsentInline/styles.ts
4912
5019
  var styles2 = {
5020
+ // Root of the embedded widget — the host supplies the surrounding card, so this
5021
+ // is layout plus the font the rest of the widget inherits. (`container` below is
5022
+ // a standalone-card variant that the current layout does not use.)
5023
+ root: {
5024
+ display: "flex",
5025
+ flexDirection: "column",
5026
+ gap: "16px",
5027
+ fontFamily: "inherit"
5028
+ },
4913
5029
  overlay: {
4914
5030
  position: "fixed",
4915
5031
  top: 0,
@@ -5256,11 +5372,11 @@ var styles2 = {
5256
5372
  };
5257
5373
 
5258
5374
  // src/RedactoNoticeConsentInline/useMediaQuery.ts
5259
- import { useState as useState2, useEffect as useEffect2 } from "react";
5375
+ import { useState as useState2, useEffect as useEffect3 } from "react";
5260
5376
  var useMediaQuery2 = (query) => {
5261
5377
  const getMatches = () => typeof window !== "undefined" ? window.matchMedia(query).matches : false;
5262
5378
  const [matches, setMatches] = useState2(getMatches);
5263
- useEffect2(() => {
5379
+ useEffect3(() => {
5264
5380
  if (typeof window === "undefined") return;
5265
5381
  const media = window.matchMedia(query);
5266
5382
  const listener = (e) => {
@@ -5341,11 +5457,11 @@ var RedactoConsentInlineComponent = ({
5341
5457
  const [fetchError, setFetchError] = useState3(null);
5342
5458
  const [errorMessage, setErrorMessage] = useState3(null);
5343
5459
  const hasSubmittedRef = useRef2(false);
5344
- useEffect3(() => {
5460
+ useEffect4(() => {
5345
5461
  injectSpinnerAnimation();
5346
5462
  }, []);
5347
5463
  const isMobile = useMediaQuery2("(max-width: 768px)");
5348
- const responsiveStyles = useMemo2(
5464
+ const responsiveStyles = useMemo3(
5349
5465
  () => ({
5350
5466
  optionTitle: {
5351
5467
  fontSize: isMobile ? "14px" : "16px"
@@ -5363,7 +5479,7 @@ var RedactoConsentInlineComponent = ({
5363
5479
  }),
5364
5480
  [isMobile]
5365
5481
  );
5366
- const areAllRequiredElementsChecked = useMemo2(() => {
5482
+ const areAllRequiredElementsChecked = useMemo3(() => {
5367
5483
  if (!content) return false;
5368
5484
  return content.purposes.every((purpose) => {
5369
5485
  const requiredElements = purpose.data_elements.filter(
@@ -5374,10 +5490,10 @@ var RedactoConsentInlineComponent = ({
5374
5490
  );
5375
5491
  });
5376
5492
  }, [content, selectedDataElements]);
5377
- useEffect3(() => {
5493
+ useEffect4(() => {
5378
5494
  onValidationChange == null ? void 0 : onValidationChange(areAllRequiredElementsChecked);
5379
5495
  }, [areAllRequiredElementsChecked, onValidationChange]);
5380
- useEffect3(() => {
5496
+ useEffect4(() => {
5381
5497
  if (hasAlreadyConsented) {
5382
5498
  onAccept == null ? void 0 : onAccept();
5383
5499
  }
@@ -5419,18 +5535,24 @@ var RedactoConsentInlineComponent = ({
5419
5535
  }
5420
5536
  return defaultText;
5421
5537
  };
5422
- const fetchNotice = async () => {
5538
+ const fetchNotice = async (signal) => {
5423
5539
  setIsLoading(true);
5424
5540
  setFetchError(null);
5541
+ setHasAlreadyConsented(false);
5425
5542
  try {
5426
5543
  const consentContentData = await fetchConsentContent2({
5427
5544
  org_uuid,
5428
5545
  workspace_uuid,
5429
5546
  notice_uuid,
5547
+ accessToken,
5430
5548
  baseUrl,
5431
5549
  language,
5432
- specific_uuid: applicationId
5550
+ specific_uuid: applicationId,
5551
+ signal
5433
5552
  });
5553
+ if (signal == null ? void 0 : signal.aborted) {
5554
+ return;
5555
+ }
5434
5556
  const activeConfig = consentContentData.detail.active_config;
5435
5557
  setContent(activeConfig);
5436
5558
  if (activeConfig.default_language) {
@@ -5466,6 +5588,9 @@ var RedactoConsentInlineComponent = ({
5466
5588
  );
5467
5589
  setSelectedPurposes(initialPurposeState);
5468
5590
  } catch (err) {
5591
+ if ((signal == null ? void 0 : signal.aborted) || err instanceof Error && err.name === "AbortError") {
5592
+ return;
5593
+ }
5469
5594
  const error = err;
5470
5595
  setFetchError(error);
5471
5596
  if (error.status === 409) {
@@ -5474,13 +5599,19 @@ var RedactoConsentInlineComponent = ({
5474
5599
  onError == null ? void 0 : onError(error);
5475
5600
  }
5476
5601
  } finally {
5477
- setIsLoading(false);
5602
+ if (!(signal == null ? void 0 : signal.aborted)) {
5603
+ setIsLoading(false);
5604
+ }
5478
5605
  }
5479
5606
  };
5480
- useEffect3(() => {
5481
- fetchNotice();
5482
- }, [org_uuid, workspace_uuid, notice_uuid, language, applicationId]);
5483
- useEffect3(() => {
5607
+ useEffect4(() => {
5608
+ const controller = new AbortController();
5609
+ void fetchNotice(controller.signal);
5610
+ return () => {
5611
+ controller.abort();
5612
+ };
5613
+ }, [org_uuid, workspace_uuid, notice_uuid, language, applicationId, accessToken]);
5614
+ useEffect4(() => {
5484
5615
  if (!ledgerBaseUrl || applicationId) {
5485
5616
  return;
5486
5617
  }
@@ -5634,7 +5765,7 @@ var RedactoConsentInlineComponent = ({
5634
5765
  onAccept
5635
5766
  ]
5636
5767
  );
5637
- useEffect3(() => {
5768
+ useEffect4(() => {
5638
5769
  if (accessToken && content && areAllRequiredElementsChecked && !isSubmitting && !isCheckingConsent && !hasAlreadyConsented && !hasSubmittedRef.current) {
5639
5770
  hasSubmittedRef.current = true;
5640
5771
  const autoSubmit = async () => {
@@ -5656,7 +5787,7 @@ var RedactoConsentInlineComponent = ({
5656
5787
  hasAlreadyConsented,
5657
5788
  handleAcceptWithToken
5658
5789
  ]);
5659
- useEffect3(() => {
5790
+ useEffect4(() => {
5660
5791
  if (!accessToken) {
5661
5792
  hasSubmittedRef.current = false;
5662
5793
  }
@@ -5667,11 +5798,20 @@ var RedactoConsentInlineComponent = ({
5667
5798
  const textStyle = {
5668
5799
  color: (settings == null ? void 0 : settings.textColor) || "#344054"
5669
5800
  };
5801
+ const fontFamily = useNoticeFont({
5802
+ hostFont: settings == null ? void 0 : settings.font,
5803
+ noticeFont: content == null ? void 0 : content.font_preference
5804
+ });
5805
+ const rootStyle = { ...styles2.root, fontFamily };
5806
+ const loadingRootStyle = {
5807
+ ...styles2.loadingContainer,
5808
+ fontFamily
5809
+ };
5670
5810
  if (hasAlreadyConsented || fetchError) {
5671
5811
  return null;
5672
5812
  }
5673
5813
  if (isLoading) {
5674
- return /* @__PURE__ */ jsxs2("div", { style: styles2.loadingContainer, children: [
5814
+ return /* @__PURE__ */ jsxs2("div", { ...NOTICE_FONT_ROOT_PROPS, style: loadingRootStyle, children: [
5675
5815
  /* @__PURE__ */ jsx2("div", { style: styles2.loadingSpinner }),
5676
5816
  /* @__PURE__ */ jsx2("p", { style: { ...styles2.privacyText, ...textStyle }, children: "Loading..." })
5677
5817
  ] });
@@ -5679,7 +5819,7 @@ var RedactoConsentInlineComponent = ({
5679
5819
  if (!content) {
5680
5820
  return null;
5681
5821
  }
5682
- return /* @__PURE__ */ jsxs2("div", { style: { display: "flex", flexDirection: "column", gap: "16px" }, children: [
5822
+ return /* @__PURE__ */ jsxs2("div", { ...NOTICE_FONT_ROOT_PROPS, style: rootStyle, children: [
5683
5823
  errorMessage && /* @__PURE__ */ jsx2(
5684
5824
  "div",
5685
5825
  {
@@ -5858,7 +5998,7 @@ RedactoConsentInlineComponent.displayName = "RedactoConsentInline";
5858
5998
  var RedactoConsentInline = memo(RedactoConsentInlineComponent);
5859
5999
 
5860
6000
  // src/RedactoNoticeAssisted/RedactoNoticeAssisted.tsx
5861
- import { useState as useState5, useEffect as useEffect5, useMemo as useMemo3, useRef as useRef3, useCallback as useCallback3 } from "react";
6001
+ import { useState as useState5, useEffect as useEffect6, useMemo as useMemo4, useRef as useRef3, useCallback as useCallback3 } from "react";
5862
6002
 
5863
6003
  // src/RedactoNoticeAssisted/styles.ts
5864
6004
  var styles3 = {
@@ -5964,6 +6104,7 @@ var styles3 = {
5964
6104
  display: "flex",
5965
6105
  alignItems: "center",
5966
6106
  justifyContent: "center",
6107
+ fontFamily: "inherit",
5967
6108
  fontWeight: 400,
5968
6109
  fontSize: "12px",
5969
6110
  lineHeight: "150%",
@@ -6341,6 +6482,7 @@ var styles3 = {
6341
6482
  borderRadius: "8px",
6342
6483
  border: "1px solid #d0d5dd",
6343
6484
  textAlign: "center",
6485
+ fontFamily: "inherit",
6344
6486
  fontSize: "18px",
6345
6487
  fontWeight: 500,
6346
6488
  color: "#101828",
@@ -6462,6 +6604,7 @@ var styles3 = {
6462
6604
  width: "100%",
6463
6605
  borderRadius: "8px",
6464
6606
  padding: "9px 45px",
6607
+ fontFamily: "inherit",
6465
6608
  fontWeight: 400,
6466
6609
  fontSize: "16px",
6467
6610
  lineHeight: "150%",
@@ -6761,11 +6904,11 @@ var injectAssistedStyles = () => {
6761
6904
  };
6762
6905
 
6763
6906
  // src/RedactoNoticeAssisted/useMediaQuery.ts
6764
- import { useState as useState4, useEffect as useEffect4 } from "react";
6907
+ import { useState as useState4, useEffect as useEffect5 } from "react";
6765
6908
  var useMediaQuery3 = (query) => {
6766
6909
  const getMatches = () => typeof window !== "undefined" ? window.matchMedia(query).matches : false;
6767
6910
  const [matches, setMatches] = useState4(getMatches);
6768
- useEffect4(() => {
6911
+ useEffect5(() => {
6769
6912
  if (typeof window === "undefined") return;
6770
6913
  const media = window.matchMedia(query);
6771
6914
  const listener = (e) => {
@@ -8420,10 +8563,10 @@ var RedactoNoticeAssisted = ({
8420
8563
  const [isVerifying, setIsVerifying] = useState5(false);
8421
8564
  const [createError, setCreateError] = useState5(null);
8422
8565
  const [otpError, setOtpError] = useState5(null);
8423
- useEffect5(() => {
8566
+ useEffect6(() => {
8424
8567
  injectAssistedStyles();
8425
8568
  }, []);
8426
- useEffect5(() => {
8569
+ useEffect6(() => {
8427
8570
  const controller = new AbortController();
8428
8571
  setIsLoading(true);
8429
8572
  setFetchError(null);
@@ -8461,14 +8604,14 @@ var RedactoNoticeAssisted = ({
8461
8604
  });
8462
8605
  return () => controller.abort();
8463
8606
  }, [organisationUuid, workspaceUuid, noticeUuid, baseUrl]);
8464
- useEffect5(() => {
8607
+ useEffect6(() => {
8465
8608
  if (resendCountdown <= 0) return;
8466
8609
  const intervalId = window.setInterval(() => {
8467
8610
  setResendCountdown((prev) => prev <= 1 ? 0 : prev - 1);
8468
8611
  }, 1e3);
8469
8612
  return () => window.clearInterval(intervalId);
8470
8613
  }, [resendCountdown]);
8471
- useEffect5(() => {
8614
+ useEffect6(() => {
8472
8615
  if (step !== "verify") return;
8473
8616
  const id = window.setTimeout(
8474
8617
  () => scrollIntoViewSoft(verifyBlockRef.current),
@@ -8476,7 +8619,7 @@ var RedactoNoticeAssisted = ({
8476
8619
  );
8477
8620
  return () => window.clearTimeout(id);
8478
8621
  }, [step]);
8479
- useEffect5(() => {
8622
+ useEffect6(() => {
8480
8623
  if (!otpSent) return;
8481
8624
  const id = window.setTimeout(
8482
8625
  () => scrollIntoViewSoft(otpSectionRef.current),
@@ -8484,7 +8627,7 @@ var RedactoNoticeAssisted = ({
8484
8627
  );
8485
8628
  return () => window.clearTimeout(id);
8486
8629
  }, [otpSent]);
8487
- useEffect5(() => {
8630
+ useEffect6(() => {
8488
8631
  if (!isLanguageDropdownOpen) return;
8489
8632
  const handleClickOutside = (e) => {
8490
8633
  if (languageContainerRef.current && !languageContainerRef.current.contains(e.target)) {
@@ -8499,7 +8642,7 @@ var RedactoNoticeAssisted = ({
8499
8642
  const isMobileValid = mobile.replace(/\D/g, "").length >= 10;
8500
8643
  const isEmailValid = EMAIL_REGEX.test(email.trim());
8501
8644
  const isContactValid = verifyMethod === "email" ? isEmailValid : isMobileValid;
8502
- const areAllRequiredElementsChecked = useMemo3(() => {
8645
+ const areAllRequiredElementsChecked = useMemo4(() => {
8503
8646
  if (!content) return false;
8504
8647
  return content.purposes.every((purpose) => {
8505
8648
  const requiredElements = purpose.data_elements.filter(
@@ -8510,7 +8653,7 @@ var RedactoNoticeAssisted = ({
8510
8653
  );
8511
8654
  });
8512
8655
  }, [content, selectedDataElements]);
8513
- const normalizedDefaultLang = useMemo3(() => {
8656
+ const normalizedDefaultLang = useMemo4(() => {
8514
8657
  const dl = content == null ? void 0 : content.default_language;
8515
8658
  if (!dl) return "English";
8516
8659
  return dl === "en" || dl === "EN" ? "English" : dl;
@@ -8519,7 +8662,7 @@ var RedactoNoticeAssisted = ({
8519
8662
  (lang) => lang === "English" || lang === "en" || lang === "EN",
8520
8663
  []
8521
8664
  );
8522
- const ts = useMemo3(
8665
+ const ts = useMemo4(
8523
8666
  () => makeStaticT(toBcp47Code(selectedLanguage)),
8524
8667
  [selectedLanguage]
8525
8668
  );
@@ -8565,7 +8708,7 @@ var RedactoNoticeAssisted = ({
8565
8708
  },
8566
8709
  [content, selectedLanguage, isDefaultLanguage]
8567
8710
  );
8568
- const availableLanguages = useMemo3(() => {
8711
+ const availableLanguages = useMemo4(() => {
8569
8712
  if (!content) return [selectedLanguage];
8570
8713
  const pinned = ["English"];
8571
8714
  if (normalizedDefaultLang && normalizedDefaultLang !== "English") {
@@ -8582,10 +8725,10 @@ var RedactoNoticeAssisted = ({
8582
8725
  "--ra-accent": primaryColor,
8583
8726
  "--ra-accent-soft": accentSoft
8584
8727
  };
8585
- const fontFamily = (content == null ? void 0 : content.font_preference) || void 0;
8728
+ const fontFamily = useNoticeFont({ noticeFont: content == null ? void 0 : content.font_preference });
8586
8729
  const logoUrl = (content == null ? void 0 : content.logo_url) || redacto_logo_default2;
8587
8730
  const linkStyle = { ...styles3.link, color: secondaryColor };
8588
- const responsive = useMemo3(
8731
+ const responsive = useMemo4(
8589
8732
  () => ({
8590
8733
  modal: { width: isMobile ? "90%" : "700px" },
8591
8734
  title: { fontSize: isMobile ? "16px" : "18px" },
@@ -8676,7 +8819,7 @@ var RedactoNoticeAssisted = ({
8676
8819
  setSelectedLanguage(lang);
8677
8820
  setIsLanguageDropdownOpen(false);
8678
8821
  }, []);
8679
- const audioSequence = useMemo3(() => {
8822
+ const audioSequence = useMemo4(() => {
8680
8823
  if (!ttsAudioUrls || !content) return [];
8681
8824
  const sequence = [];
8682
8825
  if (ttsAudioUrls.notice_banner_heading_audio_url) {
@@ -8737,7 +8880,7 @@ var RedactoNoticeAssisted = ({
8737
8880
  }
8738
8881
  return sequence;
8739
8882
  }, [ttsAudioUrls, content]);
8740
- const elementIdSequence = useMemo3(() => {
8883
+ const elementIdSequence = useMemo4(() => {
8741
8884
  if (!ttsAudioUrls || !content) return [];
8742
8885
  const elementIds = [];
8743
8886
  if (ttsAudioUrls.notice_banner_heading_audio_url) {
@@ -8866,7 +9009,7 @@ var RedactoNoticeAssisted = ({
8866
9009
  playAudio();
8867
9010
  }
8868
9011
  }, [isPlaying, playAudio, pauseAudio]);
8869
- useEffect5(() => {
9012
+ useEffect6(() => {
8870
9013
  setIsTTSAvailable(false);
8871
9014
  setTtsAudioUrls(null);
8872
9015
  stopAudio();
@@ -8897,7 +9040,7 @@ var RedactoNoticeAssisted = ({
8897
9040
  baseUrl,
8898
9041
  stopAudio
8899
9042
  ]);
8900
- useEffect5(() => {
9043
+ useEffect6(() => {
8901
9044
  var _a;
8902
9045
  if (!isPlaying || !content || audioSequence.length === 0) return;
8903
9046
  const currentIndex = currentAudioIndex;
@@ -8916,7 +9059,7 @@ var RedactoNoticeAssisted = ({
8916
9059
  audioOffset += totalPurposeAudioCount;
8917
9060
  }
8918
9061
  }, [isPlaying, currentAudioIndex, audioSequence, content, collapsedPurposes]);
8919
- useEffect5(() => {
9062
+ useEffect6(() => {
8920
9063
  const removeAllHighlights = () => {
8921
9064
  document.querySelectorAll(".redacto-tts-highlight").forEach((el) => {
8922
9065
  el.classList.remove("redacto-tts-highlight");
@@ -9805,6 +9948,7 @@ var RedactoNoticeAssisted = ({
9805
9948
  return /* @__PURE__ */ jsx3("div", { style: styles3.overlay, children: /* @__PURE__ */ jsx3(
9806
9949
  "div",
9807
9950
  {
9951
+ ...NOTICE_FONT_ROOT_PROPS,
9808
9952
  style: {
9809
9953
  ...styles3.modal,
9810
9954
  ...responsive.modal,
@@ -9939,7 +10083,7 @@ var MailIcon = ({
9939
10083
  );
9940
10084
 
9941
10085
  // src/RedactoNoticeConsent/components/DigiLockerCallback.tsx
9942
- import { useCallback as useCallback4, useEffect as useEffect6, useRef as useRef4, useState as useState6 } from "react";
10086
+ import { useCallback as useCallback4, useEffect as useEffect7, useRef as useRef4, useState as useState6 } from "react";
9943
10087
  import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
9944
10088
  var DigiLockerCallback = ({
9945
10089
  accessToken: propAccessToken,
@@ -10197,7 +10341,7 @@ var DigiLockerCallback = ({
10197
10341
  }
10198
10342
  }
10199
10343
  }, [propAccessToken, baseUrl, onSuccess, onError, redirectToOriginalPage]);
10200
- useEffect6(() => {
10344
+ useEffect7(() => {
10201
10345
  injectCheckboxStyles();
10202
10346
  handleCallback();
10203
10347
  return () => {
@@ -10415,5 +10559,6 @@ export {
10415
10559
  DigiLockerCallback,
10416
10560
  RedactoNoticeAssisted,
10417
10561
  RedactoNoticeConsent,
10418
- RedactoConsentInline as RedactoNoticeConsentInline
10562
+ RedactoConsentInline as RedactoNoticeConsentInline,
10563
+ configureNoticeFonts
10419
10564
  };