reactoradar 1.2.5 → 1.4.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/styles.css CHANGED
@@ -369,6 +369,76 @@ body {
369
369
  .tab:hover:not(.active) { color: var(--text); }
370
370
  .ml-auto { margin-left: auto; }
371
371
 
372
+ /* Panel clear button (used in Console, Network, GA4, Redux) */
373
+ .panel-clear-btn {
374
+ padding: 3px 10px;
375
+ border: 1px solid var(--border2);
376
+ border-radius: 4px;
377
+ background: transparent;
378
+ color: var(--text-dim);
379
+ font-family: inherit;
380
+ font-size: 10px;
381
+ font-weight: 500;
382
+ cursor: pointer;
383
+ transition: all 0.12s;
384
+ flex-shrink: 0;
385
+ }
386
+ .panel-clear-btn:hover { border-color: var(--red); color: var(--red); }
387
+
388
+ /* Console level dropdown */
389
+ .console-level-dropdown { position: relative; }
390
+ .console-level-btn {
391
+ padding: 3px 10px;
392
+ border: 1px solid var(--border2);
393
+ border-radius: 4px;
394
+ background: var(--bg3);
395
+ color: var(--text);
396
+ font-family: inherit;
397
+ font-size: 10px;
398
+ font-weight: 500;
399
+ cursor: pointer;
400
+ white-space: nowrap;
401
+ }
402
+ .console-level-btn:hover { border-color: var(--accent); }
403
+ .console-level-menu {
404
+ display: none;
405
+ position: absolute;
406
+ top: 100%;
407
+ right: 0;
408
+ margin-top: 4px;
409
+ background: var(--bg2);
410
+ border: 1px solid var(--border2);
411
+ border-radius: 6px;
412
+ padding: 6px 0;
413
+ min-width: 140px;
414
+ box-shadow: 0 4px 16px rgba(0,0,0,.3);
415
+ z-index: 100;
416
+ }
417
+ .console-level-menu.open { display: block; }
418
+ .console-level-option {
419
+ display: flex;
420
+ align-items: center;
421
+ gap: 8px;
422
+ padding: 5px 12px;
423
+ font-size: 11px;
424
+ color: var(--text);
425
+ cursor: pointer;
426
+ transition: background 0.08s;
427
+ }
428
+ .console-level-option:hover { background: var(--bg3); }
429
+ .console-level-option input[type="checkbox"] {
430
+ width: 14px;
431
+ height: 14px;
432
+ accent-color: var(--accent);
433
+ cursor: pointer;
434
+ }
435
+ .lvl-dot {
436
+ width: 8px;
437
+ height: 8px;
438
+ border-radius: 50%;
439
+ flex-shrink: 0;
440
+ }
441
+
372
442
  /* ── SCROLL AREA ─────────────────────────────────────────────────────────────── */
373
443
  .scroll-area { flex: 1; overflow-y: auto; overflow-x: hidden; user-select: text; -webkit-user-select: text; }
374
444
  .scroll-area::-webkit-scrollbar { width: 4px; }
@@ -399,22 +469,22 @@ body {
399
469
  CONSOLE PANEL
400
470
  ───────────────────────────────────────────────────────────────────────────── */
401
471
  .log-row {
402
- display: grid;
403
- grid-template-columns: 58px 44px 1fr;
404
- gap: 8px;
405
- align-items: baseline;
472
+ display: flex;
473
+ align-items: center;
474
+ gap: 6px;
406
475
  padding: 4px 14px;
407
476
  border-bottom: 1px solid transparent;
408
477
  transition: background 0.08s;
409
478
  cursor: default;
479
+ overflow: hidden;
410
480
  }
411
481
  .log-row:hover { background: var(--bg3); }
412
482
  .log-row.warn { background: rgba(245,200,66,.03); border-bottom-color: rgba(245,200,66,.06); }
413
483
  .log-row.error { background: rgba(255,94,114,.04); border-bottom-color: rgba(255,94,114,.07); }
414
484
 
415
- .log-time { color: var(--text-dim); font-size: 10px; white-space: nowrap; }
485
+ .log-time { color: var(--text-dim); font-size: 10px; white-space: nowrap; flex-shrink: 0; }
416
486
 
417
- .lvl-badge { display: inline-block; font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.5px; }
487
+ .lvl-badge { display: inline-block; font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.5px; flex-shrink: 0; }
418
488
  .lvl-log { background: rgba(200,210,230,.07); color: var(--text-dim); }
419
489
  .lvl-info { background: rgba(79,172,255,.12); color: var(--accent); }
420
490
  .lvl-warn { background: rgba(245,200,66,.12); color: var(--yellow); }
@@ -426,25 +496,25 @@ body {
426
496
  flex-direction: column;
427
497
  cursor: pointer;
428
498
  min-width: 0;
499
+ flex: 1;
429
500
  }
430
501
  .log-arrow {
431
502
  display: inline-block;
432
- width: 14px;
503
+ width: 12px;
433
504
  font-size: 8px;
434
505
  color: var(--text-dim);
435
506
  flex-shrink: 0;
436
507
  user-select: none;
437
508
  -webkit-user-select: none;
438
- margin-bottom: 1px;
439
509
  }
440
510
  .log-arrow.expanded { color: var(--accent); }
441
511
  .log-preview {
442
512
  display: flex;
443
- align-items: baseline;
444
- gap: 8px;
513
+ align-items: center;
514
+ gap: 6px;
445
515
  color: var(--text);
446
516
  font-size: 11px;
447
- line-height: 1.5;
517
+ line-height: 1.4;
448
518
  overflow: hidden;
449
519
  white-space: nowrap;
450
520
  user-select: text;
@@ -759,8 +829,17 @@ body {
759
829
  .kv-grid { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; }
760
830
  .kv-key { color: var(--accent); font-size: 11px; }
761
831
  .kv-val { color: var(--text); word-break: break-all; font-size: 11px; }
762
- .section-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); margin-bottom: 6px; margin-top: 10px; }
763
- .section-label:first-child { margin-top: 0; }
832
+ .section-label {
833
+ font-size: 10px;
834
+ text-transform: uppercase;
835
+ letter-spacing: 1px;
836
+ color: var(--text-dim);
837
+ margin-bottom: 4px;
838
+ margin-top: 0;
839
+ padding-top: 8px;
840
+ border-top: 1px solid var(--border);
841
+ }
842
+ .section-label:first-child { border-top: none; padding-top: 0; }
764
843
 
765
844
  /* Context menu */
766
845
  .ctx-menu {
@@ -1264,6 +1343,130 @@ mark { background: rgba(79,172,255,.2); color: var(--accent); border-radius: 2px
1264
1343
  ───────────────────────────────────────────────────────────────────────────── */
1265
1344
  .memory-layout { display: flex; flex-direction: column; height: 100%; }
1266
1345
 
1346
+ /* ─────────────────────────────────────────────────────────────────────────────
1347
+ GA4 EVENT INSPECTOR
1348
+ ───────────────────────────────────────────────────────────────────────────── */
1349
+ .ga4-layout { display: flex; flex: 1; overflow: hidden; }
1350
+ .ga4-list-pane { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; }
1351
+ /* Resize handle between list and detail */
1352
+ .ga4-resize-handle {
1353
+ width: 5px;
1354
+ cursor: col-resize;
1355
+ background: var(--border);
1356
+ flex-shrink: 0;
1357
+ transition: background 0.15s;
1358
+ }
1359
+ .ga4-resize-handle:hover { background: var(--accent); opacity: 0.5; }
1360
+
1361
+ .ga4-detail-pane {
1362
+ width: 60%;
1363
+ min-width: 350px;
1364
+ display: flex;
1365
+ flex-direction: column;
1366
+ overflow: hidden;
1367
+ }
1368
+
1369
+ .ga4-list-header {
1370
+ display: flex;
1371
+ align-items: center;
1372
+ padding: 4px 10px;
1373
+ background: var(--bg2);
1374
+ border-bottom: 1px solid var(--border);
1375
+ font-size: 9px;
1376
+ font-weight: 600;
1377
+ color: var(--text-dim);
1378
+ text-transform: uppercase;
1379
+ letter-spacing: 0.5px;
1380
+ flex-shrink: 0;
1381
+ }
1382
+ .ga4-hcell { padding: 3px 6px; }
1383
+ .ga4-sort-btn:hover { color: var(--accent); }
1384
+ .ga4-sort-btn span { font-size: 8px; color: var(--accent); }
1385
+
1386
+ .ga4-row {
1387
+ display: flex;
1388
+ align-items: center;
1389
+ padding: 5px 10px;
1390
+ border-bottom: 1px solid var(--border);
1391
+ cursor: pointer;
1392
+ transition: background 0.08s;
1393
+ font-size: 11px;
1394
+ }
1395
+ .ga4-row:hover { background: var(--bg3); }
1396
+ .ga4-row.selected { background: var(--bg4); border-left: 2px solid var(--accent); }
1397
+
1398
+ .ga4-cell { padding: 0 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1399
+ .ga4-time { width: 90px; color: var(--text-dim); font-size: 10px; flex-shrink: 0; }
1400
+ .ga4-name { flex: 1; color: var(--text-bright); font-weight: 500; min-width: 0; }
1401
+
1402
+ /* Detail pane */
1403
+ .ga4-detail-header {
1404
+ padding: 8px 14px;
1405
+ font-size: 10px;
1406
+ font-weight: 700;
1407
+ color: var(--text-dim);
1408
+ text-transform: uppercase;
1409
+ letter-spacing: 1px;
1410
+ border-bottom: 1px solid var(--border);
1411
+ background: var(--bg2);
1412
+ flex-shrink: 0;
1413
+ }
1414
+ .ga4-detail-content { flex: 1; overflow-y: auto; padding: 10px 14px; user-select: text; -webkit-user-select: text; }
1415
+ .ga4-detail-info { margin-bottom: 8px; }
1416
+ .ga4-detail-row { display: flex; gap: 12px; padding: 3px 0; font-size: 11px; }
1417
+ .ga4-detail-key { color: var(--text-dim); min-width: 100px; flex-shrink: 0; }
1418
+ .ga4-detail-val { color: var(--text); word-break: break-all; }
1419
+ .ga4-detail-sep { height: 1px; background: var(--border); margin: 8px 0; }
1420
+
1421
+ .ga4-param-row {
1422
+ display: flex;
1423
+ gap: 8px;
1424
+ padding: 4px 0;
1425
+ font-size: 11px;
1426
+ border-bottom: 1px solid var(--border);
1427
+ align-items: flex-start;
1428
+ }
1429
+ .ga4-param-row:last-child { border-bottom: none; }
1430
+ .ga4-param-key { color: var(--accent); width: 180px; min-width: 180px; flex-shrink: 0; font-weight: 500; padding-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
1431
+ .ga4-param-val { color: var(--text); flex: 1; min-width: 0; }
1432
+ .ga4-param-val .ov-node, .ga4-param-val .ov-leaf { white-space: normal; }
1433
+ .ga4-param-val .ov-key { white-space: nowrap; }
1434
+ .ga4-param-val .ov-header { flex-wrap: nowrap; }
1435
+
1436
+ /* Summary bar */
1437
+ .ga4-summary {
1438
+ display: flex;
1439
+ align-items: center;
1440
+ gap: 8px;
1441
+ padding: 6px 14px;
1442
+ background: var(--bg2);
1443
+ border-top: 1px solid var(--border);
1444
+ font-size: 10px;
1445
+ color: var(--text-dim);
1446
+ flex-shrink: 0;
1447
+ overflow-x: auto;
1448
+ overflow-y: hidden;
1449
+ white-space: nowrap;
1450
+ }
1451
+ .ga4-summary::-webkit-scrollbar { height: 3px; }
1452
+ .ga4-summary::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }
1453
+ .ga4-summary-label { font-weight: 600; color: var(--text-mid); flex-shrink: 0; }
1454
+ .ga4-summary-chip {
1455
+ flex-shrink: 0;
1456
+ padding: 2px 8px;
1457
+ border-radius: 10px;
1458
+ border: 1px solid var(--border2);
1459
+ cursor: pointer;
1460
+ transition: all 0.12s;
1461
+ white-space: nowrap;
1462
+ }
1463
+ .ga4-summary-chip:hover { border-color: var(--accent); color: var(--accent); }
1464
+ .ga4-summary-chip.active { background: var(--accent); color: #fff; border-color: var(--accent); }
1465
+ .ga4-summary-chip b { font-weight: 500; color: var(--text); }
1466
+ .ga4-summary-chip.active b { color: #fff; }
1467
+ .ga4-summary-chip .chip-count { color: var(--text-dim); margin-left: 3px; }
1468
+ .ga4-summary-chip.active .chip-count { color: rgba(255,255,255,0.7); }
1469
+
1267
1470
  /* ── LIGHT THEME OVERRIDES ───────────────────────────────────────────────────── */
1268
1471
  [data-theme="light"] .tb-btn.primary {
1269
1472
  background: rgba(9,105,218,.08);