@redacto.io/consent-sdk-react 10.0.0-beta.8 → 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 (262) 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/{chunk-6A665OPR.mjs → chunk-OGL6OC3A.mjs} +4 -0
  5. package/dist/fonts.d.mts +35 -0
  6. package/dist/fonts.d.ts +35 -0
  7. package/dist/fonts.js +183 -0
  8. package/dist/fonts.mjs +10 -0
  9. package/dist/index.d.mts +41 -4
  10. package/dist/index.d.ts +41 -4
  11. package/dist/index.js +881 -416
  12. package/dist/index.mjs +502 -253
  13. package/dist/montserrat.generated-NBTECYRW.mjs +22 -0
  14. package/dist/privacy-center.d.mts +51 -11
  15. package/dist/privacy-center.d.ts +51 -11
  16. package/dist/privacy-center.js +252 -136
  17. package/dist/privacy-center.mjs +251 -137
  18. package/dist/types-6Aj7faxL.d.mts +57 -0
  19. package/dist/types-6Aj7faxL.d.ts +57 -0
  20. package/package.json +10 -1
  21. package/.turbo/turbo-build.log +0 -22
  22. package/.turbo/turbo-test.log +0 -203
  23. package/.turbo/turbo-verify-pack.log +0 -6
  24. package/CHANGELOG.md +0 -343
  25. package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.test.tsx +0 -934
  26. package/src/RedactoNoticeAssisted/RedactoNoticeAssisted.tsx +0 -2160
  27. package/src/RedactoNoticeAssisted/api/index.ts +0 -275
  28. package/src/RedactoNoticeAssisted/api/types.ts +0 -182
  29. package/src/RedactoNoticeAssisted/assets/redacto-logo.png +0 -0
  30. package/src/RedactoNoticeAssisted/constants.ts +0 -51
  31. package/src/RedactoNoticeAssisted/i18n.ts +0 -1408
  32. package/src/RedactoNoticeAssisted/index.ts +0 -1
  33. package/src/RedactoNoticeAssisted/injectStyles.ts +0 -251
  34. package/src/RedactoNoticeAssisted/styles.ts +0 -730
  35. package/src/RedactoNoticeAssisted/types.ts +0 -26
  36. package/src/RedactoNoticeAssisted/useMediaQuery.ts +0 -36
  37. package/src/RedactoNoticeConsent/RedactoNoticeConsent.test.tsx +0 -1152
  38. package/src/RedactoNoticeConsent/RedactoNoticeConsent.tsx +0 -4258
  39. package/src/RedactoNoticeConsent/api/index.ts +0 -512
  40. package/src/RedactoNoticeConsent/api/types.ts +0 -469
  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 -54
  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 -58
  71. package/src/RedactoPrivacyCenter/api/actions.ts +0 -695
  72. package/src/RedactoPrivacyCenter/api/client.ts +0 -911
  73. package/src/RedactoPrivacyCenter/api/config.ts +0 -33
  74. package/src/RedactoPrivacyCenter/api/fetcher.ts +0 -260
  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 -1796
  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 -187
  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 -119
  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 -160
  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 -19
  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 -276
  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/types.ts +0 -876
  175. package/src/RedactoPrivacyCenter/lib/useCurrentLanguage.ts +0 -37
  176. package/src/RedactoPrivacyCenter/lib/utils.refresh-circuit.test.ts +0 -127
  177. package/src/RedactoPrivacyCenter/lib/utils.refresh-storage.test.ts +0 -85
  178. package/src/RedactoPrivacyCenter/lib/utils.session-expired.test.ts +0 -109
  179. package/src/RedactoPrivacyCenter/lib/utils.ts +0 -783
  180. package/src/RedactoPrivacyCenter/locales/as/translation.json +0 -342
  181. package/src/RedactoPrivacyCenter/locales/bn/translation.json +0 -342
  182. package/src/RedactoPrivacyCenter/locales/brx/translation.json +0 -342
  183. package/src/RedactoPrivacyCenter/locales/doi/translation.json +0 -342
  184. package/src/RedactoPrivacyCenter/locales/en/translation.json +0 -357
  185. package/src/RedactoPrivacyCenter/locales/gom/translation.json +0 -342
  186. package/src/RedactoPrivacyCenter/locales/gu/translation.json +0 -342
  187. package/src/RedactoPrivacyCenter/locales/hi/translation.json +0 -345
  188. package/src/RedactoPrivacyCenter/locales/kn/translation.json +0 -342
  189. package/src/RedactoPrivacyCenter/locales/ks/translation.json +0 -342
  190. package/src/RedactoPrivacyCenter/locales/mai/translation.json +0 -342
  191. package/src/RedactoPrivacyCenter/locales/ml/translation.json +0 -342
  192. package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +0 -342
  193. package/src/RedactoPrivacyCenter/locales/mr/translation.json +0 -342
  194. package/src/RedactoPrivacyCenter/locales/ne/translation.json +0 -342
  195. package/src/RedactoPrivacyCenter/locales/or/translation.json +0 -342
  196. package/src/RedactoPrivacyCenter/locales/pa/translation.json +0 -342
  197. package/src/RedactoPrivacyCenter/locales/sa/translation.json +0 -342
  198. package/src/RedactoPrivacyCenter/locales/sat/translation.json +0 -342
  199. package/src/RedactoPrivacyCenter/locales/sd/translation.json +0 -342
  200. package/src/RedactoPrivacyCenter/locales/ta/translation.json +0 -342
  201. package/src/RedactoPrivacyCenter/locales/te/translation.json +0 -342
  202. package/src/RedactoPrivacyCenter/locales/ur/translation.json +0 -342
  203. package/src/RedactoPrivacyCenter/styles/applyBrandingTheme.ts +0 -66
  204. package/src/RedactoPrivacyCenter/styles/base.css +0 -117
  205. package/src/RedactoPrivacyCenter/styles/injectStyles.ts +0 -3108
  206. package/src/RedactoPrivacyCenter/styles/pcStyles.ts +0 -831
  207. package/src/RedactoPrivacyCenter/styles/responsive.ts +0 -138
  208. package/src/RedactoPrivacyCenter/styles/variables.css +0 -96
  209. package/src/RedactoPrivacyCenter/table/AdvancedTable.tsx +0 -387
  210. package/src/RedactoPrivacyCenter/table/AdvancedTablePagination.tsx +0 -468
  211. package/src/RedactoPrivacyCenter/table/index.ts +0 -2
  212. package/src/RedactoPrivacyCenter/types/images.d.ts +0 -29
  213. package/src/RedactoPrivacyCenter/ui/Footer.tsx +0 -69
  214. package/src/RedactoPrivacyCenter/ui/FormBlockWrapper.tsx +0 -54
  215. package/src/RedactoPrivacyCenter/ui/PCAccordion.tsx +0 -93
  216. package/src/RedactoPrivacyCenter/ui/PCActionIcon.tsx +0 -47
  217. package/src/RedactoPrivacyCenter/ui/PCAvatar.test.tsx +0 -83
  218. package/src/RedactoPrivacyCenter/ui/PCAvatar.tsx +0 -93
  219. package/src/RedactoPrivacyCenter/ui/PCBadge.tsx +0 -48
  220. package/src/RedactoPrivacyCenter/ui/PCButton.tsx +0 -77
  221. package/src/RedactoPrivacyCenter/ui/PCCheckbox.tsx +0 -55
  222. package/src/RedactoPrivacyCenter/ui/PCCollapse.tsx +0 -107
  223. package/src/RedactoPrivacyCenter/ui/PCEmpty.tsx +0 -35
  224. package/src/RedactoPrivacyCenter/ui/PCInput.tsx +0 -132
  225. package/src/RedactoPrivacyCenter/ui/PCLoader.tsx +0 -31
  226. package/src/RedactoPrivacyCenter/ui/PCModal.tsx +0 -106
  227. package/src/RedactoPrivacyCenter/ui/PCPopover.tsx +0 -206
  228. package/src/RedactoPrivacyCenter/ui/PCSelect.tsx +0 -433
  229. package/src/RedactoPrivacyCenter/ui/PCTable.tsx +0 -149
  230. package/src/RedactoPrivacyCenter/ui/PCText.tsx +0 -41
  231. package/src/RedactoPrivacyCenter/ui/PCTextarea.tsx +0 -43
  232. package/src/RedactoPrivacyCenter/ui/PCTitle.tsx +0 -37
  233. package/src/RedactoPrivacyCenter/ui/PCTooltip.tsx +0 -121
  234. package/src/RedactoPrivacyCenter/ui/SimpleBar.tsx +0 -25
  235. package/src/RedactoPrivacyCenter/ui/StatusBadge.tsx +0 -53
  236. package/src/RedactoPrivacyCenter/ui/index.ts +0 -18
  237. package/src/RedactoPrivacyCenter/utils/cn.ts +0 -28
  238. package/src/RedactoPrivacyCenter/utils/date.ts +0 -48
  239. package/src/RedactoPrivacyCenter/utils/status.ts +0 -111
  240. package/src/RedactoPrivacyCenter/utils/toast.ts +0 -130
  241. package/src/index.ts +0 -19
  242. package/src/privacy-center.ts +0 -113
  243. package/src/shared/api-errors.ts +0 -180
  244. package/src/shared/notice-consent-status.ts +0 -190
  245. package/src/types/css.d.ts +0 -4
  246. package/src/types/images.d.ts +0 -19
  247. package/src/types/react-jsx.d.ts +0 -26
  248. package/tests/DataAvailabilityContext.test.tsx +0 -123
  249. package/tests/Form.test.tsx +0 -1287
  250. package/tests/ManageConsentErrorMapping.test.tsx +0 -85
  251. package/tests/ProductSelectionSection.test.tsx +0 -328
  252. package/tests/RequestSubmit.test.tsx +0 -135
  253. package/tests/RevocablePurpose.test.tsx +0 -146
  254. package/tests/RevokeWarningMessage.test.tsx +0 -151
  255. package/tests/consentClient.test.ts +0 -217
  256. package/tests/manageConsentServer.test.ts +0 -38
  257. package/tests/mocks.ts +0 -257
  258. package/tests/resolveContactFromJwt.test.ts +0 -44
  259. package/tests/setup.ts +0 -16
  260. package/tsconfig.json +0 -16
  261. package/tsup.config.ts +0 -31
  262. package/vitest.config.ts +0 -16
@@ -1,469 +0,0 @@
1
- import { useTranslation } from 'react-i18next';
2
- import { PCModal, PCTitle, PCText, PCButton, PCBadge, PCTable } from '../ui';
3
- import { pcStyles } from '../styles/pcStyles';
4
- import { formatDate } from './utils';
5
- import type { CaseDetailsModalProps } from './types';
6
-
7
- const getVar = (varName: string): string => `var(${varName})`;
8
- const getCaseStatusVariant = (status: string): 'success' | 'error' | 'warning' | 'info' | 'secondary' => {
9
- const n = status.toLowerCase().replace(/_/g, '');
10
- if (n === 'completed') return 'success';
11
- if (n === 'rejected' || n === 'declined') return 'error';
12
- if (n === 'processing' || n === 'inprogress' || n === 'expired') return 'warning';
13
- if (n === 'initiated') return 'info';
14
- return 'secondary';
15
- };
16
- const formatCaseStatus = (s: string) =>
17
- s.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
18
-
19
- export default function CaseDetailsModal({
20
- isOpen,
21
- onClose,
22
- selectedCase,
23
- }: CaseDetailsModalProps) {
24
- const { t } = useTranslation();
25
-
26
- if (!selectedCase) return null;
27
-
28
- const { request_details } = selectedCase;
29
-
30
- return (
31
- <PCModal
32
- isOpen={isOpen}
33
- onClose={onClose}
34
- closeAriaLabel={t('closeModal')}
35
- size="lg"
36
- title={
37
- <div style={{ minWidth: 0, flex: 1, paddingRight: getVar('--pc-spacing-sm') }}>
38
- <PCTitle as="h4" style={{ fontSize: pcStyles.textBase.fontSize, color: getVar('--pc-text-primary') }}>
39
- {t('caseDetails')}
40
- </PCTitle>
41
- <PCText
42
- size="xs"
43
- color="secondary"
44
- style={{
45
- marginTop: pcStyles.mtXs.marginTop,
46
- wordBreak: 'break-all',
47
- }}
48
- >
49
- {t('caseID')}: <span style={{ fontWeight: pcStyles.fontWeightMedium.fontWeight, color: getVar('--pc-text-primary') }}>
50
- {selectedCase.case_id}
51
- </span>
52
- </PCText>
53
- </div>
54
- }
55
- >
56
- <div style={{ ...pcStyles.flex, ...pcStyles.flexCol, height: '100%' }}>
57
- <div
58
- className="pc-case-details-content"
59
- style={{
60
- ...pcStyles.flex,
61
- ...pcStyles.flexCol,
62
- gap: pcStyles.gapLg.gap,
63
- padding: pcStyles.pLg.padding,
64
- ...pcStyles.overflowYAuto,
65
- maxHeight: 'calc(80vh - 140px)',
66
- }}
67
- >
68
- {/* Basic Information Grid */}
69
- <div
70
- className="pc-case-details-grid"
71
- style={{
72
- display: 'grid',
73
- gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))',
74
- gap: pcStyles.gapMd.gap,
75
- }}
76
- >
77
- <div>
78
- <PCText
79
- size="xs"
80
- weight="medium"
81
- color="secondary"
82
- style={{ marginBottom: pcStyles.mbXs.marginBottom }}
83
- >
84
- {t('requestType')}
85
- </PCText>
86
- <PCText
87
- size="sm"
88
- weight="medium"
89
- style={{
90
- textTransform: 'capitalize',
91
- color: getVar('--pc-text-primary'),
92
- }}
93
- >
94
- {selectedCase.request_type_display || selectedCase.request_type.replace('_', ' ')}
95
- </PCText>
96
- </div>
97
- <div>
98
- <PCText
99
- size="xs"
100
- weight="medium"
101
- color="secondary"
102
- style={{ marginBottom: pcStyles.mbXs.marginBottom }}
103
- >
104
- {t('status')}
105
- </PCText>
106
- <PCBadge
107
- variant={getCaseStatusVariant(selectedCase.status)}
108
- size="sm"
109
- className="pc-status-badge"
110
- >
111
- {selectedCase.status_display || formatCaseStatus(selectedCase.status)}
112
- </PCBadge>
113
- </div>
114
- <div>
115
- <PCText
116
- size="xs"
117
- weight="medium"
118
- color="secondary"
119
- style={{ marginBottom: pcStyles.mbXs.marginBottom }}
120
- >
121
- {t('createdAt')}
122
- </PCText>
123
- <PCText
124
- size="sm"
125
- weight="medium"
126
- style={{ color: getVar('--pc-text-primary') }}
127
- >
128
- {formatDate(selectedCase.created_at)}
129
- </PCText>
130
- </div>
131
- {selectedCase.completed_at && (
132
- <div>
133
- <PCText
134
- size="xs"
135
- weight="medium"
136
- color="secondary"
137
- style={{ marginBottom: pcStyles.mbXs.marginBottom }}
138
- >
139
- {t('completedAt')}
140
- </PCText>
141
- <PCText
142
- size="sm"
143
- weight="medium"
144
- style={{ color: getVar('--pc-text-primary') }}
145
- >
146
- {formatDate(selectedCase.completed_at)}
147
- </PCText>
148
- </div>
149
- )}
150
- </div>
151
-
152
- {/* Description Section */}
153
- {(selectedCase.description_display || selectedCase.description) && (
154
- <div
155
- style={{
156
- backgroundColor: getVar('--pc-bg-secondary'),
157
- padding: pcStyles.pMd.padding,
158
- borderRadius: pcStyles.borderRadiusLg,
159
- border: `1px solid ${getVar('--pc-border-color')}`,
160
- }}
161
- >
162
- <PCText
163
- size="sm"
164
- weight="semibold"
165
- style={{
166
- marginBottom: pcStyles.mbSm.marginBottom,
167
- color: getVar('--pc-text-primary'),
168
- }}
169
- >
170
- {t('description')}
171
- </PCText>
172
- <PCText
173
- size="sm"
174
- color="secondary"
175
- style={{ lineHeight: '1.6' }}
176
- >
177
- {selectedCase.description_display || selectedCase.description}
178
- </PCText>
179
- </div>
180
- )}
181
-
182
- {/* Request Specifics Section */}
183
- {request_details && (
184
- <div style={{ ...pcStyles.flex, ...pcStyles.flexCol, gap: pcStyles.gapLg.gap }}>
185
- <PCTitle
186
- as="h6"
187
- style={{
188
- fontSize: pcStyles.textSm.fontSize,
189
- fontWeight: pcStyles.fontWeightBold.fontWeight,
190
- textTransform: 'uppercase',
191
- letterSpacing: '0.05em',
192
- color: getVar('--pc-text-secondary'),
193
- marginBottom: pcStyles.mbXs.marginBottom,
194
- }}
195
- >
196
- {t('requestSpecifics')}
197
- </PCTitle>
198
-
199
- {/* Purposes Section */}
200
- {request_details.purposes && request_details.purposes.length > 0 && (
201
- <div>
202
- <PCText
203
- weight="semibold"
204
- style={{
205
- marginBottom: pcStyles.mbMd.marginBottom,
206
- color: getVar('--pc-text-primary'),
207
- }}
208
- >
209
- {t('purposesInvolved')}
210
- </PCText>
211
- <ul
212
- style={{
213
- listStyleType: 'none',
214
- paddingLeft: 0,
215
- ...pcStyles.flex,
216
- ...pcStyles.flexCol,
217
- gap: pcStyles.gapMd.gap,
218
- }}
219
- >
220
- {request_details.purposes.map((p: any, idx: number) => (
221
- <li
222
- key={idx}
223
- style={{
224
- padding: pcStyles.pMd.padding,
225
- backgroundColor: getVar('--pc-bg-secondary'),
226
- borderRadius: pcStyles.borderRadiusMd,
227
- border: `1px solid ${getVar('--pc-border-color')}`,
228
- }}
229
- >
230
- <div
231
- style={{
232
- fontWeight: pcStyles.fontWeightSemibold.fontWeight,
233
- color: getVar('--pc-text-primary'),
234
- marginBottom: pcStyles.mbXs.marginBottom,
235
- }}
236
- >
237
- {p.purpose?.name}
238
- </div>
239
- {p.purpose?.description && (
240
- <div
241
- style={{
242
- color: getVar('--pc-text-secondary'),
243
- fontSize: pcStyles.textSm.fontSize,
244
- marginBottom: pcStyles.mbSm.marginBottom,
245
- lineHeight: '1.5',
246
- }}
247
- >
248
- {p.purpose.description}
249
- </div>
250
- )}
251
- {p.purpose?.data_elements && p.purpose.data_elements.some((de: any) => de.selected) && (
252
- <div
253
- style={{
254
- marginTop: pcStyles.mtSm.marginTop,
255
- ...pcStyles.flex,
256
- flexWrap: 'wrap',
257
- gap: pcStyles.gapSm.gap
258
- }}
259
- >
260
- {p.purpose.data_elements
261
- .filter((de: any) => de.selected)
262
- .map((de: any, dIdx: number) => (
263
- <PCBadge key={dIdx} variant="secondary" size="sm" className="pc-status-badge">
264
- {de.name}
265
- </PCBadge>
266
- ))}
267
- </div>
268
- )}
269
- </li>
270
- ))}
271
- </ul>
272
- </div>
273
- )}
274
-
275
- {/* Correction Data Table */}
276
- {request_details.correction_data && request_details.correction_data.length > 0 && (
277
- <div>
278
- <PCText
279
- weight="semibold"
280
- style={{
281
- marginBottom: pcStyles.mbMd.marginBottom,
282
- fontSize: pcStyles.textSm.fontSize,
283
- color: getVar('--pc-text-primary'),
284
- }}
285
- >
286
- {t('dataToCorrect')}
287
- </PCText>
288
- <div style={{ ...pcStyles.overflowXAuto }}>
289
- <div
290
- style={{
291
- minWidth: '100%',
292
- border: `1px solid ${getVar('--pc-border-color')}`,
293
- borderRadius: pcStyles.borderRadiusLg,
294
- overflow: 'hidden',
295
- backgroundColor: getVar('--pc-bg-primary'),
296
- }}
297
- >
298
- <PCTable style={{ width: '100%', fontSize: pcStyles.textXs.fontSize }}>
299
- <PCTable.Header style={{ backgroundColor: getVar('--pc-bg-secondary') }}>
300
- <PCTable.Row>
301
- <PCTable.Head
302
- style={{
303
- padding: '0.75rem 1rem',
304
- whiteSpace: 'nowrap',
305
- color: getVar('--pc-text-secondary'),
306
- fontWeight: pcStyles.fontWeightSemibold.fontWeight,
307
- fontSize: pcStyles.textSm.fontSize,
308
- }}
309
- >
310
- {t('field')}
311
- </PCTable.Head>
312
- <PCTable.Head
313
- style={{
314
- padding: '0.75rem 1rem',
315
- whiteSpace: 'nowrap',
316
- color: getVar('--pc-text-secondary'),
317
- fontWeight: pcStyles.fontWeightSemibold.fontWeight,
318
- fontSize: pcStyles.textSm.fontSize,
319
- }}
320
- >
321
- {t('currentValue')}
322
- </PCTable.Head>
323
- <PCTable.Head
324
- style={{
325
- padding: '0.75rem 1rem',
326
- whiteSpace: 'nowrap',
327
- color: getVar('--pc-text-secondary'),
328
- fontWeight: pcStyles.fontWeightSemibold.fontWeight,
329
- fontSize: pcStyles.textSm.fontSize,
330
- }}
331
- >
332
- {t('newValue')}
333
- </PCTable.Head>
334
- </PCTable.Row>
335
- </PCTable.Header>
336
- <PCTable.Body>
337
- {request_details.correction_data.map((item: any, idx: number) => (
338
- <PCTable.Row
339
- key={idx}
340
- style={{
341
- borderBottom: `1px solid ${getVar('--pc-border-color')}`,
342
- }}
343
- >
344
- <PCTable.Cell
345
- style={{
346
- padding: '0.75rem 1rem',
347
- fontWeight: pcStyles.fontWeightMedium.fontWeight,
348
- color: getVar('--pc-text-primary'),
349
- }}
350
- >
351
- {item.name}
352
- </PCTable.Cell>
353
- <PCTable.Cell
354
- style={{
355
- padding: '0.75rem 1rem',
356
- color: getVar('--pc-text-secondary'),
357
- wordBreak: 'break-word',
358
- }}
359
- >
360
- {item.curr_value || '-'}
361
- </PCTable.Cell>
362
- <PCTable.Cell
363
- style={{
364
- padding: '0.75rem 1rem',
365
- color: getVar('--pc-text-secondary'),
366
- wordBreak: 'break-word',
367
- }}
368
- >
369
- {item.new_value || '-'}
370
- </PCTable.Cell>
371
- </PCTable.Row>
372
- ))}
373
- </PCTable.Body>
374
- </PCTable>
375
- </div>
376
- </div>
377
- </div>
378
- )}
379
-
380
- {/* Nomination Data */}
381
- {request_details.nomination_data && (
382
- <div>
383
- <PCText
384
- weight="semibold"
385
- style={{
386
- marginBottom: pcStyles.mbMd.marginBottom,
387
- color: getVar('--pc-text-primary'),
388
- }}
389
- >
390
- {t('nomination')}
391
- </PCText>
392
- <div
393
- style={{
394
- backgroundColor: getVar('--pc-bg-secondary'),
395
- padding: pcStyles.pMd.padding,
396
- borderRadius: pcStyles.borderRadiusMd,
397
- border: `1px solid ${getVar('--pc-border-color')}`,
398
- ...pcStyles.flex,
399
- ...pcStyles.flexCol,
400
- gap: pcStyles.gapSm.gap,
401
- }}
402
- >
403
- <div>
404
- <PCText size="xs" weight="medium" color="secondary">
405
- {t('nomineeEmail')}
406
- </PCText>
407
- <PCText size="sm" style={{ color: getVar('--pc-text-primary') }}>
408
- {request_details.nomination_data.nominee_email || '-'}
409
- </PCText>
410
- </div>
411
- <div>
412
- <PCText size="xs" weight="medium" color="secondary">
413
- {t('nomineeMobile')}
414
- </PCText>
415
- <PCText size="sm" style={{ color: getVar('--pc-text-primary') }}>
416
- {request_details.nomination_data.nominee_mobile || '-'}
417
- </PCText>
418
- </div>
419
- </div>
420
- </div>
421
- )}
422
-
423
- {/* Grievance Types */}
424
- {request_details.grievance_types && request_details.grievance_types.length > 0 && (
425
- <div>
426
- <PCText
427
- weight="semibold"
428
- style={{
429
- marginBottom: pcStyles.mbMd.marginBottom,
430
- color: getVar('--pc-text-primary'),
431
- }}
432
- >
433
- {t('grievanceTypes')}
434
- </PCText>
435
- <div style={{ ...pcStyles.flex, flexWrap: 'wrap', gap: pcStyles.gapSm.gap }}>
436
- {request_details.grievance_types.map((g: any, idx: number) => (
437
- <PCBadge key={idx} variant="secondary" size="sm" className="pc-status-badge">
438
- {g.grievance?.replace('_', ' ')}
439
- </PCBadge>
440
- ))}
441
- </div>
442
- </div>
443
- )}
444
- </div>
445
- )}
446
- </div>
447
-
448
- {/* Footer */}
449
- <div
450
- style={{
451
- padding: `${getVar('--pc-spacing-md')} ${getVar('--pc-spacing-lg')}`,
452
- ...pcStyles.flex,
453
- ...pcStyles.justifyEnd,
454
- backgroundColor: 'transparent',
455
- marginTop: 'auto',
456
- }}
457
- >
458
- <PCButton
459
- variant="outline"
460
- onClick={onClose}
461
- size="sm"
462
- >
463
- {t('close')}
464
- </PCButton>
465
- </div>
466
- </div>
467
- </PCModal>
468
- );
469
- }