@elaraai/e3-ui-components 1.0.11 → 1.0.13
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/components/UITaskPreview.d.ts.map +1 -1
- package/dist/experiment/bind-runtime.d.ts +26 -0
- package/dist/experiment/bind-runtime.d.ts.map +1 -0
- package/dist/experiment/charts.d.ts +68 -0
- package/dist/experiment/charts.d.ts.map +1 -0
- package/dist/experiment/derive.d.ts +336 -0
- package/dist/experiment/derive.d.ts.map +1 -0
- package/dist/experiment/help-ui.d.ts +29 -0
- package/dist/experiment/help-ui.d.ts.map +1 -0
- package/dist/experiment/help.d.ts +319 -0
- package/dist/experiment/help.d.ts.map +1 -0
- package/dist/experiment/index.d.ts +10 -0
- package/dist/experiment/index.d.ts.map +1 -0
- package/dist/experiment/run-runtime.d.ts +37 -0
- package/dist/experiment/run-runtime.d.ts.map +1 -0
- package/dist/index.cjs +5884 -1483
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5882 -1481
- package/dist/index.js.map +1 -1
- package/package.json +23 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UITaskPreview.d.ts","sourceRoot":"","sources":["../../src/components/UITaskPreview.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAmCH,OAAO,
|
|
1
|
+
{"version":3,"file":"UITaskPreview.d.ts","sourceRoot":"","sources":["../../src/components/UITaskPreview.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAmCH,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS9E,MAAM,WAAW,kBAAkB;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,eAAO,MAAM,aAAa,0DA0GxB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ValueTypeOf } from '@elaraai/east';
|
|
2
|
+
import { DiffBindingType } from '@elaraai/e3-ui/internal';
|
|
3
|
+
type DiffBindingValue = ValueTypeOf<typeof DiffBindingType>;
|
|
4
|
+
export interface UseBindingValueResult<T> {
|
|
5
|
+
/** Current value (buffered if staged, otherwise server). `null` until the
|
|
6
|
+
* binding has run or if the binding is absent. */
|
|
7
|
+
value: T | null;
|
|
8
|
+
/** The binding's write mode — `'staged'` buffers edits until `commit()`,
|
|
9
|
+
* `'direct'` writes through. `'direct'` when the binding is absent. */
|
|
10
|
+
mode: 'staged' | 'direct';
|
|
11
|
+
/** True when there is an in-flight staged change. */
|
|
12
|
+
pending: boolean;
|
|
13
|
+
/** Replace the bound value (staged buffers, direct writes through). */
|
|
14
|
+
mutate: (next: T) => void;
|
|
15
|
+
/** Resolve the in-flight change. */
|
|
16
|
+
commit: () => Promise<void>;
|
|
17
|
+
/** Drop the in-flight change. */
|
|
18
|
+
discard: () => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a {@link DiffBindingType} value (or `null`) into a live, reactive
|
|
22
|
+
* value of type `T`, delegating to the shared bind runtime.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useBindingValue<T>(binding: DiffBindingValue | null): UseBindingValueResult<T>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=bind-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind-runtime.d.ts","sourceRoot":"","sources":["../../src/experiment/bind-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAW1D,KAAK,gBAAgB,GAAG,WAAW,CAAC,OAAO,eAAe,CAAC,CAAC;AAI5D,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC;uDACmD;IACnD,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB;4EACwE;IACxE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,oCAAoC;IACpC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AA0BD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAqC7F"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { HelpId } from './help.js';
|
|
3
|
+
type Tone = 'neg' | 'pos' | 'warn' | 'muted' | 'brand' | string;
|
|
4
|
+
export interface ForestRow {
|
|
5
|
+
label: string;
|
|
6
|
+
note?: string;
|
|
7
|
+
est: number;
|
|
8
|
+
lo: number;
|
|
9
|
+
hi: number;
|
|
10
|
+
tone: Tone;
|
|
11
|
+
}
|
|
12
|
+
export interface ForestPlotProps {
|
|
13
|
+
rows: ForestRow[];
|
|
14
|
+
min: number;
|
|
15
|
+
max: number;
|
|
16
|
+
unit?: string;
|
|
17
|
+
height?: number;
|
|
18
|
+
/** Optional per-row help id, aligned to `rows` — renders a `.hlp` glyph
|
|
19
|
+
* after the row label, opening that glossary entry. */
|
|
20
|
+
rowHelp?: HelpId[];
|
|
21
|
+
}
|
|
22
|
+
/** Horizontal CI estimates with a dashed zero ("no effect") reference. */
|
|
23
|
+
export declare function ForestPlot({ rows, min, max, unit, height, rowHelp }: ForestPlotProps): ReactElement;
|
|
24
|
+
export interface AreaMark {
|
|
25
|
+
at: number;
|
|
26
|
+
label: string;
|
|
27
|
+
tone: Tone;
|
|
28
|
+
/** Optional glossary id — renders a `.hlp` glyph after the marker label. */
|
|
29
|
+
help?: HelpId;
|
|
30
|
+
}
|
|
31
|
+
export interface AreaRangeProps {
|
|
32
|
+
lo: number[];
|
|
33
|
+
mid: number[];
|
|
34
|
+
hi: number[];
|
|
35
|
+
xTicks?: string[];
|
|
36
|
+
yTicks?: string[];
|
|
37
|
+
zero?: number;
|
|
38
|
+
tone?: Tone;
|
|
39
|
+
marks?: AreaMark[];
|
|
40
|
+
height?: number;
|
|
41
|
+
/** Y-axis label format: `signed` (default, e.g. `+5.2`) or `percent` (`80%`). */
|
|
42
|
+
yFormat?: 'signed' | 'percent';
|
|
43
|
+
}
|
|
44
|
+
/** Low-high CI ribbon + mid line with hairline axes, optional zero + markers. */
|
|
45
|
+
export declare function AreaRange({ lo, mid, hi, xTicks, yTicks, zero, tone: toneName, marks, height, yFormat }: AreaRangeProps): ReactElement;
|
|
46
|
+
export interface OverlapHistogramProps {
|
|
47
|
+
/** Treated-arm propensity histogram (one count/fraction per bin over [0,1]). */
|
|
48
|
+
treated: number[];
|
|
49
|
+
/** Control-arm propensity histogram (same binning). */
|
|
50
|
+
control: number[];
|
|
51
|
+
/** Domain of the propensity axis (default [0,1]). */
|
|
52
|
+
domain?: [number, number];
|
|
53
|
+
/** Caption shown at top-right (e.g. "62% common support"). */
|
|
54
|
+
supportLabel?: string;
|
|
55
|
+
/** Whether positivity clears the guard — toggles the caption tone. */
|
|
56
|
+
positivityOk?: boolean;
|
|
57
|
+
height?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A mirrored (back-to-back) histogram of the two arms' propensity scores:
|
|
61
|
+
* treated bars rise above a centre axis, control bars fall below it. Where the
|
|
62
|
+
* two densities both have mass is the **common support** — the only region a
|
|
63
|
+
* like-for-like comparison can be drawn. Contract-agnostic: the caller converts
|
|
64
|
+
* the two `Vector<Float>` to `number[]` and passes the [0,1] domain.
|
|
65
|
+
*/
|
|
66
|
+
export declare function OverlapHistogram({ treated, control, domain, supportLabel, positivityOk, height }: OverlapHistogramProps): ReactElement;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=charts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../src/experiment/charts.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAyD,KAAK,YAAY,EAAkC,MAAM,OAAO,CAAC;AAOjI,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAqDxC,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAmEhE,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;4DACwD;IACxD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,YAAY,CAqDnG;AAMD,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAClC;AAID,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAW,EAAE,MAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAU,EAAE,MAAM,EAAE,OAAkB,EAAE,EAAE,cAAc,GAAG,YAAY,CAyE/J;AAMD,MAAM,WAAW,qBAAqB;IAClC,gFAAgF;IAChF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,qBAAqB,GAAG,YAAY,CAkD/I"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { HelpId } from './help.js';
|
|
2
|
+
export type Opt<T> = {
|
|
3
|
+
type: 'none';
|
|
4
|
+
value: null;
|
|
5
|
+
} | {
|
|
6
|
+
type: 'some';
|
|
7
|
+
value: T;
|
|
8
|
+
};
|
|
9
|
+
type Var<K extends string, V = unknown> = {
|
|
10
|
+
type: K;
|
|
11
|
+
value: V;
|
|
12
|
+
};
|
|
13
|
+
type Vec = ArrayLike<number> & Iterable<number>;
|
|
14
|
+
type VecI = ArrayLike<bigint> & Iterable<bigint>;
|
|
15
|
+
export interface Ci {
|
|
16
|
+
lower: number;
|
|
17
|
+
upper: number;
|
|
18
|
+
}
|
|
19
|
+
/** Which robustness checks the config asked for. */
|
|
20
|
+
export interface RefuteSpecValue {
|
|
21
|
+
placebo: boolean;
|
|
22
|
+
random_common_cause: boolean;
|
|
23
|
+
data_subset: boolean;
|
|
24
|
+
sensitivity: Opt<Vec>;
|
|
25
|
+
}
|
|
26
|
+
/** The staged experiment config (= `ExperimentConfigType`). */
|
|
27
|
+
export interface ConfigValue {
|
|
28
|
+
treatment: string;
|
|
29
|
+
outcome: string;
|
|
30
|
+
common_causes: string[];
|
|
31
|
+
categorical: Opt<string[]>;
|
|
32
|
+
method: Opt<Var<'linear_regression' | 'propensity_score_weighting'>>;
|
|
33
|
+
estimand: Opt<Var<'ate' | 'att' | 'atc'>>;
|
|
34
|
+
refute: Opt<RefuteSpecValue>;
|
|
35
|
+
dose_feature: Opt<string>;
|
|
36
|
+
min_overlap: Opt<number>;
|
|
37
|
+
min_treatment_variation: Opt<number>;
|
|
38
|
+
bootstrap: Opt<unknown>;
|
|
39
|
+
random_state: Opt<bigint>;
|
|
40
|
+
}
|
|
41
|
+
export interface BalanceValue {
|
|
42
|
+
column: string;
|
|
43
|
+
base_column: string;
|
|
44
|
+
treated_mean: number;
|
|
45
|
+
control_mean: number;
|
|
46
|
+
std_diff: number;
|
|
47
|
+
}
|
|
48
|
+
export interface AdjustedValue {
|
|
49
|
+
effect: number;
|
|
50
|
+
ci: Opt<Ci>;
|
|
51
|
+
}
|
|
52
|
+
export interface OverlapValue {
|
|
53
|
+
treated_propensity: Vec;
|
|
54
|
+
control_propensity: Vec;
|
|
55
|
+
common_support_frac: number;
|
|
56
|
+
positivity_ok: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface SensitivityValue {
|
|
59
|
+
strengths: Vec;
|
|
60
|
+
effects: Vec;
|
|
61
|
+
}
|
|
62
|
+
export interface RefutationValue {
|
|
63
|
+
placebo_effect: Opt<number>;
|
|
64
|
+
placebo_passes: Opt<boolean>;
|
|
65
|
+
random_cc_within_ci: Opt<boolean>;
|
|
66
|
+
data_subset_effect: Opt<number>;
|
|
67
|
+
data_subset_std: Opt<number>;
|
|
68
|
+
robustness_value: Opt<number>;
|
|
69
|
+
sensitivity: Opt<SensitivityValue>;
|
|
70
|
+
}
|
|
71
|
+
export interface DoseValue {
|
|
72
|
+
feature: string;
|
|
73
|
+
grid: Vec;
|
|
74
|
+
effect: Vec;
|
|
75
|
+
lower: Opt<Vec>;
|
|
76
|
+
upper: Opt<Vec>;
|
|
77
|
+
size: VecI;
|
|
78
|
+
}
|
|
79
|
+
/** The honesty verdict — only `not_estimable` carries a (reason) string. */
|
|
80
|
+
export type VerdictValue = Var<'causal', null> | Var<'modest', null> | Var<'adjustment_insufficient', null> | Var<'non_identifiable_positivity', null> | Var<'not_estimable', string>;
|
|
81
|
+
export type VerdictTag = VerdictValue['type'];
|
|
82
|
+
export interface ResultValue {
|
|
83
|
+
naive: number;
|
|
84
|
+
naive_ci: Opt<Ci>;
|
|
85
|
+
adjusted: Opt<AdjustedValue>;
|
|
86
|
+
n_total: bigint;
|
|
87
|
+
n_treated: bigint;
|
|
88
|
+
n_control: bigint;
|
|
89
|
+
n_dropped: bigint;
|
|
90
|
+
balance: BalanceValue[];
|
|
91
|
+
overlap: OverlapValue;
|
|
92
|
+
refutation: Opt<RefutationValue>;
|
|
93
|
+
dose_response: Opt<DoseValue>;
|
|
94
|
+
verdict: VerdictValue;
|
|
95
|
+
}
|
|
96
|
+
export interface JournalRowValue {
|
|
97
|
+
config: ConfigValue;
|
|
98
|
+
verdict: VerdictValue;
|
|
99
|
+
naive: number;
|
|
100
|
+
adjusted: Opt<number>;
|
|
101
|
+
committed_at: Date;
|
|
102
|
+
committed_by: string;
|
|
103
|
+
}
|
|
104
|
+
export type ColMeta = Map<string, {
|
|
105
|
+
label: Opt<string>;
|
|
106
|
+
unit: Opt<string>;
|
|
107
|
+
higherIsBetter: Opt<boolean>;
|
|
108
|
+
}>;
|
|
109
|
+
/** A column the surface can frame over — name + coarse type family. */
|
|
110
|
+
export interface Column {
|
|
111
|
+
name: string;
|
|
112
|
+
kind: 'boolean' | 'integer' | 'float' | 'string' | 'datetime' | 'other';
|
|
113
|
+
}
|
|
114
|
+
export interface VMVerdict {
|
|
115
|
+
tag: VerdictTag;
|
|
116
|
+
tone: string;
|
|
117
|
+
label: string;
|
|
118
|
+
}
|
|
119
|
+
export interface VMConfounder {
|
|
120
|
+
col: string;
|
|
121
|
+
reason: string;
|
|
122
|
+
imbalance: number;
|
|
123
|
+
level: string;
|
|
124
|
+
tone: string;
|
|
125
|
+
}
|
|
126
|
+
export interface VMSpec {
|
|
127
|
+
treatment: string;
|
|
128
|
+
treatmentKind: string;
|
|
129
|
+
outcome: string;
|
|
130
|
+
outcomeKind: string;
|
|
131
|
+
comparison: string;
|
|
132
|
+
confounders: VMConfounder[];
|
|
133
|
+
suggestion: string;
|
|
134
|
+
method: string;
|
|
135
|
+
target: string;
|
|
136
|
+
dataLabel: string;
|
|
137
|
+
}
|
|
138
|
+
export interface VMBalance {
|
|
139
|
+
col: string;
|
|
140
|
+
treated: number;
|
|
141
|
+
control: number;
|
|
142
|
+
display: string;
|
|
143
|
+
frac: number;
|
|
144
|
+
tone: string;
|
|
145
|
+
}
|
|
146
|
+
export interface VMAnswer {
|
|
147
|
+
treatment: string;
|
|
148
|
+
outcome: string;
|
|
149
|
+
unit: string;
|
|
150
|
+
naive: number;
|
|
151
|
+
naiveLo: number;
|
|
152
|
+
naiveHi: number;
|
|
153
|
+
effect: number;
|
|
154
|
+
lo: number;
|
|
155
|
+
hi: number;
|
|
156
|
+
clear: boolean;
|
|
157
|
+
flip: boolean;
|
|
158
|
+
cautious: boolean;
|
|
159
|
+
nTotal: bigint;
|
|
160
|
+
nTreated: bigint;
|
|
161
|
+
nControl: bigint;
|
|
162
|
+
nCompared: bigint;
|
|
163
|
+
nDropped: bigint;
|
|
164
|
+
balance: VMBalance[];
|
|
165
|
+
}
|
|
166
|
+
/** A refusal zone (the engine returned `adjusted = none`). */
|
|
167
|
+
export interface VMRefusal {
|
|
168
|
+
kind: 'positivity' | 'not_estimable';
|
|
169
|
+
title: string;
|
|
170
|
+
body: string;
|
|
171
|
+
evidence: {
|
|
172
|
+
label: string;
|
|
173
|
+
value: string;
|
|
174
|
+
}[];
|
|
175
|
+
}
|
|
176
|
+
/** The propensity-overlap diagnostic (always derivable; the centrepiece of a
|
|
177
|
+
* positivity refusal, a small diagnostic card otherwise). */
|
|
178
|
+
export interface VMOverlap {
|
|
179
|
+
treated: number[];
|
|
180
|
+
control: number[];
|
|
181
|
+
commonSupportFrac: number;
|
|
182
|
+
positivityOk: boolean;
|
|
183
|
+
supportLabel: string;
|
|
184
|
+
}
|
|
185
|
+
export interface VMRefuteCheck {
|
|
186
|
+
name: string;
|
|
187
|
+
desc: string;
|
|
188
|
+
value: string;
|
|
189
|
+
passed: boolean;
|
|
190
|
+
tip: Opt<string>;
|
|
191
|
+
help: HelpId;
|
|
192
|
+
}
|
|
193
|
+
export interface VMRefute {
|
|
194
|
+
checks: VMRefuteCheck[];
|
|
195
|
+
sens: VMSensitivity | null;
|
|
196
|
+
}
|
|
197
|
+
export interface VMSensitivity {
|
|
198
|
+
lo: number[];
|
|
199
|
+
mid: number[];
|
|
200
|
+
hi: number[];
|
|
201
|
+
xTicks: string[];
|
|
202
|
+
yTicks: string[];
|
|
203
|
+
}
|
|
204
|
+
export interface VMDoseMark {
|
|
205
|
+
at: number;
|
|
206
|
+
label: string;
|
|
207
|
+
tone: string;
|
|
208
|
+
help: HelpId;
|
|
209
|
+
}
|
|
210
|
+
export interface VMMarginal {
|
|
211
|
+
label: string;
|
|
212
|
+
value: number;
|
|
213
|
+
frac: number;
|
|
214
|
+
}
|
|
215
|
+
export interface VMDose {
|
|
216
|
+
feature: string;
|
|
217
|
+
outcome: string;
|
|
218
|
+
lo: number[];
|
|
219
|
+
mid: number[];
|
|
220
|
+
hi: number[];
|
|
221
|
+
xTicks: string[];
|
|
222
|
+
yTicks: string[];
|
|
223
|
+
marks: VMDoseMark[];
|
|
224
|
+
recoLabel: string;
|
|
225
|
+
recoEffect: number;
|
|
226
|
+
recoLo: number;
|
|
227
|
+
recoHi: number;
|
|
228
|
+
tradeoff: string;
|
|
229
|
+
marginal: VMMarginal[];
|
|
230
|
+
}
|
|
231
|
+
export interface VMJournalRow {
|
|
232
|
+
treatment: string;
|
|
233
|
+
outcome: string;
|
|
234
|
+
confounders: string;
|
|
235
|
+
effect: string;
|
|
236
|
+
verdict: string;
|
|
237
|
+
verdictTone: string;
|
|
238
|
+
who: string;
|
|
239
|
+
when: string;
|
|
240
|
+
}
|
|
241
|
+
declare const getOpt: <T>(o: Opt<T> | undefined) => T | undefined;
|
|
242
|
+
declare const fmt: (x: number) => string;
|
|
243
|
+
declare const signed: (x: number) => string;
|
|
244
|
+
declare const cap: (s: string) => string;
|
|
245
|
+
declare const unitOf: (meta: ColMeta | undefined, col: string) => string;
|
|
246
|
+
export interface ExperimentView {
|
|
247
|
+
spec: VMSpec;
|
|
248
|
+
verdict: VMVerdict | null;
|
|
249
|
+
answer: VMAnswer | null;
|
|
250
|
+
refusal: VMRefusal | null;
|
|
251
|
+
overlap: VMOverlap | null;
|
|
252
|
+
refute: VMRefute | null;
|
|
253
|
+
dose: VMDose | null;
|
|
254
|
+
journal: VMJournalRow[] | null;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Derive the full view-model from the staged config, the bound data's columns
|
|
258
|
+
* and the (possibly absent) single experiment result.
|
|
259
|
+
*
|
|
260
|
+
* @param config - The staged {@link ConfigValue}.
|
|
261
|
+
* @param cols - The bound dataset's columns (name + type family).
|
|
262
|
+
* @param result - The experiment result, or `null` until the first Run settles.
|
|
263
|
+
* @param journal - Committed rows, or `null`.
|
|
264
|
+
* @param meta - Optional per-column display metadata.
|
|
265
|
+
* @param dataLen - Row count of the bound dataset (for the header label).
|
|
266
|
+
* @param now - "Now" for relative journal timestamps (injected for determinism).
|
|
267
|
+
*/
|
|
268
|
+
export declare function deriveView(config: ConfigValue, ranConfig: ConfigValue, cols: Column[], result: ResultValue | null, journal: JournalRowValue[] | null, meta: ColMeta | undefined, dataLen: number, now: Date): ExperimentView;
|
|
269
|
+
/** Decoded `ExperimentDesignType` (the `design` function's result). */
|
|
270
|
+
export interface DesignValue {
|
|
271
|
+
verdict: VerdictValue;
|
|
272
|
+
basis: {
|
|
273
|
+
type: string;
|
|
274
|
+
};
|
|
275
|
+
target_effect: number;
|
|
276
|
+
outcome_sd: number;
|
|
277
|
+
target_power: number;
|
|
278
|
+
alpha: number;
|
|
279
|
+
current_power: Opt<number>;
|
|
280
|
+
match_on: string[];
|
|
281
|
+
options: {
|
|
282
|
+
label: string;
|
|
283
|
+
treated_share: number;
|
|
284
|
+
n_treated: bigint;
|
|
285
|
+
n_control: bigint;
|
|
286
|
+
n_total: bigint;
|
|
287
|
+
}[];
|
|
288
|
+
power_curve: {
|
|
289
|
+
n: VecI;
|
|
290
|
+
power: Vec;
|
|
291
|
+
};
|
|
292
|
+
rationale: string;
|
|
293
|
+
}
|
|
294
|
+
export interface VMDesignOption {
|
|
295
|
+
label: string;
|
|
296
|
+
nTotal: number;
|
|
297
|
+
nTreated: number;
|
|
298
|
+
nControl: number;
|
|
299
|
+
treatedShare: number;
|
|
300
|
+
}
|
|
301
|
+
export interface VMDesignMatch {
|
|
302
|
+
col: string;
|
|
303
|
+
frac: number;
|
|
304
|
+
tone: string;
|
|
305
|
+
display: string;
|
|
306
|
+
}
|
|
307
|
+
export interface VMDesign {
|
|
308
|
+
/** Verdict-framed eyebrow headline. */
|
|
309
|
+
headline: string;
|
|
310
|
+
rationale: string;
|
|
311
|
+
/** The recommended (first) option — the KPI + split meter read from this. */
|
|
312
|
+
primary: VMDesignOption;
|
|
313
|
+
/** Alternate split options (rows under the primary). */
|
|
314
|
+
alternates: VMDesignOption[];
|
|
315
|
+
/** Categories to match the arms on, with imbalance bar widths from the result. */
|
|
316
|
+
matchOn: VMDesignMatch[];
|
|
317
|
+
/** Power curve: total-N → chance of detecting (0..100), with target + "you're here". */
|
|
318
|
+
curve: {
|
|
319
|
+
mid: number[];
|
|
320
|
+
xTicks: string[];
|
|
321
|
+
marks: VMDoseMark[];
|
|
322
|
+
};
|
|
323
|
+
/** Signed target effect with unit, e.g. "+5.2 MPa". */
|
|
324
|
+
targetLabel: string;
|
|
325
|
+
targetPctLabel: string;
|
|
326
|
+
/** create_control → frame the split as a hold-back; no current-power marker. */
|
|
327
|
+
holdback: boolean;
|
|
328
|
+
/** non_identifiable_positivity → point at the overlap chart. */
|
|
329
|
+
showOverlap: boolean;
|
|
330
|
+
/** Effect too faint to size sanely — the head-count is a capped sentinel. */
|
|
331
|
+
faint: boolean;
|
|
332
|
+
}
|
|
333
|
+
/** Design value → the "Validate" tab view-model (numbers → recipe + chart). */
|
|
334
|
+
export declare function deriveDesign(d: DesignValue, result: ResultValue | null, ranConfig: ConfigValue, meta: ColMeta | undefined): VMDesign;
|
|
335
|
+
export { getOpt, fmt, signed, cap, unitOf };
|
|
336
|
+
//# sourceMappingURL=derive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/experiment/derive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOxC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAChF,KAAK,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAChE,KAAK,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,KAAK,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,EAAE;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAEpD,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IACrE,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;CACzB;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,mBAAmB,GAAG,4BAA4B,CAAC,CAAC,CAAC;IACrE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACnI,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;CAAE;AAC9D,MAAM,WAAW,YAAY;IACzB,kBAAkB,EAAE,GAAG,CAAC;IAAC,kBAAkB,EAAE,GAAG,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAC;CACvD;AACD,MAAM,WAAW,gBAAgB;IAAG,SAAS,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE;AAClE,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,mBAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9D,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACtC;AACD,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;CACzF;AACD,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAClB,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,GAChF,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IACzE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;CACzB;AACD,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjF,YAAY,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;CAC5C;AACD,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAE3G,uEAAuE;AACvE,MAAM,WAAW,MAAM;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAA;CAAE;AAMjH,MAAM,WAAW,SAAS;IAAG,GAAG,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC3E,MAAM,WAAW,YAAY;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC7G,MAAM,WAAW,MAAM;IACnB,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAC/E,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,YAAY,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACpE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CACrD;AACD,MAAM,WAAW,SAAS;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACzH,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IACxF,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IACxF,OAAO,EAAE,SAAS,EAAE,CAAC;CACxB;AACD,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,YAAY,GAAG,eAAe,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AACD;8DAC8D;AAC9D,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;CAC1E;AACD,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC7H,MAAM,WAAW,QAAQ;IAAG,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE;AACjF,MAAM,WAAW,aAAa;IAAG,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE;AAChH,MAAM,WAAW,UAAU;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,WAAW,UAAU;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC1E,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAC;IAC5E,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IACtE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;CAC5C;AACD,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CACnE;AAOD,QAAA,MAAM,MAAM,GAAI,CAAC,EAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,KAAG,CAAC,GAAG,SAA2D,CAAC;AAC5G,QAAA,MAAM,GAAG,GAAI,GAAG,MAAM,KAAG,MAKxB,CAAC;AACF,QAAA,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,MAG3B,CAAC;AAEF,QAAA,MAAM,GAAG,GAAI,GAAG,MAAM,KAAG,MAA0D,CAAC;AAWpF,QAAA,MAAM,MAAM,GAAI,MAAM,OAAO,GAAG,SAAS,EAAE,KAAK,MAAM,KAAG,MAAgD,CAAC;AAqW1G,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACtB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EACjC,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,IAAI,GACV,cAAc,CAiBhB;AAMD,uEAAuE;AACvE,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3G,WAAW,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AAC3H,MAAM,WAAW,aAAa;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC3F,MAAM,WAAW,QAAQ;IACrB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,cAAc,CAAC;IACxB,wDAAwD;IACxD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,kFAAkF;IAClF,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,wFAAwF;IACxF,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAChE,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,WAAW,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,KAAK,EAAE,OAAO,CAAC;CAClB;AAqBD,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAoEpI;AAGD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { HelpId } from './help.js';
|
|
3
|
+
/** Provide the guidance on/off state + the `{treatment}`/`{outcome}` nouns. */
|
|
4
|
+
export declare function GuidanceProvider({ on, vars, children }: {
|
|
5
|
+
on: boolean;
|
|
6
|
+
vars: Record<string, string>;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
/**
|
|
10
|
+
* Make an element its own help trigger — hovering the heading / value / label
|
|
11
|
+
* itself opens its glossary card (no separate icon to aim at). Renders children
|
|
12
|
+
* untouched when guidance is off. `display` defaults to `inline` so prose still
|
|
13
|
+
* wraps; pass `inline-flex` + `gap` to keep a multi-part row laid out.
|
|
14
|
+
*/
|
|
15
|
+
export declare function Help({ id, extraVars, children, display, gap }: {
|
|
16
|
+
id: HelpId;
|
|
17
|
+
extraVars?: Record<string, string> | undefined;
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
display?: 'inline' | 'inline-flex';
|
|
20
|
+
gap?: string;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
/** The header guidance toggle — an icon-only on/off button (no label). The filled
|
|
23
|
+
* (`subtle`) state + brand tint show guidance is active; ghost + muted is off.
|
|
24
|
+
* Hovering it always explains the feature (even when off), so it's discoverable. */
|
|
25
|
+
export declare function GuidanceToggle({ on, onToggle }: {
|
|
26
|
+
on: boolean;
|
|
27
|
+
onToggle: () => void;
|
|
28
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=help-ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-ui.d.ts","sourceRoot":"","sources":["../../src/experiment/help-ui.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AACH,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlE,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAKxD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAE1H;AA6CD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAkB,EAAE,GAAG,EAAE,EAAE;IACvE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAChF,OAAO,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACpD,2CAWA;AAED;;qFAEqF;AACrF,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,2CAWrF"}
|