@consilioweb/payload-support 5.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +249 -22
- package/dist/components/RichTextEditor/index.js +1 -1
- package/dist/components/TicketConversation/RewriteDropdown.js +1 -1
- package/dist/components/TicketConversation/components/AISummaryPanel.js +3 -0
- package/dist/components/TicketConversation/components/ActionPanels.js +13 -8
- package/dist/components/TicketConversation/components/ClientHistory.js +1 -0
- package/dist/components/TicketConversation/components/CodeBlock.js +1 -0
- package/dist/components/TicketConversation/components/CodeBlockInserter.js +1 -1
- package/dist/components/TicketConversation/components/QuickActions.js +10 -8
- package/dist/components/TicketConversation/components/TicketHeader.js +2 -0
- package/dist/components/TicketConversation/components/TimeTrackingPanel.js +15 -9
- package/dist/components/TicketConversation/index.d.ts +10 -0
- package/dist/components/TicketConversation/index.js +25 -7
- package/dist/index.cjs +306 -60
- package/dist/index.d.cts +107 -38
- package/dist/index.d.ts +107 -38
- package/dist/index.js +300 -59
- package/dist/styles/BillingView.module.scss +11 -11
- package/dist/styles/ChatView.module.scss +7 -7
- package/dist/styles/CommandPalette.module.scss +1 -1
- package/dist/styles/CrmView.module.scss +9 -9
- package/dist/styles/EmailTracking.module.scss +6 -6
- package/dist/styles/ImportConversation.module.scss +5 -5
- package/dist/styles/Logs.module.scss +5 -5
- package/dist/styles/NewTicket.module.scss +2 -2
- package/dist/styles/PendingEmails.module.scss +13 -13
- package/dist/styles/SupportDashboard.module.scss +24 -8
- package/dist/styles/TicketDetail.module.scss +20 -20
- package/dist/styles/TicketInbox.module.scss +6 -6
- package/dist/styles/TicketingSettings.module.scss +10 -10
- package/dist/styles/TimeDashboard.module.scss +6 -6
- package/dist/styles/_tokens.scss +3 -1
- package/dist/utils/db.js +20 -0
- package/dist/utils/readSettings.js +150 -0
- package/dist/views/BillingView/client.js +15 -8
- package/dist/views/ChatView/client.js +2 -0
- package/dist/views/CrmView/client.js +2 -0
- package/dist/views/EmailTrackingView/client.js +23 -11
- package/dist/views/ImportConversationView/client.js +1 -0
- package/dist/views/LogsView/client.js +1 -1
- package/dist/views/NewTicketView/client.js +20 -13
- package/dist/views/PendingEmailsView/client.js +9 -3
- package/dist/views/SupportDashboardView/client.js +17 -19
- package/dist/views/TicketDetailView/client.js +23 -11
- package/dist/views/TicketInboxView/client.js +52 -26
- package/dist/views/TicketingSettingsView/TicketingSettings.module.scss +7 -7
- package/dist/views/TicketingSettingsView/client.js +44 -26
- package/dist/views/TimeDashboardView/client.js +10 -7
- package/dist/views/shared/ErrorBoundary.d.ts +36 -1
- package/dist/views/shared/ErrorBoundary.js +59 -28
- package/dist/views/shared/adminTokens.d.ts +15 -5
- package/dist/views/shared/adminTokens.js +23 -7
- package/dist/views/shared/icons.d.ts +49 -0
- package/dist/views/shared/icons.js +92 -0
- package/dist/views/shared/locales/en.json +15 -1
- package/dist/views/shared/locales/fr.json +15 -1
- package/package.json +9 -4
- package/scripts/copy-subpath-types.mjs +103 -0
- package/scripts/uninstall-data.mjs +178 -0
- package/scripts/uninstall.mjs +184 -0
- package/scripts/verify-dist-imports.mjs +84 -0
- package/src/collections/Tickets.ts +7 -0
- package/src/collections/TimeEntries.ts +11 -3
- package/src/components/RichTextEditor/index.tsx +1 -1
- package/src/components/TicketConversation/RewriteDropdown.tsx +1 -1
- package/src/components/TicketConversation/components/AISummaryPanel.tsx +3 -0
- package/src/components/TicketConversation/components/ActionPanels.tsx +13 -8
- package/src/components/TicketConversation/components/ClientHistory.tsx +1 -0
- package/src/components/TicketConversation/components/CodeBlock.tsx +1 -0
- package/src/components/TicketConversation/components/CodeBlockInserter.tsx +1 -1
- package/src/components/TicketConversation/components/QuickActions.tsx +10 -8
- package/src/components/TicketConversation/components/TicketHeader.tsx +2 -0
- package/src/components/TicketConversation/components/TimeTrackingPanel.tsx +17 -9
- package/src/components/TicketConversation/index.tsx +41 -7
- package/src/endpoints/delete-account.ts +191 -47
- package/src/endpoints/export-data.ts +104 -4
- package/src/endpoints/purge-logs.ts +6 -15
- package/src/index.ts +2 -0
- package/src/plugin.ts +51 -1
- package/src/portal/LiveChat.tsx +1 -1
- package/src/portal/auth/profile/page.tsx +3 -2
- package/src/portal/icons.tsx +91 -0
- package/src/styles/BillingView.module.scss +11 -11
- package/src/styles/ChatView.module.scss +7 -7
- package/src/styles/CommandPalette.module.scss +1 -1
- package/src/styles/CrmView.module.scss +9 -9
- package/src/styles/EmailTracking.module.scss +6 -6
- package/src/styles/ImportConversation.module.scss +5 -5
- package/src/styles/Logs.module.scss +5 -5
- package/src/styles/NewTicket.module.scss +2 -2
- package/src/styles/PendingEmails.module.scss +13 -13
- package/src/styles/SupportDashboard.module.scss +24 -8
- package/src/styles/TicketDetail.module.scss +20 -20
- package/src/styles/TicketInbox.module.scss +6 -6
- package/src/styles/TicketingSettings.module.scss +10 -10
- package/src/styles/TimeDashboard.module.scss +6 -6
- package/src/styles/_tokens.scss +3 -1
- package/src/types.ts +20 -0
- package/src/utils/retention.ts +111 -0
- package/src/utils/slugs.ts +15 -0
- package/src/views/BillingView/client.tsx +17 -8
- package/src/views/ChatView/client.tsx +2 -0
- package/src/views/CrmView/client.tsx +2 -0
- package/src/views/EmailTrackingView/client.tsx +18 -7
- package/src/views/ImportConversationView/client.tsx +1 -0
- package/src/views/LogsView/client.tsx +1 -1
- package/src/views/NewTicketView/client.tsx +22 -13
- package/src/views/PendingEmailsView/client.tsx +9 -3
- package/src/views/SupportDashboardView/client.tsx +11 -5
- package/src/views/TicketDetailView/client.tsx +25 -11
- package/src/views/TicketInboxView/client.tsx +47 -7
- package/src/views/TicketingSettingsView/TicketingSettings.module.scss +7 -7
- package/src/views/TicketingSettingsView/client.tsx +201 -144
- package/src/views/TimeDashboardView/client.tsx +10 -7
- package/src/views/shared/ErrorBoundary.tsx +95 -31
- package/src/views/shared/adminTokens.ts +28 -11
- package/src/views/shared/icons.tsx +146 -0
- package/src/views/shared/locales/en.json +15 -1
- package/src/views/shared/locales/fr.json +15 -1
- package/src/types/lucide-react.d.ts +0 -42
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
|
|
90
90
|
.dropzoneText {
|
|
91
91
|
font-size: 15px;
|
|
92
|
-
color: var(--theme-elevation-
|
|
92
|
+
color: var(--theme-elevation-650);
|
|
93
93
|
margin-top: 8px;
|
|
94
94
|
}
|
|
95
95
|
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
.sectionTitleRight {
|
|
123
123
|
font-weight: 400;
|
|
124
124
|
font-size: 13px;
|
|
125
|
-
color: var(--theme-elevation-
|
|
125
|
+
color: var(--theme-elevation-650);
|
|
126
126
|
margin-left: auto;
|
|
127
127
|
}
|
|
128
128
|
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
|
|
140
140
|
.infoLabel {
|
|
141
141
|
font-weight: 600;
|
|
142
|
-
color: var(--theme-elevation-
|
|
142
|
+
color: var(--theme-elevation-650);
|
|
143
143
|
min-width: 100px;
|
|
144
144
|
}
|
|
145
145
|
|
|
@@ -182,11 +182,11 @@
|
|
|
182
182
|
|
|
183
183
|
.msgDate {
|
|
184
184
|
font-size: 11px;
|
|
185
|
-
color: var(--theme-elevation-
|
|
185
|
+
color: var(--theme-elevation-650);
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
.msgPreview {
|
|
189
|
-
color: var(--theme-elevation-
|
|
189
|
+
color: var(--theme-elevation-650);
|
|
190
190
|
font-size: 12px;
|
|
191
191
|
line-height: 1.4;
|
|
192
192
|
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
background: none;
|
|
35
35
|
font-size: 12px;
|
|
36
36
|
font-weight: 600;
|
|
37
|
-
color: var(--theme-elevation-
|
|
37
|
+
color: var(--theme-elevation-650);
|
|
38
38
|
cursor: pointer;
|
|
39
39
|
transition: all 100ms;
|
|
40
40
|
&:hover { background: var(--theme-elevation-100); color: var(--theme-text); }
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
padding: 10px 16px;
|
|
58
58
|
font-size: 13px;
|
|
59
59
|
font-weight: 600;
|
|
60
|
-
color: var(--theme-elevation-
|
|
60
|
+
color: var(--theme-elevation-650);
|
|
61
61
|
background: none;
|
|
62
62
|
border: none;
|
|
63
63
|
border-bottom: 2px solid transparent;
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
font-weight: 700;
|
|
81
81
|
text-transform: uppercase;
|
|
82
82
|
letter-spacing: 0.04em;
|
|
83
|
-
color: var(--theme-elevation-
|
|
83
|
+
color: var(--theme-elevation-650);
|
|
84
84
|
border-bottom: 1px solid var(--theme-elevation-200);
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
background: none;
|
|
129
129
|
font-size: 12px;
|
|
130
130
|
font-weight: 600;
|
|
131
|
-
color: var(--theme-elevation-
|
|
131
|
+
color: var(--theme-elevation-650);
|
|
132
132
|
cursor: pointer;
|
|
133
133
|
&:hover { background: var(--theme-elevation-100); }
|
|
134
134
|
&:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
|
|
137
137
|
.pageInfo {
|
|
138
138
|
font-size: 12px;
|
|
139
|
-
color: var(--theme-elevation-
|
|
139
|
+
color: var(--theme-elevation-650);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
.empty {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
display: inline-flex;
|
|
14
14
|
align-items: center;
|
|
15
15
|
gap: 4px;
|
|
16
|
-
color: var(--theme-elevation-
|
|
16
|
+
color: var(--theme-elevation-650);
|
|
17
17
|
text-decoration: none;
|
|
18
18
|
font-size: 13px;
|
|
19
19
|
font-weight: 500;
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
.subtitle {
|
|
32
32
|
font-size: 13px;
|
|
33
|
-
color: var(--theme-elevation-
|
|
33
|
+
color: var(--theme-elevation-650);
|
|
34
34
|
margin: 0 0 24px;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -56,7 +56,7 @@ $radius-pill: 20px;
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
.subtitle {
|
|
59
|
-
color: var(--theme-elevation-
|
|
59
|
+
color: var(--theme-elevation-650);
|
|
60
60
|
margin: 0;
|
|
61
61
|
font-size: 14px;
|
|
62
62
|
}
|
|
@@ -86,7 +86,7 @@ $radius-pill: 20px;
|
|
|
86
86
|
font-size: 13px;
|
|
87
87
|
font-weight: 600;
|
|
88
88
|
border-bottom: 2px solid transparent;
|
|
89
|
-
color: var(--theme-elevation-
|
|
89
|
+
color: var(--theme-elevation-650);
|
|
90
90
|
background: transparent;
|
|
91
91
|
transition: color 100ms, border-color 100ms;
|
|
92
92
|
|
|
@@ -156,7 +156,7 @@ $radius-pill: 20px;
|
|
|
156
156
|
|
|
157
157
|
.senderEmail {
|
|
158
158
|
font-size: 12px;
|
|
159
|
-
color: var(--theme-elevation-
|
|
159
|
+
color: var(--theme-elevation-650);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
.cardSubject {
|
|
@@ -171,7 +171,7 @@ $radius-pill: 20px;
|
|
|
171
171
|
align-items: center;
|
|
172
172
|
gap: 10px;
|
|
173
173
|
font-size: 12px;
|
|
174
|
-
color: var(--theme-elevation-
|
|
174
|
+
color: var(--theme-elevation-650);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
.attachment {
|
|
@@ -226,7 +226,7 @@ $radius-pill: 20px;
|
|
|
226
226
|
|
|
227
227
|
.suggestionLow {
|
|
228
228
|
background-color: var(--theme-elevation-100);
|
|
229
|
-
color: var(--theme-elevation-
|
|
229
|
+
color: var(--theme-elevation-650);
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
// ── Body preview ─────────────────────────────────────────────
|
|
@@ -236,7 +236,7 @@ $radius-pill: 20px;
|
|
|
236
236
|
|
|
237
237
|
.bodyText {
|
|
238
238
|
font-size: 13px;
|
|
239
|
-
color: var(--theme-elevation-
|
|
239
|
+
color: var(--theme-elevation-650);
|
|
240
240
|
line-height: 1.5;
|
|
241
241
|
}
|
|
242
242
|
|
|
@@ -353,7 +353,7 @@ $radius-pill: 20px;
|
|
|
353
353
|
background: none;
|
|
354
354
|
border: none;
|
|
355
355
|
cursor: pointer;
|
|
356
|
-
color: var(--theme-elevation-
|
|
356
|
+
color: var(--theme-elevation-650);
|
|
357
357
|
padding: 4px;
|
|
358
358
|
border-radius: 4px;
|
|
359
359
|
display: flex;
|
|
@@ -368,7 +368,7 @@ $radius-pill: 20px;
|
|
|
368
368
|
.sectionLabel {
|
|
369
369
|
font-size: 12px;
|
|
370
370
|
font-weight: 700;
|
|
371
|
-
color: var(--theme-elevation-
|
|
371
|
+
color: var(--theme-elevation-650);
|
|
372
372
|
text-transform: uppercase;
|
|
373
373
|
letter-spacing: 0.5px;
|
|
374
374
|
margin-bottom: 8px;
|
|
@@ -433,7 +433,7 @@ $radius-pill: 20px;
|
|
|
433
433
|
}
|
|
434
434
|
|
|
435
435
|
.scoreLow {
|
|
436
|
-
background-color: var(--theme-elevation-
|
|
436
|
+
background-color: var(--theme-elevation-650);
|
|
437
437
|
}
|
|
438
438
|
|
|
439
439
|
// ── Detected client row ──────────────────────────────────────
|
|
@@ -456,7 +456,7 @@ $radius-pill: 20px;
|
|
|
456
456
|
|
|
457
457
|
.detectedEmail {
|
|
458
458
|
font-size: 12px;
|
|
459
|
-
color: var(--theme-elevation-
|
|
459
|
+
color: var(--theme-elevation-650);
|
|
460
460
|
margin-left: 8px;
|
|
461
461
|
}
|
|
462
462
|
|
|
@@ -481,7 +481,7 @@ $radius-pill: 20px;
|
|
|
481
481
|
|
|
482
482
|
.clientResultEmail {
|
|
483
483
|
font-size: 12px;
|
|
484
|
-
color: var(--theme-elevation-
|
|
484
|
+
color: var(--theme-elevation-650);
|
|
485
485
|
margin-left: 8px;
|
|
486
486
|
}
|
|
487
487
|
|
|
@@ -523,13 +523,13 @@ $radius-pill: 20px;
|
|
|
523
523
|
|
|
524
524
|
.searchingHint {
|
|
525
525
|
font-size: 13px;
|
|
526
|
-
color: var(--theme-elevation-
|
|
526
|
+
color: var(--theme-elevation-650);
|
|
527
527
|
padding: 8px;
|
|
528
528
|
}
|
|
529
529
|
|
|
530
530
|
.noResults {
|
|
531
531
|
font-size: 13px;
|
|
532
|
-
color: var(--theme-elevation-
|
|
532
|
+
color: var(--theme-elevation-650);
|
|
533
533
|
padding: 8px;
|
|
534
534
|
}
|
|
535
535
|
|
|
@@ -26,7 +26,7 @@ $radius-md: 12px;
|
|
|
26
26
|
|
|
27
27
|
.subtitle {
|
|
28
28
|
font-size: 13px;
|
|
29
|
-
color: var(--theme-elevation-
|
|
29
|
+
color: var(--theme-elevation-650);
|
|
30
30
|
margin: 0;
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -75,7 +75,7 @@ $radius-md: 12px;
|
|
|
75
75
|
font-weight: 700;
|
|
76
76
|
text-transform: uppercase;
|
|
77
77
|
letter-spacing: 0.6px;
|
|
78
|
-
color: var(--theme-elevation-
|
|
78
|
+
color: var(--theme-elevation-650);
|
|
79
79
|
margin-bottom: 8px;
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -148,7 +148,7 @@ $radius-md: 12px;
|
|
|
148
148
|
font-weight: 700;
|
|
149
149
|
text-transform: uppercase;
|
|
150
150
|
letter-spacing: 0.5px;
|
|
151
|
-
color: var(--theme-elevation-
|
|
151
|
+
color: var(--theme-elevation-650);
|
|
152
152
|
margin: 0 0 16px;
|
|
153
153
|
}
|
|
154
154
|
|
|
@@ -207,7 +207,7 @@ $radius-md: 12px;
|
|
|
207
207
|
font-weight: 600;
|
|
208
208
|
font-variant-numeric: tabular-nums;
|
|
209
209
|
font-size: 12px;
|
|
210
|
-
color: var(--theme-elevation-
|
|
210
|
+
color: var(--theme-elevation-650);
|
|
211
211
|
white-space: nowrap;
|
|
212
212
|
}
|
|
213
213
|
|
|
@@ -219,9 +219,25 @@ $radius-md: 12px;
|
|
|
219
219
|
font-weight: 500;
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
+
// The whole row looks clickable, but only this link actually is — it is what
|
|
223
|
+
// carries the ticket into the keyboard tab order.
|
|
224
|
+
.ticketLink {
|
|
225
|
+
display: block;
|
|
226
|
+
overflow: hidden;
|
|
227
|
+
text-overflow: ellipsis;
|
|
228
|
+
white-space: nowrap;
|
|
229
|
+
color: inherit;
|
|
230
|
+
text-decoration: none;
|
|
231
|
+
|
|
232
|
+
&:hover,
|
|
233
|
+
&:focus-visible {
|
|
234
|
+
text-decoration: underline;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
222
238
|
.ticketClient {
|
|
223
239
|
font-size: 12px;
|
|
224
|
-
color: var(--theme-elevation-
|
|
240
|
+
color: var(--theme-elevation-650);
|
|
225
241
|
max-width: 120px;
|
|
226
242
|
overflow: hidden;
|
|
227
243
|
text-overflow: ellipsis;
|
|
@@ -430,7 +446,7 @@ $radius-md: 12px;
|
|
|
430
446
|
font-weight: 700;
|
|
431
447
|
text-transform: uppercase;
|
|
432
448
|
letter-spacing: 0.5px;
|
|
433
|
-
color: var(--theme-elevation-
|
|
449
|
+
color: var(--theme-elevation-650);
|
|
434
450
|
margin: 0 0 16px;
|
|
435
451
|
}
|
|
436
452
|
|
|
@@ -582,7 +598,7 @@ $radius-md: 12px;
|
|
|
582
598
|
font-size: 12px;
|
|
583
599
|
font-weight: 600;
|
|
584
600
|
font-variant-numeric: tabular-nums;
|
|
585
|
-
color: var(--theme-elevation-
|
|
601
|
+
color: var(--theme-elevation-650);
|
|
586
602
|
white-space: nowrap;
|
|
587
603
|
flex-shrink: 0;
|
|
588
604
|
}
|
|
@@ -637,7 +653,7 @@ $radius-md: 12px;
|
|
|
637
653
|
.errorState {
|
|
638
654
|
text-align: center;
|
|
639
655
|
padding: 60px 24px;
|
|
640
|
-
color: var(--theme-elevation-
|
|
656
|
+
color: var(--theme-elevation-650);
|
|
641
657
|
font-size: 14px;
|
|
642
658
|
|
|
643
659
|
strong {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
font-family: ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;
|
|
53
53
|
font-size: 12px;
|
|
54
54
|
font-weight: 400;
|
|
55
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
55
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
56
56
|
display: inline-flex;
|
|
57
57
|
align-items: center;
|
|
58
58
|
gap: 8px;
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
> .ticketNumberCat,
|
|
66
66
|
> .ticketNumberSource {
|
|
67
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
67
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
68
68
|
display: inline-flex;
|
|
69
69
|
align-items: center;
|
|
70
70
|
gap: 4px;
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
text-transform: uppercase;
|
|
195
195
|
letter-spacing: 0.08em;
|
|
196
196
|
line-height: 1.3;
|
|
197
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
197
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
198
198
|
margin: 0 0 12px;
|
|
199
199
|
display: flex;
|
|
200
200
|
justify-content: space-between;
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
font-size: 11px;
|
|
354
354
|
font-weight: 500;
|
|
355
355
|
line-height: 1.3;
|
|
356
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
356
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
357
357
|
white-space: nowrap;
|
|
358
358
|
text-transform: uppercase;
|
|
359
359
|
letter-spacing: 0.08em;
|
|
@@ -450,7 +450,7 @@
|
|
|
450
450
|
font-size: 11px;
|
|
451
451
|
font-weight: 500;
|
|
452
452
|
line-height: 1.3;
|
|
453
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
453
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
// Pills "Interne" / "Solution" — pill style, 22px height
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
margin-top: 4px;
|
|
500
500
|
font-size: 11px;
|
|
501
501
|
font-weight: 500;
|
|
502
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
502
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
503
503
|
opacity: 0;
|
|
504
504
|
transition: opacity 80ms ease;
|
|
505
505
|
}
|
|
@@ -514,7 +514,7 @@
|
|
|
514
514
|
font-size: 11px;
|
|
515
515
|
font-weight: 500;
|
|
516
516
|
line-height: 1.3;
|
|
517
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
517
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
518
518
|
display: inline-flex;
|
|
519
519
|
align-items: center;
|
|
520
520
|
height: auto;
|
|
@@ -749,7 +749,7 @@
|
|
|
749
749
|
display: inline-flex;
|
|
750
750
|
align-items: center;
|
|
751
751
|
gap: 4px;
|
|
752
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
752
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
753
753
|
font-size: 11px;
|
|
754
754
|
font-weight: 500;
|
|
755
755
|
margin-left: auto;
|
|
@@ -910,7 +910,7 @@
|
|
|
910
910
|
background: none;
|
|
911
911
|
border: none;
|
|
912
912
|
cursor: pointer;
|
|
913
|
-
color: var(--theme-elevation-
|
|
913
|
+
color: var(--theme-elevation-650);
|
|
914
914
|
font-size: 13px;
|
|
915
915
|
font-weight: 600;
|
|
916
916
|
padding: 0;
|
|
@@ -941,7 +941,7 @@
|
|
|
941
941
|
|
|
942
942
|
.activityContent { flex: 1; min-width: 0; }
|
|
943
943
|
.activityText { font-weight: 500; color: var(--theme-text); font-size: 12px; }
|
|
944
|
-
.activityTime { font-size: 11px; color: var(--theme-elevation-
|
|
944
|
+
.activityTime { font-size: 11px; color: var(--theme-elevation-650); margin-top: 1px; }
|
|
945
945
|
|
|
946
946
|
// ─── DROPDOWN ───
|
|
947
947
|
.dropdown { position: relative; display: inline-block; }
|
|
@@ -1055,7 +1055,7 @@
|
|
|
1055
1055
|
|
|
1056
1056
|
.splitPreview {
|
|
1057
1057
|
font-size: 12px;
|
|
1058
|
-
color: var(--theme-elevation-
|
|
1058
|
+
color: var(--theme-elevation-650);
|
|
1059
1059
|
margin: 0 0 16px;
|
|
1060
1060
|
line-height: 1.5;
|
|
1061
1061
|
max-height: 80px;
|
|
@@ -1092,7 +1092,7 @@
|
|
|
1092
1092
|
background: none;
|
|
1093
1093
|
font-size: 13px;
|
|
1094
1094
|
font-weight: 600;
|
|
1095
|
-
color: var(--theme-elevation-
|
|
1095
|
+
color: var(--theme-elevation-650);
|
|
1096
1096
|
cursor: pointer;
|
|
1097
1097
|
&:hover { background: var(--theme-elevation-100); }
|
|
1098
1098
|
}
|
|
@@ -1145,7 +1145,7 @@
|
|
|
1145
1145
|
cursor: pointer;
|
|
1146
1146
|
font-size: 11px;
|
|
1147
1147
|
line-height: 1;
|
|
1148
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1148
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1149
1149
|
padding: 0;
|
|
1150
1150
|
display: inline-flex;
|
|
1151
1151
|
align-items: center;
|
|
@@ -1166,7 +1166,7 @@
|
|
|
1166
1166
|
font-size: 11px;
|
|
1167
1167
|
font-weight: 500;
|
|
1168
1168
|
line-height: 1;
|
|
1169
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1169
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1170
1170
|
cursor: pointer;
|
|
1171
1171
|
transition: border-color 80ms ease, color 80ms ease;
|
|
1172
1172
|
&:hover {
|
|
@@ -1607,7 +1607,7 @@
|
|
|
1607
1607
|
align-items: center;
|
|
1608
1608
|
gap: 6px;
|
|
1609
1609
|
font-size: 10px;
|
|
1610
|
-
color: var(--theme-elevation-
|
|
1610
|
+
color: var(--theme-elevation-650);
|
|
1611
1611
|
}
|
|
1612
1612
|
|
|
1613
1613
|
.previousTicketsStatus {
|
|
@@ -1755,7 +1755,7 @@
|
|
|
1755
1755
|
text-transform: uppercase;
|
|
1756
1756
|
letter-spacing: 0.08em;
|
|
1757
1757
|
line-height: 1.3;
|
|
1758
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1758
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1759
1759
|
margin: 12px 0 8px;
|
|
1760
1760
|
}
|
|
1761
1761
|
.aiCardNextActions {
|
|
@@ -1805,13 +1805,13 @@
|
|
|
1805
1805
|
}
|
|
1806
1806
|
.aiCardNextLabelDone {
|
|
1807
1807
|
text-decoration: line-through;
|
|
1808
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1808
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1809
1809
|
}
|
|
1810
1810
|
.aiCardNextWhen {
|
|
1811
1811
|
font-size: 11px;
|
|
1812
1812
|
font-weight: 500;
|
|
1813
1813
|
line-height: 1.3;
|
|
1814
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1814
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1815
1815
|
flex-shrink: 0;
|
|
1816
1816
|
}
|
|
1817
1817
|
|
|
@@ -1856,12 +1856,12 @@
|
|
|
1856
1856
|
margin: 0 2px;
|
|
1857
1857
|
}
|
|
1858
1858
|
.ticketNumberCat {
|
|
1859
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1859
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1860
1860
|
font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
1861
1861
|
font-weight: 400;
|
|
1862
1862
|
}
|
|
1863
1863
|
.ticketNumberSource {
|
|
1864
|
-
color: var(--theme-text-tertiary, var(--theme-elevation-
|
|
1864
|
+
color: var(--theme-text-tertiary, var(--theme-elevation-650));
|
|
1865
1865
|
font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
1866
1866
|
display: inline-flex;
|
|
1867
1867
|
align-items: center;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
.subtitle {
|
|
28
28
|
font-size: 13px;
|
|
29
|
-
color: var(--theme-elevation-
|
|
29
|
+
color: var(--theme-elevation-650);
|
|
30
30
|
margin: 2px 0 0;
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
padding: 0 12px;
|
|
126
126
|
font-size: 13px;
|
|
127
127
|
font-weight: 500;
|
|
128
|
-
color: var(--theme-elevation-
|
|
128
|
+
color: var(--theme-elevation-650);
|
|
129
129
|
background: none;
|
|
130
130
|
border: none;
|
|
131
131
|
border-radius: 6px;
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
padding: 0 6px;
|
|
156
156
|
font-size: 11px;
|
|
157
157
|
font-weight: 600;
|
|
158
|
-
color: var(--theme-elevation-
|
|
158
|
+
color: var(--theme-elevation-650);
|
|
159
159
|
background: var(--theme-elevation-200);
|
|
160
160
|
border-radius: 999px;
|
|
161
161
|
}
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
.sortSelect {
|
|
180
180
|
font-size: 12px;
|
|
181
181
|
font-weight: 600;
|
|
182
|
-
color: var(--theme-elevation-
|
|
182
|
+
color: var(--theme-elevation-650);
|
|
183
183
|
background: none;
|
|
184
184
|
border: none;
|
|
185
185
|
cursor: pointer;
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
|
|
269
269
|
.client {
|
|
270
270
|
font-size: 12px;
|
|
271
|
-
color: var(--theme-elevation-
|
|
271
|
+
color: var(--theme-elevation-650);
|
|
272
272
|
overflow: hidden;
|
|
273
273
|
text-overflow: ellipsis;
|
|
274
274
|
white-space: nowrap;
|
|
@@ -333,7 +333,7 @@
|
|
|
333
333
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
|
334
334
|
font-size: 11px;
|
|
335
335
|
font-weight: 500;
|
|
336
|
-
color: var(--theme-elevation-
|
|
336
|
+
color: var(--theme-elevation-650);
|
|
337
337
|
display: flex;
|
|
338
338
|
gap: 12px;
|
|
339
339
|
z-index: 10;
|
|
@@ -15,7 +15,7 @@ $green: #16a34a;
|
|
|
15
15
|
|
|
16
16
|
.intro {
|
|
17
17
|
font-size: 13px;
|
|
18
|
-
color: var(--theme-elevation-
|
|
18
|
+
color: var(--theme-elevation-650);
|
|
19
19
|
margin: 0 0 24px;
|
|
20
20
|
line-height: 1.6;
|
|
21
21
|
}
|
|
@@ -59,7 +59,7 @@ $green: #16a34a;
|
|
|
59
59
|
|
|
60
60
|
.sectionChevron {
|
|
61
61
|
font-size: 16px;
|
|
62
|
-
color: var(--theme-elevation-
|
|
62
|
+
color: var(--theme-elevation-650);
|
|
63
63
|
transition: transform 150ms;
|
|
64
64
|
|
|
65
65
|
&.open {
|
|
@@ -73,7 +73,7 @@ $green: #16a34a;
|
|
|
73
73
|
|
|
74
74
|
.sectionDescription {
|
|
75
75
|
font-size: 12px;
|
|
76
|
-
color: var(--theme-elevation-
|
|
76
|
+
color: var(--theme-elevation-650);
|
|
77
77
|
margin: 0 0 16px;
|
|
78
78
|
line-height: 1.5;
|
|
79
79
|
}
|
|
@@ -97,7 +97,7 @@ $green: #16a34a;
|
|
|
97
97
|
|
|
98
98
|
.fieldDescription {
|
|
99
99
|
font-size: 11px;
|
|
100
|
-
color: var(--theme-elevation-
|
|
100
|
+
color: var(--theme-elevation-650);
|
|
101
101
|
font-weight: 400;
|
|
102
102
|
margin-top: 2px;
|
|
103
103
|
}
|
|
@@ -131,7 +131,7 @@ $green: #16a34a;
|
|
|
131
131
|
border-radius: 6px;
|
|
132
132
|
border: 1px solid var(--theme-elevation-300);
|
|
133
133
|
font-size: 13px;
|
|
134
|
-
color: var(--theme-elevation-
|
|
134
|
+
color: var(--theme-elevation-650);
|
|
135
135
|
background-color: var(--theme-elevation-100);
|
|
136
136
|
width: 100%;
|
|
137
137
|
max-width: 400px;
|
|
@@ -179,7 +179,7 @@ $green: #16a34a;
|
|
|
179
179
|
|
|
180
180
|
.inlineDesc {
|
|
181
181
|
font-size: 12px;
|
|
182
|
-
color: var(--theme-elevation-
|
|
182
|
+
color: var(--theme-elevation-650);
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
// ─── BADGE ───
|
|
@@ -251,7 +251,7 @@ $green: #16a34a;
|
|
|
251
251
|
|
|
252
252
|
.featureDesc {
|
|
253
253
|
font-size: 12px;
|
|
254
|
-
color: var(--theme-elevation-
|
|
254
|
+
color: var(--theme-elevation-650);
|
|
255
255
|
line-height: 1.4;
|
|
256
256
|
}
|
|
257
257
|
|
|
@@ -271,7 +271,7 @@ $green: #16a34a;
|
|
|
271
271
|
|
|
272
272
|
.aiToggleDesc {
|
|
273
273
|
font-size: 12px;
|
|
274
|
-
color: var(--theme-elevation-
|
|
274
|
+
color: var(--theme-elevation-650);
|
|
275
275
|
margin-left: 8px;
|
|
276
276
|
}
|
|
277
277
|
|
|
@@ -290,7 +290,7 @@ $green: #16a34a;
|
|
|
290
290
|
background-color: transparent;
|
|
291
291
|
cursor: pointer;
|
|
292
292
|
font-size: 12px;
|
|
293
|
-
color: var(--theme-elevation-
|
|
293
|
+
color: var(--theme-elevation-650);
|
|
294
294
|
white-space: nowrap;
|
|
295
295
|
}
|
|
296
296
|
|
|
@@ -303,7 +303,7 @@ $green: #16a34a;
|
|
|
303
303
|
|
|
304
304
|
.slaHint {
|
|
305
305
|
font-size: 12px;
|
|
306
|
-
color: var(--theme-elevation-
|
|
306
|
+
color: var(--theme-elevation-650);
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
// ─── AI SUB FEATURES LABEL ───
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.subtitle {
|
|
31
|
-
color: var(--theme-elevation-
|
|
31
|
+
color: var(--theme-elevation-650);
|
|
32
32
|
margin: 4px 0 0;
|
|
33
33
|
font-size: 14px;
|
|
34
34
|
}
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
.label {
|
|
81
81
|
font-size: 11px;
|
|
82
82
|
font-weight: 700;
|
|
83
|
-
color: var(--theme-elevation-
|
|
83
|
+
color: var(--theme-elevation-650);
|
|
84
84
|
margin-bottom: 3px;
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
font-size: 10px;
|
|
147
147
|
font-weight: 700;
|
|
148
148
|
text-transform: uppercase;
|
|
149
|
-
color: var(--theme-elevation-
|
|
149
|
+
color: var(--theme-elevation-650);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
.kpiValue {
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
border: 1px solid var(--theme-elevation-300);
|
|
202
202
|
border-radius: 8px;
|
|
203
203
|
background: var(--theme-elevation-100);
|
|
204
|
-
color: var(--theme-elevation-
|
|
204
|
+
color: var(--theme-elevation-650);
|
|
205
205
|
font-size: 14px;
|
|
206
206
|
}
|
|
207
207
|
|
|
@@ -257,13 +257,13 @@
|
|
|
257
257
|
|
|
258
258
|
.tdSubject {
|
|
259
259
|
padding: 6px 8px;
|
|
260
|
-
color: var(--theme-elevation-
|
|
260
|
+
color: var(--theme-elevation-650);
|
|
261
261
|
font-size: 12px;
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
.tdDescription {
|
|
265
265
|
padding: 6px 8px;
|
|
266
|
-
color: var(--theme-elevation-
|
|
266
|
+
color: var(--theme-elevation-650);
|
|
267
267
|
font-size: 12px;
|
|
268
268
|
}
|
|
269
269
|
|
package/src/styles/_tokens.scss
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Design tokens — based on Payload CMS CSS variables
|
|
2
2
|
$text: var(--theme-text);
|
|
3
|
-
|
|
3
|
+
// elevation-650, not 500: Payload's dark theme skips the 500 step, leaving it
|
|
4
|
+
// at rgb(128,128,128) — 3.62:1 light / 4.03:1 dark, below WCAG AA in both.
|
|
5
|
+
$text-secondary: var(--theme-elevation-650);
|
|
4
6
|
$text-muted: var(--theme-elevation-400);
|
|
5
7
|
$bg: var(--theme-elevation-50);
|
|
6
8
|
$bg-card: var(--theme-elevation-100);
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RateLimitStore } from './utils/rateLimiter'
|
|
2
|
+
import type { RetentionConfig } from './utils/retention'
|
|
2
3
|
import type { InboundEmailInput } from './utils/webhookSecurity'
|
|
3
4
|
import type { Payload, PayloadRequest } from 'payload'
|
|
4
5
|
|
|
@@ -151,6 +152,25 @@ export interface SupportPluginConfig {
|
|
|
151
152
|
/** Shared rate-limit storage. Defaults to process-local memory. */
|
|
152
153
|
rateLimitStore?: RateLimitStore | 'payload'
|
|
153
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Automatic retention of the two journals the plugin writes.
|
|
157
|
+
*
|
|
158
|
+
* The plugin registers a daily Payload Jobs task that deletes rows older
|
|
159
|
+
* than the configured number of days. Set a value to 0 to keep that journal
|
|
160
|
+
* forever (the manual `DELETE /api/support/purge-logs` endpoint stays
|
|
161
|
+
* available either way).
|
|
162
|
+
*
|
|
163
|
+
* Defaults: auth-logs 180 days, email-logs 365 days, cron `0 30 3 * * *`.
|
|
164
|
+
*
|
|
165
|
+
* `false` registers no task at all. That is the ONLY value that changes the
|
|
166
|
+
* schema footprint: registering a task turns Payload's job queue on, which
|
|
167
|
+
* adds the `payload-jobs` collection and the `payload-jobs-stats` global to
|
|
168
|
+
* an app that had no jobs — two tables you would have to migrate. Pass
|
|
169
|
+
* `false` if you would rather purge from your own cron, calling
|
|
170
|
+
* `DELETE /api/support/purge-logs`.
|
|
171
|
+
*/
|
|
172
|
+
retention?: RetentionConfig | false
|
|
173
|
+
|
|
154
174
|
/** Sequential ticket number formatting. */
|
|
155
175
|
ticketNumber?: { prefix?: string; padding?: number }
|
|
156
176
|
|