@agentpaid/paid-nextjs-client 0.3.0-test.2 → 0.3.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.
Files changed (72) hide show
  1. package/README.md +184 -79
  2. package/dist/api/api/handleBlocks.ts +144 -0
  3. package/dist/api/handleBlocks.d.ts +9 -0
  4. package/dist/api/handleBlocks.d.ts.map +1 -0
  5. package/dist/api/handleBlocks.js +107 -0
  6. package/dist/api/handleBlocks.js.map +1 -0
  7. package/dist/components/PaidActivityLog.d.ts +13 -26
  8. package/dist/components/PaidActivityLog.d.ts.map +1 -1
  9. package/dist/components/PaidActivityLog.js +70 -26
  10. package/dist/components/PaidActivityLog.js.map +1 -1
  11. package/dist/components/PaidContainer.d.ts +11 -24
  12. package/dist/components/PaidContainer.d.ts.map +1 -1
  13. package/dist/components/PaidContainer.js +18 -9
  14. package/dist/components/PaidContainer.js.map +1 -1
  15. package/dist/components/PaidInvoiceTable.d.ts +12 -25
  16. package/dist/components/PaidInvoiceTable.d.ts.map +1 -1
  17. package/dist/components/PaidInvoiceTable.js +78 -30
  18. package/dist/components/PaidInvoiceTable.js.map +1 -1
  19. package/dist/components/PaidPaymentsTable.d.ts +12 -25
  20. package/dist/components/PaidPaymentsTable.d.ts.map +1 -1
  21. package/dist/components/PaidPaymentsTable.js +63 -29
  22. package/dist/components/PaidPaymentsTable.js.map +1 -1
  23. package/dist/components/components/PaidActivityLog.js +115 -58
  24. package/dist/components/components/PaidContainer.js +42 -32
  25. package/dist/components/components/PaidInvoiceTable.js +126 -89
  26. package/dist/components/components/PaidPaymentsTable.js +111 -72
  27. package/dist/components/components/ui/Pagination.js +168 -0
  28. package/dist/components/ui/Pagination.d.ts +10 -0
  29. package/dist/components/ui/Pagination.d.ts.map +1 -0
  30. package/dist/components/ui/Pagination.js +111 -0
  31. package/dist/components/ui/Pagination.js.map +1 -0
  32. package/dist/hooks/useCache.d.ts +2 -2
  33. package/dist/hooks/useCache.d.ts.map +1 -1
  34. package/dist/hooks/useCache.js +10 -17
  35. package/dist/hooks/useCache.js.map +1 -1
  36. package/dist/index.d.ts +4 -4
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -4
  39. package/dist/index.js.map +1 -1
  40. package/dist/styles/paid-activity-log.css +154 -0
  41. package/dist/styles/paid-container.css +25 -16
  42. package/dist/styles/paid-invoice-table.css +135 -120
  43. package/dist/styles/paid-payments-table.css +65 -109
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/dist/utils/apiClient.d.ts +17 -0
  46. package/dist/utils/apiClient.d.ts.map +1 -0
  47. package/dist/utils/apiClient.js +60 -0
  48. package/dist/utils/apiClient.js.map +1 -0
  49. package/dist/utils/cache.js +1 -1
  50. package/dist/utils/cache.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/api/api/handlePaidInvoicePdf.ts +0 -79
  53. package/dist/api/api/handlePaidInvoices.ts +0 -77
  54. package/dist/api/api/handlePaidPayments.ts +0 -77
  55. package/dist/api/api/handlePaidUsage.ts +0 -52
  56. package/dist/api/handlePaidInvoicePdf.d.ts +0 -6
  57. package/dist/api/handlePaidInvoicePdf.d.ts.map +0 -1
  58. package/dist/api/handlePaidInvoicePdf.js +0 -60
  59. package/dist/api/handlePaidInvoicePdf.js.map +0 -1
  60. package/dist/api/handlePaidInvoices.d.ts +0 -6
  61. package/dist/api/handlePaidInvoices.d.ts.map +0 -1
  62. package/dist/api/handlePaidInvoices.js +0 -56
  63. package/dist/api/handlePaidInvoices.js.map +0 -1
  64. package/dist/api/handlePaidPayments.d.ts +0 -6
  65. package/dist/api/handlePaidPayments.d.ts.map +0 -1
  66. package/dist/api/handlePaidPayments.js +0 -56
  67. package/dist/api/handlePaidPayments.js.map +0 -1
  68. package/dist/api/handlePaidUsage.d.ts +0 -6
  69. package/dist/api/handlePaidUsage.d.ts.map +0 -1
  70. package/dist/api/handlePaidUsage.js +0 -35
  71. package/dist/api/handlePaidUsage.js.map +0 -1
  72. package/dist/styles/activity-log-table.css +0 -138
@@ -11,7 +11,7 @@
11
11
 
12
12
  .paid-container-wrapper {
13
13
  position: relative;
14
- background: #f8f9fa;
14
+ background: var(--paid-container-background-color, #f8f9fa);
15
15
  border: 1px solid #e9ecef;
16
16
  border-radius: 8px;
17
17
  overflow: hidden;
@@ -36,17 +36,17 @@
36
36
  }
37
37
 
38
38
  .paid-container-title {
39
- font-size: var(--paid-title-font-size, 1.5rem);
40
- font-weight: var(--paid-title-font-weight, 600);
41
- color: var(--paid-title-color, #1d2939);
39
+ font-size: var(--paid-h2-font-size, 1.5rem);
40
+ font-weight: 600;
41
+ color: var(--paid-primary-color, #1d2939);
42
42
  font-family: var(--paid-font-family, 'Roboto');
43
43
  margin: 0 0 8px 0;
44
44
  line-height: 1.3;
45
45
  }
46
46
 
47
47
  .paid-container-description {
48
- font-size: var(--paid-description-font-size, 0.95rem);
49
- color: var(--paid-description-color, #667085);
48
+ font-size: var(--paid-paragraph-font-size, 0.95rem);
49
+ color: var(--paid-secondary-color, #667085);
50
50
  font-family: var(--paid-font-family, 'Roboto');
51
51
  margin: 0;
52
52
  line-height: 1.4;
@@ -56,17 +56,17 @@
56
56
  .paid-container-tabs {
57
57
  display: flex;
58
58
  gap: 4px;
59
- background: #FAFAFB;
60
- border-radius: 12px;
59
+ background: var(--paid-tab-background-color, #e9ecef);
60
+ border-radius: 16px;
61
61
  min-height: 48px;
62
62
  position: relative;
63
63
  padding: 4px;
64
64
  }
65
65
 
66
66
  .paid-container-tab {
67
- font-size: var(--paid-toggle-font-size, 1rem);
67
+ font-size: var(--paid-paragraph-font-size, 1rem);
68
68
  font-weight: 500;
69
- color: #6B7280;
69
+ color: var(--paid-tab-text-color, var(--paid-secondary-color, #6B7280));
70
70
  background: none;
71
71
  border: none;
72
72
  border-radius: 12px;
@@ -88,20 +88,24 @@
88
88
  }
89
89
 
90
90
  .paid-container-tab:hover {
91
- background: white;
91
+ background: var(--paid-tab-hover-background-color, white);
92
92
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
93
+ color: var(--paid-tab-hover-text-color, var(--paid-hover-color, var(--paid-primary-color, #1d2939)));
93
94
  }
94
95
 
95
96
  .paid-container-tab.active {
96
- color: #1d2939;
97
+ color: var(--paid-tab-active-text-color, var(--paid-primary-color, #1d2939));
97
98
  font-weight: 600;
98
- background: white;
99
+ background: var(--paid-tab-active-background-color, white);
99
100
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
100
101
  }
101
102
 
102
103
  .paid-container-tab:focus {
103
104
  outline: none;
104
- box-shadow: 0 0 0 2px #2563eb;
105
+ }
106
+
107
+ .paid-container-tab:active {
108
+ color: var(--paid-pressed-color, var(--paid-primary-color, #1d2939));
105
109
  }
106
110
 
107
111
  /* Content styles */
@@ -110,6 +114,11 @@
110
114
  font-family: var(--paid-font-family, 'Roboto');
111
115
  }
112
116
 
117
+ /* Add extra spacing when no tabs are present */
118
+ .paid-container-header:not(:has(.paid-container-tabs)) + .paid-container-content {
119
+ padding-top: 24px;
120
+ }
121
+
113
122
  /* Responsive design */
114
123
  @media (max-width: 768px) {
115
124
  .paid-container-header {
@@ -130,10 +139,10 @@
130
139
  }
131
140
 
132
141
  .paid-container-title {
133
- font-size: var(--paid-title-font-size, 1.25rem);
142
+ font-size: var(--paid-h2-font-size, 1.25rem);
134
143
  }
135
144
 
136
145
  .paid-container-description {
137
- font-size: var(--paid-description-font-size, 0.875rem);
146
+ font-size: var(--paid-paragraph-font-size, 0.875rem);
138
147
  }
139
148
  }
@@ -11,8 +11,8 @@
11
11
 
12
12
  .paid-invoice-table-wrapper {
13
13
  position: relative;
14
- background: var(--paid-wrapper-bg, #fff);
15
- border: var(--paid-wrapper-border, 1px solid #e5e7eb);
14
+ background: var(--paid-table-background-color, #fff);
15
+ border: 1px solid #e5e7eb;
16
16
  border-radius: 12px;
17
17
  box-shadow: 0 2px 16px 0 rgba(16, 24, 40, 0.08);
18
18
  overflow-x: auto;
@@ -30,16 +30,17 @@
30
30
  display: flex;
31
31
  justify-content: space-between;
32
32
  align-items: center;
33
- padding: 18px 24px;
34
- background: var(--paid-header-bg, #fff);
35
- border-bottom: var(--paid-header-border-bottom, 1px solid #e5e7eb);
33
+ padding: var(--paid-header-padding, 18px 24px);
34
+ background: var(--paid-container-background-color, #f8f9fa);
35
+ border-bottom: 1px solid #e5e7eb;
36
36
  border-radius: 12px 12px 0 0;
37
37
  font-family: var(--paid-font-family, 'Roboto');
38
38
  }
39
39
  .paid-invoice-title {
40
- font-size: var(--paid-title-font-size, 1.1rem);
41
- font-weight: var(--paid-title-font-weight, 600);
42
- color: var(--paid-title-color, #1d2939);
40
+ margin: 0;
41
+ font-size: var(--paid-h3-font-size, 1.1rem);
42
+ font-weight: 600;
43
+ color: var(--paid-primary-color, #1d2939);
43
44
  font-family: var(--paid-font-family, 'Roboto');
44
45
  }
45
46
 
@@ -47,42 +48,46 @@
47
48
  .paid-invoice-table {
48
49
  width: 100%;
49
50
  min-width: 0;
50
- table-layout: auto;
51
+ table-layout: fixed;
51
52
  word-break: break-word;
52
53
  border-collapse: separate;
53
54
  border-spacing: 0;
54
- background: var(--paid-table-bg, #fff);
55
+ background: var(--paid-table-background-color, #fff);
55
56
  font-family: var(--paid-font-family, 'Roboto');
57
+ max-width: 100%;
58
+ box-sizing: border-box;
56
59
  }
57
60
  .paid-invoice-table th,
58
61
  .paid-invoice-table td {
59
- padding: 8px 8px;
60
- font-size: 0.95rem;
62
+ padding: var(--paid-cell-padding, 8px 8px);
63
+ font-size: var(--paid-paragraph-font-size, 0.95rem);
61
64
  white-space: normal;
62
65
  word-break: break-word;
66
+ overflow: hidden;
67
+ text-overflow: ellipsis;
63
68
  }
64
69
  .paid-invoice-table th {
65
- font-size: var(--paid-th-font-size, 1rem);
66
- font-weight: var(--paid-th-font-weight, 500);
67
- color: var(--paid-th-color, #667085);
70
+ font-size: var(--paid-paragraph-font-size, 1rem);
71
+ font-weight: 500;
72
+ color: var(--paid-table-header-color, var(--paid-secondary-color, #667085));
68
73
  text-align: left;
69
- padding: 18px 24px;
70
- background: var(--paid-th-bg, #f9fafb);
71
- border-bottom: var(--paid-th-border-bottom, 1px solid #e5e7eb);
74
+ padding: var(--paid-header-padding, 18px 24px);
75
+ background: var(--paid-table-header-background-color, #f9fafb);
76
+ border-bottom: 1px solid #e5e7eb;
72
77
  }
73
78
  .paid-invoice-table td {
74
- font-size: var(--paid-td-font-size, 0.97rem);
75
- font-weight: var(--paid-td-font-weight, normal);
76
- color: var(--paid-td-color, #1d2939);
77
- background: var(--paid-td-bg, transparent);
78
- padding: 16px 24px;
79
- border-bottom: var(--paid-td-border-bottom, 1px solid #f1f1f1);
79
+ font-size: var(--paid-paragraph-font-size, 0.97rem);
80
+ font-weight: normal;
81
+ color: var(--paid-table-cell-color, var(--paid-primary-color, #1d2939));
82
+ background: transparent;
83
+ padding: var(--paid-cell-padding, 16px 24px);
84
+ border-bottom: 1px solid #f1f1f1;
80
85
  }
81
86
  .paid-invoice-table tr:last-child td {
82
87
  border-bottom: none;
83
88
  }
84
89
  .paid-invoice-table tr:hover td {
85
- background: var(--paid-row-hover-bg, #f3f4f6);
90
+ background: var(--paid-table-hover-color, #f3f4f6);
86
91
  }
87
92
  .paid-invoice-table th,
88
93
  .paid-invoice-table td {
@@ -91,47 +96,83 @@
91
96
 
92
97
  /* Status badges */
93
98
  .paid-invoice-status {
94
- display: inline-block;
95
- padding: 4px 8px;
99
+ display: inline-flex;
100
+ align-items: center;
96
101
  border-radius: 6px;
102
+ padding: 2px 12px;
97
103
  font-size: 0.75rem;
98
104
  font-weight: 500;
99
- text-transform: uppercase;
100
- letter-spacing: 0.025em;
105
+ text-transform: capitalize;
106
+ border: 1px solid #E5E6E8;
107
+ background-color: var(--paid-button-bg-color, white);
108
+ color: var(--paid-primary-color, #374151);
101
109
  }
102
110
 
103
111
  .paid-invoice-status-paid {
104
- background-color: #dcfce7;
105
- color: #166534;
112
+ background-color: var(--paid-button-bg-color, white);
113
+ color: var(--paid-primary-color, #374151);
114
+ border: 1px solid #E5E6E8;
106
115
  }
107
116
 
108
117
  .paid-invoice-status-pending {
109
- background-color: #fef3c7;
110
- color: #92400e;
118
+ background-color: var(--paid-button-bg-color, white);
119
+ color: var(--paid-primary-color, #374151);
120
+ border: 1px solid #E5E6E8;
111
121
  }
112
122
 
113
123
  .paid-invoice-status-unpaid {
114
- background-color: #fee2e2;
115
- color: #991b1b;
124
+ background-color: var(--paid-button-bg-color, white);
125
+ color: var(--paid-primary-color, #374151);
126
+ border: 1px solid #E5E6E8;
116
127
  }
117
128
 
118
129
  /* Action button */
119
130
  .paid-invoice-action-btn {
120
- background: none;
121
- border: none;
131
+ background: var(--paid-button-bg-color, #ffffff) !important;
132
+ border: 1px solid #E5E7EB;
122
133
  cursor: pointer;
123
- padding: 4px;
124
- border-radius: 4px;
125
- color: #6b7280;
126
- transition: all 0.2s;
134
+ padding: 8px;
135
+ border-radius: 6px;
136
+ color: var(--paid-primary-color, #374151) !important;
137
+ transition: all 0.15s ease, filter 0.15s ease;
138
+ transform: translateY(0);
139
+ position: relative;
140
+ display: inline-flex;
141
+ align-items: center;
142
+ justify-content: center;
143
+ outline: none !important;
144
+ user-select: none;
145
+ -webkit-appearance: none !important;
146
+ -moz-appearance: none !important;
147
+ appearance: none !important;
148
+ box-shadow: none !important;
127
149
  }
128
150
 
129
- .paid-invoice-action-btn:hover {
130
- background-color: #f3f4f6;
131
- color: #374151;
151
+ .paid-invoice-action-btn:hover:not(:disabled) {
152
+ background-color: var(--paid-button-bg-color, #ffffff) !important;
153
+ color: var(--paid-primary-color, #374151) !important;
154
+ filter: brightness(0.9) !important;
155
+ transform: translateY(-1px) !important;
156
+ }
157
+
158
+ .paid-invoice-action-btn:active:not(:disabled) {
159
+ background-color: var(--paid-button-bg-color, #ffffff) !important;
160
+ color: var(--paid-primary-color, #374151) !important;
161
+ filter: brightness(0.8) !important;
162
+ transform: translateY(0px) !important;
163
+ }
164
+
165
+ .paid-invoice-action-btn:focus:not(:disabled) {
166
+ background-color: var(--paid-button-bg-color, #ffffff) !important;
167
+ color: var(--paid-primary-color, #374151) !important;
168
+ filter: brightness(0.9) !important;
169
+ box-shadow: none !important;
170
+ outline: none !important;
132
171
  }
133
172
 
134
173
  .paid-invoice-action-btn:disabled {
174
+ background-color: var(--paid-button-bg-color, #f9fafb) !important;
175
+ color: #9CA3AF !important;
135
176
  opacity: 0.6;
136
177
  cursor: not-allowed;
137
178
  }
@@ -139,9 +180,9 @@
139
180
  /* Empty state */
140
181
  .paid-invoice-empty {
141
182
  text-align: center;
142
- color: var(--paid-empty-color, #98a2b3);
183
+ color: var(--paid-secondary-color, #98a2b3);
143
184
  padding: 40px 0;
144
- font-size: 1rem;
185
+ font-size: var(--paid-paragraph-font-size, 1rem);
145
186
  }
146
187
 
147
188
  /* Loading and error states */
@@ -161,13 +202,18 @@
161
202
  @media (max-width: 768px) {
162
203
  .paid-invoice-table th,
163
204
  .paid-invoice-table td {
164
- padding: 12px 16px;
165
- font-size: 0.8rem;
205
+ padding: var(--paid-cell-padding, 12px 16px);
206
+ font-size: var(--paid-paragraph-font-size, 0.8rem);
166
207
  }
167
208
 
168
209
  .paid-invoice-table {
169
210
  min-width: 600px;
170
211
  }
212
+
213
+ .paid-invoice-modal-content {
214
+ width: 95vw;
215
+ height: 95vh;
216
+ }
171
217
  }
172
218
 
173
219
  .paid-invoice-modal-overlay {
@@ -176,125 +222,94 @@
176
222
  left: 0;
177
223
  right: 0;
178
224
  bottom: 0;
179
- background-color: rgba(17, 24, 39, 0.7);
180
- backdrop-filter: blur(4px);
225
+ background: rgba(0, 0, 0, 0.5);
181
226
  display: flex;
182
227
  align-items: center;
183
228
  justify-content: center;
184
229
  z-index: 1000;
185
- animation: fadeIn 0.2s ease-out;
230
+ padding: 20px;
186
231
  }
187
232
 
188
233
  .paid-invoice-modal-content {
189
234
  background: white;
190
- border-radius: 16px;
191
- width: 95vw;
192
- height: 95vh;
193
- max-width: 1400px;
194
- max-height: 900px;
235
+ border-radius: 12px;
236
+ width: 90vw;
237
+ height: 90vh;
238
+ max-width: 1200px;
239
+ max-height: 800px;
195
240
  display: flex;
196
241
  flex-direction: column;
197
- overflow: hidden;
198
242
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
199
- animation: slideIn 0.3s ease-out;
200
- border: 1px solid rgba(255, 255, 255, 0.1);
201
243
  }
202
244
 
203
245
  .paid-invoice-modal-header {
204
- display: flex;
205
- justify-content: space-between;
206
- align-items: center;
207
- padding: 20px 24px;
208
- border-bottom: 1px solid #e5e7eb;
209
- background: #ffffff;
210
- }
211
-
212
- .paid-invoice-modal-header h3 {
213
- margin: 0;
214
- font-size: 20px;
215
- font-weight: 600;
216
- color: #111827;
217
- display: flex;
218
- align-items: center;
219
- gap: 8px;
220
- }
221
-
222
- .paid-invoice-modal-header h3::before {
223
- content: '';
224
- display: inline-block;
225
- width: 4px;
226
- height: 20px;
227
- background: #3b82f6;
228
- border-radius: 2px;
246
+ display: none;
229
247
  }
230
248
 
231
249
  .paid-invoice-modal-actions {
250
+ position: absolute;
251
+ top: 16px;
252
+ right: 16px;
253
+ z-index: 10;
232
254
  display: flex;
233
- gap: 12px;
255
+ gap: 8px;
234
256
  }
235
257
 
236
258
  .paid-invoice-modal-btn {
237
259
  display: flex;
238
260
  align-items: center;
239
261
  justify-content: center;
240
- width: 36px;
241
- height: 36px;
262
+ width: 32px;
263
+ height: 32px;
242
264
  border: none;
243
- border-radius: 8px;
265
+ border-radius: 6px;
244
266
  cursor: pointer;
245
267
  transition: all 0.2s ease;
246
- position: relative;
268
+ background: rgba(255, 255, 255, 0.9);
269
+ color: #6b7280;
270
+ backdrop-filter: blur(8px);
247
271
  }
248
272
 
249
273
  .paid-invoice-modal-btn::after {
250
- content: attr(title);
251
- position: absolute;
252
- bottom: -24px;
253
- left: 50%;
254
- transform: translateX(-50%);
255
- background: #1f2937;
256
- color: white;
257
- padding: 4px 8px;
258
- border-radius: 4px;
259
- font-size: 12px;
260
- white-space: nowrap;
261
- opacity: 0;
262
- transition: opacity 0.2s ease;
263
- pointer-events: none;
274
+ display: none;
275
+ }
276
+
277
+ .paid-invoice-modal-btn:hover {
278
+ background: rgba(255, 255, 255, 1);
279
+ color: #374151;
280
+ transform: none;
281
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
264
282
  }
265
283
 
266
- .paid-invoice-modal-btn:hover::after {
267
- opacity: 1;
284
+ .paid-invoice-modal-btn:active {
285
+ transform: scale(0.95);
286
+ transition: all 0.1s ease;
268
287
  }
269
288
 
270
289
  .paid-invoice-modal-btn-download {
271
- background: #3b82f6;
272
- color: white;
290
+ background: rgba(255, 255, 255, 0.9);
291
+ color: #6b7280;
273
292
  }
274
293
 
275
294
  .paid-invoice-modal-btn-download:hover {
276
- background: #2563eb;
277
- transform: translateY(-1px);
295
+ background: rgba(255, 255, 255, 1);
296
+ color: #374151;
278
297
  }
279
298
 
280
299
  .paid-invoice-modal-btn-close {
281
- background: #f3f4f6;
300
+ background: rgba(255, 255, 255, 0.9);
282
301
  color: #6b7280;
283
302
  }
284
303
 
285
304
  .paid-invoice-modal-btn-close:hover {
286
- background: #e5e7eb;
305
+ background: rgba(255, 255, 255, 1);
287
306
  color: #374151;
288
- transform: translateY(-1px);
289
307
  }
290
308
 
291
309
  .paid-invoice-modal-body {
292
310
  flex: 1;
293
- display: flex;
294
- align-items: center;
295
- justify-content: center;
296
- background: #f9fafb;
297
- position: relative;
311
+ overflow: hidden;
312
+ border-radius: 0 0 12px 12px;
298
313
  }
299
314
 
300
315
  .paid-invoice-modal-body iframe {
@@ -308,9 +323,9 @@
308
323
  display: flex;
309
324
  align-items: center;
310
325
  justify-content: center;
311
- font-size: 16px;
312
- color: #6b7280;
313
- gap: 8px;
326
+ height: 100%;
327
+ font-size: var(--paid-paragraph-font-size, 1rem);
328
+ color: var(--paid-secondary-color, #6b7280);
314
329
  }
315
330
 
316
331
  .paid-invoice-modal-loading::after {