@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
@@ -1,468 +0,0 @@
1
- import { useTranslation } from 'react-i18next';
2
- import { type Table as ReactTableType } from '@tanstack/react-table';
3
- import {
4
- PiCaretDoubleLeftBold,
5
- PiCaretDoubleRightBold,
6
- PiCaretLeftBold,
7
- PiCaretRightBold,
8
- } from 'react-icons/pi';
9
- import { PCActionIcon, PCSelect, PCText } from '../ui';
10
- import { pcStyles } from '../styles/pcStyles';
11
-
12
- const getVar = (varName: string): string => `var(${varName})`;
13
-
14
- const pageSizeOptions = [
15
- { value: 5, label: '5' },
16
- { value: 10, label: '10' },
17
- { value: 15, label: '15' },
18
- { value: 20, label: '20' },
19
- { value: 25, label: '25' },
20
- ];
21
-
22
- export type AdvancedTablePaginationProps<TData extends Record<string, any>> = {
23
- table: ReactTableType<TData>;
24
- showPageSize?: boolean;
25
- showSelectedCount?: boolean;
26
- className?: string;
27
- };
28
-
29
- export default function AdvancedTablePagination<
30
- TData extends Record<string, any>,
31
- >({
32
- table,
33
- showPageSize = true,
34
- showSelectedCount = false,
35
- className,
36
- }: AdvancedTablePaginationProps<TData>) {
37
- const { t } = useTranslation();
38
- const currentPageSize = table.getState().pagination.pageSize;
39
- const currentPageSizeOption = pageSizeOptions.find(opt => opt.value === currentPageSize) || pageSizeOptions[1];
40
-
41
- const currentPage = table.getState().pagination.pageIndex + 1;
42
- const totalPages = table.getPageCount();
43
- const totalRows = table.getFilteredRowModel().rows.length;
44
-
45
- // Preserve pagination visibility even when rows are temporarily empty during loading
46
- const shouldShowPagination = totalPages > 0 || totalRows > 0;
47
-
48
- // Don't render if there's truly no data and no pages
49
- if (!shouldShowPagination && totalRows === 0 && totalPages === 0) {
50
- return null;
51
- }
52
-
53
- return (
54
- <div
55
- className={className}
56
- style={{
57
- ...pcStyles.flex,
58
- ...pcStyles.flexCol,
59
- ...pcStyles.itemsCenter,
60
- width: '100%',
61
- paddingTop: '0.375rem',
62
- paddingBottom: '0.125rem',
63
- gap: '0.375rem',
64
- minHeight: '44px',
65
- opacity: shouldShowPagination ? 1 : 0.5,
66
- pointerEvents: shouldShowPagination ? 'auto' : 'none',
67
- }}
68
- >
69
- {/* Mobile Layout: Stacked (screens < 640px) */}
70
- <div style={{
71
- ...pcStyles.flex,
72
- ...pcStyles.flexCol,
73
- ...pcStyles.itemsCenter,
74
- ...pcStyles.gapSm,
75
- width: '100%',
76
- }} className="pc-block-xs pc-hidden-sm">
77
- {showPageSize && (
78
- <div style={{
79
- ...pcStyles.flex,
80
- ...pcStyles.itemsCenter,
81
- ...pcStyles.gapSm,
82
- width: '100%',
83
- ...pcStyles.justifyCenter,
84
- }}>
85
- <PCText
86
- size="sm"
87
- color="secondary"
88
- style={{
89
- whiteSpace: 'nowrap',
90
- flexShrink: 0,
91
- }}
92
- >
93
- {t('rowsPerPage')}
94
- </PCText>
95
- <PCSelect
96
- size="sm"
97
- options={pageSizeOptions}
98
- value={currentPageSizeOption}
99
- onChange={(v) => {
100
- if (v) {
101
- table.setPageSize(Number(v.value));
102
- }
103
- }}
104
- style={{
105
- width: '56px',
106
- minWidth: '56px',
107
- flexShrink: 0,
108
- }}
109
- />
110
- </div>
111
- )}
112
-
113
- <div style={{
114
- ...pcStyles.flex,
115
- ...pcStyles.itemsCenter,
116
- ...pcStyles.gapSm,
117
- flexWrap: 'wrap',
118
- ...pcStyles.justifyCenter,
119
- }}>
120
- {totalPages > 0 && (
121
- <div style={{
122
- ...pcStyles.flex,
123
- ...pcStyles.itemsCenter,
124
- ...pcStyles.gapXs,
125
- marginRight: getVar('--pc-spacing-xs'),
126
- flexShrink: 0,
127
- }}>
128
- <PCText
129
- size="sm"
130
- color="secondary"
131
- style={{ whiteSpace: 'nowrap' }}
132
- >
133
- {t('pageOf', { current: currentPage, total: totalPages })}
134
- </PCText>
135
- </div>
136
- )}
137
- <div style={{
138
- display: 'grid',
139
- gridTemplateColumns: 'repeat(4, 1fr)',
140
- gap: '0.25rem',
141
- flexShrink: 0,
142
- }}>
143
- <PCActionIcon
144
- size="sm"
145
- variant="outline"
146
- aria-label={t('goToFirstPage')}
147
- onClick={() => table.firstPage()}
148
- disabled={!table.getCanPreviousPage()}
149
- style={{
150
- borderRadius: '0.5rem',
151
- borderColor: getVar('--pc-border-color'),
152
- color: getVar('--pc-text-primary'),
153
- backgroundColor: getVar('--pc-bg-primary'),
154
- transition: 'all 0.2s ease',
155
- }}
156
- onMouseEnter={(e) => {
157
- if (!table.getCanPreviousPage()) return;
158
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
159
- e.currentTarget.style.borderColor = getVar('--pc-primary');
160
- e.currentTarget.style.color = getVar('--pc-primary');
161
- }}
162
- onMouseLeave={(e) => {
163
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
164
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
165
- e.currentTarget.style.color = getVar('--pc-text-primary');
166
- }}
167
- >
168
- <PiCaretDoubleLeftBold size={14} />
169
- </PCActionIcon>
170
- <PCActionIcon
171
- size="sm"
172
- variant="outline"
173
- aria-label={t('goToPreviousPage')}
174
- onClick={() => table.previousPage()}
175
- disabled={!table.getCanPreviousPage()}
176
- style={{
177
- borderRadius: '0.5rem',
178
- borderColor: getVar('--pc-border-color'),
179
- color: getVar('--pc-text-primary'),
180
- backgroundColor: getVar('--pc-bg-primary'),
181
- transition: 'all 0.2s ease',
182
- }}
183
- onMouseEnter={(e) => {
184
- if (!table.getCanPreviousPage()) return;
185
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
186
- e.currentTarget.style.borderColor = getVar('--pc-primary');
187
- e.currentTarget.style.color = getVar('--pc-primary');
188
- }}
189
- onMouseLeave={(e) => {
190
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
191
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
192
- e.currentTarget.style.color = getVar('--pc-text-primary');
193
- }}
194
- >
195
- <PiCaretLeftBold size={14} />
196
- </PCActionIcon>
197
- <PCActionIcon
198
- size="sm"
199
- variant="outline"
200
- aria-label={t('goToNextPage')}
201
- onClick={() => table.nextPage()}
202
- disabled={!table.getCanNextPage()}
203
- style={{
204
- borderRadius: '0.5rem',
205
- borderColor: getVar('--pc-border-color'),
206
- color: getVar('--pc-text-primary'),
207
- backgroundColor: getVar('--pc-bg-primary'),
208
- transition: 'all 0.2s ease',
209
- }}
210
- onMouseEnter={(e) => {
211
- if (!table.getCanNextPage()) return;
212
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
213
- e.currentTarget.style.borderColor = getVar('--pc-primary');
214
- e.currentTarget.style.color = getVar('--pc-primary');
215
- }}
216
- onMouseLeave={(e) => {
217
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
218
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
219
- e.currentTarget.style.color = getVar('--pc-text-primary');
220
- }}
221
- >
222
- <PiCaretRightBold size={14} />
223
- </PCActionIcon>
224
- <PCActionIcon
225
- size="sm"
226
- variant="outline"
227
- aria-label={t('goToLastPage')}
228
- onClick={() => table.lastPage()}
229
- disabled={!table.getCanNextPage()}
230
- style={{
231
- borderRadius: '0.5rem',
232
- borderColor: getVar('--pc-border-color'),
233
- color: getVar('--pc-text-primary'),
234
- backgroundColor: getVar('--pc-bg-primary'),
235
- transition: 'all 0.2s ease',
236
- }}
237
- onMouseEnter={(e) => {
238
- if (!table.getCanNextPage()) return;
239
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
240
- e.currentTarget.style.borderColor = getVar('--pc-primary');
241
- e.currentTarget.style.color = getVar('--pc-primary');
242
- }}
243
- onMouseLeave={(e) => {
244
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
245
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
246
- e.currentTarget.style.color = getVar('--pc-text-primary');
247
- }}
248
- >
249
- <PiCaretDoubleRightBold size={14} />
250
- </PCActionIcon>
251
- </div>
252
- </div>
253
- </div>
254
-
255
- {/* Desktop/Tablet Layout: Horizontal (screens >= 640px) */}
256
- <div style={{
257
- ...pcStyles.flex,
258
- ...pcStyles.itemsCenter,
259
- ...pcStyles.justifyBetween,
260
- width: '100%',
261
- flexWrap: 'wrap',
262
- gap: getVar('--pc-spacing-sm'),
263
- }} className="pc-hidden-xs pc-flex-sm">
264
- {/* Left Group: Rows per page */}
265
- <div style={{
266
- ...pcStyles.flex,
267
- ...pcStyles.itemsCenter,
268
- ...pcStyles.gapSm,
269
- flexShrink: 0,
270
- flexWrap: 'wrap',
271
- }}>
272
- {showPageSize && (
273
- <div style={{
274
- ...pcStyles.flex,
275
- ...pcStyles.itemsCenter,
276
- ...pcStyles.gapSm,
277
- flexShrink: 0,
278
- }}>
279
- <PCText
280
- size="sm"
281
- color="secondary"
282
- style={{
283
- whiteSpace: 'nowrap',
284
- flexShrink: 0,
285
- }}
286
- >
287
- {t('rowsPerPage')}
288
- </PCText>
289
- <PCSelect
290
- size="sm"
291
- options={pageSizeOptions}
292
- value={currentPageSizeOption}
293
- onChange={(v) => {
294
- if (v) {
295
- table.setPageSize(Number(v.value));
296
- }
297
- }}
298
- style={{
299
- width: '56px',
300
- minWidth: '56px',
301
- flexShrink: 0,
302
- }}
303
- />
304
- </div>
305
- )}
306
-
307
- {showSelectedCount && (
308
- <PCText
309
- size="sm"
310
- color="secondary"
311
- style={{
312
- whiteSpace: 'nowrap',
313
- flexShrink: 0,
314
- }}
315
- >
316
- {t('rowsSelected', {
317
- count: table.getFilteredSelectedRowModel().rows.length,
318
- total: table.getFilteredRowModel().rows.length,
319
- })}
320
- </PCText>
321
- )}
322
- </div>
323
-
324
- {/* Right Group: Page info + Navigation */}
325
- <div style={{
326
- ...pcStyles.flex,
327
- ...pcStyles.itemsCenter,
328
- ...pcStyles.gapSm,
329
- flexShrink: 0,
330
- flexWrap: 'wrap',
331
- }}>
332
- {totalPages > 0 && (
333
- <div style={{
334
- ...pcStyles.flex,
335
- ...pcStyles.itemsCenter,
336
- ...pcStyles.gapXs,
337
- marginRight: getVar('--pc-spacing-xs'),
338
- flexShrink: 0,
339
- }}>
340
- <PCText
341
- size="sm"
342
- color="secondary"
343
- style={{ whiteSpace: 'nowrap' }}
344
- >
345
- {t('pageOf', { current: currentPage, total: totalPages })}
346
- </PCText>
347
- </div>
348
- )}
349
- <div style={{
350
- display: 'grid',
351
- gridTemplateColumns: 'repeat(4, 1fr)',
352
- gap: '0.25rem',
353
- flexShrink: 0,
354
- }}>
355
- <PCActionIcon
356
- size="sm"
357
- variant="outline"
358
- aria-label={t('goToFirstPage')}
359
- onClick={() => table.firstPage()}
360
- disabled={!table.getCanPreviousPage()}
361
- style={{
362
- borderRadius: '0.5rem',
363
- borderColor: getVar('--pc-border-color'),
364
- color: getVar('--pc-text-primary'),
365
- backgroundColor: getVar('--pc-bg-primary'),
366
- transition: 'all 0.2s ease',
367
- }}
368
- onMouseEnter={(e) => {
369
- if (!table.getCanPreviousPage()) return;
370
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
371
- e.currentTarget.style.borderColor = getVar('--pc-primary');
372
- e.currentTarget.style.color = getVar('--pc-primary');
373
- }}
374
- onMouseLeave={(e) => {
375
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
376
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
377
- e.currentTarget.style.color = getVar('--pc-text-primary');
378
- }}
379
- >
380
- <PiCaretDoubleLeftBold size={14} />
381
- </PCActionIcon>
382
- <PCActionIcon
383
- size="sm"
384
- variant="outline"
385
- aria-label={t('goToPreviousPage')}
386
- onClick={() => table.previousPage()}
387
- disabled={!table.getCanPreviousPage()}
388
- style={{
389
- borderRadius: '0.5rem',
390
- borderColor: getVar('--pc-border-color'),
391
- color: getVar('--pc-text-primary'),
392
- backgroundColor: getVar('--pc-bg-primary'),
393
- transition: 'all 0.2s ease',
394
- }}
395
- onMouseEnter={(e) => {
396
- if (!table.getCanPreviousPage()) return;
397
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
398
- e.currentTarget.style.borderColor = getVar('--pc-primary');
399
- e.currentTarget.style.color = getVar('--pc-primary');
400
- }}
401
- onMouseLeave={(e) => {
402
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
403
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
404
- e.currentTarget.style.color = getVar('--pc-text-primary');
405
- }}
406
- >
407
- <PiCaretLeftBold size={14} />
408
- </PCActionIcon>
409
- <PCActionIcon
410
- size="sm"
411
- variant="outline"
412
- aria-label={t('goToNextPage')}
413
- onClick={() => table.nextPage()}
414
- disabled={!table.getCanNextPage()}
415
- style={{
416
- borderRadius: '0.5rem',
417
- borderColor: getVar('--pc-border-color'),
418
- color: getVar('--pc-text-primary'),
419
- backgroundColor: getVar('--pc-bg-primary'),
420
- transition: 'all 0.2s ease',
421
- }}
422
- onMouseEnter={(e) => {
423
- if (!table.getCanNextPage()) return;
424
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
425
- e.currentTarget.style.borderColor = getVar('--pc-primary');
426
- e.currentTarget.style.color = getVar('--pc-primary');
427
- }}
428
- onMouseLeave={(e) => {
429
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
430
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
431
- e.currentTarget.style.color = getVar('--pc-text-primary');
432
- }}
433
- >
434
- <PiCaretRightBold size={14} />
435
- </PCActionIcon>
436
- <PCActionIcon
437
- size="sm"
438
- variant="outline"
439
- aria-label={t('goToLastPage')}
440
- onClick={() => table.lastPage()}
441
- disabled={!table.getCanNextPage()}
442
- style={{
443
- borderRadius: '0.5rem',
444
- borderColor: getVar('--pc-border-color'),
445
- color: getVar('--pc-text-primary'),
446
- backgroundColor: getVar('--pc-bg-primary'),
447
- transition: 'all 0.2s ease',
448
- }}
449
- onMouseEnter={(e) => {
450
- if (!table.getCanNextPage()) return;
451
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-hover');
452
- e.currentTarget.style.borderColor = getVar('--pc-primary');
453
- e.currentTarget.style.color = getVar('--pc-primary');
454
- }}
455
- onMouseLeave={(e) => {
456
- e.currentTarget.style.backgroundColor = getVar('--pc-bg-primary');
457
- e.currentTarget.style.borderColor = getVar('--pc-border-color');
458
- e.currentTarget.style.color = getVar('--pc-text-primary');
459
- }}
460
- >
461
- <PiCaretDoubleRightBold size={14} />
462
- </PCActionIcon>
463
- </div>
464
- </div>
465
- </div>
466
- </div>
467
- );
468
- }
@@ -1,2 +0,0 @@
1
- export { default as AdvancedTable } from './AdvancedTable';
2
- export { default as AdvancedTablePagination } from './AdvancedTablePagination';
@@ -1,29 +0,0 @@
1
- declare module "*.svg" {
2
- const content: string;
3
- export default content;
4
- }
5
-
6
- declare module "*.png" {
7
- const content: string;
8
- export default content;
9
- }
10
-
11
- declare module "*.jpg" {
12
- const content: string;
13
- export default content;
14
- }
15
-
16
- declare module "*.jpeg" {
17
- const content: string;
18
- export default content;
19
- }
20
-
21
- declare module "*.gif" {
22
- const content: string;
23
- export default content;
24
- }
25
-
26
- declare module "*.webp" {
27
- const content: string;
28
- export default content;
29
- }
@@ -1,69 +0,0 @@
1
- import { useTranslation } from 'react-i18next';
2
- import { pcStyles } from '../styles/pcStyles';
3
- import PoweredByRedacto from '../assets/poweredByRedacto.svg';
4
- import { useBranding } from '../context/BrandingContext';
5
-
6
- const getVar = (varName: string): string => `var(${varName})`;
7
-
8
- export default function Footer() {
9
- const { t } = useTranslation();
10
- const branding = useBranding();
11
-
12
- if (branding?.hide_platform_branding) return null;
13
-
14
- return (
15
- <footer
16
- style={{
17
- ...pcStyles.flex,
18
- ...pcStyles.justifyCenter,
19
- width: '100%',
20
- paddingTop: '0.25rem',
21
- paddingBottom: '0.25rem',
22
- }}
23
- >
24
- <div
25
- style={{
26
- ...pcStyles.flex,
27
- ...pcStyles.flexCol,
28
- ...pcStyles.itemsCenter,
29
- ...pcStyles.justifyCenter,
30
- ...pcStyles.gapSm,
31
- ...pcStyles.textCenter,
32
- minWidth: 'fit-content',
33
- }}
34
- >
35
- <span
36
- style={{
37
- ...pcStyles.fontWeightBold,
38
- color: getVar('--pc-text-secondary'),
39
- fontSize: 'clamp(0.75rem, 1.5vw, 1rem)',
40
- lineHeight: 1.2,
41
- }}
42
- >
43
- {t('poweredBy')}
44
- </span>
45
- <div
46
- style={{
47
- display: 'inline-flex',
48
- alignItems: 'center',
49
- justifyContent: 'center',
50
- minHeight: '1.75rem',
51
- borderRadius: '9999px',
52
- }}
53
- >
54
- <img
55
- src={PoweredByRedacto}
56
- alt={t('redactoLogoAlt')}
57
- style={{
58
- height: 'clamp(1.125rem, 2.5vw, 1.75rem)',
59
- width: 'auto',
60
- objectFit: 'contain',
61
- display: 'block',
62
- filter: 'drop-shadow(0 1px 1px rgba(15, 23, 42, 0.06))',
63
- }}
64
- />
65
- </div>
66
- </div>
67
- </footer>
68
- );
69
- }
@@ -1,54 +0,0 @@
1
- import { PCTitle, PCText } from './index';
2
- import { pcStyles } from '../styles/pcStyles';
3
-
4
- const getVar = (varName: string): string => `var(${varName})`;
5
-
6
- // form block wrapper
7
- export function FormBlockWrapper({
8
- title,
9
- description,
10
- children,
11
- className,
12
- inputClassName,
13
- }: React.PropsWithChildren<{
14
- title?: string;
15
- description?: string;
16
- className?: string;
17
- inputClassName?: string;
18
- }>) {
19
- return (
20
- <section
21
- className={className}
22
- style={{
23
- display: 'flex',
24
- flexDirection: 'column',
25
- width: '100%',
26
- gap: pcStyles.gapMd.gap,
27
- }}
28
- >
29
- {title && (
30
- <header style={{ marginBottom: pcStyles.mbSm.marginBottom }}>
31
- <PCTitle as="h5" style={{ ...pcStyles.fontWeightSemibold, color: getVar('--pc-text-primary') }}>
32
- {title}
33
- </PCTitle>
34
- {description && (
35
- <PCText size="sm" color="secondary" style={{ marginTop: pcStyles.mtXs.marginTop }}>
36
- {description}
37
- </PCText>
38
- )}
39
- </header>
40
- )}
41
- <div
42
- className={inputClassName}
43
- style={{
44
- width: '100%',
45
- display: 'flex',
46
- flexDirection: 'column',
47
- gap: pcStyles.gapMd.gap,
48
- }}
49
- >
50
- {children}
51
- </div>
52
- </section>
53
- );
54
- }