@validation-os/dashboard 0.14.1 → 0.15.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/index.d.ts +71 -40
- package/dist/index.js +5659 -4266
- package/dist/index.js.map +1 -1
- package/dist/styles.css +182 -0
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -2867,3 +2867,185 @@ button.vos-verdict-title {
|
|
|
2867
2867
|
gap: 10px;
|
|
2868
2868
|
padding: 20px 22px;
|
|
2869
2869
|
}
|
|
2870
|
+
|
|
2871
|
+
/* ── DEV-5879 redesign: unified nav, pipeline board, evidence-first details ── */
|
|
2872
|
+
|
|
2873
|
+
/* Segmented toggle (Grid / View all) */
|
|
2874
|
+
.vos-seg { display: inline-flex; gap: 0; border: 1px solid var(--vos-border); border-radius: var(--vos-radius); overflow: hidden; }
|
|
2875
|
+
.vos-seg-btn { padding: 6px 14px; background: transparent; border: none; color: var(--vos-muted); font: inherit; cursor: pointer; border-right: 1px solid var(--vos-border); }
|
|
2876
|
+
.vos-seg-btn:last-child { border-right: none; }
|
|
2877
|
+
.vos-seg-btn.is-active { background: var(--vos-accent-weak); color: var(--vos-accent-text); }
|
|
2878
|
+
|
|
2879
|
+
/* Stage grid cell button (clean count, 1 for single) */
|
|
2880
|
+
.vos-stage-grid-cell { padding: 2px; }
|
|
2881
|
+
.vos-stage-grid-btn { width: 100%; min-height: 56px; border: none; border-radius: 6px; cursor: pointer; font-size: 16px; font-weight: 600; color: var(--vos-text); transition: background 0.15s; }
|
|
2882
|
+
.vos-stage-grid-btn:hover:not(:disabled) { filter: brightness(1.1); }
|
|
2883
|
+
.vos-stage-grid-btn:disabled { cursor: default; }
|
|
2884
|
+
.vos-heat-0 { background: var(--vos-surface); opacity: 0.4; color: var(--vos-muted); }
|
|
2885
|
+
.vos-heat-1 { background: color-mix(in srgb, var(--vos-accent) 18%, var(--vos-surface)); }
|
|
2886
|
+
.vos-heat-2 { background: color-mix(in srgb, var(--vos-accent) 32%, var(--vos-surface)); }
|
|
2887
|
+
.vos-heat-3 { background: color-mix(in srgb, var(--vos-accent) 48%, var(--vos-surface)); }
|
|
2888
|
+
.vos-heat-4 { background: color-mix(in srgb, var(--vos-accent) 65%, var(--vos-surface)); }
|
|
2889
|
+
|
|
2890
|
+
/* Pipeline board hero (board variant — compact) */
|
|
2891
|
+
.vos-pipe-hero-board { padding: 20px 24px; margin-bottom: 16px; }
|
|
2892
|
+
|
|
2893
|
+
/* 2-segment meter track (Framed + Known — drops Planned/Tested) */
|
|
2894
|
+
.vos-pipe-row-2seg { grid-template-columns: 4px 1fr 180px 90px !important; }
|
|
2895
|
+
.vos-pipe-prog-2seg { padding: 12px 0; }
|
|
2896
|
+
.vos-meter2 { display: flex; flex-direction: column; gap: 2px; }
|
|
2897
|
+
.vos-meter2-track { height: 16px; border-radius: 4px; background: var(--vos-surface-2); overflow: hidden; display: flex; }
|
|
2898
|
+
.vos-meter2-seg { flex: 1; position: relative; border-right: 1px solid var(--vos-border); overflow: hidden; }
|
|
2899
|
+
.vos-meter2-seg:last-child { border-right: none; }
|
|
2900
|
+
.vos-meter2-fill-accent { position: absolute; inset: 0; background: var(--vos-accent); opacity: 0.5; }
|
|
2901
|
+
.vos-meter2-fill-good { position: absolute; inset: 0; background: var(--vos-good); opacity: 0.6; }
|
|
2902
|
+
.vos-meter2-fill-warn { position: absolute; inset: 0; background: var(--vos-warn); opacity: 0.6; }
|
|
2903
|
+
.vos-meter2-fill-crit { position: absolute; inset: 0; background: var(--vos-crit); opacity: 0.6; }
|
|
2904
|
+
.vos-meter2-caps { display: flex; }
|
|
2905
|
+
.vos-meter2-cap { flex: 1; font-size: 8px; text-align: center; color: var(--vos-muted); }
|
|
2906
|
+
|
|
2907
|
+
/* Pipeline id + statement (compact row) */
|
|
2908
|
+
.vos-pipe-id { font-size: 9px; color: var(--vos-muted); display: block; }
|
|
2909
|
+
.vos-pipe-bmeta { display: flex; gap: 10px; font-size: 10px; color: var(--vos-muted); margin-top: 3px; }
|
|
2910
|
+
|
|
2911
|
+
/* Accent next-move button */
|
|
2912
|
+
.vos-btn-accent { background: var(--vos-accent); color: var(--vos-bg); border: none; font-weight: 600; }
|
|
2913
|
+
.vos-btn-accent:hover { filter: brightness(1.1); }
|
|
2914
|
+
|
|
2915
|
+
/* Recommended experiments section */
|
|
2916
|
+
.vos-pipe-recs { margin-top: 20px; padding: 16px; }
|
|
2917
|
+
.vos-pipe-recs-head { font-size: 11px; color: var(--vos-muted); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 12px; }
|
|
2918
|
+
.vos-pipe-recs-list { display: flex; flex-direction: column; gap: 8px; }
|
|
2919
|
+
.vos-pipe-rec { padding: 14px; border: 1px solid var(--vos-border); border-radius: 10px; background: var(--vos-surface); }
|
|
2920
|
+
.vos-pipe-rec-head { display: flex; gap: 8px; align-items: baseline; margin-bottom: 8px; }
|
|
2921
|
+
.vos-pipe-rec-type { font-size: 9px; padding: 1px 6px; border-radius: 4px; background: var(--vos-accent-weak); color: var(--vos-accent-text); }
|
|
2922
|
+
.vos-pipe-rec-title { flex: 1; font-size: 13px; color: var(--vos-text); font-weight: 500; }
|
|
2923
|
+
.vos-pipe-rec-chips { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; }
|
|
2924
|
+
.vos-pipe-rec-chip { font-size: 9px; padding: 2px 8px; border-radius: 4px; background: var(--vos-surface-2); border: 1px solid var(--vos-border); color: var(--vos-text); cursor: pointer; }
|
|
2925
|
+
.vos-pipe-rec-chip:hover { border-color: var(--vos-accent); }
|
|
2926
|
+
.vos-pipe-rec-rationale { font-size: 11px; color: var(--vos-muted); line-height: 1.5; margin-bottom: 6px; }
|
|
2927
|
+
.vos-pipe-rec-bar { font-size: 10px; color: var(--vos-muted); padding: 4px 8px; background: var(--vos-surface-2); border-radius: 4px; border-left: 3px solid var(--vos-good); }
|
|
2928
|
+
.vos-pipe-rec-bar strong { color: var(--vos-good); }
|
|
2929
|
+
|
|
2930
|
+
/* Breadcrumb */
|
|
2931
|
+
.vos-crumb { display: flex; gap: 6px; font-size: 11px; margin-bottom: 12px; color: var(--vos-muted); }
|
|
2932
|
+
.vos-crumb-item { display: flex; gap: 6px; align-items: center; }
|
|
2933
|
+
.vos-crumb-sep { color: var(--vos-border); }
|
|
2934
|
+
.vos-crumb-link { background: none; border: none; cursor: pointer; color: var(--vos-muted); padding: 0; font: inherit; }
|
|
2935
|
+
.vos-crumb-link:hover { color: var(--vos-accent); }
|
|
2936
|
+
.vos-crumb-current { color: var(--vos-text); font-weight: 600; }
|
|
2937
|
+
|
|
2938
|
+
/* List surfaces (experiments / readings) */
|
|
2939
|
+
.vos-list-card { display: flex; flex-direction: column; gap: 4px; padding: 8px; }
|
|
2940
|
+
.vos-list-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--vos-surface-2); border: 1px solid var(--vos-border); border-radius: 6px; cursor: pointer; text-align: left; width: 100%; color: var(--vos-text); font: inherit; }
|
|
2941
|
+
.vos-list-row:hover { border-color: var(--vos-accent); }
|
|
2942
|
+
.vos-list-row-date { font-size: 9px; color: var(--vos-muted); min-width: 80px; }
|
|
2943
|
+
.vos-list-row-title { flex: 1; font-size: 12px; font-weight: 500; }
|
|
2944
|
+
.vos-list-row-meta { font-size: 10px; color: var(--vos-muted); }
|
|
2945
|
+
|
|
2946
|
+
/* Detail head (id + tags) */
|
|
2947
|
+
.vos-detail-head { display: flex; gap: 8px; align-items: baseline; margin-bottom: 8px; }
|
|
2948
|
+
.vos-detail-id { font-size: 11px; color: var(--vos-muted); }
|
|
2949
|
+
.vos-detail-tag { font-size: 9px; color: var(--vos-muted); padding: 1px 6px; border: 1px solid var(--vos-border); border-radius: 4px; }
|
|
2950
|
+
.vos-detail-title { font-size: 16px; color: var(--vos-text); font-weight: 600; margin-bottom: 16px; }
|
|
2951
|
+
|
|
2952
|
+
/* Next-move panel (accent-bordered, prominent) */
|
|
2953
|
+
.vos-next-move { padding: 14px; margin-bottom: 16px; border-left: 3px solid var(--vos-accent); }
|
|
2954
|
+
.vos-next-move-label { font-size: 10px; color: var(--vos-muted); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 4px; }
|
|
2955
|
+
.vos-next-move-text { font-size: 14px; color: var(--vos-accent-text); font-weight: 500; }
|
|
2956
|
+
|
|
2957
|
+
/* Score cards (4 in a row) */
|
|
2958
|
+
.vos-score-cards { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
|
|
2959
|
+
.vos-score-card { flex: 1; min-width: 100px; padding: 12px; text-align: center; background: var(--vos-surface); border: 1px solid var(--vos-border); border-radius: 10px; }
|
|
2960
|
+
.vos-score-value { font-size: 22px; font-weight: 700; color: var(--vos-text); }
|
|
2961
|
+
.vos-score-label { font-size: 10px; color: var(--vos-muted); }
|
|
2962
|
+
|
|
2963
|
+
/* Detail sections */
|
|
2964
|
+
.vos-detail-section { padding: 14px; margin-bottom: 16px; }
|
|
2965
|
+
.vos-detail-section-label { font-size: 11px; color: var(--vos-muted); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 8px; }
|
|
2966
|
+
|
|
2967
|
+
/* Evidence composition (per-rung bars) */
|
|
2968
|
+
.vos-comp-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
|
|
2969
|
+
.vos-comp-rung { width: 90px; font-size: 10px; color: var(--vos-text); }
|
|
2970
|
+
.vos-comp-rung.is-empty { color: var(--vos-muted); }
|
|
2971
|
+
.vos-comp-bar { flex: 1; height: 10px; background: var(--vos-surface-2); border-radius: 5px; overflow: hidden; }
|
|
2972
|
+
.vos-comp-fill { display: block; height: 100%; background: var(--vos-accent); border-radius: 5px; }
|
|
2973
|
+
.vos-comp-val { width: 60px; text-align: right; font-size: 10px; color: var(--vos-muted); }
|
|
2974
|
+
.vos-comp-count { width: 40px; font-size: 9px; color: var(--vos-muted); }
|
|
2975
|
+
|
|
2976
|
+
/* Relations */
|
|
2977
|
+
.vos-rel-group { margin-bottom: 10px; }
|
|
2978
|
+
.vos-rel-kind { font-size: 10px; font-weight: 600; margin-bottom: 4px; }
|
|
2979
|
+
.vos-rel-kind-depends { color: var(--vos-accent-text); }
|
|
2980
|
+
.vos-rel-kind-enables { color: var(--vos-good); }
|
|
2981
|
+
.vos-rel-kind-contradicts { color: var(--vos-crit); }
|
|
2982
|
+
.vos-rel-type { margin-bottom: 4px; }
|
|
2983
|
+
.vos-rel-type-label { font-size: 9px; color: var(--vos-muted); margin-bottom: 2px; }
|
|
2984
|
+
.vos-rel-row { display: flex; gap: 6px; align-items: center; text-align: left; background: var(--vos-surface-2); border: 1px solid var(--vos-border); border-radius: 4px; padding: 4px 8px; cursor: pointer; width: 100%; margin-bottom: 2px; font-size: 11px; color: var(--vos-text); }
|
|
2985
|
+
.vos-rel-row:disabled { cursor: default; }
|
|
2986
|
+
.vos-rel-row:not(:disabled):hover { border-color: var(--vos-accent); }
|
|
2987
|
+
.vos-rel-id { font-size: 9px; color: var(--vos-muted); }
|
|
2988
|
+
.vos-rel-title { flex: 1; }
|
|
2989
|
+
.vos-rel-tag { font-size: 8px; color: var(--vos-muted); padding: 1px 4px; border: 1px solid var(--vos-border); border-radius: 3px; }
|
|
2990
|
+
|
|
2991
|
+
/* Linked rows (experiments + readings on assumption detail) */
|
|
2992
|
+
.vos-linked-row { display: flex; gap: 8px; align-items: center; text-align: left; background: var(--vos-surface-2); border: 1px solid var(--vos-border); border-radius: 6px; padding: 10px; cursor: pointer; width: 100%; margin-bottom: 6px; font: inherit; color: var(--vos-text); }
|
|
2993
|
+
.vos-linked-row:hover { border-color: var(--vos-accent); }
|
|
2994
|
+
.vos-linked-gauge { font-size: 16px; font-weight: 700; min-width: 32px; text-align: center; }
|
|
2995
|
+
.vos-linked-title { flex: 1; font-size: 12px; }
|
|
2996
|
+
.vos-linked-bar { font-size: 9px; color: var(--vos-muted); }
|
|
2997
|
+
.vos-linked-bar strong { color: var(--vos-good); }
|
|
2998
|
+
|
|
2999
|
+
/* Reading head + excerpt */
|
|
3000
|
+
.vos-reading-head { display: flex; gap: 8px; align-items: baseline; margin-bottom: 4px; }
|
|
3001
|
+
.vos-reading-date { font-size: 9px; color: var(--vos-muted); }
|
|
3002
|
+
.vos-reading-title { flex: 1; font-size: 12px; font-weight: 500; }
|
|
3003
|
+
.vos-reading-source { font-size: 9px; color: var(--vos-muted); }
|
|
3004
|
+
.vos-reading-excerpt { padding: 4px 8px; border-left: 3px solid var(--vos-border); background: var(--vos-surface); border-radius: 0 4px 4px 0; font-style: italic; font-size: 11px; color: var(--vos-text); margin: 4px 0; }
|
|
3005
|
+
.vos-verdict-border-good { border-left-color: var(--vos-good); }
|
|
3006
|
+
.vos-verdict-border-crit { border-left-color: var(--vos-crit); }
|
|
3007
|
+
.vos-verdict-border-neutral { border-left-color: var(--vos-border); }
|
|
3008
|
+
.vos-rung-tag { font-size: 8px; color: var(--vos-muted); padding: 1px 5px; background: var(--vos-surface-2); border-radius: 3px; }
|
|
3009
|
+
.vos-link { color: var(--vos-accent-text); cursor: pointer; background: none; border: none; font: inherit; padding: 0; }
|
|
3010
|
+
|
|
3011
|
+
/* Experiment detail: confidence gauge + coverage */
|
|
3012
|
+
.vos-exp-head { display: flex; gap: 16px; margin-bottom: 16px; padding: 12px; }
|
|
3013
|
+
.vos-exp-gauge { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 100px; }
|
|
3014
|
+
.vos-gauge-num { font-size: 32px; font-weight: 700; color: var(--vos-text); }
|
|
3015
|
+
.vos-gauge-label { font-size: 9px; color: var(--vos-muted); text-align: center; }
|
|
3016
|
+
.vos-exp-coverage { flex: 1; }
|
|
3017
|
+
.vos-coverage-label { font-size: 11px; color: var(--vos-muted); margin-bottom: 6px; }
|
|
3018
|
+
.vos-coverage-bar { height: 10px; background: var(--vos-surface-2); border-radius: 5px; overflow: hidden; display: flex; }
|
|
3019
|
+
.vos-coverage-good { background: var(--vos-good); height: 100%; }
|
|
3020
|
+
.vos-coverage-crit { background: var(--vos-crit); height: 100%; }
|
|
3021
|
+
.vos-coverage-warn { background: var(--vos-warn); height: 100%; opacity: 0.5; }
|
|
3022
|
+
.vos-coverage-empty { background: var(--vos-surface); height: 100%; }
|
|
3023
|
+
.vos-coverage-legend { display: flex; gap: 10px; font-size: 9px; color: var(--vos-muted); margin-top: 4px; }
|
|
3024
|
+
.vos-dot-good, .vos-dot-crit, .vos-dot-warn, .vos-dot-empty { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; }
|
|
3025
|
+
.vos-dot-good { background: var(--vos-good); }
|
|
3026
|
+
.vos-dot-crit { background: var(--vos-crit); }
|
|
3027
|
+
.vos-dot-warn { background: var(--vos-warn); }
|
|
3028
|
+
.vos-dot-empty { background: var(--vos-surface-2); border: 1px solid var(--vos-border); }
|
|
3029
|
+
|
|
3030
|
+
/* Reading card (in experiment detail) */
|
|
3031
|
+
.vos-reading-card { padding: 12px; margin-bottom: 8px; background: var(--vos-surface-2); border-radius: 8px; border: 1px solid var(--vos-border); }
|
|
3032
|
+
.vos-reading-quotes { margin: 4px 0; display: flex; flex-direction: column; gap: 4px; }
|
|
3033
|
+
.vos-reading-quote { padding: 4px 8px; border-left: 3px solid var(--vos-border); background: var(--vos-surface); border-radius: 0 4px 4px 0; font-style: italic; font-size: 11px; color: var(--vos-text); }
|
|
3034
|
+
.vos-reading-quote-id { font-style: normal; font-size: 9px; color: var(--vos-muted); }
|
|
3035
|
+
.vos-reading-beliefs-label { font-size: 10px; color: var(--vos-muted); margin-bottom: 4px; }
|
|
3036
|
+
|
|
3037
|
+
/* Belief card (per-belief verdict) */
|
|
3038
|
+
.vos-belief-card { padding: 8px; margin-bottom: 4px; background: var(--vos-surface); border-radius: 6px; border: 1px solid var(--vos-border); }
|
|
3039
|
+
.vos-belief-head { display: flex; gap: 6px; align-items: baseline; margin-bottom: 4px; }
|
|
3040
|
+
.vos-belief-id { background: none; border: none; cursor: pointer; font-size: 10px; color: var(--vos-accent-text); padding: 0; font-family: var(--vos-mono); }
|
|
3041
|
+
.vos-belief-id:hover { text-decoration: underline; }
|
|
3042
|
+
.vos-belief-title { flex: 1; font-size: 11px; color: var(--vos-text); }
|
|
3043
|
+
.vos-belief-bar { font-size: 9px; color: var(--vos-muted); margin-top: 4px; padding-left: 8px; border-left: 2px solid var(--vos-border); }
|
|
3044
|
+
.vos-belief-bar-label { font-size: 8px; color: var(--vos-muted); text-transform: uppercase; letter-spacing: 0.3px; margin-bottom: 2px; }
|
|
3045
|
+
.vos-belief-bar strong { color: var(--vos-good); }
|
|
3046
|
+
.vos-belief-why { font-size: 10px; color: var(--vos-muted); margin-top: 4px; }
|
|
3047
|
+
.vos-belief-excerpt { padding: 6px 10px; border-left: 3px solid var(--vos-border); background: var(--vos-surface); border-radius: 0 4px 4px 0; margin: 4px 0 6px; font-style: italic; font-size: 12px; color: var(--vos-text); }
|
|
3048
|
+
|
|
3049
|
+
/* Unstarted bars section */
|
|
3050
|
+
.vos-unstarted { border-style: dashed; }
|
|
3051
|
+
.vos-unstarted-bar { padding: 8px; margin-bottom: 4px; background: var(--vos-surface-2); border-radius: 6px; border: 1px dashed var(--vos-border); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@validation-os/dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.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.
|
|
25
|
+
"@validation-os/core": "0.15.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|