@tetrascience-npm/tetrascience-react-ui 0.2.0 → 0.3.0-beta.2.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 +139 -12
- package/dist/cjs/index.js +264 -261
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/athena.js +2 -0
- package/dist/cjs/providers/athena.js.map +1 -0
- package/dist/cjs/providers/databricks.js +2 -0
- package/dist/cjs/providers/databricks.js.map +1 -0
- package/dist/cjs/providers/exceptions-CYktpdqW.js +2 -0
- package/dist/cjs/providers/exceptions-CYktpdqW.js.map +1 -0
- package/dist/cjs/providers/snowflake.js +2 -0
- package/dist/cjs/providers/snowflake.js.map +1 -0
- package/dist/cjs/server.js +2 -0
- package/dist/cjs/server.js.map +1 -0
- package/dist/esm/index.js +294 -291
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/athena.js +2 -0
- package/dist/esm/providers/athena.js.map +1 -0
- package/dist/esm/providers/databricks.js +2 -0
- package/dist/esm/providers/databricks.js.map +1 -0
- package/dist/esm/providers/exceptions-C3uFWZB2.js +2 -0
- package/dist/esm/providers/exceptions-C3uFWZB2.js.map +1 -0
- package/dist/esm/providers/snowflake.js +2 -0
- package/dist/esm/providers/snowflake.js.map +1 -0
- package/dist/esm/server.js +2 -0
- package/dist/esm/server.js.map +1 -0
- package/dist/index.d.ts +1281 -113
- package/dist/providers/athena.d.ts +79 -0
- package/dist/providers/databricks.d.ts +43 -0
- package/dist/providers/snowflake.d.ts +40 -0
- package/dist/providers/types-Ck4uFaGp.d.ts +82 -0
- package/dist/server.d.ts +517 -0
- package/package.json +112 -16
- package/src/styles/README.md +56 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,109 +1,1277 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import React__default, { ClassAttributes, HTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
import { OnChange } from '@monaco-editor/react';
|
|
4
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
import { ExtraProps } from 'react-markdown';
|
|
6
|
+
|
|
7
|
+
type BadgeSize = "small" | "medium";
|
|
8
|
+
type BadgeVariant = "default" | "primary";
|
|
9
|
+
interface BadgeProps {
|
|
10
|
+
children: React__default.ReactNode;
|
|
11
|
+
size?: BadgeSize;
|
|
12
|
+
variant?: BadgeVariant;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
iconLeft?: React__default.ReactNode;
|
|
15
|
+
iconRight?: React__default.ReactNode;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
declare const Badge: React__default.FC<BadgeProps>;
|
|
19
|
+
|
|
20
|
+
type ButtonSize = "small" | "medium";
|
|
21
|
+
type ButtonVariant = "primary" | "secondary" | "tertiary";
|
|
22
|
+
interface ButtonProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
23
|
+
children: React__default.ReactNode;
|
|
24
|
+
variant?: ButtonVariant;
|
|
25
|
+
size?: ButtonSize;
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
leftIcon?: React__default.ReactNode;
|
|
28
|
+
rightIcon?: React__default.ReactNode;
|
|
29
|
+
noPadding?: boolean;
|
|
30
|
+
fullWidth?: boolean;
|
|
31
|
+
}
|
|
32
|
+
declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
|
|
33
|
+
|
|
34
|
+
interface ButtonControlProps {
|
|
35
|
+
icon?: React__default.ReactNode;
|
|
36
|
+
selected?: boolean;
|
|
37
|
+
disabled?: boolean;
|
|
38
|
+
onClick?: () => void;
|
|
39
|
+
}
|
|
40
|
+
declare const ButtonControl: React__default.FC<ButtonControlProps>;
|
|
41
|
+
|
|
42
|
+
type CardSize = "small" | "medium" | "large";
|
|
43
|
+
type CardVariant = "default" | "outlined" | "elevated";
|
|
44
|
+
interface CardProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
45
|
+
children: React__default.ReactNode;
|
|
46
|
+
title?: React__default.ReactNode;
|
|
47
|
+
size?: CardSize;
|
|
48
|
+
variant?: CardVariant;
|
|
49
|
+
className?: string;
|
|
50
|
+
fullWidth?: boolean;
|
|
51
|
+
}
|
|
52
|
+
declare const Card: React__default.ForwardRefExoticComponent<CardProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
53
|
+
|
|
54
|
+
interface CheckboxProps {
|
|
55
|
+
checked?: boolean;
|
|
56
|
+
onChange?: (checked: boolean) => void;
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
className?: string;
|
|
59
|
+
onClick?: (e: React__default.MouseEvent) => void;
|
|
60
|
+
label?: React__default.ReactNode;
|
|
61
|
+
noPadding?: boolean;
|
|
62
|
+
}
|
|
63
|
+
declare const Checkbox: React__default.ForwardRefExoticComponent<CheckboxProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
64
|
+
|
|
65
|
+
interface CodeEditorProps {
|
|
66
|
+
value: string;
|
|
67
|
+
onChange: OnChange;
|
|
68
|
+
language?: string;
|
|
69
|
+
theme?: "light" | "dark";
|
|
70
|
+
height?: string | number;
|
|
71
|
+
width?: string | number;
|
|
72
|
+
options?: Record<string, unknown>;
|
|
73
|
+
label?: string;
|
|
74
|
+
onCopy?: (code: string) => void;
|
|
75
|
+
onLaunch?: (code: string) => void;
|
|
76
|
+
disabled?: boolean;
|
|
77
|
+
}
|
|
78
|
+
declare const CodeEditor: React__default.FC<CodeEditorProps>;
|
|
79
|
+
|
|
80
|
+
type DropdownSize = "xsmall" | "small";
|
|
81
|
+
interface DropdownOption {
|
|
82
|
+
value: string;
|
|
83
|
+
label: string;
|
|
84
|
+
disabled?: boolean;
|
|
85
|
+
}
|
|
86
|
+
interface DropdownProps {
|
|
87
|
+
options: DropdownOption[];
|
|
88
|
+
value?: string;
|
|
89
|
+
placeholder?: string;
|
|
90
|
+
disabled?: boolean;
|
|
91
|
+
error?: boolean;
|
|
92
|
+
size?: DropdownSize;
|
|
93
|
+
onChange?: (value: string) => void;
|
|
94
|
+
onOpen?: () => void;
|
|
95
|
+
onClose?: () => void;
|
|
96
|
+
width?: string;
|
|
97
|
+
menuWidth?: string;
|
|
98
|
+
}
|
|
99
|
+
declare const Dropdown: React__default.FC<DropdownProps>;
|
|
100
|
+
|
|
101
|
+
interface ErrorAlertProps {
|
|
102
|
+
/** The error object to display. Can be Error, AxiosError, string, or any other type. */
|
|
103
|
+
error: unknown;
|
|
104
|
+
/** Optional title for the error alert. Defaults to 'An Error Occurred'. */
|
|
105
|
+
title?: React__default.ReactNode;
|
|
106
|
+
/** Optional callback function when the alert is closed. */
|
|
107
|
+
onClose?: () => void;
|
|
108
|
+
/** Set to true to show technical details expanded by default. Defaults to false. */
|
|
109
|
+
showDetailsDefault?: boolean;
|
|
110
|
+
/** Custom message to show when error is null/undefined (optional, component renders nothing by default) */
|
|
111
|
+
noErrorContent?: React__default.ReactNode;
|
|
112
|
+
}
|
|
113
|
+
declare const ErrorAlert: React__default.FC<ErrorAlertProps>;
|
|
114
|
+
|
|
115
|
+
interface IconsProps {
|
|
116
|
+
fill?: string;
|
|
117
|
+
width?: string;
|
|
118
|
+
height?: string;
|
|
119
|
+
name: IconName;
|
|
120
|
+
}
|
|
121
|
+
interface IconProps {
|
|
122
|
+
fill?: string;
|
|
123
|
+
width?: string;
|
|
124
|
+
height?: string;
|
|
125
|
+
}
|
|
126
|
+
declare enum IconName {
|
|
127
|
+
BARS_3_BOTTOM_LEFT = "bars-3-bottom-left",
|
|
128
|
+
BUILDING = "building",
|
|
129
|
+
BULK_CHECK = "bulk-check",
|
|
130
|
+
CHECK = "check",
|
|
131
|
+
CHECK_CIRCLE = "check-circle",
|
|
132
|
+
CHECK_SQUARE = "check-square",
|
|
133
|
+
CHEVRON_DOWN = "chevron-down",
|
|
134
|
+
CLOSE = "close",
|
|
135
|
+
CODE = "code",
|
|
136
|
+
COMPUTER = "computer",
|
|
137
|
+
COPY = "copy",
|
|
138
|
+
CUBE = "cube",
|
|
139
|
+
DATABASE = "database",
|
|
140
|
+
EXCLAMATION_CIRCLE = "exclamation-circle",
|
|
141
|
+
EXCLAMATION_TRIANGLE = "exclamation-triangle",
|
|
142
|
+
GEAR = "gear",
|
|
143
|
+
GLobe = "globe",
|
|
144
|
+
HASHTAG = "hashtag",
|
|
145
|
+
HOME = "home",
|
|
146
|
+
INBOX = "inbox",
|
|
147
|
+
INFORMATION_CIRCLE = "information-circle",
|
|
148
|
+
INFORMATION_CIRCLE_MICRO = "information-circle-micro",
|
|
149
|
+
LAMP = "lamp",
|
|
150
|
+
LOCK_OPEN = "lock-open",
|
|
151
|
+
MINUS = "minus",
|
|
152
|
+
PAPER_PLANE = "paper-plane",
|
|
153
|
+
PENCIL = "pencil",
|
|
154
|
+
PIE_CHART = "pie-chart",
|
|
155
|
+
PIPELINE = "pipeline",
|
|
156
|
+
PLUS = "plus",
|
|
157
|
+
PROFILE = "profile",
|
|
158
|
+
QUESTION_CIRCLE = "question-circle",
|
|
159
|
+
ROCKET_LAUNCH = "rocket-launch",
|
|
160
|
+
SEARCH = "search",
|
|
161
|
+
SEARCH_DOCUMENT = "search-document",
|
|
162
|
+
SEARCH_SQL = "search-sql",
|
|
163
|
+
SITEMAP = "sitemap",
|
|
164
|
+
TETRASCIENCE_ICON = "tetrascience-icon",
|
|
165
|
+
TEXT = "text",
|
|
166
|
+
TRASH = "trash",
|
|
167
|
+
VIEWFINDER_CIRCLE = "viewfinder-circle"
|
|
168
|
+
}
|
|
169
|
+
declare const Icon: (props: IconsProps) => react_jsx_runtime.JSX.Element;
|
|
170
|
+
|
|
171
|
+
type InputSize = "xsmall" | "small";
|
|
172
|
+
interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
173
|
+
size?: InputSize;
|
|
174
|
+
iconLeft?: React__default.ReactNode;
|
|
175
|
+
iconRight?: React__default.ReactNode;
|
|
176
|
+
error?: boolean;
|
|
177
|
+
disabled?: boolean;
|
|
178
|
+
}
|
|
179
|
+
declare const Input: React__default.ForwardRefExoticComponent<InputProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
180
|
+
|
|
181
|
+
interface LabelProps {
|
|
182
|
+
children: React__default.ReactNode;
|
|
183
|
+
infoText?: string;
|
|
184
|
+
className?: string;
|
|
185
|
+
}
|
|
186
|
+
declare const Label: React__default.FC<LabelProps>;
|
|
187
|
+
|
|
188
|
+
type CodeComponentProps = ClassAttributes<HTMLElement> & HTMLAttributes<HTMLElement> & ExtraProps & {
|
|
189
|
+
inline?: boolean;
|
|
190
|
+
};
|
|
191
|
+
type MarkdownDisplayProps = {
|
|
192
|
+
markdown: string;
|
|
193
|
+
codeRenderer?: (props: CodeComponentProps) => React__default.ReactElement;
|
|
194
|
+
};
|
|
195
|
+
declare const MarkdownDisplay: ({ markdown, codeRenderer }: MarkdownDisplayProps) => react_jsx_runtime.JSX.Element;
|
|
196
|
+
|
|
197
|
+
interface MenuItemProps {
|
|
198
|
+
label: string;
|
|
199
|
+
checked?: boolean;
|
|
200
|
+
showCheckbox?: boolean;
|
|
201
|
+
onClick?: () => void;
|
|
202
|
+
onCheckChange?: (checked: boolean) => void;
|
|
203
|
+
active?: boolean;
|
|
204
|
+
className?: string;
|
|
205
|
+
}
|
|
206
|
+
declare const MenuItem: React$1.ForwardRefExoticComponent<MenuItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
207
|
+
|
|
208
|
+
interface ModalProps {
|
|
209
|
+
isOpen: boolean;
|
|
210
|
+
onClose: () => void;
|
|
211
|
+
onCloseLabel?: string;
|
|
212
|
+
onConfirm: () => void;
|
|
213
|
+
onConfirmLabel?: string;
|
|
214
|
+
children: ReactNode;
|
|
215
|
+
width?: string;
|
|
216
|
+
className?: string;
|
|
217
|
+
hideActions?: boolean;
|
|
218
|
+
title?: string;
|
|
219
|
+
}
|
|
220
|
+
declare const Modal: ({ isOpen, onClose, onCloseLabel, onConfirm, onConfirmLabel, children, width, className, hideActions, title, }: ModalProps) => false | react_jsx_runtime.JSX.Element;
|
|
221
|
+
|
|
222
|
+
type PopConfirmPlacement = "top" | "left" | "right" | "bottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
|
|
223
|
+
interface PopConfirmProps {
|
|
224
|
+
title?: ReactNode;
|
|
225
|
+
description?: ReactNode;
|
|
226
|
+
onConfirm?: (e?: React__default.MouseEvent<HTMLElement>) => void;
|
|
227
|
+
onCancel?: (e?: React__default.MouseEvent<HTMLElement>) => void;
|
|
228
|
+
okText?: string;
|
|
229
|
+
cancelText?: string;
|
|
230
|
+
placement?: PopConfirmPlacement;
|
|
231
|
+
children: ReactNode;
|
|
232
|
+
className?: string;
|
|
233
|
+
okButtonProps?: React__default.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
234
|
+
cancelButtonProps?: React__default.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
235
|
+
}
|
|
236
|
+
declare const PopConfirm: React__default.FC<PopConfirmProps>;
|
|
237
|
+
|
|
238
|
+
interface SupportiveTextProps {
|
|
239
|
+
children: React__default.ReactNode;
|
|
240
|
+
showCheck?: boolean;
|
|
241
|
+
className?: string;
|
|
242
|
+
}
|
|
243
|
+
declare const SupportiveText: React__default.FC<SupportiveTextProps>;
|
|
244
|
+
|
|
245
|
+
type TabSize = "small" | "medium";
|
|
246
|
+
interface TabProps {
|
|
247
|
+
label: string;
|
|
248
|
+
active?: boolean;
|
|
249
|
+
disabled?: boolean;
|
|
250
|
+
size?: TabSize;
|
|
251
|
+
onClick?: () => void;
|
|
252
|
+
}
|
|
253
|
+
declare const Tab: React__default.FC<TabProps>;
|
|
254
|
+
|
|
255
|
+
interface TableCellProps extends React__default.TdHTMLAttributes<HTMLTableCellElement> {
|
|
256
|
+
children?: React__default.ReactNode;
|
|
257
|
+
align?: "left" | "center" | "right";
|
|
258
|
+
width?: string;
|
|
259
|
+
className?: string;
|
|
260
|
+
}
|
|
261
|
+
declare const TableCell: React__default.ForwardRefExoticComponent<TableCellProps & React__default.RefAttributes<HTMLTableCellElement>>;
|
|
262
|
+
|
|
263
|
+
interface TableHeaderCellProps extends React__default.ThHTMLAttributes<HTMLTableCellElement> {
|
|
264
|
+
children?: React__default.ReactNode;
|
|
265
|
+
sortable?: boolean;
|
|
266
|
+
sortDirection?: "asc" | "desc" | null;
|
|
267
|
+
onSort?: () => void;
|
|
268
|
+
filterable?: boolean;
|
|
269
|
+
filterOptions?: DropdownOption[];
|
|
270
|
+
filterValue?: string;
|
|
271
|
+
onFilterChange?: (value: string) => void;
|
|
272
|
+
width?: string;
|
|
273
|
+
className?: string;
|
|
274
|
+
}
|
|
275
|
+
declare const TableHeaderCell: React__default.ForwardRefExoticComponent<TableHeaderCellProps & React__default.RefAttributes<HTMLTableCellElement>>;
|
|
276
|
+
|
|
277
|
+
type TextareaSize = "xsmall" | "small";
|
|
278
|
+
interface TextareaProps extends Omit<React__default.TextareaHTMLAttributes<HTMLTextAreaElement>, "size"> {
|
|
279
|
+
size?: TextareaSize;
|
|
280
|
+
error?: boolean;
|
|
281
|
+
disabled?: boolean;
|
|
282
|
+
fullWidth?: boolean;
|
|
283
|
+
rows?: number;
|
|
284
|
+
}
|
|
285
|
+
declare const Textarea: React__default.ForwardRefExoticComponent<TextareaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
286
|
+
|
|
287
|
+
type ToastType = "info" | "success" | "warning" | "danger" | "default";
|
|
288
|
+
interface ToastProps {
|
|
289
|
+
type?: ToastType;
|
|
290
|
+
heading: string;
|
|
291
|
+
description?: string;
|
|
292
|
+
className?: string;
|
|
293
|
+
}
|
|
294
|
+
declare const Toast: React__default.FC<ToastProps>;
|
|
295
|
+
|
|
296
|
+
interface ToggleProps {
|
|
297
|
+
checked?: boolean;
|
|
298
|
+
onChange?: (checked: boolean) => void;
|
|
299
|
+
disabled?: boolean;
|
|
300
|
+
label?: string;
|
|
301
|
+
className?: string;
|
|
302
|
+
}
|
|
303
|
+
declare const Toggle: React__default.FC<ToggleProps>;
|
|
304
|
+
|
|
305
|
+
type TooltipPlacement = "top" | "right" | "bottom" | "left";
|
|
306
|
+
interface TooltipProps {
|
|
307
|
+
content: ReactNode;
|
|
308
|
+
children: ReactNode;
|
|
309
|
+
placement?: TooltipPlacement;
|
|
310
|
+
className?: string;
|
|
311
|
+
delay?: number;
|
|
312
|
+
}
|
|
313
|
+
declare const Tooltip: React__default.FC<TooltipProps>;
|
|
314
|
+
|
|
315
|
+
interface UserProfileProps {
|
|
316
|
+
name: string;
|
|
317
|
+
avatar?: string;
|
|
318
|
+
}
|
|
319
|
+
interface AppHeaderProps {
|
|
320
|
+
hostname: string;
|
|
321
|
+
userProfile: UserProfileProps;
|
|
322
|
+
onHomeClick?: () => void;
|
|
323
|
+
onSettingsClick?: () => void;
|
|
324
|
+
onUserProfileClick?: () => void;
|
|
325
|
+
}
|
|
326
|
+
declare const AppHeader: React__default.FC<AppHeaderProps>;
|
|
327
|
+
|
|
328
|
+
interface AssistantModalProps {
|
|
329
|
+
open: boolean;
|
|
330
|
+
title: string;
|
|
331
|
+
prompt: string;
|
|
332
|
+
initialCode?: string;
|
|
333
|
+
userQuery?: string;
|
|
334
|
+
onUserQueryChange?: (value: string) => void;
|
|
335
|
+
onCopy: (code: string) => void;
|
|
336
|
+
onLaunch: (code: string) => void;
|
|
337
|
+
onSend: (input: string) => void;
|
|
338
|
+
onCancel: () => void;
|
|
339
|
+
}
|
|
340
|
+
declare const AssistantModal: React__default.FC<AssistantModalProps>;
|
|
341
|
+
|
|
342
|
+
interface ButtonControlItem extends ButtonControlProps {
|
|
343
|
+
id: string;
|
|
344
|
+
}
|
|
345
|
+
interface ButtonControlGroupProps {
|
|
346
|
+
controls: ButtonControlItem[];
|
|
347
|
+
selectedId?: string;
|
|
348
|
+
onChange?: (id: string) => void;
|
|
349
|
+
vertical?: boolean;
|
|
350
|
+
disabled?: boolean;
|
|
351
|
+
}
|
|
352
|
+
declare const ButtonControlGroup: React__default.FC<ButtonControlGroupProps>;
|
|
353
|
+
|
|
354
|
+
type CardSidebarStatus = "default" | "active" | "hover" | "disabled";
|
|
355
|
+
interface CardSidebarProps {
|
|
356
|
+
title: string;
|
|
357
|
+
description?: string;
|
|
358
|
+
buttonText?: string;
|
|
359
|
+
linkText?: string;
|
|
360
|
+
status?: CardSidebarStatus;
|
|
361
|
+
onButtonClick?: () => void;
|
|
362
|
+
onLinkClick?: () => void;
|
|
363
|
+
className?: string;
|
|
364
|
+
}
|
|
365
|
+
declare const CardSidebar: React$1.ForwardRefExoticComponent<CardSidebarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
366
|
+
|
|
367
|
+
interface CodeScriptEditorButtonProps {
|
|
368
|
+
initialCode?: string;
|
|
369
|
+
onCodeSave?: (newCode: string) => void;
|
|
370
|
+
language?: string;
|
|
371
|
+
buttonText?: string;
|
|
372
|
+
modalTitle?: string;
|
|
373
|
+
buttonProps?: React.ComponentProps<typeof Button>;
|
|
374
|
+
modalProps?: Omit<React.ComponentProps<typeof Modal>, "isOpen" | "onConfirm" | "onClose">;
|
|
375
|
+
disabled?: boolean;
|
|
376
|
+
isEditMode?: boolean;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Renders an 'Edit code' button that opens a modal with a Monaco code editor.
|
|
380
|
+
*/
|
|
381
|
+
declare const CodeScriptEditorButton: ({ initialCode, onCodeSave, language, buttonText, modalTitle, buttonProps, modalProps, disabled, }: CodeScriptEditorButtonProps) => react_jsx_runtime.JSX.Element;
|
|
382
|
+
|
|
383
|
+
interface FormFieldProps extends Omit<InputProps, "className"> {
|
|
384
|
+
label: string;
|
|
385
|
+
infoText?: string;
|
|
386
|
+
supportiveText?: string;
|
|
387
|
+
showSupportiveCheck?: boolean;
|
|
388
|
+
className?: string;
|
|
389
|
+
}
|
|
390
|
+
declare const FormField: React$1.ForwardRefExoticComponent<FormFieldProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
391
|
+
|
|
392
|
+
interface LaunchContentProps {
|
|
393
|
+
initialCode?: string;
|
|
394
|
+
onDeploy?: () => void;
|
|
395
|
+
versions?: string[];
|
|
396
|
+
currentVersion?: string;
|
|
397
|
+
onVersionChange?: (version: string) => void;
|
|
398
|
+
}
|
|
399
|
+
declare const LaunchContent: React__default.FC<LaunchContentProps>;
|
|
400
|
+
|
|
401
|
+
interface MenuItemData extends Omit<MenuItemProps, "onClick" | "onCheckChange"> {
|
|
402
|
+
id: string;
|
|
403
|
+
}
|
|
404
|
+
interface MenuProps {
|
|
405
|
+
title?: string;
|
|
406
|
+
items: MenuItemData[];
|
|
407
|
+
onItemClick?: (itemId: string) => void;
|
|
408
|
+
onItemCheckChange?: (itemId: string, checked: boolean) => void;
|
|
409
|
+
activeItemId?: string | null;
|
|
410
|
+
className?: string;
|
|
411
|
+
}
|
|
412
|
+
declare const Menu: React__default.FC<MenuProps>;
|
|
413
|
+
|
|
414
|
+
interface OrganizationInfo {
|
|
415
|
+
name: string;
|
|
416
|
+
subtext?: string;
|
|
417
|
+
logo?: React__default.ReactNode;
|
|
418
|
+
}
|
|
419
|
+
interface NavbarProps {
|
|
420
|
+
organization: OrganizationInfo;
|
|
421
|
+
}
|
|
422
|
+
declare const Navbar: React__default.FC<NavbarProps>;
|
|
423
|
+
|
|
424
|
+
interface ProtocolConfigurationProps {
|
|
425
|
+
className?: string;
|
|
426
|
+
}
|
|
427
|
+
declare const ProtocolConfiguration: React__default.FC<ProtocolConfigurationProps>;
|
|
428
|
+
|
|
429
|
+
interface ProtocolYamlCardProps {
|
|
430
|
+
title: string;
|
|
431
|
+
newVersionMode: boolean;
|
|
432
|
+
onToggleNewVersionMode: (checked: boolean) => void;
|
|
433
|
+
versionOptions: DropdownOption[];
|
|
434
|
+
selectedVersion: string;
|
|
435
|
+
onVersionChange: (value: string) => void;
|
|
436
|
+
onDeploy: () => void;
|
|
437
|
+
yaml: string;
|
|
438
|
+
onYamlChange: (value: string) => void;
|
|
439
|
+
}
|
|
440
|
+
declare const ProtocolYamlCard: React__default.FC<ProtocolYamlCardProps>;
|
|
441
|
+
|
|
442
|
+
interface PythonEditorModalProps {
|
|
443
|
+
open: boolean;
|
|
444
|
+
initialValue?: string;
|
|
445
|
+
title?: string;
|
|
446
|
+
onSave: (value: string) => void;
|
|
447
|
+
onCancel: () => void;
|
|
448
|
+
}
|
|
449
|
+
declare const PythonEditorModal: React__default.FC<PythonEditorModalProps>;
|
|
450
|
+
|
|
451
|
+
interface SelectFieldProps extends Omit<DropdownProps, "className"> {
|
|
452
|
+
label: string;
|
|
453
|
+
infoText?: string;
|
|
454
|
+
supportiveText?: string;
|
|
455
|
+
showSupportiveCheck?: boolean;
|
|
456
|
+
className?: string;
|
|
457
|
+
}
|
|
458
|
+
declare const SelectField: React$1.ForwardRefExoticComponent<SelectFieldProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
459
|
+
|
|
460
|
+
interface SidebarItemProps {
|
|
461
|
+
icon: IconName;
|
|
462
|
+
label: string;
|
|
463
|
+
active?: boolean;
|
|
464
|
+
onClick?: () => void;
|
|
465
|
+
}
|
|
466
|
+
interface SidebarProps {
|
|
467
|
+
items: SidebarItemProps[];
|
|
468
|
+
activeItem?: string;
|
|
469
|
+
onItemClick?: (label: string) => void;
|
|
470
|
+
}
|
|
471
|
+
declare const Sidebar: React__default.FC<SidebarProps>;
|
|
472
|
+
|
|
473
|
+
interface TableColumn<T = any> {
|
|
474
|
+
key: string;
|
|
475
|
+
header: string;
|
|
476
|
+
sortable?: boolean;
|
|
477
|
+
filterable?: boolean;
|
|
478
|
+
filterOptions?: DropdownOption[];
|
|
479
|
+
width?: string;
|
|
480
|
+
align?: "left" | "center" | "right";
|
|
481
|
+
render?: (value: any, row: T, index: number) => React__default.ReactNode;
|
|
482
|
+
}
|
|
483
|
+
interface TableProps<T = any> {
|
|
484
|
+
columns: TableColumn<T>[];
|
|
485
|
+
data: T[];
|
|
486
|
+
pageSize?: number;
|
|
487
|
+
rowKey?: keyof T | ((row: T) => string | number);
|
|
488
|
+
selectable?: boolean;
|
|
489
|
+
onRowSelect?: (selectedRows: T[]) => void;
|
|
490
|
+
sortKey?: string;
|
|
491
|
+
sortDirection?: "asc" | "desc";
|
|
492
|
+
onSort?: (key: string, direction: "asc" | "desc") => void;
|
|
493
|
+
currentPage?: number;
|
|
494
|
+
onPageChange?: (page: number) => void;
|
|
495
|
+
selectedRows?: T[];
|
|
496
|
+
className?: string;
|
|
497
|
+
}
|
|
498
|
+
declare function Table<T extends Record<string, any>>({ columns, data, pageSize, rowKey, selectable, onRowSelect, sortKey: controlledSortKey, sortDirection: controlledSortDirection, onSort: controlledOnSort, currentPage: controlledCurrentPage, onPageChange: controlledOnPageChange, selectedRows: controlledSelectedRows, className, }: TableProps<T>): react_jsx_runtime.JSX.Element;
|
|
499
|
+
declare namespace Table {
|
|
500
|
+
var displayName: string;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
interface TabItem extends Omit<TabProps, "active" | "onClick"> {
|
|
504
|
+
id: string;
|
|
505
|
+
}
|
|
506
|
+
interface TabGroupProps {
|
|
507
|
+
tabs: TabItem[];
|
|
508
|
+
activeTab?: string;
|
|
509
|
+
onChange?: (tabId: string) => void;
|
|
510
|
+
disabled?: boolean;
|
|
511
|
+
size?: TabSize;
|
|
512
|
+
}
|
|
513
|
+
declare const TabGroup: React__default.FC<TabGroupProps>;
|
|
514
|
+
|
|
515
|
+
declare module "styled-components" {
|
|
516
|
+
interface DefaultTheme {
|
|
517
|
+
position: ToastPosition;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
type ToastPosition = "top" | "bottom";
|
|
521
|
+
interface ToastContainerProps {
|
|
522
|
+
position: ToastPosition;
|
|
523
|
+
}
|
|
524
|
+
interface ToastManagerProps {
|
|
525
|
+
position?: ToastPosition;
|
|
526
|
+
}
|
|
527
|
+
declare const ToastManager: React__default.FC<ToastManagerProps>;
|
|
528
|
+
|
|
529
|
+
interface AppLayoutProps {
|
|
530
|
+
userProfile: {
|
|
531
|
+
name: string;
|
|
532
|
+
avatar?: string;
|
|
533
|
+
};
|
|
534
|
+
hostname: string;
|
|
535
|
+
organization: {
|
|
536
|
+
name: string;
|
|
537
|
+
subtext?: string;
|
|
538
|
+
logo?: React__default.ReactNode;
|
|
539
|
+
};
|
|
540
|
+
children?: React__default.ReactNode;
|
|
541
|
+
}
|
|
542
|
+
declare const AppLayout: React__default.FC<AppLayoutProps>;
|
|
543
|
+
|
|
544
|
+
interface AreaDataSeries {
|
|
545
|
+
x: number[];
|
|
546
|
+
y: number[];
|
|
547
|
+
name: string;
|
|
548
|
+
color: string;
|
|
549
|
+
fill?: "tozeroy" | "tonexty" | "toself";
|
|
550
|
+
}
|
|
551
|
+
type AreaGraphVariant = "normal" | "stacked";
|
|
552
|
+
interface AreaGraphProps {
|
|
553
|
+
dataSeries: AreaDataSeries[];
|
|
554
|
+
width?: number;
|
|
555
|
+
height?: number;
|
|
556
|
+
xRange?: [number, number];
|
|
557
|
+
yRange?: [number, number];
|
|
558
|
+
variant?: AreaGraphVariant;
|
|
559
|
+
xTitle?: string;
|
|
560
|
+
yTitle?: string;
|
|
561
|
+
title?: string;
|
|
562
|
+
}
|
|
563
|
+
declare const AreaGraph: React__default.FC<AreaGraphProps>;
|
|
564
|
+
|
|
565
|
+
interface BarDataSeries {
|
|
566
|
+
x: number[];
|
|
567
|
+
y: number[];
|
|
568
|
+
name: string;
|
|
569
|
+
color: string;
|
|
570
|
+
error_y?: {
|
|
571
|
+
type: "data";
|
|
572
|
+
array: number[];
|
|
573
|
+
visible: boolean;
|
|
574
|
+
};
|
|
575
|
+
}
|
|
576
|
+
type BarGraphVariant = "group" | "stack" | "overlay";
|
|
577
|
+
interface BarGraphProps {
|
|
578
|
+
dataSeries: BarDataSeries[];
|
|
579
|
+
width?: number;
|
|
580
|
+
height?: number;
|
|
581
|
+
xRange?: [number, number];
|
|
582
|
+
yRange?: [number, number];
|
|
583
|
+
variant?: BarGraphVariant;
|
|
584
|
+
xTitle?: string;
|
|
585
|
+
yTitle?: string;
|
|
586
|
+
title?: string;
|
|
587
|
+
barWidth?: number;
|
|
588
|
+
}
|
|
589
|
+
declare const BarGraph: React__default.FC<BarGraphProps>;
|
|
590
|
+
|
|
591
|
+
interface BoxDataSeries {
|
|
592
|
+
y: number[];
|
|
593
|
+
name: string;
|
|
594
|
+
color: string;
|
|
595
|
+
x?: string[] | number[];
|
|
596
|
+
boxpoints?: "all" | "outliers" | "suspectedoutliers" | false;
|
|
597
|
+
jitter?: number;
|
|
598
|
+
pointpos?: number;
|
|
599
|
+
}
|
|
600
|
+
interface BoxplotProps {
|
|
601
|
+
dataSeries: BoxDataSeries[];
|
|
602
|
+
width?: number;
|
|
603
|
+
height?: number;
|
|
604
|
+
xRange?: [number, number];
|
|
605
|
+
yRange?: [number, number];
|
|
606
|
+
xTitle?: string;
|
|
607
|
+
yTitle?: string;
|
|
608
|
+
title?: string;
|
|
609
|
+
showPoints?: boolean;
|
|
610
|
+
}
|
|
611
|
+
declare const Boxplot: React__default.FC<BoxplotProps>;
|
|
612
|
+
|
|
613
|
+
interface PeakData {
|
|
614
|
+
position: number;
|
|
615
|
+
base?: string;
|
|
616
|
+
peakA: number;
|
|
617
|
+
peakT: number;
|
|
618
|
+
peakG: number;
|
|
619
|
+
peakC: number;
|
|
620
|
+
}
|
|
621
|
+
interface ChromatogramProps {
|
|
622
|
+
data?: PeakData[];
|
|
623
|
+
width?: number;
|
|
624
|
+
height?: number;
|
|
625
|
+
positionInterval?: number;
|
|
626
|
+
colorA?: string;
|
|
627
|
+
colorT?: string;
|
|
628
|
+
colorG?: string;
|
|
629
|
+
colorC?: string;
|
|
630
|
+
}
|
|
631
|
+
declare const Chromatogram: React__default.FC<ChromatogramProps>;
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Type definitions for ChromatogramChart component
|
|
635
|
+
*/
|
|
636
|
+
/**
|
|
637
|
+
* Data series for chromatogram visualization
|
|
638
|
+
*/
|
|
639
|
+
interface ChromatogramSeries {
|
|
640
|
+
/** Retention time values (x-axis) */
|
|
641
|
+
x: number[];
|
|
642
|
+
/** Signal intensity values (y-axis) */
|
|
643
|
+
y: number[];
|
|
644
|
+
/** Series label for legend */
|
|
645
|
+
name: string;
|
|
646
|
+
/** Optional color override (auto-assigned from CHART_COLORS if not provided) */
|
|
647
|
+
color?: string;
|
|
648
|
+
/** Optional metadata for the trace (displayed in tooltip on hover) */
|
|
649
|
+
metadata?: Record<string, unknown>;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Individual boundary marker type for a single boundary point
|
|
653
|
+
*/
|
|
654
|
+
type BoundaryMarkerType = "none" | "triangle" | "diamond";
|
|
655
|
+
/**
|
|
656
|
+
* Internal computed fields for peak annotations.
|
|
657
|
+
* These are populated by the component during processing.
|
|
658
|
+
* @internal
|
|
659
|
+
*/
|
|
660
|
+
interface PeakComputedFields {
|
|
661
|
+
/** Peak area calculated using trapezoidal integration */
|
|
662
|
+
area?: number;
|
|
663
|
+
/** Peak index in the data array */
|
|
664
|
+
index?: number;
|
|
665
|
+
/** Start index of peak boundary in the data array */
|
|
666
|
+
startIndex?: number;
|
|
667
|
+
/** End index of peak boundary in the data array */
|
|
668
|
+
endIndex?: number;
|
|
669
|
+
/** Peak width at half maximum */
|
|
670
|
+
widthAtHalfMax?: number;
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* Peak annotation for labeling peaks on the chromatogram.
|
|
674
|
+
* Used for both user-provided annotations and auto-detected peaks.
|
|
675
|
+
*/
|
|
676
|
+
interface PeakAnnotation {
|
|
677
|
+
/** Retention time of the peak (x-axis position) */
|
|
678
|
+
x: number;
|
|
679
|
+
/** Signal intensity at peak (y-axis position) */
|
|
680
|
+
y: number;
|
|
681
|
+
/** Label text (e.g., compound name). If not provided, auto-generated from computed area. */
|
|
682
|
+
text?: string;
|
|
683
|
+
/** Vertical arrow offset in pixels (negative = above peak, default: -30) */
|
|
684
|
+
ay?: number;
|
|
685
|
+
/** Horizontal arrow offset in pixels (default: 0) */
|
|
686
|
+
ax?: number;
|
|
687
|
+
/** Start retention time for peak boundary */
|
|
688
|
+
startX?: number;
|
|
689
|
+
/** End retention time for peak boundary */
|
|
690
|
+
endX?: number;
|
|
691
|
+
/** Marker style for start boundary (default: "triangle") */
|
|
692
|
+
startMarker?: BoundaryMarkerType;
|
|
693
|
+
/** Marker style for end boundary (default: "diamond") */
|
|
694
|
+
endMarker?: BoundaryMarkerType;
|
|
695
|
+
/**
|
|
696
|
+
* Internal computed fields populated by the component.
|
|
697
|
+
* @internal Do not set these directly - they are computed from startX/endX or auto-detection.
|
|
698
|
+
*/
|
|
699
|
+
_computed?: PeakComputedFields;
|
|
700
|
+
}
|
|
701
|
+
/**
|
|
702
|
+
* Baseline correction method
|
|
703
|
+
*/
|
|
704
|
+
type BaselineCorrectionMethod = "none" | "linear" | "rolling";
|
|
705
|
+
/**
|
|
706
|
+
* Global boundary marker style setting
|
|
707
|
+
* - "none": No boundary markers displayed
|
|
708
|
+
* - "enabled": Show boundary markers using per-peak settings (startMarker/endMarker) or defaults
|
|
709
|
+
*/
|
|
710
|
+
type BoundaryMarkerStyle = "none" | "enabled";
|
|
711
|
+
/**
|
|
712
|
+
* Peak detection algorithm options
|
|
713
|
+
*/
|
|
714
|
+
interface PeakDetectionOptions {
|
|
715
|
+
/** Minimum peak height threshold (absolute or relative to max, default: 0.05) */
|
|
716
|
+
minHeight?: number;
|
|
717
|
+
/** Minimum distance between peaks in data points (default: 5) */
|
|
718
|
+
minDistance?: number;
|
|
719
|
+
/** Prominence threshold - how much a peak stands out from neighbors (default: 0.02) */
|
|
720
|
+
prominence?: number;
|
|
721
|
+
/** Use relative threshold as percentage of max signal (default: true) */
|
|
722
|
+
relativeThreshold?: boolean;
|
|
723
|
+
}
|
|
724
|
+
/**
|
|
725
|
+
* Props for ChromatogramChart component
|
|
726
|
+
*/
|
|
727
|
+
interface ChromatogramChartProps {
|
|
728
|
+
/** Array of data series to display */
|
|
729
|
+
series: ChromatogramSeries[];
|
|
730
|
+
/** Chart width in pixels */
|
|
731
|
+
width?: number;
|
|
732
|
+
/** Chart height in pixels */
|
|
733
|
+
height?: number;
|
|
734
|
+
/** Chart title */
|
|
735
|
+
title?: string;
|
|
736
|
+
/** X-axis label */
|
|
737
|
+
xAxisTitle?: string;
|
|
738
|
+
/** Y-axis label */
|
|
739
|
+
yAxisTitle?: string;
|
|
740
|
+
/** Peak annotations to display */
|
|
741
|
+
annotations?: PeakAnnotation[];
|
|
742
|
+
/** Fixed x-axis range [min, max] */
|
|
743
|
+
xRange?: [number, number];
|
|
744
|
+
/** Fixed y-axis range [min, max] */
|
|
745
|
+
yRange?: [number, number];
|
|
746
|
+
/** Show legend (default: true) */
|
|
747
|
+
showLegend?: boolean;
|
|
748
|
+
/** Show vertical grid lines (default: true) */
|
|
749
|
+
showGridX?: boolean;
|
|
750
|
+
/** Show horizontal grid lines (default: true) */
|
|
751
|
+
showGridY?: boolean;
|
|
752
|
+
/** Show data point markers (default: false) */
|
|
753
|
+
showMarkers?: boolean;
|
|
754
|
+
/** Marker size when showMarkers is true (default: 4) */
|
|
755
|
+
markerSize?: number;
|
|
756
|
+
/** Show crosshairs on hover (default: false) */
|
|
757
|
+
showCrosshairs?: boolean;
|
|
758
|
+
/** Baseline correction method (default: "none") */
|
|
759
|
+
baselineCorrection?: BaselineCorrectionMethod;
|
|
760
|
+
/** Rolling baseline window size (default: 50) */
|
|
761
|
+
baselineWindowSize?: number;
|
|
762
|
+
/** Peak detection algorithm options - if provided, enables automatic peak detection */
|
|
763
|
+
peakDetectionOptions?: PeakDetectionOptions;
|
|
764
|
+
/** Show peak areas as annotations (default: false) */
|
|
765
|
+
showPeakAreas?: boolean;
|
|
766
|
+
/**
|
|
767
|
+
* Show peak boundary markers (default: "none").
|
|
768
|
+
* - "none": No boundary markers displayed
|
|
769
|
+
* - "enabled": Show boundary markers using per-peak startMarker/endMarker settings
|
|
770
|
+
*
|
|
771
|
+
* Per-peak marker defaults: startMarker="triangle", endMarker="diamond"
|
|
772
|
+
*/
|
|
773
|
+
boundaryMarkers?: BoundaryMarkerStyle;
|
|
774
|
+
/**
|
|
775
|
+
* Retention time threshold for grouping overlapping annotations (default: 0.4 minutes).
|
|
776
|
+
* Peaks closer than this threshold will have their annotations staggered to avoid overlap.
|
|
777
|
+
*/
|
|
778
|
+
annotationOverlapThreshold?: number;
|
|
779
|
+
/** Show export button in modebar (default: true) */
|
|
780
|
+
showExportButton?: boolean;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
declare const ChromatogramChart: React__default.FC<ChromatogramChartProps>;
|
|
784
|
+
|
|
785
|
+
type MarkerSymbol$1 = "circle" | "square" | "diamond" | "triangle-up" | "triangle-down" | "star";
|
|
786
|
+
interface DotPlotDataSeries {
|
|
787
|
+
x: number[];
|
|
788
|
+
y: number[];
|
|
789
|
+
name: string;
|
|
790
|
+
color?: string;
|
|
791
|
+
symbol?: MarkerSymbol$1;
|
|
792
|
+
size?: number;
|
|
793
|
+
}
|
|
794
|
+
type DotPlotVariant = "default" | "stacked";
|
|
795
|
+
type DotPlotProps = {
|
|
796
|
+
dataSeries: DotPlotDataSeries | DotPlotDataSeries[];
|
|
797
|
+
width?: number;
|
|
798
|
+
height?: number;
|
|
799
|
+
title?: string;
|
|
800
|
+
xTitle?: string;
|
|
801
|
+
yTitle?: string;
|
|
802
|
+
variant?: DotPlotVariant;
|
|
803
|
+
markerSize?: number;
|
|
804
|
+
};
|
|
805
|
+
declare const DotPlot: React__default.FC<DotPlotProps>;
|
|
806
|
+
|
|
807
|
+
/**
|
|
808
|
+
* Props for the Heatmap component
|
|
809
|
+
* @deprecated Use PlateMap component instead. Heatmap is now a wrapper around PlateMap for backward compatibility.
|
|
810
|
+
*/
|
|
811
|
+
interface HeatmapProps {
|
|
812
|
+
/** 2D array of numeric values */
|
|
813
|
+
data?: number[][];
|
|
814
|
+
/** Custom x-axis labels (column labels) */
|
|
815
|
+
xLabels?: string[] | number[];
|
|
816
|
+
/** Custom y-axis labels (row labels) */
|
|
817
|
+
yLabels?: string[] | number[];
|
|
818
|
+
/** Chart title */
|
|
819
|
+
title?: string;
|
|
820
|
+
/** X-axis title */
|
|
821
|
+
xTitle?: string;
|
|
822
|
+
/** Y-axis title */
|
|
823
|
+
yTitle?: string;
|
|
824
|
+
/** Color scale - string name or array of [position, color] pairs */
|
|
825
|
+
colorscale?: string | Array<[number, string]>;
|
|
826
|
+
/** Chart width in pixels */
|
|
827
|
+
width?: number;
|
|
828
|
+
/** Chart height in pixels */
|
|
829
|
+
height?: number;
|
|
830
|
+
/** Show color scale legend */
|
|
831
|
+
showScale?: boolean;
|
|
832
|
+
/** Number of decimal places for values */
|
|
833
|
+
precision?: number;
|
|
834
|
+
/** Minimum value for color scale */
|
|
835
|
+
zmin?: number;
|
|
836
|
+
/** Maximum value for color scale */
|
|
837
|
+
zmax?: number;
|
|
838
|
+
/** Value unit suffix */
|
|
839
|
+
valueUnit?: string;
|
|
840
|
+
}
|
|
841
|
+
declare const Heatmap: React__default.FC<HeatmapProps>;
|
|
842
|
+
|
|
843
|
+
interface HistogramDataSeries {
|
|
844
|
+
x: number[];
|
|
845
|
+
name: string;
|
|
846
|
+
color?: string;
|
|
847
|
+
autobinx?: boolean;
|
|
848
|
+
xbins?: {
|
|
849
|
+
start: number;
|
|
850
|
+
end: number;
|
|
851
|
+
size: number;
|
|
852
|
+
};
|
|
853
|
+
opacity?: number;
|
|
854
|
+
showDistributionLine?: boolean;
|
|
855
|
+
lineWidth?: number;
|
|
856
|
+
}
|
|
857
|
+
type HistogramProps = {
|
|
858
|
+
dataSeries: HistogramDataSeries | HistogramDataSeries[];
|
|
859
|
+
width?: number;
|
|
860
|
+
height?: number;
|
|
861
|
+
title?: string;
|
|
862
|
+
xTitle?: string;
|
|
863
|
+
yTitle?: string;
|
|
864
|
+
bargap?: number;
|
|
865
|
+
showDistributionLine?: boolean;
|
|
866
|
+
};
|
|
867
|
+
declare const Histogram: React__default.FC<HistogramProps>;
|
|
868
|
+
|
|
869
|
+
type MarkerSymbol = "circle" | "circle-open" | "circle-dot" | "circle-open-dot" | "square" | "square-open" | "square-dot" | "square-open-dot" | "diamond" | "diamond-open" | "diamond-dot" | "diamond-open-dot" | "cross" | "cross-open" | "cross-dot" | "cross-open-dot" | "x" | "x-open" | "x-dot" | "x-open-dot" | "triangle-up" | "triangle-up-open" | "triangle-up-dot" | "triangle-up-open-dot" | "triangle-down" | "triangle-down-open" | "triangle-down-dot" | "triangle-down-open-dot" | "triangle-left" | "triangle-left-open" | "triangle-left-dot" | "triangle-left-open-dot" | "triangle-right" | "triangle-right-open" | "triangle-right-dot" | "triangle-right-open-dot" | "triangle-ne" | "triangle-ne-open" | "triangle-ne-dot" | "triangle-ne-open-dot" | "triangle-se" | "triangle-se-open" | "triangle-se-dot" | "triangle-se-open-dot" | "triangle-sw" | "triangle-sw-open" | "triangle-sw-dot" | "triangle-sw-open-dot" | "triangle-nw" | "triangle-nw-open" | "triangle-nw-dot" | "triangle-nw-open-dot" | "pentagon" | "pentagon-open" | "pentagon-dot" | "pentagon-open-dot" | "hexagon" | "hexagon-open" | "hexagon-dot" | "hexagon-open-dot" | "hexagon2" | "hexagon2-open" | "hexagon2-dot" | "hexagon2-open-dot" | "octagon" | "octagon-open" | "octagon-dot" | "octagon-open-dot" | "star" | "star-open" | "star-dot" | "star-open-dot" | "hexagram" | "hexagram-open" | "hexagram-dot" | "hexagram-open-dot" | "star-triangle-up" | "star-triangle-up-open" | "star-triangle-up-dot" | "star-triangle-up-open-dot" | "star-triangle-down" | "star-triangle-down-open" | "star-triangle-down-dot" | "star-triangle-down-open-dot" | "star-square" | "star-square-open" | "star-square-dot" | "star-square-open-dot" | "star-diamond" | "star-diamond-open" | "star-diamond-dot" | "star-diamond-open-dot" | "diamond-tall" | "diamond-tall-open" | "diamond-tall-dot" | "diamond-tall-open-dot" | "diamond-wide" | "diamond-wide-open" | "diamond-wide-dot" | "diamond-wide-open-dot" | "hourglass" | "hourglass-open" | "bowtie" | "bowtie-open" | "circle-cross" | "circle-cross-open" | "circle-x" | "circle-x-open" | "square-cross" | "square-cross-open" | "square-x" | "square-x-open" | "diamond-cross" | "diamond-cross-open" | "diamond-x" | "diamond-x-open" | "cross-thin" | "cross-thin-open" | "x-thin" | "x-thin-open" | "asterisk" | "asterisk-open" | "hash" | "hash-open" | "hash-dot" | "hash-open-dot" | "y-up" | "y-up-open" | "y-down" | "y-down-open" | "y-left" | "y-left-open" | "y-right" | "y-right-open" | "line-ew" | "line-ew-open" | "line-ns" | "line-ns-open" | "line-ne" | "line-ne-open" | "line-nw" | "line-nw-open" | "arrow" | "arrow-open" | "arrow-wide" | "arrow-wide-open";
|
|
870
|
+
interface LineDataSeries {
|
|
871
|
+
x: number[];
|
|
872
|
+
y: number[];
|
|
873
|
+
name: string;
|
|
874
|
+
color: string;
|
|
875
|
+
symbol?: MarkerSymbol;
|
|
876
|
+
error_y?: {
|
|
877
|
+
type: "data";
|
|
878
|
+
array: number[];
|
|
879
|
+
visible: boolean;
|
|
880
|
+
};
|
|
881
|
+
}
|
|
882
|
+
type LineGraphVariant = "lines" | "lines+markers" | "lines+markers+error_bars";
|
|
883
|
+
type LineGraphProps = {
|
|
884
|
+
dataSeries: LineDataSeries[];
|
|
885
|
+
width?: number;
|
|
886
|
+
height?: number;
|
|
887
|
+
xRange?: [number, number];
|
|
888
|
+
yRange?: [number, number];
|
|
889
|
+
variant?: LineGraphVariant;
|
|
890
|
+
xTitle?: string;
|
|
891
|
+
yTitle?: string;
|
|
892
|
+
title?: string;
|
|
893
|
+
};
|
|
894
|
+
declare const LineGraph: React__default.FC<LineGraphProps>;
|
|
895
|
+
|
|
896
|
+
interface MainProps {
|
|
897
|
+
userProfile: {
|
|
898
|
+
name: string;
|
|
899
|
+
avatar?: string;
|
|
900
|
+
};
|
|
901
|
+
hostname: string;
|
|
902
|
+
organization: {
|
|
903
|
+
name: string;
|
|
904
|
+
subtext?: string;
|
|
905
|
+
logo?: React__default.ReactNode;
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
declare const Main: React__default.FC<MainProps>;
|
|
909
|
+
|
|
910
|
+
interface PieDataSeries {
|
|
911
|
+
labels: string[];
|
|
912
|
+
values: number[];
|
|
913
|
+
name: string;
|
|
914
|
+
colors?: string[];
|
|
915
|
+
}
|
|
916
|
+
type PieTextInfo = "none" | "label" | "percent" | "value" | "label+percent" | "label+value" | "value+percent" | "label+value+percent";
|
|
917
|
+
type PieChartProps = {
|
|
918
|
+
dataSeries: PieDataSeries;
|
|
919
|
+
width?: number;
|
|
920
|
+
height?: number;
|
|
921
|
+
title?: string;
|
|
922
|
+
textInfo?: PieTextInfo;
|
|
923
|
+
hole?: number;
|
|
924
|
+
rotation?: number;
|
|
925
|
+
};
|
|
926
|
+
declare const PieChart: React__default.FC<PieChartProps>;
|
|
927
|
+
|
|
928
|
+
/**
|
|
929
|
+
* Plate format string constants for standard microplate configurations.
|
|
930
|
+
*/
|
|
931
|
+
declare const PLATE_FORMAT_96: "96";
|
|
932
|
+
declare const PLATE_FORMAT_384: "384";
|
|
933
|
+
declare const PLATE_FORMAT_1536: "1536";
|
|
934
|
+
declare const PLATE_FORMAT_CUSTOM: "custom";
|
|
935
|
+
/**
|
|
936
|
+
* Plate format presets for standard microplate configurations.
|
|
937
|
+
* - `"96"`: 8 rows × 12 columns (wells A1-H12)
|
|
938
|
+
* - `"384"`: 16 rows × 24 columns (wells A1-P24)
|
|
939
|
+
* - `"1536"`: 32 rows × 48 columns (wells A1-AF48)
|
|
940
|
+
* - `"custom"`: User-defined dimensions via `rows` and `columns` props
|
|
941
|
+
*/
|
|
942
|
+
type PlateFormat = typeof PLATE_FORMAT_96 | typeof PLATE_FORMAT_384 | typeof PLATE_FORMAT_1536 | typeof PLATE_FORMAT_CUSTOM;
|
|
943
|
+
/**
|
|
944
|
+
* Visualization mode for the plate map.
|
|
945
|
+
* - `"heatmap"`: Displays quantitative values as a continuous color gradient.
|
|
946
|
+
* Use for OD readings, fluorescence intensity, or other numeric measurements.
|
|
947
|
+
* - `"categorical"`: Displays well types with discrete colors.
|
|
948
|
+
* Use for showing sample types, control positions, or experimental conditions.
|
|
949
|
+
*/
|
|
950
|
+
type VisualizationMode = "heatmap" | "categorical";
|
|
951
|
+
/**
|
|
952
|
+
* Color scale definition for the heatmap visualization mode.
|
|
953
|
+
*
|
|
954
|
+
* Can be:
|
|
955
|
+
* - A named Plotly colorscale (e.g., "Viridis", "Blues", "Hot")
|
|
956
|
+
* - An array of [position, color] tuples where position is 0-1
|
|
957
|
+
*
|
|
958
|
+
* @example
|
|
959
|
+
* // Named colorscale
|
|
960
|
+
* colorScale="Viridis"
|
|
961
|
+
*
|
|
962
|
+
* @example
|
|
963
|
+
* // Custom gradient
|
|
964
|
+
* colorScale={[
|
|
965
|
+
* [0, "#313695"], // Dark blue at min
|
|
966
|
+
* [0.5, "#ffffbf"], // Yellow at midpoint
|
|
967
|
+
* [1, "#a50026"], // Dark red at max
|
|
968
|
+
* ]}
|
|
969
|
+
*/
|
|
970
|
+
type ColorScale = string | Array<[number, string]>;
|
|
971
|
+
/**
|
|
972
|
+
* Position for the legend display.
|
|
973
|
+
* - `"right"`: Legend appears to the right of the plate (default)
|
|
974
|
+
* - `"bottom"`: Legend appears below the plate
|
|
975
|
+
* - `"left"`: Legend appears to the left of the plate
|
|
976
|
+
* - `"top"`: Legend appears above the plate
|
|
977
|
+
*/
|
|
978
|
+
type LegendPosition = "right" | "bottom" | "left" | "top";
|
|
979
|
+
/**
|
|
980
|
+
* Well data for individual wells.
|
|
981
|
+
*
|
|
982
|
+
* @example
|
|
983
|
+
* // Well with a single numeric value
|
|
984
|
+
* { wellId: "A1", values: { "Fluorescence": 1500 } }
|
|
985
|
+
*
|
|
986
|
+
* @example
|
|
987
|
+
* // Well with multiple values (creates multiple layers)
|
|
988
|
+
* { wellId: "A1", values: { "Raw": 1500, "Normalized": 0.85, "Status": "positive" } }
|
|
989
|
+
*
|
|
990
|
+
* @example
|
|
991
|
+
* // Well with tooltip-only data
|
|
992
|
+
* { wellId: "A1", values: { "Value": 500 }, tooltipData: { compound: "Drug A", concentration: "10µM" } }
|
|
993
|
+
*/
|
|
994
|
+
interface WellData {
|
|
995
|
+
/**
|
|
996
|
+
* Well identifier in standard microplate notation.
|
|
997
|
+
* - Single letter + number for 96/384-well: "A1", "H12", "P24"
|
|
998
|
+
* - Double letter + number for 1536-well: "A1", "AA1", "AF48"
|
|
999
|
+
* Case-insensitive ("a1" and "A1" are equivalent).
|
|
1000
|
+
*/
|
|
1001
|
+
wellId: string;
|
|
1002
|
+
/**
|
|
1003
|
+
* Named values for the well. Each key can become a visualization layer.
|
|
1004
|
+
*
|
|
1005
|
+
* - Numeric values: Displayed using heatmap visualization
|
|
1006
|
+
* - String values: Displayed using categorical visualization
|
|
1007
|
+
* - null: Empty/no data for that property
|
|
1008
|
+
*
|
|
1009
|
+
* All values are shown in the tooltip regardless of which layer is active.
|
|
1010
|
+
*
|
|
1011
|
+
* @example
|
|
1012
|
+
* // Well with multiple measurement values (numeric)
|
|
1013
|
+
* { wellId: "A1", values: { "Raw": 1500, "Normalized": 0.85, "Z-Score": 1.2 } }
|
|
1014
|
+
*
|
|
1015
|
+
* @example
|
|
1016
|
+
* // Well with categorical values (string)
|
|
1017
|
+
* { wellId: "A1", values: { "Status": "positive", "QC": "pass" } }
|
|
1018
|
+
*
|
|
1019
|
+
* @example
|
|
1020
|
+
* // Mixed numeric and categorical
|
|
1021
|
+
* { wellId: "A1", values: { "Fluorescence": 1500, "Status": "positive" } }
|
|
1022
|
+
*/
|
|
1023
|
+
values?: Record<string, string | number | null>;
|
|
1024
|
+
/**
|
|
1025
|
+
* Optional data for tooltip display only (not visualized as layers).
|
|
1026
|
+
* Keys become labels, values are displayed.
|
|
1027
|
+
*
|
|
1028
|
+
* @example
|
|
1029
|
+
* { tooltipData: { sampleId: "S001", compound: "Drug A", concentration: "10µM" } }
|
|
1030
|
+
*/
|
|
1031
|
+
tooltipData?: Record<string, unknown>;
|
|
1032
|
+
}
|
|
1033
|
+
/**
|
|
1034
|
+
* Configuration for auto-generated layers when using WellData with `values`.
|
|
1035
|
+
*
|
|
1036
|
+
* When wells have multiple values (via the `values` property), layers are
|
|
1037
|
+
* auto-generated from the unique keys. Use LayerConfig to customize the
|
|
1038
|
+
* display name, visualization mode, and color scale for each layer.
|
|
1039
|
+
*
|
|
1040
|
+
* @example
|
|
1041
|
+
* // Configure layers for wells with { values: { "Raw": 100, "Normalized": 0.5 } }
|
|
1042
|
+
* const layerConfigs: LayerConfig[] = [
|
|
1043
|
+
* { id: "Raw", name: "Raw Data", colorScale: "Blues" },
|
|
1044
|
+
* { id: "Normalized", name: "Normalized Values", valueMin: 0, valueMax: 1 },
|
|
1045
|
+
* ];
|
|
1046
|
+
*/
|
|
1047
|
+
interface LayerConfig {
|
|
1048
|
+
/** Layer ID (must match a key in WellData.values) */
|
|
1049
|
+
id: string;
|
|
1050
|
+
/** Display name for the layer (defaults to id if not provided) */
|
|
1051
|
+
name?: string;
|
|
1052
|
+
/** Visualization mode for this layer */
|
|
1053
|
+
visualizationMode?: VisualizationMode;
|
|
1054
|
+
/** Color scale for this layer (for heatmap mode) */
|
|
1055
|
+
colorScale?: ColorScale;
|
|
1056
|
+
/** Minimum value for color scaling */
|
|
1057
|
+
valueMin?: number;
|
|
1058
|
+
/** Maximum value for color scaling */
|
|
1059
|
+
valueMax?: number;
|
|
1060
|
+
/** Value unit suffix for tooltips and colorbar (e.g., "RFU", "%"). A space is automatically added before the unit. */
|
|
1061
|
+
valueUnit?: string;
|
|
1062
|
+
/**
|
|
1063
|
+
* Custom colors for categorical visualization mode.
|
|
1064
|
+
* Keys are category values (strings from `values`), values are hex colors.
|
|
1065
|
+
* Merged with DEFAULT_CATEGORY_COLORS.
|
|
1066
|
+
*/
|
|
1067
|
+
categoryColors?: Record<string, string>;
|
|
1068
|
+
}
|
|
1069
|
+
/**
|
|
1070
|
+
* Configuration for legend styling and positioning.
|
|
1071
|
+
*
|
|
1072
|
+
* @example
|
|
1073
|
+
* // Legend on the bottom with custom styling
|
|
1074
|
+
* legendConfig={{
|
|
1075
|
+
* position: "bottom",
|
|
1076
|
+
* fontSize: 14,
|
|
1077
|
+
* itemSpacing: 12,
|
|
1078
|
+
* swatchSize: 20,
|
|
1079
|
+
* }}
|
|
1080
|
+
*/
|
|
1081
|
+
interface LegendConfig {
|
|
1082
|
+
/**
|
|
1083
|
+
* Position of the legend relative to the plate.
|
|
1084
|
+
* @default "right"
|
|
1085
|
+
*/
|
|
1086
|
+
position?: LegendPosition;
|
|
1087
|
+
/**
|
|
1088
|
+
* Font size for legend labels in pixels.
|
|
1089
|
+
* @default 12
|
|
1090
|
+
*/
|
|
1091
|
+
fontSize?: number;
|
|
1092
|
+
/**
|
|
1093
|
+
* Spacing between legend items in pixels.
|
|
1094
|
+
* @default 4
|
|
1095
|
+
*/
|
|
1096
|
+
itemSpacing?: number;
|
|
1097
|
+
/**
|
|
1098
|
+
* Size of the color swatch in pixels.
|
|
1099
|
+
* @default 16
|
|
1100
|
+
*/
|
|
1101
|
+
swatchSize?: number;
|
|
1102
|
+
/**
|
|
1103
|
+
* Title to display above the legend.
|
|
1104
|
+
*/
|
|
1105
|
+
title?: string;
|
|
1106
|
+
}
|
|
1107
|
+
/**
|
|
1108
|
+
* A region to highlight on the plate (e.g., controls, sample areas, empty wells)
|
|
1109
|
+
*/
|
|
1110
|
+
interface PlateRegion {
|
|
1111
|
+
/** Unique identifier for the region */
|
|
1112
|
+
id: string;
|
|
1113
|
+
/** Display name for the region (shown in legend) */
|
|
1114
|
+
name: string;
|
|
1115
|
+
/**
|
|
1116
|
+
* Wells included in this region using range notation.
|
|
1117
|
+
* Format: "StartWell:EndWell" (e.g., "A1:B6" for a rectangular block from A1 to B6)
|
|
1118
|
+
*/
|
|
1119
|
+
wells: string;
|
|
1120
|
+
/** Border color for the region highlight */
|
|
1121
|
+
borderColor?: string;
|
|
1122
|
+
/** Border width in pixels (default: 2) */
|
|
1123
|
+
borderWidth?: number;
|
|
1124
|
+
/** Optional fill color with transparency (e.g., "rgba(255, 0, 0, 0.1)") */
|
|
1125
|
+
fillColor?: string;
|
|
1126
|
+
}
|
|
1127
|
+
/**
|
|
1128
|
+
* Props for PlateMap component
|
|
1129
|
+
*/
|
|
1130
|
+
interface PlateMapProps {
|
|
1131
|
+
/**
|
|
1132
|
+
* Well data array as WellData objects with wellId and values.
|
|
1133
|
+
*
|
|
1134
|
+
* If wells have multiple values (via `values` property), layers are
|
|
1135
|
+
* auto-generated for each unique key, enabling layer toggling.
|
|
1136
|
+
*/
|
|
1137
|
+
data?: WellData[];
|
|
1138
|
+
/**
|
|
1139
|
+
* Configuration for auto-generated layers when using WellData with `values`.
|
|
1140
|
+
* Use this to customize display names, colors, and ranges for each layer.
|
|
1141
|
+
* Only used when `data` contains wells with `values` property.
|
|
1142
|
+
*/
|
|
1143
|
+
layerConfigs?: LayerConfig[];
|
|
1144
|
+
/**
|
|
1145
|
+
* Initial layer ID to display when the component mounts.
|
|
1146
|
+
* If not provided, defaults to the first layer.
|
|
1147
|
+
*/
|
|
1148
|
+
initialLayerId?: string;
|
|
1149
|
+
/**
|
|
1150
|
+
* Optional callback notified when the active layer changes.
|
|
1151
|
+
* This is purely informational - the component manages layer state internally.
|
|
1152
|
+
* Use this for logging, analytics, or syncing with external state.
|
|
1153
|
+
*/
|
|
1154
|
+
onLayerChange?: (layerId: string) => void;
|
|
1155
|
+
/** Plate format preset (default: "96") */
|
|
1156
|
+
plateFormat?: PlateFormat;
|
|
1157
|
+
/** Number of rows for custom format (default: 8 for 96-well, 16 for 384-well) */
|
|
1158
|
+
rows?: number;
|
|
1159
|
+
/** Number of columns for custom format (default: 12 for 96-well, 24 for 384-well) */
|
|
1160
|
+
columns?: number;
|
|
1161
|
+
/**
|
|
1162
|
+
* Visualization mode (default: "heatmap")
|
|
1163
|
+
* - "heatmap": Display quantitative values with color gradient
|
|
1164
|
+
* - "categorical": Display well types with discrete colors
|
|
1165
|
+
*/
|
|
1166
|
+
visualizationMode?: VisualizationMode;
|
|
1167
|
+
/**
|
|
1168
|
+
* Custom colors for categorical visualization mode.
|
|
1169
|
+
* Keys are well types, values are hex colors.
|
|
1170
|
+
* Merged with DEFAULT_CATEGORY_COLORS.
|
|
1171
|
+
*/
|
|
1172
|
+
categoryColors?: Record<string, string>;
|
|
1173
|
+
/**
|
|
1174
|
+
* Regions to highlight on the plate (e.g., controls, sample areas, empty wells).
|
|
1175
|
+
* Each region can specify wells and styling for visual distinction.
|
|
1176
|
+
*/
|
|
1177
|
+
regions?: PlateRegion[];
|
|
1178
|
+
/** Chart title */
|
|
1179
|
+
title?: string;
|
|
1180
|
+
/** X-axis title (e.g., "Columns") */
|
|
1181
|
+
xTitle?: string;
|
|
1182
|
+
/** Y-axis title (e.g., "Rows") */
|
|
1183
|
+
yTitle?: string;
|
|
1184
|
+
/** Custom x-axis labels (overrides auto-generated column numbers) */
|
|
1185
|
+
xLabels?: string[] | number[];
|
|
1186
|
+
/** Custom y-axis labels (overrides auto-generated row letters) */
|
|
1187
|
+
yLabels?: string[] | number[];
|
|
1188
|
+
/** Color scale for the heatmap (only used in heatmap mode) */
|
|
1189
|
+
colorScale?: ColorScale;
|
|
1190
|
+
/** Minimum value for color scale (auto-calculated if not provided) */
|
|
1191
|
+
valueMin?: number;
|
|
1192
|
+
/** Maximum value for color scale (auto-calculated if not provided) */
|
|
1193
|
+
valueMax?: number;
|
|
1194
|
+
/** Color for empty/null wells (default: "#f0f0f0") */
|
|
1195
|
+
emptyWellColor?: string;
|
|
1196
|
+
/** Show color bar legend for heatmap mode (default: true) */
|
|
1197
|
+
showColorBar?: boolean;
|
|
1198
|
+
/** Show categorical legend for categorical mode (default: true) */
|
|
1199
|
+
showLegend?: boolean;
|
|
1200
|
+
/**
|
|
1201
|
+
* Configuration for legend positioning and styling.
|
|
1202
|
+
* Applies to both heatmap colorbar and categorical legend.
|
|
1203
|
+
*
|
|
1204
|
+
* @example
|
|
1205
|
+
* // Position legend at bottom with larger text
|
|
1206
|
+
* legendConfig={{ position: "bottom", fontSize: 14 }}
|
|
1207
|
+
*/
|
|
1208
|
+
legendConfig?: LegendConfig;
|
|
1209
|
+
/** Chart width in pixels (default: 800) */
|
|
1210
|
+
width?: number;
|
|
1211
|
+
/** Chart height in pixels (default: 500) */
|
|
1212
|
+
height?: number;
|
|
1213
|
+
/** Number of decimal places for values (default: 0) */
|
|
1214
|
+
precision?: number;
|
|
1215
|
+
/**
|
|
1216
|
+
* Marker shape for wells (default: "circle")
|
|
1217
|
+
* - "circle": Round markers, ideal for plate-based data
|
|
1218
|
+
* - "square": Square markers, ideal for generic heatmaps
|
|
1219
|
+
*/
|
|
1220
|
+
markerShape?: "circle" | "square";
|
|
1221
|
+
/**
|
|
1222
|
+
* Callback when a well/cell is clicked.
|
|
1223
|
+
* @param wellData - The full well data object including wellId, values, and tooltipData
|
|
1224
|
+
*/
|
|
1225
|
+
onWellClick?: (wellData: WellData) => void;
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
/**
|
|
1229
|
+
* PlateMap component for visualizing well plate data as a heatmap or categorical display.
|
|
1230
|
+
*
|
|
1231
|
+
* **Supported Plate Formats:**
|
|
1232
|
+
* - 96-well (8 rows × 12 columns, wells A1-H12)
|
|
1233
|
+
* - 384-well (16 rows × 24 columns, wells A1-P24)
|
|
1234
|
+
* - 1536-well (32 rows × 48 columns, wells A1-AF48)
|
|
1235
|
+
* - Custom dimensions with user-specified rows/columns
|
|
1236
|
+
*
|
|
1237
|
+
* **Visualization Modes:**
|
|
1238
|
+
* - `"heatmap"`: Continuous color gradient for quantitative values
|
|
1239
|
+
* - `"categorical"`: Discrete colors for well types (sample, control, empty)
|
|
1240
|
+
*
|
|
1241
|
+
* **Features:**
|
|
1242
|
+
* - Multiple data layers with independent visualization settings
|
|
1243
|
+
* - Control region highlighting with borders and fill colors
|
|
1244
|
+
* - Configurable color scales, tooltips, and click interactions
|
|
1245
|
+
* - Support for WellData arrays with multi-layer visualization
|
|
1246
|
+
*
|
|
1247
|
+
* **Data Format:**
|
|
1248
|
+
* - **WellData array**: `[{ wellId: "A1", values: { RFU: 100 }, tooltipData: {...} }, ...]`
|
|
1249
|
+
*
|
|
1250
|
+
*/
|
|
1251
|
+
declare const PlateMap: React__default.FC<PlateMapProps>;
|
|
1252
|
+
|
|
1253
|
+
interface ScatterDataPoint {
|
|
1254
|
+
x: number;
|
|
1255
|
+
y: number;
|
|
1256
|
+
additionalInfo?: Record<string, string | number>;
|
|
1257
|
+
}
|
|
1258
|
+
interface ScatterDataSeries {
|
|
1259
|
+
x: number[];
|
|
1260
|
+
y: number[];
|
|
1261
|
+
name: string;
|
|
1262
|
+
color: string;
|
|
1263
|
+
}
|
|
1264
|
+
interface ScatterGraphProps {
|
|
1265
|
+
dataSeries: ScatterDataSeries[];
|
|
1266
|
+
width?: number;
|
|
1267
|
+
height?: number;
|
|
1268
|
+
xRange?: [number, number];
|
|
1269
|
+
yRange?: [number, number];
|
|
1270
|
+
xTitle?: string;
|
|
1271
|
+
yTitle?: string;
|
|
1272
|
+
title?: string;
|
|
1273
|
+
}
|
|
1274
|
+
declare const ScatterGraph: React__default.FC<ScatterGraphProps>;
|
|
107
1275
|
|
|
108
1276
|
/**
|
|
109
1277
|
* Centralized color system for TetraScience UI
|
|
@@ -217,18 +1385,18 @@ declare const defaultTheme: Theme;
|
|
|
217
1385
|
|
|
218
1386
|
interface ThemeProviderProps {
|
|
219
1387
|
theme?: Theme;
|
|
220
|
-
children:
|
|
1388
|
+
children: React__default.ReactNode;
|
|
221
1389
|
}
|
|
222
1390
|
/**
|
|
223
1391
|
* ThemeProvider component that sets CSS custom properties for theming
|
|
224
1392
|
*
|
|
225
1393
|
* This provider merges the provided theme with the default theme and
|
|
226
|
-
* sets CSS variables on
|
|
227
|
-
* styled-components and SCSS styles.
|
|
1394
|
+
* sets CSS variables on a wrapper element, making them available to both
|
|
1395
|
+
* styled-components and SCSS styles within the provider's scope.
|
|
228
1396
|
*
|
|
229
1397
|
* @example
|
|
230
1398
|
* ```tsx
|
|
231
|
-
* import { ThemeProvider, Button } from 'tetrascience-react-ui';
|
|
1399
|
+
* import { ThemeProvider, Button } from '@tetrascience-npm/tetrascience-react-ui';
|
|
232
1400
|
*
|
|
233
1401
|
* const customTheme = {
|
|
234
1402
|
* colors: {
|
|
@@ -244,7 +1412,7 @@ interface ThemeProviderProps {
|
|
|
244
1412
|
* </ThemeProvider>
|
|
245
1413
|
* ```
|
|
246
1414
|
*/
|
|
247
|
-
declare const ThemeProvider:
|
|
1415
|
+
declare const ThemeProvider: React__default.FC<ThemeProviderProps>;
|
|
248
1416
|
|
|
249
|
-
export { CHART_COLORS, COLORS, ThemeProvider, defaultTheme };
|
|
250
|
-
export type { ColorToken, Theme, ThemeColors, ThemeProviderProps, ThemeRadius, ThemeSpacing };
|
|
1417
|
+
export { AppHeader, AppLayout, AreaGraph, AssistantModal, Badge, BarGraph, Boxplot, Button, ButtonControl, ButtonControlGroup, CHART_COLORS, COLORS, Card, CardSidebar, Checkbox, Chromatogram, ChromatogramChart, CodeEditor, CodeScriptEditorButton, DotPlot, Dropdown, ErrorAlert, FormField, Heatmap, Histogram, Icon, IconName, Input, Label, LaunchContent, LineGraph, Main, MarkdownDisplay, Menu, MenuItem, Modal, Navbar, PieChart, PlateMap, PopConfirm, ProtocolConfiguration, ProtocolYamlCard, PythonEditorModal, ScatterGraph, SelectField, Sidebar, SupportiveText, Tab, TabGroup, Table, TableCell, TableHeaderCell, Textarea, ThemeProvider, Toast, ToastManager, Toggle, Tooltip, defaultTheme };
|
|
1418
|
+
export type { AppHeaderProps, AppLayoutProps, AreaDataSeries, AreaGraphProps, AreaGraphVariant, AssistantModalProps, BadgeProps, BarDataSeries, BarGraphProps, BarGraphVariant, BaselineCorrectionMethod, BoundaryMarkerStyle, BoxDataSeries, BoxplotProps, ButtonControlGroupProps, ButtonControlProps, ButtonProps, CardProps, CardSidebarProps, CheckboxProps, ChromatogramChartProps, ChromatogramProps, ChromatogramSeries, CodeEditorProps, CodeScriptEditorButtonProps, ColorScale, ColorToken, DotPlotDataSeries, DotPlotProps, DotPlotVariant, DropdownOption, DropdownProps, ErrorAlertProps, FormFieldProps, HeatmapProps, HistogramDataSeries, HistogramProps, IconProps, IconsProps, InputProps, LabelProps, LaunchContentProps, LineDataSeries, LineGraphProps, LineGraphVariant, MainProps, MarkdownDisplayProps, MarkerSymbol, MenuItemProps, MenuProps, ModalProps, NavbarProps, PeakAnnotation, PeakData, PeakDetectionOptions, PieChartProps, PieDataSeries, PieTextInfo, PlateFormat, PlateMapProps, PopConfirmProps, ProtocolConfigurationProps, ProtocolYamlCardProps, PythonEditorModalProps, ScatterDataPoint, ScatterDataSeries, ScatterGraphProps, SelectFieldProps, SidebarProps, SupportiveTextProps, TabGroupProps, TabProps, TabSize, TableCellProps, TableColumn, TableHeaderCellProps, TableProps, TextareaProps, Theme, ThemeColors, ThemeProviderProps, ThemeRadius, ThemeSpacing, ToastContainerProps, ToastManagerProps, ToastProps, ToastType, ToggleProps, TooltipProps, WellData };
|