@consilioweb/payload-support 0.6.0 → 0.6.2

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 (85) hide show
  1. package/dist/{styles/theme.css → components/TicketConversation.css} +13 -326
  2. package/dist/components/TicketConversation.js +3004 -0
  3. package/dist/index.cjs +11 -11
  4. package/dist/index.js +11 -11
  5. package/dist/views/BillingView/client.cjs +209 -0
  6. package/dist/views/BillingView/index.cjs +34 -0
  7. package/dist/views/ChatView/client.cjs +253 -0
  8. package/dist/views/ChatView/index.cjs +34 -0
  9. package/dist/views/CrmView/client.cjs +233 -0
  10. package/dist/views/CrmView/index.cjs +34 -0
  11. package/dist/views/EmailTrackingView/client.cjs +159 -0
  12. package/dist/views/EmailTrackingView/index.cjs +34 -0
  13. package/dist/views/ImportConversationView/client.cjs +205 -0
  14. package/dist/views/ImportConversationView/index.cjs +34 -0
  15. package/dist/views/LogsView/client.cjs +149 -0
  16. package/dist/views/LogsView/index.cjs +32 -0
  17. package/dist/views/NewTicketView/client.cjs +229 -0
  18. package/dist/views/NewTicketView/index.cjs +32 -0
  19. package/dist/views/PendingEmailsView/client.cjs +173 -0
  20. package/dist/views/PendingEmailsView/index.cjs +34 -0
  21. package/dist/views/SupportDashboardView/client.cjs +301 -0
  22. package/dist/views/SupportDashboardView/index.cjs +34 -0
  23. package/dist/views/TicketDetailView/client.cjs +850 -0
  24. package/dist/views/TicketDetailView/index.cjs +34 -0
  25. package/dist/views/TicketInboxView/client.cjs +299 -0
  26. package/dist/views/TicketInboxView/index.cjs +32 -0
  27. package/dist/views/TicketingSettingsView/client.cjs +733 -0
  28. package/dist/views/TicketingSettingsView/index.cjs +34 -0
  29. package/dist/views/TimeDashboardView/client.cjs +169 -0
  30. package/dist/views/TimeDashboardView/index.cjs +34 -0
  31. package/dist/views/shared/AdminViewHeader.cjs +68 -0
  32. package/dist/views/shared/ErrorBoundary.cjs +55 -0
  33. package/dist/views/shared/Skeleton.cjs +77 -0
  34. package/dist/views/shared/adminTokens.cjs +34 -0
  35. package/dist/views/shared/adminTokens.js +0 -1
  36. package/dist/{components/TicketConversation/config.js → views/shared/config.cjs} +5 -2
  37. package/dist/views/shared/config.js +0 -1
  38. package/dist/views/shared/index.cjs +58 -0
  39. package/dist/views/shared/index.js +0 -1
  40. package/dist/views.cjs +86 -0
  41. package/dist/views.d.cts +13 -0
  42. package/dist/views.d.ts +13 -0
  43. package/dist/views.js +13 -0
  44. package/package.json +14 -7
  45. package/src/plugin.ts +11 -11
  46. package/src/views.ts +17 -0
  47. package/dist/components/TicketConversation/components/AISummaryPanel.js +0 -76
  48. package/dist/components/TicketConversation/components/ActionPanels.js +0 -118
  49. package/dist/components/TicketConversation/components/ActivityLog.js +0 -23
  50. package/dist/components/TicketConversation/components/ClientBar.js +0 -42
  51. package/dist/components/TicketConversation/components/ClientHistory.js +0 -137
  52. package/dist/components/TicketConversation/components/CodeBlock.js +0 -152
  53. package/dist/components/TicketConversation/components/CodeBlockInserter.js +0 -155
  54. package/dist/components/TicketConversation/components/QuickActions.js +0 -65
  55. package/dist/components/TicketConversation/components/TicketHeader.js +0 -92
  56. package/dist/components/TicketConversation/components/TimeTrackingPanel.js +0 -133
  57. package/dist/components/TicketConversation/constants.js +0 -96
  58. package/dist/components/TicketConversation/context.js +0 -11
  59. package/dist/components/TicketConversation/hooks/useAI.js +0 -176
  60. package/dist/components/TicketConversation/hooks/useMessageActions.js +0 -135
  61. package/dist/components/TicketConversation/hooks/useReply.js +0 -187
  62. package/dist/components/TicketConversation/hooks/useTicketActions.js +0 -230
  63. package/dist/components/TicketConversation/hooks/useTimeTracking.js +0 -122
  64. package/dist/components/TicketConversation/hooks/useTranslation.js +0 -70
  65. package/dist/components/TicketConversation/index.js +0 -1123
  66. package/dist/components/TicketConversation/locales/en.json +0 -878
  67. package/dist/components/TicketConversation/locales/fr.json +0 -878
  68. package/dist/components/TicketConversation/types.js +0 -2
  69. package/dist/components/TicketConversation/utils.js +0 -25
  70. package/dist/styles/BillingView.module.scss +0 -311
  71. package/dist/styles/ChatView.module.scss +0 -438
  72. package/dist/styles/CommandPalette.module.scss +0 -160
  73. package/dist/styles/CrmView.module.scss +0 -554
  74. package/dist/styles/EmailTracking.module.scss +0 -238
  75. package/dist/styles/ImportConversation.module.scss +0 -267
  76. package/dist/styles/Layout.module.scss +0 -55
  77. package/dist/styles/Logs.module.scss +0 -164
  78. package/dist/styles/NewTicket.module.scss +0 -143
  79. package/dist/styles/PendingEmails.module.scss +0 -629
  80. package/dist/styles/SupportDashboard.module.scss +0 -649
  81. package/dist/styles/TicketDetail.module.scss +0 -1050
  82. package/dist/styles/TicketInbox.module.scss +0 -296
  83. package/dist/styles/TicketingSettings.module.scss +0 -358
  84. package/dist/styles/TimeDashboard.module.scss +0 -287
  85. package/dist/styles/_tokens.scss +0 -78
@@ -1,238 +0,0 @@
1
- // Email Tracking — Clean 2026 design with Payload CSS vars
2
-
3
- .page {
4
- max-width: 1920px;
5
- margin: 0 auto;
6
- padding: 0 24px 60px;
7
- font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', system-ui, sans-serif;
8
- }
9
-
10
- .header {
11
- padding: 20px 0 16px;
12
- display: flex;
13
- align-items: center;
14
- gap: 12px;
15
- }
16
-
17
- .title {
18
- font-size: 24px;
19
- font-weight: 800;
20
- color: var(--theme-text);
21
- margin: 0;
22
- flex: 1;
23
- }
24
-
25
- // Stat cards
26
- .statGrid {
27
- display: grid;
28
- grid-template-columns: repeat(4, 1fr);
29
- gap: 12px;
30
- margin-bottom: 24px;
31
- @media (max-width: 800px) { grid-template-columns: repeat(2, 1fr); }
32
- }
33
-
34
- .statCard {
35
- padding: 16px 18px;
36
- border-radius: 10px;
37
- background: var(--theme-elevation-50);
38
- }
39
-
40
- .statLabel {
41
- font-size: 10px;
42
- font-weight: 700;
43
- text-transform: uppercase;
44
- letter-spacing: 0.06em;
45
- color: var(--theme-elevation-500);
46
- margin-bottom: 6px;
47
- }
48
-
49
- .statValue {
50
- font-size: 26px;
51
- font-weight: 700;
52
- color: var(--theme-text);
53
- }
54
-
55
- .statUnit {
56
- font-size: 14px;
57
- font-weight: 500;
58
- color: var(--theme-elevation-500);
59
- margin-left: 2px;
60
- }
61
-
62
- // Filters
63
- .filters {
64
- display: flex;
65
- align-items: center;
66
- gap: 12px;
67
- margin-bottom: 16px;
68
- flex-wrap: wrap;
69
- }
70
-
71
- .tabs {
72
- display: flex;
73
- gap: 0;
74
- border-bottom: 1px solid var(--theme-elevation-150, #f1f5f9);
75
- }
76
-
77
- .tab {
78
- padding: 8px 14px;
79
- font-size: 13px;
80
- font-weight: 600;
81
- color: var(--theme-elevation-500);
82
- background: none;
83
- border: none;
84
- border-bottom: 2px solid transparent;
85
- cursor: pointer;
86
- transition: all 100ms;
87
- &:hover { color: var(--theme-text); }
88
- &.tabActive {
89
- color: var(--theme-text);
90
- border-bottom-color: #2563eb;
91
- }
92
- }
93
-
94
- .dateRangeGroup {
95
- display: flex;
96
- gap: 4px;
97
- margin-left: auto;
98
- }
99
-
100
- .dateRangeBtn {
101
- padding: 5px 12px;
102
- border-radius: 6px;
103
- border: 1px solid var(--theme-elevation-200);
104
- background: none;
105
- font-size: 12px;
106
- font-weight: 600;
107
- color: var(--theme-elevation-500);
108
- cursor: pointer;
109
- transition: all 80ms;
110
- &:hover { background: var(--theme-elevation-100); }
111
- &.dateRangeActive {
112
- background: #2563eb;
113
- color: #fff;
114
- border-color: #2563eb;
115
- }
116
- }
117
-
118
- .searchInput {
119
- padding: 7px 12px;
120
- border-radius: 8px;
121
- border: 1px solid var(--theme-elevation-200);
122
- background: var(--theme-elevation-0, #fff);
123
- color: var(--theme-text);
124
- font-size: 13px;
125
- width: 220px;
126
- &:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08); }
127
- &::placeholder { color: var(--theme-elevation-400); }
128
- }
129
-
130
- // Table
131
- .table {
132
- width: 100%;
133
- border-collapse: collapse;
134
- font-size: 13px;
135
- }
136
-
137
- .table th {
138
- text-align: left;
139
- padding: 10px 12px;
140
- font-size: 11px;
141
- font-weight: 700;
142
- text-transform: uppercase;
143
- letter-spacing: 0.04em;
144
- color: var(--theme-elevation-500);
145
- border-bottom: 1px solid var(--theme-elevation-200);
146
- }
147
-
148
- .table td {
149
- padding: 10px 12px;
150
- color: var(--theme-text);
151
- border-bottom: 1px solid var(--theme-elevation-100, #f8fafc);
152
- vertical-align: middle;
153
- }
154
-
155
- .table tr:hover td {
156
- background: var(--theme-elevation-50);
157
- }
158
-
159
- .statusBadge {
160
- display: inline-flex;
161
- padding: 2px 8px;
162
- border-radius: 4px;
163
- font-size: 11px;
164
- font-weight: 700;
165
- }
166
-
167
- .ticketLink {
168
- color: #2563eb;
169
- text-decoration: none;
170
- font-weight: 600;
171
- font-size: 12px;
172
- &:hover { text-decoration: underline; }
173
- }
174
-
175
- .expandBtn {
176
- background: none;
177
- border: none;
178
- cursor: pointer;
179
- color: var(--theme-elevation-400);
180
- font-size: 12px;
181
- padding: 2px;
182
- &:hover { color: var(--theme-text); }
183
- }
184
-
185
- .errorDetail {
186
- padding: 10px 14px;
187
- background: #fef2f2;
188
- border-radius: 6px;
189
- font-size: 12px;
190
- color: #991b1b;
191
- font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Cascadia Code', monospace;
192
- margin: 4px 0;
193
- }
194
-
195
- .processingTime {
196
- font-size: 12px;
197
- font-weight: 600;
198
- font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Cascadia Code', monospace;
199
- }
200
-
201
- .timeFast { color: #16a34a; }
202
- .timeMedium { color: #d97706; }
203
- .timeSlow { color: #dc2626; }
204
-
205
- // Pagination
206
- .pagination {
207
- display: flex;
208
- justify-content: center;
209
- gap: 8px;
210
- margin-top: 16px;
211
- }
212
-
213
- .pageBtn {
214
- padding: 6px 14px;
215
- border-radius: 6px;
216
- border: 1px solid var(--theme-elevation-200);
217
- background: none;
218
- font-size: 12px;
219
- font-weight: 600;
220
- color: var(--theme-elevation-500);
221
- cursor: pointer;
222
- &:hover { background: var(--theme-elevation-100); }
223
- &:disabled { opacity: 0.4; cursor: not-allowed; }
224
- }
225
-
226
- .empty {
227
- padding: 60px 20px;
228
- text-align: center;
229
- color: var(--theme-elevation-400);
230
- font-size: 14px;
231
- }
232
-
233
- .loading {
234
- padding: 60px 20px;
235
- text-align: center;
236
- color: var(--theme-elevation-400);
237
- font-size: 14px;
238
- }
@@ -1,267 +0,0 @@
1
- // ImportConversation — Clean admin aesthetic, 2026
2
-
3
- .page {
4
- max-width: 1920px;
5
- margin: 0 auto;
6
- padding: 24px 16px 60px;
7
- font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', system-ui, sans-serif;
8
- }
9
-
10
- // Header
11
- .header {
12
- display: flex;
13
- align-items: flex-start;
14
- justify-content: space-between;
15
- margin-bottom: 20px;
16
- }
17
-
18
- .title {
19
- font-size: 24px;
20
- font-weight: 800;
21
- color: var(--theme-text);
22
- margin: 0;
23
- }
24
-
25
- // Buttons
26
- .btn {
27
- padding: 8px 14px;
28
- border-radius: 6px;
29
- border: 1px solid var(--theme-elevation-300);
30
- color: #fff;
31
- font-weight: 600;
32
- font-size: 13px;
33
- cursor: pointer;
34
- white-space: nowrap;
35
- transition: opacity 100ms;
36
- text-decoration: none;
37
-
38
- &:hover { opacity: 0.9; }
39
- &:disabled {
40
- cursor: not-allowed;
41
- opacity: 0.5;
42
- }
43
- }
44
-
45
- .btnPrimary { composes: btn; background: #2563eb; }
46
- .btnAmber { composes: btn; background: #d97706; }
47
- .btnGreen { composes: btn; background: #16a34a; }
48
- .btnMuted { composes: btn; background: #64748b; }
49
-
50
- .btnContent {
51
- display: flex;
52
- align-items: center;
53
- gap: 6px;
54
- }
55
-
56
- // Dropzone
57
- .dropzone {
58
- border: 3px dashed var(--theme-elevation-400);
59
- border-radius: 12px;
60
- padding: 60px 24px;
61
- text-align: center;
62
- cursor: pointer;
63
- transition: all 200ms ease;
64
- background: transparent;
65
- min-height: 200px;
66
- display: flex;
67
- flex-direction: column;
68
- align-items: center;
69
- justify-content: center;
70
- }
71
-
72
- .dropzoneDragOver {
73
- composes: dropzone;
74
- border-color: #2563eb;
75
- background: rgba(37, 99, 235, 0.04);
76
- }
77
-
78
- .dropzoneHasFile {
79
- composes: dropzone;
80
- border-color: #16a34a;
81
- background: rgba(22, 163, 74, 0.04);
82
- }
83
-
84
- .dropzoneIcon {
85
- font-size: 40px;
86
- color: #2563eb;
87
- margin-bottom: 4px;
88
- }
89
-
90
- .dropzoneText {
91
- font-size: 15px;
92
- color: var(--theme-elevation-500);
93
- margin-top: 8px;
94
- }
95
-
96
- .fileName {
97
- font-size: 14px;
98
- color: #2563eb;
99
- font-weight: 600;
100
- margin-top: 8px;
101
- }
102
-
103
- // Section
104
- .section {
105
- margin-top: 20px;
106
- padding: 16px;
107
- background: var(--theme-elevation-100);
108
- border-radius: 8px;
109
- border: 1px solid var(--theme-elevation-300);
110
- }
111
-
112
- .sectionTitle {
113
- font-size: 15px;
114
- font-weight: 700;
115
- color: var(--theme-text);
116
- margin-bottom: 10px;
117
- display: flex;
118
- align-items: center;
119
- gap: 8px;
120
- }
121
-
122
- .sectionTitleRight {
123
- font-weight: 400;
124
- font-size: 13px;
125
- color: var(--theme-elevation-500);
126
- margin-left: auto;
127
- }
128
-
129
- // Info rows
130
- .infoRow {
131
- display: flex;
132
- gap: 8px;
133
- padding: 6px 0;
134
- font-size: 14px;
135
- border-bottom: 1px solid var(--theme-elevation-300);
136
-
137
- &:last-child { border-bottom: none; }
138
- }
139
-
140
- .infoLabel {
141
- font-weight: 600;
142
- color: var(--theme-elevation-500);
143
- min-width: 100px;
144
- }
145
-
146
- .infoValue {
147
- color: var(--theme-text);
148
- }
149
-
150
- // Messages
151
- .msgRow {
152
- padding: 8px 12px;
153
- margin-bottom: 6px;
154
- border-radius: 6px;
155
- font-size: 13px;
156
- border-left: 3px solid transparent;
157
- }
158
-
159
- .msgAdmin {
160
- composes: msgRow;
161
- background: rgba(37, 99, 235, 0.06);
162
- border-left-color: #2563eb;
163
- }
164
-
165
- .msgClient {
166
- composes: msgRow;
167
- background: rgba(217, 119, 6, 0.06);
168
- border-left-color: #d97706;
169
- }
170
-
171
- .msgHeader {
172
- display: flex;
173
- justify-content: space-between;
174
- margin-bottom: 4px;
175
- }
176
-
177
- .msgAuthor {
178
- font-weight: 600;
179
- font-size: 12px;
180
- color: var(--theme-text);
181
- }
182
-
183
- .msgDate {
184
- font-size: 11px;
185
- color: var(--theme-elevation-500);
186
- }
187
-
188
- .msgPreview {
189
- color: var(--theme-elevation-500);
190
- font-size: 12px;
191
- line-height: 1.4;
192
- }
193
-
194
- // Action row
195
- .btnRow {
196
- display: flex;
197
- gap: 8px;
198
- margin-top: 16px;
199
- justify-content: flex-end;
200
- }
201
-
202
- // Result
203
- .result {
204
- margin-top: 20px;
205
- padding: 16px;
206
- border-radius: 8px;
207
- }
208
-
209
- .resultSuccess {
210
- composes: result;
211
- background: rgba(22, 163, 74, 0.06);
212
- border: 1px solid #16a34a;
213
- }
214
-
215
- .resultError {
216
- composes: result;
217
- background: rgba(220, 38, 38, 0.06);
218
- border: 1px solid #dc2626;
219
- }
220
-
221
- .resultTitle {
222
- font-size: 16px;
223
- font-weight: 700;
224
- display: flex;
225
- align-items: center;
226
- gap: 8px;
227
- margin-bottom: 10px;
228
- }
229
-
230
- .resultTitleSuccess { composes: resultTitle; color: #16a34a; }
231
- .resultTitleError { composes: resultTitle; color: #dc2626; }
232
-
233
- .errorText {
234
- font-size: 14px;
235
- color: #dc2626;
236
- margin: 0;
237
- }
238
-
239
- // Badge
240
- .badge {
241
- display: inline-block;
242
- padding: 2px 8px;
243
- border-radius: 4px;
244
- font-size: 11px;
245
- font-weight: 700;
246
- }
247
-
248
- .badgeNew {
249
- composes: badge;
250
- background: rgba(22, 163, 74, 0.12);
251
- color: #16a34a;
252
- }
253
-
254
- .badgeInfo {
255
- composes: badge;
256
- background: rgba(37, 99, 235, 0.12);
257
- color: #2563eb;
258
- }
259
-
260
- // Link
261
- .link {
262
- color: #2563eb;
263
- font-weight: 600;
264
- text-decoration: none;
265
-
266
- &:hover { text-decoration: underline; }
267
- }
@@ -1,55 +0,0 @@
1
- @use 'tokens' as *;
2
-
3
- .root {
4
- padding: 12px 0;
5
- }
6
-
7
- .twoColumns {
8
- display: grid;
9
- grid-template-columns: 1fr 320px;
10
- gap: 16px;
11
- align-items: start;
12
-
13
- @media (max-width: 1100px) {
14
- grid-template-columns: 1fr;
15
- }
16
- }
17
-
18
- .mainColumn {
19
- min-width: 0; // prevent overflow
20
- }
21
-
22
- .sideColumn {
23
- display: flex;
24
- flex-direction: column;
25
- gap: 12px;
26
- position: sticky;
27
- top: 80px;
28
-
29
- @media (max-width: 1100px) {
30
- position: static;
31
- }
32
- }
33
-
34
- .separator {
35
- border-top: 1px solid $border;
36
- margin: 16px 0;
37
- }
38
-
39
- // RTE display overrides (scoped)
40
- .rteDisplay {
41
- :global {
42
- blockquote {
43
- border-left: 3px solid $blue;
44
- margin: 8px 0;
45
- padding: 8px 16px;
46
- background: $bg;
47
- border-radius: 0 $radius-sm $radius-sm 0;
48
- }
49
- img { max-width: 100%; height: auto; border-radius: $radius; margin: 8px 0; }
50
- a { color: $blue; text-decoration: underline; }
51
- ul, ol { margin: 8px 0; padding-left: 24px; }
52
- li { margin: 2px 0; }
53
- p { margin: 0 0 6px 0; }
54
- }
55
- }
@@ -1,164 +0,0 @@
1
- .page {
2
- max-width: 1920px;
3
- margin: 0 auto;
4
- padding: 0 24px 60px;
5
- font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', system-ui, sans-serif;
6
- }
7
-
8
- .header {
9
- display: flex;
10
- align-items: center;
11
- gap: 16px;
12
- padding: 20px 0 16px;
13
- flex-wrap: wrap;
14
- }
15
-
16
- .title {
17
- font-size: 24px;
18
- font-weight: 800;
19
- color: var(--theme-text);
20
- margin: 0;
21
- flex: 1;
22
- }
23
-
24
- .headerActions {
25
- display: flex;
26
- gap: 8px;
27
- align-items: center;
28
- }
29
-
30
- .purgeBtn {
31
- padding: 7px 14px;
32
- border-radius: 8px;
33
- border: 1px solid var(--theme-elevation-200);
34
- background: none;
35
- font-size: 12px;
36
- font-weight: 600;
37
- color: var(--theme-elevation-500);
38
- cursor: pointer;
39
- transition: all 100ms;
40
- &:hover { background: var(--theme-elevation-100); color: var(--theme-text); }
41
- }
42
-
43
- .purgeBtnDanger {
44
- border-color: #fca5a5;
45
- color: #dc2626;
46
- &:hover { background: #fef2f2; }
47
- }
48
-
49
- .tabs {
50
- display: flex;
51
- gap: 0;
52
- border-bottom: 1px solid var(--theme-elevation-150, #f1f5f9);
53
- margin-bottom: 16px;
54
- }
55
-
56
- .tab {
57
- padding: 10px 16px;
58
- font-size: 13px;
59
- font-weight: 600;
60
- color: var(--theme-elevation-500);
61
- background: none;
62
- border: none;
63
- border-bottom: 2px solid transparent;
64
- cursor: pointer;
65
- transition: all 100ms;
66
- &:hover { color: var(--theme-text); }
67
- &.tabActive { color: var(--theme-text); border-bottom-color: #2563eb; }
68
- }
69
-
70
- .table {
71
- width: 100%;
72
- border-collapse: collapse;
73
- font-size: 13px;
74
- }
75
-
76
- .table th {
77
- text-align: left;
78
- padding: 10px 12px;
79
- font-size: 11px;
80
- font-weight: 700;
81
- text-transform: uppercase;
82
- letter-spacing: 0.04em;
83
- color: var(--theme-elevation-500);
84
- border-bottom: 1px solid var(--theme-elevation-200);
85
- }
86
-
87
- .table td {
88
- padding: 10px 12px;
89
- color: var(--theme-text);
90
- border-bottom: 1px solid var(--theme-elevation-100, #f8fafc);
91
- vertical-align: middle;
92
- }
93
-
94
- .table tr:hover td { background: var(--theme-elevation-50); }
95
-
96
- .badge {
97
- display: inline-flex;
98
- padding: 2px 8px;
99
- border-radius: 4px;
100
- font-size: 11px;
101
- font-weight: 700;
102
- }
103
-
104
- .mono {
105
- font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Cascadia Code', monospace;
106
- font-size: 12px;
107
- }
108
-
109
- .truncate {
110
- max-width: 300px;
111
- overflow: hidden;
112
- text-overflow: ellipsis;
113
- white-space: nowrap;
114
- }
115
-
116
- .pagination {
117
- display: flex;
118
- justify-content: center;
119
- gap: 8px;
120
- margin-top: 16px;
121
- align-items: center;
122
- }
123
-
124
- .pageBtn {
125
- padding: 6px 14px;
126
- border-radius: 6px;
127
- border: 1px solid var(--theme-elevation-200);
128
- background: none;
129
- font-size: 12px;
130
- font-weight: 600;
131
- color: var(--theme-elevation-500);
132
- cursor: pointer;
133
- &:hover { background: var(--theme-elevation-100); }
134
- &:disabled { opacity: 0.4; cursor: not-allowed; }
135
- }
136
-
137
- .pageInfo {
138
- font-size: 12px;
139
- color: var(--theme-elevation-500);
140
- }
141
-
142
- .empty {
143
- padding: 60px 20px;
144
- text-align: center;
145
- color: var(--theme-elevation-400);
146
- font-size: 14px;
147
- }
148
-
149
- .loading {
150
- padding: 60px 20px;
151
- text-align: center;
152
- color: var(--theme-elevation-400);
153
- }
154
-
155
- .purgeResult {
156
- padding: 10px 16px;
157
- border-radius: 8px;
158
- background: #f0fdf4;
159
- border: 1px solid #bbf7d0;
160
- color: #166534;
161
- font-size: 13px;
162
- font-weight: 600;
163
- margin-bottom: 16px;
164
- }