@validation-os/dashboard 0.6.2 → 0.7.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/dist/index.d.ts +298 -45
- package/dist/index.js +3058 -2516
- package/dist/index.js.map +1 -1
- package/dist/styles.css +318 -0
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -2047,3 +2047,321 @@ textarea.vos-input {
|
|
|
2047
2047
|
border-color: var(--vos-accent);
|
|
2048
2048
|
color: var(--vos-accent-text);
|
|
2049
2049
|
}
|
|
2050
|
+
/* ── Per-belief journey: the rail + story (OPS-1330) ─────────────────────── */
|
|
2051
|
+
.vos-jny {
|
|
2052
|
+
padding: 16px 18px;
|
|
2053
|
+
margin-bottom: 16px;
|
|
2054
|
+
}
|
|
2055
|
+
.vos-jny-head {
|
|
2056
|
+
display: flex;
|
|
2057
|
+
align-items: flex-start;
|
|
2058
|
+
gap: 12px;
|
|
2059
|
+
margin-bottom: 14px;
|
|
2060
|
+
}
|
|
2061
|
+
.vos-jny-head > div:first-child {
|
|
2062
|
+
flex: 1;
|
|
2063
|
+
min-width: 0;
|
|
2064
|
+
}
|
|
2065
|
+
.vos-jny-eyebrow {
|
|
2066
|
+
font-size: 11px;
|
|
2067
|
+
letter-spacing: 0.08em;
|
|
2068
|
+
text-transform: uppercase;
|
|
2069
|
+
color: var(--vos-muted);
|
|
2070
|
+
}
|
|
2071
|
+
.vos-jny-at {
|
|
2072
|
+
margin: 2px 0 0;
|
|
2073
|
+
font-size: 14px;
|
|
2074
|
+
color: var(--vos-text);
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
/* The resting rail — read-only status, no step-in. */
|
|
2078
|
+
.vos-jny-rail {
|
|
2079
|
+
display: flex;
|
|
2080
|
+
align-items: flex-start;
|
|
2081
|
+
gap: 6px;
|
|
2082
|
+
}
|
|
2083
|
+
.vos-jny-arrow {
|
|
2084
|
+
color: var(--vos-border-strong);
|
|
2085
|
+
font-size: 12px;
|
|
2086
|
+
padding-top: 22px;
|
|
2087
|
+
}
|
|
2088
|
+
.vos-jny-stop {
|
|
2089
|
+
flex: 1;
|
|
2090
|
+
min-width: 0;
|
|
2091
|
+
opacity: 0.55;
|
|
2092
|
+
}
|
|
2093
|
+
.vos-jny-stop-at,
|
|
2094
|
+
.vos-jny-stop-done {
|
|
2095
|
+
opacity: 1;
|
|
2096
|
+
}
|
|
2097
|
+
.vos-jny-stopname {
|
|
2098
|
+
display: flex;
|
|
2099
|
+
align-items: center;
|
|
2100
|
+
gap: 5px;
|
|
2101
|
+
font-size: 12px;
|
|
2102
|
+
font-weight: 600;
|
|
2103
|
+
color: var(--vos-text);
|
|
2104
|
+
margin-bottom: 5px;
|
|
2105
|
+
}
|
|
2106
|
+
.vos-jny-stopn {
|
|
2107
|
+
display: inline-flex;
|
|
2108
|
+
align-items: center;
|
|
2109
|
+
justify-content: center;
|
|
2110
|
+
width: 15px;
|
|
2111
|
+
height: 15px;
|
|
2112
|
+
border-radius: 50%;
|
|
2113
|
+
background: var(--vos-surface-2);
|
|
2114
|
+
color: var(--vos-muted);
|
|
2115
|
+
font-size: 9px;
|
|
2116
|
+
}
|
|
2117
|
+
.vos-jny-stop-at .vos-jny-stopn {
|
|
2118
|
+
background: var(--vos-accent);
|
|
2119
|
+
color: var(--vos-on-accent, #fff);
|
|
2120
|
+
}
|
|
2121
|
+
.vos-jny-stop-done .vos-jny-stopn {
|
|
2122
|
+
background: var(--vos-good);
|
|
2123
|
+
color: var(--vos-on-accent, #fff);
|
|
2124
|
+
}
|
|
2125
|
+
.vos-jny-track {
|
|
2126
|
+
height: 18px;
|
|
2127
|
+
border-radius: 4px;
|
|
2128
|
+
background: var(--vos-surface-2);
|
|
2129
|
+
position: relative;
|
|
2130
|
+
overflow: hidden;
|
|
2131
|
+
}
|
|
2132
|
+
.vos-jny-track i {
|
|
2133
|
+
position: absolute;
|
|
2134
|
+
top: 0;
|
|
2135
|
+
bottom: 0;
|
|
2136
|
+
left: 0;
|
|
2137
|
+
border-radius: 4px;
|
|
2138
|
+
}
|
|
2139
|
+
.vos-jny-fill {
|
|
2140
|
+
background: var(--vos-accent);
|
|
2141
|
+
}
|
|
2142
|
+
.vos-jny-known {
|
|
2143
|
+
background: linear-gradient(
|
|
2144
|
+
90deg,
|
|
2145
|
+
var(--vos-crit-weak),
|
|
2146
|
+
var(--vos-surface-2) 50%,
|
|
2147
|
+
var(--vos-good-weak)
|
|
2148
|
+
);
|
|
2149
|
+
}
|
|
2150
|
+
.vos-jny-mid {
|
|
2151
|
+
position: absolute;
|
|
2152
|
+
left: 50%;
|
|
2153
|
+
top: 2px;
|
|
2154
|
+
bottom: 2px;
|
|
2155
|
+
width: 1px;
|
|
2156
|
+
background: var(--vos-border-strong);
|
|
2157
|
+
}
|
|
2158
|
+
.vos-jny-pos {
|
|
2159
|
+
left: 50%;
|
|
2160
|
+
background: var(--vos-good);
|
|
2161
|
+
border-radius: 0 4px 4px 0;
|
|
2162
|
+
}
|
|
2163
|
+
.vos-jny-neg {
|
|
2164
|
+
right: 50%;
|
|
2165
|
+
left: auto !important;
|
|
2166
|
+
background: var(--vos-crit);
|
|
2167
|
+
border-radius: 4px 0 0 4px;
|
|
2168
|
+
}
|
|
2169
|
+
.vos-jny-cap {
|
|
2170
|
+
margin-top: 4px;
|
|
2171
|
+
font-size: 11px;
|
|
2172
|
+
color: var(--vos-text-2);
|
|
2173
|
+
}
|
|
2174
|
+
.vos-jny-flag {
|
|
2175
|
+
color: var(--vos-crit);
|
|
2176
|
+
font-weight: 600;
|
|
2177
|
+
}
|
|
2178
|
+
.vos-jny-why {
|
|
2179
|
+
margin-top: 12px;
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
/* The story — the dated event log the rail expands into. */
|
|
2183
|
+
.vos-jny-story {
|
|
2184
|
+
margin-top: 12px;
|
|
2185
|
+
}
|
|
2186
|
+
.vos-jny-events {
|
|
2187
|
+
list-style: none;
|
|
2188
|
+
margin: 0;
|
|
2189
|
+
padding: 0;
|
|
2190
|
+
}
|
|
2191
|
+
.vos-jny-ev {
|
|
2192
|
+
display: flex;
|
|
2193
|
+
align-items: center;
|
|
2194
|
+
gap: 9px;
|
|
2195
|
+
padding: 6px 0;
|
|
2196
|
+
border-bottom: 1px solid var(--vos-border);
|
|
2197
|
+
font-size: 13px;
|
|
2198
|
+
}
|
|
2199
|
+
.vos-jny-ev:last-child {
|
|
2200
|
+
border-bottom: 0;
|
|
2201
|
+
}
|
|
2202
|
+
.vos-jny-ev-now {
|
|
2203
|
+
font-weight: 600;
|
|
2204
|
+
}
|
|
2205
|
+
.vos-jny-dot {
|
|
2206
|
+
width: 8px;
|
|
2207
|
+
height: 8px;
|
|
2208
|
+
border-radius: 50%;
|
|
2209
|
+
flex: none;
|
|
2210
|
+
}
|
|
2211
|
+
.vos-jny-dot-good {
|
|
2212
|
+
background: var(--vos-good);
|
|
2213
|
+
}
|
|
2214
|
+
.vos-jny-dot-warn {
|
|
2215
|
+
background: var(--vos-warn);
|
|
2216
|
+
}
|
|
2217
|
+
.vos-jny-dot-crit {
|
|
2218
|
+
background: var(--vos-crit);
|
|
2219
|
+
}
|
|
2220
|
+
.vos-jny-dot-accent {
|
|
2221
|
+
background: var(--vos-accent);
|
|
2222
|
+
}
|
|
2223
|
+
.vos-jny-dot-neutral {
|
|
2224
|
+
background: var(--vos-border-strong);
|
|
2225
|
+
}
|
|
2226
|
+
.vos-jny-date {
|
|
2227
|
+
font-variant-numeric: tabular-nums;
|
|
2228
|
+
color: var(--vos-muted);
|
|
2229
|
+
font-size: 12px;
|
|
2230
|
+
flex: none;
|
|
2231
|
+
min-width: 84px;
|
|
2232
|
+
}
|
|
2233
|
+
.vos-jny-label {
|
|
2234
|
+
flex: 1;
|
|
2235
|
+
min-width: 0;
|
|
2236
|
+
color: var(--vos-text);
|
|
2237
|
+
}
|
|
2238
|
+
.vos-jny-conf {
|
|
2239
|
+
flex: none;
|
|
2240
|
+
}
|
|
2241
|
+
.vos-jny-act {
|
|
2242
|
+
flex: none;
|
|
2243
|
+
}
|
|
2244
|
+
|
|
2245
|
+
/* The card the story ends in — the ranked next move for this belief. */
|
|
2246
|
+
.vos-jny-card {
|
|
2247
|
+
margin-top: 14px;
|
|
2248
|
+
padding: 12px 14px;
|
|
2249
|
+
border: 1px solid var(--vos-border);
|
|
2250
|
+
border-radius: 8px;
|
|
2251
|
+
background: var(--vos-surface-2);
|
|
2252
|
+
display: flex;
|
|
2253
|
+
flex-direction: column;
|
|
2254
|
+
align-items: flex-start;
|
|
2255
|
+
gap: 8px;
|
|
2256
|
+
}
|
|
2257
|
+
.vos-jny-card-kill {
|
|
2258
|
+
border-color: var(--vos-crit);
|
|
2259
|
+
}
|
|
2260
|
+
.vos-jny-card-done {
|
|
2261
|
+
opacity: 0.85;
|
|
2262
|
+
}
|
|
2263
|
+
.vos-jny-card-eyebrow {
|
|
2264
|
+
font-size: 11px;
|
|
2265
|
+
letter-spacing: 0.08em;
|
|
2266
|
+
text-transform: uppercase;
|
|
2267
|
+
color: var(--vos-muted);
|
|
2268
|
+
}
|
|
2269
|
+
.vos-jny-card-kill .vos-jny-card-eyebrow {
|
|
2270
|
+
color: var(--vos-crit);
|
|
2271
|
+
}
|
|
2272
|
+
.vos-jny-card-reason {
|
|
2273
|
+
margin: 0;
|
|
2274
|
+
font-size: 13px;
|
|
2275
|
+
color: var(--vos-text);
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2278
|
+
/* ── Cross-surface cold start (OPS-1331) ────────────────────────────────── */
|
|
2279
|
+
/* The shared first-run onboarding line — one tone across the two top-level
|
|
2280
|
+
* surfaces (next + pipeline). Neutral text on a faint accent wash, so it
|
|
2281
|
+
* reads as an invitation, not a status. */
|
|
2282
|
+
.vos-firstrun {
|
|
2283
|
+
text-align: center;
|
|
2284
|
+
font-size: 13px;
|
|
2285
|
+
color: var(--vos-accent-text);
|
|
2286
|
+
background: var(--vos-accent-weak);
|
|
2287
|
+
border: 1px solid var(--vos-accent);
|
|
2288
|
+
border-radius: var(--vos-radius);
|
|
2289
|
+
padding: 10px 16px;
|
|
2290
|
+
margin-bottom: 16px;
|
|
2291
|
+
}
|
|
2292
|
+
|
|
2293
|
+
/* The cold-start surfaces share a neutral, centred treatment — no tone (these
|
|
2294
|
+
* are invitations, not status), no dashed border (that reads "broken"). */
|
|
2295
|
+
.vos-cold {
|
|
2296
|
+
text-align: center;
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
/* ── Front-door cold hero (replaces the empty ranked list) ──────────────── */
|
|
2300
|
+
.vos-cold-next {
|
|
2301
|
+
display: flex;
|
|
2302
|
+
flex-direction: column;
|
|
2303
|
+
align-items: center;
|
|
2304
|
+
gap: 14px;
|
|
2305
|
+
padding: 34px 28px;
|
|
2306
|
+
}
|
|
2307
|
+
.vos-cold-eyebrow {
|
|
2308
|
+
font-size: 11px;
|
|
2309
|
+
text-transform: uppercase;
|
|
2310
|
+
letter-spacing: 0.08em;
|
|
2311
|
+
color: var(--vos-faint);
|
|
2312
|
+
font-weight: 700;
|
|
2313
|
+
}
|
|
2314
|
+
.vos-cold-headline {
|
|
2315
|
+
margin: 0;
|
|
2316
|
+
font-size: 22px;
|
|
2317
|
+
font-weight: 700;
|
|
2318
|
+
line-height: 1.3;
|
|
2319
|
+
letter-spacing: -0.01em;
|
|
2320
|
+
color: var(--vos-text);
|
|
2321
|
+
max-width: 30ch;
|
|
2322
|
+
}
|
|
2323
|
+
.vos-cold-body {
|
|
2324
|
+
margin: 0;
|
|
2325
|
+
font-size: 14px;
|
|
2326
|
+
line-height: 1.6;
|
|
2327
|
+
color: var(--vos-muted);
|
|
2328
|
+
max-width: 52ch;
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2331
|
+
/* ── Pipeline cold board ────────────────────────────────────────────────── */
|
|
2332
|
+
.vos-cold-pipe-hero .vos-pipe-big {
|
|
2333
|
+
color: var(--vos-muted);
|
|
2334
|
+
}
|
|
2335
|
+
.vos-cold-pipe-board {
|
|
2336
|
+
padding-bottom: 24px;
|
|
2337
|
+
}
|
|
2338
|
+
.vos-cold-pipe-body {
|
|
2339
|
+
display: flex;
|
|
2340
|
+
flex-direction: column;
|
|
2341
|
+
align-items: center;
|
|
2342
|
+
gap: 14px;
|
|
2343
|
+
padding: 28px 20px;
|
|
2344
|
+
}
|
|
2345
|
+
.vos-cold-pipe-body p {
|
|
2346
|
+
margin: 0;
|
|
2347
|
+
font-size: 14px;
|
|
2348
|
+
line-height: 1.6;
|
|
2349
|
+
color: var(--vos-muted);
|
|
2350
|
+
max-width: 50ch;
|
|
2351
|
+
}
|
|
2352
|
+
|
|
2353
|
+
/* ── Journey no-history cold state ──────────────────────────────────────── */
|
|
2354
|
+
.vos-jny-cold {
|
|
2355
|
+
margin-bottom: 14px;
|
|
2356
|
+
padding: 12px 14px;
|
|
2357
|
+
border: 1px solid var(--vos-border);
|
|
2358
|
+
border-radius: 8px;
|
|
2359
|
+
background: var(--vos-accent-weak);
|
|
2360
|
+
display: flex;
|
|
2361
|
+
flex-direction: column;
|
|
2362
|
+
align-items: flex-start;
|
|
2363
|
+
gap: 6px;
|
|
2364
|
+
}
|
|
2365
|
+
.vos-jny-cold .vos-jny-card-eyebrow {
|
|
2366
|
+
color: var(--vos-accent-text);
|
|
2367
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@validation-os/dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
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.7.1"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|