@validation-os/dashboard 0.14.1 → 0.15.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 +71 -40
- package/dist/index.js +5862 -4331
- package/dist/index.js.map +1 -1
- package/dist/styles.css +210 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -39,20 +39,19 @@ interface ValidationOSDashboardProps {
|
|
|
39
39
|
config?: DashboardConfig;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* The entire styled dashboard as one mountable app (spec OPS-1280
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* the
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* no UI.
|
|
42
|
+
* The entire styled dashboard as one mountable app (spec OPS-1280 / DEV-5879
|
|
43
|
+
* redesign): the frame — a 3-item sidebar (Assumptions / Experiments /
|
|
44
|
+
* Readings) plus a small Registers group for decisions + glossary, topbar with
|
|
45
|
+
* the backend indicator and user — and the surfaces it routes between. The
|
|
46
|
+
* Assumptions nav lands on the Lens × Stage grid; a "Grid / View all" toggle
|
|
47
|
+
* switches to the pipeline board. Both drill into the same AssumptionDetail.
|
|
48
|
+
* Experiments shows the live evidence plans; Readings shows the evidence log.
|
|
49
|
+
* Each detail view is evidence-first: readings lead, bar lines are context.
|
|
51
50
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
51
|
+
* Navigation is owned here, not the host router: the active route lives in
|
|
52
|
+
* client state, synced to the URL hash (OPS-1298), so the instance mounts this
|
|
53
|
+
* at one route and wires no routing. Styled by the package's own token sheet —
|
|
54
|
+
* the instance imports `styles.css` once and builds no UI.
|
|
56
55
|
*/
|
|
57
56
|
declare function ValidationOSDashboard({ config }: ValidationOSDashboardProps): react.JSX.Element;
|
|
58
57
|
|
|
@@ -295,24 +294,48 @@ interface NeedsHumanCounts {
|
|
|
295
294
|
declare function needsHumanCounts(ctx: RegisterContext): NeedsHumanCounts;
|
|
296
295
|
|
|
297
296
|
/**
|
|
298
|
-
* The dashboard's client-owned navigation state
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
* is no second entry point (OPS-1280).
|
|
297
|
+
* The dashboard's client-owned navigation state (OPS-1298 / DEV-5879 redesign).
|
|
298
|
+
* One `<ValidationOSDashboard/>` mounts at a single host route and drives
|
|
299
|
+
* everything off the URL hash — there is no second entry point (OPS-1280).
|
|
302
300
|
*
|
|
303
|
-
* - `
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
* - `
|
|
307
|
-
*
|
|
308
|
-
* - `
|
|
301
|
+
* - `assumptions` — the Assumptions nav item. The grid (Lens × Stage) is the
|
|
302
|
+
* default landing; `view: "all"` switches to the pipeline board; `lens` +
|
|
303
|
+
* `stage` drill into a single cell's assumptions (pipeline view filtered).
|
|
304
|
+
* - `experiments` — the Experiments nav item (the live evidence plans list).
|
|
305
|
+
* - `readings` — the Readings nav item (the evidence log list).
|
|
306
|
+
* - `assumption` — the assumption detail (next-move, relations, glossary,
|
|
307
|
+
* evidence-first readings). The id is the assumption id.
|
|
308
|
+
* - `experiment` — the evidence-first experiment detail (readings lead, bar
|
|
309
|
+
* lines as context, unstarted bars separate). The id is the experiment id.
|
|
310
|
+
* - `reading` — the per-belief reading detail (Context + per-belief verdicts
|
|
311
|
+
* with excerpts). The id is the reading id.
|
|
312
|
+
* - `records` — one register's browse table (the manual-override surface,
|
|
313
|
+
* kept from the original scheme). Backward-compatible with `#<register>`.
|
|
314
|
+
* - `record` — the legacy unified record page (still mounted for decisions +
|
|
315
|
+
* glossary, which keep the tabbed layout). The id is the record id.
|
|
316
|
+
*
|
|
317
|
+
* The legacy `next`, `pipeline`, and `stage-grid` routes still parse (they
|
|
318
|
+
* map onto the new nav: `next`→`assumptions`, `pipeline`→`assumptions` with
|
|
319
|
+
* `view: "all"`, `stage-grid`→`assumptions`) so old deep links keep working.
|
|
309
320
|
*/
|
|
310
321
|
type Route = {
|
|
311
|
-
name: "
|
|
322
|
+
name: "assumptions";
|
|
323
|
+
lens?: string;
|
|
324
|
+
stage?: string;
|
|
325
|
+
view?: "all";
|
|
326
|
+
} | {
|
|
327
|
+
name: "experiments";
|
|
312
328
|
} | {
|
|
313
|
-
name: "
|
|
329
|
+
name: "readings";
|
|
314
330
|
} | {
|
|
315
|
-
name: "
|
|
331
|
+
name: "assumption";
|
|
332
|
+
id: string;
|
|
333
|
+
} | {
|
|
334
|
+
name: "experiment";
|
|
335
|
+
id: string;
|
|
336
|
+
} | {
|
|
337
|
+
name: "reading";
|
|
338
|
+
id: string;
|
|
316
339
|
} | {
|
|
317
340
|
name: "records";
|
|
318
341
|
register: Collection;
|
|
@@ -325,10 +348,14 @@ type Route = {
|
|
|
325
348
|
};
|
|
326
349
|
/**
|
|
327
350
|
* Parse a URL hash into a Route. The empty hash and anything unrecognised fall
|
|
328
|
-
* back to the
|
|
329
|
-
* backward-compatible with the original `#<register>`
|
|
330
|
-
* that register's Records table; `registers` is the
|
|
331
|
-
* an unknown or disallowed register name falls
|
|
351
|
+
* back to the Assumptions grid (the default landing). A bare register name
|
|
352
|
+
* (`#assumptions`) stays backward-compatible with the original `#<register>`
|
|
353
|
+
* scheme, so it resolves to that register's Records table; `registers` is the
|
|
354
|
+
* set the instance allows, so an unknown or disallowed register name falls
|
|
355
|
+
* through to the default.
|
|
356
|
+
*
|
|
357
|
+
* Legacy routes `#next`, `#pipeline`, and `#stage-grid` still parse — they map
|
|
358
|
+
* onto the new nav so old deep links keep working.
|
|
332
359
|
*/
|
|
333
360
|
declare function parseRoute(hash: string, registers: Collection[]): Route;
|
|
334
361
|
/**
|
|
@@ -376,8 +403,9 @@ interface UseNeedsHumanResult {
|
|
|
376
403
|
declare function useNeedsHuman(basePath?: string): UseNeedsHumanResult;
|
|
377
404
|
|
|
378
405
|
interface SidebarNavProps {
|
|
379
|
-
/** The active route — drives which item is highlighted. A
|
|
380
|
-
*
|
|
406
|
+
/** The active route — drives which item is highlighted. A detail route
|
|
407
|
+
* (`assumption` / `experiment` / `reading` / `record`) highlights its
|
|
408
|
+
* parent nav item. */
|
|
381
409
|
route: Route;
|
|
382
410
|
/** Called when a nav item is chosen, with the route it selects. */
|
|
383
411
|
onNavigate: (route: Route) => void;
|
|
@@ -386,17 +414,20 @@ interface SidebarNavProps {
|
|
|
386
414
|
/** Per-register needs-a-human counts — a persistent alert badge on the
|
|
387
415
|
* register that needs attention (kill lane, overdue plans, tensions; story 20). */
|
|
388
416
|
needsHuman?: Partial<Record<Collection, number>>;
|
|
389
|
-
/** The registers shown under
|
|
417
|
+
/** The registers shown under a "Registers" group (decisions + glossary keep
|
|
418
|
+
* the legacy records-table surface). The three nav-owned registers
|
|
419
|
+
* (assumptions / experiments / readings) are not duplicated here. */
|
|
390
420
|
registers: Collection[];
|
|
391
421
|
}
|
|
392
422
|
/**
|
|
393
|
-
* The sidebar nav
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
399
|
-
*
|
|
423
|
+
* The sidebar nav (DEV-5879 redesign): three top-level items — Assumptions
|
|
424
|
+
* (the default landing, Lens × Stage grid with a "View all" toggle to the
|
|
425
|
+
* pipeline board), Experiments (the live evidence plans), Readings (the
|
|
426
|
+
* evidence log) — above a small "Registers" group for decisions + glossary,
|
|
427
|
+
* which keep the legacy records-table surface. A presentational brick: the
|
|
428
|
+
* caller owns the active route and supplies the counts. The assembled
|
|
429
|
+
* `<ValidationOSDashboard/>` composes this; it's also exported for anyone
|
|
430
|
+
* building their own surface. Styled with the package's own token sheet.
|
|
400
431
|
*/
|
|
401
432
|
declare function SidebarNav({ route, onNavigate, counts, needsHuman, registers, }: SidebarNavProps): react.JSX.Element;
|
|
402
433
|
|