@validation-os/dashboard 0.11.0 → 0.12.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
@@ -2488,8 +2488,12 @@ textarea.vos-input {
2488
2488
  /* Markdown prose (a reading's quote / an experiment's narrative). */
2489
2489
  .vos-md {
2490
2490
  font-size: 14px;
2491
- line-height: 1.55;
2491
+ /* Roomy leading: this prose is often long, and light-on-dark reads lighter,
2492
+ so it wants more breathing room than a UI label (typography.md). */
2493
+ line-height: 1.65;
2492
2494
  color: var(--vos-text);
2495
+ /* A comfortable measure — long lines are the hardest thing to scan. */
2496
+ max-width: 68ch;
2493
2497
  }
2494
2498
  .vos-md > :first-child {
2495
2499
  margin-top: 0;
@@ -2497,15 +2501,32 @@ textarea.vos-input {
2497
2501
  .vos-md > :last-child {
2498
2502
  margin-bottom: 0;
2499
2503
  }
2504
+ /* Vertical rhythm keyed to the line-height: paragraph gaps are ~0.85em, the
2505
+ space *above* a heading is larger than below it so a section reads as owned
2506
+ by the heading that opens it (hierarchy through space, not size alone). */
2500
2507
  .vos-md p {
2501
- margin: 0 0 8px;
2508
+ margin: 0 0 0.85em;
2502
2509
  }
2503
2510
  .vos-md h3,
2504
2511
  .vos-md h4,
2505
2512
  .vos-md h5,
2506
2513
  .vos-md h6 {
2507
- margin: 12px 0 6px;
2514
+ margin: 1.5em 0 0.5em;
2508
2515
  line-height: 1.3;
2516
+ font-weight: 600;
2517
+ }
2518
+ .vos-md h3 {
2519
+ font-size: 15px;
2520
+ }
2521
+ .vos-md h4 {
2522
+ font-size: 14px;
2523
+ }
2524
+ .vos-md h5,
2525
+ .vos-md h6 {
2526
+ font-size: 12px;
2527
+ text-transform: uppercase;
2528
+ letter-spacing: 0.04em;
2529
+ color: var(--vos-muted);
2509
2530
  }
2510
2531
  .vos-md a {
2511
2532
  color: var(--vos-accent-text);
@@ -2525,57 +2546,163 @@ textarea.vos-input {
2525
2546
  border-radius: var(--vos-radius);
2526
2547
  padding: 10px 12px;
2527
2548
  overflow-x: auto;
2528
- margin: 0 0 8px;
2549
+ margin: 0 0 0.85em;
2529
2550
  }
2530
2551
  .vos-md pre.vos-md-pre code {
2531
2552
  background: none;
2532
2553
  padding: 0;
2533
2554
  }
2534
2555
  .vos-md blockquote.vos-md-quote {
2535
- margin: 0 0 8px;
2536
- padding-left: 12px;
2556
+ margin: 0.85em 0;
2557
+ padding: 2px 0 2px 14px;
2537
2558
  border-left: 3px solid var(--vos-border-strong);
2538
2559
  color: var(--vos-muted);
2539
2560
  }
2540
2561
  .vos-md ul.vos-md-ul,
2541
2562
  .vos-md ol.vos-md-ol {
2542
- margin: 0 0 8px;
2543
- padding-left: 20px;
2563
+ margin: 0 0 0.85em;
2564
+ padding-left: 22px;
2544
2565
  }
2545
2566
  .vos-md li {
2546
- margin: 2px 0;
2567
+ margin: 3px 0;
2568
+ }
2569
+ .vos-md li::marker {
2570
+ color: var(--vos-faint);
2571
+ }
2572
+ .vos-md-hr {
2573
+ border: none;
2574
+ border-top: 1px solid var(--vos-border);
2575
+ margin: 1.5em 0;
2576
+ }
2577
+
2578
+ /* ── Evidence body: a merged reading split into scannable findings ───────── */
2579
+ .vos-evidence {
2580
+ display: flex;
2581
+ flex-direction: column;
2582
+ gap: 12px;
2583
+ align-items: flex-start;
2584
+ }
2585
+ .vos-evidence-parts {
2586
+ list-style: none;
2587
+ margin: 0;
2588
+ padding: 0;
2589
+ width: 100%;
2590
+ display: flex;
2591
+ flex-direction: column;
2592
+ gap: 12px;
2593
+ }
2594
+ .vos-evidence-part {
2595
+ padding: 12px 14px;
2596
+ border: 1px solid var(--vos-border);
2597
+ border-radius: var(--vos-radius);
2598
+ background: var(--vos-surface);
2599
+ }
2600
+ .vos-evidence-n {
2601
+ display: block;
2602
+ margin-bottom: 8px;
2603
+ font-size: 11px;
2604
+ font-weight: 600;
2605
+ text-transform: uppercase;
2606
+ letter-spacing: 0.05em;
2607
+ color: var(--vos-faint);
2608
+ }
2609
+ .vos-evidence-of {
2610
+ font-weight: 400;
2611
+ text-transform: none;
2612
+ letter-spacing: 0;
2547
2613
  }
2548
2614
 
2549
- /* Per-belief verdict list on a reading (modelled on the bar-line list). */
2615
+ /* ── Per-belief verdicts: the reading detail's centrepiece ───────────────── */
2616
+ .vos-verdicts-wrap {
2617
+ display: flex;
2618
+ flex-direction: column;
2619
+ gap: 12px;
2620
+ }
2621
+ /* The one-line tally that leads the list: total, then each non-zero outcome
2622
+ toned and dot-marked so the verdict mix reads at a glance. */
2623
+ .vos-verdict-tally {
2624
+ display: flex;
2625
+ flex-wrap: wrap;
2626
+ align-items: baseline;
2627
+ gap: 6px 14px;
2628
+ margin: 0;
2629
+ font-size: 13px;
2630
+ }
2631
+ .vos-tally-total {
2632
+ font-weight: 600;
2633
+ color: var(--vos-text);
2634
+ }
2635
+ .vos-tally-part {
2636
+ position: relative;
2637
+ padding-left: 15px;
2638
+ }
2639
+ .vos-tally-part::before {
2640
+ content: "";
2641
+ position: absolute;
2642
+ left: 0;
2643
+ top: 50%;
2644
+ transform: translateY(-50%);
2645
+ width: 7px;
2646
+ height: 7px;
2647
+ border-radius: 50%;
2648
+ background: currentColor;
2649
+ }
2650
+ .vos-tally-good {
2651
+ color: var(--vos-good);
2652
+ }
2653
+ .vos-tally-neutral {
2654
+ color: var(--vos-muted);
2655
+ }
2656
+ .vos-tally-crit {
2657
+ color: var(--vos-crit);
2658
+ }
2550
2659
  .vos-verdicts {
2551
2660
  list-style: none;
2552
2661
  margin: 0;
2553
2662
  padding: 0;
2554
2663
  display: flex;
2555
2664
  flex-direction: column;
2556
- gap: 8px;
2665
+ gap: 10px;
2557
2666
  }
2558
2667
  .vos-verdict {
2559
2668
  border: 1px solid var(--vos-border);
2669
+ /* A colour rail carries the verdict before a word is read. */
2670
+ border-left: 3px solid var(--vos-border-strong);
2560
2671
  border-radius: var(--vos-radius);
2561
- padding: 8px 10px;
2672
+ padding: 12px 14px;
2562
2673
  background: var(--vos-surface);
2563
2674
  }
2675
+ .vos-verdict.is-good {
2676
+ border-left-color: var(--vos-good);
2677
+ }
2678
+ .vos-verdict.is-crit {
2679
+ border-left-color: var(--vos-crit);
2680
+ }
2681
+ .vos-verdict.is-neutral {
2682
+ border-left-color: var(--vos-border-strong);
2683
+ }
2564
2684
  .vos-verdict-head {
2565
2685
  display: flex;
2566
2686
  align-items: center;
2567
2687
  justify-content: space-between;
2568
- gap: 8px;
2688
+ gap: 10px;
2569
2689
  }
2570
2690
  .vos-verdict-title {
2571
2691
  font-weight: 600;
2692
+ font-size: 14px;
2693
+ }
2694
+ span.vos-verdict-title {
2695
+ color: var(--vos-text);
2696
+ }
2697
+ button.vos-verdict-title {
2698
+ text-align: left;
2572
2699
  }
2573
2700
  .vos-verdict-meta {
2574
2701
  display: flex;
2575
2702
  align-items: center;
2576
2703
  flex-wrap: wrap;
2577
2704
  gap: 6px;
2578
- margin-top: 4px;
2705
+ margin-top: 8px;
2579
2706
  }
2580
2707
  .vos-verdict-strength {
2581
2708
  font-family: var(--vos-mono);
@@ -2583,8 +2710,11 @@ textarea.vos-input {
2583
2710
  color: var(--vos-muted);
2584
2711
  }
2585
2712
  .vos-verdict-why {
2586
- margin: 6px 0 0;
2713
+ margin: 10px 0 0;
2714
+ padding-left: 12px;
2715
+ border-left: 2px solid var(--vos-border);
2587
2716
  font-size: 13px;
2717
+ line-height: 1.6;
2588
2718
  color: var(--vos-muted);
2589
2719
  }
2590
2720
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@validation-os/dashboard",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
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.11.0"
25
+ "@validation-os/core": "0.12.0"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": ">=18",