@morscherlab/mint-sdk 1.1.0 → 1.1.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/{EmptyState-DgBRoYAy.js → EmptyState-LMPS3keb.js} +3 -193
- package/dist/EmptyState-LMPS3keb.js.map +1 -0
- package/dist/{ExperimentPopover-BFw3QX8L.js → ExperimentPopover-D6_RGzTY.js} +113 -35
- package/dist/ExperimentPopover-D6_RGzTY.js.map +1 -0
- package/dist/{ExperimentSelectorModal-BBWXC7KW.js → ExperimentSelectorModal-CDNsNudn.js} +9 -11
- package/dist/ExperimentSelectorModal-CDNsNudn.js.map +1 -0
- package/dist/{SettingsModal-Dpg-X1OM.js → SettingsModal-BGBimSIA.js} +5 -5
- package/dist/{SettingsModal-Dpg-X1OM.js.map → SettingsModal-BGBimSIA.js.map} +1 -1
- package/dist/__stories__/experiment-helpers.d.ts +3 -0
- package/dist/__tests__/stores/experiment.test.d.ts +1 -0
- package/dist/{analysisArtifactTypes-ejqR8MX3.js → analysisArtifactTypes-DQ0MjwHZ.js} +1 -1
- package/dist/{analysisArtifactTypes-ejqR8MX3.js.map → analysisArtifactTypes-DQ0MjwHZ.js.map} +1 -1
- package/dist/components/ExperimentPopover.vue.d.ts +5 -0
- package/dist/components/ExperimentSelectorModal.vue.d.ts +1 -5
- package/dist/components/PluginWorkspaceView.props.d.ts +1 -4
- package/dist/components/PluginWorkspaceView.vue.d.ts +0 -1
- package/dist/components/SmartGroupFieldRecipe.vue.d.ts +2 -2
- package/dist/components/index.js +7 -7
- package/dist/{components-Ci_BTx00.js → components-BbOyjE2T.js} +24 -29
- package/dist/components-BbOyjE2T.js.map +1 -0
- package/dist/composables/experiment-utils.d.ts +10 -0
- package/dist/composables/index.d.ts +2 -2
- package/dist/composables/index.js +11 -10
- package/dist/composables/useAppExperiment.d.ts +29 -17
- package/dist/composables/usePlatformContext.d.ts +3 -3
- package/dist/{composables-C0VEJ73O.js → composables-CW8NRXLB.js} +5 -5
- package/dist/{composables-C0VEJ73O.js.map → composables-CW8NRXLB.js.map} +1 -1
- package/dist/experiment-Y9Iz7KYi.js +95 -0
- package/dist/experiment-Y9Iz7KYi.js.map +1 -0
- package/dist/{experiment-utils-CxkruZ3G.js → experiment-utils-7Yw-h0tD.js} +16 -2
- package/dist/{experiment-utils-CxkruZ3G.js.map → experiment-utils-7Yw-h0tD.js.map} +1 -1
- package/dist/index.js +16 -15
- package/dist/index.js.map +1 -1
- package/dist/install.js +7 -7
- package/dist/{plotly.min-BR53hja4.js → plotly.min-c2Sez60c.js} +1 -1
- package/dist/{plotly.min-BR53hja4.js.map → plotly.min-c2Sez60c.js.map} +1 -1
- package/dist/stores/auth.d.ts +6 -6
- package/dist/stores/experiment.d.ts +166 -0
- package/dist/stores/index.d.ts +1 -0
- package/dist/stores/index.js +3 -2
- package/dist/styles.css +188 -0
- package/dist/templates/index.js +4 -4
- package/dist/{templates-Cdj93S9C.js → templates-CJRFiWUX.js} +2 -2
- package/dist/{templates-Cdj93S9C.js.map → templates-CJRFiWUX.js.map} +1 -1
- package/dist/types/auth.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/platform.d.ts +1 -1
- package/dist/{auth-B87xM--s.js → useApi-CDBq6z23.js} +191 -2
- package/dist/useApi-CDBq6z23.js.map +1 -0
- package/dist/{useControlSchema-B_qgU4rW.js → useControlSchema-BEAgLyyx.js} +5 -4
- package/dist/{useControlSchema-B_qgU4rW.js.map → useControlSchema-BEAgLyyx.js.map} +1 -1
- package/dist/{useDropdownState-gVaMXtwW.js → useDropdownState-Be-ug_ci.js} +2 -2
- package/dist/{useDropdownState-gVaMXtwW.js.map → useDropdownState-Be-ug_ci.js.map} +1 -1
- package/dist/{useExperimentSelector-BuQZRgMt.js → useExperimentSelector-Dld4841S.js} +4 -3
- package/dist/{useExperimentSelector-BuQZRgMt.js.map → useExperimentSelector-Dld4841S.js.map} +1 -1
- package/dist/{useFormBuilder-D1G5J5Z5.js → useFormBuilder-CR9pBApW.js} +2 -2
- package/dist/{useFormBuilder-D1G5J5Z5.js.map → useFormBuilder-CR9pBApW.js.map} +1 -1
- package/dist/{useProtocolTemplates-DeaOmMaw.js → useProtocolTemplates-DXeIHMwV.js} +38 -42
- package/dist/useProtocolTemplates-DXeIHMwV.js.map +1 -0
- package/package.json +1 -1
- package/src/__stories__/experiment-helpers.ts +12 -9
- package/src/__tests__/components/AppTopBar.test.ts +10 -6
- package/src/__tests__/components/ExperimentPopover.test.ts +64 -0
- package/src/__tests__/components/ExperimentSelectorModal.test.ts +86 -41
- package/src/__tests__/components/PluginWorkspaceView.test.ts +103 -19
- package/src/__tests__/components/SettingsModal.test.ts +1 -1
- package/src/__tests__/composables/experiment-utils.test.ts +33 -0
- package/src/__tests__/composables/useAppExperiment.test.ts +331 -92
- package/src/__tests__/composables/useAuth.test.ts +2 -2
- package/src/__tests__/composables/usePlatformContext.test.ts +5 -1
- package/src/__tests__/stores/experiment.test.ts +300 -0
- package/src/components/AppTopBar.vue +0 -2
- package/src/components/ExperimentPopover.story.vue +59 -0
- package/src/components/ExperimentPopover.vue +96 -6
- package/src/components/ExperimentSelectorModal.story.vue +6 -16
- package/src/components/ExperimentSelectorModal.vue +8 -4
- package/src/components/PluginWorkspaceView.props.ts +1 -4
- package/src/components/PluginWorkspaceView.story.vue +12 -5
- package/src/components/PluginWorkspaceView.vue +0 -2
- package/src/composables/experiment-utils.ts +22 -0
- package/src/composables/index.ts +1 -2
- package/src/composables/useAppExperiment.ts +57 -67
- package/src/composables/useAuth.ts +1 -1
- package/src/stores/experiment.ts +120 -0
- package/src/stores/index.ts +1 -0
- package/src/styles/components/experiment-popover.css +105 -0
- package/src/types/auth.ts +1 -1
- package/src/types/platform.ts +1 -1
- package/dist/EmptyState-DgBRoYAy.js.map +0 -1
- package/dist/ExperimentPopover-BFw3QX8L.js.map +0 -1
- package/dist/ExperimentSelectorModal-BBWXC7KW.js.map +0 -1
- package/dist/auth-B87xM--s.js.map +0 -1
- package/dist/components-Ci_BTx00.js.map +0 -1
- package/dist/useProtocolTemplates-DeaOmMaw.js.map +0 -1
package/dist/stores/auth.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export declare const useAuthStore: import('pinia').StoreDefinition<"mint-auth",
|
|
|
4
4
|
tokenExpires: import('vue').Ref<Date | null, Date | null>;
|
|
5
5
|
username: import('vue').Ref<string | null, string | null>;
|
|
6
6
|
userInfo: import('vue').Ref<{
|
|
7
|
-
id:
|
|
7
|
+
id: number;
|
|
8
8
|
username: string;
|
|
9
9
|
shortname: string | null;
|
|
10
10
|
email: string | null;
|
|
@@ -20,7 +20,7 @@ export declare const useAuthStore: import('pinia').StoreDefinition<"mint-auth",
|
|
|
20
20
|
} | null | undefined;
|
|
21
21
|
isActive: boolean;
|
|
22
22
|
} | null, UserInfo | {
|
|
23
|
-
id:
|
|
23
|
+
id: number;
|
|
24
24
|
username: string;
|
|
25
25
|
shortname: string | null;
|
|
26
26
|
email: string | null;
|
|
@@ -78,7 +78,7 @@ export declare const useAuthStore: import('pinia').StoreDefinition<"mint-auth",
|
|
|
78
78
|
tokenExpires: import('vue').Ref<Date | null, Date | null>;
|
|
79
79
|
username: import('vue').Ref<string | null, string | null>;
|
|
80
80
|
userInfo: import('vue').Ref<{
|
|
81
|
-
id:
|
|
81
|
+
id: number;
|
|
82
82
|
username: string;
|
|
83
83
|
shortname: string | null;
|
|
84
84
|
email: string | null;
|
|
@@ -94,7 +94,7 @@ export declare const useAuthStore: import('pinia').StoreDefinition<"mint-auth",
|
|
|
94
94
|
} | null | undefined;
|
|
95
95
|
isActive: boolean;
|
|
96
96
|
} | null, UserInfo | {
|
|
97
|
-
id:
|
|
97
|
+
id: number;
|
|
98
98
|
username: string;
|
|
99
99
|
shortname: string | null;
|
|
100
100
|
email: string | null;
|
|
@@ -152,7 +152,7 @@ export declare const useAuthStore: import('pinia').StoreDefinition<"mint-auth",
|
|
|
152
152
|
tokenExpires: import('vue').Ref<Date | null, Date | null>;
|
|
153
153
|
username: import('vue').Ref<string | null, string | null>;
|
|
154
154
|
userInfo: import('vue').Ref<{
|
|
155
|
-
id:
|
|
155
|
+
id: number;
|
|
156
156
|
username: string;
|
|
157
157
|
shortname: string | null;
|
|
158
158
|
email: string | null;
|
|
@@ -168,7 +168,7 @@ export declare const useAuthStore: import('pinia').StoreDefinition<"mint-auth",
|
|
|
168
168
|
} | null | undefined;
|
|
169
169
|
isActive: boolean;
|
|
170
170
|
} | null, UserInfo | {
|
|
171
|
-
id:
|
|
171
|
+
id: number;
|
|
172
172
|
username: string;
|
|
173
173
|
shortname: string | null;
|
|
174
174
|
email: string | null;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { ExperimentSummary } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* The single source of truth for the experiment a plugin is currently working on.
|
|
4
|
+
*
|
|
5
|
+
* Both entry points land here: `ExperimentSelectorModal` calls `select()` with a
|
|
6
|
+
* record the platform already returned, and deep links call `selectById()` with
|
|
7
|
+
* nothing but an id. Because a name can only ever arrive from the platform,
|
|
8
|
+
* there is no code path in which a caller can invent one.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useExperimentStore: import('pinia').StoreDefinition<"mint-experiment", Pick<{
|
|
11
|
+
current: import('vue').Ref<{
|
|
12
|
+
id: number;
|
|
13
|
+
experiment_code?: string | undefined;
|
|
14
|
+
name: string;
|
|
15
|
+
status: import('..').ExperimentStatus;
|
|
16
|
+
experiment_type: string;
|
|
17
|
+
project?: string | undefined;
|
|
18
|
+
project_id?: number | undefined;
|
|
19
|
+
project_name?: string | undefined;
|
|
20
|
+
notes?: string | undefined;
|
|
21
|
+
tags?: Record<string, unknown> | undefined;
|
|
22
|
+
created_at: string;
|
|
23
|
+
updated_at: string;
|
|
24
|
+
created_by?: number | undefined;
|
|
25
|
+
created_by_user?: {
|
|
26
|
+
id: number;
|
|
27
|
+
username: string;
|
|
28
|
+
shortname?: string | undefined;
|
|
29
|
+
first_name?: string | undefined;
|
|
30
|
+
last_name?: string | undefined;
|
|
31
|
+
} | undefined;
|
|
32
|
+
has_design_data: boolean;
|
|
33
|
+
} | null, ExperimentSummary | {
|
|
34
|
+
id: number;
|
|
35
|
+
experiment_code?: string | undefined;
|
|
36
|
+
name: string;
|
|
37
|
+
status: import('..').ExperimentStatus;
|
|
38
|
+
experiment_type: string;
|
|
39
|
+
project?: string | undefined;
|
|
40
|
+
project_id?: number | undefined;
|
|
41
|
+
project_name?: string | undefined;
|
|
42
|
+
notes?: string | undefined;
|
|
43
|
+
tags?: Record<string, unknown> | undefined;
|
|
44
|
+
created_at: string;
|
|
45
|
+
updated_at: string;
|
|
46
|
+
created_by?: number | undefined;
|
|
47
|
+
created_by_user?: {
|
|
48
|
+
id: number;
|
|
49
|
+
username: string;
|
|
50
|
+
shortname?: string | undefined;
|
|
51
|
+
first_name?: string | undefined;
|
|
52
|
+
last_name?: string | undefined;
|
|
53
|
+
} | undefined;
|
|
54
|
+
has_design_data: boolean;
|
|
55
|
+
} | null>;
|
|
56
|
+
currentId: import('vue').Ref<number | null, number | null>;
|
|
57
|
+
isResolving: import('vue').Ref<boolean, boolean>;
|
|
58
|
+
error: import('vue').Ref<string | null, string | null>;
|
|
59
|
+
select: (experiment: ExperimentSummary) => void;
|
|
60
|
+
selectById: (id: number) => Promise<ExperimentSummary | null>;
|
|
61
|
+
clear: () => void;
|
|
62
|
+
}, "error" | "current" | "currentId" | "isResolving">, Pick<{
|
|
63
|
+
current: import('vue').Ref<{
|
|
64
|
+
id: number;
|
|
65
|
+
experiment_code?: string | undefined;
|
|
66
|
+
name: string;
|
|
67
|
+
status: import('..').ExperimentStatus;
|
|
68
|
+
experiment_type: string;
|
|
69
|
+
project?: string | undefined;
|
|
70
|
+
project_id?: number | undefined;
|
|
71
|
+
project_name?: string | undefined;
|
|
72
|
+
notes?: string | undefined;
|
|
73
|
+
tags?: Record<string, unknown> | undefined;
|
|
74
|
+
created_at: string;
|
|
75
|
+
updated_at: string;
|
|
76
|
+
created_by?: number | undefined;
|
|
77
|
+
created_by_user?: {
|
|
78
|
+
id: number;
|
|
79
|
+
username: string;
|
|
80
|
+
shortname?: string | undefined;
|
|
81
|
+
first_name?: string | undefined;
|
|
82
|
+
last_name?: string | undefined;
|
|
83
|
+
} | undefined;
|
|
84
|
+
has_design_data: boolean;
|
|
85
|
+
} | null, ExperimentSummary | {
|
|
86
|
+
id: number;
|
|
87
|
+
experiment_code?: string | undefined;
|
|
88
|
+
name: string;
|
|
89
|
+
status: import('..').ExperimentStatus;
|
|
90
|
+
experiment_type: string;
|
|
91
|
+
project?: string | undefined;
|
|
92
|
+
project_id?: number | undefined;
|
|
93
|
+
project_name?: string | undefined;
|
|
94
|
+
notes?: string | undefined;
|
|
95
|
+
tags?: Record<string, unknown> | undefined;
|
|
96
|
+
created_at: string;
|
|
97
|
+
updated_at: string;
|
|
98
|
+
created_by?: number | undefined;
|
|
99
|
+
created_by_user?: {
|
|
100
|
+
id: number;
|
|
101
|
+
username: string;
|
|
102
|
+
shortname?: string | undefined;
|
|
103
|
+
first_name?: string | undefined;
|
|
104
|
+
last_name?: string | undefined;
|
|
105
|
+
} | undefined;
|
|
106
|
+
has_design_data: boolean;
|
|
107
|
+
} | null>;
|
|
108
|
+
currentId: import('vue').Ref<number | null, number | null>;
|
|
109
|
+
isResolving: import('vue').Ref<boolean, boolean>;
|
|
110
|
+
error: import('vue').Ref<string | null, string | null>;
|
|
111
|
+
select: (experiment: ExperimentSummary) => void;
|
|
112
|
+
selectById: (id: number) => Promise<ExperimentSummary | null>;
|
|
113
|
+
clear: () => void;
|
|
114
|
+
}, never>, Pick<{
|
|
115
|
+
current: import('vue').Ref<{
|
|
116
|
+
id: number;
|
|
117
|
+
experiment_code?: string | undefined;
|
|
118
|
+
name: string;
|
|
119
|
+
status: import('..').ExperimentStatus;
|
|
120
|
+
experiment_type: string;
|
|
121
|
+
project?: string | undefined;
|
|
122
|
+
project_id?: number | undefined;
|
|
123
|
+
project_name?: string | undefined;
|
|
124
|
+
notes?: string | undefined;
|
|
125
|
+
tags?: Record<string, unknown> | undefined;
|
|
126
|
+
created_at: string;
|
|
127
|
+
updated_at: string;
|
|
128
|
+
created_by?: number | undefined;
|
|
129
|
+
created_by_user?: {
|
|
130
|
+
id: number;
|
|
131
|
+
username: string;
|
|
132
|
+
shortname?: string | undefined;
|
|
133
|
+
first_name?: string | undefined;
|
|
134
|
+
last_name?: string | undefined;
|
|
135
|
+
} | undefined;
|
|
136
|
+
has_design_data: boolean;
|
|
137
|
+
} | null, ExperimentSummary | {
|
|
138
|
+
id: number;
|
|
139
|
+
experiment_code?: string | undefined;
|
|
140
|
+
name: string;
|
|
141
|
+
status: import('..').ExperimentStatus;
|
|
142
|
+
experiment_type: string;
|
|
143
|
+
project?: string | undefined;
|
|
144
|
+
project_id?: number | undefined;
|
|
145
|
+
project_name?: string | undefined;
|
|
146
|
+
notes?: string | undefined;
|
|
147
|
+
tags?: Record<string, unknown> | undefined;
|
|
148
|
+
created_at: string;
|
|
149
|
+
updated_at: string;
|
|
150
|
+
created_by?: number | undefined;
|
|
151
|
+
created_by_user?: {
|
|
152
|
+
id: number;
|
|
153
|
+
username: string;
|
|
154
|
+
shortname?: string | undefined;
|
|
155
|
+
first_name?: string | undefined;
|
|
156
|
+
last_name?: string | undefined;
|
|
157
|
+
} | undefined;
|
|
158
|
+
has_design_data: boolean;
|
|
159
|
+
} | null>;
|
|
160
|
+
currentId: import('vue').Ref<number | null, number | null>;
|
|
161
|
+
isResolving: import('vue').Ref<boolean, boolean>;
|
|
162
|
+
error: import('vue').Ref<string | null, string | null>;
|
|
163
|
+
select: (experiment: ExperimentSummary) => void;
|
|
164
|
+
selectById: (id: number) => Promise<ExperimentSummary | null>;
|
|
165
|
+
clear: () => void;
|
|
166
|
+
}, "select" | "clear" | "selectById">>;
|
package/dist/stores/index.d.ts
CHANGED
package/dist/stores/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { a as colorPalettes, i as useAuthStore, o as useSettingsStore } from "../useApi-CDBq6z23.js";
|
|
2
|
+
import { t as useExperimentStore } from "../experiment-Y9Iz7KYi.js";
|
|
3
|
+
export { colorPalettes, useAuthStore, useExperimentStore, useSettingsStore };
|
package/dist/styles.css
CHANGED
|
@@ -4175,6 +4175,44 @@ html.dark .mint-pill__remove:hover {
|
|
|
4175
4175
|
.mint-experiment-popover__trigger--active .mint-experiment-popover__trigger-code {
|
|
4176
4176
|
color: var(--color-primary);
|
|
4177
4177
|
}
|
|
4178
|
+
|
|
4179
|
+
/* ─── Unresolved states ───
|
|
4180
|
+
An experiment is bound but has no name yet. The chip must not read "No
|
|
4181
|
+
experiment", and it must never fall back to the numeric id — a name only
|
|
4182
|
+
ever comes from the platform. */
|
|
4183
|
+
.mint-experiment-popover__trigger--loading {
|
|
4184
|
+
cursor: progress;
|
|
4185
|
+
}
|
|
4186
|
+
.mint-experiment-popover__trigger--loading .mint-experiment-popover__trigger-icon {
|
|
4187
|
+
color: var(--text-muted);
|
|
4188
|
+
}
|
|
4189
|
+
.mint-experiment-popover__trigger--error {
|
|
4190
|
+
border-color: var(--mint-error-border);
|
|
4191
|
+
background: var(--mint-error-bg);
|
|
4192
|
+
color: var(--mint-error);
|
|
4193
|
+
}
|
|
4194
|
+
.mint-experiment-popover__trigger--error .mint-experiment-popover__trigger-icon,
|
|
4195
|
+
.mint-experiment-popover__trigger--error .mint-experiment-popover__trigger-chevron {
|
|
4196
|
+
color: var(--mint-error);
|
|
4197
|
+
}
|
|
4198
|
+
|
|
4199
|
+
/* Placeholder bar standing in for the name while it resolves. */
|
|
4200
|
+
.mint-experiment-popover__trigger-skeleton {
|
|
4201
|
+
flex: 1;
|
|
4202
|
+
min-width: 4.5rem;
|
|
4203
|
+
height: 0.625rem;
|
|
4204
|
+
border-radius: var(--radius-sm);
|
|
4205
|
+
background-color: var(--bg-tertiary);
|
|
4206
|
+
background-image: linear-gradient(
|
|
4207
|
+
90deg,
|
|
4208
|
+
var(--bg-tertiary) 0%,
|
|
4209
|
+
var(--bg-hover) 40%,
|
|
4210
|
+
var(--bg-tertiary) 60%
|
|
4211
|
+
);
|
|
4212
|
+
background-size: 200% 100%;
|
|
4213
|
+
background-repeat: no-repeat;
|
|
4214
|
+
animation: mint-experiment-popover-shimmer 1.6s ease-in-out infinite;
|
|
4215
|
+
}
|
|
4178
4216
|
.mint-experiment-popover__trigger-chevron {
|
|
4179
4217
|
width: 0.8125rem;
|
|
4180
4218
|
height: 0.8125rem;
|
|
@@ -4429,6 +4467,53 @@ html.dark .mint-pill__remove:hover {
|
|
|
4429
4467
|
line-height: 1.3;
|
|
4430
4468
|
}
|
|
4431
4469
|
|
|
4470
|
+
/* ─── Card: unresolved variants ─── */
|
|
4471
|
+
.mint-experiment-popover__card--error {
|
|
4472
|
+
background: var(--mint-error-bg);
|
|
4473
|
+
}
|
|
4474
|
+
.mint-experiment-popover__card-icon--error {
|
|
4475
|
+
background: transparent;
|
|
4476
|
+
}
|
|
4477
|
+
.mint-experiment-popover__card-icon--error svg {
|
|
4478
|
+
color: var(--mint-error);
|
|
4479
|
+
}
|
|
4480
|
+
.mint-experiment-popover__card-message {
|
|
4481
|
+
font-size: 0.6875rem;
|
|
4482
|
+
color: var(--text-secondary);
|
|
4483
|
+
line-height: 1.4;
|
|
4484
|
+
overflow-wrap: anywhere;
|
|
4485
|
+
}
|
|
4486
|
+
|
|
4487
|
+
/* Placeholder lines mirroring the code / name / status stack of a real card. */
|
|
4488
|
+
.mint-experiment-popover__skeleton-line {
|
|
4489
|
+
display: block;
|
|
4490
|
+
height: 0.625rem;
|
|
4491
|
+
border-radius: var(--radius-sm);
|
|
4492
|
+
background-color: var(--bg-hover);
|
|
4493
|
+
background-image: linear-gradient(
|
|
4494
|
+
90deg,
|
|
4495
|
+
var(--bg-hover) 0%,
|
|
4496
|
+
var(--bg-secondary) 40%,
|
|
4497
|
+
var(--bg-hover) 60%
|
|
4498
|
+
);
|
|
4499
|
+
background-size: 200% 100%;
|
|
4500
|
+
background-repeat: no-repeat;
|
|
4501
|
+
animation: mint-experiment-popover-shimmer 1.6s ease-in-out infinite;
|
|
4502
|
+
}
|
|
4503
|
+
.mint-experiment-popover__skeleton-line--code {
|
|
4504
|
+
width: 3.5rem;
|
|
4505
|
+
height: 0.75rem;
|
|
4506
|
+
border-radius: 9999px;
|
|
4507
|
+
}
|
|
4508
|
+
.mint-experiment-popover__skeleton-line--name {
|
|
4509
|
+
width: 100%;
|
|
4510
|
+
margin-top: 0.25rem;
|
|
4511
|
+
}
|
|
4512
|
+
.mint-experiment-popover__skeleton-line--status {
|
|
4513
|
+
width: 45%;
|
|
4514
|
+
margin-top: 0.25rem;
|
|
4515
|
+
}
|
|
4516
|
+
|
|
4432
4517
|
/* Action row sits BELOW the card (was inside) so the buttons have
|
|
4433
4518
|
room to breathe and don't compete with the info stack. */
|
|
4434
4519
|
.mint-experiment-popover__card-actions {
|
|
@@ -4559,6 +4644,12 @@ html.dark .mint-pill__remove:hover {
|
|
|
4559
4644
|
to { transform: rotate(360deg);
|
|
4560
4645
|
}
|
|
4561
4646
|
}
|
|
4647
|
+
@keyframes mint-experiment-popover-shimmer {
|
|
4648
|
+
0% { background-position: 100% 0;
|
|
4649
|
+
}
|
|
4650
|
+
100% { background-position: -100% 0;
|
|
4651
|
+
}
|
|
4652
|
+
}
|
|
4562
4653
|
|
|
4563
4654
|
/* Respect motion preferences */
|
|
4564
4655
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -4584,6 +4675,12 @@ to { transform: rotate(360deg);
|
|
|
4584
4675
|
}
|
|
4585
4676
|
.mint-experiment-popover__trigger-chevron {
|
|
4586
4677
|
transition: none;
|
|
4678
|
+
}
|
|
4679
|
+
/* Placeholders stay as flat blocks — still legible as "not loaded yet". */
|
|
4680
|
+
.mint-experiment-popover__trigger-skeleton,
|
|
4681
|
+
.mint-experiment-popover__skeleton-line {
|
|
4682
|
+
animation: none;
|
|
4683
|
+
background-image: none;
|
|
4587
4684
|
}
|
|
4588
4685
|
}
|
|
4589
4686
|
.mint-exp-code {
|
|
@@ -35617,6 +35714,42 @@ html.dark .mint-experiment-selector__filters-toggle--active {
|
|
|
35617
35714
|
.mint-experiment-popover__trigger--active .mint-experiment-popover__trigger-code {
|
|
35618
35715
|
color: var(--color-primary);
|
|
35619
35716
|
}
|
|
35717
|
+
/* ─── Unresolved states ───
|
|
35718
|
+
An experiment is bound but has no name yet. The chip must not read "No
|
|
35719
|
+
experiment", and it must never fall back to the numeric id — a name only
|
|
35720
|
+
ever comes from the platform. */
|
|
35721
|
+
.mint-experiment-popover__trigger--loading {
|
|
35722
|
+
cursor: progress;
|
|
35723
|
+
}
|
|
35724
|
+
.mint-experiment-popover__trigger--loading .mint-experiment-popover__trigger-icon {
|
|
35725
|
+
color: var(--text-muted);
|
|
35726
|
+
}
|
|
35727
|
+
.mint-experiment-popover__trigger--error {
|
|
35728
|
+
border-color: var(--mint-error-border);
|
|
35729
|
+
background: var(--mint-error-bg);
|
|
35730
|
+
color: var(--mint-error);
|
|
35731
|
+
}
|
|
35732
|
+
.mint-experiment-popover__trigger--error .mint-experiment-popover__trigger-icon,
|
|
35733
|
+
.mint-experiment-popover__trigger--error .mint-experiment-popover__trigger-chevron {
|
|
35734
|
+
color: var(--mint-error);
|
|
35735
|
+
}
|
|
35736
|
+
/* Placeholder bar standing in for the name while it resolves. */
|
|
35737
|
+
.mint-experiment-popover__trigger-skeleton {
|
|
35738
|
+
flex: 1;
|
|
35739
|
+
min-width: 4.5rem;
|
|
35740
|
+
height: 0.625rem;
|
|
35741
|
+
border-radius: var(--radius-sm);
|
|
35742
|
+
background-color: var(--bg-tertiary);
|
|
35743
|
+
background-image: linear-gradient(
|
|
35744
|
+
90deg,
|
|
35745
|
+
var(--bg-tertiary) 0%,
|
|
35746
|
+
var(--bg-hover) 40%,
|
|
35747
|
+
var(--bg-tertiary) 60%
|
|
35748
|
+
);
|
|
35749
|
+
background-size: 200% 100%;
|
|
35750
|
+
background-repeat: no-repeat;
|
|
35751
|
+
animation: mint-experiment-popover-shimmer 1.6s ease-in-out infinite;
|
|
35752
|
+
}
|
|
35620
35753
|
.mint-experiment-popover__trigger-chevron {
|
|
35621
35754
|
width: 0.8125rem;
|
|
35622
35755
|
height: 0.8125rem;
|
|
@@ -35858,6 +35991,51 @@ html.dark .mint-experiment-selector__filters-toggle--active {
|
|
|
35858
35991
|
color: var(--text-muted);
|
|
35859
35992
|
line-height: 1.3;
|
|
35860
35993
|
}
|
|
35994
|
+
/* ─── Card: unresolved variants ─── */
|
|
35995
|
+
.mint-experiment-popover__card--error {
|
|
35996
|
+
background: var(--mint-error-bg);
|
|
35997
|
+
}
|
|
35998
|
+
.mint-experiment-popover__card-icon--error {
|
|
35999
|
+
background: transparent;
|
|
36000
|
+
}
|
|
36001
|
+
.mint-experiment-popover__card-icon--error svg {
|
|
36002
|
+
color: var(--mint-error);
|
|
36003
|
+
}
|
|
36004
|
+
.mint-experiment-popover__card-message {
|
|
36005
|
+
font-size: 0.6875rem;
|
|
36006
|
+
color: var(--text-secondary);
|
|
36007
|
+
line-height: 1.4;
|
|
36008
|
+
overflow-wrap: anywhere;
|
|
36009
|
+
}
|
|
36010
|
+
/* Placeholder lines mirroring the code / name / status stack of a real card. */
|
|
36011
|
+
.mint-experiment-popover__skeleton-line {
|
|
36012
|
+
display: block;
|
|
36013
|
+
height: 0.625rem;
|
|
36014
|
+
border-radius: var(--radius-sm);
|
|
36015
|
+
background-color: var(--bg-hover);
|
|
36016
|
+
background-image: linear-gradient(
|
|
36017
|
+
90deg,
|
|
36018
|
+
var(--bg-hover) 0%,
|
|
36019
|
+
var(--bg-secondary) 40%,
|
|
36020
|
+
var(--bg-hover) 60%
|
|
36021
|
+
);
|
|
36022
|
+
background-size: 200% 100%;
|
|
36023
|
+
background-repeat: no-repeat;
|
|
36024
|
+
animation: mint-experiment-popover-shimmer 1.6s ease-in-out infinite;
|
|
36025
|
+
}
|
|
36026
|
+
.mint-experiment-popover__skeleton-line--code {
|
|
36027
|
+
width: 3.5rem;
|
|
36028
|
+
height: 0.75rem;
|
|
36029
|
+
border-radius: 9999px;
|
|
36030
|
+
}
|
|
36031
|
+
.mint-experiment-popover__skeleton-line--name {
|
|
36032
|
+
width: 100%;
|
|
36033
|
+
margin-top: 0.25rem;
|
|
36034
|
+
}
|
|
36035
|
+
.mint-experiment-popover__skeleton-line--status {
|
|
36036
|
+
width: 45%;
|
|
36037
|
+
margin-top: 0.25rem;
|
|
36038
|
+
}
|
|
35861
36039
|
/* Action row sits BELOW the card (was inside) so the buttons have
|
|
35862
36040
|
room to breathe and don't compete with the info stack. */
|
|
35863
36041
|
.mint-experiment-popover__card-actions {
|
|
@@ -35985,6 +36163,10 @@ html.dark .mint-experiment-selector__filters-toggle--active {
|
|
|
35985
36163
|
@keyframes mint-experiment-popover-spin {
|
|
35986
36164
|
to { transform: rotate(360deg); }
|
|
35987
36165
|
}
|
|
36166
|
+
@keyframes mint-experiment-popover-shimmer {
|
|
36167
|
+
0% { background-position: 100% 0; }
|
|
36168
|
+
100% { background-position: -100% 0; }
|
|
36169
|
+
}
|
|
35988
36170
|
/* Respect motion preferences */
|
|
35989
36171
|
@media (prefers-reduced-motion: reduce) {
|
|
35990
36172
|
.mint-experiment-popover__trigger,
|
|
@@ -36010,6 +36192,12 @@ html.dark .mint-experiment-selector__filters-toggle--active {
|
|
|
36010
36192
|
.mint-experiment-popover__trigger-chevron {
|
|
36011
36193
|
transition: none;
|
|
36012
36194
|
}
|
|
36195
|
+
/* Placeholders stay as flat blocks — still legible as "not loaded yet". */
|
|
36196
|
+
.mint-experiment-popover__trigger-skeleton,
|
|
36197
|
+
.mint-experiment-popover__skeleton-line {
|
|
36198
|
+
animation: none;
|
|
36199
|
+
background-image: none;
|
|
36200
|
+
}
|
|
36013
36201
|
}
|
|
36014
36202
|
/* FitPanel Component Styles */
|
|
36015
36203
|
.mint-fit-panel {
|
package/dist/templates/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../experiment-utils-
|
|
2
|
-
import "../EmptyState-
|
|
3
|
-
import "../useControlSchema-
|
|
4
|
-
import { $ as toTimeCourseRows, $t as listBioTemplatePacks, A as createSamplePrepTemplate, At as toCalibrationCurveRows, B as toBioTemplateComponentProps, Bt as validatePlateMapData, C as createFlowCytometryPanelTemplate, Ct as toInstrumentRunScheduleEvents, D as createTimeCourseTemplate, Dt as toFlowPanelRows, E as createProtocolStepsTemplate, Et as toFlowPanelDataFrame, F as getBioTemplateComponentProps, Ft as validateAssayMatrixData, G as toTemplateDataFrame, Gt as validateSampleSheetData, H as toBioTemplateComponentPropsById, Ht as validateQpcrPlateData, I as listBioTemplateComponentBindings, It as validateCalibrationCurveData, J as toDoseLayoutState, Jt as getBioTemplatePresetInfo, K as toWellMapArray, Kt as validateTimeCourseData, L as toBioTemplateComponentBindings, Lt as validateDoseResponseData, M as createPlateMapTemplate, Mt as toAssayMatrixDataFrame, N as bioTemplatePresetControlValuesToOptions, Nt as toAssayMatrixRows, O as createCalibrationCurveTemplate, Ot as toCalibrationCurveColumns, P as getBioTemplateComponentBindings, Pt as toAssayMatrixSampleOptions, Q as toTimeCourseDataFrame, Qt as getBioTemplatePackInfo, R as toBioTemplateComponentBindingsById, Rt as validateFlowCytometryPanelData, S as createInstrumentRunTemplate, St as toInstrumentRunRows, T as createAssayMatrixTemplate, Tt as toFlowPanelColumns, U as toBioTemplateComponentSnippets, Ut as validateReagentListData, V as toBioTemplateComponentPropsByComponent, Vt as validateProtocolStepsData, W as toBioTemplateComponentUsage, Wt as validateSamplePrepData, X as toWellPlateWells, Xt as searchBioTemplatePresets, Y as toPlateMapEditorState, Yt as listBioTemplatePresets, Z as toTimeCourseColumns, Zt as bioTemplatePacks, _ as createElisaAssayCollection, _t as toProtocolDataFrame, a as getBioTemplateControlDefaults, an as TEMPLATE_COLLECTION_KEY, at as toSamplePrepColumns, b as createQpcrExpressionCollection, bt as toInstrumentRunColumns, c as listBioTemplatePresetControlSchemas, cn as createTemplateEnvelope, ct as toReagentColumns, d as createBioTemplatePresetCollectionFromControls, dn as extractTemplateCollection, dt as toReagentRows, en as searchBioTemplatePacks, et as toTimeCourseSteps, f as createWellPlateScreenCollection, fn as getTemplateData, ft as toQpcrColumns, g as createFlowCytometryAssayCollection, gt as toProtocolColumns, h as createWesternBlotAssayCollection, ht as toQpcrWellPlateWells, i as createBioTemplateControlToolkit, in as searchBioTemplateCatalog, it as toSampleRows, j as createSampleSheetTemplate, jt as toAssayMatrixColumns, k as createDoseResponseTemplate, kt as toCalibrationCurveDataFrame, l as requireBioTemplateControlSchema, ln as ensureTemplateEnvelope, lt as toReagentDataFrame, m as createDefaultBioTemplate, mt as toQpcrRows, n as bioTemplateControlsToSectionFormSchemas, nn as getBioTemplateInfo, nt as toSampleDataFrame, o as getBioTemplateControlSchema, on as assertTemplateEnvelope, ot as toSamplePrepDataFrame, p as createBioTemplatePackCollection, pt as toQpcrDataFrame, q as toDoseConditions, qt as bioTemplatePresets, r as bioTemplateControlsToSidebarPanels, rn as listBioTemplateCatalog, rt as toSampleOptions, s as listBioTemplateControlSchemas, sn as createTemplateCollection, st as toSamplePrepRows, t as bioTemplateControlsToFormSchema, tn as bioTemplateCatalog, tt as toSampleColumns, u as createBioTemplatePresetCollection, un as ensureTemplateFromCollection, ut as toReagentListItems, v as createTargetedMetabolomicsCollection, vt as toProtocolRows, w as createReagentListTemplate, wt as toInstrumentRunSteps, x as createQpcrPlateTemplate, xt as toInstrumentRunDataFrame, y as createLcmsBatchCollection, yt as toProtocolSteps, z as toBioTemplateComponentImports, zt as validateInstrumentRunData } from "../templates-
|
|
1
|
+
import "../experiment-utils-7Yw-h0tD.js";
|
|
2
|
+
import "../EmptyState-LMPS3keb.js";
|
|
3
|
+
import "../useControlSchema-BEAgLyyx.js";
|
|
4
|
+
import { $ as toTimeCourseRows, $t as listBioTemplatePacks, A as createSamplePrepTemplate, At as toCalibrationCurveRows, B as toBioTemplateComponentProps, Bt as validatePlateMapData, C as createFlowCytometryPanelTemplate, Ct as toInstrumentRunScheduleEvents, D as createTimeCourseTemplate, Dt as toFlowPanelRows, E as createProtocolStepsTemplate, Et as toFlowPanelDataFrame, F as getBioTemplateComponentProps, Ft as validateAssayMatrixData, G as toTemplateDataFrame, Gt as validateSampleSheetData, H as toBioTemplateComponentPropsById, Ht as validateQpcrPlateData, I as listBioTemplateComponentBindings, It as validateCalibrationCurveData, J as toDoseLayoutState, Jt as getBioTemplatePresetInfo, K as toWellMapArray, Kt as validateTimeCourseData, L as toBioTemplateComponentBindings, Lt as validateDoseResponseData, M as createPlateMapTemplate, Mt as toAssayMatrixDataFrame, N as bioTemplatePresetControlValuesToOptions, Nt as toAssayMatrixRows, O as createCalibrationCurveTemplate, Ot as toCalibrationCurveColumns, P as getBioTemplateComponentBindings, Pt as toAssayMatrixSampleOptions, Q as toTimeCourseDataFrame, Qt as getBioTemplatePackInfo, R as toBioTemplateComponentBindingsById, Rt as validateFlowCytometryPanelData, S as createInstrumentRunTemplate, St as toInstrumentRunRows, T as createAssayMatrixTemplate, Tt as toFlowPanelColumns, U as toBioTemplateComponentSnippets, Ut as validateReagentListData, V as toBioTemplateComponentPropsByComponent, Vt as validateProtocolStepsData, W as toBioTemplateComponentUsage, Wt as validateSamplePrepData, X as toWellPlateWells, Xt as searchBioTemplatePresets, Y as toPlateMapEditorState, Yt as listBioTemplatePresets, Z as toTimeCourseColumns, Zt as bioTemplatePacks, _ as createElisaAssayCollection, _t as toProtocolDataFrame, a as getBioTemplateControlDefaults, an as TEMPLATE_COLLECTION_KEY, at as toSamplePrepColumns, b as createQpcrExpressionCollection, bt as toInstrumentRunColumns, c as listBioTemplatePresetControlSchemas, cn as createTemplateEnvelope, ct as toReagentColumns, d as createBioTemplatePresetCollectionFromControls, dn as extractTemplateCollection, dt as toReagentRows, en as searchBioTemplatePacks, et as toTimeCourseSteps, f as createWellPlateScreenCollection, fn as getTemplateData, ft as toQpcrColumns, g as createFlowCytometryAssayCollection, gt as toProtocolColumns, h as createWesternBlotAssayCollection, ht as toQpcrWellPlateWells, i as createBioTemplateControlToolkit, in as searchBioTemplateCatalog, it as toSampleRows, j as createSampleSheetTemplate, jt as toAssayMatrixColumns, k as createDoseResponseTemplate, kt as toCalibrationCurveDataFrame, l as requireBioTemplateControlSchema, ln as ensureTemplateEnvelope, lt as toReagentDataFrame, m as createDefaultBioTemplate, mt as toQpcrRows, n as bioTemplateControlsToSectionFormSchemas, nn as getBioTemplateInfo, nt as toSampleDataFrame, o as getBioTemplateControlSchema, on as assertTemplateEnvelope, ot as toSamplePrepDataFrame, p as createBioTemplatePackCollection, pt as toQpcrDataFrame, q as toDoseConditions, qt as bioTemplatePresets, r as bioTemplateControlsToSidebarPanels, rn as listBioTemplateCatalog, rt as toSampleOptions, s as listBioTemplateControlSchemas, sn as createTemplateCollection, st as toSamplePrepRows, t as bioTemplateControlsToFormSchema, tn as bioTemplateCatalog, tt as toSampleColumns, u as createBioTemplatePresetCollection, un as ensureTemplateFromCollection, ut as toReagentListItems, v as createTargetedMetabolomicsCollection, vt as toProtocolRows, w as createReagentListTemplate, wt as toInstrumentRunSteps, x as createQpcrPlateTemplate, xt as toInstrumentRunDataFrame, y as createLcmsBatchCollection, yt as toProtocolSteps, z as toBioTemplateComponentImports, zt as validateInstrumentRunData } from "../templates-CJRFiWUX.js";
|
|
5
5
|
export { TEMPLATE_COLLECTION_KEY, assertTemplateEnvelope, bioTemplateCatalog, bioTemplateControlsToFormSchema, bioTemplateControlsToSectionFormSchemas, bioTemplateControlsToSidebarPanels, bioTemplatePacks, bioTemplatePresetControlValuesToOptions, bioTemplatePresets, createAssayMatrixTemplate, createBioTemplateControlToolkit, createBioTemplatePackCollection, createBioTemplatePresetCollection, createBioTemplatePresetCollectionFromControls, createCalibrationCurveTemplate, createDefaultBioTemplate, createDoseResponseTemplate, createElisaAssayCollection, createFlowCytometryAssayCollection, createFlowCytometryPanelTemplate, createInstrumentRunTemplate, createLcmsBatchCollection, createPlateMapTemplate, createProtocolStepsTemplate, createQpcrExpressionCollection, createQpcrPlateTemplate, createReagentListTemplate, createSamplePrepTemplate, createSampleSheetTemplate, createTargetedMetabolomicsCollection, createTemplateCollection, createTemplateEnvelope, createTimeCourseTemplate, createWellPlateScreenCollection, createWesternBlotAssayCollection, ensureTemplateEnvelope, ensureTemplateFromCollection, extractTemplateCollection, getBioTemplateComponentBindings, getBioTemplateComponentProps, getBioTemplateControlDefaults, getBioTemplateControlSchema, getBioTemplateInfo, getBioTemplatePackInfo, getBioTemplatePresetInfo, getTemplateData, listBioTemplateCatalog, listBioTemplateComponentBindings, listBioTemplateControlSchemas, listBioTemplatePacks, listBioTemplatePresetControlSchemas, listBioTemplatePresets, requireBioTemplateControlSchema, searchBioTemplateCatalog, searchBioTemplatePacks, searchBioTemplatePresets, toAssayMatrixColumns, toAssayMatrixDataFrame, toAssayMatrixRows, toAssayMatrixSampleOptions, toBioTemplateComponentBindings, toBioTemplateComponentBindingsById, toBioTemplateComponentImports, toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, toBioTemplateComponentSnippets, toBioTemplateComponentUsage, toCalibrationCurveColumns, toCalibrationCurveDataFrame, toCalibrationCurveRows, toDoseConditions, toDoseLayoutState, toFlowPanelColumns, toFlowPanelDataFrame, toFlowPanelRows, toInstrumentRunColumns, toInstrumentRunDataFrame, toInstrumentRunRows, toInstrumentRunScheduleEvents, toInstrumentRunSteps, toPlateMapEditorState, toProtocolColumns, toProtocolDataFrame, toProtocolRows, toProtocolSteps, toQpcrColumns, toQpcrDataFrame, toQpcrRows, toQpcrWellPlateWells, toReagentColumns, toReagentDataFrame, toReagentListItems, toReagentRows, toSampleColumns, toSampleDataFrame, toSampleOptions, toSamplePrepColumns, toSamplePrepDataFrame, toSamplePrepRows, toSampleRows, toTemplateDataFrame, toTimeCourseColumns, toTimeCourseDataFrame, toTimeCourseRows, toTimeCourseSteps, toWellMapArray, toWellPlateWells, validateAssayMatrixData, validateCalibrationCurveData, validateDoseResponseData, validateFlowCytometryPanelData, validateInstrumentRunData, validatePlateMapData, validateProtocolStepsData, validateQpcrPlateData, validateReagentListData, validateSamplePrepData, validateSampleSheetData, validateTimeCourseData };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as controlsToFormSchema, i as useControlSchema, r as getControlDefaults, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas } from "./useControlSchema-
|
|
1
|
+
import { _ as controlsToFormSchema, i as useControlSchema, r as getControlDefaults, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas } from "./useControlSchema-BEAgLyyx.js";
|
|
2
2
|
//#region src/templates/builderReadUtils.ts
|
|
3
3
|
function isRecord$2(value) {
|
|
4
4
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -5060,4 +5060,4 @@ function getBioTemplateControlDefaults(target) {
|
|
|
5060
5060
|
//#endregion
|
|
5061
5061
|
export { toTimeCourseRows as $, listBioTemplatePacks as $t, createSamplePrepTemplate as A, toCalibrationCurveRows as At, toBioTemplateComponentProps as B, validatePlateMapData as Bt, createFlowCytometryPanelTemplate as C, toInstrumentRunScheduleEvents as Ct, createTimeCourseTemplate as D, toFlowPanelRows as Dt, createProtocolStepsTemplate as E, toFlowPanelDataFrame as Et, getBioTemplateComponentProps as F, validateAssayMatrixData as Ft, toTemplateDataFrame as G, validateSampleSheetData as Gt, toBioTemplateComponentPropsById as H, validateQpcrPlateData as Ht, listBioTemplateComponentBindings as I, validateCalibrationCurveData as It, toDoseLayoutState as J, getBioTemplatePresetInfo as Jt, toWellMapArray as K, validateTimeCourseData as Kt, toBioTemplateComponentBindings as L, validateDoseResponseData as Lt, createPlateMapTemplate as M, toAssayMatrixDataFrame as Mt, bioTemplatePresetControlValuesToOptions as N, toAssayMatrixRows as Nt, createCalibrationCurveTemplate as O, toCalibrationCurveColumns as Ot, getBioTemplateComponentBindings as P, toAssayMatrixSampleOptions as Pt, toTimeCourseDataFrame as Q, getBioTemplatePackInfo as Qt, toBioTemplateComponentBindingsById as R, validateFlowCytometryPanelData as Rt, createInstrumentRunTemplate as S, toInstrumentRunRows as St, createAssayMatrixTemplate as T, toFlowPanelColumns as Tt, toBioTemplateComponentSnippets as U, validateReagentListData as Ut, toBioTemplateComponentPropsByComponent as V, validateProtocolStepsData as Vt, toBioTemplateComponentUsage as W, validateSamplePrepData as Wt, toWellPlateWells as X, searchBioTemplatePresets as Xt, toPlateMapEditorState as Y, listBioTemplatePresets as Yt, toTimeCourseColumns as Z, bioTemplatePacks as Zt, createElisaAssayCollection as _, toProtocolDataFrame as _t, getBioTemplateControlDefaults as a, TEMPLATE_COLLECTION_KEY as an, toSamplePrepColumns as at, createQpcrExpressionCollection as b, toInstrumentRunColumns as bt, listBioTemplatePresetControlSchemas as c, createTemplateEnvelope as cn, toReagentColumns as ct, createBioTemplatePresetCollectionFromControls as d, extractTemplateCollection as dn, toReagentRows as dt, searchBioTemplatePacks as en, toTimeCourseSteps as et, createWellPlateScreenCollection as f, getTemplateData as fn, toQpcrColumns as ft, createFlowCytometryAssayCollection as g, toProtocolColumns as gt, createWesternBlotAssayCollection as h, toQpcrWellPlateWells as ht, createBioTemplateControlToolkit as i, searchBioTemplateCatalog as in, toSampleRows as it, createSampleSheetTemplate as j, toAssayMatrixColumns as jt, createDoseResponseTemplate as k, toCalibrationCurveDataFrame as kt, requireBioTemplateControlSchema as l, ensureTemplateEnvelope as ln, toReagentDataFrame as lt, createDefaultBioTemplate as m, toQpcrRows as mt, bioTemplateControlsToSectionFormSchemas as n, getBioTemplateInfo as nn, toSampleDataFrame as nt, getBioTemplateControlSchema as o, assertTemplateEnvelope as on, toSamplePrepDataFrame as ot, createBioTemplatePackCollection as p, toQpcrDataFrame as pt, toDoseConditions as q, bioTemplatePresets as qt, bioTemplateControlsToSidebarPanels as r, listBioTemplateCatalog as rn, toSampleOptions as rt, listBioTemplateControlSchemas as s, createTemplateCollection as sn, toSamplePrepRows as st, bioTemplateControlsToFormSchema as t, bioTemplateCatalog as tn, toSampleColumns as tt, createBioTemplatePresetCollection as u, ensureTemplateFromCollection as un, toReagentListItems as ut, createTargetedMetabolomicsCollection as v, toProtocolRows as vt, createReagentListTemplate as w, toInstrumentRunSteps as wt, createQpcrPlateTemplate as x, toInstrumentRunDataFrame as xt, createLcmsBatchCollection as y, toProtocolSteps as yt, toBioTemplateComponentImports as z, validateInstrumentRunData as zt };
|
|
5062
5062
|
|
|
5063
|
-
//# sourceMappingURL=templates-
|
|
5063
|
+
//# sourceMappingURL=templates-CJRFiWUX.js.map
|