@barodoc/theme-docs 6.0.0 → 7.0.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.
@@ -983,6 +983,22 @@
983
983
  margin-left: 0;
984
984
  }
985
985
 
986
+ .bd-contributor-count {
987
+ display: inline-flex;
988
+ align-items: center;
989
+ justify-content: center;
990
+ width: 1.75rem;
991
+ height: 1.75rem;
992
+ border-radius: 9999px;
993
+ border: 2px solid var(--bd-bg);
994
+ margin-left: -0.375rem;
995
+ background: var(--bd-bg-subtle);
996
+ color: var(--bd-text-muted);
997
+ font-size: 0.6875rem;
998
+ font-weight: 600;
999
+ cursor: default;
1000
+ }
1001
+
986
1002
  /* ==========================================================================
987
1003
  Version Switcher
988
1004
  ========================================================================== */
@@ -1048,203 +1064,1071 @@
1048
1064
  }
1049
1065
 
1050
1066
  /* ==========================================================================
1051
- API Playground
1067
+ API Endpoint Header
1052
1068
  ========================================================================== */
1053
1069
 
1054
- .bd-playground {
1055
- border: 1px solid var(--bd-border);
1070
+ .bd-api-endpoint {
1071
+ margin-top: 2.5rem;
1072
+ margin-bottom: 1rem;
1073
+ scroll-margin-top: 5rem;
1074
+ }
1075
+
1076
+ .bd-api-endpoint:first-child {
1077
+ margin-top: 1.5rem;
1078
+ }
1079
+
1080
+ .bd-api-endpoint-anchor {
1081
+ display: block;
1082
+ text-decoration: none;
1083
+ color: inherit;
1084
+ padding: 0.875rem 1rem;
1056
1085
  border-radius: 0.5rem;
1057
- overflow: hidden;
1058
- margin: 1.5rem 0;
1059
- font-size: 0.875rem;
1086
+ border: 1px solid var(--bd-border);
1087
+ background: var(--bd-bg-subtle);
1088
+ transition: border-color 200ms, box-shadow 200ms;
1060
1089
  }
1061
1090
 
1062
- .bd-playground-header {
1091
+ .bd-api-endpoint-anchor:hover {
1092
+ border-color: var(--color-primary-300);
1093
+ box-shadow: 0 0 0 1px var(--color-primary-200);
1094
+ }
1095
+
1096
+ .dark .bd-api-endpoint-anchor:hover {
1097
+ border-color: var(--color-primary-700);
1098
+ box-shadow: 0 0 0 1px var(--color-primary-800);
1099
+ }
1100
+
1101
+ .bd-api-endpoint-header {
1063
1102
  display: flex;
1064
1103
  align-items: center;
1065
- gap: 0.5rem;
1066
- padding: 0.75rem 1rem;
1067
- background-color: var(--bd-bg-subtle);
1068
- border-bottom: 1px solid var(--bd-border);
1104
+ gap: 0.625rem;
1069
1105
  }
1070
1106
 
1071
- .bd-playground-method {
1072
- padding: 0.125rem 0.5rem;
1073
- border-radius: 0.25rem;
1107
+ .bd-api-endpoint-method {
1108
+ display: inline-flex;
1109
+ align-items: center;
1110
+ justify-content: center;
1111
+ min-width: 4rem;
1112
+ padding: 0.25rem 0.625rem;
1113
+ border-radius: 0.375rem;
1074
1114
  font-size: 0.75rem;
1075
- font-weight: 700;
1076
- letter-spacing: 0.025em;
1115
+ font-weight: 800;
1116
+ letter-spacing: 0.05em;
1117
+ text-transform: uppercase;
1077
1118
  flex-shrink: 0;
1078
1119
  }
1079
1120
 
1080
- .bd-playground-url {
1081
- flex: 1;
1121
+ .bd-api-endpoint-path {
1122
+ font-size: 0.9375rem;
1123
+ font-weight: 600;
1124
+ font-family: ui-monospace, monospace;
1125
+ color: var(--bd-text);
1126
+ word-break: break-all;
1127
+ }
1128
+
1129
+ .bd-api-endpoint-summary {
1130
+ margin: 0.375rem 0 0 0;
1082
1131
  font-size: 0.8125rem;
1083
- color: var(--bd-text-secondary);
1084
- overflow: hidden;
1085
- text-overflow: ellipsis;
1086
- white-space: nowrap;
1132
+ color: var(--bd-text-muted);
1133
+ line-height: 1.4;
1087
1134
  }
1088
1135
 
1089
- .bd-playground-send {
1090
- padding: 0.375rem 0.875rem;
1091
- border-radius: 0.375rem;
1092
- background-color: var(--color-primary-600);
1093
- color: #fff;
1136
+ /* Method color badges (shared by endpoint + playground) */
1137
+ .bd-method-get { background-color: #dcfce7; color: #166534; }
1138
+ .bd-method-post { background-color: #dbeafe; color: #1e40af; }
1139
+ .bd-method-put { background-color: #fef3c7; color: #92400e; }
1140
+ .bd-method-patch { background-color: #ffedd5; color: #9a3412; }
1141
+ .bd-method-delete { background-color: #fee2e2; color: #991b1b; }
1142
+
1143
+ .dark .bd-method-get { background-color: #052e16; color: #86efac; }
1144
+ .dark .bd-method-post { background-color: #172554; color: #93c5fd; }
1145
+ .dark .bd-method-put { background-color: #451a03; color: #fcd34d; }
1146
+ .dark .bd-method-patch { background-color: #431407; color: #fdba74; }
1147
+ .dark .bd-method-delete { background-color: #450a0a; color: #fca5a5; }
1148
+
1149
+ /* ==========================================================================
1150
+ API Overview Banner
1151
+ ========================================================================== */
1152
+
1153
+ .bd-api-overview {
1154
+ display: flex;
1155
+ flex-wrap: wrap;
1156
+ gap: 1.5rem;
1157
+ padding: 0.875rem 1rem;
1158
+ margin-bottom: 1.5rem;
1159
+ border-radius: 0.5rem;
1160
+ border: 1px solid var(--bd-border);
1161
+ background: var(--bd-bg-subtle);
1094
1162
  font-size: 0.8125rem;
1095
- font-weight: 500;
1096
- border: none;
1097
- cursor: pointer;
1098
- flex-shrink: 0;
1099
- transition: background-color 150ms ease;
1100
1163
  }
1101
1164
 
1102
- .bd-playground-send:hover {
1103
- background-color: var(--color-primary-700);
1165
+ .bd-api-overview-item {
1166
+ display: flex;
1167
+ align-items: center;
1168
+ gap: 0.5rem;
1104
1169
  }
1105
1170
 
1106
- .bd-playground-send:disabled {
1107
- opacity: 0.6;
1108
- cursor: not-allowed;
1171
+ .bd-api-overview-label {
1172
+ font-weight: 500;
1173
+ color: var(--bd-text-muted);
1109
1174
  }
1110
1175
 
1111
- .dark .bd-playground-send {
1112
- background-color: var(--color-primary-500);
1176
+ .bd-api-overview-value {
1177
+ padding: 0.125rem 0.5rem;
1178
+ border-radius: 0.25rem;
1179
+ font-size: 0.75rem;
1180
+ background: var(--bd-bg);
1181
+ border: 1px solid var(--bd-border);
1182
+ color: var(--bd-text);
1113
1183
  }
1114
1184
 
1115
- .dark .bd-playground-send:hover {
1116
- background-color: var(--color-primary-400);
1185
+ /* ==========================================================================
1186
+ API Endpoint TOC (Table of Contents)
1187
+ ========================================================================== */
1188
+
1189
+ .bd-api-toc {
1190
+ margin-bottom: 1.5rem;
1191
+ border: 1px solid var(--bd-border);
1192
+ border-radius: 0.5rem;
1193
+ overflow: hidden;
1117
1194
  }
1118
1195
 
1119
- .bd-playground-params {
1120
- padding: 0.75rem 1rem;
1196
+ .bd-api-toc-title {
1197
+ padding: 0.5rem 0.875rem;
1198
+ font-size: 0.6875rem;
1199
+ font-weight: 600;
1200
+ text-transform: uppercase;
1201
+ letter-spacing: 0.05em;
1202
+ color: var(--bd-text-muted);
1203
+ background: var(--bd-bg-subtle);
1204
+ border-bottom: 1px solid var(--bd-border);
1205
+ }
1206
+
1207
+ .bd-api-toc-list {
1121
1208
  display: flex;
1122
1209
  flex-direction: column;
1123
- gap: 0.5rem;
1210
+ }
1211
+
1212
+ .bd-api-toc-item {
1213
+ display: flex;
1214
+ align-items: center;
1215
+ gap: 0.625rem;
1216
+ padding: 0.5rem 0.875rem;
1124
1217
  border-bottom: 1px solid var(--bd-border);
1218
+ font-size: 0.8125rem;
1219
+ color: var(--bd-text);
1220
+ text-decoration: none;
1221
+ transition: background 120ms ease;
1125
1222
  }
1126
1223
 
1127
- .bd-playground-param {
1128
- display: grid;
1129
- grid-template-columns: 8rem 1fr;
1130
- gap: 0.5rem;
1224
+ .bd-api-toc-item:last-child {
1225
+ border-bottom: none;
1226
+ }
1227
+
1228
+ .bd-api-toc-item:hover {
1229
+ background: var(--bd-bg-subtle);
1230
+ text-decoration: none;
1231
+ }
1232
+
1233
+ .bd-api-toc-method {
1234
+ display: inline-flex;
1131
1235
  align-items: center;
1236
+ justify-content: center;
1237
+ min-width: 3.25rem;
1238
+ padding: 0.125rem 0.375rem;
1239
+ border-radius: 0.25rem;
1240
+ font-size: 0.625rem;
1241
+ font-weight: 800;
1242
+ letter-spacing: 0.05em;
1243
+ flex-shrink: 0;
1244
+ text-align: center;
1132
1245
  }
1133
1246
 
1134
- .bd-playground-label {
1247
+ .bd-api-toc-path {
1248
+ font-family: ui-monospace, monospace;
1135
1249
  font-size: 0.8125rem;
1136
1250
  font-weight: 500;
1137
1251
  color: var(--bd-text);
1138
- display: flex;
1139
- align-items: center;
1140
- gap: 0.375rem;
1252
+ flex-shrink: 0;
1141
1253
  }
1142
1254
 
1143
- .bd-playground-param-meta {
1144
- font-size: 0.6875rem;
1255
+ .bd-api-toc-summary {
1145
1256
  color: var(--bd-text-muted);
1146
- font-weight: 400;
1257
+ font-size: 0.75rem;
1258
+ white-space: nowrap;
1259
+ overflow: hidden;
1260
+ text-overflow: ellipsis;
1147
1261
  }
1148
1262
 
1149
- .bd-playground-required {
1150
- color: var(--bd-error, #ef4444);
1151
- font-weight: 600;
1152
- }
1263
+ /* ==========================================================================
1264
+ API Documentation Sections
1265
+ ========================================================================== */
1153
1266
 
1154
- .bd-playground-input {
1155
- width: 100%;
1156
- padding: 0.375rem 0.5rem;
1157
- border-radius: 0.25rem;
1158
- border: 1px solid var(--bd-border);
1159
- background-color: var(--bd-bg);
1160
- color: var(--bd-text);
1161
- font-size: 0.8125rem;
1162
- font-family: ui-monospace, monospace;
1163
- outline: none;
1267
+ .bd-api-section {
1268
+ margin: 1rem 0;
1164
1269
  }
1165
1270
 
1166
- .bd-playground-input:focus {
1167
- border-color: var(--color-primary-400);
1168
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary-400) 20%, transparent);
1271
+ .bd-api-section h4 {
1272
+ font-size: 0.8125rem;
1273
+ font-weight: 600;
1274
+ text-transform: uppercase;
1275
+ letter-spacing: 0.05em;
1276
+ color: var(--bd-text-muted);
1277
+ margin-bottom: 0.625rem;
1278
+ border: none;
1279
+ padding-bottom: 0;
1169
1280
  }
1170
1281
 
1171
- .bd-playground-body-section {
1172
- padding: 0.75rem 1rem;
1173
- border-bottom: 1px solid var(--bd-border);
1282
+ .bd-api-content-type {
1283
+ font-size: 0.75rem;
1284
+ color: var(--bd-text-muted);
1174
1285
  }
1175
1286
 
1176
- .bd-playground-textarea {
1177
- width: 100%;
1178
- margin-top: 0.375rem;
1179
- padding: 0.5rem;
1180
- border-radius: 0.25rem;
1287
+ .bd-api-param-list {
1181
1288
  border: 1px solid var(--bd-border);
1182
- background-color: var(--bd-bg);
1183
- color: var(--bd-text);
1289
+ border-radius: 0.5rem;
1290
+ overflow: hidden;
1184
1291
  font-size: 0.8125rem;
1185
- font-family: ui-monospace, monospace;
1186
- resize: vertical;
1187
- outline: none;
1188
1292
  }
1189
1293
 
1190
- .bd-playground-textarea:focus {
1191
- border-color: var(--color-primary-400);
1294
+ .bd-api-param-item {
1295
+ padding: 0.625rem 0.875rem;
1296
+ border-bottom: 1px solid var(--bd-border);
1192
1297
  }
1193
1298
 
1194
- .bd-playground-response {
1195
- background-color: var(--bd-bg-subtle);
1299
+ .bd-api-param-item:last-child {
1300
+ border-bottom: none;
1196
1301
  }
1197
1302
 
1198
- .bd-playground-response-header {
1303
+ .bd-api-param-name {
1199
1304
  display: flex;
1200
1305
  align-items: center;
1201
- justify-content: space-between;
1202
- padding: 0.5rem 1rem;
1203
- border-bottom: 1px solid var(--bd-border);
1306
+ gap: 0.5rem;
1307
+ flex-wrap: wrap;
1204
1308
  }
1205
1309
 
1206
- .bd-playground-status {
1207
- font-weight: 600;
1310
+ .bd-api-param-name code {
1208
1311
  font-size: 0.8125rem;
1312
+ font-weight: 600;
1313
+ color: var(--bd-text);
1209
1314
  }
1210
1315
 
1211
- .bd-status-ok {
1212
- color: #16a34a;
1316
+ .bd-param-required {
1317
+ font-size: 0.6875rem;
1318
+ font-weight: 600;
1319
+ color: #dc2626;
1320
+ text-transform: uppercase;
1321
+ letter-spacing: 0.025em;
1213
1322
  }
1214
1323
 
1215
- .dark .bd-status-ok {
1216
- color: #4ade80;
1324
+ .dark .bd-param-required {
1325
+ color: #f87171;
1217
1326
  }
1218
1327
 
1219
- .bd-status-err {
1220
- color: #dc2626;
1328
+ .bd-param-optional {
1329
+ font-size: 0.6875rem;
1330
+ color: var(--bd-text-muted);
1331
+ text-transform: uppercase;
1332
+ letter-spacing: 0.025em;
1221
1333
  }
1222
1334
 
1223
- .dark .bd-status-err {
1224
- color: #f87171;
1335
+ .bd-api-param-type {
1336
+ font-size: 0.6875rem;
1337
+ font-family: ui-monospace, monospace;
1338
+ color: var(--color-primary-600);
1339
+ padding: 0.0625rem 0.375rem;
1340
+ background: color-mix(in srgb, var(--color-primary-600) 8%, transparent);
1341
+ border-radius: 0.25rem;
1225
1342
  }
1226
1343
 
1227
- .bd-playground-time {
1344
+ .dark .bd-api-param-type {
1345
+ color: var(--color-primary-400);
1346
+ background: color-mix(in srgb, var(--color-primary-400) 12%, transparent);
1347
+ }
1348
+
1349
+ .bd-api-param-desc {
1350
+ margin-top: 0.25rem;
1351
+ font-size: 0.8125rem;
1352
+ color: var(--bd-text-secondary);
1353
+ line-height: 1.5;
1354
+ }
1355
+
1356
+ .bd-api-param-enum {
1357
+ margin-top: 0.25rem;
1228
1358
  font-size: 0.75rem;
1229
1359
  color: var(--bd-text-muted);
1230
1360
  }
1231
1361
 
1232
- .bd-playground-pre {
1233
- margin: 0;
1234
- padding: 1rem;
1235
- overflow-x: auto;
1362
+ .bd-api-param-enum code {
1363
+ padding: 0 0.25rem;
1364
+ font-size: 0.6875rem;
1365
+ background: var(--bd-bg-subtle);
1366
+ border-radius: 0.125rem;
1367
+ }
1368
+
1369
+ /* Responses */
1370
+ .bd-api-responses {
1371
+ border: 1px solid var(--bd-border);
1372
+ border-radius: 0.5rem;
1373
+ overflow: hidden;
1374
+ }
1375
+
1376
+ .bd-api-response-item {
1377
+ display: flex;
1378
+ align-items: center;
1379
+ gap: 0.625rem;
1380
+ padding: 0.5rem 0.875rem;
1381
+ border-bottom: 1px solid var(--bd-border);
1236
1382
  font-size: 0.8125rem;
1237
- line-height: 1.6;
1238
- max-height: 20rem;
1239
1383
  }
1240
1384
 
1241
- .bd-playground-pre code {
1242
- font-family: ui-monospace, monospace;
1243
- color: var(--bd-text);
1385
+ .bd-api-response-item:last-child {
1386
+ border-bottom: none;
1387
+ }
1388
+
1389
+ .bd-api-status-badge {
1390
+ display: inline-flex;
1391
+ align-items: center;
1392
+ justify-content: center;
1393
+ min-width: 2.5rem;
1394
+ padding: 0.125rem 0.375rem;
1395
+ border-radius: 0.25rem;
1396
+ font-size: 0.75rem;
1397
+ font-weight: 700;
1398
+ font-family: ui-monospace, monospace;
1399
+ }
1400
+
1401
+ .bd-status-2xx { background-color: #dcfce7; color: #166534; }
1402
+ .bd-status-3xx { background-color: #dbeafe; color: #1e40af; }
1403
+ .bd-status-4xx { background-color: #fef3c7; color: #92400e; }
1404
+ .bd-status-5xx { background-color: #fee2e2; color: #991b1b; }
1405
+ .dark .bd-status-2xx { background-color: #052e16; color: #86efac; }
1406
+ .dark .bd-status-3xx { background-color: #172554; color: #93c5fd; }
1407
+ .dark .bd-status-4xx { background-color: #451a03; color: #fcd34d; }
1408
+ .dark .bd-status-5xx { background-color: #450a0a; color: #fca5a5; }
1409
+
1410
+ .bd-api-response-desc {
1411
+ color: var(--bd-text-secondary);
1412
+ }
1413
+
1414
+ /* Example details */
1415
+ .bd-api-example-details {
1416
+ margin: 0.5rem 0.875rem 0.5rem;
1417
+ font-size: 0.8125rem;
1418
+ }
1419
+
1420
+ .bd-api-example-details summary {
1421
+ cursor: pointer;
1422
+ font-weight: 500;
1423
+ color: var(--bd-text-muted);
1424
+ font-size: 0.8125rem;
1425
+ padding: 0.25rem 0;
1426
+ user-select: none;
1427
+ }
1428
+
1429
+ .bd-api-example-details summary:hover {
1430
+ color: var(--bd-text);
1431
+ }
1432
+
1433
+ .bd-api-example-details pre {
1434
+ margin-top: 0.375rem;
1435
+ font-size: 0.75rem;
1436
+ }
1437
+
1438
+ /* Divider between endpoints */
1439
+ .bd-api-divider {
1440
+ margin: 2rem 0 0;
1441
+ border: none;
1442
+ border-top: 1px solid var(--bd-border);
1443
+ }
1444
+
1445
+ /* ==========================================================================
1446
+ API Playground
1447
+ ========================================================================== */
1448
+
1449
+ .bd-playground {
1450
+ border: 1px solid var(--bd-border);
1451
+ border-radius: 0.625rem;
1452
+ overflow: hidden;
1453
+ margin: 1.25rem 0;
1454
+ font-size: 0.875rem;
1455
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.06), 0 1px 2px -1px rgba(0, 0, 0, 0.06);
1456
+ background: var(--bd-bg);
1457
+ }
1458
+
1459
+ .dark .bd-playground {
1460
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 1px 2px -1px rgba(0, 0, 0, 0.2);
1461
+ }
1462
+
1463
+ .bd-playground-header {
1464
+ display: flex;
1465
+ align-items: center;
1466
+ gap: 0.625rem;
1467
+ padding: 0.625rem 0.875rem;
1468
+ background-color: var(--bd-bg-subtle);
1469
+ border-bottom: 1px solid var(--bd-border);
1470
+ }
1471
+
1472
+ .bd-playground-method {
1473
+ display: inline-flex;
1474
+ align-items: center;
1475
+ justify-content: center;
1476
+ min-width: 3.25rem;
1477
+ padding: 0.1875rem 0.5rem;
1478
+ border-radius: 0.3125rem;
1479
+ font-size: 0.6875rem;
1480
+ font-weight: 800;
1481
+ letter-spacing: 0.05em;
1482
+ flex-shrink: 0;
1483
+ }
1484
+
1485
+ .bd-playground-url {
1486
+ flex: 1;
1487
+ font-size: 0.8125rem;
1488
+ color: var(--bd-text-secondary);
1489
+ overflow: hidden;
1490
+ text-overflow: ellipsis;
1491
+ white-space: nowrap;
1492
+ }
1493
+
1494
+ .bd-playground-send {
1495
+ display: inline-flex;
1496
+ align-items: center;
1497
+ gap: 0.375rem;
1498
+ padding: 0.4375rem 1rem;
1499
+ border-radius: 0.375rem;
1500
+ background-color: var(--color-primary-600);
1501
+ color: #fff;
1502
+ font-size: 0.8125rem;
1503
+ font-weight: 600;
1504
+ border: none;
1505
+ cursor: pointer;
1506
+ flex-shrink: 0;
1507
+ transition: background-color 150ms ease, transform 100ms ease;
1508
+ }
1509
+
1510
+ .bd-playground-send:hover {
1511
+ background-color: var(--color-primary-700);
1512
+ }
1513
+
1514
+ .bd-playground-send:active {
1515
+ transform: scale(0.97);
1516
+ }
1517
+
1518
+ .bd-playground-send:disabled {
1519
+ opacity: 0.6;
1520
+ cursor: not-allowed;
1521
+ transform: none;
1522
+ }
1523
+
1524
+ .dark .bd-playground-send {
1525
+ background-color: var(--color-primary-500);
1526
+ }
1527
+
1528
+ .dark .bd-playground-send:hover {
1529
+ background-color: var(--color-primary-400);
1530
+ }
1531
+
1532
+ .bd-pg-spinner {
1533
+ animation: bd-spin 1s linear infinite;
1534
+ }
1535
+
1536
+ @keyframes bd-spin {
1537
+ from { transform: rotate(0deg); }
1538
+ to { transform: rotate(360deg); }
1539
+ }
1540
+
1541
+ /* Auth bar */
1542
+ .bd-pg-auth-bar {
1543
+ padding: 0 0.875rem;
1544
+ border-bottom: 1px solid var(--bd-border);
1545
+ }
1546
+
1547
+ .bd-pg-auth-toggle {
1548
+ display: inline-flex;
1549
+ align-items: center;
1550
+ gap: 0.375rem;
1551
+ padding: 0.5rem 0;
1552
+ font-size: 0.75rem;
1553
+ font-weight: 500;
1554
+ color: var(--bd-text-muted);
1555
+ background: none;
1556
+ border: none;
1557
+ cursor: pointer;
1558
+ transition: color 150ms;
1559
+ }
1560
+
1561
+ .bd-pg-auth-toggle:hover {
1562
+ color: var(--bd-text);
1563
+ }
1564
+
1565
+ .bd-pg-auth-panel {
1566
+ padding: 0.625rem 0.875rem;
1567
+ border-bottom: 1px solid var(--bd-border);
1568
+ background: var(--bd-bg-subtle);
1569
+ display: flex;
1570
+ flex-direction: column;
1571
+ gap: 0.5rem;
1572
+ }
1573
+
1574
+ .bd-pg-auth-type {
1575
+ display: flex;
1576
+ gap: 0.25rem;
1577
+ margin-bottom: 0.25rem;
1578
+ }
1579
+
1580
+ .bd-pg-auth-type-btn {
1581
+ padding: 0.25rem 0.625rem;
1582
+ border-radius: 0.25rem;
1583
+ font-size: 0.6875rem;
1584
+ font-weight: 500;
1585
+ border: 1px solid var(--bd-border);
1586
+ background: var(--bd-bg);
1587
+ color: var(--bd-text-muted);
1588
+ cursor: pointer;
1589
+ transition: all 150ms;
1590
+ }
1591
+
1592
+ .bd-pg-auth-type-btn.active {
1593
+ background-color: var(--color-primary-600);
1594
+ border-color: var(--color-primary-600);
1595
+ color: #fff;
1596
+ }
1597
+
1598
+ .dark .bd-pg-auth-type-btn.active {
1599
+ background-color: var(--color-primary-500);
1600
+ border-color: var(--color-primary-500);
1601
+ }
1602
+
1603
+ /* Parameters */
1604
+ .bd-playground-params {
1605
+ padding: 0.625rem 0.875rem;
1606
+ display: flex;
1607
+ flex-direction: column;
1608
+ gap: 0.5rem;
1609
+ border-bottom: 1px solid var(--bd-border);
1610
+ }
1611
+
1612
+ .bd-playground-param {
1613
+ display: grid;
1614
+ grid-template-columns: 9rem 1fr;
1615
+ gap: 0.5rem;
1616
+ align-items: center;
1617
+ }
1618
+
1619
+ .bd-playground-label {
1620
+ font-size: 0.8125rem;
1621
+ font-weight: 500;
1622
+ color: var(--bd-text);
1623
+ display: flex;
1624
+ align-items: center;
1625
+ gap: 0.375rem;
1626
+ }
1627
+
1628
+ .bd-pg-param-name {
1629
+ font-family: ui-monospace, monospace;
1630
+ font-size: 0.8125rem;
1631
+ }
1632
+
1633
+ .bd-playground-param-meta {
1634
+ font-size: 0.625rem;
1635
+ color: var(--bd-text-muted);
1636
+ font-weight: 400;
1637
+ text-transform: uppercase;
1638
+ letter-spacing: 0.025em;
1639
+ }
1640
+
1641
+ .bd-playground-required {
1642
+ color: var(--bd-error, #ef4444);
1643
+ font-weight: 600;
1644
+ }
1645
+
1646
+ .bd-playground-input {
1647
+ width: 100%;
1648
+ padding: 0.375rem 0.625rem;
1649
+ border-radius: 0.3125rem;
1650
+ border: 1px solid var(--bd-border);
1651
+ background-color: var(--bd-bg);
1652
+ color: var(--bd-text);
1653
+ font-size: 0.8125rem;
1654
+ font-family: ui-monospace, monospace;
1655
+ outline: none;
1656
+ transition: border-color 150ms, box-shadow 150ms;
1657
+ }
1658
+
1659
+ .bd-playground-input:focus {
1660
+ border-color: var(--color-primary-400);
1661
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary-400) 20%, transparent);
1662
+ }
1663
+
1664
+ /* Body */
1665
+ .bd-playground-body-section {
1666
+ padding: 0.625rem 0.875rem;
1667
+ border-bottom: 1px solid var(--bd-border);
1668
+ }
1669
+
1670
+ .bd-playground-textarea {
1671
+ width: 100%;
1672
+ margin-top: 0.375rem;
1673
+ padding: 0.5rem 0.625rem;
1674
+ border-radius: 0.3125rem;
1675
+ border: 1px solid var(--bd-border);
1676
+ background-color: var(--bd-bg);
1677
+ color: var(--bd-text);
1678
+ font-size: 0.8125rem;
1679
+ font-family: ui-monospace, monospace;
1680
+ resize: vertical;
1681
+ outline: none;
1682
+ transition: border-color 150ms;
1683
+ }
1684
+
1685
+ .bd-playground-textarea:focus {
1686
+ border-color: var(--color-primary-400);
1687
+ }
1688
+
1689
+ /* Code snippets section */
1690
+ .bd-pg-code-section {
1691
+ border-bottom: 1px solid var(--bd-border);
1692
+ }
1693
+
1694
+ .bd-pg-code-tabs {
1695
+ display: flex;
1696
+ align-items: center;
1697
+ gap: 0;
1698
+ padding: 0 0.875rem;
1699
+ background: var(--bd-bg-subtle);
1700
+ border-bottom: 1px solid var(--bd-border);
1701
+ }
1702
+
1703
+ .bd-pg-code-tab {
1704
+ padding: 0.5rem 0.75rem;
1705
+ font-size: 0.6875rem;
1706
+ font-weight: 500;
1707
+ color: var(--bd-text-muted);
1708
+ background: none;
1709
+ border: none;
1710
+ border-bottom: 2px solid transparent;
1711
+ cursor: pointer;
1712
+ transition: color 150ms, border-color 150ms;
1713
+ }
1714
+
1715
+ .bd-pg-code-tab:hover {
1716
+ color: var(--bd-text);
1717
+ }
1718
+
1719
+ .bd-pg-code-tab.active {
1720
+ color: var(--bd-text);
1721
+ border-bottom-color: var(--color-primary-500);
1722
+ }
1723
+
1724
+ .bd-pg-code-pre {
1725
+ margin: 0;
1726
+ padding: 0.875rem;
1727
+ overflow-x: auto;
1728
+ font-size: 0.75rem;
1729
+ line-height: 1.6;
1730
+ max-height: 12rem;
1731
+ background: var(--bd-bg);
1732
+ color: var(--bd-text-secondary);
1733
+ }
1734
+
1735
+ .bd-pg-code-pre code {
1736
+ font-family: ui-monospace, monospace;
1737
+ white-space: pre;
1738
+ color: inherit;
1739
+ }
1740
+
1741
+ /* Copy button */
1742
+ .bd-pg-copy {
1743
+ display: inline-flex;
1744
+ align-items: center;
1745
+ justify-content: center;
1746
+ margin-left: auto;
1747
+ padding: 0.375rem;
1748
+ background: none;
1749
+ border: none;
1750
+ color: var(--bd-text-muted);
1751
+ cursor: pointer;
1752
+ border-radius: 0.25rem;
1753
+ transition: color 150ms, background 150ms;
1754
+ }
1755
+
1756
+ .bd-pg-copy:hover {
1757
+ color: var(--bd-text);
1758
+ background: var(--bd-bg-subtle);
1759
+ }
1760
+
1761
+ /* Response section */
1762
+ .bd-playground-response {
1763
+ background: var(--bd-bg-subtle);
1764
+ }
1765
+
1766
+ .bd-playground-response-header {
1767
+ display: flex;
1768
+ align-items: center;
1769
+ justify-content: space-between;
1770
+ padding: 0.5rem 0.875rem;
1771
+ border-bottom: 1px solid var(--bd-border);
1772
+ flex-wrap: wrap;
1773
+ gap: 0.5rem;
1774
+ }
1775
+
1776
+ .bd-pg-response-meta {
1777
+ display: flex;
1778
+ align-items: center;
1779
+ gap: 0.5rem;
1780
+ }
1781
+
1782
+ .bd-playground-status {
1783
+ font-weight: 700;
1784
+ font-size: 0.8125rem;
1785
+ font-family: ui-monospace, monospace;
1786
+ padding: 0.0625rem 0.375rem;
1787
+ border-radius: 0.25rem;
1788
+ }
1789
+
1790
+ .bd-status-ok {
1791
+ background-color: #dcfce7;
1792
+ color: #166534;
1793
+ }
1794
+
1795
+ .dark .bd-status-ok {
1796
+ background-color: #052e16;
1797
+ color: #86efac;
1798
+ }
1799
+
1800
+ .bd-status-warn {
1801
+ background-color: #fef3c7;
1802
+ color: #92400e;
1803
+ }
1804
+
1805
+ .dark .bd-status-warn {
1806
+ background-color: #451a03;
1807
+ color: #fcd34d;
1808
+ }
1809
+
1810
+ .bd-status-err {
1811
+ background-color: #fee2e2;
1812
+ color: #991b1b;
1813
+ }
1814
+
1815
+ .dark .bd-status-err {
1816
+ background-color: #450a0a;
1817
+ color: #fca5a5;
1818
+ }
1819
+
1820
+ .bd-pg-status-text {
1821
+ font-size: 0.75rem;
1822
+ color: var(--bd-text-muted);
1823
+ }
1824
+
1825
+ .bd-playground-time {
1826
+ font-size: 0.6875rem;
1827
+ color: var(--bd-text-muted);
1828
+ font-family: ui-monospace, monospace;
1829
+ padding: 0.0625rem 0.375rem;
1830
+ border-radius: 0.25rem;
1831
+ background: var(--bd-bg);
1832
+ border: 1px solid var(--bd-border);
1833
+ }
1834
+
1835
+ /* Response tabs */
1836
+ .bd-pg-response-tabs {
1837
+ display: flex;
1838
+ gap: 0;
1839
+ }
1840
+
1841
+ .bd-pg-resp-tab {
1842
+ display: inline-flex;
1843
+ align-items: center;
1844
+ gap: 0.25rem;
1845
+ padding: 0.3125rem 0.625rem;
1846
+ font-size: 0.6875rem;
1847
+ font-weight: 500;
1848
+ color: var(--bd-text-muted);
1849
+ background: none;
1850
+ border: 1px solid var(--bd-border);
1851
+ border-radius: 0.25rem;
1852
+ cursor: pointer;
1853
+ transition: all 150ms;
1854
+ }
1855
+
1856
+ .bd-pg-resp-tab:first-child {
1857
+ border-radius: 0.25rem 0 0 0.25rem;
1858
+ }
1859
+
1860
+ .bd-pg-resp-tab:last-child {
1861
+ border-radius: 0 0.25rem 0.25rem 0;
1862
+ border-left: none;
1863
+ }
1864
+
1865
+ .bd-pg-resp-tab.active {
1866
+ background: var(--bd-bg);
1867
+ color: var(--bd-text);
1868
+ font-weight: 600;
1869
+ }
1870
+
1871
+ .bd-pg-badge {
1872
+ font-size: 0.5625rem;
1873
+ padding: 0 0.25rem;
1874
+ border-radius: 0.625rem;
1875
+ background: var(--bd-border);
1876
+ color: var(--bd-text-muted);
1877
+ font-weight: 600;
1878
+ min-width: 1rem;
1879
+ text-align: center;
1880
+ }
1881
+
1882
+ /* Response body with copy */
1883
+ .bd-pg-response-body {
1884
+ position: relative;
1885
+ }
1886
+
1887
+ .bd-pg-response-body > .bd-pg-copy {
1888
+ position: absolute;
1889
+ top: 0.5rem;
1890
+ right: 0.5rem;
1891
+ z-index: 2;
1892
+ color: var(--bd-text-muted);
1893
+ }
1894
+
1895
+ .bd-pg-response-body > .bd-pg-copy:hover {
1896
+ color: var(--bd-text);
1897
+ background: var(--bd-bg-subtle);
1898
+ }
1899
+
1900
+ .bd-playground-pre {
1901
+ margin: 0;
1902
+ padding: 0.875rem;
1903
+ overflow: auto;
1904
+ font-size: 0.75rem;
1905
+ line-height: 1.65;
1906
+ max-height: 24rem;
1907
+ background: var(--bd-bg);
1908
+ }
1909
+
1910
+ .bd-playground-pre code {
1911
+ font-family: ui-monospace, monospace;
1912
+ color: var(--bd-text-secondary);
1913
+ }
1914
+
1915
+ /* JSON syntax highlighting */
1916
+ .bd-json-key { color: #7c3aed; }
1917
+ .bd-json-str { color: #059669; }
1918
+ .bd-json-num { color: #2563eb; }
1919
+ .bd-json-bool { color: #d97706; }
1920
+
1921
+ .dark .bd-json-key { color: #c4b5fd; }
1922
+ .dark .bd-json-str { color: #86efac; }
1923
+ .dark .bd-json-num { color: #93c5fd; }
1924
+ .dark .bd-json-bool { color: #fdba74; }
1925
+
1926
+ /* Headers table */
1927
+ .bd-pg-headers-table {
1928
+ padding: 0;
1929
+ overflow-x: auto;
1930
+ }
1931
+
1932
+ .bd-pg-headers-table table {
1933
+ width: 100%;
1934
+ font-size: 0.75rem;
1935
+ border-collapse: collapse;
1936
+ }
1937
+
1938
+ .bd-pg-headers-table th {
1939
+ text-align: left;
1940
+ padding: 0.5rem 0.875rem;
1941
+ font-weight: 600;
1942
+ color: var(--bd-text-muted);
1943
+ font-size: 0.6875rem;
1944
+ text-transform: uppercase;
1945
+ letter-spacing: 0.05em;
1946
+ border-bottom: 1px solid var(--bd-border);
1947
+ background: var(--bd-bg-subtle);
1948
+ }
1949
+
1950
+ .bd-pg-headers-table td {
1951
+ padding: 0.375rem 0.875rem;
1952
+ border-bottom: 1px solid var(--bd-border);
1953
+ color: var(--bd-text-secondary);
1954
+ word-break: break-all;
1955
+ }
1956
+
1957
+ .bd-pg-headers-table td code {
1958
+ font-size: 0.75rem;
1959
+ font-weight: 500;
1960
+ color: var(--bd-text);
1961
+ }
1962
+
1963
+ .bd-pg-headers-table tr:last-child td {
1964
+ border-bottom: none;
1965
+ }
1966
+
1967
+ /* Select dropdown for enum params */
1968
+ .bd-playground-select {
1969
+ appearance: none;
1970
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
1971
+ background-repeat: no-repeat;
1972
+ background-position: right 0.5rem center;
1973
+ padding-right: 1.75rem;
1974
+ cursor: pointer;
1975
+ }
1976
+
1977
+ /* Body JSON validation error */
1978
+ .bd-playground-textarea-error {
1979
+ border-color: #ef4444 !important;
1980
+ box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.15) !important;
1981
+ }
1982
+
1983
+ .bd-pg-body-error {
1984
+ display: flex;
1985
+ align-items: center;
1986
+ gap: 0.375rem;
1987
+ margin-top: 0.375rem;
1988
+ font-size: 0.75rem;
1989
+ color: #ef4444;
1990
+ }
1991
+
1992
+ .dark .bd-pg-body-error {
1993
+ color: #f87171;
1994
+ }
1995
+
1996
+ /* Response size badge */
1997
+ .bd-playground-size {
1998
+ font-size: 0.6875rem;
1999
+ color: var(--bd-text-muted);
2000
+ font-family: ui-monospace, monospace;
2001
+ padding: 0.0625rem 0.375rem;
2002
+ border-radius: 0.25rem;
2003
+ background: var(--bd-bg);
2004
+ border: 1px solid var(--bd-border);
2005
+ }
2006
+
2007
+ /* History section */
2008
+ .bd-pg-history-section {
2009
+ border-top: 1px solid var(--bd-border);
2010
+ }
2011
+
2012
+ .bd-pg-history-toggle {
2013
+ display: flex;
2014
+ align-items: center;
2015
+ gap: 0.5rem;
2016
+ width: 100%;
2017
+ padding: 0.5rem 0.875rem;
2018
+ background: none;
2019
+ border: none;
2020
+ color: var(--bd-text-muted);
2021
+ font-size: 0.75rem;
2022
+ font-weight: 500;
2023
+ cursor: pointer;
2024
+ transition: color 150ms;
2025
+ }
2026
+
2027
+ .bd-pg-history-toggle:hover {
2028
+ color: var(--bd-text);
2029
+ }
2030
+
2031
+ .bd-pg-history-list {
2032
+ display: flex;
2033
+ flex-direction: column;
2034
+ }
2035
+
2036
+ .bd-pg-history-item {
2037
+ display: flex;
2038
+ align-items: center;
2039
+ gap: 0.5rem;
2040
+ width: 100%;
2041
+ padding: 0.4375rem 0.875rem;
2042
+ border: none;
2043
+ border-top: 1px solid var(--bd-border);
2044
+ background: none;
2045
+ cursor: pointer;
2046
+ font-size: 0.75rem;
2047
+ color: var(--bd-text-secondary);
2048
+ text-align: left;
2049
+ transition: background 120ms;
2050
+ }
2051
+
2052
+ .bd-pg-history-item:hover {
2053
+ background: var(--bd-bg-subtle);
2054
+ }
2055
+
2056
+ .bd-pg-history-item.active {
2057
+ background: color-mix(in srgb, var(--color-primary-500) 8%, transparent);
2058
+ }
2059
+
2060
+ .bd-pg-history-method {
2061
+ display: inline-flex;
2062
+ align-items: center;
2063
+ justify-content: center;
2064
+ min-width: 2.75rem;
2065
+ padding: 0.0625rem 0.25rem;
2066
+ border-radius: 0.1875rem;
2067
+ font-size: 0.5625rem;
2068
+ font-weight: 800;
2069
+ letter-spacing: 0.05em;
2070
+ flex-shrink: 0;
2071
+ }
2072
+
2073
+ .bd-pg-history-url {
2074
+ flex: 1;
2075
+ overflow: hidden;
2076
+ text-overflow: ellipsis;
2077
+ white-space: nowrap;
2078
+ font-family: ui-monospace, monospace;
2079
+ font-size: 0.6875rem;
2080
+ color: var(--bd-text-secondary);
2081
+ }
2082
+
2083
+ .bd-pg-history-status {
2084
+ font-weight: 700;
2085
+ font-size: 0.6875rem;
2086
+ font-family: ui-monospace, monospace;
2087
+ padding: 0 0.25rem;
2088
+ border-radius: 0.1875rem;
2089
+ }
2090
+
2091
+ .bd-pg-history-time {
2092
+ font-size: 0.625rem;
2093
+ color: var(--bd-text-muted);
2094
+ font-family: ui-monospace, monospace;
2095
+ flex-shrink: 0;
2096
+ }
2097
+
2098
+ /* History banner when viewing a past entry */
2099
+ .bd-pg-history-banner {
2100
+ display: flex;
2101
+ align-items: center;
2102
+ justify-content: space-between;
2103
+ padding: 0.375rem 0.875rem;
2104
+ font-size: 0.75rem;
2105
+ color: var(--color-primary-600);
2106
+ background: color-mix(in srgb, var(--color-primary-500) 6%, transparent);
2107
+ border-bottom: 1px solid var(--bd-border);
2108
+ }
2109
+
2110
+ .dark .bd-pg-history-banner {
2111
+ color: var(--color-primary-400);
2112
+ }
2113
+
2114
+ .bd-pg-history-dismiss {
2115
+ background: none;
2116
+ border: none;
2117
+ font-size: 0.6875rem;
2118
+ font-weight: 500;
2119
+ color: var(--color-primary-600);
2120
+ cursor: pointer;
2121
+ text-decoration: underline;
2122
+ text-underline-offset: 2px;
2123
+ }
2124
+
2125
+ .dark .bd-pg-history-dismiss {
2126
+ color: var(--color-primary-400);
1244
2127
  }
1245
2128
 
2129
+ /* Error */
1246
2130
  .bd-playground-error {
1247
- padding: 0.75rem 1rem;
2131
+ padding: 0.75rem 0.875rem;
1248
2132
  color: #dc2626;
1249
2133
  font-size: 0.8125rem;
1250
2134
  }