payment-kit 1.18.55 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.eslintrc.js +6 -0
  2. package/api/src/libs/queue/index.ts +1 -3
  3. package/blocklet.yml +1 -1
  4. package/package.json +57 -58
  5. package/src/components/actions.tsx +22 -9
  6. package/src/components/balance-list.tsx +40 -12
  7. package/src/components/collapse.tsx +22 -14
  8. package/src/components/copyable.tsx +8 -7
  9. package/src/components/currency.tsx +15 -7
  10. package/src/components/customer/actions.tsx +1 -5
  11. package/src/components/customer/form.tsx +3 -1
  12. package/src/components/customer/link.tsx +4 -12
  13. package/src/components/customer/notification-preference.tsx +18 -9
  14. package/src/components/customer/overdraft-protection.tsx +112 -41
  15. package/src/components/drawer-form.tsx +42 -18
  16. package/src/components/error.tsx +1 -5
  17. package/src/components/event/list.tsx +9 -10
  18. package/src/components/filter-toolbar.tsx +20 -19
  19. package/src/components/info-card.tsx +32 -18
  20. package/src/components/info-metric.tsx +16 -6
  21. package/src/components/info-row-group.tsx +1 -7
  22. package/src/components/info-row.tsx +30 -24
  23. package/src/components/invoice/action.tsx +1 -7
  24. package/src/components/invoice/list.tsx +15 -25
  25. package/src/components/invoice/recharge.tsx +5 -7
  26. package/src/components/invoice/table.tsx +17 -12
  27. package/src/components/layout/user.tsx +1 -1
  28. package/src/components/metadata/form.tsx +13 -13
  29. package/src/components/metadata/list.tsx +11 -3
  30. package/src/components/passport/actions.tsx +9 -4
  31. package/src/components/payment-currency/add.tsx +16 -3
  32. package/src/components/payment-currency/form.tsx +12 -6
  33. package/src/components/payment-intent/actions.tsx +24 -16
  34. package/src/components/payment-intent/list.tsx +11 -8
  35. package/src/components/payment-link/actions.tsx +1 -5
  36. package/src/components/payment-link/after-pay.tsx +4 -2
  37. package/src/components/payment-link/before-pay.tsx +14 -4
  38. package/src/components/payment-link/item.tsx +27 -6
  39. package/src/components/payment-link/preview.tsx +9 -9
  40. package/src/components/payment-link/product-select.tsx +17 -3
  41. package/src/components/payment-method/arcblock.tsx +6 -1
  42. package/src/components/payment-method/base.tsx +6 -1
  43. package/src/components/payment-method/bitcoin.tsx +6 -1
  44. package/src/components/payment-method/ethereum.tsx +6 -1
  45. package/src/components/payment-method/evm-rpc-input.tsx +11 -7
  46. package/src/components/payment-method/form.tsx +2 -7
  47. package/src/components/payouts/actions.tsx +1 -5
  48. package/src/components/payouts/list.tsx +11 -9
  49. package/src/components/payouts/portal/list.tsx +11 -9
  50. package/src/components/price/currency-select.tsx +28 -17
  51. package/src/components/price/form.tsx +135 -84
  52. package/src/components/price/upsell-select.tsx +10 -2
  53. package/src/components/price/upsell.tsx +7 -2
  54. package/src/components/pricing-table/actions.tsx +1 -5
  55. package/src/components/pricing-table/customer-settings.tsx +5 -1
  56. package/src/components/pricing-table/payment-settings.tsx +14 -4
  57. package/src/components/pricing-table/preview.tsx +9 -9
  58. package/src/components/pricing-table/price-item.tsx +6 -1
  59. package/src/components/pricing-table/product-item.tsx +6 -1
  60. package/src/components/pricing-table/product-settings.tsx +17 -4
  61. package/src/components/product/actions.tsx +1 -5
  62. package/src/components/product/create.tsx +1 -5
  63. package/src/components/product/cross-sell-select.tsx +5 -1
  64. package/src/components/product/cross-sell.tsx +7 -2
  65. package/src/components/product/features.tsx +13 -3
  66. package/src/components/product/form.tsx +38 -10
  67. package/src/components/progress-bar.tsx +1 -1
  68. package/src/components/refund/actions.tsx +1 -7
  69. package/src/components/refund/list.tsx +12 -17
  70. package/src/components/section/header.tsx +23 -12
  71. package/src/components/subscription/actions/cancel.tsx +22 -5
  72. package/src/components/subscription/actions/index.tsx +9 -10
  73. package/src/components/subscription/actions/pause.tsx +32 -6
  74. package/src/components/subscription/actions/slash-stake.tsx +5 -3
  75. package/src/components/subscription/description.tsx +12 -8
  76. package/src/components/subscription/items/index.tsx +30 -15
  77. package/src/components/subscription/items/usage-records.tsx +19 -5
  78. package/src/components/subscription/list.tsx +5 -7
  79. package/src/components/subscription/metrics.tsx +27 -12
  80. package/src/components/subscription/portal/actions.tsx +76 -70
  81. package/src/components/subscription/portal/cancel.tsx +10 -3
  82. package/src/components/subscription/portal/list.tsx +48 -26
  83. package/src/components/uploader.tsx +5 -13
  84. package/src/components/webhook/attempts.tsx +51 -16
  85. package/src/components/webhook/request-info.tsx +8 -6
  86. package/src/contexts/products.tsx +1 -1
  87. package/src/pages/admin/billing/invoices/detail.tsx +48 -12
  88. package/src/pages/admin/billing/subscriptions/detail.tsx +43 -11
  89. package/src/pages/admin/customers/customers/detail.tsx +53 -12
  90. package/src/pages/admin/customers/customers/index.tsx +6 -1
  91. package/src/pages/admin/developers/events/detail.tsx +36 -10
  92. package/src/pages/admin/developers/webhooks/detail.tsx +41 -11
  93. package/src/pages/admin/index.tsx +15 -2
  94. package/src/pages/admin/overview.tsx +107 -19
  95. package/src/pages/admin/payments/intents/detail.tsx +57 -13
  96. package/src/pages/admin/payments/payouts/detail.tsx +62 -14
  97. package/src/pages/admin/payments/refunds/detail.tsx +57 -13
  98. package/src/pages/admin/products/index.tsx +8 -2
  99. package/src/pages/admin/products/links/create.tsx +22 -4
  100. package/src/pages/admin/products/links/detail.tsx +42 -13
  101. package/src/pages/admin/products/passports/index.tsx +23 -4
  102. package/src/pages/admin/products/prices/actions.tsx +1 -6
  103. package/src/pages/admin/products/prices/detail.tsx +43 -11
  104. package/src/pages/admin/products/prices/list.tsx +7 -2
  105. package/src/pages/admin/products/pricing-tables/create.tsx +45 -12
  106. package/src/pages/admin/products/pricing-tables/detail.tsx +44 -13
  107. package/src/pages/admin/products/products/create.tsx +4 -1
  108. package/src/pages/admin/products/products/detail.tsx +72 -17
  109. package/src/pages/admin/settings/index.tsx +8 -1
  110. package/src/pages/admin/settings/payment-methods/index.tsx +84 -19
  111. package/src/pages/admin/settings/vault-config/edit-form.tsx +42 -28
  112. package/src/pages/admin/settings/vault-config/index.tsx +57 -10
  113. package/src/pages/customer/index.tsx +41 -15
  114. package/src/pages/customer/invoice/detail.tsx +63 -14
  115. package/src/pages/customer/invoice/past-due.tsx +11 -3
  116. package/src/pages/customer/payout/detail.tsx +56 -13
  117. package/src/pages/customer/recharge/account.tsx +80 -20
  118. package/src/pages/customer/recharge/subscription.tsx +86 -25
  119. package/src/pages/customer/refund/list.tsx +60 -24
  120. package/src/pages/customer/subscription/change-payment.tsx +13 -4
  121. package/src/pages/customer/subscription/change-plan.tsx +34 -7
  122. package/src/pages/customer/subscription/detail.tsx +86 -20
  123. package/src/pages/customer/subscription/embed.tsx +24 -4
  124. package/src/pages/home.tsx +26 -4
  125. package/src/pages/integrations/donations/edit-form.tsx +25 -9
  126. package/src/pages/integrations/donations/index.tsx +26 -9
  127. package/src/pages/integrations/donations/preview.tsx +59 -15
  128. package/src/pages/integrations/index.tsx +10 -1
  129. package/src/pages/integrations/overview.tsx +78 -17
  130. package/vite.config.ts +60 -30
@@ -209,10 +209,29 @@ export default function Overview() {
209
209
  };
210
210
 
211
211
  return (
212
- <Grid container gap={{ xs: 2, sm: 5, md: 8 }} sx={{ mb: 4 }}>
213
- <Grid item xs={12} sm={12} md={8}>
214
- <Stack direction="column" gap={{ xs: 1, sm: 3 }}>
215
- <Stack direction="row" alignItems="flex-end" justifyContent="space-between">
212
+ <Grid
213
+ container
214
+ sx={{
215
+ gap: { xs: 2, sm: 5, md: 8 },
216
+ mb: 4,
217
+ }}>
218
+ <Grid
219
+ size={{
220
+ xs: 12,
221
+ sm: 12,
222
+ md: 8,
223
+ }}>
224
+ <Stack
225
+ direction="column"
226
+ sx={{
227
+ gap: { xs: 1, sm: 3 },
228
+ }}>
229
+ <Stack
230
+ direction="row"
231
+ sx={{
232
+ alignItems: 'flex-end',
233
+ justifyContent: 'space-between',
234
+ }}>
216
235
  <Typography component="h3" variant="h4">
217
236
  {t('admin.trends')}
218
237
  </Typography>
@@ -221,19 +240,31 @@ export default function Overview() {
221
240
  {formatToDate(state.endDate, locale, 'YYYY-MM-DD')}
222
241
  </Button>
223
242
  </Stack>
224
- <Stack direction="column" gap={1}>
243
+ <Stack
244
+ direction="column"
245
+ sx={{
246
+ gap: 1,
247
+ }}>
225
248
  <Typography component="h4" variant="subtitle1">
226
249
  {t('admin.paymentIntent.list')}
227
250
  </Typography>
228
251
  <Chart loading={!trend.data} height={320} data={payments} currencies={currencies} />
229
252
  </Stack>
230
- <Stack direction="column" gap={1}>
253
+ <Stack
254
+ direction="column"
255
+ sx={{
256
+ gap: 1,
257
+ }}>
231
258
  <Typography component="h4" variant="subtitle1">
232
259
  {t('admin.payouts')}
233
260
  </Typography>
234
261
  <Chart loading={!trend.data} height={320} data={payouts} currencies={currencies} />
235
262
  </Stack>
236
- <Stack direction="column" gap={1}>
263
+ <Stack
264
+ direction="column"
265
+ sx={{
266
+ gap: 1,
267
+ }}>
237
268
  <Typography component="h4" variant="subtitle1">
238
269
  {t('admin.refunds')}
239
270
  </Typography>
@@ -241,11 +272,21 @@ export default function Overview() {
241
272
  </Stack>
242
273
  </Stack>
243
274
  </Grid>
244
- <Grid item xs={12} sm={12} md={3}>
275
+ <Grid
276
+ size={{
277
+ xs: 12,
278
+ sm: 12,
279
+ md: 3,
280
+ }}>
245
281
  <Stack direction="column" spacing={2}>
246
282
  {summary.data && summary.data.addresses && (
247
283
  <Box>
248
- <Stack direction="row" alignItems="flex-end" justifyContent="space-between">
284
+ <Stack
285
+ direction="row"
286
+ sx={{
287
+ alignItems: 'flex-end',
288
+ justifyContent: 'space-between',
289
+ }}>
249
290
  <Typography component="h3" variant="h4">
250
291
  {t('admin.addresses')}
251
292
  </Typography>
@@ -265,7 +306,12 @@ export default function Overview() {
265
306
  )}
266
307
  {summary.data && summary.data.balances && (
267
308
  <Box>
268
- <Stack direction="row" alignItems="flex-end" justifyContent="space-between">
309
+ <Stack
310
+ direction="row"
311
+ sx={{
312
+ alignItems: 'flex-end',
313
+ justifyContent: 'space-between',
314
+ }}>
269
315
  <Typography component="h3" variant="h4">
270
316
  {t('admin.balances')}
271
317
  </Typography>
@@ -291,20 +337,32 @@ export default function Overview() {
291
337
  },
292
338
  },
293
339
  }}>
294
- <Stack direction="row" alignItems="center" spacing={1}>
340
+ <Stack
341
+ direction="row"
342
+ spacing={1}
343
+ sx={{
344
+ alignItems: 'center',
345
+ }}>
295
346
  <Avatar
296
347
  src={currencies[currencyId]?.logo}
297
348
  alt={currencies[currencyId]?.symbol}
298
349
  sx={{ width: 36, height: 36 }}
299
350
  />
300
- <Box flex={1}>
351
+ <Box
352
+ sx={{
353
+ flex: 1,
354
+ }}>
301
355
  <Typography variant="body1" component="div" sx={{ fontSize: '1.75rem' }}>
302
356
  {formatBNStr(
303
357
  summary.data?.balances?.[currencyId] as string,
304
358
  currencies[currencyId]?.decimal as number
305
359
  )}
306
360
  </Typography>
307
- <Typography sx={{ fontSize: 14 }} color="text.secondary">
361
+ <Typography
362
+ sx={{
363
+ color: 'text.secondary',
364
+ fontSize: 14,
365
+ }}>
308
366
  {currencies[currencyId]?.symbol} on {currencies[currencyId]?.method.name}
309
367
  </Typography>
310
368
  </Box>
@@ -324,12 +382,23 @@ export default function Overview() {
324
382
  )}
325
383
  {metrics.length > 0 && (
326
384
  <Box>
327
- <Stack direction="row" alignItems="flex-end" justifyContent="space-between">
385
+ <Stack
386
+ direction="row"
387
+ sx={{
388
+ alignItems: 'flex-end',
389
+ justifyContent: 'space-between',
390
+ }}>
328
391
  <Typography component="h3" variant="h4">
329
392
  {t('admin.metrics')}
330
393
  </Typography>
331
394
  </Stack>
332
- <Stack direction="row" flexWrap="wrap" gap={1} sx={{ mt: 2 }}>
395
+ <Stack
396
+ direction="row"
397
+ sx={{
398
+ flexWrap: 'wrap',
399
+ gap: 1,
400
+ mt: 2,
401
+ }}>
333
402
  {metrics.map((metric) => (
334
403
  <Card
335
404
  component={Link}
@@ -341,7 +410,11 @@ export default function Overview() {
341
410
  <Typography component="div" sx={{ fontSize: '1.75rem' }}>
342
411
  {metric.count}
343
412
  </Typography>
344
- <Typography sx={{ fontSize: 14 }} color="text.secondary">
413
+ <Typography
414
+ sx={{
415
+ color: 'text.secondary',
416
+ fontSize: 14,
417
+ }}>
345
418
  {t(`admin.${metric.type}.name`)}
346
419
  </Typography>
347
420
  </Box>
@@ -352,12 +425,23 @@ export default function Overview() {
352
425
  )}
353
426
  {attentions.filter((x) => x.count > 0).length > 0 && (
354
427
  <Box>
355
- <Stack direction="row" alignItems="flex-end" justifyContent="space-between">
428
+ <Stack
429
+ direction="row"
430
+ sx={{
431
+ alignItems: 'flex-end',
432
+ justifyContent: 'space-between',
433
+ }}>
356
434
  <Typography component="h3" variant="h4" color="error">
357
435
  {t('admin.attention')}
358
436
  </Typography>
359
437
  </Stack>
360
- <Stack direction="row" flexWrap="wrap" gap={1} sx={{ mt: 2 }}>
438
+ <Stack
439
+ direction="row"
440
+ sx={{
441
+ flexWrap: 'wrap',
442
+ gap: 1,
443
+ mt: 2,
444
+ }}>
361
445
  {attentions.map((metric) => (
362
446
  <Card
363
447
  component={Link}
@@ -369,7 +453,11 @@ export default function Overview() {
369
453
  <Typography component="div" sx={{ fontSize: '1.75rem' }}>
370
454
  {metric.count}
371
455
  </Typography>
372
- <Typography sx={{ fontSize: 14 }} color="text.secondary">
456
+ <Typography
457
+ sx={{
458
+ color: 'text.secondary',
459
+ fontSize: 14,
460
+ }}>
373
461
  {t(`admin.${metric.type}.attention`)}
374
462
  </Typography>
375
463
  </Box>
@@ -96,12 +96,21 @@ export default function PaymentIntentDetail(props: { id: string }) {
96
96
  return (
97
97
  <Root direction="column" spacing={2.5} mb={4}>
98
98
  <Box>
99
- <Stack className="page-header" direction="row" justifyContent="space-between" alignItems="center">
99
+ <Stack
100
+ className="page-header"
101
+ direction="row"
102
+ sx={{
103
+ justifyContent: 'space-between',
104
+ alignItems: 'center',
105
+ }}>
100
106
  <Stack
101
107
  direction="row"
102
- alignItems="center"
103
- sx={{ fontWeight: 'normal', cursor: 'pointer' }}
104
- onClick={() => goBackOrFallback('/admin/payments/intents')}>
108
+ onClick={() => goBackOrFallback('/admin/payments/intents')}
109
+ sx={{
110
+ alignItems: 'center',
111
+ fontWeight: 'normal',
112
+ cursor: 'pointer',
113
+ }}>
105
114
  <ArrowBackOutlined fontSize="small" sx={{ mr: 0.5, color: 'text.secondary' }} />
106
115
  <Typography variant="h6" sx={{ color: 'text.secondary', fontWeight: 'normal' }}>
107
116
  {t('admin.payments')}
@@ -110,36 +119,55 @@ export default function PaymentIntentDetail(props: { id: string }) {
110
119
  <PaymentIntentActions data={data} variant="normal" onChange={runAsync} />
111
120
  </Stack>
112
121
  <Box
113
- mt={4}
114
- mb={3}
115
122
  sx={{
123
+ mt: 4,
124
+ mb: 3,
116
125
  display: 'flex',
126
+
117
127
  gap: {
118
128
  xs: 2,
119
129
  sm: 2,
120
130
  md: 5,
121
131
  },
132
+
122
133
  flexWrap: 'wrap',
134
+
123
135
  flexDirection: {
124
136
  xs: 'column',
125
137
  sm: 'column',
126
138
  md: 'row',
127
139
  },
140
+
128
141
  alignItems: {
129
142
  xs: 'flex-start',
130
143
  sm: 'flex-start',
131
144
  md: 'center',
132
145
  },
133
146
  }}>
134
- <Stack direction="row" justifyContent="space-between" alignItems="center">
135
- <Stack direction="row" alignItems="center" spacing={1}>
147
+ <Stack
148
+ direction="row"
149
+ sx={{
150
+ justifyContent: 'space-between',
151
+ alignItems: 'center',
152
+ }}>
153
+ <Stack
154
+ direction="row"
155
+ spacing={1}
156
+ sx={{
157
+ alignItems: 'center',
158
+ }}>
136
159
  <Avatar
137
160
  src={data.paymentCurrency.logo}
138
161
  alt={data.paymentCurrency.symbol}
139
162
  variant="square"
140
163
  sx={{ width: '52px', height: '52px', borderRadius: 0.5 }}
141
164
  />
142
- <Stack direction="column" alignItems="flex-start" justifyContent="space-around">
165
+ <Stack
166
+ direction="column"
167
+ sx={{
168
+ alignItems: 'flex-start',
169
+ justifyContent: 'space-around',
170
+ }}>
143
171
  <Amount
144
172
  amount={data?.amount_received === '0' ? total : received}
145
173
  sx={{ my: 0, fontSize: '1.75rem', lineHeight: '32px' }}
@@ -150,18 +178,22 @@ export default function PaymentIntentDetail(props: { id: string }) {
150
178
  </Stack>
151
179
  <Stack
152
180
  className="section-body"
153
- justifyContent="flex-start"
154
- flexWrap="wrap"
155
181
  sx={{
182
+ justifyContent: 'flex-start',
183
+ flexWrap: 'wrap',
184
+
156
185
  'hr.MuiDivider-root:last-child': {
157
186
  display: 'none',
158
187
  },
188
+
159
189
  flexDirection: {
160
190
  xs: 'column',
161
191
  sm: 'column',
162
192
  md: 'row',
163
193
  },
194
+
164
195
  alignItems: 'flex-start',
196
+
165
197
  gap: {
166
198
  xs: 1,
167
199
  sm: 1,
@@ -208,7 +240,14 @@ export default function PaymentIntentDetail(props: { id: string }) {
208
240
  },
209
241
  },
210
242
  }}>
211
- <Box flex={1} className="payment-link-column-1" sx={{ gap: 2.5, display: 'flex', flexDirection: 'column' }}>
243
+ <Box
244
+ className="payment-link-column-1"
245
+ sx={{
246
+ flex: 1,
247
+ gap: 2.5,
248
+ display: 'flex',
249
+ flexDirection: 'column',
250
+ }}>
212
251
  <Box className="section" sx={{ containerType: 'inline-size' }}>
213
252
  <SectionHeader title={t('admin.details')} />
214
253
  <InfoRowGroup
@@ -240,7 +279,12 @@ export default function PaymentIntentDetail(props: { id: string }) {
240
279
  <InfoRow
241
280
  label={t('common.status')}
242
281
  value={
243
- <Stack direction="row" alignItems="center" spacing={1}>
282
+ <Stack
283
+ direction="row"
284
+ spacing={1}
285
+ sx={{
286
+ alignItems: 'center',
287
+ }}>
244
288
  <Status label={data.status} color={getPaymentIntentStatusColor(data.status)} />
245
289
  {data.last_payment_error && (
246
290
  <Tooltip
@@ -119,12 +119,21 @@ export default function PayoutDetail(props: { id: string }) {
119
119
  return (
120
120
  <Root direction="column" spacing={2.5} mb={4}>
121
121
  <Box>
122
- <Stack className="page-header" direction="row" justifyContent="space-between" alignItems="center">
122
+ <Stack
123
+ className="page-header"
124
+ direction="row"
125
+ sx={{
126
+ justifyContent: 'space-between',
127
+ alignItems: 'center',
128
+ }}>
123
129
  <Stack
124
130
  direction="row"
125
- alignItems="center"
126
- sx={{ fontWeight: 'normal', cursor: 'pointer' }}
127
- onClick={() => goBackOrFallback('/admin/payments/payouts')}>
131
+ onClick={() => goBackOrFallback('/admin/payments/payouts')}
132
+ sx={{
133
+ alignItems: 'center',
134
+ fontWeight: 'normal',
135
+ cursor: 'pointer',
136
+ }}>
128
137
  <ArrowBackOutlined fontSize="small" sx={{ mr: 0.5, color: 'text.secondary' }} />
129
138
  <Typography variant="h6" sx={{ color: 'text.secondary', fontWeight: 'normal' }}>
130
139
  {t('admin.payouts')}
@@ -132,37 +141,60 @@ export default function PayoutDetail(props: { id: string }) {
132
141
  </Stack>
133
142
  </Stack>
134
143
  <Box
135
- mt={4}
136
- mb={3}
137
144
  sx={{
145
+ mt: 4,
146
+ mb: 3,
138
147
  display: 'flex',
148
+
139
149
  gap: {
140
150
  xs: 2,
141
151
  sm: 2,
142
152
  md: 5,
143
153
  },
154
+
144
155
  flexWrap: 'wrap',
156
+
145
157
  flexDirection: {
146
158
  xs: 'column',
147
159
  sm: 'column',
148
160
  md: 'row',
149
161
  },
162
+
150
163
  alignItems: {
151
164
  xs: 'flex-start',
152
165
  sm: 'flex-start',
153
166
  md: 'center',
154
167
  },
155
168
  }}>
156
- <Stack direction="row" justifyContent="space-between" alignItems="center">
157
- <Stack direction="row" alignItems="center">
158
- <Stack direction="row" alignItems="center" spacing={1}>
169
+ <Stack
170
+ direction="row"
171
+ sx={{
172
+ justifyContent: 'space-between',
173
+ alignItems: 'center',
174
+ }}>
175
+ <Stack
176
+ direction="row"
177
+ sx={{
178
+ alignItems: 'center',
179
+ }}>
180
+ <Stack
181
+ direction="row"
182
+ spacing={1}
183
+ sx={{
184
+ alignItems: 'center',
185
+ }}>
159
186
  <Avatar
160
187
  src={data.paymentCurrency.logo}
161
188
  alt={data.paymentCurrency.symbol}
162
189
  variant="square"
163
190
  sx={{ width: '52px', height: '52px', borderRadius: 0.5 }}
164
191
  />
165
- <Stack direction="column" alignItems="flex-start" justifyContent="space-around">
192
+ <Stack
193
+ direction="column"
194
+ sx={{
195
+ alignItems: 'flex-start',
196
+ justifyContent: 'space-around',
197
+ }}>
166
198
  <Amount amount={total} sx={{ my: 0, fontSize: '1.75rem', lineHeight: '32px' }} />
167
199
  <Copyable text={props.id} />
168
200
  </Stack>
@@ -171,18 +203,22 @@ export default function PayoutDetail(props: { id: string }) {
171
203
  </Stack>
172
204
  <Stack
173
205
  className="section-body"
174
- justifyContent="flex-start"
175
- flexWrap="wrap"
176
206
  sx={{
207
+ justifyContent: 'flex-start',
208
+ flexWrap: 'wrap',
209
+
177
210
  'hr.MuiDivider-root:last-child': {
178
211
  display: 'none',
179
212
  },
213
+
180
214
  flexDirection: {
181
215
  xs: 'column',
182
216
  sm: 'column',
183
217
  md: 'row',
184
218
  },
219
+
185
220
  alignItems: 'flex-start',
221
+
186
222
  gap: {
187
223
  xs: 1,
188
224
  sm: 1,
@@ -278,7 +314,14 @@ export default function PayoutDetail(props: { id: string }) {
278
314
  },
279
315
  },
280
316
  }}>
281
- <Box flex={1} className="payment-link-column-1" sx={{ gap: 2.5, display: 'flex', flexDirection: 'column' }}>
317
+ <Box
318
+ className="payment-link-column-1"
319
+ sx={{
320
+ flex: 1,
321
+ gap: 2.5,
322
+ display: 'flex',
323
+ flexDirection: 'column',
324
+ }}>
282
325
  <Box className="section" sx={{ containerType: 'inline-size' }}>
283
326
  <SectionHeader title={t('admin.details')} />
284
327
  <InfoRowGroup
@@ -310,7 +353,12 @@ export default function PayoutDetail(props: { id: string }) {
310
353
  <InfoRow
311
354
  label={t('common.status')}
312
355
  value={
313
- <Stack direction="row" alignItems="center" spacing={1}>
356
+ <Stack
357
+ direction="row"
358
+ spacing={1}
359
+ sx={{
360
+ alignItems: 'center',
361
+ }}>
314
362
  <Status label={data.status} color={getPayoutStatusColor(data.status)} />
315
363
  {data.last_attempt_error && (
316
364
  <Tooltip
@@ -94,12 +94,21 @@ export default function RefundDetail(props: { id: string }) {
94
94
  return (
95
95
  <Root direction="column" spacing={2.5} mb={4}>
96
96
  <Box>
97
- <Stack className="page-header" direction="row" justifyContent="space-between" alignItems="center">
97
+ <Stack
98
+ className="page-header"
99
+ direction="row"
100
+ sx={{
101
+ justifyContent: 'space-between',
102
+ alignItems: 'center',
103
+ }}>
98
104
  <Stack
99
105
  direction="row"
100
- alignItems="center"
101
- sx={{ fontWeight: 'normal', cursor: 'pointer' }}
102
- onClick={() => goBackOrFallback('/admin/payments/refunds')}>
106
+ onClick={() => goBackOrFallback('/admin/payments/refunds')}
107
+ sx={{
108
+ alignItems: 'center',
109
+ fontWeight: 'normal',
110
+ cursor: 'pointer',
111
+ }}>
103
112
  <ArrowBackOutlined fontSize="small" sx={{ mr: 0.5, color: 'text.secondary' }} />
104
113
  <Typography variant="h6" sx={{ color: 'text.secondary', fontWeight: 'normal' }}>
105
114
  {t('admin.refunds')}
@@ -108,36 +117,55 @@ export default function RefundDetail(props: { id: string }) {
108
117
  <RefundActions data={data} variant="normal" onChange={() => runAsync()} />
109
118
  </Stack>
110
119
  <Box
111
- mt={4}
112
- mb={3}
113
120
  sx={{
121
+ mt: 4,
122
+ mb: 3,
114
123
  display: 'flex',
124
+
115
125
  gap: {
116
126
  xs: 2,
117
127
  sm: 2,
118
128
  md: 5,
119
129
  },
130
+
120
131
  flexWrap: 'wrap',
132
+
121
133
  flexDirection: {
122
134
  xs: 'column',
123
135
  sm: 'column',
124
136
  md: 'row',
125
137
  },
138
+
126
139
  alignItems: {
127
140
  xs: 'flex-start',
128
141
  sm: 'flex-start',
129
142
  md: 'center',
130
143
  },
131
144
  }}>
132
- <Stack direction="row" justifyContent="space-between" alignItems="center">
133
- <Stack direction="row" alignItems="center" spacing={1}>
145
+ <Stack
146
+ direction="row"
147
+ sx={{
148
+ justifyContent: 'space-between',
149
+ alignItems: 'center',
150
+ }}>
151
+ <Stack
152
+ direction="row"
153
+ spacing={1}
154
+ sx={{
155
+ alignItems: 'center',
156
+ }}>
134
157
  <Avatar
135
158
  src={data.paymentCurrency.logo}
136
159
  alt={data.paymentCurrency.symbol}
137
160
  variant="square"
138
161
  sx={{ width: '52px', height: '52px', borderRadius: 0.5 }}
139
162
  />
140
- <Stack direction="column" alignItems="flex-start" justifyContent="space-around">
163
+ <Stack
164
+ direction="column"
165
+ sx={{
166
+ alignItems: 'flex-start',
167
+ justifyContent: 'space-around',
168
+ }}>
141
169
  <Amount amount={amount} sx={{ my: 0, fontSize: '1.75rem', lineHeight: '32px' }} />
142
170
  <Copyable text={props.id} />
143
171
  </Stack>
@@ -145,18 +173,22 @@ export default function RefundDetail(props: { id: string }) {
145
173
  </Stack>
146
174
  <Stack
147
175
  className="section-body"
148
- justifyContent="flex-start"
149
- flexWrap="wrap"
150
176
  sx={{
177
+ justifyContent: 'flex-start',
178
+ flexWrap: 'wrap',
179
+
151
180
  'hr.MuiDivider-root:last-child': {
152
181
  display: 'none',
153
182
  },
183
+
154
184
  flexDirection: {
155
185
  xs: 'column',
156
186
  sm: 'column',
157
187
  md: 'row',
158
188
  },
189
+
159
190
  alignItems: 'flex-start',
191
+
160
192
  gap: {
161
193
  xs: 1,
162
194
  sm: 1,
@@ -203,7 +235,14 @@ export default function RefundDetail(props: { id: string }) {
203
235
  },
204
236
  },
205
237
  }}>
206
- <Box flex={1} className="payment-link-column-1" sx={{ gap: 2.5, display: 'flex', flexDirection: 'column' }}>
238
+ <Box
239
+ className="payment-link-column-1"
240
+ sx={{
241
+ flex: 1,
242
+ gap: 2.5,
243
+ display: 'flex',
244
+ flexDirection: 'column',
245
+ }}>
207
246
  <Box className="section" sx={{ containerType: 'inline-size' }}>
208
247
  <SectionHeader title={t('admin.details')} />
209
248
  <InfoRowGroup
@@ -235,7 +274,12 @@ export default function RefundDetail(props: { id: string }) {
235
274
  <InfoRow
236
275
  label={t('common.status')}
237
276
  value={
238
- <Stack direction="row" alignItems="center" spacing={1}>
277
+ <Stack
278
+ direction="row"
279
+ spacing={1}
280
+ sx={{
281
+ alignItems: 'center',
282
+ }}>
239
283
  <Status label={data.status} color={getRefundStatusColor(data.status)} />
240
284
  {data.last_attempt_error && data.status !== 'canceled' && (
241
285
  <Tooltip
@@ -65,7 +65,14 @@ export default function Products() {
65
65
 
66
66
  return (
67
67
  <>
68
- <Stack direction="row" alignItems="flex-start" justifyContent="end" flexWrap="wrap" spacing={1}>
68
+ <Stack
69
+ direction="row"
70
+ spacing={1}
71
+ sx={{
72
+ alignItems: 'flex-start',
73
+ justifyContent: 'end',
74
+ flexWrap: 'wrap',
75
+ }}>
69
76
  {/* @ts-ignore */}
70
77
  <Tabs
71
78
  // @ts-ignore
@@ -99,7 +106,6 @@ export default function Products() {
99
106
  />
100
107
  <Box> {extra}</Box>
101
108
  </Stack>
102
-
103
109
  {isValidElement(TabComponent) ? TabComponent : <TabComponent />}
104
110
  </>
105
111
  );