@validation-os/dashboard 0.15.2 → 0.15.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/styles.css CHANGED
@@ -2937,8 +2937,8 @@ button.vos-verdict-title {
2937
2937
  .vos-crumb-link:hover { color: var(--vos-accent); }
2938
2938
  .vos-crumb-current { color: var(--vos-text); font-weight: 600; }
2939
2939
 
2940
- /* List surfaces (experiments / readings). Standardized 14px padding. */
2941
- .vos-list-card { display: flex; flex-direction: column; gap: 4px; padding: 14px; }
2940
+ /* List surfaces (experiments / readings). Standardized 14px padding, 8px row gap. */
2941
+ .vos-list-card { display: flex; flex-direction: column; gap: 8px; padding: 14px; }
2942
2942
  .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; transition: border-color 0.15s; }
2943
2943
  .vos-list-row:hover { border-color: var(--vos-accent); }
2944
2944
  .vos-list-row-date { font-size: 9px; color: var(--vos-muted); min-width: 80px; }
@@ -2969,17 +2969,17 @@ button.vos-verdict-title {
2969
2969
  .vos-detail-section-label { font-size: 11px; color: var(--vos-muted); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 8px; }
2970
2970
 
2971
2971
  /* Evidence composition (per-rung bars). Rung label shrinks on narrow screens;
2972
- value + count fixed so columns align; row wraps gracefully under ~360px. */
2973
- .vos-comp-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: nowrap; }
2972
+ value + count fixed so columns align; row wraps gracefully under ~360px. */
2973
+ .vos-comp-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: nowrap; }
2974
2974
  .vos-comp-rung { width: 90px; flex-shrink: 0; font-size: 10px; color: var(--vos-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2975
2975
  .vos-comp-rung.is-empty { color: var(--vos-muted); }
2976
2976
  .vos-comp-bar { flex: 1 1 80px; min-width: 60px; height: 10px; background: var(--vos-surface-2); border-radius: 5px; overflow: hidden; }
2977
2977
  .vos-comp-fill { display: block; height: 100%; background: var(--vos-accent); border-radius: 5px; }
2978
2978
  .vos-comp-val { width: 70px; flex-shrink: 0; text-align: right; font-size: 10px; color: var(--vos-muted); }
2979
- .vos-comp-count { width: 40px; flex-shrink: 0; font-size: 9px; color: var(--vos-muted); }
2979
+ .vos-comp-count { width: 52px; flex-shrink: 0; font-size: 9px; color: var(--vos-muted); }
2980
2980
 
2981
2981
  /* Relations */
2982
- .vos-rel-group { margin-bottom: 10px; }
2982
+ .vos-rel-group { margin-bottom: 12px; }
2983
2983
  .vos-rel-kind { font-size: 10px; font-weight: 600; margin-bottom: 4px; }
2984
2984
  .vos-rel-kind-depends { color: var(--vos-accent-text); }
2985
2985
  .vos-rel-kind-enables { color: var(--vos-good); }
@@ -2993,8 +2993,8 @@ button.vos-verdict-title {
2993
2993
  .vos-rel-title { flex: 1; }
2994
2994
  .vos-rel-tag { font-size: 8px; color: var(--vos-muted); padding: 1px 4px; border: 1px solid var(--vos-border); border-radius: 3px; }
2995
2995
 
2996
- /* Linked rows (experiments + readings on assumption detail). 14px padding. */
2997
- .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: 14px; cursor: pointer; width: 100%; margin-bottom: 6px; font: inherit; color: var(--vos-text); transition: border-color 0.15s; }
2996
+ /* Linked rows (experiments + readings on assumption detail). 10px 12px padding matches list rows. */
2997
+ .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 12px; cursor: pointer; width: 100%; margin-bottom: 8px; font: inherit; color: var(--vos-text); transition: border-color 0.15s; }
2998
2998
  .vos-linked-row:hover { border-color: var(--vos-accent); }
2999
2999
  .vos-linked-gauge { font-size: 16px; font-weight: 700; min-width: 32px; text-align: center; }
3000
3000
  .vos-linked-title { flex: 1; font-size: 12px; }
@@ -3074,14 +3074,172 @@ button.vos-verdict-title {
3074
3074
  .vos-reading-collapse { border: 1px solid var(--vos-border); border-radius: 8px; margin-bottom: 8px; background: var(--vos-surface-2); overflow: hidden; transition: border-color 0.15s; }
3075
3075
  .vos-reading-collapse:hover { border-color: var(--vos-border-strong); }
3076
3076
  .vos-reading-collapse[open] { border-color: var(--vos-border-strong); }
3077
- .vos-reading-collapse > summary { display: flex; gap: 12px; align-items: center; padding: 14px 16px; cursor: pointer; list-style: none; user-select: none; transition: background 0.15s; }
3077
+ .vos-reading-collapse > summary { display: flex; gap: 12px; align-items: center; padding: 14px; cursor: pointer; list-style: none; user-select: none; transition: background 0.15s; }
3078
3078
  .vos-reading-collapse > summary::-webkit-details-marker { display: none; }
3079
- .vos-reading-collapse > summary::before { content: "▸"; color: var(--vos-muted); font-size: 10px; transition: transform 0.15s; flex-shrink: 0; }
3079
+ .vos-reading-collapse > summary::before { content: "▸"; color: var(--vos-muted); font-size: 10px; transition: transform 0.15s; flex-shrink: 0; display: inline-flex; align-items: center; }
3080
3080
  .vos-reading-collapse[open] > summary::before { transform: rotate(90deg); }
3081
3081
  .vos-reading-collapse > summary:hover { background: var(--vos-surface); }
3082
3082
  .vos-reading-card-summary { display: flex; gap: 12px; align-items: center; width: 100%; min-width: 0; }
3083
3083
  .vos-reading-beliefs-count { font-size: 10px; color: var(--vos-muted); margin-left: auto; flex-shrink: 0; }
3084
- .vos-reading-card-body { padding: 0 16px 14px; }
3084
+ .vos-reading-card-body { padding: 0 14px 14px; }
3085
3085
 
3086
- /* Evidence composition — fix the value display (signed contributions) */
3087
- .vos-comp-val { width: 70px; }
3086
+ /* Evidence composition — fix the value display (signed contributions).
3087
+ Width is set on the primary .vos-comp-val rule above; no override needed. */
3088
+
3089
+ /* ── DEV-5879: confidence explainer + grading rationale labels ── */
3090
+
3091
+ /* Grading rationale (NOT a quote — the grader's reason for the score) */
3092
+ .vos-reading-rationale, .vos-belief-rationale {
3093
+ padding: 6px 10px;
3094
+ border-left: 3px solid var(--vos-border);
3095
+ background: var(--vos-surface);
3096
+ border-radius: 0 4px 4px 0;
3097
+ margin: 4px 0 6px;
3098
+ font-size: 11px;
3099
+ color: var(--vos-text);
3100
+ }
3101
+ .vos-reading-rationale { margin: 4px 0; }
3102
+ .vos-belief-rationale { margin: 4px 0 6px; }
3103
+ .vos-belief-rationale-label, .vos-reading-rationale-label {
3104
+ font-size: 9px;
3105
+ color: var(--vos-muted);
3106
+ text-transform: uppercase;
3107
+ letter-spacing: 0.3px;
3108
+ margin-right: 6px;
3109
+ }
3110
+
3111
+ /* Confidence explainer (collapsible) */
3112
+ .vos-explainer { border: 1px solid var(--vos-border); }
3113
+ .vos-explainer-summary {
3114
+ display: flex;
3115
+ align-items: center;
3116
+ justify-content: space-between;
3117
+ padding: 14px;
3118
+ cursor: pointer;
3119
+ list-style: none;
3120
+ user-select: none;
3121
+ }
3122
+ .vos-explainer-summary::-webkit-details-marker { display: none; }
3123
+ .vos-explainer-summary::before { content: "▸"; color: var(--vos-muted); font-size: 10px; margin-right: 12px; transition: transform 0.15s; display: inline-flex; align-items: center; }
3124
+ .vos-explainer[open] > .vos-explainer-summary::before { transform: rotate(90deg); }
3125
+ .vos-explainer-conf { font-size: 18px; font-weight: 700; }
3126
+ .vos-explainer-body { padding: 0 14px 14px; }
3127
+ .vos-explainer-formula {
3128
+ font-family: var(--vos-mono);
3129
+ font-size: 12px;
3130
+ color: var(--vos-accent-text);
3131
+ background: var(--vos-surface-2);
3132
+ padding: 8px 12px;
3133
+ border-radius: 6px;
3134
+ margin-bottom: 12px;
3135
+ }
3136
+ .vos-explainer-summary-text { font-size: 13px; color: var(--vos-text); margin-bottom: 16px; line-height: 1.5; }
3137
+ .vos-explainer-rungs { border: 1px solid var(--vos-border); border-radius: 6px; overflow: hidden; margin-bottom: 16px; }
3138
+ .vos-explainer-rungs-head, .vos-explainer-rung {
3139
+ display: grid;
3140
+ grid-template-columns: 1.5fr 0.8fr 1fr 1fr 0.8fr;
3141
+ gap: 8px;
3142
+ padding: 10px 12px;
3143
+ font-size: 11px;
3144
+ align-items: center;
3145
+ }
3146
+ .vos-explainer-rungs-head {
3147
+ background: var(--vos-surface-2);
3148
+ color: var(--vos-muted);
3149
+ font-weight: 600;
3150
+ text-transform: uppercase;
3151
+ letter-spacing: 0.3px;
3152
+ font-size: 9px;
3153
+ padding: 8px 12px;
3154
+ }
3155
+ .vos-explainer-rung { border-top: 1px solid var(--vos-border); }
3156
+ .vos-explainer-rung.is-not-lens { opacity: 0.5; }
3157
+ .vos-explainer-rung.has-evidence { background: var(--vos-surface); }
3158
+ .vos-explainer-rung-name { font-weight: 500; color: var(--vos-text); }
3159
+ .vos-explainer-rung-w0, .vos-explainer-rung-anchors, .vos-explainer-rung-count { color: var(--vos-muted); }
3160
+ .vos-explainer-rung-contrib { font-weight: 600; text-align: right; }
3161
+ .vos-explainer-foot { font-size: 11px; color: var(--vos-muted); line-height: 1.6; }
3162
+ .vos-explainer-foot p { margin-bottom: 8px; }
3163
+ .vos-explainer-foot strong { color: var(--vos-text); }
3164
+
3165
+ /* Recommended experiment cards — expandable with body + accept inside */
3166
+ .vos-pipe-rec { overflow: hidden; }
3167
+ .vos-pipe-rec-body {
3168
+ padding: 12px 14px 14px;
3169
+ border-top: 1px solid var(--vos-border);
3170
+ background: var(--vos-surface);
3171
+ font-size: 12px;
3172
+ color: var(--vos-text);
3173
+ line-height: 1.6;
3174
+ }
3175
+ .vos-pipe-rec-body h2 { font-size: 13px; font-weight: 600; margin: 12px 0 4px; color: var(--vos-text); }
3176
+ .vos-pipe-rec-body h2:first-child { margin-top: 0; }
3177
+ .vos-pipe-rec-body p { margin-bottom: 8px; }
3178
+ .vos-pipe-rec-body ul { padding-left: 18px; margin-bottom: 8px; }
3179
+ .vos-pipe-rec-body li { margin-bottom: 4px; }
3180
+ .vos-pipe-rec-expand {
3181
+ background: none;
3182
+ border: none;
3183
+ cursor: pointer;
3184
+ color: var(--vos-accent-text);
3185
+ font-size: 11px;
3186
+ padding: 4px 0;
3187
+ margin-top: 6px;
3188
+ }
3189
+
3190
+ /* ── DEV-5879: Next moves two-column section ── */
3191
+
3192
+ .vos-next-moves { margin-top: 16px; }
3193
+ .vos-next-moves-head {
3194
+ font-size: 11px;
3195
+ color: var(--vos-muted);
3196
+ text-transform: uppercase;
3197
+ letter-spacing: 0.4px;
3198
+ margin-bottom: 12px;
3199
+ font-weight: 600;
3200
+ }
3201
+ .vos-next-moves-cols {
3202
+ display: grid;
3203
+ grid-template-columns: 1fr 1.2fr;
3204
+ gap: 16px;
3205
+ align-items: start;
3206
+ }
3207
+ @media (max-width: 900px) {
3208
+ .vos-next-moves-cols { grid-template-columns: 1fr; }
3209
+ }
3210
+ .vos-next-moves-col { padding: 14px; }
3211
+ .vos-next-moves-col-label {
3212
+ font-size: 11px;
3213
+ color: var(--vos-muted);
3214
+ text-transform: uppercase;
3215
+ letter-spacing: 0.3px;
3216
+ margin-bottom: 12px;
3217
+ font-weight: 600;
3218
+ }
3219
+ .vos-next-moves-empty { padding: 12px 14px; font-size: 12px; }
3220
+ .vos-next-moves-item {
3221
+ display: block;
3222
+ width: 100%;
3223
+ text-align: left;
3224
+ background: var(--vos-surface-2);
3225
+ border: 1px solid var(--vos-border);
3226
+ border-radius: 8px;
3227
+ padding: 12px 14px;
3228
+ margin-bottom: 8px;
3229
+ cursor: pointer;
3230
+ color: var(--vos-text);
3231
+ font: inherit;
3232
+ transition: border-color 0.15s;
3233
+ }
3234
+ .vos-next-moves-item:hover { border-color: var(--vos-accent); }
3235
+ .vos-next-moves-item-head {
3236
+ display: flex;
3237
+ align-items: baseline;
3238
+ justify-content: space-between;
3239
+ margin-bottom: 4px;
3240
+ }
3241
+ .vos-next-moves-item-id { font-size: 10px; color: var(--vos-muted); }
3242
+ .vos-next-moves-item-risk { font-size: 10px; font-weight: 600; }
3243
+ .vos-next-moves-item-title { font-size: 12px; font-weight: 500; margin-bottom: 4px; line-height: 1.4; }
3244
+ .vos-next-moves-item-hint { font-size: 11px; color: var(--vos-muted); line-height: 1.4; }
3245
+ .vos-next-moves-rec { margin-bottom: 8px; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@validation-os/dashboard",
3
- "version": "0.15.2",
3
+ "version": "0.15.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.15.2"
25
+ "@validation-os/core": "0.15.3"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": ">=18",