@tetrascience-npm/tetrascience-react-ui 1.0.0-beta.156.1 → 1.0.0-beta.158.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/README.md +113 -0
- package/dist/components/composed/DataAppShell/RightPanel.cjs +1 -1
- package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/RightPanel.d.ts +11 -1
- package/dist/components/composed/DataAppShell/RightPanel.js +128 -126
- package/dist/components/composed/DataAppShell/RightPanel.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.d.ts +5 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +32 -30
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.d.ts +269 -13
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js +392 -310
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.d.ts +5 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.js +19 -15
- package/dist/components/composed/PlateMapEditor/PlateMapForm.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.d.ts +12 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.js +69 -63
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.d.ts +13 -4
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.js +38 -29
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.d.ts +6 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +490 -275
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.d.ts +8 -2
- package/dist/components/composed/PlateMapEditor/WellLegend.js +8 -7
- package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.d.ts +6 -2
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js +288 -256
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.d.ts +5 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js +61 -66
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellQuickPaint.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellQuickPaint.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellQuickPaint.d.ts +23 -0
- package/dist/components/composed/PlateMapEditor/WellQuickPaint.js +75 -0
- package/dist/components/composed/PlateMapEditor/WellQuickPaint.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/index.d.ts +6 -2
- package/dist/components/composed/PlateMapEditor/types.d.ts +65 -0
- package/dist/components/composed/PlateMapEditor/usePlateMapEditorState.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/usePlateMapEditorState.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/usePlateMapEditorState.d.ts +109 -0
- package/dist/components/composed/PlateMapEditor/usePlateMapEditorState.js +246 -0
- package/dist/components/composed/PlateMapEditor/usePlateMapEditorState.js.map +1 -0
- package/dist/composed/PlateMapEditor.cjs +1 -1
- package/dist/composed/PlateMapEditor.js +48 -42
- package/dist/composed/PlateMapEditor.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +701 -695
- package/dist/index.js.map +1 -1
- package/dist/index.scoped.css +1 -1
- package/dist/index.tailwind.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import * as s from "react";
|
|
2
|
+
import { plateOptionsFromCsvTriage as dt } from "./csvPlateTriage.js";
|
|
3
|
+
import { PLATE_MAP_EMPTY_WELL_FILL as pt } from "./PlatePaintGrid.js";
|
|
4
|
+
const st = "::", vt = "plateBarcode";
|
|
5
|
+
function z(e, o) {
|
|
6
|
+
return `${e}${st}${o}`;
|
|
7
|
+
}
|
|
8
|
+
function ct(e, o) {
|
|
9
|
+
const n = `${e}${st}`;
|
|
10
|
+
return o.startsWith(n) ? o.slice(n.length) : void 0;
|
|
11
|
+
}
|
|
12
|
+
function ht(e) {
|
|
13
|
+
return e === void 0 ? pt : "var(--color-chart-1)";
|
|
14
|
+
}
|
|
15
|
+
function Pt() {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
function Et(e, o) {
|
|
19
|
+
return { ...e ?? {}, ...o };
|
|
20
|
+
}
|
|
21
|
+
function mt(e, o) {
|
|
22
|
+
const n = /* @__PURE__ */ new Map();
|
|
23
|
+
return e.forEach((i) => n.set(i.id, i)), (o ?? []).forEach((i) => n.set(i.id, i)), [...n.values()];
|
|
24
|
+
}
|
|
25
|
+
function bt(e, o) {
|
|
26
|
+
const n = e.find((i) => i.id === o);
|
|
27
|
+
return n || (o ? void 0 : e[0]);
|
|
28
|
+
}
|
|
29
|
+
function St(e, o) {
|
|
30
|
+
if (!o) return e;
|
|
31
|
+
const n = /* @__PURE__ */ new Map();
|
|
32
|
+
return e.forEach((i, u) => {
|
|
33
|
+
const S = ct(o, u);
|
|
34
|
+
S && n.set(S, i);
|
|
35
|
+
}), n;
|
|
36
|
+
}
|
|
37
|
+
function Mt({
|
|
38
|
+
importedPlates: e,
|
|
39
|
+
selectedPlateId: o,
|
|
40
|
+
isControlled: n,
|
|
41
|
+
providedPlateCount: i
|
|
42
|
+
}) {
|
|
43
|
+
const u = e[0]?.id;
|
|
44
|
+
return u ? e.some((S) => S.id === o) ? void 0 : u : !n && i === 0 ? null : void 0;
|
|
45
|
+
}
|
|
46
|
+
function xt({
|
|
47
|
+
values: e,
|
|
48
|
+
onChange: o,
|
|
49
|
+
selection: n,
|
|
50
|
+
onSelectionChange: i,
|
|
51
|
+
emptyEntry: u = Pt,
|
|
52
|
+
mergeOnApply: S,
|
|
53
|
+
staged: B,
|
|
54
|
+
onStagedChange: K,
|
|
55
|
+
fields: O,
|
|
56
|
+
cycleFieldOnWellDoubleClick: I,
|
|
57
|
+
plates: x,
|
|
58
|
+
activePlateId: V,
|
|
59
|
+
onPlateChange: g,
|
|
60
|
+
plateBarcodeField: rt,
|
|
61
|
+
applyScope: w = "active-plate",
|
|
62
|
+
onImportCsv: Y
|
|
63
|
+
}) {
|
|
64
|
+
const [at, it] = s.useState({}), [D, H] = s.useState(null), [U, j] = s.useState(), [q, lt] = s.useState([]), [ut, G] = s.useState(), J = B !== void 0, A = B ?? at, W = s.useCallback(
|
|
65
|
+
(t) => {
|
|
66
|
+
J || it(t), K?.(t);
|
|
67
|
+
},
|
|
68
|
+
[J, K]
|
|
69
|
+
), R = S ?? Et, f = s.useMemo(() => mt(q, x), [q, x]), v = V !== void 0, C = V ?? ut, $ = s.useMemo(
|
|
70
|
+
() => bt(f, C),
|
|
71
|
+
[f, C]
|
|
72
|
+
), L = $?.barcode, l = L, d = !!l, T = rt ?? vt, N = s.useRef(l), P = s.useMemo(() => St(e, l), [l, e]), Q = s.useCallback(
|
|
73
|
+
(t) => !d || !l ? t : z(l, t),
|
|
74
|
+
[l, d]
|
|
75
|
+
), X = s.useCallback(
|
|
76
|
+
(t) => {
|
|
77
|
+
v || G(t), g?.(t);
|
|
78
|
+
},
|
|
79
|
+
[v, g]
|
|
80
|
+
), Z = s.useCallback(
|
|
81
|
+
async (t, c) => {
|
|
82
|
+
if (c) {
|
|
83
|
+
const r = dt(c);
|
|
84
|
+
lt(r);
|
|
85
|
+
const a = Mt({
|
|
86
|
+
importedPlates: r,
|
|
87
|
+
selectedPlateId: C,
|
|
88
|
+
isControlled: v,
|
|
89
|
+
providedPlateCount: x?.length ?? 0
|
|
90
|
+
});
|
|
91
|
+
a !== void 0 && (v || G(a ?? void 0), a && g?.(a));
|
|
92
|
+
}
|
|
93
|
+
await Y?.(t, c);
|
|
94
|
+
},
|
|
95
|
+
[v, Y, g, x, C]
|
|
96
|
+
), M = s.useCallback(
|
|
97
|
+
(t) => !d || !L ? t : { ...t, [T]: L },
|
|
98
|
+
[L, T, d]
|
|
99
|
+
), E = s.useCallback(
|
|
100
|
+
(t) => {
|
|
101
|
+
if (!d || !l) {
|
|
102
|
+
o(t);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const c = new Map(e);
|
|
106
|
+
[...c.keys()].forEach((r) => {
|
|
107
|
+
ct(l, r) && c.delete(r);
|
|
108
|
+
}), t.forEach((r, a) => {
|
|
109
|
+
c.set(Q(a), M(r));
|
|
110
|
+
}), o(c);
|
|
111
|
+
},
|
|
112
|
+
[l, d, o, M, Q, e]
|
|
113
|
+
);
|
|
114
|
+
s.useEffect(() => {
|
|
115
|
+
N.current !== l && (N.current = l, W({}), H(null), j(void 0), n.size > 0 && i(/* @__PURE__ */ new Set()));
|
|
116
|
+
}, [l, i, n.size, W]);
|
|
117
|
+
const p = s.useMemo(() => {
|
|
118
|
+
if (!I) return;
|
|
119
|
+
const t = (O ?? []).find((c) => c.key === I);
|
|
120
|
+
if (!(t?.kind !== "select" || !t.options?.length))
|
|
121
|
+
return t;
|
|
122
|
+
}, [I, O]), _ = s.useCallback(
|
|
123
|
+
(t) => t === "all-plates" || t === "active-plate" ? t : w,
|
|
124
|
+
[w]
|
|
125
|
+
), F = s.useCallback(
|
|
126
|
+
(t) => t === "all-plates" && d && f.length > 0,
|
|
127
|
+
[f.length, d]
|
|
128
|
+
), y = s.useCallback(
|
|
129
|
+
(t, c) => {
|
|
130
|
+
if (n.size === 0) return;
|
|
131
|
+
if (F(_(c))) {
|
|
132
|
+
const a = new Map(e);
|
|
133
|
+
f.forEach((b) => {
|
|
134
|
+
n.forEach((m) => {
|
|
135
|
+
const k = z(b.barcode, m), h = a.get(k) ?? u(m), ft = R(h, t, m);
|
|
136
|
+
a.set(k, { ...ft, [T]: b.barcode });
|
|
137
|
+
});
|
|
138
|
+
}), o(a);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const r = new Map(P);
|
|
142
|
+
n.forEach((a) => {
|
|
143
|
+
const m = r.get(a) ?? u(a), k = M(R(m, t, a));
|
|
144
|
+
r.set(a, k);
|
|
145
|
+
}), E(r);
|
|
146
|
+
},
|
|
147
|
+
[
|
|
148
|
+
F,
|
|
149
|
+
f,
|
|
150
|
+
T,
|
|
151
|
+
E,
|
|
152
|
+
u,
|
|
153
|
+
R,
|
|
154
|
+
o,
|
|
155
|
+
_,
|
|
156
|
+
P,
|
|
157
|
+
n,
|
|
158
|
+
M,
|
|
159
|
+
e
|
|
160
|
+
]
|
|
161
|
+
), tt = s.useCallback(
|
|
162
|
+
(t) => y(A, t),
|
|
163
|
+
[y, A]
|
|
164
|
+
), et = s.useCallback(
|
|
165
|
+
(t) => {
|
|
166
|
+
if (n.size === 0) return;
|
|
167
|
+
if (F(_(t))) {
|
|
168
|
+
const r = new Map(e);
|
|
169
|
+
f.forEach((a) => {
|
|
170
|
+
n.forEach((b) => r.delete(z(a.barcode, b)));
|
|
171
|
+
}), o(r);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const c = new Map(P);
|
|
175
|
+
n.forEach((r) => c.delete(r)), E(c);
|
|
176
|
+
},
|
|
177
|
+
[
|
|
178
|
+
F,
|
|
179
|
+
f,
|
|
180
|
+
E,
|
|
181
|
+
o,
|
|
182
|
+
_,
|
|
183
|
+
P,
|
|
184
|
+
n,
|
|
185
|
+
e
|
|
186
|
+
]
|
|
187
|
+
), nt = !v || !!g, ot = s.useCallback(
|
|
188
|
+
(t) => {
|
|
189
|
+
if (!p?.options?.length) return;
|
|
190
|
+
const c = new Map(P), r = c.get(t), a = r?.[p.key], b = p.options.findIndex((h) => h.value === a), m = p.options[(b + 1) % p.options.length];
|
|
191
|
+
if (!m) return;
|
|
192
|
+
const k = r ?? u(t);
|
|
193
|
+
c.set(t, M({ ...k, [p.key]: m.value })), E(c), j((h) => ({ wellId: t, key: (h?.key ?? 0) + 1 }));
|
|
194
|
+
},
|
|
195
|
+
[E, p, u, P, M]
|
|
196
|
+
);
|
|
197
|
+
return s.useMemo(
|
|
198
|
+
() => ({
|
|
199
|
+
staged: A,
|
|
200
|
+
setStaged: W,
|
|
201
|
+
scopedValues: P,
|
|
202
|
+
commitScopedValues: E,
|
|
203
|
+
applyStagedToSelection: tt,
|
|
204
|
+
applyToSelection: y,
|
|
205
|
+
clearWells: et,
|
|
206
|
+
availablePlates: f,
|
|
207
|
+
activePlate: $,
|
|
208
|
+
isPlateScoped: d,
|
|
209
|
+
isPlateSelectionControlled: v,
|
|
210
|
+
canChangePlate: nt,
|
|
211
|
+
handlePlateChange: X,
|
|
212
|
+
handleImportCsv: Z,
|
|
213
|
+
cycleWellField: p ? ot : void 0,
|
|
214
|
+
flashWell: U,
|
|
215
|
+
hoveredWellId: D,
|
|
216
|
+
setHoveredWellId: H
|
|
217
|
+
}),
|
|
218
|
+
[
|
|
219
|
+
tt,
|
|
220
|
+
y,
|
|
221
|
+
f,
|
|
222
|
+
$,
|
|
223
|
+
nt,
|
|
224
|
+
et,
|
|
225
|
+
E,
|
|
226
|
+
ot,
|
|
227
|
+
p,
|
|
228
|
+
U,
|
|
229
|
+
Z,
|
|
230
|
+
X,
|
|
231
|
+
D,
|
|
232
|
+
d,
|
|
233
|
+
v,
|
|
234
|
+
P,
|
|
235
|
+
W,
|
|
236
|
+
A
|
|
237
|
+
]
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
export {
|
|
241
|
+
ht as defaultColorForWell,
|
|
242
|
+
Pt as defaultEmptyEntry,
|
|
243
|
+
z as getPlateMapScopedWellId,
|
|
244
|
+
xt as usePlateMapEditorState
|
|
245
|
+
};
|
|
246
|
+
//# sourceMappingURL=usePlateMapEditorState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlateMapEditorState.js","sources":["../../../../src/components/composed/PlateMapEditor/usePlateMapEditorState.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport { plateOptionsFromCsvTriage } from \"./csvPlateTriage\";\nimport { PLATE_MAP_EMPTY_WELL_FILL } from \"./PlatePaintGrid\";\n\nimport type { PlateMapCsvTriage, PlateMapPlateOption, WellField, WellId, WellRecord } from \"./types\";\n\nconst PLATE_WELL_KEY_SEPARATOR = \"::\";\nconst DEFAULT_PLATE_BARCODE_FIELD = \"plateBarcode\";\n\n/** Scopes a well id to a plate barcode, matching the editor's storage key format. */\nexport function getPlateMapScopedWellId(plateBarcode: string, wellId: WellId): WellId {\n return `${plateBarcode}${PLATE_WELL_KEY_SEPARATOR}${wellId}`;\n}\n\nfunction wellIdFromPlateWellKey(plateId: string, key: WellId): WellId | undefined {\n const prefix = `${plateId}${PLATE_WELL_KEY_SEPARATOR}`;\n return key.startsWith(prefix) ? key.slice(prefix.length) : undefined;\n}\n\n/** Default `colorForWell` — populated wells read as filled, empty wells as surface. */\nexport function defaultColorForWell(well: unknown): string {\n return well === undefined ? PLATE_MAP_EMPTY_WELL_FILL : \"var(--color-chart-1)\";\n}\n\n/**\n * Default `emptyEntry`, used when the caller supplies none.\n *\n * Only sound for a `T` whose properties are all optional — which is the case it\n * exists for (read-only or single-category views). Supply your own `emptyEntry`\n * when `T` has required fields; this cannot construct them.\n */\nexport function defaultEmptyEntry<T extends WellRecord>(): T {\n return {} as T;\n}\n\nfunction defaultMerge<T extends WellRecord>(existing: T | undefined, staged: Partial<T>): T {\n return { ...(existing ?? ({} as T)), ...staged };\n}\n\nfunction mergePlateOptions(\n importedPlates: PlateMapPlateOption[],\n providedPlates: PlateMapPlateOption[] | undefined,\n): PlateMapPlateOption[] {\n const merged = new Map<string, PlateMapPlateOption>();\n importedPlates.forEach((plate) => merged.set(plate.id, plate));\n (providedPlates ?? []).forEach((plate) => merged.set(plate.id, plate));\n return [...merged.values()];\n}\n\nfunction resolveActivePlate(\n plates: PlateMapPlateOption[],\n selectedPlateId: string | undefined,\n): PlateMapPlateOption | undefined {\n const matchingPlate = plates.find((plate) => plate.id === selectedPlateId);\n if (matchingPlate) return matchingPlate;\n return selectedPlateId ? undefined : plates[0];\n}\n\nfunction buildScopedValues<T extends WellRecord>(values: Map<WellId, T>, plateKey: string | undefined) {\n if (!plateKey) return values;\n\n const next = new Map<WellId, T>();\n values.forEach((row, key) => {\n const wellId = wellIdFromPlateWellKey(plateKey, key);\n if (wellId) next.set(wellId, row);\n });\n return next;\n}\n\nfunction resolveImportedPlateSelection({\n importedPlates,\n selectedPlateId,\n isControlled,\n providedPlateCount,\n}: {\n importedPlates: PlateMapPlateOption[];\n selectedPlateId?: string;\n isControlled: boolean;\n providedPlateCount: number;\n}): string | null | undefined {\n const firstImportedPlateId = importedPlates[0]?.id;\n if (!firstImportedPlateId) return !isControlled && providedPlateCount === 0 ? null : undefined;\n return importedPlates.some((plate) => plate.id === selectedPlateId) ? undefined : firstImportedPlateId;\n}\n\n/**\n * Which plates Apply/Clear write to.\n *\n * - `\"active-plate\"` (default) — only the plate currently shown.\n * - `\"all-plates\"` — the same well positions on every plate in `plates`, each\n * row stamped with its own plate's barcode. Falls back to `\"active-plate\"`\n * when the editor isn't plate-scoped.\n */\nexport type PlateMapApplyScope = \"active-plate\" | \"all-plates\";\n\nexport interface UsePlateMapEditorStateOptions<T extends WellRecord = WellRecord> {\n values: Map<WellId, T>;\n onChange: (next: Map<WellId, T>) => void;\n selection: Set<WellId>;\n onSelectionChange: (next: Set<WellId>) => void;\n\n /** Builds an empty record when a well is freshly created. Defaults to `{}`. */\n emptyEntry?: (wellId: WellId) => T;\n /**\n * Merges the staged form record onto an existing well record on Apply.\n * Defaults to a shallow merge (form keys overwrite existing keys when set).\n */\n mergeOnApply?: (existing: T | undefined, staged: Partial<T>, wellId: WellId) => T;\n\n /**\n * Controlled staged form record. When provided, the hook stops owning staged\n * state — pair with `onStagedChange` to prefill the form, read what's staged,\n * or drive Apply from outside (bulk paste, \"copy from another well\", …).\n */\n staged?: Partial<T>;\n onStagedChange?: (next: Partial<T>) => void;\n\n /** Field schema, required only for `cycleFieldOnWellDoubleClick`. */\n fields?: WellField<T>[];\n /** Select field cycled when double-clicking a single well, e.g. role painting. */\n cycleFieldOnWellDoubleClick?: keyof T & string;\n\n /** User-provided plates. Barcodes are never generated by the editor. */\n plates?: PlateMapPlateOption[];\n activePlateId?: string;\n onPlateChange?: (plateId: string) => void;\n /** Row field used to stamp the active barcode onto edited wells. Defaults to `plateBarcode`. */\n plateBarcodeField?: keyof T & string;\n /**\n * Default scope for Apply/Clear. Defaults to `\"active-plate\"`.\n * Both functions accept a per-call override, so a host can offer\n * \"Apply\" and \"Apply to all plates\" side by side without changing this.\n */\n applyScope?: PlateMapApplyScope;\n onImportCsv?: (file: File, triage?: PlateMapCsvTriage) => void | Promise<void>;\n}\n\nexport interface PlateMapEditorState<T extends WellRecord = WellRecord> {\n /** Staged form record applied across the selection on `applyStagedToSelection`. */\n staged: Partial<T>;\n setStaged: (next: Partial<T>) => void;\n /** Values narrowed to the active plate. Identical to `values` when unscoped. */\n scopedValues: Map<WellId, T>;\n /** Writes plate-scoped values back through `onChange`, re-scoping keys. */\n commitScopedValues: (next: Map<WellId, T>) => void;\n /**\n * Applies the staged record across the selection. Pass a scope to override\n * `applyScope` for this call.\n *\n * Safe to wire straight to `onClick` — a non-scope argument (such as the\n * click event React passes) is ignored and the default scope is used.\n */\n applyStagedToSelection: (scope?: PlateMapApplyScope) => void;\n /** Clears the selected wells. Same scope-override rules as Apply. */\n clearWells: (scope?: PlateMapApplyScope) => void;\n /**\n * Applies an arbitrary patch across the selection, bypassing the staged\n * record — used for one-click actions like quick-paint.\n */\n applyToSelection: (patch: Partial<T>, scope?: PlateMapApplyScope) => void;\n\n availablePlates: PlateMapPlateOption[];\n activePlate: PlateMapPlateOption | undefined;\n isPlateScoped: boolean;\n isPlateSelectionControlled: boolean;\n canChangePlate: boolean;\n handlePlateChange: (plateId: string) => void;\n handleImportCsv: (file: File, triage?: PlateMapCsvTriage) => Promise<void>;\n\n /** Set when `cycleFieldOnWellDoubleClick` resolves to a usable select field. */\n cycleWellField: ((wellId: WellId) => void) | undefined;\n flashWell: { wellId: WellId; key: number } | undefined;\n hoveredWellId: WellId | null;\n setHoveredWellId: (wellId: WellId | null) => void;\n}\n\n/**\n * The staged-edit controller behind `PlateMapEditor` — staged form record,\n * Apply/Clear across the selection, plate scoping and barcode stamping, CSV\n * plate triage, and double-click field cycling.\n *\n * Use it when you need a layout `PlateMapEditor` can't express and are\n * composing `PlateMapForm` / `PlateMapGrid` / `PlateMapManifest` yourself, so\n * you don't have to re-implement the apply semantics. `PlateMapEditor` is a\n * thin layout over this hook.\n */\nexport function usePlateMapEditorState<T extends WellRecord = WellRecord>({\n values,\n onChange,\n selection,\n onSelectionChange,\n emptyEntry = defaultEmptyEntry,\n mergeOnApply,\n staged: controlledStaged,\n onStagedChange,\n fields,\n cycleFieldOnWellDoubleClick,\n plates,\n activePlateId,\n onPlateChange,\n plateBarcodeField,\n applyScope = \"active-plate\",\n onImportCsv,\n}: UsePlateMapEditorStateOptions<T>): PlateMapEditorState<T> {\n const [internalStaged, setInternalStaged] = React.useState<Partial<T>>({});\n const [hoveredWellId, setHoveredWellId] = React.useState<WellId | null>(null);\n const [flashWell, setFlashWell] = React.useState<{ wellId: WellId; key: number }>();\n const [csvPlates, setCsvPlates] = React.useState<PlateMapPlateOption[]>([]);\n const [internalActivePlateId, setInternalActivePlateId] = React.useState<string>();\n\n const isStagedControlled = controlledStaged !== undefined;\n const staged = controlledStaged ?? internalStaged;\n const setStaged = React.useCallback(\n (next: Partial<T>) => {\n if (!isStagedControlled) setInternalStaged(next);\n onStagedChange?.(next);\n },\n [isStagedControlled, onStagedChange],\n );\n\n const merge = mergeOnApply ?? defaultMerge<T>;\n const availablePlates = React.useMemo(() => mergePlateOptions(csvPlates, plates), [csvPlates, plates]);\n const isPlateSelectionControlled = activePlateId !== undefined;\n const selectedPlateId = activePlateId ?? internalActivePlateId;\n const activePlate = React.useMemo(\n () => resolveActivePlate(availablePlates, selectedPlateId),\n [availablePlates, selectedPlateId],\n );\n const activePlateBarcode = activePlate?.barcode;\n const activePlateKey = activePlateBarcode;\n const isPlateScoped = !!activePlateKey;\n const barcodeField = (plateBarcodeField ?? DEFAULT_PLATE_BARCODE_FIELD) as keyof T & string;\n const previousActivePlateKey = React.useRef<string | undefined>(activePlateKey);\n\n const scopedValues = React.useMemo(() => buildScopedValues(values, activePlateKey), [activePlateKey, values]);\n\n const toStoredWellKey = React.useCallback(\n (wellId: WellId): WellId => {\n if (!isPlateScoped || !activePlateKey) return wellId;\n return getPlateMapScopedWellId(activePlateKey, wellId);\n },\n [activePlateKey, isPlateScoped],\n );\n\n const handlePlateChange = React.useCallback(\n (plateId: string) => {\n if (!isPlateSelectionControlled) setInternalActivePlateId(plateId);\n onPlateChange?.(plateId);\n },\n [isPlateSelectionControlled, onPlateChange],\n );\n\n const handleImportCsv = React.useCallback(\n async (file: File, triage?: PlateMapCsvTriage) => {\n if (triage) {\n const nextCsvPlates = plateOptionsFromCsvTriage(triage);\n setCsvPlates(nextCsvPlates);\n const nextSelection = resolveImportedPlateSelection({\n importedPlates: nextCsvPlates,\n selectedPlateId,\n isControlled: isPlateSelectionControlled,\n providedPlateCount: plates?.length ?? 0,\n });\n\n if (nextSelection !== undefined) {\n if (!isPlateSelectionControlled) setInternalActivePlateId(nextSelection ?? undefined);\n if (nextSelection) onPlateChange?.(nextSelection);\n }\n }\n\n await onImportCsv?.(file, triage);\n },\n [isPlateSelectionControlled, onImportCsv, onPlateChange, plates, selectedPlateId],\n );\n\n const stampActivePlateBarcode = React.useCallback(\n (row: T): T => {\n if (!isPlateScoped || !activePlateBarcode) return row;\n return { ...(row as Record<string, unknown>), [barcodeField]: activePlateBarcode } as T;\n },\n [activePlateBarcode, barcodeField, isPlateScoped],\n );\n\n const commitScopedValues = React.useCallback(\n (nextScopedValues: Map<WellId, T>) => {\n if (!isPlateScoped || !activePlateKey) {\n onChange(nextScopedValues);\n return;\n }\n\n const next = new Map(values);\n [...next.keys()].forEach((key) => {\n if (wellIdFromPlateWellKey(activePlateKey, key)) {\n next.delete(key);\n }\n });\n nextScopedValues.forEach((row, wellId) => {\n next.set(toStoredWellKey(wellId), stampActivePlateBarcode(row));\n });\n onChange(next);\n },\n [activePlateKey, isPlateScoped, onChange, stampActivePlateBarcode, toStoredWellKey, values],\n );\n\n React.useEffect(() => {\n if (previousActivePlateKey.current === activePlateKey) return;\n previousActivePlateKey.current = activePlateKey;\n setStaged({});\n setHoveredWellId(null);\n setFlashWell(undefined);\n if (selection.size > 0) onSelectionChange(new Set());\n }, [activePlateKey, onSelectionChange, selection.size, setStaged]);\n\n const doubleClickCycleField = React.useMemo(() => {\n if (!cycleFieldOnWellDoubleClick) return;\n const field = (fields ?? []).find((f) => f.key === cycleFieldOnWellDoubleClick);\n if (field?.kind !== \"select\" || !field.options?.length) return;\n return field;\n }, [cycleFieldOnWellDoubleClick, fields]);\n\n // `onApply`/`onClear` are wired straight to `onClick` by `WellMetadataForm`,\n // so these receive a MouseEvent as their first argument. Only accept the two\n // literal scopes; anything else means \"no override\".\n const resolveScope = React.useCallback(\n (override?: unknown): PlateMapApplyScope =>\n override === \"all-plates\" || override === \"active-plate\" ? override : applyScope,\n [applyScope],\n );\n\n const appliesToEveryPlate = React.useCallback(\n (scope: PlateMapApplyScope) => scope === \"all-plates\" && isPlateScoped && availablePlates.length > 0,\n [availablePlates.length, isPlateScoped],\n );\n\n /**\n * Applies an arbitrary patch across the selection. `applyStagedToSelection`\n * is this with the staged record; quick-paint uses it with a single field.\n */\n const applyToSelection = React.useCallback(\n (patch: Partial<T>, scope?: PlateMapApplyScope) => {\n if (selection.size === 0) return;\n\n if (appliesToEveryPlate(resolveScope(scope))) {\n const next = new Map(values);\n availablePlates.forEach((plate) => {\n selection.forEach((wellId) => {\n const key = getPlateMapScopedWellId(plate.barcode, wellId);\n const base = next.get(key) ?? emptyEntry(wellId);\n const merged = merge(base, patch, wellId) as Record<string, unknown>;\n next.set(key, { ...merged, [barcodeField]: plate.barcode } as T);\n });\n });\n onChange(next);\n return;\n }\n\n const next = new Map(scopedValues);\n selection.forEach((wellId) => {\n const existing = next.get(wellId);\n const base = existing ?? emptyEntry(wellId);\n const merged = stampActivePlateBarcode(merge(base, patch, wellId));\n next.set(wellId, merged);\n });\n commitScopedValues(next);\n },\n [\n appliesToEveryPlate,\n availablePlates,\n barcodeField,\n commitScopedValues,\n emptyEntry,\n merge,\n onChange,\n resolveScope,\n scopedValues,\n selection,\n stampActivePlateBarcode,\n values,\n ],\n );\n\n const applyStagedToSelection = React.useCallback(\n (scope?: PlateMapApplyScope) => applyToSelection(staged, scope),\n [applyToSelection, staged],\n );\n\n const clearWells = React.useCallback(\n (scope?: PlateMapApplyScope) => {\n if (selection.size === 0) return;\n\n if (appliesToEveryPlate(resolveScope(scope))) {\n const next = new Map(values);\n availablePlates.forEach((plate) => {\n selection.forEach((wellId) => next.delete(getPlateMapScopedWellId(plate.barcode, wellId)));\n });\n onChange(next);\n return;\n }\n\n const next = new Map(scopedValues);\n selection.forEach((wellId) => next.delete(wellId));\n commitScopedValues(next);\n },\n [\n appliesToEveryPlate,\n availablePlates,\n commitScopedValues,\n onChange,\n resolveScope,\n scopedValues,\n selection,\n values,\n ],\n );\n\n const canChangePlate = !isPlateSelectionControlled || !!onPlateChange;\n\n const cycleWellField = React.useCallback(\n (wellId: WellId) => {\n if (!doubleClickCycleField?.options?.length) return;\n\n const next = new Map(scopedValues);\n const existing = next.get(wellId);\n const currentValue = existing?.[doubleClickCycleField.key];\n const currentIndex = doubleClickCycleField.options.findIndex((opt) => opt.value === currentValue);\n const nextOption = doubleClickCycleField.options[(currentIndex + 1) % doubleClickCycleField.options.length];\n if (!nextOption) return;\n\n const base = existing ?? emptyEntry(wellId);\n next.set(wellId, stampActivePlateBarcode({ ...base, [doubleClickCycleField.key]: nextOption.value } as T));\n commitScopedValues(next);\n setFlashWell((current) => ({ wellId, key: (current?.key ?? 0) + 1 }));\n },\n [commitScopedValues, doubleClickCycleField, emptyEntry, scopedValues, stampActivePlateBarcode],\n );\n\n // Memoised so the object identity is stable across renders: consumers put\n // this in effect and `useImperativeHandle` dependency lists.\n return React.useMemo(\n () => ({\n staged,\n setStaged,\n scopedValues,\n commitScopedValues,\n applyStagedToSelection,\n applyToSelection,\n clearWells,\n availablePlates,\n activePlate,\n isPlateScoped,\n isPlateSelectionControlled,\n canChangePlate,\n handlePlateChange,\n handleImportCsv,\n cycleWellField: doubleClickCycleField ? cycleWellField : undefined,\n flashWell,\n hoveredWellId,\n setHoveredWellId,\n }),\n [\n applyStagedToSelection,\n applyToSelection,\n availablePlates,\n activePlate,\n canChangePlate,\n clearWells,\n commitScopedValues,\n cycleWellField,\n doubleClickCycleField,\n flashWell,\n handleImportCsv,\n handlePlateChange,\n hoveredWellId,\n isPlateScoped,\n isPlateSelectionControlled,\n scopedValues,\n setStaged,\n staged,\n ],\n );\n}\n"],"names":["PLATE_WELL_KEY_SEPARATOR","DEFAULT_PLATE_BARCODE_FIELD","getPlateMapScopedWellId","plateBarcode","wellId","wellIdFromPlateWellKey","plateId","key","prefix","defaultColorForWell","well","PLATE_MAP_EMPTY_WELL_FILL","defaultEmptyEntry","defaultMerge","existing","staged","mergePlateOptions","importedPlates","providedPlates","merged","plate","resolveActivePlate","plates","selectedPlateId","matchingPlate","buildScopedValues","values","plateKey","next","row","resolveImportedPlateSelection","isControlled","providedPlateCount","firstImportedPlateId","usePlateMapEditorState","onChange","selection","onSelectionChange","emptyEntry","mergeOnApply","controlledStaged","onStagedChange","fields","cycleFieldOnWellDoubleClick","activePlateId","onPlateChange","plateBarcodeField","applyScope","onImportCsv","internalStaged","setInternalStaged","React","hoveredWellId","setHoveredWellId","flashWell","setFlashWell","csvPlates","setCsvPlates","internalActivePlateId","setInternalActivePlateId","isStagedControlled","setStaged","merge","availablePlates","isPlateSelectionControlled","activePlate","activePlateBarcode","activePlateKey","isPlateScoped","barcodeField","previousActivePlateKey","scopedValues","toStoredWellKey","handlePlateChange","handleImportCsv","file","triage","nextCsvPlates","plateOptionsFromCsvTriage","nextSelection","stampActivePlateBarcode","commitScopedValues","nextScopedValues","doubleClickCycleField","field","f","resolveScope","override","appliesToEveryPlate","scope","applyToSelection","patch","base","applyStagedToSelection","clearWells","canChangePlate","cycleWellField","currentValue","currentIndex","opt","nextOption","current"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../components/composed/PlateMapEditor/PlateMapEditor.cjs"),t=require("../components/composed/PlateMapEditor/usePlateMapEditorState.cjs"),r=require("../components/composed/PlateMapEditor/PlateMapForm.cjs"),i=require("../components/composed/PlateMapEditor/PlateMapGrid.cjs"),s=require("../components/composed/PlateMapEditor/PlateMapManifest.cjs"),n=require("../components/composed/PlateMapEditor/PlateMapActionsMenu.cjs"),P=require("../components/composed/PlateMapEditor/PlateMapPlateSelector.cjs"),p=require("../components/composed/PlateMapEditor/PlatePaintGrid.cjs"),M=require("../components/composed/PlateMapEditor/WellMetadataForm.cjs"),u=require("../components/composed/PlateMapEditor/WellManifestTable.cjs"),c=require("../components/composed/PlateMapEditor/TemplateIOPanel.cjs"),a=require("../components/composed/PlateMapEditor/csvPlateTriage.cjs"),d=require("../components/composed/PlateMapEditor/ManifestFilterPopover.cjs"),F=require("../components/composed/PlateMapEditor/WellQuickPaint.cjs"),m=require("../components/composed/PlateMapEditor/WellLegend.cjs"),q=require("../components/composed/PlateMapEditor/PlateZoomControl.cjs"),l=require("../components/composed/PlateMapEditor/autoFill.cjs"),e=require("../components/composed/PlateMapEditor/wellGrid.cjs");exports.PlateMapEditor=o.PlateMapEditor;exports.defaultColorForWell=t.defaultColorForWell;exports.defaultEmptyEntry=t.defaultEmptyEntry;exports.getPlateMapScopedWellId=t.getPlateMapScopedWellId;exports.usePlateMapEditorState=t.usePlateMapEditorState;exports.PlateMapForm=r.PlateMapForm;exports.PlateMapGrid=i.PlateMapGrid;exports.PlateMapManifest=s.PlateMapManifest;exports.PlateMapActionsMenu=n.PlateMapActionsMenu;exports.PlateMapPlateSelector=P.PlateMapPlateSelector;exports.PlatePaintGrid=p.PlatePaintGrid;exports.WellMetadataForm=M.WellMetadataForm;exports.WellManifestTable=u.WellManifestTable;exports.TemplateIOPanel=c.TemplateIOPanel;exports.plateOptionsFromCsvTriage=a.plateOptionsFromCsvTriage;exports.triagePlateMapCsvByBarcode=a.triagePlateMapCsvByBarcode;exports.triagePlateMapCsvFile=a.triagePlateMapCsvFile;exports.ManifestFilterPopover=d.ManifestFilterPopover;exports.WellQuickPaint=F.WellQuickPaint;exports.WellLegend=m.WellLegend;exports.PlateZoomControl=q.PlateZoomControl;exports.autoFillPositions=l.autoFillPositions;exports.autoFillRecords=l.autoFillRecords;exports.allPositions=e.allPositions;exports.parsePos=e.parsePos;exports.parseRowLabel=e.parseRowLabel;exports.pos=e.pos;exports.rectPositions=e.rectPositions;exports.resolveDimensions=e.resolveDimensions;exports.rowLabel=e.rowLabel;
|
|
2
2
|
//# sourceMappingURL=PlateMapEditor.cjs.map
|
|
@@ -1,45 +1,51 @@
|
|
|
1
|
-
import { PlateMapEditor as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
1
|
+
import { PlateMapEditor as t } from "../components/composed/PlateMapEditor/PlateMapEditor.js";
|
|
2
|
+
import { defaultColorForWell as a, defaultEmptyEntry as l, getPlateMapScopedWellId as p, usePlateMapEditorState as i } from "../components/composed/PlateMapEditor/usePlateMapEditorState.js";
|
|
3
|
+
import { PlateMapForm as f } from "../components/composed/PlateMapEditor/PlateMapForm.js";
|
|
4
|
+
import { PlateMapGrid as P } from "../components/composed/PlateMapEditor/PlateMapGrid.js";
|
|
5
|
+
import { PlateMapManifest as n } from "../components/composed/PlateMapEditor/PlateMapManifest.js";
|
|
6
|
+
import { PlateMapActionsMenu as d } from "../components/composed/PlateMapEditor/PlateMapActionsMenu.js";
|
|
7
|
+
import { PlateMapPlateSelector as c } from "../components/composed/PlateMapEditor/PlateMapPlateSelector.js";
|
|
8
|
+
import { PlatePaintGrid as W } from "../components/composed/PlateMapEditor/PlatePaintGrid.js";
|
|
9
|
+
import { WellMetadataForm as v } from "../components/composed/PlateMapEditor/WellMetadataForm.js";
|
|
10
|
+
import { WellManifestTable as E } from "../components/composed/PlateMapEditor/WellManifestTable.js";
|
|
11
|
+
import { TemplateIOPanel as y } from "../components/composed/PlateMapEditor/TemplateIOPanel.js";
|
|
12
|
+
import { plateOptionsFromCsvTriage as S, triagePlateMapCsvByBarcode as T, triagePlateMapCsvFile as w } from "../components/composed/PlateMapEditor/csvPlateTriage.js";
|
|
13
|
+
import { ManifestFilterPopover as G } from "../components/composed/PlateMapEditor/ManifestFilterPopover.js";
|
|
14
|
+
import { WellQuickPaint as O } from "../components/composed/PlateMapEditor/WellQuickPaint.js";
|
|
15
|
+
import { WellLegend as k } from "../components/composed/PlateMapEditor/WellLegend.js";
|
|
16
|
+
import { PlateZoomControl as D } from "../components/composed/PlateMapEditor/PlateZoomControl.js";
|
|
17
|
+
import { autoFillPositions as Z, autoFillRecords as h } from "../components/composed/PlateMapEditor/autoFill.js";
|
|
18
|
+
import { allPositions as q, parsePos as z, parseRowLabel as H, pos as J, rectPositions as K, resolveDimensions as N, rowLabel as U } from "../components/composed/PlateMapEditor/wellGrid.js";
|
|
17
19
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
20
|
+
G as ManifestFilterPopover,
|
|
21
|
+
d as PlateMapActionsMenu,
|
|
22
|
+
t as PlateMapEditor,
|
|
23
|
+
f as PlateMapForm,
|
|
24
|
+
P as PlateMapGrid,
|
|
25
|
+
n as PlateMapManifest,
|
|
26
|
+
c as PlateMapPlateSelector,
|
|
27
|
+
W as PlatePaintGrid,
|
|
28
|
+
D as PlateZoomControl,
|
|
29
|
+
y as TemplateIOPanel,
|
|
30
|
+
k as WellLegend,
|
|
31
|
+
E as WellManifestTable,
|
|
32
|
+
v as WellMetadataForm,
|
|
33
|
+
O as WellQuickPaint,
|
|
34
|
+
q as allPositions,
|
|
35
|
+
Z as autoFillPositions,
|
|
36
|
+
h as autoFillRecords,
|
|
37
|
+
a as defaultColorForWell,
|
|
38
|
+
l as defaultEmptyEntry,
|
|
39
|
+
p as getPlateMapScopedWellId,
|
|
40
|
+
z as parsePos,
|
|
41
|
+
H as parseRowLabel,
|
|
42
|
+
S as plateOptionsFromCsvTriage,
|
|
43
|
+
J as pos,
|
|
44
|
+
K as rectPositions,
|
|
45
|
+
N as resolveDimensions,
|
|
46
|
+
U as rowLabel,
|
|
47
|
+
T as triagePlateMapCsvByBarcode,
|
|
48
|
+
w as triagePlateMapCsvFile,
|
|
49
|
+
i as usePlateMapEditorState
|
|
44
50
|
};
|
|
45
51
|
//# sourceMappingURL=PlateMapEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlateMapEditor.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlateMapEditor.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const Be=require("./components/composed/AppShellSimple/AppShellSimple.cjs"),Le=require("./components/composed/FormPatterns/FormSection.cjs"),_e=require("./components/composed/StatCard/StatCard.cjs"),Re=require("./components/composed/DataAppShell/DataAppShell.cjs"),j=require("./components/composed/DataAppShell/PrimaryNav.cjs"),X=require("./components/composed/DataAppShell/RightPanel.cjs"),Y=require("./components/composed/DataAppShell/SecondaryNav.cjs"),ne=require("./components/composed/DataAppShell/ShellContext.cjs"),Ge=require("./components/composed/DataAppShell/CollapseButton.cjs"),ie=require("./components/composed/TopBar/TopBar.cjs"),J=require("./components/composed/UserMenu/UserMenu.cjs"),Fe=require("./components/composed/Chat/Chat.cjs"),ue=require("./components/composed/PlateMapEditor/PlateMapEditor.cjs"),ke=require("./components/composed/PlateMapEditor/PlateMapForm.cjs"),Ee=require("./components/composed/PlateMapEditor/PlateMapGrid.cjs"),ye=require("./components/composed/PlateMapEditor/PlateMapManifest.cjs"),Oe=require("./components/composed/PlateMapEditor/PlateMapActionsMenu.cjs"),Ne=require("./components/composed/PlateMapEditor/PlateMapPlateSelector.cjs"),fe=require("./components/composed/PlateMapEditor/PlatePaintGrid.cjs"),He=require("./components/composed/PlateMapEditor/WellMetadataForm.cjs"),we=require("./components/composed/PlateMapEditor/WellManifestTable.cjs"),Ve=require("./components/composed/PlateMapEditor/TemplateIOPanel.cjs"),$=require("./components/composed/PlateMapEditor/csvPlateTriage.cjs"),Ue=require("./components/composed/PlateMapEditor/ManifestFilterPopover.cjs"),Qe=require("./components/composed/PlateMapEditor/WellLegend.cjs"),We=require("./components/composed/PlateMapEditor/PlateZoomControl.cjs"),le=require("./components/composed/PlateMapEditor/autoFill.cjs"),D=require("./components/composed/PlateMapEditor/wellGrid.cjs"),Ke=require("./components/composed/ConfirmDialog/ConfirmDialog.cjs"),se=require("./components/composed/RichListItem/RichListItem.cjs"),ze=require("./components/composed/EmptyState/EmptyState.cjs"),Ze=require("./components/composed/ProcessFlow/ProcessFlow.cjs"),f=require("./components/composed/AssistantLayout/AssistantLayout.cjs"),je=require("./components/composed/AssistantLayout/dockLayout.cjs"),Xe=require("./components/composed/MoleculeStructure/MoleculeStructure.cjs"),Ye=require("./components/composed/MoleculeStructure/use-rdkit.cjs"),ee=require("./components/composed/MoleculeStructure/rdkit-loader.cjs"),Je=require("./components/composed/PageHeader/PageHeader.cjs"),$e=require("./components/composed/TdpSearch/TdpSearch.cjs"),et=require("./components/composed/TdpSearch/hooks/useSearch.cjs"),k=require("./composed/tdp-link.cjs"),H=require("./composed/tdp-url.cjs"),tt=require("./components/charts/AreaPlot/AreaPlot.cjs"),pe=require("./components/charts/ChartTooltip/ChartTooltip.cjs"),ot=require("./components/charts/BarChart/BarChart.cjs"),rt=require("./components/charts/BoxPlot/BoxPlot.cjs"),at=require("./components/charts/Chromatogram/Chromatogram.cjs"),nt=require("./components/charts/StackedChromatogram/StackedChromatogram.cjs"),it=require("./components/charts/StackedChromatogram/transforms.cjs"),ut=require("./components/charts/Electropherogram/Electropherogram.cjs"),lt=require("./components/charts/Histogram/Histogram.cjs"),st=require("./components/charts/LinePlot/LinePlot.cjs"),pt=require("./components/charts/PieChart/PieChart.cjs"),ct=require("./components/charts/PlateMap/PlateMap.cjs"),Ct=require("./components/charts/ScatterPlot/ScatterPlot.cjs"),dt=require("./components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs"),P=require("./components/charts/ScatterPlotInteractive/constants.cjs"),w=require("./ui/accordion.cjs"),V=require("./ui/alert.cjs"),c=require("./ui/alert-dialog.cjs"),mt=require("./ui/aspect-ratio.cjs"),B=require("./ui/avatar.cjs"),ce=require("./ui/badge.cjs"),Ce=require("./ui/banner.cjs"),q=require("./ui/breadcrumb.cjs"),de=require("./ui/button.cjs"),U=require("./ui/button-group.cjs"),me=require("./ui/calendar.cjs"),v=require("./ui/card.cjs"),L=require("./ui/carousel.cjs"),ge=require("./ui/checkbox.cjs"),te=require("./ui/collapsible.cjs"),o=require("./ui/combobox.cjs"),T=require("./ui/command.cjs"),a=require("./ui/context-menu.cjs"),Q=require("./components/ui/data-table/data-table.cjs"),gt=require("./components/ui/data-table/data-table-column-toggle.cjs"),St=require("./components/ui/data-table/data-table-filter.cjs"),bt=require("./components/ui/data-table/data-table-group.cjs"),Tt=require("./components/ui/data-table/data-table-pagination.cjs"),d=require("./ui/dialog.cjs"),n=require("./ui/dropdown-menu.cjs"),m=require("./ui/field.cjs"),oe=require("./ui/hover-card.cjs"),Se=require("./ui/input.cjs"),_=require("./ui/input-group.cjs"),g=require("./ui/item.cjs"),be=require("./ui/kbd.cjs"),It=require("./ui/label.cjs"),r=require("./ui/menubar.cjs"),I=require("./ui/navigation-menu.cjs"),W=require("./ui/popover.cjs"),Mt=require("./ui/progress.cjs"),re=require("./ui/radio-group.cjs"),ae=require("./ui/resizable.cjs"),Te=require("./ui/scroll-area.cjs"),S=require("./ui/select.cjs"),Pt=require("./ui/separator.cjs"),h=require("./ui/sheet.cjs"),t=require("./ui/sidebar.cjs"),ht=require("./ui/skeleton.cjs"),At=require("./ui/slider.cjs"),E=require("./ui/snippet.cjs"),Dt=require("./ui/sonner.cjs"),Ie=require("./ui/spinner.cjs"),qt=require("./ui/switch.cjs"),A=require("./ui/table.cjs"),y=require("./ui/tabs.cjs"),Me=require("./ui/text.cjs"),Pe=require("./ui/textarea.cjs"),he=require("./ui/toggle.cjs"),Ae=require("./ui/toggle-group.cjs"),K=require("./ui/tooltip.cjs"),R=require("./ui/tree.cjs"),vt=require("./ui/code-editor.cjs"),xt=require("./ui/tetra-molecule-icon.cjs"),Bt=require("./ui/tetrascience-icon.cjs"),p=require("./ai/attachments.cjs"),x=require("./ai/chain-of-thought.cjs"),u=require("./ui/code-block.cjs"),M=require("./ai/confirmation.cjs"),b=require("./ai/context.cjs"),G=require("./ai/conversation.cjs"),l=require("./ai/inline-citation.cjs"),C=require("./ai/message.cjs"),s=require("./ai/model-selector.cjs"),e=require("./ai/prompt-input.cjs"),i=require("./ai/queue.cjs"),z=require("./ai/reasoning.cjs"),De=require("./ai/shimmer.cjs"),Z=require("./ai/sources.cjs"),Lt=require("./ai/speech-input.cjs"),qe=require("./ai/stream-status.cjs"),ve=require("./ai/suggestion.cjs"),O=require("./ai/task.cjs"),F=require("./ai/tool.cjs"),N=require("./utils/colors.cjs"),xe=require("./lib/shiki.cjs"),_t=require("./components/composed/ProcessFlow/ProcessFlow.utils.cjs"),Rt=require("./components/charts/ChartTooltip/lines.cjs");exports.AppShellSimple=Be.AppShellSimple;exports.FormSection=Le.FormSection;exports.StatCard=_e.StatCard;exports.DataAppShell=Re.DataAppShell;exports.DataAppShellPrimaryNav=j.DataAppShellPrimaryNav;exports.dataAppShellPrimaryNavItemVariants=j.dataAppShellPrimaryNavItemVariants;exports.dataAppShellPrimaryNavVariants=j.dataAppShellPrimaryNavVariants;exports.DataAppShellRightPanel=X.DataAppShellRightPanel;exports.DataAppShellRightPanelTrigger=X.DataAppShellRightPanelTrigger;exports.dataAppShellRightPanelTriggerVariants=X.dataAppShellRightPanelTriggerVariants;exports.DataAppShellSecondaryNav=Y.DataAppShellSecondaryNav;exports.dataAppShellSecondaryNavItemVariants=Y.dataAppShellSecondaryNavItemVariants;exports.dataAppShellSecondaryNavVariants=Y.dataAppShellSecondaryNavVariants;exports.useDataAppShell=ne.useDataAppShell;exports.useOptionalDataAppShell=ne.useOptionalDataAppShell;exports.ShellCollapseButton=Ge.ShellCollapseButton;exports.TopBar=ie.TopBar;exports.topBarVariants=ie.topBarVariants;exports.UserMenu=J.UserMenu;exports.getInitials=J.getInitials;exports.userMenuTriggerVariants=J.userMenuTriggerVariants;exports.Chat=Fe.Chat;exports.PlateMapEditor=ue.PlateMapEditor;exports.getPlateMapScopedWellId=ue.getPlateMapScopedWellId;exports.PlateMapForm=ke.PlateMapForm;exports.PlateMapGrid=Ee.PlateMapGrid;exports.PlateMapManifest=ye.PlateMapManifest;exports.PlateMapActionsMenu=Oe.PlateMapActionsMenu;exports.PlateMapPlateSelector=Ne.PlateMapPlateSelector;exports.PlatePaintGrid=fe.PlatePaintGrid;exports.WellMetadataForm=He.WellMetadataForm;exports.WellManifestTable=we.WellManifestTable;exports.TemplateIOPanel=Ve.TemplateIOPanel;exports.plateOptionsFromCsvTriage=$.plateOptionsFromCsvTriage;exports.triagePlateMapCsvByBarcode=$.triagePlateMapCsvByBarcode;exports.triagePlateMapCsvFile=$.triagePlateMapCsvFile;exports.ManifestFilterPopover=Ue.ManifestFilterPopover;exports.WellLegend=Qe.WellLegend;exports.PlateZoomControl=We.PlateZoomControl;exports.autoFillPositions=le.autoFillPositions;exports.autoFillRecords=le.autoFillRecords;exports.allPositions=D.allPositions;exports.parsePos=D.parsePos;exports.parseRowLabel=D.parseRowLabel;exports.pos=D.pos;exports.rectPositions=D.rectPositions;exports.resolveDimensions=D.resolveDimensions;exports.rowLabel=D.rowLabel;exports.ConfirmDialog=Ke.ConfirmDialog;exports.RichListItem=se.RichListItem;exports.RichListItemAvatar=se.RichListItemAvatar;exports.EmptyState=ze.EmptyState;exports.ProcessFlow=Ze.ProcessFlow;exports.AssistantDockControls=f.AssistantDockControls;exports.AssistantLayout=f.AssistantLayout;exports.AssistantLayoutProvider=f.AssistantLayoutProvider;exports.useAssistantLayout=f.useAssistantLayout;exports.dockPanels=je.dockPanels;exports.MoleculeStructure=Xe.MoleculeStructure;exports.useRDKit=Ye.useRDKit;exports.configureRDKit=ee.configureRDKit;exports.loadRDKit=ee.loadRDKit;exports.moleculeToSvg=ee.moleculeToSvg;exports.PageHeader=Je.PageHeader;exports.TdpSearch=$e.TdpSearch;exports.useSearch=et.useSearch;exports.TDPLink=k.TDPLink;exports.TdpNavigationContext=k.TdpNavigationContext;exports.TdpNavigationProvider=k.TdpNavigationProvider;exports.useTdpNavigation=k.useTdpNavigation;exports.useTdpNavigationContext=k.useTdpNavigationContext;exports.buildTdpUrl=H.buildTdpUrl;exports.getTdpBaseUrlFromReferrer=H.getTdpBaseUrlFromReferrer;exports.navigateToTdpUrl=H.navigateToTdpUrl;exports.tdpPaths=H.tdpPaths;exports.AreaPlot=tt.AreaPlot;exports.ChartTooltip=pe.ChartTooltip;exports.useChartTooltip=pe.useChartTooltip;exports.BarChart=ot.BarChart;exports.BoxPlot=rt.BoxPlot;exports.Chromatogram=at.Chromatogram;exports.StackedChromatogram=nt.StackedChromatogram;exports.applyStackingTransform=it.applyStackingTransform;exports.Electropherogram=ut.Electropherogram;exports.Histogram=lt.Histogram;exports.LinePlot=st.LinePlot;exports.PieChart=pt.PieChart;exports.PlateMap=ct.PlateMap;exports.ScatterPlot=Ct.ScatterPlot;exports.ScatterPlotInteractive=dt.ScatterPlotInteractive;exports.COLORS=P.COLORS;exports.DEFAULT_CATEGORY_COLORS=P.DEFAULT_CATEGORY_COLORS;exports.DEFAULT_COLOR_SCALE=P.DEFAULT_COLOR_SCALE;exports.DEFAULT_MARKER_SIZE=P.DEFAULT_MARKER_SIZE;exports.DEFAULT_MAX_POINTS=P.DEFAULT_MAX_POINTS;exports.DEFAULT_SIZE_RANGE=P.DEFAULT_SIZE_RANGE;exports.PLOT_CONSTANTS=P.PLOT_CONSTANTS;exports.SELECTION_MODIFIERS=P.SELECTION_MODIFIERS;exports.Accordion=w.Accordion;exports.AccordionContent=w.AccordionContent;exports.AccordionItem=w.AccordionItem;exports.AccordionTrigger=w.AccordionTrigger;exports.Alert=V.Alert;exports.AlertAction=V.AlertAction;exports.AlertDescription=V.AlertDescription;exports.AlertTitle=V.AlertTitle;exports.AlertDialog=c.AlertDialog;exports.AlertDialogAction=c.AlertDialogAction;exports.AlertDialogCancel=c.AlertDialogCancel;exports.AlertDialogContent=c.AlertDialogContent;exports.AlertDialogDescription=c.AlertDialogDescription;exports.AlertDialogFooter=c.AlertDialogFooter;exports.AlertDialogHeader=c.AlertDialogHeader;exports.AlertDialogMedia=c.AlertDialogMedia;exports.AlertDialogOverlay=c.AlertDialogOverlay;exports.AlertDialogPortal=c.AlertDialogPortal;exports.AlertDialogTitle=c.AlertDialogTitle;exports.AlertDialogTrigger=c.AlertDialogTrigger;exports.AspectRatio=mt.AspectRatio;exports.Avatar=B.Avatar;exports.AvatarBadge=B.AvatarBadge;exports.AvatarFallback=B.AvatarFallback;exports.AvatarGroup=B.AvatarGroup;exports.AvatarGroupCount=B.AvatarGroupCount;exports.AvatarImage=B.AvatarImage;exports.Badge=ce.Badge;exports.badgeVariants=ce.badgeVariants;exports.Banner=Ce.Banner;exports.bannerVariants=Ce.bannerVariants;exports.Breadcrumb=q.Breadcrumb;exports.BreadcrumbEllipsis=q.BreadcrumbEllipsis;exports.BreadcrumbItem=q.BreadcrumbItem;exports.BreadcrumbLink=q.BreadcrumbLink;exports.BreadcrumbList=q.BreadcrumbList;exports.BreadcrumbPage=q.BreadcrumbPage;exports.BreadcrumbSeparator=q.BreadcrumbSeparator;exports.Button=de.Button;exports.buttonVariants=de.buttonVariants;exports.ButtonGroup=U.ButtonGroup;exports.ButtonGroupSeparator=U.ButtonGroupSeparator;exports.ButtonGroupText=U.ButtonGroupText;exports.buttonGroupVariants=U.buttonGroupVariants;exports.Calendar=me.Calendar;exports.CalendarDayButton=me.CalendarDayButton;exports.Card=v.Card;exports.CardAction=v.CardAction;exports.CardContent=v.CardContent;exports.CardDescription=v.CardDescription;exports.CardFooter=v.CardFooter;exports.CardHeader=v.CardHeader;exports.CardTitle=v.CardTitle;exports.Carousel=L.Carousel;exports.CarouselContent=L.CarouselContent;exports.CarouselItem=L.CarouselItem;exports.CarouselNext=L.CarouselNext;exports.CarouselPrevious=L.CarouselPrevious;exports.useCarousel=L.useCarousel;exports.Checkbox=ge.Checkbox;exports.checkboxVariants=ge.checkboxVariants;exports.Collapsible=te.Collapsible;exports.CollapsibleContent=te.CollapsibleContent;exports.CollapsibleTrigger=te.CollapsibleTrigger;exports.Combobox=o.Combobox;exports.ComboboxChip=o.ComboboxChip;exports.ComboboxChips=o.ComboboxChips;exports.ComboboxChipsInput=o.ComboboxChipsInput;exports.ComboboxCollection=o.ComboboxCollection;exports.ComboboxContent=o.ComboboxContent;exports.ComboboxEmpty=o.ComboboxEmpty;exports.ComboboxGroup=o.ComboboxGroup;exports.ComboboxInput=o.ComboboxInput;exports.ComboboxItem=o.ComboboxItem;exports.ComboboxLabel=o.ComboboxLabel;exports.ComboboxList=o.ComboboxList;exports.ComboboxSeparator=o.ComboboxSeparator;exports.ComboboxTrigger=o.ComboboxTrigger;exports.ComboboxValue=o.ComboboxValue;exports.useComboboxAnchor=o.useComboboxAnchor;exports.Command=T.Command;exports.CommandDialog=T.CommandDialog;exports.CommandEmpty=T.CommandEmpty;exports.CommandGroup=T.CommandGroup;exports.CommandInput=T.CommandInput;exports.CommandItem=T.CommandItem;exports.CommandList=T.CommandList;exports.CommandSeparator=T.CommandSeparator;exports.CommandShortcut=T.CommandShortcut;exports.ContextMenu=a.ContextMenu;exports.ContextMenuCheckboxItem=a.ContextMenuCheckboxItem;exports.ContextMenuContent=a.ContextMenuContent;exports.ContextMenuGroup=a.ContextMenuGroup;exports.ContextMenuItem=a.ContextMenuItem;exports.ContextMenuLabel=a.ContextMenuLabel;exports.ContextMenuPortal=a.ContextMenuPortal;exports.ContextMenuRadioGroup=a.ContextMenuRadioGroup;exports.ContextMenuRadioItem=a.ContextMenuRadioItem;exports.ContextMenuSeparator=a.ContextMenuSeparator;exports.ContextMenuShortcut=a.ContextMenuShortcut;exports.ContextMenuSub=a.ContextMenuSub;exports.ContextMenuSubContent=a.ContextMenuSubContent;exports.ContextMenuSubTrigger=a.ContextMenuSubTrigger;exports.ContextMenuTrigger=a.ContextMenuTrigger;exports.DataTable=Q.DataTable;exports.TableToolbar=Q.TableToolbar;exports.applyFilterCondition=Q.applyFilterCondition;exports.useDataTable=Q.useDataTable;exports.DataTableColumnToggle=gt.DataTableColumnToggle;exports.DataTableFilter=St.DataTableFilter;exports.DataTableGroup=bt.DataTableGroup;exports.DataTablePagination=Tt.DataTablePagination;exports.Dialog=d.Dialog;exports.DialogBody=d.DialogBody;exports.DialogClose=d.DialogClose;exports.DialogContent=d.DialogContent;exports.DialogDescription=d.DialogDescription;exports.DialogFooter=d.DialogFooter;exports.DialogHeader=d.DialogHeader;exports.DialogOverlay=d.DialogOverlay;exports.DialogPortal=d.DialogPortal;exports.DialogTitle=d.DialogTitle;exports.DialogTrigger=d.DialogTrigger;exports.DropdownMenu=n.DropdownMenu;exports.DropdownMenuCheckboxItem=n.DropdownMenuCheckboxItem;exports.DropdownMenuContent=n.DropdownMenuContent;exports.DropdownMenuGroup=n.DropdownMenuGroup;exports.DropdownMenuItem=n.DropdownMenuItem;exports.DropdownMenuLabel=n.DropdownMenuLabel;exports.DropdownMenuPortal=n.DropdownMenuPortal;exports.DropdownMenuRadioGroup=n.DropdownMenuRadioGroup;exports.DropdownMenuRadioItem=n.DropdownMenuRadioItem;exports.DropdownMenuSeparator=n.DropdownMenuSeparator;exports.DropdownMenuShortcut=n.DropdownMenuShortcut;exports.DropdownMenuSub=n.DropdownMenuSub;exports.DropdownMenuSubContent=n.DropdownMenuSubContent;exports.DropdownMenuSubTrigger=n.DropdownMenuSubTrigger;exports.DropdownMenuTrigger=n.DropdownMenuTrigger;exports.Field=m.Field;exports.FieldContent=m.FieldContent;exports.FieldDescription=m.FieldDescription;exports.FieldError=m.FieldError;exports.FieldGroup=m.FieldGroup;exports.FieldLabel=m.FieldLabel;exports.FieldLegend=m.FieldLegend;exports.FieldSeparator=m.FieldSeparator;exports.FieldSet=m.FieldSet;exports.FieldTitle=m.FieldTitle;exports.HoverCard=oe.HoverCard;exports.HoverCardContent=oe.HoverCardContent;exports.HoverCardTrigger=oe.HoverCardTrigger;exports.Input=Se.Input;exports.inputVariants=Se.inputVariants;exports.InputGroup=_.InputGroup;exports.InputGroupAddon=_.InputGroupAddon;exports.InputGroupButton=_.InputGroupButton;exports.InputGroupInput=_.InputGroupInput;exports.InputGroupText=_.InputGroupText;exports.InputGroupTextarea=_.InputGroupTextarea;exports.Item=g.Item;exports.ItemActions=g.ItemActions;exports.ItemContent=g.ItemContent;exports.ItemDescription=g.ItemDescription;exports.ItemFooter=g.ItemFooter;exports.ItemGroup=g.ItemGroup;exports.ItemHeader=g.ItemHeader;exports.ItemMedia=g.ItemMedia;exports.ItemSeparator=g.ItemSeparator;exports.ItemTitle=g.ItemTitle;exports.Kbd=be.Kbd;exports.KbdGroup=be.KbdGroup;exports.Label=It.Label;exports.Menubar=r.Menubar;exports.MenubarCheckboxItem=r.MenubarCheckboxItem;exports.MenubarContent=r.MenubarContent;exports.MenubarGroup=r.MenubarGroup;exports.MenubarItem=r.MenubarItem;exports.MenubarLabel=r.MenubarLabel;exports.MenubarMenu=r.MenubarMenu;exports.MenubarPortal=r.MenubarPortal;exports.MenubarRadioGroup=r.MenubarRadioGroup;exports.MenubarRadioItem=r.MenubarRadioItem;exports.MenubarSeparator=r.MenubarSeparator;exports.MenubarShortcut=r.MenubarShortcut;exports.MenubarSub=r.MenubarSub;exports.MenubarSubContent=r.MenubarSubContent;exports.MenubarSubTrigger=r.MenubarSubTrigger;exports.MenubarTrigger=r.MenubarTrigger;exports.NavigationMenu=I.NavigationMenu;exports.NavigationMenuContent=I.NavigationMenuContent;exports.NavigationMenuIndicator=I.NavigationMenuIndicator;exports.NavigationMenuItem=I.NavigationMenuItem;exports.NavigationMenuLink=I.NavigationMenuLink;exports.NavigationMenuList=I.NavigationMenuList;exports.NavigationMenuTrigger=I.NavigationMenuTrigger;exports.NavigationMenuViewport=I.NavigationMenuViewport;exports.navigationMenuTriggerStyle=I.navigationMenuTriggerStyle;exports.Popover=W.Popover;exports.PopoverAnchor=W.PopoverAnchor;exports.PopoverContent=W.PopoverContent;exports.PopoverTrigger=W.PopoverTrigger;exports.Progress=Mt.Progress;exports.RadioGroup=re.RadioGroup;exports.RadioGroupItem=re.RadioGroupItem;exports.radioGroupItemVariants=re.radioGroupItemVariants;exports.ResizableHandle=ae.ResizableHandle;exports.ResizablePanel=ae.ResizablePanel;exports.ResizablePanelGroup=ae.ResizablePanelGroup;exports.ScrollArea=Te.ScrollArea;exports.ScrollBar=Te.ScrollBar;exports.Select=S.Select;exports.SelectContent=S.SelectContent;exports.SelectGroup=S.SelectGroup;exports.SelectItem=S.SelectItem;exports.SelectLabel=S.SelectLabel;exports.SelectScrollDownButton=S.SelectScrollDownButton;exports.SelectScrollUpButton=S.SelectScrollUpButton;exports.SelectSeparator=S.SelectSeparator;exports.SelectTrigger=S.SelectTrigger;exports.SelectValue=S.SelectValue;exports.Separator=Pt.Separator;exports.Sheet=h.Sheet;exports.SheetClose=h.SheetClose;exports.SheetContent=h.SheetContent;exports.SheetDescription=h.SheetDescription;exports.SheetFooter=h.SheetFooter;exports.SheetHeader=h.SheetHeader;exports.SheetTitle=h.SheetTitle;exports.SheetTrigger=h.SheetTrigger;exports.Sidebar=t.Sidebar;exports.SidebarContent=t.SidebarContent;exports.SidebarFooter=t.SidebarFooter;exports.SidebarGroup=t.SidebarGroup;exports.SidebarGroupAction=t.SidebarGroupAction;exports.SidebarGroupContent=t.SidebarGroupContent;exports.SidebarGroupLabel=t.SidebarGroupLabel;exports.SidebarHeader=t.SidebarHeader;exports.SidebarInput=t.SidebarInput;exports.SidebarInset=t.SidebarInset;exports.SidebarMenu=t.SidebarMenu;exports.SidebarMenuAction=t.SidebarMenuAction;exports.SidebarMenuBadge=t.SidebarMenuBadge;exports.SidebarMenuButton=t.SidebarMenuButton;exports.SidebarMenuItem=t.SidebarMenuItem;exports.SidebarMenuSkeleton=t.SidebarMenuSkeleton;exports.SidebarMenuSub=t.SidebarMenuSub;exports.SidebarMenuSubButton=t.SidebarMenuSubButton;exports.SidebarMenuSubItem=t.SidebarMenuSubItem;exports.SidebarProvider=t.SidebarProvider;exports.SidebarRail=t.SidebarRail;exports.SidebarSeparator=t.SidebarSeparator;exports.SidebarTrigger=t.SidebarTrigger;exports.useSidebar=t.useSidebar;exports.Skeleton=ht.Skeleton;exports.Slider=At.Slider;exports.Snippet=E.Snippet;exports.SnippetAddon=E.SnippetAddon;exports.SnippetCopyButton=E.SnippetCopyButton;exports.SnippetInput=E.SnippetInput;exports.SnippetText=E.SnippetText;exports.Toaster=Dt.Toaster;exports.Spinner=Ie.Spinner;exports.spinnerVariants=Ie.spinnerVariants;exports.Switch=qt.Switch;exports.Table=A.Table;exports.TableBody=A.TableBody;exports.TableCaption=A.TableCaption;exports.TableCell=A.TableCell;exports.TableFooter=A.TableFooter;exports.TableHead=A.TableHead;exports.TableHeader=A.TableHeader;exports.TableRow=A.TableRow;exports.Tabs=y.Tabs;exports.TabsContent=y.TabsContent;exports.TabsList=y.TabsList;exports.TabsTrigger=y.TabsTrigger;exports.tabsListVariants=y.tabsListVariants;exports.Text=Me.Text;exports.textVariants=Me.textVariants;exports.Textarea=Pe.Textarea;exports.textareaVariants=Pe.textareaVariants;exports.Toggle=he.Toggle;exports.toggleVariants=he.toggleVariants;exports.ToggleGroup=Ae.ToggleGroup;exports.ToggleGroupItem=Ae.ToggleGroupItem;exports.Tooltip=K.Tooltip;exports.TooltipContent=K.TooltipContent;exports.TooltipProvider=K.TooltipProvider;exports.TooltipTrigger=K.TooltipTrigger;exports.Tree=R.Tree;exports.TreeItem=R.TreeItem;exports.TreeItemGroup=R.TreeItemGroup;exports.TreeItemLabel=R.TreeItemLabel;exports.treeItemLabelVariants=R.treeItemLabelVariants;exports.useTreeItem=R.useTreeItem;exports.CodeEditor=vt.CodeEditor;exports.TetraMoleculeIcon=xt.TetraMoleculeIcon;exports.TetraScienceIcon=Bt.TetraScienceIcon;exports.Attachment=p.Attachment;exports.AttachmentEmpty=p.AttachmentEmpty;exports.AttachmentHoverCard=p.AttachmentHoverCard;exports.AttachmentHoverCardContent=p.AttachmentHoverCardContent;exports.AttachmentHoverCardTrigger=p.AttachmentHoverCardTrigger;exports.AttachmentInfo=p.AttachmentInfo;exports.AttachmentPreview=p.AttachmentPreview;exports.AttachmentRemove=p.AttachmentRemove;exports.Attachments=p.Attachments;exports.getAttachmentLabel=p.getAttachmentLabel;exports.getMediaCategory=p.getMediaCategory;exports.useAttachmentContext=p.useAttachmentContext;exports.useAttachmentsContext=p.useAttachmentsContext;exports.ChainOfThought=x.ChainOfThought;exports.ChainOfThoughtContent=x.ChainOfThoughtContent;exports.ChainOfThoughtImage=x.ChainOfThoughtImage;exports.ChainOfThoughtSource=x.ChainOfThoughtSource;exports.ChainOfThoughtSources=x.ChainOfThoughtSources;exports.ChainOfThoughtStep=x.ChainOfThoughtStep;exports.ChainOfThoughtTrigger=x.ChainOfThoughtTrigger;exports.CodeBlock=u.CodeBlock;exports.CodeBlockActions=u.CodeBlockActions;exports.CodeBlockContainer=u.CodeBlockContainer;exports.CodeBlockContent=u.CodeBlockContent;exports.CodeBlockCopyButton=u.CodeBlockCopyButton;exports.CodeBlockFilename=u.CodeBlockFilename;exports.CodeBlockHeader=u.CodeBlockHeader;exports.CodeBlockLanguageSelector=u.CodeBlockLanguageSelector;exports.CodeBlockLanguageSelectorContent=u.CodeBlockLanguageSelectorContent;exports.CodeBlockLanguageSelectorItem=u.CodeBlockLanguageSelectorItem;exports.CodeBlockLanguageSelectorTrigger=u.CodeBlockLanguageSelectorTrigger;exports.CodeBlockLanguageSelectorValue=u.CodeBlockLanguageSelectorValue;exports.CodeBlockTitle=u.CodeBlockTitle;exports.highlightCode=u.highlightCode;exports.Confirmation=M.Confirmation;exports.ConfirmationAccepted=M.ConfirmationAccepted;exports.ConfirmationAction=M.ConfirmationAction;exports.ConfirmationActions=M.ConfirmationActions;exports.ConfirmationCode=M.ConfirmationCode;exports.ConfirmationRejected=M.ConfirmationRejected;exports.ConfirmationRequest=M.ConfirmationRequest;exports.ConfirmationShortcut=M.ConfirmationShortcut;exports.ConfirmationTitle=M.ConfirmationTitle;exports.Context=b.Context;exports.ContextCacheUsage=b.ContextCacheUsage;exports.ContextContent=b.ContextContent;exports.ContextContentBody=b.ContextContentBody;exports.ContextContentFooter=b.ContextContentFooter;exports.ContextContentHeader=b.ContextContentHeader;exports.ContextInputUsage=b.ContextInputUsage;exports.ContextOutputUsage=b.ContextOutputUsage;exports.ContextReasoningUsage=b.ContextReasoningUsage;exports.ContextTrigger=b.ContextTrigger;exports.Conversation=G.Conversation;exports.ConversationContent=G.ConversationContent;exports.ConversationDownload=G.ConversationDownload;exports.ConversationEmptyState=G.ConversationEmptyState;exports.ConversationScrollButton=G.ConversationScrollButton;exports.messagesToMarkdown=G.messagesToMarkdown;exports.InlineCitation=l.InlineCitation;exports.InlineCitationCard=l.InlineCitationCard;exports.InlineCitationCardBody=l.InlineCitationCardBody;exports.InlineCitationCardTrigger=l.InlineCitationCardTrigger;exports.InlineCitationCarousel=l.InlineCitationCarousel;exports.InlineCitationCarouselContent=l.InlineCitationCarouselContent;exports.InlineCitationCarouselHeader=l.InlineCitationCarouselHeader;exports.InlineCitationCarouselIndex=l.InlineCitationCarouselIndex;exports.InlineCitationCarouselItem=l.InlineCitationCarouselItem;exports.InlineCitationCarouselNext=l.InlineCitationCarouselNext;exports.InlineCitationCarouselPrev=l.InlineCitationCarouselPrev;exports.InlineCitationQuote=l.InlineCitationQuote;exports.InlineCitationSource=l.InlineCitationSource;exports.InlineCitationText=l.InlineCitationText;exports.Message=C.Message;exports.MessageAction=C.MessageAction;exports.MessageActions=C.MessageActions;exports.MessageBranch=C.MessageBranch;exports.MessageBranchContent=C.MessageBranchContent;exports.MessageBranchNext=C.MessageBranchNext;exports.MessageBranchPage=C.MessageBranchPage;exports.MessageBranchPrevious=C.MessageBranchPrevious;exports.MessageBranchSelector=C.MessageBranchSelector;exports.MessageContent=C.MessageContent;exports.MessageResponse=C.MessageResponse;exports.MessageToolbar=C.MessageToolbar;exports.ModelSelector=s.ModelSelector;exports.ModelSelectorContent=s.ModelSelectorContent;exports.ModelSelectorDialog=s.ModelSelectorDialog;exports.ModelSelectorEmpty=s.ModelSelectorEmpty;exports.ModelSelectorGroup=s.ModelSelectorGroup;exports.ModelSelectorInput=s.ModelSelectorInput;exports.ModelSelectorItem=s.ModelSelectorItem;exports.ModelSelectorList=s.ModelSelectorList;exports.ModelSelectorLogo=s.ModelSelectorLogo;exports.ModelSelectorLogoGroup=s.ModelSelectorLogoGroup;exports.ModelSelectorName=s.ModelSelectorName;exports.ModelSelectorSeparator=s.ModelSelectorSeparator;exports.ModelSelectorShortcut=s.ModelSelectorShortcut;exports.ModelSelectorTrigger=s.ModelSelectorTrigger;exports.LocalReferencedSourcesContext=e.LocalReferencedSourcesContext;exports.PromptInput=e.PromptInput;exports.PromptInputActionAddAttachments=e.PromptInputActionAddAttachments;exports.PromptInputActionAddScreenshot=e.PromptInputActionAddScreenshot;exports.PromptInputActionMenu=e.PromptInputActionMenu;exports.PromptInputActionMenuContent=e.PromptInputActionMenuContent;exports.PromptInputActionMenuItem=e.PromptInputActionMenuItem;exports.PromptInputActionMenuTrigger=e.PromptInputActionMenuTrigger;exports.PromptInputBody=e.PromptInputBody;exports.PromptInputButton=e.PromptInputButton;exports.PromptInputCommand=e.PromptInputCommand;exports.PromptInputCommandEmpty=e.PromptInputCommandEmpty;exports.PromptInputCommandGroup=e.PromptInputCommandGroup;exports.PromptInputCommandInput=e.PromptInputCommandInput;exports.PromptInputCommandItem=e.PromptInputCommandItem;exports.PromptInputCommandList=e.PromptInputCommandList;exports.PromptInputCommandSeparator=e.PromptInputCommandSeparator;exports.PromptInputFooter=e.PromptInputFooter;exports.PromptInputHeader=e.PromptInputHeader;exports.PromptInputHoverCard=e.PromptInputHoverCard;exports.PromptInputHoverCardContent=e.PromptInputHoverCardContent;exports.PromptInputHoverCardTrigger=e.PromptInputHoverCardTrigger;exports.PromptInputProvider=e.PromptInputProvider;exports.PromptInputSelect=e.PromptInputSelect;exports.PromptInputSelectContent=e.PromptInputSelectContent;exports.PromptInputSelectItem=e.PromptInputSelectItem;exports.PromptInputSelectTrigger=e.PromptInputSelectTrigger;exports.PromptInputSelectValue=e.PromptInputSelectValue;exports.PromptInputSlotSwap=e.PromptInputSlotSwap;exports.PromptInputSubmit=e.PromptInputSubmit;exports.PromptInputTab=e.PromptInputTab;exports.PromptInputTabBody=e.PromptInputTabBody;exports.PromptInputTabItem=e.PromptInputTabItem;exports.PromptInputTabLabel=e.PromptInputTabLabel;exports.PromptInputTabsList=e.PromptInputTabsList;exports.PromptInputTextarea=e.PromptInputTextarea;exports.PromptInputTools=e.PromptInputTools;exports.usePromptInputAttachments=e.usePromptInputAttachments;exports.usePromptInputController=e.usePromptInputController;exports.usePromptInputReferencedSources=e.usePromptInputReferencedSources;exports.useProviderAttachments=e.useProviderAttachments;exports.Queue=i.Queue;exports.QueueItem=i.QueueItem;exports.QueueItemAction=i.QueueItemAction;exports.QueueItemActions=i.QueueItemActions;exports.QueueItemAttachment=i.QueueItemAttachment;exports.QueueItemContent=i.QueueItemContent;exports.QueueItemDescription=i.QueueItemDescription;exports.QueueItemFile=i.QueueItemFile;exports.QueueItemImage=i.QueueItemImage;exports.QueueItemIndicator=i.QueueItemIndicator;exports.QueueList=i.QueueList;exports.QueueSection=i.QueueSection;exports.QueueSectionContent=i.QueueSectionContent;exports.QueueSectionLabel=i.QueueSectionLabel;exports.QueueSectionTrigger=i.QueueSectionTrigger;exports.Reasoning=z.Reasoning;exports.ReasoningContent=z.ReasoningContent;exports.ReasoningTrigger=z.ReasoningTrigger;exports.useReasoning=z.useReasoning;exports.Shimmer=De.Shimmer;exports.TS_SHIMMER_GRADIENT=De.TS_SHIMMER_GRADIENT;exports.Source=Z.Source;exports.Sources=Z.Sources;exports.SourcesContent=Z.SourcesContent;exports.SourcesTrigger=Z.SourcesTrigger;exports.SpeechInput=Lt.SpeechInput;exports.STREAM_STATUS_ICONS=qe.STREAM_STATUS_ICONS;exports.StreamStatus=qe.StreamStatus;exports.Suggestion=ve.Suggestion;exports.Suggestions=ve.Suggestions;exports.Task=O.Task;exports.TaskContent=O.TaskContent;exports.TaskItem=O.TaskItem;exports.TaskItemFile=O.TaskItemFile;exports.TaskTrigger=O.TaskTrigger;exports.Tool=F.Tool;exports.ToolContent=F.ToolContent;exports.ToolHeader=F.ToolHeader;exports.ToolInput=F.ToolInput;exports.ToolOutput=F.ToolOutput;exports.getStatusBadge=F.getStatusBadge;exports.CHART_COLORS=N.CHART_COLORS;exports.CHART_DIVERGING=N.CHART_DIVERGING;exports.CHART_SEQUENTIAL=N.CHART_SEQUENTIAL;exports.seriesColor=N.seriesColor;exports.toPlotlyColorscale=N.toPlotlyColorscale;exports.getSupportedCodeBlockLanguages=xe.getSupportedCodeBlockLanguages;exports.registerCodeBlockLanguage=xe.registerCodeBlockLanguage;exports.PROCESS_FLOW_STEP_STATUSES=_t.PROCESS_FLOW_STEP_STATUSES;exports.chartTooltipLines=Rt.chartTooltipLines;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const Be=require("./components/composed/AppShellSimple/AppShellSimple.cjs"),Le=require("./components/composed/FormPatterns/FormSection.cjs"),_e=require("./components/composed/StatCard/StatCard.cjs"),Re=require("./components/composed/DataAppShell/DataAppShell.cjs"),X=require("./components/composed/DataAppShell/PrimaryNav.cjs"),Y=require("./components/composed/DataAppShell/RightPanel.cjs"),J=require("./components/composed/DataAppShell/SecondaryNav.cjs"),ie=require("./components/composed/DataAppShell/ShellContext.cjs"),Ge=require("./components/composed/DataAppShell/CollapseButton.cjs"),ue=require("./components/composed/TopBar/TopBar.cjs"),$=require("./components/composed/UserMenu/UserMenu.cjs"),Fe=require("./components/composed/Chat/Chat.cjs"),ke=require("./components/composed/PlateMapEditor/PlateMapEditor.cjs"),N=require("./components/composed/PlateMapEditor/usePlateMapEditorState.cjs"),Ee=require("./components/composed/PlateMapEditor/PlateMapForm.cjs"),ye=require("./components/composed/PlateMapEditor/PlateMapGrid.cjs"),fe=require("./components/composed/PlateMapEditor/PlateMapManifest.cjs"),Oe=require("./components/composed/PlateMapEditor/PlateMapActionsMenu.cjs"),Ne=require("./components/composed/PlateMapEditor/PlateMapPlateSelector.cjs"),He=require("./components/composed/PlateMapEditor/PlatePaintGrid.cjs"),we=require("./components/composed/PlateMapEditor/WellMetadataForm.cjs"),Ve=require("./components/composed/PlateMapEditor/WellManifestTable.cjs"),Qe=require("./components/composed/PlateMapEditor/TemplateIOPanel.cjs"),ee=require("./components/composed/PlateMapEditor/csvPlateTriage.cjs"),Ue=require("./components/composed/PlateMapEditor/ManifestFilterPopover.cjs"),We=require("./components/composed/PlateMapEditor/WellQuickPaint.cjs"),Ke=require("./components/composed/PlateMapEditor/WellLegend.cjs"),ze=require("./components/composed/PlateMapEditor/PlateZoomControl.cjs"),le=require("./components/composed/PlateMapEditor/autoFill.cjs"),D=require("./components/composed/PlateMapEditor/wellGrid.cjs"),Ze=require("./components/composed/ConfirmDialog/ConfirmDialog.cjs"),se=require("./components/composed/RichListItem/RichListItem.cjs"),je=require("./components/composed/EmptyState/EmptyState.cjs"),Xe=require("./components/composed/ProcessFlow/ProcessFlow.cjs"),H=require("./components/composed/AssistantLayout/AssistantLayout.cjs"),Ye=require("./components/composed/AssistantLayout/dockLayout.cjs"),Je=require("./components/composed/MoleculeStructure/MoleculeStructure.cjs"),$e=require("./components/composed/MoleculeStructure/use-rdkit.cjs"),te=require("./components/composed/MoleculeStructure/rdkit-loader.cjs"),et=require("./components/composed/PageHeader/PageHeader.cjs"),tt=require("./components/composed/TdpSearch/TdpSearch.cjs"),ot=require("./components/composed/TdpSearch/hooks/useSearch.cjs"),k=require("./composed/tdp-link.cjs"),w=require("./composed/tdp-url.cjs"),rt=require("./components/charts/AreaPlot/AreaPlot.cjs"),pe=require("./components/charts/ChartTooltip/ChartTooltip.cjs"),at=require("./components/charts/BarChart/BarChart.cjs"),nt=require("./components/charts/BoxPlot/BoxPlot.cjs"),it=require("./components/charts/Chromatogram/Chromatogram.cjs"),ut=require("./components/charts/StackedChromatogram/StackedChromatogram.cjs"),lt=require("./components/charts/StackedChromatogram/transforms.cjs"),st=require("./components/charts/Electropherogram/Electropherogram.cjs"),pt=require("./components/charts/Histogram/Histogram.cjs"),ct=require("./components/charts/LinePlot/LinePlot.cjs"),Ct=require("./components/charts/PieChart/PieChart.cjs"),dt=require("./components/charts/PlateMap/PlateMap.cjs"),mt=require("./components/charts/ScatterPlot/ScatterPlot.cjs"),gt=require("./components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs"),P=require("./components/charts/ScatterPlotInteractive/constants.cjs"),V=require("./ui/accordion.cjs"),Q=require("./ui/alert.cjs"),c=require("./ui/alert-dialog.cjs"),St=require("./ui/aspect-ratio.cjs"),B=require("./ui/avatar.cjs"),ce=require("./ui/badge.cjs"),Ce=require("./ui/banner.cjs"),q=require("./ui/breadcrumb.cjs"),de=require("./ui/button.cjs"),U=require("./ui/button-group.cjs"),me=require("./ui/calendar.cjs"),v=require("./ui/card.cjs"),L=require("./ui/carousel.cjs"),ge=require("./ui/checkbox.cjs"),oe=require("./ui/collapsible.cjs"),o=require("./ui/combobox.cjs"),T=require("./ui/command.cjs"),a=require("./ui/context-menu.cjs"),W=require("./components/ui/data-table/data-table.cjs"),bt=require("./components/ui/data-table/data-table-column-toggle.cjs"),Tt=require("./components/ui/data-table/data-table-filter.cjs"),It=require("./components/ui/data-table/data-table-group.cjs"),Mt=require("./components/ui/data-table/data-table-pagination.cjs"),d=require("./ui/dialog.cjs"),n=require("./ui/dropdown-menu.cjs"),m=require("./ui/field.cjs"),re=require("./ui/hover-card.cjs"),Se=require("./ui/input.cjs"),_=require("./ui/input-group.cjs"),g=require("./ui/item.cjs"),be=require("./ui/kbd.cjs"),Pt=require("./ui/label.cjs"),r=require("./ui/menubar.cjs"),I=require("./ui/navigation-menu.cjs"),K=require("./ui/popover.cjs"),ht=require("./ui/progress.cjs"),ae=require("./ui/radio-group.cjs"),ne=require("./ui/resizable.cjs"),Te=require("./ui/scroll-area.cjs"),S=require("./ui/select.cjs"),At=require("./ui/separator.cjs"),h=require("./ui/sheet.cjs"),t=require("./ui/sidebar.cjs"),Dt=require("./ui/skeleton.cjs"),qt=require("./ui/slider.cjs"),E=require("./ui/snippet.cjs"),vt=require("./ui/sonner.cjs"),Ie=require("./ui/spinner.cjs"),xt=require("./ui/switch.cjs"),A=require("./ui/table.cjs"),y=require("./ui/tabs.cjs"),Me=require("./ui/text.cjs"),Pe=require("./ui/textarea.cjs"),he=require("./ui/toggle.cjs"),Ae=require("./ui/toggle-group.cjs"),z=require("./ui/tooltip.cjs"),R=require("./ui/tree.cjs"),Bt=require("./ui/code-editor.cjs"),Lt=require("./ui/tetra-molecule-icon.cjs"),_t=require("./ui/tetrascience-icon.cjs"),p=require("./ai/attachments.cjs"),x=require("./ai/chain-of-thought.cjs"),u=require("./ui/code-block.cjs"),M=require("./ai/confirmation.cjs"),b=require("./ai/context.cjs"),G=require("./ai/conversation.cjs"),l=require("./ai/inline-citation.cjs"),C=require("./ai/message.cjs"),s=require("./ai/model-selector.cjs"),e=require("./ai/prompt-input.cjs"),i=require("./ai/queue.cjs"),Z=require("./ai/reasoning.cjs"),De=require("./ai/shimmer.cjs"),j=require("./ai/sources.cjs"),Rt=require("./ai/speech-input.cjs"),qe=require("./ai/stream-status.cjs"),ve=require("./ai/suggestion.cjs"),f=require("./ai/task.cjs"),F=require("./ai/tool.cjs"),O=require("./utils/colors.cjs"),xe=require("./lib/shiki.cjs"),Gt=require("./components/composed/ProcessFlow/ProcessFlow.utils.cjs"),Ft=require("./components/charts/ChartTooltip/lines.cjs");exports.AppShellSimple=Be.AppShellSimple;exports.FormSection=Le.FormSection;exports.StatCard=_e.StatCard;exports.DataAppShell=Re.DataAppShell;exports.DataAppShellPrimaryNav=X.DataAppShellPrimaryNav;exports.dataAppShellPrimaryNavItemVariants=X.dataAppShellPrimaryNavItemVariants;exports.dataAppShellPrimaryNavVariants=X.dataAppShellPrimaryNavVariants;exports.DataAppShellRightPanel=Y.DataAppShellRightPanel;exports.DataAppShellRightPanelTrigger=Y.DataAppShellRightPanelTrigger;exports.dataAppShellRightPanelTriggerVariants=Y.dataAppShellRightPanelTriggerVariants;exports.DataAppShellSecondaryNav=J.DataAppShellSecondaryNav;exports.dataAppShellSecondaryNavItemVariants=J.dataAppShellSecondaryNavItemVariants;exports.dataAppShellSecondaryNavVariants=J.dataAppShellSecondaryNavVariants;exports.useDataAppShell=ie.useDataAppShell;exports.useOptionalDataAppShell=ie.useOptionalDataAppShell;exports.ShellCollapseButton=Ge.ShellCollapseButton;exports.TopBar=ue.TopBar;exports.topBarVariants=ue.topBarVariants;exports.UserMenu=$.UserMenu;exports.getInitials=$.getInitials;exports.userMenuTriggerVariants=$.userMenuTriggerVariants;exports.Chat=Fe.Chat;exports.PlateMapEditor=ke.PlateMapEditor;exports.defaultColorForWell=N.defaultColorForWell;exports.defaultEmptyEntry=N.defaultEmptyEntry;exports.getPlateMapScopedWellId=N.getPlateMapScopedWellId;exports.usePlateMapEditorState=N.usePlateMapEditorState;exports.PlateMapForm=Ee.PlateMapForm;exports.PlateMapGrid=ye.PlateMapGrid;exports.PlateMapManifest=fe.PlateMapManifest;exports.PlateMapActionsMenu=Oe.PlateMapActionsMenu;exports.PlateMapPlateSelector=Ne.PlateMapPlateSelector;exports.PlatePaintGrid=He.PlatePaintGrid;exports.WellMetadataForm=we.WellMetadataForm;exports.WellManifestTable=Ve.WellManifestTable;exports.TemplateIOPanel=Qe.TemplateIOPanel;exports.plateOptionsFromCsvTriage=ee.plateOptionsFromCsvTriage;exports.triagePlateMapCsvByBarcode=ee.triagePlateMapCsvByBarcode;exports.triagePlateMapCsvFile=ee.triagePlateMapCsvFile;exports.ManifestFilterPopover=Ue.ManifestFilterPopover;exports.WellQuickPaint=We.WellQuickPaint;exports.WellLegend=Ke.WellLegend;exports.PlateZoomControl=ze.PlateZoomControl;exports.autoFillPositions=le.autoFillPositions;exports.autoFillRecords=le.autoFillRecords;exports.allPositions=D.allPositions;exports.parsePos=D.parsePos;exports.parseRowLabel=D.parseRowLabel;exports.pos=D.pos;exports.rectPositions=D.rectPositions;exports.resolveDimensions=D.resolveDimensions;exports.rowLabel=D.rowLabel;exports.ConfirmDialog=Ze.ConfirmDialog;exports.RichListItem=se.RichListItem;exports.RichListItemAvatar=se.RichListItemAvatar;exports.EmptyState=je.EmptyState;exports.ProcessFlow=Xe.ProcessFlow;exports.AssistantDockControls=H.AssistantDockControls;exports.AssistantLayout=H.AssistantLayout;exports.AssistantLayoutProvider=H.AssistantLayoutProvider;exports.useAssistantLayout=H.useAssistantLayout;exports.dockPanels=Ye.dockPanels;exports.MoleculeStructure=Je.MoleculeStructure;exports.useRDKit=$e.useRDKit;exports.configureRDKit=te.configureRDKit;exports.loadRDKit=te.loadRDKit;exports.moleculeToSvg=te.moleculeToSvg;exports.PageHeader=et.PageHeader;exports.TdpSearch=tt.TdpSearch;exports.useSearch=ot.useSearch;exports.TDPLink=k.TDPLink;exports.TdpNavigationContext=k.TdpNavigationContext;exports.TdpNavigationProvider=k.TdpNavigationProvider;exports.useTdpNavigation=k.useTdpNavigation;exports.useTdpNavigationContext=k.useTdpNavigationContext;exports.buildTdpUrl=w.buildTdpUrl;exports.getTdpBaseUrlFromReferrer=w.getTdpBaseUrlFromReferrer;exports.navigateToTdpUrl=w.navigateToTdpUrl;exports.tdpPaths=w.tdpPaths;exports.AreaPlot=rt.AreaPlot;exports.ChartTooltip=pe.ChartTooltip;exports.useChartTooltip=pe.useChartTooltip;exports.BarChart=at.BarChart;exports.BoxPlot=nt.BoxPlot;exports.Chromatogram=it.Chromatogram;exports.StackedChromatogram=ut.StackedChromatogram;exports.applyStackingTransform=lt.applyStackingTransform;exports.Electropherogram=st.Electropherogram;exports.Histogram=pt.Histogram;exports.LinePlot=ct.LinePlot;exports.PieChart=Ct.PieChart;exports.PlateMap=dt.PlateMap;exports.ScatterPlot=mt.ScatterPlot;exports.ScatterPlotInteractive=gt.ScatterPlotInteractive;exports.COLORS=P.COLORS;exports.DEFAULT_CATEGORY_COLORS=P.DEFAULT_CATEGORY_COLORS;exports.DEFAULT_COLOR_SCALE=P.DEFAULT_COLOR_SCALE;exports.DEFAULT_MARKER_SIZE=P.DEFAULT_MARKER_SIZE;exports.DEFAULT_MAX_POINTS=P.DEFAULT_MAX_POINTS;exports.DEFAULT_SIZE_RANGE=P.DEFAULT_SIZE_RANGE;exports.PLOT_CONSTANTS=P.PLOT_CONSTANTS;exports.SELECTION_MODIFIERS=P.SELECTION_MODIFIERS;exports.Accordion=V.Accordion;exports.AccordionContent=V.AccordionContent;exports.AccordionItem=V.AccordionItem;exports.AccordionTrigger=V.AccordionTrigger;exports.Alert=Q.Alert;exports.AlertAction=Q.AlertAction;exports.AlertDescription=Q.AlertDescription;exports.AlertTitle=Q.AlertTitle;exports.AlertDialog=c.AlertDialog;exports.AlertDialogAction=c.AlertDialogAction;exports.AlertDialogCancel=c.AlertDialogCancel;exports.AlertDialogContent=c.AlertDialogContent;exports.AlertDialogDescription=c.AlertDialogDescription;exports.AlertDialogFooter=c.AlertDialogFooter;exports.AlertDialogHeader=c.AlertDialogHeader;exports.AlertDialogMedia=c.AlertDialogMedia;exports.AlertDialogOverlay=c.AlertDialogOverlay;exports.AlertDialogPortal=c.AlertDialogPortal;exports.AlertDialogTitle=c.AlertDialogTitle;exports.AlertDialogTrigger=c.AlertDialogTrigger;exports.AspectRatio=St.AspectRatio;exports.Avatar=B.Avatar;exports.AvatarBadge=B.AvatarBadge;exports.AvatarFallback=B.AvatarFallback;exports.AvatarGroup=B.AvatarGroup;exports.AvatarGroupCount=B.AvatarGroupCount;exports.AvatarImage=B.AvatarImage;exports.Badge=ce.Badge;exports.badgeVariants=ce.badgeVariants;exports.Banner=Ce.Banner;exports.bannerVariants=Ce.bannerVariants;exports.Breadcrumb=q.Breadcrumb;exports.BreadcrumbEllipsis=q.BreadcrumbEllipsis;exports.BreadcrumbItem=q.BreadcrumbItem;exports.BreadcrumbLink=q.BreadcrumbLink;exports.BreadcrumbList=q.BreadcrumbList;exports.BreadcrumbPage=q.BreadcrumbPage;exports.BreadcrumbSeparator=q.BreadcrumbSeparator;exports.Button=de.Button;exports.buttonVariants=de.buttonVariants;exports.ButtonGroup=U.ButtonGroup;exports.ButtonGroupSeparator=U.ButtonGroupSeparator;exports.ButtonGroupText=U.ButtonGroupText;exports.buttonGroupVariants=U.buttonGroupVariants;exports.Calendar=me.Calendar;exports.CalendarDayButton=me.CalendarDayButton;exports.Card=v.Card;exports.CardAction=v.CardAction;exports.CardContent=v.CardContent;exports.CardDescription=v.CardDescription;exports.CardFooter=v.CardFooter;exports.CardHeader=v.CardHeader;exports.CardTitle=v.CardTitle;exports.Carousel=L.Carousel;exports.CarouselContent=L.CarouselContent;exports.CarouselItem=L.CarouselItem;exports.CarouselNext=L.CarouselNext;exports.CarouselPrevious=L.CarouselPrevious;exports.useCarousel=L.useCarousel;exports.Checkbox=ge.Checkbox;exports.checkboxVariants=ge.checkboxVariants;exports.Collapsible=oe.Collapsible;exports.CollapsibleContent=oe.CollapsibleContent;exports.CollapsibleTrigger=oe.CollapsibleTrigger;exports.Combobox=o.Combobox;exports.ComboboxChip=o.ComboboxChip;exports.ComboboxChips=o.ComboboxChips;exports.ComboboxChipsInput=o.ComboboxChipsInput;exports.ComboboxCollection=o.ComboboxCollection;exports.ComboboxContent=o.ComboboxContent;exports.ComboboxEmpty=o.ComboboxEmpty;exports.ComboboxGroup=o.ComboboxGroup;exports.ComboboxInput=o.ComboboxInput;exports.ComboboxItem=o.ComboboxItem;exports.ComboboxLabel=o.ComboboxLabel;exports.ComboboxList=o.ComboboxList;exports.ComboboxSeparator=o.ComboboxSeparator;exports.ComboboxTrigger=o.ComboboxTrigger;exports.ComboboxValue=o.ComboboxValue;exports.useComboboxAnchor=o.useComboboxAnchor;exports.Command=T.Command;exports.CommandDialog=T.CommandDialog;exports.CommandEmpty=T.CommandEmpty;exports.CommandGroup=T.CommandGroup;exports.CommandInput=T.CommandInput;exports.CommandItem=T.CommandItem;exports.CommandList=T.CommandList;exports.CommandSeparator=T.CommandSeparator;exports.CommandShortcut=T.CommandShortcut;exports.ContextMenu=a.ContextMenu;exports.ContextMenuCheckboxItem=a.ContextMenuCheckboxItem;exports.ContextMenuContent=a.ContextMenuContent;exports.ContextMenuGroup=a.ContextMenuGroup;exports.ContextMenuItem=a.ContextMenuItem;exports.ContextMenuLabel=a.ContextMenuLabel;exports.ContextMenuPortal=a.ContextMenuPortal;exports.ContextMenuRadioGroup=a.ContextMenuRadioGroup;exports.ContextMenuRadioItem=a.ContextMenuRadioItem;exports.ContextMenuSeparator=a.ContextMenuSeparator;exports.ContextMenuShortcut=a.ContextMenuShortcut;exports.ContextMenuSub=a.ContextMenuSub;exports.ContextMenuSubContent=a.ContextMenuSubContent;exports.ContextMenuSubTrigger=a.ContextMenuSubTrigger;exports.ContextMenuTrigger=a.ContextMenuTrigger;exports.DataTable=W.DataTable;exports.TableToolbar=W.TableToolbar;exports.applyFilterCondition=W.applyFilterCondition;exports.useDataTable=W.useDataTable;exports.DataTableColumnToggle=bt.DataTableColumnToggle;exports.DataTableFilter=Tt.DataTableFilter;exports.DataTableGroup=It.DataTableGroup;exports.DataTablePagination=Mt.DataTablePagination;exports.Dialog=d.Dialog;exports.DialogBody=d.DialogBody;exports.DialogClose=d.DialogClose;exports.DialogContent=d.DialogContent;exports.DialogDescription=d.DialogDescription;exports.DialogFooter=d.DialogFooter;exports.DialogHeader=d.DialogHeader;exports.DialogOverlay=d.DialogOverlay;exports.DialogPortal=d.DialogPortal;exports.DialogTitle=d.DialogTitle;exports.DialogTrigger=d.DialogTrigger;exports.DropdownMenu=n.DropdownMenu;exports.DropdownMenuCheckboxItem=n.DropdownMenuCheckboxItem;exports.DropdownMenuContent=n.DropdownMenuContent;exports.DropdownMenuGroup=n.DropdownMenuGroup;exports.DropdownMenuItem=n.DropdownMenuItem;exports.DropdownMenuLabel=n.DropdownMenuLabel;exports.DropdownMenuPortal=n.DropdownMenuPortal;exports.DropdownMenuRadioGroup=n.DropdownMenuRadioGroup;exports.DropdownMenuRadioItem=n.DropdownMenuRadioItem;exports.DropdownMenuSeparator=n.DropdownMenuSeparator;exports.DropdownMenuShortcut=n.DropdownMenuShortcut;exports.DropdownMenuSub=n.DropdownMenuSub;exports.DropdownMenuSubContent=n.DropdownMenuSubContent;exports.DropdownMenuSubTrigger=n.DropdownMenuSubTrigger;exports.DropdownMenuTrigger=n.DropdownMenuTrigger;exports.Field=m.Field;exports.FieldContent=m.FieldContent;exports.FieldDescription=m.FieldDescription;exports.FieldError=m.FieldError;exports.FieldGroup=m.FieldGroup;exports.FieldLabel=m.FieldLabel;exports.FieldLegend=m.FieldLegend;exports.FieldSeparator=m.FieldSeparator;exports.FieldSet=m.FieldSet;exports.FieldTitle=m.FieldTitle;exports.HoverCard=re.HoverCard;exports.HoverCardContent=re.HoverCardContent;exports.HoverCardTrigger=re.HoverCardTrigger;exports.Input=Se.Input;exports.inputVariants=Se.inputVariants;exports.InputGroup=_.InputGroup;exports.InputGroupAddon=_.InputGroupAddon;exports.InputGroupButton=_.InputGroupButton;exports.InputGroupInput=_.InputGroupInput;exports.InputGroupText=_.InputGroupText;exports.InputGroupTextarea=_.InputGroupTextarea;exports.Item=g.Item;exports.ItemActions=g.ItemActions;exports.ItemContent=g.ItemContent;exports.ItemDescription=g.ItemDescription;exports.ItemFooter=g.ItemFooter;exports.ItemGroup=g.ItemGroup;exports.ItemHeader=g.ItemHeader;exports.ItemMedia=g.ItemMedia;exports.ItemSeparator=g.ItemSeparator;exports.ItemTitle=g.ItemTitle;exports.Kbd=be.Kbd;exports.KbdGroup=be.KbdGroup;exports.Label=Pt.Label;exports.Menubar=r.Menubar;exports.MenubarCheckboxItem=r.MenubarCheckboxItem;exports.MenubarContent=r.MenubarContent;exports.MenubarGroup=r.MenubarGroup;exports.MenubarItem=r.MenubarItem;exports.MenubarLabel=r.MenubarLabel;exports.MenubarMenu=r.MenubarMenu;exports.MenubarPortal=r.MenubarPortal;exports.MenubarRadioGroup=r.MenubarRadioGroup;exports.MenubarRadioItem=r.MenubarRadioItem;exports.MenubarSeparator=r.MenubarSeparator;exports.MenubarShortcut=r.MenubarShortcut;exports.MenubarSub=r.MenubarSub;exports.MenubarSubContent=r.MenubarSubContent;exports.MenubarSubTrigger=r.MenubarSubTrigger;exports.MenubarTrigger=r.MenubarTrigger;exports.NavigationMenu=I.NavigationMenu;exports.NavigationMenuContent=I.NavigationMenuContent;exports.NavigationMenuIndicator=I.NavigationMenuIndicator;exports.NavigationMenuItem=I.NavigationMenuItem;exports.NavigationMenuLink=I.NavigationMenuLink;exports.NavigationMenuList=I.NavigationMenuList;exports.NavigationMenuTrigger=I.NavigationMenuTrigger;exports.NavigationMenuViewport=I.NavigationMenuViewport;exports.navigationMenuTriggerStyle=I.navigationMenuTriggerStyle;exports.Popover=K.Popover;exports.PopoverAnchor=K.PopoverAnchor;exports.PopoverContent=K.PopoverContent;exports.PopoverTrigger=K.PopoverTrigger;exports.Progress=ht.Progress;exports.RadioGroup=ae.RadioGroup;exports.RadioGroupItem=ae.RadioGroupItem;exports.radioGroupItemVariants=ae.radioGroupItemVariants;exports.ResizableHandle=ne.ResizableHandle;exports.ResizablePanel=ne.ResizablePanel;exports.ResizablePanelGroup=ne.ResizablePanelGroup;exports.ScrollArea=Te.ScrollArea;exports.ScrollBar=Te.ScrollBar;exports.Select=S.Select;exports.SelectContent=S.SelectContent;exports.SelectGroup=S.SelectGroup;exports.SelectItem=S.SelectItem;exports.SelectLabel=S.SelectLabel;exports.SelectScrollDownButton=S.SelectScrollDownButton;exports.SelectScrollUpButton=S.SelectScrollUpButton;exports.SelectSeparator=S.SelectSeparator;exports.SelectTrigger=S.SelectTrigger;exports.SelectValue=S.SelectValue;exports.Separator=At.Separator;exports.Sheet=h.Sheet;exports.SheetClose=h.SheetClose;exports.SheetContent=h.SheetContent;exports.SheetDescription=h.SheetDescription;exports.SheetFooter=h.SheetFooter;exports.SheetHeader=h.SheetHeader;exports.SheetTitle=h.SheetTitle;exports.SheetTrigger=h.SheetTrigger;exports.Sidebar=t.Sidebar;exports.SidebarContent=t.SidebarContent;exports.SidebarFooter=t.SidebarFooter;exports.SidebarGroup=t.SidebarGroup;exports.SidebarGroupAction=t.SidebarGroupAction;exports.SidebarGroupContent=t.SidebarGroupContent;exports.SidebarGroupLabel=t.SidebarGroupLabel;exports.SidebarHeader=t.SidebarHeader;exports.SidebarInput=t.SidebarInput;exports.SidebarInset=t.SidebarInset;exports.SidebarMenu=t.SidebarMenu;exports.SidebarMenuAction=t.SidebarMenuAction;exports.SidebarMenuBadge=t.SidebarMenuBadge;exports.SidebarMenuButton=t.SidebarMenuButton;exports.SidebarMenuItem=t.SidebarMenuItem;exports.SidebarMenuSkeleton=t.SidebarMenuSkeleton;exports.SidebarMenuSub=t.SidebarMenuSub;exports.SidebarMenuSubButton=t.SidebarMenuSubButton;exports.SidebarMenuSubItem=t.SidebarMenuSubItem;exports.SidebarProvider=t.SidebarProvider;exports.SidebarRail=t.SidebarRail;exports.SidebarSeparator=t.SidebarSeparator;exports.SidebarTrigger=t.SidebarTrigger;exports.useSidebar=t.useSidebar;exports.Skeleton=Dt.Skeleton;exports.Slider=qt.Slider;exports.Snippet=E.Snippet;exports.SnippetAddon=E.SnippetAddon;exports.SnippetCopyButton=E.SnippetCopyButton;exports.SnippetInput=E.SnippetInput;exports.SnippetText=E.SnippetText;exports.Toaster=vt.Toaster;exports.Spinner=Ie.Spinner;exports.spinnerVariants=Ie.spinnerVariants;exports.Switch=xt.Switch;exports.Table=A.Table;exports.TableBody=A.TableBody;exports.TableCaption=A.TableCaption;exports.TableCell=A.TableCell;exports.TableFooter=A.TableFooter;exports.TableHead=A.TableHead;exports.TableHeader=A.TableHeader;exports.TableRow=A.TableRow;exports.Tabs=y.Tabs;exports.TabsContent=y.TabsContent;exports.TabsList=y.TabsList;exports.TabsTrigger=y.TabsTrigger;exports.tabsListVariants=y.tabsListVariants;exports.Text=Me.Text;exports.textVariants=Me.textVariants;exports.Textarea=Pe.Textarea;exports.textareaVariants=Pe.textareaVariants;exports.Toggle=he.Toggle;exports.toggleVariants=he.toggleVariants;exports.ToggleGroup=Ae.ToggleGroup;exports.ToggleGroupItem=Ae.ToggleGroupItem;exports.Tooltip=z.Tooltip;exports.TooltipContent=z.TooltipContent;exports.TooltipProvider=z.TooltipProvider;exports.TooltipTrigger=z.TooltipTrigger;exports.Tree=R.Tree;exports.TreeItem=R.TreeItem;exports.TreeItemGroup=R.TreeItemGroup;exports.TreeItemLabel=R.TreeItemLabel;exports.treeItemLabelVariants=R.treeItemLabelVariants;exports.useTreeItem=R.useTreeItem;exports.CodeEditor=Bt.CodeEditor;exports.TetraMoleculeIcon=Lt.TetraMoleculeIcon;exports.TetraScienceIcon=_t.TetraScienceIcon;exports.Attachment=p.Attachment;exports.AttachmentEmpty=p.AttachmentEmpty;exports.AttachmentHoverCard=p.AttachmentHoverCard;exports.AttachmentHoverCardContent=p.AttachmentHoverCardContent;exports.AttachmentHoverCardTrigger=p.AttachmentHoverCardTrigger;exports.AttachmentInfo=p.AttachmentInfo;exports.AttachmentPreview=p.AttachmentPreview;exports.AttachmentRemove=p.AttachmentRemove;exports.Attachments=p.Attachments;exports.getAttachmentLabel=p.getAttachmentLabel;exports.getMediaCategory=p.getMediaCategory;exports.useAttachmentContext=p.useAttachmentContext;exports.useAttachmentsContext=p.useAttachmentsContext;exports.ChainOfThought=x.ChainOfThought;exports.ChainOfThoughtContent=x.ChainOfThoughtContent;exports.ChainOfThoughtImage=x.ChainOfThoughtImage;exports.ChainOfThoughtSource=x.ChainOfThoughtSource;exports.ChainOfThoughtSources=x.ChainOfThoughtSources;exports.ChainOfThoughtStep=x.ChainOfThoughtStep;exports.ChainOfThoughtTrigger=x.ChainOfThoughtTrigger;exports.CodeBlock=u.CodeBlock;exports.CodeBlockActions=u.CodeBlockActions;exports.CodeBlockContainer=u.CodeBlockContainer;exports.CodeBlockContent=u.CodeBlockContent;exports.CodeBlockCopyButton=u.CodeBlockCopyButton;exports.CodeBlockFilename=u.CodeBlockFilename;exports.CodeBlockHeader=u.CodeBlockHeader;exports.CodeBlockLanguageSelector=u.CodeBlockLanguageSelector;exports.CodeBlockLanguageSelectorContent=u.CodeBlockLanguageSelectorContent;exports.CodeBlockLanguageSelectorItem=u.CodeBlockLanguageSelectorItem;exports.CodeBlockLanguageSelectorTrigger=u.CodeBlockLanguageSelectorTrigger;exports.CodeBlockLanguageSelectorValue=u.CodeBlockLanguageSelectorValue;exports.CodeBlockTitle=u.CodeBlockTitle;exports.highlightCode=u.highlightCode;exports.Confirmation=M.Confirmation;exports.ConfirmationAccepted=M.ConfirmationAccepted;exports.ConfirmationAction=M.ConfirmationAction;exports.ConfirmationActions=M.ConfirmationActions;exports.ConfirmationCode=M.ConfirmationCode;exports.ConfirmationRejected=M.ConfirmationRejected;exports.ConfirmationRequest=M.ConfirmationRequest;exports.ConfirmationShortcut=M.ConfirmationShortcut;exports.ConfirmationTitle=M.ConfirmationTitle;exports.Context=b.Context;exports.ContextCacheUsage=b.ContextCacheUsage;exports.ContextContent=b.ContextContent;exports.ContextContentBody=b.ContextContentBody;exports.ContextContentFooter=b.ContextContentFooter;exports.ContextContentHeader=b.ContextContentHeader;exports.ContextInputUsage=b.ContextInputUsage;exports.ContextOutputUsage=b.ContextOutputUsage;exports.ContextReasoningUsage=b.ContextReasoningUsage;exports.ContextTrigger=b.ContextTrigger;exports.Conversation=G.Conversation;exports.ConversationContent=G.ConversationContent;exports.ConversationDownload=G.ConversationDownload;exports.ConversationEmptyState=G.ConversationEmptyState;exports.ConversationScrollButton=G.ConversationScrollButton;exports.messagesToMarkdown=G.messagesToMarkdown;exports.InlineCitation=l.InlineCitation;exports.InlineCitationCard=l.InlineCitationCard;exports.InlineCitationCardBody=l.InlineCitationCardBody;exports.InlineCitationCardTrigger=l.InlineCitationCardTrigger;exports.InlineCitationCarousel=l.InlineCitationCarousel;exports.InlineCitationCarouselContent=l.InlineCitationCarouselContent;exports.InlineCitationCarouselHeader=l.InlineCitationCarouselHeader;exports.InlineCitationCarouselIndex=l.InlineCitationCarouselIndex;exports.InlineCitationCarouselItem=l.InlineCitationCarouselItem;exports.InlineCitationCarouselNext=l.InlineCitationCarouselNext;exports.InlineCitationCarouselPrev=l.InlineCitationCarouselPrev;exports.InlineCitationQuote=l.InlineCitationQuote;exports.InlineCitationSource=l.InlineCitationSource;exports.InlineCitationText=l.InlineCitationText;exports.Message=C.Message;exports.MessageAction=C.MessageAction;exports.MessageActions=C.MessageActions;exports.MessageBranch=C.MessageBranch;exports.MessageBranchContent=C.MessageBranchContent;exports.MessageBranchNext=C.MessageBranchNext;exports.MessageBranchPage=C.MessageBranchPage;exports.MessageBranchPrevious=C.MessageBranchPrevious;exports.MessageBranchSelector=C.MessageBranchSelector;exports.MessageContent=C.MessageContent;exports.MessageResponse=C.MessageResponse;exports.MessageToolbar=C.MessageToolbar;exports.ModelSelector=s.ModelSelector;exports.ModelSelectorContent=s.ModelSelectorContent;exports.ModelSelectorDialog=s.ModelSelectorDialog;exports.ModelSelectorEmpty=s.ModelSelectorEmpty;exports.ModelSelectorGroup=s.ModelSelectorGroup;exports.ModelSelectorInput=s.ModelSelectorInput;exports.ModelSelectorItem=s.ModelSelectorItem;exports.ModelSelectorList=s.ModelSelectorList;exports.ModelSelectorLogo=s.ModelSelectorLogo;exports.ModelSelectorLogoGroup=s.ModelSelectorLogoGroup;exports.ModelSelectorName=s.ModelSelectorName;exports.ModelSelectorSeparator=s.ModelSelectorSeparator;exports.ModelSelectorShortcut=s.ModelSelectorShortcut;exports.ModelSelectorTrigger=s.ModelSelectorTrigger;exports.LocalReferencedSourcesContext=e.LocalReferencedSourcesContext;exports.PromptInput=e.PromptInput;exports.PromptInputActionAddAttachments=e.PromptInputActionAddAttachments;exports.PromptInputActionAddScreenshot=e.PromptInputActionAddScreenshot;exports.PromptInputActionMenu=e.PromptInputActionMenu;exports.PromptInputActionMenuContent=e.PromptInputActionMenuContent;exports.PromptInputActionMenuItem=e.PromptInputActionMenuItem;exports.PromptInputActionMenuTrigger=e.PromptInputActionMenuTrigger;exports.PromptInputBody=e.PromptInputBody;exports.PromptInputButton=e.PromptInputButton;exports.PromptInputCommand=e.PromptInputCommand;exports.PromptInputCommandEmpty=e.PromptInputCommandEmpty;exports.PromptInputCommandGroup=e.PromptInputCommandGroup;exports.PromptInputCommandInput=e.PromptInputCommandInput;exports.PromptInputCommandItem=e.PromptInputCommandItem;exports.PromptInputCommandList=e.PromptInputCommandList;exports.PromptInputCommandSeparator=e.PromptInputCommandSeparator;exports.PromptInputFooter=e.PromptInputFooter;exports.PromptInputHeader=e.PromptInputHeader;exports.PromptInputHoverCard=e.PromptInputHoverCard;exports.PromptInputHoverCardContent=e.PromptInputHoverCardContent;exports.PromptInputHoverCardTrigger=e.PromptInputHoverCardTrigger;exports.PromptInputProvider=e.PromptInputProvider;exports.PromptInputSelect=e.PromptInputSelect;exports.PromptInputSelectContent=e.PromptInputSelectContent;exports.PromptInputSelectItem=e.PromptInputSelectItem;exports.PromptInputSelectTrigger=e.PromptInputSelectTrigger;exports.PromptInputSelectValue=e.PromptInputSelectValue;exports.PromptInputSlotSwap=e.PromptInputSlotSwap;exports.PromptInputSubmit=e.PromptInputSubmit;exports.PromptInputTab=e.PromptInputTab;exports.PromptInputTabBody=e.PromptInputTabBody;exports.PromptInputTabItem=e.PromptInputTabItem;exports.PromptInputTabLabel=e.PromptInputTabLabel;exports.PromptInputTabsList=e.PromptInputTabsList;exports.PromptInputTextarea=e.PromptInputTextarea;exports.PromptInputTools=e.PromptInputTools;exports.usePromptInputAttachments=e.usePromptInputAttachments;exports.usePromptInputController=e.usePromptInputController;exports.usePromptInputReferencedSources=e.usePromptInputReferencedSources;exports.useProviderAttachments=e.useProviderAttachments;exports.Queue=i.Queue;exports.QueueItem=i.QueueItem;exports.QueueItemAction=i.QueueItemAction;exports.QueueItemActions=i.QueueItemActions;exports.QueueItemAttachment=i.QueueItemAttachment;exports.QueueItemContent=i.QueueItemContent;exports.QueueItemDescription=i.QueueItemDescription;exports.QueueItemFile=i.QueueItemFile;exports.QueueItemImage=i.QueueItemImage;exports.QueueItemIndicator=i.QueueItemIndicator;exports.QueueList=i.QueueList;exports.QueueSection=i.QueueSection;exports.QueueSectionContent=i.QueueSectionContent;exports.QueueSectionLabel=i.QueueSectionLabel;exports.QueueSectionTrigger=i.QueueSectionTrigger;exports.Reasoning=Z.Reasoning;exports.ReasoningContent=Z.ReasoningContent;exports.ReasoningTrigger=Z.ReasoningTrigger;exports.useReasoning=Z.useReasoning;exports.Shimmer=De.Shimmer;exports.TS_SHIMMER_GRADIENT=De.TS_SHIMMER_GRADIENT;exports.Source=j.Source;exports.Sources=j.Sources;exports.SourcesContent=j.SourcesContent;exports.SourcesTrigger=j.SourcesTrigger;exports.SpeechInput=Rt.SpeechInput;exports.STREAM_STATUS_ICONS=qe.STREAM_STATUS_ICONS;exports.StreamStatus=qe.StreamStatus;exports.Suggestion=ve.Suggestion;exports.Suggestions=ve.Suggestions;exports.Task=f.Task;exports.TaskContent=f.TaskContent;exports.TaskItem=f.TaskItem;exports.TaskItemFile=f.TaskItemFile;exports.TaskTrigger=f.TaskTrigger;exports.Tool=F.Tool;exports.ToolContent=F.ToolContent;exports.ToolHeader=F.ToolHeader;exports.ToolInput=F.ToolInput;exports.ToolOutput=F.ToolOutput;exports.getStatusBadge=F.getStatusBadge;exports.CHART_COLORS=O.CHART_COLORS;exports.CHART_DIVERGING=O.CHART_DIVERGING;exports.CHART_SEQUENTIAL=O.CHART_SEQUENTIAL;exports.seriesColor=O.seriesColor;exports.toPlotlyColorscale=O.toPlotlyColorscale;exports.getSupportedCodeBlockLanguages=xe.getSupportedCodeBlockLanguages;exports.registerCodeBlockLanguage=xe.registerCodeBlockLanguage;exports.PROCESS_FLOW_STEP_STATUSES=Gt.PROCESS_FLOW_STEP_STATUSES;exports.chartTooltipLines=Ft.chartTooltipLines;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|