@solvapay/react 1.3.0 → 1.4.0-preview-ecd61384a4e849717e13d47ab2daa086cdcd91c5

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/dist/styles.css CHANGED
@@ -18,6 +18,7 @@
18
18
  --solvapay-border: hsl(214 32% 91%);
19
19
  --solvapay-destructive: hsl(0 72% 51%);
20
20
  --solvapay-warning: hsl(38 92% 50%);
21
+ --solvapay-success: hsl(142 71% 45%);
21
22
  --solvapay-radius: 0.5rem;
22
23
  --solvapay-font: inherit;
23
24
  }
@@ -1101,6 +1102,518 @@
1101
1102
  background: color-mix(in srgb, var(--solvapay-destructive) 6%, transparent);
1102
1103
  }
1103
1104
 
1105
+ /* -----------------------------------------------------------------------------
1106
+ * AutoRecharge
1107
+ * -------------------------------------------------------------------------- */
1108
+
1109
+ .sr-only {
1110
+ position: absolute;
1111
+ width: 1px;
1112
+ height: 1px;
1113
+ padding: 0;
1114
+ margin: -1px;
1115
+ overflow: hidden;
1116
+ clip: rect(0, 0, 0, 0);
1117
+ white-space: nowrap;
1118
+ border: 0;
1119
+ }
1120
+
1121
+ [data-solvapay-auto-recharge],
1122
+ .solvapay-auto-recharge {
1123
+ display: flex;
1124
+ flex-direction: column;
1125
+ gap: 1rem;
1126
+ margin-top: 1.5rem;
1127
+ padding-top: 1.5rem;
1128
+ border-top: 1px solid var(--solvapay-border);
1129
+ font-family: var(--solvapay-font);
1130
+ font-size: 0.875rem;
1131
+ line-height: 1.5;
1132
+ }
1133
+
1134
+ [data-solvapay-auto-recharge-card],
1135
+ .solvapay-auto-recharge-card {
1136
+ display: flex;
1137
+ flex-direction: column;
1138
+ gap: 0.5rem;
1139
+ background: var(--solvapay-surface);
1140
+ border: 1px solid var(--solvapay-border);
1141
+ border-radius: var(--solvapay-radius);
1142
+ padding: 1rem;
1143
+ }
1144
+
1145
+ [data-solvapay-auto-recharge-card-heading],
1146
+ .solvapay-auto-recharge-card-heading {
1147
+ margin: 0;
1148
+ font-size: 0.9375rem;
1149
+ font-weight: 600;
1150
+ color: var(--solvapay-accent);
1151
+ }
1152
+
1153
+ [data-solvapay-auto-recharge-card-summary],
1154
+ .solvapay-auto-recharge-card-summary {
1155
+ margin: 0;
1156
+ font-size: 0.8125rem;
1157
+ color: var(--solvapay-muted-foreground);
1158
+ line-height: 1.5;
1159
+ }
1160
+
1161
+ [data-solvapay-auto-recharge-trigger],
1162
+ .solvapay-auto-recharge-trigger {
1163
+ align-self: flex-start;
1164
+ margin-top: 0.25rem;
1165
+ background: var(--solvapay-accent);
1166
+ color: var(--solvapay-accent-foreground);
1167
+ border: none;
1168
+ border-radius: var(--solvapay-radius);
1169
+ cursor: pointer;
1170
+ font: inherit;
1171
+ font-weight: 500;
1172
+ font-size: 0.8125rem;
1173
+ padding: 0.5rem 0.875rem;
1174
+ transition: background-color 120ms ease;
1175
+ }
1176
+
1177
+ [data-solvapay-auto-recharge-trigger]:hover:not(:disabled),
1178
+ .solvapay-auto-recharge-trigger:hover:not(:disabled) {
1179
+ background: var(--solvapay-accent-hover);
1180
+ }
1181
+
1182
+ [data-solvapay-auto-recharge-trigger]:focus-visible,
1183
+ .solvapay-auto-recharge-trigger:focus-visible {
1184
+ outline: 2px solid var(--solvapay-accent);
1185
+ outline-offset: 2px;
1186
+ }
1187
+
1188
+ [data-solvapay-auto-recharge-trigger]:disabled {
1189
+ opacity: 0.5;
1190
+ cursor: not-allowed;
1191
+ }
1192
+
1193
+ [data-solvapay-auto-recharge-portal] {
1194
+ position: fixed;
1195
+ inset: 0;
1196
+ z-index: 50;
1197
+ display: flex;
1198
+ align-items: center;
1199
+ justify-content: center;
1200
+ padding: 1rem;
1201
+ }
1202
+
1203
+ [data-solvapay-auto-recharge-overlay] {
1204
+ position: fixed;
1205
+ inset: 0;
1206
+ background: rgb(15 23 42 / 0.45);
1207
+ }
1208
+
1209
+ [data-solvapay-auto-recharge-content],
1210
+ .solvapay-auto-recharge-content {
1211
+ position: relative;
1212
+ z-index: 1;
1213
+ display: flex;
1214
+ flex-direction: column;
1215
+ gap: 1rem;
1216
+ width: 100%;
1217
+ max-width: 32.5rem;
1218
+ max-height: calc(100vh - 2rem);
1219
+ overflow-y: auto;
1220
+ background: var(--solvapay-surface);
1221
+ border: 1px solid var(--solvapay-border);
1222
+ border-radius: calc(var(--solvapay-radius) + 4px);
1223
+ padding: 1.5rem;
1224
+ box-shadow:
1225
+ 0 10px 15px -3px rgb(15 23 42 / 0.1),
1226
+ 0 4px 6px -4px rgb(15 23 42 / 0.1);
1227
+ }
1228
+
1229
+ [data-solvapay-auto-recharge-title],
1230
+ .solvapay-auto-recharge-title {
1231
+ margin: 0;
1232
+ font-size: 1.125rem;
1233
+ font-weight: 600;
1234
+ color: var(--solvapay-accent);
1235
+ }
1236
+
1237
+ [data-solvapay-auto-recharge-question],
1238
+ .solvapay-auto-recharge-question {
1239
+ margin: 0;
1240
+ font-size: 0.875rem;
1241
+ font-weight: 500;
1242
+ color: var(--solvapay-accent);
1243
+ }
1244
+
1245
+ [data-solvapay-auto-recharge-enable-row],
1246
+ .solvapay-auto-recharge-enable-row {
1247
+ display: flex;
1248
+ align-items: flex-start;
1249
+ gap: 0.625rem;
1250
+ }
1251
+
1252
+ [data-solvapay-auto-recharge-enable][data-appearance='checkbox'] {
1253
+ appearance: auto;
1254
+ position: static;
1255
+ width: 1rem;
1256
+ height: 1rem;
1257
+ flex-shrink: 0;
1258
+ margin-top: 0.125rem;
1259
+ border-radius: 0.25rem;
1260
+ border: 1px solid var(--solvapay-border);
1261
+ background: var(--solvapay-surface);
1262
+ cursor: pointer;
1263
+ }
1264
+
1265
+ [data-solvapay-auto-recharge-enable][data-appearance='checkbox']::before {
1266
+ content: none;
1267
+ }
1268
+
1269
+ [data-solvapay-auto-recharge-enable][data-appearance='checkbox']:checked {
1270
+ background: var(--solvapay-success);
1271
+ border-color: var(--solvapay-success);
1272
+ }
1273
+
1274
+ [data-solvapay-auto-recharge-enable-sentence],
1275
+ .solvapay-auto-recharge-enable-sentence {
1276
+ font-size: 0.875rem;
1277
+ color: var(--solvapay-accent);
1278
+ line-height: 1.5;
1279
+ cursor: pointer;
1280
+ }
1281
+
1282
+ [data-solvapay-auto-recharge-cancel],
1283
+ .solvapay-auto-recharge-cancel {
1284
+ display: inline-flex;
1285
+ align-items: center;
1286
+ justify-content: center;
1287
+ background: var(--solvapay-surface);
1288
+ color: var(--solvapay-accent);
1289
+ border: 1px solid var(--solvapay-border);
1290
+ border-radius: var(--solvapay-radius);
1291
+ cursor: pointer;
1292
+ font: inherit;
1293
+ font-weight: 500;
1294
+ padding: 0.625rem 1rem;
1295
+ transition:
1296
+ background-color 120ms ease,
1297
+ border-color 120ms ease;
1298
+ }
1299
+
1300
+ [data-solvapay-auto-recharge-cancel]:hover:not(:disabled),
1301
+ .solvapay-auto-recharge-cancel:hover:not(:disabled) {
1302
+ background: var(--solvapay-muted);
1303
+ border-color: var(--solvapay-accent);
1304
+ }
1305
+
1306
+ [data-solvapay-auto-recharge-cancel]:focus-visible,
1307
+ .solvapay-auto-recharge-cancel:focus-visible {
1308
+ outline: 2px solid var(--solvapay-accent);
1309
+ outline-offset: 2px;
1310
+ }
1311
+
1312
+ [data-solvapay-auto-recharge-header],
1313
+ .solvapay-auto-recharge-header {
1314
+ display: flex;
1315
+ align-items: flex-start;
1316
+ justify-content: space-between;
1317
+ gap: 1rem;
1318
+ }
1319
+
1320
+ [data-solvapay-auto-recharge-heading-group] {
1321
+ display: flex;
1322
+ flex-direction: column;
1323
+ gap: 0.25rem;
1324
+ flex: 1;
1325
+ min-width: 0;
1326
+ }
1327
+
1328
+ [data-solvapay-auto-recharge-heading] {
1329
+ margin: 0;
1330
+ font-size: 0.75rem;
1331
+ font-weight: 600;
1332
+ letter-spacing: 0.04em;
1333
+ text-transform: uppercase;
1334
+ color: var(--solvapay-muted-foreground);
1335
+ }
1336
+
1337
+ [data-solvapay-auto-recharge-description] {
1338
+ margin: 0;
1339
+ font-size: 0.75rem;
1340
+ color: var(--solvapay-muted-foreground);
1341
+ }
1342
+
1343
+ [data-solvapay-auto-recharge-enable] {
1344
+ appearance: none;
1345
+ position: relative;
1346
+ width: 2.75rem;
1347
+ height: 1.5rem;
1348
+ flex-shrink: 0;
1349
+ border-radius: 9999px;
1350
+ border: 1px solid var(--solvapay-border);
1351
+ background: var(--solvapay-muted);
1352
+ cursor: pointer;
1353
+ transition:
1354
+ background-color 120ms ease,
1355
+ border-color 120ms ease;
1356
+ }
1357
+
1358
+ [data-solvapay-auto-recharge-enable]::before {
1359
+ content: '';
1360
+ position: absolute;
1361
+ top: 2px;
1362
+ left: 2px;
1363
+ width: 1.125rem;
1364
+ height: 1.125rem;
1365
+ border-radius: 9999px;
1366
+ background: var(--solvapay-surface);
1367
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.12);
1368
+ transition: transform 120ms ease;
1369
+ }
1370
+
1371
+ [data-solvapay-auto-recharge-enable]:checked {
1372
+ background: var(--solvapay-success);
1373
+ border-color: var(--solvapay-success);
1374
+ }
1375
+
1376
+ [data-solvapay-auto-recharge-enable]:checked::before {
1377
+ transform: translateX(1.25rem);
1378
+ }
1379
+
1380
+ [data-solvapay-auto-recharge-enable]:focus-visible {
1381
+ outline: 2px solid var(--solvapay-accent);
1382
+ outline-offset: 2px;
1383
+ }
1384
+
1385
+ [data-solvapay-auto-recharge-enable]:disabled {
1386
+ opacity: 0.5;
1387
+ cursor: not-allowed;
1388
+ }
1389
+
1390
+ [data-solvapay-auto-recharge-body],
1391
+ .solvapay-auto-recharge-body {
1392
+ display: flex;
1393
+ flex-direction: column;
1394
+ gap: 1rem;
1395
+ border: none;
1396
+ margin: 0;
1397
+ padding: 0;
1398
+ min-width: 0;
1399
+ }
1400
+
1401
+ [data-solvapay-auto-recharge-body][data-state='closed'] {
1402
+ display: none;
1403
+ }
1404
+
1405
+ [data-solvapay-auto-recharge-summary] {
1406
+ margin: 0;
1407
+ font-size: 0.875rem;
1408
+ color: var(--solvapay-muted-foreground);
1409
+ }
1410
+
1411
+ [data-solvapay-auto-recharge-field] {
1412
+ display: flex;
1413
+ flex-direction: column;
1414
+ gap: 0.5rem;
1415
+ }
1416
+
1417
+ [data-solvapay-auto-recharge-field] > label {
1418
+ font-size: 0.875rem;
1419
+ font-weight: 500;
1420
+ color: var(--solvapay-accent);
1421
+ }
1422
+
1423
+ [data-solvapay-auto-recharge-amount-row] {
1424
+ display: flex;
1425
+ align-items: center;
1426
+ gap: 0;
1427
+ border: 1px solid var(--solvapay-border);
1428
+ border-radius: var(--solvapay-radius);
1429
+ background: var(--solvapay-surface);
1430
+ overflow: hidden;
1431
+ }
1432
+
1433
+ [data-solvapay-auto-recharge-amount-row]:focus-within {
1434
+ border-color: var(--solvapay-accent);
1435
+ box-shadow: 0 0 0 1px var(--solvapay-accent);
1436
+ }
1437
+
1438
+ [data-solvapay-auto-recharge-currency-prefix] {
1439
+ padding: 0.75rem 0 0.75rem 0.75rem;
1440
+ color: var(--solvapay-muted-foreground);
1441
+ font-size: 1rem;
1442
+ }
1443
+
1444
+ [data-solvapay-auto-recharge-amount] {
1445
+ flex: 1;
1446
+ min-width: 0;
1447
+ border: none;
1448
+ background: transparent;
1449
+ padding: 0.75rem;
1450
+ font: inherit;
1451
+ font-size: 1rem;
1452
+ color: var(--solvapay-accent);
1453
+ }
1454
+
1455
+ [data-solvapay-auto-recharge-amount]:focus {
1456
+ outline: none;
1457
+ }
1458
+
1459
+ [data-solvapay-auto-recharge-unit-toggle] {
1460
+ border: none;
1461
+ background: transparent;
1462
+ color: var(--solvapay-muted-foreground);
1463
+ font: inherit;
1464
+ font-size: 0.75rem;
1465
+ font-weight: 500;
1466
+ padding: 0.75rem;
1467
+ cursor: pointer;
1468
+ }
1469
+
1470
+ [data-solvapay-auto-recharge-unit-toggle]:hover {
1471
+ color: var(--solvapay-accent);
1472
+ }
1473
+
1474
+ [data-solvapay-auto-recharge-hint] {
1475
+ margin: 0.25rem 0 0;
1476
+ font-size: 0.875rem;
1477
+ color: var(--solvapay-muted-foreground);
1478
+ }
1479
+
1480
+ [data-solvapay-auto-recharge-actions] {
1481
+ display: flex;
1482
+ flex-wrap: wrap;
1483
+ justify-content: flex-end;
1484
+ gap: 0.75rem;
1485
+ list-style: none;
1486
+ margin: 0;
1487
+ padding: 0;
1488
+ }
1489
+
1490
+ [data-solvapay-auto-recharge-actions] > li {
1491
+ display: contents;
1492
+ }
1493
+
1494
+ [data-solvapay-auto-recharge-save],
1495
+ .solvapay-auto-recharge-save {
1496
+ display: inline-flex;
1497
+ align-items: center;
1498
+ justify-content: center;
1499
+ gap: 0.5rem;
1500
+ background: var(--solvapay-accent);
1501
+ color: var(--solvapay-accent-foreground);
1502
+ border: none;
1503
+ border-radius: var(--solvapay-radius);
1504
+ cursor: pointer;
1505
+ font: inherit;
1506
+ font-weight: 500;
1507
+ padding: 0.625rem 1rem;
1508
+ transition:
1509
+ background-color 120ms ease,
1510
+ opacity 120ms ease;
1511
+ }
1512
+
1513
+ [data-solvapay-auto-recharge-save]:hover:not(:disabled),
1514
+ .solvapay-auto-recharge-save:hover:not(:disabled) {
1515
+ background: var(--solvapay-accent-hover);
1516
+ }
1517
+
1518
+ [data-solvapay-auto-recharge-save]:disabled,
1519
+ [data-solvapay-auto-recharge-save][data-state='disabled'] {
1520
+ opacity: 0.5;
1521
+ cursor: not-allowed;
1522
+ }
1523
+
1524
+ [data-solvapay-auto-recharge-save][data-state='processing'] {
1525
+ opacity: 0.75;
1526
+ cursor: wait;
1527
+ }
1528
+
1529
+ [data-solvapay-auto-recharge-disable],
1530
+ .solvapay-auto-recharge-disable {
1531
+ border: none;
1532
+ background: transparent;
1533
+ color: var(--solvapay-muted-foreground);
1534
+ font: inherit;
1535
+ font-size: 0.875rem;
1536
+ padding: 0.625rem 0.5rem;
1537
+ cursor: pointer;
1538
+ text-decoration: underline;
1539
+ text-underline-offset: 2px;
1540
+ }
1541
+
1542
+ [data-solvapay-auto-recharge-validation-error],
1543
+ [data-solvapay-auto-recharge-error],
1544
+ .solvapay-auto-recharge-error {
1545
+ margin: 0;
1546
+ color: var(--solvapay-destructive);
1547
+ font-size: 0.875rem;
1548
+ }
1549
+
1550
+ [data-solvapay-auto-recharge-status-message],
1551
+ .solvapay-auto-recharge-status-message {
1552
+ margin: 0;
1553
+ font-size: 0.875rem;
1554
+ color: var(--solvapay-muted-foreground);
1555
+ }
1556
+ [data-solvapay-auto-recharge-status] {
1557
+ display: inline-flex;
1558
+ align-items: center;
1559
+ font-size: 0.75rem;
1560
+ font-weight: 500;
1561
+ padding: 0.25rem 0.5rem;
1562
+ border-radius: calc(var(--solvapay-radius) - 2px);
1563
+ }
1564
+
1565
+ [data-solvapay-auto-recharge-status][data-status='failed'] {
1566
+ color: var(--solvapay-destructive);
1567
+ background: color-mix(in srgb, var(--solvapay-destructive) 10%, transparent);
1568
+ }
1569
+
1570
+ [data-solvapay-auto-recharge-loading],
1571
+ .solvapay-auto-recharge-loading {
1572
+ display: inline-flex;
1573
+ align-items: center;
1574
+ gap: 0.5rem;
1575
+ color: var(--solvapay-muted-foreground);
1576
+ font-size: 0.875rem;
1577
+ }
1578
+
1579
+ [data-solvapay-auto-recharge-setup] {
1580
+ display: flex;
1581
+ flex-direction: column;
1582
+ gap: 1rem;
1583
+ }
1584
+
1585
+ [data-solvapay-auto-recharge-setup] h4 {
1586
+ margin: 0;
1587
+ font-size: 0.875rem;
1588
+ font-weight: 600;
1589
+ }
1590
+
1591
+ [data-solvapay-auto-recharge-setup] p {
1592
+ margin: 0;
1593
+ font-size: 0.875rem;
1594
+ color: var(--solvapay-muted-foreground);
1595
+ }
1596
+
1597
+ [data-solvapay-auto-recharge-setup-submit] {
1598
+ display: inline-flex;
1599
+ align-items: center;
1600
+ justify-content: center;
1601
+ background: var(--solvapay-accent);
1602
+ color: var(--solvapay-accent-foreground);
1603
+ border: none;
1604
+ border-radius: var(--solvapay-radius);
1605
+ cursor: pointer;
1606
+ font: inherit;
1607
+ font-weight: 500;
1608
+ padding: 0.625rem 1rem;
1609
+ }
1610
+
1611
+ [data-solvapay-auto-recharge-setup-error] {
1612
+ margin: 0;
1613
+ color: var(--solvapay-destructive);
1614
+ font-size: 0.875rem;
1615
+ }
1616
+
1104
1617
  /* -----------------------------------------------------------------------------
1105
1618
  * Leaves: MandateText, ProductBadge, PlanBadge
1106
1619
  * -------------------------------------------------------------------------- */