@pitvox/partner-react 0.2.0 → 0.2.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.
package/dist/styles.css CHANGED
@@ -1150,20 +1150,22 @@
1150
1150
  gap: 1.5rem;
1151
1151
  }
1152
1152
 
1153
- /* ─── Driver profile ───────────────────────────────────────────── */
1153
+ /* ─── Driver profile card ──────────────────────────────────────── */
1154
1154
 
1155
1155
  .pvx-dash-profile {
1156
1156
  display: flex;
1157
1157
  align-items: center;
1158
1158
  gap: 1rem;
1159
+ padding: 1.25rem 1.5rem;
1159
1160
  }
1160
1161
 
1161
1162
  .pvx-dash-profile-avatar {
1162
- width: 4rem;
1163
- height: 4rem;
1163
+ width: 4.5rem;
1164
+ height: 4.5rem;
1164
1165
  border-radius: 9999px;
1165
1166
  flex-shrink: 0;
1166
1167
  object-fit: cover;
1168
+ border: 2px solid var(--pvx-border);
1167
1169
  }
1168
1170
 
1169
1171
  .pvx-dash-profile-avatar--placeholder {
@@ -1179,7 +1181,7 @@
1179
1181
  .pvx-dash-profile-info {
1180
1182
  display: flex;
1181
1183
  flex-direction: column;
1182
- gap: 0.125rem;
1184
+ gap: 0.25rem;
1183
1185
  }
1184
1186
 
1185
1187
  .pvx-dash-profile-name {
@@ -1199,34 +1201,59 @@
1199
1201
 
1200
1202
  .pvx-dash-stats {
1201
1203
  display: grid;
1202
- grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
1204
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
1203
1205
  gap: 0.75rem;
1204
1206
  }
1205
1207
 
1206
1208
  .pvx-dash-stat-card {
1209
+ position: relative;
1207
1210
  display: flex;
1208
- flex-direction: column;
1209
- align-items: center;
1210
- gap: 0.125rem;
1211
- padding: 1rem 0.75rem;
1211
+ align-items: flex-start;
1212
+ gap: 0.75rem;
1213
+ padding: 1.25rem 1.5rem;
1212
1214
  border-radius: var(--pvx-radius);
1213
1215
  border: 1px solid var(--pvx-border);
1214
1216
  background: var(--pvx-bg-card);
1215
- text-align: center;
1217
+ }
1218
+
1219
+ @media (max-width: 639px) {
1220
+ .pvx-dash-stats {
1221
+ grid-template-columns: repeat(2, 1fr);
1222
+ }
1223
+ }
1224
+
1225
+ .pvx-dash-stat-card--has-tooltip {
1226
+ cursor: default;
1227
+ }
1228
+
1229
+ .pvx-dash-stat-icon {
1230
+ width: 1.5rem;
1231
+ height: 1.5rem;
1232
+ flex-shrink: 0;
1233
+ color: var(--pvx-accent);
1234
+ margin-top: 0.25rem;
1235
+ }
1236
+
1237
+ .pvx-dash-stat-content {
1238
+ display: flex;
1239
+ flex-direction: column;
1240
+ gap: 0.125rem;
1241
+ }
1242
+
1243
+ .pvx-dash-stat-card--rating .pvx-dash-stat-icon {
1244
+ color: var(--pvx-rank-bronze);
1216
1245
  }
1217
1246
 
1218
1247
  .pvx-dash-stat-value {
1219
- font-size: 1.5rem;
1248
+ font-size: 1.75rem;
1220
1249
  font-weight: 700;
1221
1250
  color: var(--pvx-text-primary);
1222
- font-family: var(--pvx-font-mono);
1251
+ line-height: 1;
1223
1252
  }
1224
1253
 
1225
1254
  .pvx-dash-stat-label {
1226
1255
  font-size: 0.75rem;
1227
1256
  font-weight: 500;
1228
- text-transform: uppercase;
1229
- letter-spacing: 0.05em;
1230
1257
  color: var(--pvx-text-muted);
1231
1258
  }
1232
1259
 
@@ -1235,6 +1262,152 @@
1235
1262
  color: var(--pvx-text-dimmed);
1236
1263
  }
1237
1264
 
1265
+ /* ─── Breakdown tooltip (on hover) ─────────────────────────────── */
1266
+
1267
+ .pvx-dash-tooltip {
1268
+ pointer-events: none;
1269
+ position: absolute;
1270
+ left: 0;
1271
+ top: 100%;
1272
+ margin-top: 0.375rem;
1273
+ z-index: 20;
1274
+ min-width: 14rem;
1275
+ padding: 0.5rem 0.75rem;
1276
+ background: #111827;
1277
+ border: 1px solid var(--pvx-border);
1278
+ border-radius: var(--pvx-radius-sm);
1279
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
1280
+ opacity: 0;
1281
+ transition: opacity 150ms;
1282
+ font-size: 0.8125rem;
1283
+ }
1284
+
1285
+ .pvx-dash-stat-card--has-tooltip:hover .pvx-dash-tooltip {
1286
+ opacity: 1;
1287
+ }
1288
+
1289
+ .pvx-dash-tooltip-row {
1290
+ display: flex;
1291
+ justify-content: space-between;
1292
+ gap: 1rem;
1293
+ padding: 0.1875rem 0;
1294
+ }
1295
+
1296
+ .pvx-dash-tooltip-label {
1297
+ color: var(--pvx-text);
1298
+ overflow: hidden;
1299
+ text-overflow: ellipsis;
1300
+ white-space: nowrap;
1301
+ }
1302
+
1303
+ .pvx-dash-tooltip-value {
1304
+ color: var(--pvx-text-muted);
1305
+ font-family: var(--pvx-font-mono);
1306
+ flex-shrink: 0;
1307
+ }
1308
+
1309
+ .pvx-dash-tooltip-more {
1310
+ color: var(--pvx-text-dimmed);
1311
+ font-size: 0.75rem;
1312
+ justify-content: center;
1313
+ padding-top: 0.25rem;
1314
+ }
1315
+
1316
+ /* ─── Records list (compact layout) ───────────────────────────── */
1317
+
1318
+ .pvx-dash-records-icon {
1319
+ display: inline-flex;
1320
+ margin-right: 0.5rem;
1321
+ vertical-align: middle;
1322
+ }
1323
+
1324
+ .pvx-dash-records-icon svg {
1325
+ width: 1.25rem;
1326
+ height: 1.25rem;
1327
+ color: var(--pvx-rank-gold);
1328
+ }
1329
+
1330
+ .pvx-dash-records-count {
1331
+ font-weight: 400;
1332
+ font-size: 0.875rem;
1333
+ color: var(--pvx-text-muted);
1334
+ margin-left: 0.375rem;
1335
+ }
1336
+
1337
+ .pvx-dash-records-list {
1338
+ display: flex;
1339
+ flex-direction: column;
1340
+ }
1341
+
1342
+ .pvx-dash-record-row {
1343
+ display: flex;
1344
+ align-items: center;
1345
+ justify-content: space-between;
1346
+ gap: 1rem;
1347
+ padding: 0.625rem 1rem;
1348
+ }
1349
+
1350
+ .pvx-dash-record-row + .pvx-dash-record-row {
1351
+ border-top: 1px solid rgba(31, 41, 55, 0.5);
1352
+ }
1353
+
1354
+ .pvx-dash-record-info {
1355
+ display: flex;
1356
+ flex-direction: column;
1357
+ gap: 0.125rem;
1358
+ min-width: 0;
1359
+ }
1360
+
1361
+ .pvx-dash-record-track {
1362
+ font-weight: 600;
1363
+ font-size: 0.9375rem;
1364
+ color: var(--pvx-text-primary);
1365
+ white-space: nowrap;
1366
+ overflow: hidden;
1367
+ text-overflow: ellipsis;
1368
+ }
1369
+
1370
+ .pvx-dash-record-car {
1371
+ font-size: 0.8125rem;
1372
+ color: var(--pvx-text-muted);
1373
+ white-space: nowrap;
1374
+ overflow: hidden;
1375
+ text-overflow: ellipsis;
1376
+ }
1377
+
1378
+ .pvx-dash-record-time {
1379
+ display: flex;
1380
+ flex-direction: column;
1381
+ align-items: flex-end;
1382
+ gap: 0.125rem;
1383
+ flex-shrink: 0;
1384
+ }
1385
+
1386
+ .pvx-dash-record-lap {
1387
+ font-family: var(--pvx-font-mono);
1388
+ font-size: 1rem;
1389
+ font-weight: 600;
1390
+ color: var(--pvx-text-primary);
1391
+ }
1392
+
1393
+ .pvx-dash-records-toggle {
1394
+ display: block;
1395
+ width: 100%;
1396
+ padding: 0.625rem 1rem;
1397
+ border: none;
1398
+ border-top: 1px solid var(--pvx-border);
1399
+ background: transparent;
1400
+ color: var(--pvx-accent);
1401
+ font-size: 0.8125rem;
1402
+ font-weight: 500;
1403
+ cursor: pointer;
1404
+ transition: color 150ms;
1405
+ }
1406
+
1407
+ .pvx-dash-records-toggle:hover {
1408
+ color: var(--pvx-accent-hover);
1409
+ }
1410
+
1238
1411
  /* ─── Game badge ───────────────────────────────────────────────── */
1239
1412
 
1240
1413
  .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.2.1",
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",