@redacto.io/consent-sdk-react 5.3.0 → 7.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 (68) hide show
  1. package/.turbo/turbo-build.log +24 -0
  2. package/CHANGELOG.md +23 -0
  3. package/dist/privacy-center.d.mts +100 -42
  4. package/dist/privacy-center.d.ts +100 -42
  5. package/dist/privacy-center.js +4232 -2247
  6. package/dist/privacy-center.mjs +4266 -2284
  7. package/package.json +1 -1
  8. package/src/RedactoPrivacyCenter/PrivacyCenterLayout.tsx +6 -10
  9. package/src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx +18 -17
  10. package/src/RedactoPrivacyCenter/api/actions.ts +52 -8
  11. package/src/RedactoPrivacyCenter/api/client.ts +58 -15
  12. package/src/RedactoPrivacyCenter/api/orgBranding.ts +9 -0
  13. package/src/RedactoPrivacyCenter/components/ConsentManager.tsx +729 -278
  14. package/src/RedactoPrivacyCenter/components/ConsentManagerCells.tsx +187 -0
  15. package/src/RedactoPrivacyCenter/components/ConsentManagerColumns.tsx +65 -165
  16. package/src/RedactoPrivacyCenter/components/ConsentManagerExpandedRow.tsx +179 -0
  17. package/src/RedactoPrivacyCenter/components/ConsentManagerGroupedColumns.tsx +318 -0
  18. package/src/RedactoPrivacyCenter/components/ConsentManagerProductCards.tsx +333 -0
  19. package/src/RedactoPrivacyCenter/components/ConsentManagerPurposeCards.tsx +102 -0
  20. package/src/RedactoPrivacyCenter/components/ConsentManagerTableSkeleton.tsx +6 -2
  21. package/src/RedactoPrivacyCenter/components/Form.tsx +3 -3
  22. package/src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx +9 -6
  23. package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationBell.tsx +1 -1
  24. package/src/RedactoPrivacyCenter/components/PrivacyCenterLayout.tsx +101 -56
  25. package/src/RedactoPrivacyCenter/components/SideMenuBarPC/SideBarPC.tsx +16 -2
  26. package/src/RedactoPrivacyCenter/components/types.ts +2 -5
  27. package/src/RedactoPrivacyCenter/context/BrandingContext.tsx +44 -0
  28. package/src/RedactoPrivacyCenter/context/PageChromeContext.tsx +21 -1
  29. package/src/RedactoPrivacyCenter/lib/api.ts +70 -28
  30. package/src/RedactoPrivacyCenter/lib/consent-manager/utils.tsx +4 -2
  31. package/src/RedactoPrivacyCenter/lib/types.ts +79 -36
  32. package/src/RedactoPrivacyCenter/locales/as/translation.json +12 -1
  33. package/src/RedactoPrivacyCenter/locales/bho/translation.json +12 -1
  34. package/src/RedactoPrivacyCenter/locales/bn/translation.json +12 -1
  35. package/src/RedactoPrivacyCenter/locales/brx/translation.json +12 -1
  36. package/src/RedactoPrivacyCenter/locales/doi/translation.json +12 -1
  37. package/src/RedactoPrivacyCenter/locales/en/translation.json +16 -1
  38. package/src/RedactoPrivacyCenter/locales/gom/translation.json +12 -1
  39. package/src/RedactoPrivacyCenter/locales/gu/translation.json +12 -1
  40. package/src/RedactoPrivacyCenter/locales/hi/translation.json +15 -1
  41. package/src/RedactoPrivacyCenter/locales/kn/translation.json +12 -1
  42. package/src/RedactoPrivacyCenter/locales/ks/translation.json +12 -1
  43. package/src/RedactoPrivacyCenter/locales/mai/translation.json +12 -1
  44. package/src/RedactoPrivacyCenter/locales/ml/translation.json +12 -1
  45. package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +12 -1
  46. package/src/RedactoPrivacyCenter/locales/mr/translation.json +12 -1
  47. package/src/RedactoPrivacyCenter/locales/ne/translation.json +12 -1
  48. package/src/RedactoPrivacyCenter/locales/or/translation.json +12 -1
  49. package/src/RedactoPrivacyCenter/locales/pa/translation.json +12 -1
  50. package/src/RedactoPrivacyCenter/locales/sa/translation.json +12 -1
  51. package/src/RedactoPrivacyCenter/locales/sat/translation.json +12 -1
  52. package/src/RedactoPrivacyCenter/locales/sd/translation.json +12 -1
  53. package/src/RedactoPrivacyCenter/locales/ta/translation.json +12 -1
  54. package/src/RedactoPrivacyCenter/locales/te/translation.json +12 -1
  55. package/src/RedactoPrivacyCenter/locales/ur/translation.json +12 -1
  56. package/src/RedactoPrivacyCenter/styles/applyBrandingTheme.ts +66 -0
  57. package/src/RedactoPrivacyCenter/styles/injectStyles.ts +528 -114
  58. package/src/RedactoPrivacyCenter/styles/pcStyles.ts +3 -2
  59. package/src/RedactoPrivacyCenter/styles/variables.css +5 -42
  60. package/src/RedactoPrivacyCenter/table/AdvancedTable.tsx +36 -16
  61. package/src/RedactoPrivacyCenter/table/AdvancedTablePagination.tsx +4 -12
  62. package/src/RedactoPrivacyCenter/ui/Footer.tsx +4 -10
  63. package/src/RedactoPrivacyCenter/ui/PCInput.tsx +1 -1
  64. package/src/RedactoPrivacyCenter/ui/PCSelect.tsx +51 -5
  65. package/src/privacy-center.ts +7 -3
  66. package/src/RedactoPrivacyCenter/components/ThemeTransitionOverlay.tsx +0 -85
  67. package/src/RedactoPrivacyCenter/context/theme.tsx +0 -127
  68. package/src/RedactoPrivacyCenter/ui/ThemeToggle.tsx +0 -72
@@ -32,7 +32,7 @@ export const injectPCStyles = () => {
32
32
  // CSS variables will be injected via a separate import or inline
33
33
  // For now, we'll rely on the host app or inject them here
34
34
  variablesStyle.textContent = `
35
- :root, [data-theme="light"] {
35
+ :root {
36
36
  --pc-primary: #3b82f6;
37
37
  --pc-primary-hover: #2563eb;
38
38
  --pc-primary-active: #1d4ed8;
@@ -100,42 +100,13 @@ export const injectPCStyles = () => {
100
100
  --pc-z-popover: 1060;
101
101
  --pc-z-tooltip: 1070;
102
102
  --pc-icon-filter: 0;
103
+ --pc-consent-toolbar-control-height: 2rem;
104
+ --pc-navbar-actions-control-height: var(--pc-consent-toolbar-control-height);
103
105
  --pc-sidebar-mobile-width: 280px;
104
106
  --pc-sidebar-collapsed-width: 80px;
105
107
  --pc-sidebar-expanded-width: 300px;
106
108
  --pc-sidebar-expanded-width-2xl: 320px;
107
109
  }
108
- [data-theme="dark"] {
109
- --pc-primary: #60a5fa;
110
- --pc-primary-hover: #3b82f6;
111
- --pc-primary-active: #2563eb;
112
- --pc-secondary: #9ca3af;
113
- --pc-secondary-hover: #6b7280;
114
- --pc-success: #34d399;
115
- --pc-error: #f87171;
116
- --pc-warning: #fbbf24;
117
- --pc-warning-bg: #78350f;
118
- --pc-warning-border: #fbbf24;
119
- --pc-warning-text: #fef3c7;
120
- --pc-info: #60a5fa;
121
- --pc-bg-shell: #111827;
122
- --pc-bg-primary: #1b2435;
123
- --pc-bg-secondary: #243044;
124
- --pc-bg-tertiary: #31405a;
125
- --pc-bg-hover: #243044;
126
- --pc-bg-active: #31405a;
127
- --pc-bg-overlay: rgba(0, 0, 0, 0.7);
128
- --pc-text-primary: #f9fafb;
129
- --pc-text-secondary: #d1d5db;
130
- --pc-text-tertiary: #9ca3af;
131
- --pc-text-inverse: #111827;
132
- --pc-text-disabled: #6b7280;
133
- --pc-border-color: rgba(148, 163, 184, 0.18);
134
- --pc-border-color-hover: rgba(148, 163, 184, 0.28);
135
- --pc-border-color-focus: #60a5fa;
136
- --pc-sidebar-shadow: 14px 0 36px rgba(2, 6, 23, 0.42), 1px 0 0 rgba(148, 163, 184, 0.08);
137
- --pc-icon-filter: 1;
138
- }
139
110
  `;
140
111
  document.head.appendChild(variablesStyle);
141
112
  }
@@ -166,82 +137,6 @@ export const injectPCStyles = () => {
166
137
  transition: none !important;
167
138
  }
168
139
 
169
- /* Sun and Moon Rising Animation */
170
- @keyframes pc-sun-moon-rise {
171
- 0% {
172
- bottom: -150px;
173
- opacity: 0;
174
- transform: translateX(-50%) scale(0.5) rotate(-10deg);
175
- }
176
- 15% {
177
- opacity: 1;
178
- transform: translateX(-50%) scale(1) rotate(0deg);
179
- }
180
- 70% {
181
- opacity: 1;
182
- transform: translateX(-50%) scale(1.1) rotate(5deg);
183
- }
184
- 100% {
185
- bottom: calc(100vh + 50px);
186
- opacity: 0;
187
- transform: translateX(-50%) scale(0.7) rotate(10deg);
188
- }
189
- }
190
-
191
- /* Sun specific glow animation */
192
- @keyframes pc-sun-glow {
193
- 0%, 100% {
194
- filter: drop-shadow(0 0 30px rgba(251, 191, 36, 0.7))
195
- drop-shadow(0 0 60px rgba(251, 191, 36, 0.4));
196
- }
197
- 50% {
198
- filter: drop-shadow(0 0 50px rgba(251, 191, 36, 0.9))
199
- drop-shadow(0 0 100px rgba(251, 191, 36, 0.6));
200
- }
201
- }
202
-
203
- /* Moon specific glow animation */
204
- @keyframes pc-moon-glow {
205
- 0%, 100% {
206
- filter: drop-shadow(0 0 30px rgba(224, 231, 255, 0.7))
207
- drop-shadow(0 0 60px rgba(224, 231, 255, 0.4));
208
- }
209
- 50% {
210
- filter: drop-shadow(0 0 50px rgba(224, 231, 255, 0.9))
211
- drop-shadow(0 0 100px rgba(224, 231, 255, 0.6));
212
- }
213
- }
214
-
215
- .pc-theme-transition-overlay {
216
- position: fixed;
217
- top: 0;
218
- left: 0;
219
- right: 0;
220
- bottom: 0;
221
- pointer-events: none;
222
- z-index: 9999;
223
- display: flex;
224
- align-items: center;
225
- justify-content: center;
226
- opacity: 0;
227
- will-change: opacity;
228
- overflow: hidden;
229
- }
230
-
231
- .pc-theme-transition-icon {
232
- will-change: transform, opacity, bottom, filter;
233
- }
234
-
235
- .pc-theme-transition-light {
236
- animation: pc-sun-moon-rise 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards,
237
- pc-sun-glow 1s ease-in-out;
238
- }
239
-
240
- .pc-theme-transition-dark {
241
- animation: pc-sun-moon-rise 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards,
242
- pc-moon-glow 1s ease-in-out;
243
- }
244
-
245
140
  /* Keyframe Animations */
246
141
  @keyframes pc-spin {
247
142
  0% {
@@ -361,7 +256,8 @@ export const injectPCStyles = () => {
361
256
  }
362
257
 
363
258
  .pc-button-secondary:hover:not(:disabled) {
364
- background-color: var(--pc-secondary-hover) !important;
259
+ background-color: var(--pc-primary) !important;
260
+ color: var(--pc-text-inverse) !important;
365
261
  }
366
262
 
367
263
  .pc-button-outline:hover:not(:disabled) {
@@ -970,6 +866,516 @@ export const injectPCStyles = () => {
970
866
  }
971
867
  }
972
868
 
869
+ .pc-navbar-actions {
870
+ align-items: center !important;
871
+ }
872
+ .pc-navbar-language-select {
873
+ width: auto !important;
874
+ min-width: 120px !important;
875
+ max-width: min(65vw, 320px) !important;
876
+ }
877
+ .pc-navbar-language-select .pc-select {
878
+ box-sizing: border-box !important;
879
+ height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
880
+ min-height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
881
+ max-height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
882
+ padding: 0 0.625rem !important;
883
+ border-color: var(--pc-border-color) !important;
884
+ border-radius: 0.5rem !important;
885
+ background-color: var(--pc-bg-primary) !important;
886
+ box-shadow: none !important;
887
+ font-size: 0.8125rem !important;
888
+ line-height: 1 !important;
889
+ }
890
+ .pc-navbar-language-select .pc-select > span:nth-child(2) {
891
+ line-height: 1.25 !important;
892
+ }
893
+ .pc-navbar-language-select .pc-select svg {
894
+ width: 12px;
895
+ height: 12px;
896
+ }
897
+ .pc-navbar-icon-btn {
898
+ box-sizing: border-box !important;
899
+ width: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
900
+ height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
901
+ min-width: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
902
+ min-height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem)) !important;
903
+ border: 1px solid var(--pc-border-color) !important;
904
+ border-radius: 0.5rem !important;
905
+ background-color: var(--pc-bg-primary) !important;
906
+ color: var(--pc-text-primary) !important;
907
+ padding: 0 !important;
908
+ }
909
+ .pc-navbar-icon-btn:hover:not(:disabled) {
910
+ background-color: var(--pc-bg-hover) !important;
911
+ border-color: var(--pc-border-color-hover) !important;
912
+ }
913
+
914
+ /* Manage Consent specific shell + table polish */
915
+ .pc-consent-manager-surface {
916
+ width: 100%;
917
+ margin: 0;
918
+ padding-top: 0.25rem;
919
+ }
920
+ .pc-consent-shell-card .pc-consent-tabs-row {
921
+ align-items: center !important;
922
+ justify-content: space-between !important;
923
+ padding-top: 0.125rem !important;
924
+ padding-bottom: 0.375rem !important;
925
+ }
926
+ .pc-consent-shell-card .pc-consent-tabs-left {
927
+ display: flex !important;
928
+ align-items: center !important;
929
+ min-width: 0 !important;
930
+ }
931
+ .pc-consent-shell-card .pc-consent-view-toggle {
932
+ margin-left: auto !important;
933
+ display: flex !important;
934
+ align-items: center !important;
935
+ gap: 0.625rem !important;
936
+ padding-right: 0.5rem !important;
937
+ flex-shrink: 0 !important;
938
+ margin-bottom: 0.0625rem !important;
939
+ }
940
+ .pc-consent-shell-card .pc-consent-view-toggle-label {
941
+ white-space: nowrap !important;
942
+ font-size: 0.75rem !important;
943
+ color: var(--pc-text-secondary) !important;
944
+ }
945
+ .pc-consent-shell-card .pc-consent-view-toggle-group {
946
+ box-shadow: none !important;
947
+ border: 1px solid var(--pc-border-color) !important;
948
+ background-color: var(--pc-bg-secondary) !important;
949
+ }
950
+ .pc-consent-shell-card .pc-consent-view-toggle-btn {
951
+ color: var(--pc-text-secondary);
952
+ }
953
+ .pc-consent-shell-card .pc-consent-view-toggle-btn:hover:not(.is-active) {
954
+ background-color: var(--pc-bg-hover) !important;
955
+ color: var(--pc-text-primary) !important;
956
+ }
957
+ .pc-consent-shell-card .pc-consent-view-toggle-btn.is-active {
958
+ background-color: var(--pc-primary) !important;
959
+ color: var(--pc-text-inverse) !important;
960
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12) !important;
961
+ }
962
+ .pc-consent-shell-card .pc-filters-responsive {
963
+ gap: 0.75rem !important;
964
+ }
965
+ @media (min-width: 768px) {
966
+ .pc-consent-shell-card .pc-filters-responsive {
967
+ align-items: center !important;
968
+ }
969
+ }
970
+ .pc-consent-shell-card .pc-search-responsive {
971
+ max-width: none !important;
972
+ }
973
+ .pc-consent-shell-card .pc-search-responsive > div {
974
+ width: 100% !important;
975
+ }
976
+ .pc-consent-shell-card .pc-search-responsive [style*="border"] {
977
+ border-color: var(--pc-border-color) !important;
978
+ box-shadow: none !important;
979
+ }
980
+ .pc-consent-shell-card .pc-search-responsive .pc-input-affix {
981
+ box-sizing: border-box !important;
982
+ height: var(--pc-consent-toolbar-control-height, 2rem) !important;
983
+ min-height: var(--pc-consent-toolbar-control-height, 2rem) !important;
984
+ max-height: var(--pc-consent-toolbar-control-height, 2rem) !important;
985
+ align-items: stretch !important;
986
+ }
987
+ .pc-consent-shell-card .pc-search-responsive .pc-input-affix > span:first-of-type,
988
+ .pc-consent-shell-card .pc-search-responsive .pc-input-affix > button {
989
+ align-self: center !important;
990
+ }
991
+ .pc-consent-shell-card .pc-search-responsive .pc-input {
992
+ box-sizing: border-box !important;
993
+ height: 100% !important;
994
+ min-height: 0 !important;
995
+ max-height: none !important;
996
+ padding: 0.25rem 0.5rem !important;
997
+ line-height: 1.25 !important;
998
+ font-size: 0.75rem !important;
999
+ }
1000
+ .pc-consent-shell-card .pc-filter-select .pc-select {
1001
+ box-sizing: border-box !important;
1002
+ height: var(--pc-consent-toolbar-control-height, 2rem) !important;
1003
+ min-height: var(--pc-consent-toolbar-control-height, 2rem) !important;
1004
+ max-height: var(--pc-consent-toolbar-control-height, 2rem) !important;
1005
+ padding: 0.25rem 0.5rem !important;
1006
+ line-height: 1 !important;
1007
+ font-size: 0.75rem !important;
1008
+ }
1009
+ .pc-consent-shell-card .pc-filter-select .pc-select > span:nth-child(2) {
1010
+ line-height: 1.25 !important;
1011
+ }
1012
+ .pc-consent-shell-card .pc-filters-summary {
1013
+ font-size: 0.6875rem !important;
1014
+ color: var(--pc-text-secondary) !important;
1015
+ }
1016
+ .pc-consent-desktop-view {
1017
+ display: block;
1018
+ }
1019
+ .pc-consent-mobile-view {
1020
+ display: none;
1021
+ }
1022
+ .pc-consent-mobile-list {
1023
+ display: flex;
1024
+ flex-direction: column;
1025
+ gap: 0.625rem;
1026
+ }
1027
+ .pc-consent-mobile-card {
1028
+ display: flex;
1029
+ flex-direction: column;
1030
+ gap: 0.5rem;
1031
+ border: 1px solid var(--pc-border-color);
1032
+ border-radius: var(--pc-border-radius-lg);
1033
+ background-color: var(--pc-bg-primary);
1034
+ padding: 0.625rem 0.75rem;
1035
+ box-shadow: none;
1036
+ }
1037
+ .pc-consent-mobile-card-header {
1038
+ display: flex;
1039
+ align-items: flex-start;
1040
+ justify-content: space-between;
1041
+ gap: 0.5rem;
1042
+ flex-wrap: wrap;
1043
+ }
1044
+ .pc-consent-mobile-product-head {
1045
+ display: flex;
1046
+ align-items: flex-start;
1047
+ gap: 0.5rem;
1048
+ min-width: 0;
1049
+ flex: 1 1 180px;
1050
+ }
1051
+ .pc-consent-mobile-avatar {
1052
+ display: inline-flex;
1053
+ align-items: center;
1054
+ justify-content: center;
1055
+ width: 24px;
1056
+ height: 24px;
1057
+ border-radius: 0.4375rem;
1058
+ font-size: 0.6875rem;
1059
+ font-weight: 700;
1060
+ line-height: 1;
1061
+ flex-shrink: 0;
1062
+ }
1063
+ .pc-consent-mobile-subtle-text {
1064
+ margin: 0 !important;
1065
+ margin-top: 0.125rem !important;
1066
+ font-size: 0.6875rem !important;
1067
+ line-height: 1.2 !important;
1068
+ color: var(--pc-text-secondary) !important;
1069
+ display: -webkit-box;
1070
+ -webkit-line-clamp: 2;
1071
+ -webkit-box-orient: vertical;
1072
+ overflow: hidden;
1073
+ word-break: break-word;
1074
+ }
1075
+ .pc-consent-mobile-chip-row {
1076
+ display: flex;
1077
+ flex-wrap: wrap;
1078
+ gap: 0.375rem;
1079
+ }
1080
+ .pc-consent-mobile-status-chip {
1081
+ font-size: 0.65625rem !important;
1082
+ font-weight: 600 !important;
1083
+ padding: 0.125rem 0.4375rem !important;
1084
+ }
1085
+ .pc-consent-mobile-activity-row {
1086
+ display: flex;
1087
+ flex-direction: column;
1088
+ gap: 0.125rem;
1089
+ min-width: 0;
1090
+ }
1091
+ .pc-consent-mobile-meta-grid {
1092
+ display: grid;
1093
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1094
+ gap: 0.5rem 0.625rem;
1095
+ }
1096
+ .pc-consent-mobile-meta-label {
1097
+ margin: 0 !important;
1098
+ margin-bottom: 0.1875rem !important;
1099
+ font-size: 0.625rem !important;
1100
+ text-transform: uppercase;
1101
+ letter-spacing: 0.05em;
1102
+ color: var(--pc-text-tertiary) !important;
1103
+ }
1104
+ .pc-consent-mobile-action-cell {
1105
+ display: flex;
1106
+ flex-direction: column;
1107
+ align-items: flex-start;
1108
+ justify-content: flex-end;
1109
+ }
1110
+ .pc-consent-mobile-expand-btn {
1111
+ width: 100%;
1112
+ display: flex;
1113
+ align-items: center;
1114
+ justify-content: space-between;
1115
+ border: 1px solid var(--pc-border-color);
1116
+ border-radius: var(--pc-border-radius-md);
1117
+ background-color: var(--pc-bg-secondary);
1118
+ color: var(--pc-text-primary);
1119
+ font-size: 0.75rem;
1120
+ font-weight: 600;
1121
+ padding: 0.375rem 0.5rem;
1122
+ cursor: pointer;
1123
+ }
1124
+ .pc-consent-mobile-purpose-list {
1125
+ display: flex;
1126
+ flex-direction: column;
1127
+ gap: 0.5rem;
1128
+ padding-top: 0.125rem;
1129
+ }
1130
+ .pc-consent-mobile-purpose-item {
1131
+ border: 1px solid var(--pc-border-color);
1132
+ border-radius: var(--pc-border-radius-md);
1133
+ background-color: var(--pc-bg-secondary);
1134
+ padding: 0.5rem;
1135
+ }
1136
+ .pc-consent-mobile-purpose-head {
1137
+ display: flex;
1138
+ align-items: flex-start;
1139
+ justify-content: space-between;
1140
+ gap: 0.5rem;
1141
+ margin-bottom: 0.375rem;
1142
+ }
1143
+ .pc-consent-mobile-empty {
1144
+ border: 1px solid var(--pc-border-color);
1145
+ border-radius: var(--pc-border-radius-lg);
1146
+ background-color: var(--pc-bg-primary);
1147
+ padding: 0.75rem;
1148
+ }
1149
+ .pc-consent-shell-card .pc-export-button-responsive {
1150
+ display: inline-flex !important;
1151
+ align-items: center !important;
1152
+ }
1153
+ .pc-consent-shell-card .pc-export-button-responsive button {
1154
+ box-sizing: border-box !important;
1155
+ height: var(--pc-consent-toolbar-control-height, 2rem) !important;
1156
+ min-height: var(--pc-consent-toolbar-control-height, 2rem) !important;
1157
+ max-height: var(--pc-consent-toolbar-control-height, 2rem) !important;
1158
+ padding: 0 0.625rem !important;
1159
+ line-height: 1 !important;
1160
+ border-color: var(--pc-border-color) !important;
1161
+ box-shadow: none !important;
1162
+ font-size: 0.75rem !important;
1163
+ }
1164
+ .pc-consent-shell-card .pc-filters-row-responsive {
1165
+ gap: 0.5rem !important;
1166
+ }
1167
+ @media (min-width: 768px) {
1168
+ .pc-consent-shell-card .pc-search-responsive {
1169
+ width: 310px !important;
1170
+ min-width: 310px !important;
1171
+ flex: 0 0 310px !important;
1172
+ }
1173
+ .pc-consent-shell-card .pc-filters-row-responsive {
1174
+ align-items: center !important;
1175
+ justify-content: flex-start !important;
1176
+ margin-left: 0 !important;
1177
+ flex: 1 1 auto !important;
1178
+ width: auto !important;
1179
+ }
1180
+ .pc-consent-shell-card .pc-filter-select {
1181
+ width: auto !important;
1182
+ min-width: 0 !important;
1183
+ flex: 0 0 auto !important;
1184
+ }
1185
+ .pc-consent-shell-card .pc-filter-select:first-child {
1186
+ width: 128px !important;
1187
+ min-width: 128px !important;
1188
+ }
1189
+ .pc-consent-shell-card .pc-filter-select:nth-child(2) {
1190
+ width: 136px !important;
1191
+ min-width: 136px !important;
1192
+ }
1193
+ .pc-consent-shell-card .pc-filters-summary {
1194
+ margin-left: auto !important;
1195
+ }
1196
+ }
1197
+ @media (max-width: 767px) {
1198
+ .pc-consent-desktop-view {
1199
+ display: none;
1200
+ }
1201
+ .pc-consent-mobile-view {
1202
+ display: block;
1203
+ }
1204
+ .pc-consent-shell-card .pc-consent-tabs-row {
1205
+ flex-wrap: wrap !important;
1206
+ padding-bottom: 0.375rem !important;
1207
+ }
1208
+ .pc-consent-shell-card .pc-consent-view-toggle-label {
1209
+ display: none !important;
1210
+ }
1211
+ .pc-consent-shell-card .pc-consent-view-toggle {
1212
+ width: 100% !important;
1213
+ justify-content: flex-end !important;
1214
+ padding-right: 0 !important;
1215
+ margin-bottom: 0 !important;
1216
+ }
1217
+ .pc-consent-shell-card .pc-filters-row-responsive {
1218
+ width: 100% !important;
1219
+ }
1220
+ .pc-consent-shell-card .pc-filters-summary {
1221
+ align-self: flex-start !important;
1222
+ }
1223
+ .pc-consent-pagination-wrap {
1224
+ margin-top: 0.5rem;
1225
+ }
1226
+ }
1227
+ @media (min-width: 768px) {
1228
+ .pc-consent-desktop-view {
1229
+ display: block;
1230
+ }
1231
+ .pc-consent-mobile-view {
1232
+ display: none;
1233
+ }
1234
+ }
1235
+ @media (max-width: 420px) {
1236
+ .pc-consent-mobile-meta-grid {
1237
+ grid-template-columns: 1fr;
1238
+ }
1239
+ }
1240
+
1241
+ .pc-consent-table-container {
1242
+ border: 1px solid var(--pc-border-color) !important;
1243
+ border-bottom: none !important;
1244
+ border-radius: var(--pc-border-radius-lg) var(--pc-border-radius-lg) 0 0 !important;
1245
+ box-shadow: none !important;
1246
+ overflow: hidden !important;
1247
+ }
1248
+ .pc-consent-table {
1249
+ table-layout: fixed;
1250
+ width: 100%;
1251
+ }
1252
+ .pc-consent-table th:first-child,
1253
+ .pc-consent-table td:first-child {
1254
+ width: 32px !important;
1255
+ min-width: 32px !important;
1256
+ max-width: 32px !important;
1257
+ }
1258
+ .pc-consent-table th:nth-child(2),
1259
+ .pc-consent-table td:nth-child(2) {
1260
+ width: 38% !important;
1261
+ min-width: 260px !important;
1262
+ }
1263
+ .pc-consent-table th:nth-child(3),
1264
+ .pc-consent-table td:nth-child(3) {
1265
+ width: 15% !important;
1266
+ min-width: 120px !important;
1267
+ }
1268
+ .pc-consent-table th:nth-child(4),
1269
+ .pc-consent-table td:nth-child(4) {
1270
+ width: 20% !important;
1271
+ min-width: 160px !important;
1272
+ }
1273
+ .pc-consent-table th:last-child,
1274
+ .pc-consent-table td:last-child {
1275
+ width: 27% !important;
1276
+ min-width: 180px !important;
1277
+ }
1278
+ .pc-consent-table-purpose th:first-child,
1279
+ .pc-consent-table-purpose td:first-child {
1280
+ width: 28% !important;
1281
+ min-width: 220px !important;
1282
+ max-width: none !important;
1283
+ text-align: left !important;
1284
+ padding-left: 0.875rem !important;
1285
+ padding-right: 0.875rem !important;
1286
+ }
1287
+ .pc-consent-table-purpose th:nth-child(2),
1288
+ .pc-consent-table-purpose td:nth-child(2) {
1289
+ width: 18% !important;
1290
+ min-width: 140px !important;
1291
+ }
1292
+ .pc-consent-table-purpose th:nth-child(3),
1293
+ .pc-consent-table-purpose td:nth-child(3) {
1294
+ width: 14% !important;
1295
+ min-width: 110px !important;
1296
+ }
1297
+ .pc-consent-table-purpose th:nth-child(4),
1298
+ .pc-consent-table-purpose td:nth-child(4) {
1299
+ width: 16% !important;
1300
+ min-width: 140px !important;
1301
+ }
1302
+ .pc-consent-table-purpose th:nth-child(5),
1303
+ .pc-consent-table-purpose td:nth-child(5) {
1304
+ width: 14% !important;
1305
+ min-width: 120px !important;
1306
+ }
1307
+ .pc-consent-table-purpose th:nth-child(6),
1308
+ .pc-consent-table-purpose td:nth-child(6) {
1309
+ width: 10% !important;
1310
+ min-width: 90px !important;
1311
+ }
1312
+ .pc-consent-table-purpose th:nth-child(7),
1313
+ .pc-consent-table-purpose td:nth-child(7) {
1314
+ width: 10% !important;
1315
+ min-width: 90px !important;
1316
+ text-align: right !important;
1317
+ }
1318
+ .pc-consent-table-purpose .pc-consent-table-head-cell:first-child,
1319
+ .pc-consent-table-purpose .pc-consent-table-row td:first-child {
1320
+ text-align: left !important;
1321
+ padding-left: 0.875rem !important;
1322
+ padding-right: 0.875rem !important;
1323
+ }
1324
+ .pc-consent-table-head-cell {
1325
+ font-size: 0.65rem !important;
1326
+ letter-spacing: 0.06em !important;
1327
+ text-transform: uppercase !important;
1328
+ color: var(--pc-text-primary) !important;
1329
+ font-weight: 600 !important;
1330
+ padding-top: 0.625rem !important;
1331
+ padding-bottom: 0.625rem !important;
1332
+ background-color: var(--pc-bg-secondary) !important;
1333
+ }
1334
+ .pc-consent-table-row td {
1335
+ padding-top: 0.5rem !important;
1336
+ padding-bottom: 0.5rem !important;
1337
+ vertical-align: middle !important;
1338
+ -webkit-user-select: none !important;
1339
+ user-select: none !important;
1340
+ }
1341
+ .pc-consent-table-head-cell:first-child,
1342
+ .pc-consent-table-row td:first-child {
1343
+ text-align: center !important;
1344
+ padding-left: 0.375rem !important;
1345
+ padding-right: 0.375rem !important;
1346
+ }
1347
+ .pc-consent-table-expanded-row:hover {
1348
+ background-color: transparent !important;
1349
+ }
1350
+ .pc-consent-table-expanded-row td {
1351
+ border-top: none !important;
1352
+ }
1353
+ .pc-consent-table-expanded-cell {
1354
+ padding: 0 !important;
1355
+ background-color: transparent !important;
1356
+ }
1357
+ /* Keep parent + expanded child hover in sync */
1358
+ .pc-consent-table-row:hover + .pc-consent-table-expanded-row .pc-consent-expanded-surface,
1359
+ .pc-consent-table-row:hover + .pc-consent-table-expanded-row .pc-consent-expanded-card,
1360
+ .pc-consent-table-row:hover + .pc-consent-table-expanded-row .pc-consent-expanded-card th,
1361
+ .pc-consent-table-row:hover + .pc-consent-table-expanded-row .pc-consent-expanded-card td,
1362
+ .pc-consent-table-expanded-row:hover .pc-consent-expanded-surface,
1363
+ .pc-consent-table-expanded-row:hover .pc-consent-expanded-card,
1364
+ .pc-consent-table-expanded-row:hover .pc-consent-expanded-card th,
1365
+ .pc-consent-table-expanded-row:hover .pc-consent-expanded-card td {
1366
+ background-color: var(--pc-bg-hover) !important;
1367
+ }
1368
+
1369
+ .pc-consent-pagination-wrap {
1370
+ border-top: none !important;
1371
+ border-left: 1px solid var(--pc-border-color);
1372
+ border-right: 1px solid var(--pc-border-color);
1373
+ border-bottom: 1px solid var(--pc-border-color);
1374
+ border-radius: 0 0 var(--pc-border-radius-lg) var(--pc-border-radius-lg);
1375
+ padding: 0.125rem 0.75rem 0.375rem;
1376
+ background-color: var(--pc-bg-primary);
1377
+ }
1378
+
973
1379
  /* ─── Case Details Page ───────────────────────────────────────────────── */
974
1380
 
975
1381
  .pc-case-page {
@@ -1885,19 +2291,27 @@ export const injectPCStyles = () => {
1885
2291
  display: flex;
1886
2292
  align-items: center;
1887
2293
  justify-content: center;
1888
- width: 32px;
1889
- height: 32px;
1890
- border: none;
1891
- background: none;
2294
+ box-sizing: border-box;
2295
+ width: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem));
2296
+ height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem));
2297
+ min-width: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem));
2298
+ min-height: var(--pc-navbar-actions-control-height, var(--pc-consent-toolbar-control-height, 2rem));
2299
+ border: 1px solid var(--pc-border-color);
2300
+ background: var(--pc-bg-primary);
1892
2301
  cursor: pointer;
1893
2302
  border-radius: 0.5rem;
1894
2303
  color: var(--pc-text-primary);
1895
- transition: color 0.3s ease, background-color 0.15s ease;
2304
+ transition: color 0.3s ease, background-color 0.15s ease, border-color 0.15s ease;
1896
2305
  padding: 0;
1897
2306
  }
2307
+ .pc-notification-bell-btn svg {
2308
+ width: 14px;
2309
+ height: 14px;
2310
+ }
1898
2311
 
1899
2312
  .pc-notification-bell-btn:hover {
1900
2313
  background-color: var(--pc-bg-hover);
2314
+ border-color: var(--pc-border-color-hover);
1901
2315
  }
1902
2316
 
1903
2317
  .pc-notification-filter-tab {
@@ -204,8 +204,9 @@ export const pcStyles = {
204
204
  backgroundColor: getVar('--pc-primary-hover'),
205
205
  },
206
206
  buttonSecondary: {
207
- backgroundColor: getVar('--pc-secondary'),
208
- color: getVar('--pc-text-inverse'),
207
+ backgroundColor: 'transparent',
208
+ color: getVar('--pc-primary'),
209
+ border: `1px solid ${getVar('--pc-primary')}`,
209
210
  },
210
211
  buttonOutline: {
211
212
  backgroundColor: 'transparent',