@adriansteffan/reactive 0.0.42 → 0.0.44
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/.claude/settings.local.json +11 -2
- package/README.md +106 -3
- package/dist/{mod-UqYdghJl.js → mod-D6DlS3ur.js} +6483 -6120
- package/dist/mod.d.ts +54 -2
- package/dist/reactive.es.js +42 -33
- package/dist/reactive.umd.js +38 -36
- package/dist/style.css +1 -1
- package/dist/{web-pL-YTTVv.js → web-D7VcCd-t.js} +1 -1
- package/dist/{web-eGzX65_f.js → web-o3I0sgwu.js} +1 -1
- package/package.json +1 -1
- package/src/components/canvasblock.tsx +112 -70
- package/src/components/checkdevice.tsx +15 -0
- package/src/components/enterfullscreen.tsx +5 -3
- package/src/components/exitfullscreen.tsx +4 -1
- package/src/components/experimentprovider.tsx +7 -2
- package/src/components/experimentrunner.tsx +66 -52
- package/src/components/microphonecheck.tsx +3 -0
- package/src/components/mobilefilepermission.tsx +3 -0
- package/src/components/plaininput.tsx +17 -0
- package/src/components/prolificending.tsx +3 -0
- package/src/components/quest.tsx +58 -8
- package/src/components/storeui.tsx +15 -11
- package/src/components/text.tsx +11 -0
- package/src/components/upload.tsx +56 -271
- package/src/mod.tsx +1 -0
- package/src/utils/bytecode.ts +50 -0
- package/src/utils/simulation.ts +268 -0
- package/src/utils/upload.ts +299 -0
- package/template/README.md +59 -0
- package/template/backend/src/backend.ts +1 -0
- package/template/package.json +2 -0
- package/template/simulate.ts +15 -0
- package/template/src/Experiment.tsx +58 -5
- package/template/src/main.tsx +1 -1
- package/template/tsconfig.json +2 -3
- package/tsconfig.json +1 -0
- package/vite.config.ts +1 -1
package/dist/mod.d.ts
CHANGED
|
@@ -57,6 +57,11 @@ declare type ComponentResultData = BaseTrialData & {
|
|
|
57
57
|
metadata?: Record<string, any>;
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
+
declare interface ComponentSimulation {
|
|
61
|
+
simulate: SimulateFunction;
|
|
62
|
+
defaultSimulators: Record<string, any>;
|
|
63
|
+
}
|
|
64
|
+
|
|
60
65
|
declare type ComponentsMap = {
|
|
61
66
|
[key: string]: ComponentType<any>;
|
|
62
67
|
};
|
|
@@ -105,16 +110,18 @@ export declare interface ExperimentConfig {
|
|
|
105
110
|
showProgressBar: boolean;
|
|
106
111
|
}
|
|
107
112
|
|
|
108
|
-
export declare function ExperimentProvider({ children, disableSettings }: {
|
|
113
|
+
export declare function ExperimentProvider({ children, disableSettings, disableHybridSimulation }: {
|
|
109
114
|
children: ReactNode;
|
|
110
115
|
disableSettings?: boolean;
|
|
116
|
+
disableHybridSimulation?: boolean;
|
|
111
117
|
}): JSX_2.Element;
|
|
112
118
|
|
|
113
|
-
export declare function ExperimentRunner({ timeline, config, components, questions, }: {
|
|
119
|
+
export declare function ExperimentRunner({ timeline, config, components, questions, hybridParticipant, }: {
|
|
114
120
|
timeline: TimelineItem[];
|
|
115
121
|
config?: ExperimentConfig;
|
|
116
122
|
components?: ComponentsMap_2;
|
|
117
123
|
questions?: ComponentsMap_2;
|
|
124
|
+
hybridParticipant?: ParticipantState;
|
|
118
125
|
}): JSX_2.Element;
|
|
119
126
|
|
|
120
127
|
export declare interface FileUpload {
|
|
@@ -123,10 +130,16 @@ export declare interface FileUpload {
|
|
|
123
130
|
encoding?: 'base64' | 'utf8';
|
|
124
131
|
}
|
|
125
132
|
|
|
133
|
+
export declare function getBackendUrl(): string;
|
|
134
|
+
|
|
135
|
+
export declare function getInitialParticipant(): ParticipantState | undefined;
|
|
136
|
+
|
|
126
137
|
export declare function getParam<T extends ParamType>(name: string, defaultValue: ParamValue<T>, type?: T, description?: string): ParamValue<T>;
|
|
127
138
|
|
|
128
139
|
export declare const getPlatform: () => Platform;
|
|
129
140
|
|
|
141
|
+
export declare function getSimulation(type: string): ComponentSimulation | undefined;
|
|
142
|
+
|
|
130
143
|
declare interface IfBlockItem {
|
|
131
144
|
type: 'IF_BLOCK';
|
|
132
145
|
cond: ConditionalFunction;
|
|
@@ -152,8 +165,12 @@ export declare const MicCheck: ({ next }: {
|
|
|
152
165
|
next: (data: object) => void;
|
|
153
166
|
}) => JSX_2.Element;
|
|
154
167
|
|
|
168
|
+
export declare const noopSimulate: SimulateFunction;
|
|
169
|
+
|
|
155
170
|
export declare function now(): number;
|
|
156
171
|
|
|
172
|
+
export declare function orchestrateSimulation(config: RunSimulationConfig, scriptPath: string): Promise<void>;
|
|
173
|
+
|
|
157
174
|
export declare class Param {
|
|
158
175
|
static getRegistry(): any[];
|
|
159
176
|
static getTimelineRepresentation(): {
|
|
@@ -166,6 +183,8 @@ declare type ParamType = 'string' | 'number' | 'boolean' | 'array' | 'json';
|
|
|
166
183
|
|
|
167
184
|
declare type ParamValue<T extends ParamType> = T extends 'number' ? number : T extends 'boolean' ? boolean : T extends 'array' | 'json' ? any : string;
|
|
168
185
|
|
|
186
|
+
export declare type ParticipantState = Record<string, any>;
|
|
187
|
+
|
|
169
188
|
/**
|
|
170
189
|
* Applies a function to an array
|
|
171
190
|
*/
|
|
@@ -221,18 +240,51 @@ export declare function registerComponentParams(type: string, params: {
|
|
|
221
240
|
|
|
222
241
|
export declare function registerExperimentParams(experiment: any[]): void;
|
|
223
242
|
|
|
243
|
+
export declare function registerSimulation(type: string, simulate: SimulateFunction, defaultSimulators: Record<string, any>): void;
|
|
244
|
+
|
|
224
245
|
export declare function RequestFilePermission({ next }: BaseComponentProps): JSX_2.Element | null;
|
|
225
246
|
|
|
247
|
+
export declare function resolveSimulation(content: any, data: RefinedTrialData[], store: Store_2): {
|
|
248
|
+
trialProps: any;
|
|
249
|
+
simulateFn: any;
|
|
250
|
+
simulators: any;
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
export declare interface RunSimulationConfig {
|
|
254
|
+
participants: ParticipantState[] | {
|
|
255
|
+
generator: (index: number) => ParticipantState;
|
|
256
|
+
count: number;
|
|
257
|
+
};
|
|
258
|
+
backendPort?: number;
|
|
259
|
+
concurrency?: number;
|
|
260
|
+
}
|
|
261
|
+
|
|
226
262
|
/**
|
|
227
263
|
* Returns random elements from an array
|
|
228
264
|
*/
|
|
229
265
|
export declare function sample<T>(array: T[], n?: number): T[];
|
|
230
266
|
|
|
267
|
+
export declare function setBackendUrl(url: string): void;
|
|
268
|
+
|
|
231
269
|
/**
|
|
232
270
|
* Shuffles array elements using Fisher-Yates algorithm
|
|
233
271
|
*/
|
|
234
272
|
export declare function shuffle<T>(array: T[]): T[];
|
|
235
273
|
|
|
274
|
+
export declare type SimulateFunction = (trialProps: Record<string, any>, experimentState: {
|
|
275
|
+
data: RefinedTrialData[];
|
|
276
|
+
store: Store_2;
|
|
277
|
+
}, simulators: Record<string, any>, participant: ParticipantState) => SimulatorResult | Promise<SimulatorResult>;
|
|
278
|
+
|
|
279
|
+
export declare function simulateParticipant(timeline: TimelineItem[], participant: ParticipantState): Promise<RefinedTrialData[]>;
|
|
280
|
+
|
|
281
|
+
export declare type SimulatorResult = {
|
|
282
|
+
responseData: any;
|
|
283
|
+
participantState: ParticipantState;
|
|
284
|
+
storeUpdates?: Record<string, any>;
|
|
285
|
+
duration?: number;
|
|
286
|
+
};
|
|
287
|
+
|
|
236
288
|
export declare interface Store {
|
|
237
289
|
[key: string]: any;
|
|
238
290
|
}
|
package/dist/reactive.es.js
CHANGED
|
@@ -1,42 +1,51 @@
|
|
|
1
|
-
import { H as e,
|
|
1
|
+
import { H as e, F as t, G as i, A as n, B as r, C as o, D as l, Y as m, I as c, M as u, P as p, y as P, z as g, Q as x, R as d, J as k, T as C, K as E, U as S, X as T, k as f, c as h, L as v, N as B, u as F, v as I, g as U, e as w, m as y, d as D, i as R, o as q, n as A, x as M, p as Q, r as b, h as j, f as z, l as G, q as H, s as J, t as K, a as L, w as N, j as O, O as V, S as X, V as Y } from "./mod-D6DlS3ur.js";
|
|
2
2
|
export {
|
|
3
3
|
e as Bounce,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
t as CanvasBlock,
|
|
5
|
+
i as CheckDevice,
|
|
6
|
+
n as EnterFullscreen,
|
|
7
|
+
r as ExitFullscreen,
|
|
8
8
|
o as ExperimentProvider,
|
|
9
9
|
l as ExperimentRunner,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
m as Flip,
|
|
11
|
+
c as Icons,
|
|
12
|
+
u as MicCheck,
|
|
13
|
+
p as Param,
|
|
14
14
|
P as PlainInput,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
g as ProlificEnding,
|
|
16
|
+
x as Quest,
|
|
17
|
+
d as RequestFilePermission,
|
|
18
|
+
k as Slide,
|
|
19
|
+
C as Text,
|
|
20
|
+
E as ToastContainer,
|
|
21
|
+
S as Upload,
|
|
22
|
+
T as Zoom,
|
|
23
|
+
f as canvasCountdown,
|
|
24
24
|
h as chunk,
|
|
25
25
|
v as collapseToast,
|
|
26
26
|
B as cssTransition,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
F as getBackendUrl,
|
|
28
|
+
I as getInitialParticipant,
|
|
29
|
+
U as getParam,
|
|
30
|
+
w as getPlatform,
|
|
31
|
+
y as getSimulation,
|
|
32
|
+
D as isDesktop,
|
|
33
|
+
R as isFullscreen,
|
|
34
|
+
q as noopSimulate,
|
|
35
|
+
A as now,
|
|
36
|
+
M as orchestrateSimulation,
|
|
37
|
+
Q as pipe,
|
|
38
|
+
b as registerArrayExtensions,
|
|
39
|
+
j as registerComponentParams,
|
|
40
|
+
z as registerExperimentParams,
|
|
41
|
+
G as registerSimulation,
|
|
42
|
+
H as resolveSimulation,
|
|
43
|
+
J as sample,
|
|
44
|
+
K as setBackendUrl,
|
|
45
|
+
L as shuffle,
|
|
46
|
+
N as simulateParticipant,
|
|
47
|
+
O as subsetExperimentByParam,
|
|
48
|
+
V as toast,
|
|
49
|
+
X as useToast,
|
|
50
|
+
Y as useToastContainer
|
|
42
51
|
};
|