@validation-os/dashboard 0.16.1 → 0.16.3
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/index.d.ts +66 -9
- package/dist/index.js +235 -56
- package/dist/index.js.map +1 -1
- package/dist/styles.css +147 -40
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -3375,11 +3375,12 @@ button.vos-verdict-title {
|
|
|
3375
3375
|
.vos-stage-grid-stagename { font-size: 15px !important; }
|
|
3376
3376
|
.vos-stage-grid-stagegloss { font-size: 11px !important; line-height: 1.4 !important; }
|
|
3377
3377
|
.vos-stage-grid-corner { font-weight: 600; }
|
|
3378
|
+
/* Heat scale = Risk intensity (red = high risk) */
|
|
3378
3379
|
.vos-heat-0 { background: var(--vos-surface); opacity: 0.45; color: var(--vos-muted); border-style: dashed; }
|
|
3379
|
-
.vos-heat-1 { background: color-mix(in srgb, var(--vos-
|
|
3380
|
-
.vos-heat-2 { background: color-mix(in srgb, var(--vos-
|
|
3381
|
-
.vos-heat-3 { background: color-mix(in srgb, var(--vos-
|
|
3382
|
-
.vos-heat-4 { background: color-mix(in srgb, var(--vos-
|
|
3380
|
+
.vos-heat-1 { background: color-mix(in srgb, var(--vos-crit) 16%, var(--vos-surface)); }
|
|
3381
|
+
.vos-heat-2 { background: color-mix(in srgb, var(--vos-crit) 30%, var(--vos-surface)); }
|
|
3382
|
+
.vos-heat-3 { background: color-mix(in srgb, var(--vos-crit) 44%, var(--vos-surface)); }
|
|
3383
|
+
.vos-heat-4 { background: color-mix(in srgb, var(--vos-crit) 58%, var(--vos-surface)); }
|
|
3383
3384
|
|
|
3384
3385
|
/* Glossary popover: parent cards no longer clip overflow, so the absolute
|
|
3385
3386
|
* popover can show. High z-index in case it overlaps other stacked cards. */
|
|
@@ -3388,6 +3389,66 @@ button.vos-verdict-title {
|
|
|
3388
3389
|
/* Topbar: hide the backend + agent indicators (clean header) */
|
|
3389
3390
|
.vos-backend, .vos-hint:has(.vos-live-dot) { display: none !important; }
|
|
3390
3391
|
|
|
3392
|
+
/* ── DEV-5890: Question Type filter tabs + heat legend ─────────────────── */
|
|
3393
|
+
.vos-qt-filter-bar {
|
|
3394
|
+
display: flex;
|
|
3395
|
+
gap: 4px;
|
|
3396
|
+
padding: 8px 12px;
|
|
3397
|
+
border-bottom: 1px solid var(--vos-border);
|
|
3398
|
+
flex-wrap: wrap;
|
|
3399
|
+
}
|
|
3400
|
+
|
|
3401
|
+
.vos-qt-tab {
|
|
3402
|
+
font-size: 10px;
|
|
3403
|
+
font-weight: 500;
|
|
3404
|
+
padding: 3px 10px;
|
|
3405
|
+
border: 1px solid var(--vos-border);
|
|
3406
|
+
border-radius: 12px;
|
|
3407
|
+
background: transparent;
|
|
3408
|
+
color: var(--vos-muted);
|
|
3409
|
+
cursor: pointer;
|
|
3410
|
+
transition: all 0.15s ease-out;
|
|
3411
|
+
}
|
|
3412
|
+
|
|
3413
|
+
.vos-qt-tab:hover {
|
|
3414
|
+
border-color: var(--vos-border-strong);
|
|
3415
|
+
color: var(--vos-text);
|
|
3416
|
+
}
|
|
3417
|
+
|
|
3418
|
+
.vos-qt-tab-active {
|
|
3419
|
+
background: var(--vos-accent);
|
|
3420
|
+
border-color: var(--vos-accent);
|
|
3421
|
+
color: #fff;
|
|
3422
|
+
}
|
|
3423
|
+
|
|
3424
|
+
.vos-heat-legend {
|
|
3425
|
+
display: flex;
|
|
3426
|
+
align-items: center;
|
|
3427
|
+
gap: 4px;
|
|
3428
|
+
padding: 6px 12px;
|
|
3429
|
+
font-size: 9px;
|
|
3430
|
+
color: var(--vos-muted);
|
|
3431
|
+
}
|
|
3432
|
+
|
|
3433
|
+
.vos-heat-legend-label {
|
|
3434
|
+
margin-right: 4px;
|
|
3435
|
+
font-weight: 600;
|
|
3436
|
+
}
|
|
3437
|
+
|
|
3438
|
+
.vos-heat-swatch {
|
|
3439
|
+
display: inline-block;
|
|
3440
|
+
width: 14px;
|
|
3441
|
+
height: 10px;
|
|
3442
|
+
border-radius: 2px;
|
|
3443
|
+
border: 1px solid var(--vos-border);
|
|
3444
|
+
}
|
|
3445
|
+
|
|
3446
|
+
.vos-heat-swatch.vos-heat-0 { background: var(--vos-surface-2); }
|
|
3447
|
+
.vos-heat-swatch.vos-heat-1 { background: rgba(214, 69, 80, 0.15); }
|
|
3448
|
+
.vos-heat-swatch.vos-heat-2 { background: rgba(214, 69, 80, 0.35); }
|
|
3449
|
+
.vos-heat-swatch.vos-heat-3 { background: rgba(214, 69, 80, 0.6); }
|
|
3450
|
+
.vos-heat-swatch.vos-heat-4 { background: rgba(214, 69, 80, 0.85); }
|
|
3451
|
+
|
|
3391
3452
|
/* ── DEV-5890: Question Type + stage threshold tags ────────────────────── */
|
|
3392
3453
|
.vos-pipe-tag {
|
|
3393
3454
|
font-size: 9px;
|
|
@@ -3404,13 +3465,15 @@ button.vos-verdict-title {
|
|
|
3404
3465
|
.vos-pipe-tag-needs { color: var(--vos-warn); border-color: var(--vos-warn); }
|
|
3405
3466
|
.vos-detail-tag-qt { border-color: var(--vos-accent); color: var(--vos-accent); }
|
|
3406
3467
|
|
|
3407
|
-
/* Stage-keyed
|
|
3408
|
-
|
|
3468
|
+
/* Stage-keyed evidence bar (assumption detail, DEV-5890) — a single
|
|
3469
|
+
Confidence bar that fills UP toward the stage's floor marker. The target
|
|
3470
|
+
zone above the marker is tinted to show "this is where you need to be."
|
|
3471
|
+
Maturity's marker is at 60% (hard to reach); Discovery's is at 10% (easy). */
|
|
3409
3472
|
.vos-threshold-bar-card {
|
|
3410
3473
|
padding: 14px 16px;
|
|
3411
3474
|
display: flex;
|
|
3412
3475
|
flex-direction: column;
|
|
3413
|
-
gap:
|
|
3476
|
+
gap: 10px;
|
|
3414
3477
|
}
|
|
3415
3478
|
|
|
3416
3479
|
.vos-threshold-bar-header {
|
|
@@ -3445,22 +3508,11 @@ button.vos-verdict-title {
|
|
|
3445
3508
|
border-radius: 4px;
|
|
3446
3509
|
}
|
|
3447
3510
|
|
|
3448
|
-
.vos-threshold-bar-good {
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
}
|
|
3452
|
-
|
|
3453
|
-
.vos-threshold-bar-warn {
|
|
3454
|
-
color: var(--vos-warn);
|
|
3455
|
-
background: var(--vos-warn-weak);
|
|
3456
|
-
}
|
|
3457
|
-
|
|
3458
|
-
.vos-threshold-bar-crit {
|
|
3459
|
-
color: var(--vos-crit);
|
|
3460
|
-
background: var(--vos-crit-weak);
|
|
3461
|
-
}
|
|
3511
|
+
.vos-threshold-bar-good { color: var(--vos-good); background: var(--vos-good-weak); }
|
|
3512
|
+
.vos-threshold-bar-warn { color: var(--vos-warn); background: var(--vos-warn-weak); }
|
|
3513
|
+
.vos-threshold-bar-crit { color: var(--vos-crit); background: var(--vos-crit-weak); }
|
|
3462
3514
|
|
|
3463
|
-
/*
|
|
3515
|
+
/* Bar section */
|
|
3464
3516
|
.vos-threshold-bar-section {
|
|
3465
3517
|
display: flex;
|
|
3466
3518
|
flex-direction: column;
|
|
@@ -3487,39 +3539,54 @@ button.vos-verdict-title {
|
|
|
3487
3539
|
margin-left: auto;
|
|
3488
3540
|
}
|
|
3489
3541
|
|
|
3490
|
-
/* The bar track */
|
|
3542
|
+
/* The bar track — taller for prominence */
|
|
3491
3543
|
.vos-threshold-bar-track {
|
|
3492
3544
|
position: relative;
|
|
3493
|
-
height:
|
|
3494
|
-
border-radius:
|
|
3545
|
+
height: 24px;
|
|
3546
|
+
border-radius: 6px;
|
|
3495
3547
|
background: var(--vos-surface-2);
|
|
3496
3548
|
overflow: visible;
|
|
3497
3549
|
border: 1px solid var(--vos-border);
|
|
3498
3550
|
}
|
|
3499
3551
|
|
|
3552
|
+
.vos-threshold-bar-track-tall {
|
|
3553
|
+
height: 28px;
|
|
3554
|
+
}
|
|
3555
|
+
|
|
3556
|
+
/* The target zone — tinted area above the floor marker (where you need to be) */
|
|
3557
|
+
.vos-threshold-bar-target-zone {
|
|
3558
|
+
position: absolute;
|
|
3559
|
+
top: 0;
|
|
3560
|
+
right: 0;
|
|
3561
|
+
bottom: 0;
|
|
3562
|
+
background: repeating-linear-gradient(
|
|
3563
|
+
45deg,
|
|
3564
|
+
transparent,
|
|
3565
|
+
transparent 4px,
|
|
3566
|
+
rgba(0, 0, 0, 0.03) 4px,
|
|
3567
|
+
rgba(0, 0, 0, 0.03) 8px
|
|
3568
|
+
);
|
|
3569
|
+
border-radius: 0 5px 5px 0;
|
|
3570
|
+
pointer-events: none;
|
|
3571
|
+
}
|
|
3572
|
+
|
|
3573
|
+
/* The fill */
|
|
3500
3574
|
.vos-threshold-bar-fill {
|
|
3501
3575
|
position: absolute;
|
|
3502
3576
|
top: 0;
|
|
3503
3577
|
left: 0;
|
|
3504
3578
|
height: 100%;
|
|
3505
|
-
border-radius:
|
|
3506
|
-
transition: width 0.
|
|
3507
|
-
opacity: 0.
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
.vos-threshold-bar-fill.vos-fill-good {
|
|
3511
|
-
background: var(--vos-good);
|
|
3512
|
-
}
|
|
3513
|
-
|
|
3514
|
-
.vos-threshold-bar-fill.vos-fill-warn {
|
|
3515
|
-
background: var(--vos-warn);
|
|
3579
|
+
border-radius: 5px 0 0 5px;
|
|
3580
|
+
transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1);
|
|
3581
|
+
opacity: 0.8;
|
|
3582
|
+
z-index: 1;
|
|
3516
3583
|
}
|
|
3517
3584
|
|
|
3518
|
-
.vos-threshold-bar-fill.vos-fill-
|
|
3519
|
-
|
|
3520
|
-
}
|
|
3585
|
+
.vos-threshold-bar-fill.vos-fill-good { background: var(--vos-good); }
|
|
3586
|
+
.vos-threshold-bar-fill.vos-fill-warn { background: var(--vos-warn); }
|
|
3587
|
+
.vos-threshold-bar-fill.vos-fill-crit { background: var(--vos-crit); }
|
|
3521
3588
|
|
|
3522
|
-
/* The
|
|
3589
|
+
/* The floor marker — a vertical dashed line with a label above */
|
|
3523
3590
|
.vos-threshold-bar-marker {
|
|
3524
3591
|
position: absolute;
|
|
3525
3592
|
top: -2px;
|
|
@@ -3530,6 +3597,46 @@ button.vos-verdict-title {
|
|
|
3530
3597
|
z-index: 2;
|
|
3531
3598
|
}
|
|
3532
3599
|
|
|
3600
|
+
.vos-threshold-bar-marker-label {
|
|
3601
|
+
position: absolute;
|
|
3602
|
+
top: -14px;
|
|
3603
|
+
left: 4px;
|
|
3604
|
+
font-size: 9px;
|
|
3605
|
+
font-weight: 600;
|
|
3606
|
+
color: var(--vos-muted);
|
|
3607
|
+
white-space: nowrap;
|
|
3608
|
+
}
|
|
3609
|
+
|
|
3610
|
+
/* Scale under the bar */
|
|
3611
|
+
.vos-threshold-bar-scale {
|
|
3612
|
+
display: flex;
|
|
3613
|
+
justify-content: space-between;
|
|
3614
|
+
font-size: 8px;
|
|
3615
|
+
color: var(--vos-faint);
|
|
3616
|
+
padding: 0 1px;
|
|
3617
|
+
}
|
|
3618
|
+
|
|
3619
|
+
.vos-threshold-bar-scale-mid {
|
|
3620
|
+
color: var(--vos-faint);
|
|
3621
|
+
}
|
|
3622
|
+
|
|
3623
|
+
/* Compact risk summary */
|
|
3624
|
+
.vos-threshold-bar-risk-summary {
|
|
3625
|
+
display: flex;
|
|
3626
|
+
align-items: baseline;
|
|
3627
|
+
gap: 8px;
|
|
3628
|
+
font-size: 11px;
|
|
3629
|
+
}
|
|
3630
|
+
|
|
3631
|
+
.vos-threshold-bar-risk-val {
|
|
3632
|
+
font-weight: 700;
|
|
3633
|
+
}
|
|
3634
|
+
|
|
3635
|
+
.vos-threshold-bar-risk-cap {
|
|
3636
|
+
color: var(--vos-muted);
|
|
3637
|
+
font-size: 10px;
|
|
3638
|
+
}
|
|
3639
|
+
|
|
3533
3640
|
.vos-threshold-bar-hint {
|
|
3534
3641
|
font-size: 11px;
|
|
3535
3642
|
color: var(--vos-muted);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@validation-os/dashboard",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.3",
|
|
4
4
|
"description": "React dashboard components + hooks for validation-os, consuming the DataProvider seam.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@validation-os/core": "0.16.
|
|
25
|
+
"@validation-os/core": "0.16.3"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|