@agentpaid/paid-nextjs-client 0.2.1 → 0.3.0-test.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 (52) hide show
  1. package/dist/api/api/handlePaidInvoicePdf.ts +79 -0
  2. package/dist/api/api/handlePaidInvoices.ts +77 -0
  3. package/dist/api/api/handlePaidPayments.ts +77 -0
  4. package/dist/api/handlePaidInvoicePdf.d.ts +6 -0
  5. package/dist/api/handlePaidInvoicePdf.d.ts.map +1 -0
  6. package/dist/api/handlePaidInvoicePdf.js +60 -0
  7. package/dist/api/handlePaidInvoicePdf.js.map +1 -0
  8. package/dist/api/handlePaidInvoices.d.ts +6 -0
  9. package/dist/api/handlePaidInvoices.d.ts.map +1 -0
  10. package/dist/api/handlePaidInvoices.js +56 -0
  11. package/dist/api/handlePaidInvoices.js.map +1 -0
  12. package/dist/api/handlePaidPayments.d.ts +6 -0
  13. package/dist/api/handlePaidPayments.d.ts.map +1 -0
  14. package/dist/api/handlePaidPayments.js +56 -0
  15. package/dist/api/handlePaidPayments.js.map +1 -0
  16. package/dist/components/PaidActivityLog.d.ts +0 -1
  17. package/dist/components/PaidActivityLog.d.ts.map +1 -1
  18. package/dist/components/PaidActivityLog.js +13 -3
  19. package/dist/components/PaidActivityLog.js.map +1 -1
  20. package/dist/components/PaidContainer.d.ts +45 -0
  21. package/dist/components/PaidContainer.d.ts.map +1 -0
  22. package/dist/components/PaidContainer.js +29 -0
  23. package/dist/components/PaidContainer.js.map +1 -0
  24. package/dist/components/PaidInvoiceTable.d.ts +35 -0
  25. package/dist/components/PaidInvoiceTable.d.ts.map +1 -0
  26. package/dist/components/PaidInvoiceTable.js +138 -0
  27. package/dist/components/PaidInvoiceTable.js.map +1 -0
  28. package/dist/components/PaidPaymentsTable.d.ts +35 -0
  29. package/dist/components/PaidPaymentsTable.d.ts.map +1 -0
  30. package/dist/components/PaidPaymentsTable.js +103 -0
  31. package/dist/components/PaidPaymentsTable.js.map +1 -0
  32. package/dist/components/components/PaidActivityLog.js +31 -9
  33. package/dist/components/components/PaidContainer.js +113 -0
  34. package/dist/components/components/PaidInvoiceTable.js +321 -0
  35. package/dist/components/components/PaidPaymentsTable.js +221 -0
  36. package/dist/hooks/useCache.d.ts +12 -0
  37. package/dist/hooks/useCache.d.ts.map +1 -0
  38. package/dist/hooks/useCache.js +43 -0
  39. package/dist/hooks/useCache.js.map +1 -0
  40. package/dist/index.d.ts +7 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +7 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/styles/paid-container.css +139 -0
  45. package/dist/styles/paid-invoice-table.css +344 -0
  46. package/dist/styles/paid-payments-table.css +238 -0
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/dist/utils/cache.d.ts +30 -0
  49. package/dist/utils/cache.d.ts.map +1 -0
  50. package/dist/utils/cache.js +101 -0
  51. package/dist/utils/cache.js.map +1 -0
  52. package/package.json +9 -3
@@ -0,0 +1,139 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap');
2
+
3
+ /* Container styles */
4
+ .paid-container {
5
+ position: relative;
6
+ min-width: 0;
7
+ font-family: var(--paid-font-family, 'Roboto');
8
+ width: 100%;
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ .paid-container-wrapper {
13
+ position: relative;
14
+ background: #f8f9fa;
15
+ border: 1px solid #e9ecef;
16
+ border-radius: 8px;
17
+ overflow: hidden;
18
+ transition: box-shadow 0.2s;
19
+ font-family: var(--paid-font-family, 'Roboto');
20
+ width: 100%;
21
+ min-width: 0;
22
+ }
23
+
24
+ /* Header styles */
25
+ .paid-container-header {
26
+ display: flex;
27
+ flex-direction: column;
28
+ padding: 24px 24px 0 24px;
29
+ font-family: var(--paid-font-family, 'Roboto');
30
+ gap: 20px;
31
+ }
32
+
33
+ .paid-container-header-content {
34
+ flex: 1;
35
+ min-width: 0;
36
+ }
37
+
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);
42
+ font-family: var(--paid-font-family, 'Roboto');
43
+ margin: 0 0 8px 0;
44
+ line-height: 1.3;
45
+ }
46
+
47
+ .paid-container-description {
48
+ font-size: var(--paid-description-font-size, 0.95rem);
49
+ color: var(--paid-description-color, #667085);
50
+ font-family: var(--paid-font-family, 'Roboto');
51
+ margin: 0;
52
+ line-height: 1.4;
53
+ }
54
+
55
+ /* Tabs styles */
56
+ .paid-container-tabs {
57
+ display: flex;
58
+ gap: 4px;
59
+ background: #FAFAFB;
60
+ border-radius: 12px;
61
+ min-height: 48px;
62
+ position: relative;
63
+ padding: 4px;
64
+ }
65
+
66
+ .paid-container-tab {
67
+ font-size: var(--paid-toggle-font-size, 1rem);
68
+ font-weight: 500;
69
+ color: #6B7280;
70
+ background: none;
71
+ border: none;
72
+ border-radius: 12px;
73
+ cursor: pointer;
74
+ text-decoration: none;
75
+ padding: 0;
76
+ font-family: var(--paid-font-family, 'Roboto');
77
+ transition: all 0.2s ease;
78
+ white-space: nowrap;
79
+ min-height: 40px;
80
+ min-width: 0;
81
+ flex: 1;
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: center;
85
+ text-align: center;
86
+ position: relative;
87
+ z-index: 2;
88
+ }
89
+
90
+ .paid-container-tab:hover {
91
+ background: white;
92
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
93
+ }
94
+
95
+ .paid-container-tab.active {
96
+ color: #1d2939;
97
+ font-weight: 600;
98
+ background: white;
99
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
100
+ }
101
+
102
+ .paid-container-tab:focus {
103
+ outline: none;
104
+ box-shadow: 0 0 0 2px #2563eb;
105
+ }
106
+
107
+ /* Content styles */
108
+ .paid-container-content {
109
+ min-height: 50px;
110
+ font-family: var(--paid-font-family, 'Roboto');
111
+ }
112
+
113
+ /* Responsive design */
114
+ @media (max-width: 768px) {
115
+ .paid-container-header {
116
+ flex-direction: column;
117
+ align-items: stretch;
118
+ gap: 16px;
119
+ }
120
+
121
+ .paid-container-tabs {
122
+ overflow-x: auto;
123
+ -webkit-overflow-scrolling: touch;
124
+ scrollbar-width: none;
125
+ -ms-overflow-style: none;
126
+ }
127
+
128
+ .paid-container-tabs::-webkit-scrollbar {
129
+ display: none;
130
+ }
131
+
132
+ .paid-container-title {
133
+ font-size: var(--paid-title-font-size, 1.25rem);
134
+ }
135
+
136
+ .paid-container-description {
137
+ font-size: var(--paid-description-font-size, 0.875rem);
138
+ }
139
+ }
@@ -0,0 +1,344 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
2
+
3
+ /* Container styles */
4
+ .paid-invoice-container {
5
+ position: relative;
6
+ min-width: 0;
7
+ font-family: var(--paid-font-family, 'Roboto');
8
+ width: 100%;
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ .paid-invoice-table-wrapper {
13
+ position: relative;
14
+ background: var(--paid-wrapper-bg, #fff);
15
+ border: var(--paid-wrapper-border, 1px solid #e5e7eb);
16
+ border-radius: 12px;
17
+ box-shadow: 0 2px 16px 0 rgba(16, 24, 40, 0.08);
18
+ overflow-x: auto;
19
+ transition: box-shadow 0.2s;
20
+ font-family: var(--paid-font-family, 'Roboto');
21
+ width: 100%;
22
+ min-width: 0;
23
+ }
24
+ .paid-invoice-table-wrapper:active {
25
+ box-shadow: 0 4px 24px 0 rgba(16, 24, 40, 0.16);
26
+ }
27
+
28
+ /* Header styles */
29
+ .paid-invoice-header {
30
+ display: flex;
31
+ justify-content: space-between;
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);
36
+ border-radius: 12px 12px 0 0;
37
+ font-family: var(--paid-font-family, 'Roboto');
38
+ }
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);
43
+ font-family: var(--paid-font-family, 'Roboto');
44
+ }
45
+
46
+ /* Table styles */
47
+ .paid-invoice-table {
48
+ width: 100%;
49
+ min-width: 0;
50
+ table-layout: auto;
51
+ word-break: break-word;
52
+ border-collapse: separate;
53
+ border-spacing: 0;
54
+ background: var(--paid-table-bg, #fff);
55
+ font-family: var(--paid-font-family, 'Roboto');
56
+ }
57
+ .paid-invoice-table th,
58
+ .paid-invoice-table td {
59
+ padding: 8px 8px;
60
+ font-size: 0.95rem;
61
+ white-space: normal;
62
+ word-break: break-word;
63
+ }
64
+ .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);
68
+ 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);
72
+ }
73
+ .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);
80
+ }
81
+ .paid-invoice-table tr:last-child td {
82
+ border-bottom: none;
83
+ }
84
+ .paid-invoice-table tr:hover td {
85
+ background: var(--paid-row-hover-bg, #f3f4f6);
86
+ }
87
+ .paid-invoice-table th,
88
+ .paid-invoice-table td {
89
+ white-space: nowrap;
90
+ }
91
+
92
+ /* Status badges */
93
+ .paid-invoice-status {
94
+ display: inline-block;
95
+ padding: 4px 8px;
96
+ border-radius: 6px;
97
+ font-size: 0.75rem;
98
+ font-weight: 500;
99
+ text-transform: uppercase;
100
+ letter-spacing: 0.025em;
101
+ }
102
+
103
+ .paid-invoice-status-paid {
104
+ background-color: #dcfce7;
105
+ color: #166534;
106
+ }
107
+
108
+ .paid-invoice-status-pending {
109
+ background-color: #fef3c7;
110
+ color: #92400e;
111
+ }
112
+
113
+ .paid-invoice-status-unpaid {
114
+ background-color: #fee2e2;
115
+ color: #991b1b;
116
+ }
117
+
118
+ /* Action button */
119
+ .paid-invoice-action-btn {
120
+ background: none;
121
+ border: none;
122
+ cursor: pointer;
123
+ padding: 4px;
124
+ border-radius: 4px;
125
+ color: #6b7280;
126
+ transition: all 0.2s;
127
+ }
128
+
129
+ .paid-invoice-action-btn:hover {
130
+ background-color: #f3f4f6;
131
+ color: #374151;
132
+ }
133
+
134
+ .paid-invoice-action-btn:disabled {
135
+ opacity: 0.6;
136
+ cursor: not-allowed;
137
+ }
138
+
139
+ /* Empty state */
140
+ .paid-invoice-empty {
141
+ text-align: center;
142
+ color: var(--paid-empty-color, #98a2b3);
143
+ padding: 40px 0;
144
+ font-size: 1rem;
145
+ }
146
+
147
+ /* Loading and error states */
148
+ .paid-invoice-loading,
149
+ .paid-invoice-error {
150
+ padding: 40px 24px;
151
+ text-align: center;
152
+ color: var(--paid-empty-color, #98a2b3);
153
+ font-size: 0.875rem;
154
+ }
155
+
156
+ .paid-invoice-error {
157
+ color: #dc2626;
158
+ }
159
+
160
+ /* Responsive design */
161
+ @media (max-width: 768px) {
162
+ .paid-invoice-table th,
163
+ .paid-invoice-table td {
164
+ padding: 12px 16px;
165
+ font-size: 0.8rem;
166
+ }
167
+
168
+ .paid-invoice-table {
169
+ min-width: 600px;
170
+ }
171
+ }
172
+
173
+ .paid-invoice-modal-overlay {
174
+ position: fixed;
175
+ top: 0;
176
+ left: 0;
177
+ right: 0;
178
+ bottom: 0;
179
+ background-color: rgba(17, 24, 39, 0.7);
180
+ backdrop-filter: blur(4px);
181
+ display: flex;
182
+ align-items: center;
183
+ justify-content: center;
184
+ z-index: 1000;
185
+ animation: fadeIn 0.2s ease-out;
186
+ }
187
+
188
+ .paid-invoice-modal-content {
189
+ background: white;
190
+ border-radius: 16px;
191
+ width: 95vw;
192
+ height: 95vh;
193
+ max-width: 1400px;
194
+ max-height: 900px;
195
+ display: flex;
196
+ flex-direction: column;
197
+ overflow: hidden;
198
+ 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
+ }
202
+
203
+ .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;
229
+ }
230
+
231
+ .paid-invoice-modal-actions {
232
+ display: flex;
233
+ gap: 12px;
234
+ }
235
+
236
+ .paid-invoice-modal-btn {
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ width: 36px;
241
+ height: 36px;
242
+ border: none;
243
+ border-radius: 8px;
244
+ cursor: pointer;
245
+ transition: all 0.2s ease;
246
+ position: relative;
247
+ }
248
+
249
+ .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;
264
+ }
265
+
266
+ .paid-invoice-modal-btn:hover::after {
267
+ opacity: 1;
268
+ }
269
+
270
+ .paid-invoice-modal-btn-download {
271
+ background: #3b82f6;
272
+ color: white;
273
+ }
274
+
275
+ .paid-invoice-modal-btn-download:hover {
276
+ background: #2563eb;
277
+ transform: translateY(-1px);
278
+ }
279
+
280
+ .paid-invoice-modal-btn-close {
281
+ background: #f3f4f6;
282
+ color: #6b7280;
283
+ }
284
+
285
+ .paid-invoice-modal-btn-close:hover {
286
+ background: #e5e7eb;
287
+ color: #374151;
288
+ transform: translateY(-1px);
289
+ }
290
+
291
+ .paid-invoice-modal-body {
292
+ flex: 1;
293
+ display: flex;
294
+ align-items: center;
295
+ justify-content: center;
296
+ background: #f9fafb;
297
+ position: relative;
298
+ }
299
+
300
+ .paid-invoice-modal-body iframe {
301
+ width: 100%;
302
+ height: 100%;
303
+ border: none;
304
+ background: white;
305
+ }
306
+
307
+ .paid-invoice-modal-loading {
308
+ display: flex;
309
+ align-items: center;
310
+ justify-content: center;
311
+ font-size: 16px;
312
+ color: #6b7280;
313
+ gap: 8px;
314
+ }
315
+
316
+ .paid-invoice-modal-loading::after {
317
+ content: '';
318
+ width: 20px;
319
+ height: 20px;
320
+ border: 2px solid #e5e7eb;
321
+ border-top-color: #3b82f6;
322
+ border-radius: 50%;
323
+ animation: spin 1s linear infinite;
324
+ }
325
+
326
+ @keyframes fadeIn {
327
+ from { opacity: 0; }
328
+ to { opacity: 1; }
329
+ }
330
+
331
+ @keyframes slideIn {
332
+ from {
333
+ opacity: 0;
334
+ transform: translateY(20px);
335
+ }
336
+ to {
337
+ opacity: 1;
338
+ transform: translateY(0);
339
+ }
340
+ }
341
+
342
+ @keyframes spin {
343
+ to { transform: rotate(360deg); }
344
+ }
@@ -0,0 +1,238 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
2
+
3
+ /* Payments Table Styles */
4
+ .paid-payment-container {
5
+ --paid-title-color: #1d2939;
6
+ --paid-title-font-weight: 600;
7
+ --paid-font-family: 'Roboto';
8
+ --paid-wrapper-border: 1px solid #e5e7eb;
9
+ --paid-header-border-bottom: 1px solid #e5e7eb;
10
+ --paid-th-border-bottom: 1px solid #e5e7eb;
11
+ --paid-td-border-bottom: 1px solid #f1f1f1;
12
+ --paid-td-bg: transparent;
13
+ --paid-td-font-weight: normal;
14
+ --paid-title-font-size: 1.1rem;
15
+ --paid-th-font-size: 1rem;
16
+ --paid-th-font-weight: 500;
17
+ --paid-th-color: #667085;
18
+ --paid-td-font-size: 0.97rem;
19
+ --paid-td-color: #1d2939;
20
+ --paid-empty-color: #98a2b3;
21
+ --paid-wrapper-bg: #ffffff;
22
+ --paid-header-bg: #ffffff;
23
+ --paid-table-bg: #ffffff;
24
+ --paid-th-bg: #f9fafb;
25
+ --paid-row-hover-bg: #f3f4f6;
26
+
27
+ position: relative;
28
+ min-width: 0;
29
+ font-family: var(--paid-font-family);
30
+ width: 100%;
31
+ max-width: 100%;
32
+ overflow: hidden;
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ .paid-payment-table-wrapper {
37
+ position: relative;
38
+ background: var(--paid-wrapper-bg);
39
+ border: var(--paid-wrapper-border);
40
+ border-radius: 12px;
41
+ box-shadow: 0 2px 16px 0 rgba(16, 24, 40, 0.08);
42
+ overflow-x: auto;
43
+ transition: box-shadow 0.2s;
44
+ font-family: var(--paid-font-family);
45
+ width: 100%;
46
+ min-width: 0;
47
+ }
48
+
49
+ .paid-payment-table-wrapper:active {
50
+ box-shadow: 0 4px 24px 0 rgba(16, 24, 40, 0.16);
51
+ }
52
+
53
+ .paid-payment-header {
54
+ display: flex;
55
+ justify-content: space-between;
56
+ align-items: center;
57
+ padding: 18px 24px;
58
+ background: var(--paid-header-bg);
59
+ border-bottom: var(--paid-header-border-bottom);
60
+ border-radius: 12px 12px 0 0;
61
+ font-family: var(--paid-font-family);
62
+ }
63
+
64
+ .paid-payment-title {
65
+ margin: 0;
66
+ font-size: var(--paid-title-font-size);
67
+ font-weight: var(--paid-title-font-weight);
68
+ color: var(--paid-title-color);
69
+ font-family: var(--paid-font-family);
70
+ }
71
+
72
+ .paid-payment-table {
73
+ width: 100%;
74
+ min-width: 0;
75
+ table-layout: auto;
76
+ word-break: break-word;
77
+ border-collapse: separate;
78
+ border-spacing: 0;
79
+ background: var(--paid-table-bg);
80
+ font-family: var(--paid-font-family);
81
+ }
82
+
83
+ .paid-payment-table th,
84
+ .paid-payment-table td {
85
+ padding: 8px 8px;
86
+ font-size: 0.95rem;
87
+ white-space: normal;
88
+ word-break: break-word;
89
+ }
90
+
91
+ .paid-payment-table th {
92
+ font-size: var(--paid-th-font-size);
93
+ font-weight: var(--paid-th-font-weight);
94
+ color: var(--paid-th-color);
95
+ text-align: left;
96
+ padding: 18px 24px;
97
+ background: var(--paid-th-bg);
98
+ border-bottom: var(--paid-th-border-bottom);
99
+ }
100
+
101
+ .paid-payment-table td {
102
+ font-size: var(--paid-td-font-size);
103
+ font-weight: var(--paid-td-font-weight);
104
+ color: var(--paid-td-color);
105
+ background: var(--paid-td-bg);
106
+ padding: 16px 24px;
107
+ border-bottom: var(--paid-td-border-bottom);
108
+ vertical-align: middle;
109
+ }
110
+
111
+ .paid-payment-table tr:last-child td {
112
+ border-bottom: none;
113
+ }
114
+
115
+ .paid-payment-table tbody tr:hover td {
116
+ background: var(--paid-row-hover-bg);
117
+ }
118
+
119
+ .paid-payment-table th,
120
+ .paid-payment-table td {
121
+ white-space: nowrap;
122
+ }
123
+
124
+ /* Payment Number with Dollar Sign */
125
+ .paid-payment-number {
126
+ display: flex;
127
+ align-items: center;
128
+ gap: 4px;
129
+ }
130
+
131
+ .paid-payment-dollar {
132
+ display: inline-flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ width: 20px;
136
+ height: 20px;
137
+ background: #f3f4f6;
138
+ border-radius: 4px;
139
+ font-size: 12px;
140
+ font-weight: 600;
141
+ color: #6b7280;
142
+ }
143
+
144
+ /* Amount with Dollar Sign */
145
+ .paid-payment-amount {
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: flex-end;
149
+ gap: 4px;
150
+ }
151
+
152
+ .paid-payment-dollar-right {
153
+ display: inline-flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ width: 20px;
157
+ height: 20px;
158
+ background: #f3f4f6;
159
+ border-radius: 4px;
160
+ font-size: 12px;
161
+ font-weight: 600;
162
+ color: #6b7280;
163
+ }
164
+
165
+ /* Status Badges */
166
+ .paid-payment-status {
167
+ display: inline-block;
168
+ padding: 4px 8px;
169
+ border-radius: 6px;
170
+ font-size: 0.75rem;
171
+ font-weight: 500;
172
+ text-transform: uppercase;
173
+ letter-spacing: 0.025em;
174
+ }
175
+
176
+ .paid-payment-status-paid {
177
+ background-color: #dcfce7;
178
+ color: #166534;
179
+ }
180
+
181
+ .paid-payment-status-pending {
182
+ background-color: #fef3c7;
183
+ color: #92400e;
184
+ }
185
+
186
+ .paid-payment-status-unpaid {
187
+ background-color: #fee2e2;
188
+ color: #991b1b;
189
+ }
190
+
191
+ /* Currency Display */
192
+ .paid-payment-currency {
193
+ font-size: var(--paid-td-font-size);
194
+ color: var(--paid-td-color);
195
+ font-weight: var(--paid-td-font-weight);
196
+ }
197
+
198
+ /* Action Button */
199
+ .paid-payment-action-btn {
200
+ background: none;
201
+ border: none;
202
+ cursor: pointer;
203
+ padding: 4px;
204
+ border-radius: 4px;
205
+ color: #6b7280;
206
+ transition: all 0.2s;
207
+ }
208
+
209
+ .paid-payment-action-btn:hover {
210
+ background-color: #f3f4f6;
211
+ color: #374151;
212
+ }
213
+
214
+ .paid-payment-action-btn:disabled {
215
+ opacity: 0.6;
216
+ cursor: not-allowed;
217
+ }
218
+
219
+ /* Empty State */
220
+ .paid-payment-empty {
221
+ text-align: center;
222
+ color: var(--paid-empty-color);
223
+ padding: 40px 0;
224
+ font-size: 1rem;
225
+ }
226
+
227
+ /* Responsive Design */
228
+ @media (max-width: 768px) {
229
+ .paid-payment-table th,
230
+ .paid-payment-table td {
231
+ padding: 12px 16px;
232
+ font-size: 0.8rem;
233
+ }
234
+
235
+ .paid-payment-table {
236
+ min-width: 600px;
237
+ }
238
+ }