@pitvox/partner-react 0.2.0 → 0.3.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.
package/dist/styles.css CHANGED
@@ -1138,6 +1138,50 @@
1138
1138
  white-space: nowrap;
1139
1139
  }
1140
1140
 
1141
+ /* ─── Registration CTA ───────────────────────────────────────── */
1142
+
1143
+ .pvx-comp-register-cta {
1144
+ display: flex;
1145
+ align-items: center;
1146
+ }
1147
+
1148
+ .pvx-comp-register-link {
1149
+ display: inline-block;
1150
+ padding: 0.5rem 1.25rem;
1151
+ border-radius: var(--pvx-radius-sm);
1152
+ font-size: 0.875rem;
1153
+ font-weight: 500;
1154
+ text-decoration: none;
1155
+ background: var(--pvx-accent);
1156
+ color: #fff;
1157
+ transition: background 150ms;
1158
+ }
1159
+
1160
+ .pvx-comp-register-link:hover {
1161
+ background: var(--pvx-accent-hover);
1162
+ }
1163
+
1164
+ .pvx-comp-register-btn {
1165
+ padding: 0.5rem 1.25rem;
1166
+ border-radius: var(--pvx-radius-sm);
1167
+ font-size: 0.875rem;
1168
+ font-weight: 500;
1169
+ border: none;
1170
+ cursor: pointer;
1171
+ background: var(--pvx-accent);
1172
+ color: #fff;
1173
+ transition: background 150ms;
1174
+ }
1175
+
1176
+ .pvx-comp-register-btn:hover {
1177
+ background: var(--pvx-accent-hover);
1178
+ }
1179
+
1180
+ .pvx-comp-register-btn:disabled {
1181
+ opacity: 0.5;
1182
+ cursor: not-allowed;
1183
+ }
1184
+
1141
1185
  /* ═══════════════════════════════════════════════════════════════════════════
1142
1186
  Driver Dashboard Components
1143
1187
  ═══════════════════════════════════════════════════════════════════════════ */
@@ -1150,20 +1194,22 @@
1150
1194
  gap: 1.5rem;
1151
1195
  }
1152
1196
 
1153
- /* ─── Driver profile ───────────────────────────────────────────── */
1197
+ /* ─── Driver profile card ──────────────────────────────────────── */
1154
1198
 
1155
1199
  .pvx-dash-profile {
1156
1200
  display: flex;
1157
1201
  align-items: center;
1158
1202
  gap: 1rem;
1203
+ padding: 1.25rem 1.5rem;
1159
1204
  }
1160
1205
 
1161
1206
  .pvx-dash-profile-avatar {
1162
- width: 4rem;
1163
- height: 4rem;
1207
+ width: 4.5rem;
1208
+ height: 4.5rem;
1164
1209
  border-radius: 9999px;
1165
1210
  flex-shrink: 0;
1166
1211
  object-fit: cover;
1212
+ border: 2px solid var(--pvx-border);
1167
1213
  }
1168
1214
 
1169
1215
  .pvx-dash-profile-avatar--placeholder {
@@ -1179,7 +1225,7 @@
1179
1225
  .pvx-dash-profile-info {
1180
1226
  display: flex;
1181
1227
  flex-direction: column;
1182
- gap: 0.125rem;
1228
+ gap: 0.25rem;
1183
1229
  }
1184
1230
 
1185
1231
  .pvx-dash-profile-name {
@@ -1199,34 +1245,59 @@
1199
1245
 
1200
1246
  .pvx-dash-stats {
1201
1247
  display: grid;
1202
- grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
1248
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
1203
1249
  gap: 0.75rem;
1204
1250
  }
1205
1251
 
1206
1252
  .pvx-dash-stat-card {
1253
+ position: relative;
1207
1254
  display: flex;
1208
- flex-direction: column;
1209
- align-items: center;
1210
- gap: 0.125rem;
1211
- padding: 1rem 0.75rem;
1255
+ align-items: flex-start;
1256
+ gap: 0.75rem;
1257
+ padding: 1.25rem 1.5rem;
1212
1258
  border-radius: var(--pvx-radius);
1213
1259
  border: 1px solid var(--pvx-border);
1214
1260
  background: var(--pvx-bg-card);
1215
- text-align: center;
1261
+ }
1262
+
1263
+ @media (max-width: 639px) {
1264
+ .pvx-dash-stats {
1265
+ grid-template-columns: repeat(2, 1fr);
1266
+ }
1267
+ }
1268
+
1269
+ .pvx-dash-stat-card--has-tooltip {
1270
+ cursor: default;
1271
+ }
1272
+
1273
+ .pvx-dash-stat-icon {
1274
+ width: 1.5rem;
1275
+ height: 1.5rem;
1276
+ flex-shrink: 0;
1277
+ color: var(--pvx-accent);
1278
+ margin-top: 0.25rem;
1279
+ }
1280
+
1281
+ .pvx-dash-stat-content {
1282
+ display: flex;
1283
+ flex-direction: column;
1284
+ gap: 0.125rem;
1285
+ }
1286
+
1287
+ .pvx-dash-stat-card--rating .pvx-dash-stat-icon {
1288
+ color: var(--pvx-rank-bronze);
1216
1289
  }
1217
1290
 
1218
1291
  .pvx-dash-stat-value {
1219
- font-size: 1.5rem;
1292
+ font-size: 1.75rem;
1220
1293
  font-weight: 700;
1221
1294
  color: var(--pvx-text-primary);
1222
- font-family: var(--pvx-font-mono);
1295
+ line-height: 1;
1223
1296
  }
1224
1297
 
1225
1298
  .pvx-dash-stat-label {
1226
1299
  font-size: 0.75rem;
1227
1300
  font-weight: 500;
1228
- text-transform: uppercase;
1229
- letter-spacing: 0.05em;
1230
1301
  color: var(--pvx-text-muted);
1231
1302
  }
1232
1303
 
@@ -1235,6 +1306,152 @@
1235
1306
  color: var(--pvx-text-dimmed);
1236
1307
  }
1237
1308
 
1309
+ /* ─── Breakdown tooltip (on hover) ─────────────────────────────── */
1310
+
1311
+ .pvx-dash-tooltip {
1312
+ pointer-events: none;
1313
+ position: absolute;
1314
+ left: 0;
1315
+ top: 100%;
1316
+ margin-top: 0.375rem;
1317
+ z-index: 20;
1318
+ min-width: 14rem;
1319
+ padding: 0.5rem 0.75rem;
1320
+ background: #111827;
1321
+ border: 1px solid var(--pvx-border);
1322
+ border-radius: var(--pvx-radius-sm);
1323
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
1324
+ opacity: 0;
1325
+ transition: opacity 150ms;
1326
+ font-size: 0.8125rem;
1327
+ }
1328
+
1329
+ .pvx-dash-stat-card--has-tooltip:hover .pvx-dash-tooltip {
1330
+ opacity: 1;
1331
+ }
1332
+
1333
+ .pvx-dash-tooltip-row {
1334
+ display: flex;
1335
+ justify-content: space-between;
1336
+ gap: 1rem;
1337
+ padding: 0.1875rem 0;
1338
+ }
1339
+
1340
+ .pvx-dash-tooltip-label {
1341
+ color: var(--pvx-text);
1342
+ overflow: hidden;
1343
+ text-overflow: ellipsis;
1344
+ white-space: nowrap;
1345
+ }
1346
+
1347
+ .pvx-dash-tooltip-value {
1348
+ color: var(--pvx-text-muted);
1349
+ font-family: var(--pvx-font-mono);
1350
+ flex-shrink: 0;
1351
+ }
1352
+
1353
+ .pvx-dash-tooltip-more {
1354
+ color: var(--pvx-text-dimmed);
1355
+ font-size: 0.75rem;
1356
+ justify-content: center;
1357
+ padding-top: 0.25rem;
1358
+ }
1359
+
1360
+ /* ─── Records list (compact layout) ───────────────────────────── */
1361
+
1362
+ .pvx-dash-records-icon {
1363
+ display: inline-flex;
1364
+ margin-right: 0.5rem;
1365
+ vertical-align: middle;
1366
+ }
1367
+
1368
+ .pvx-dash-records-icon svg {
1369
+ width: 1.25rem;
1370
+ height: 1.25rem;
1371
+ color: var(--pvx-rank-gold);
1372
+ }
1373
+
1374
+ .pvx-dash-records-count {
1375
+ font-weight: 400;
1376
+ font-size: 0.875rem;
1377
+ color: var(--pvx-text-muted);
1378
+ margin-left: 0.375rem;
1379
+ }
1380
+
1381
+ .pvx-dash-records-list {
1382
+ display: flex;
1383
+ flex-direction: column;
1384
+ }
1385
+
1386
+ .pvx-dash-record-row {
1387
+ display: flex;
1388
+ align-items: center;
1389
+ justify-content: space-between;
1390
+ gap: 1rem;
1391
+ padding: 0.625rem 1rem;
1392
+ }
1393
+
1394
+ .pvx-dash-record-row + .pvx-dash-record-row {
1395
+ border-top: 1px solid rgba(31, 41, 55, 0.5);
1396
+ }
1397
+
1398
+ .pvx-dash-record-info {
1399
+ display: flex;
1400
+ flex-direction: column;
1401
+ gap: 0.125rem;
1402
+ min-width: 0;
1403
+ }
1404
+
1405
+ .pvx-dash-record-track {
1406
+ font-weight: 600;
1407
+ font-size: 0.9375rem;
1408
+ color: var(--pvx-text-primary);
1409
+ white-space: nowrap;
1410
+ overflow: hidden;
1411
+ text-overflow: ellipsis;
1412
+ }
1413
+
1414
+ .pvx-dash-record-car {
1415
+ font-size: 0.8125rem;
1416
+ color: var(--pvx-text-muted);
1417
+ white-space: nowrap;
1418
+ overflow: hidden;
1419
+ text-overflow: ellipsis;
1420
+ }
1421
+
1422
+ .pvx-dash-record-time {
1423
+ display: flex;
1424
+ flex-direction: column;
1425
+ align-items: flex-end;
1426
+ gap: 0.125rem;
1427
+ flex-shrink: 0;
1428
+ }
1429
+
1430
+ .pvx-dash-record-lap {
1431
+ font-family: var(--pvx-font-mono);
1432
+ font-size: 1rem;
1433
+ font-weight: 600;
1434
+ color: var(--pvx-text-primary);
1435
+ }
1436
+
1437
+ .pvx-dash-records-toggle {
1438
+ display: block;
1439
+ width: 100%;
1440
+ padding: 0.625rem 1rem;
1441
+ border: none;
1442
+ border-top: 1px solid var(--pvx-border);
1443
+ background: transparent;
1444
+ color: var(--pvx-accent);
1445
+ font-size: 0.8125rem;
1446
+ font-weight: 500;
1447
+ cursor: pointer;
1448
+ transition: color 150ms;
1449
+ }
1450
+
1451
+ .pvx-dash-records-toggle:hover {
1452
+ color: var(--pvx-accent-hover);
1453
+ }
1454
+
1238
1455
  /* ─── Game badge ───────────────────────────────────────────────── */
1239
1456
 
1240
1457
  .pvx-dash-game-badge {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pitvox/partner-react",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "React hooks, components, and drop-in leaderboard + competition experiences for PitVox partner websites",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",