@goplasmatic/dataflow-ui 2.0.4
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 +133 -0
- package/dist/dataflow-ui.css +5719 -0
- package/dist/datalogic_wasm-4utZNR2J-B5BvlAcC.cjs +364 -0
- package/dist/datalogic_wasm-4utZNR2J-DW6r1ZIK.js +363 -0
- package/dist/index.cjs +22060 -0
- package/dist/index.d.ts +722 -0
- package/dist/index.js +22060 -0
- package/package.json +72 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,722 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
import { ErrorInfo as ErrorInfo_2 } from 'react';
|
|
3
|
+
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
4
|
+
import { LucideIcon } from 'lucide-react';
|
|
5
|
+
import { ReactNode } from 'react';
|
|
6
|
+
import { ReactPortal } from 'react';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Audit trail entry for tracking changes (matches Rust AuditTrail)
|
|
10
|
+
*/
|
|
11
|
+
export declare interface AuditTrail {
|
|
12
|
+
/** Workflow ID where change occurred */
|
|
13
|
+
workflow_id: string;
|
|
14
|
+
/** Task ID where change occurred */
|
|
15
|
+
task_id: string;
|
|
16
|
+
/** Timestamp of the change */
|
|
17
|
+
timestamp: string;
|
|
18
|
+
/** Changes made by the task */
|
|
19
|
+
changes: Change[];
|
|
20
|
+
/** Status code (e.g., 200 for success) */
|
|
21
|
+
status: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Built-in function types
|
|
26
|
+
*/
|
|
27
|
+
export declare type BuiltinFunctionType = 'map' | 'validation';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* A single change in the audit trail
|
|
31
|
+
*/
|
|
32
|
+
export declare interface Change {
|
|
33
|
+
/** Path to the changed field (e.g., "data.user.name") */
|
|
34
|
+
path: string;
|
|
35
|
+
/** Previous value */
|
|
36
|
+
old_value: unknown;
|
|
37
|
+
/** New value */
|
|
38
|
+
new_value: unknown;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Deep clone a message
|
|
43
|
+
*/
|
|
44
|
+
export declare function cloneMessage(message: Message): Message;
|
|
45
|
+
|
|
46
|
+
export declare function ConditionBadge({ condition, className, onClick }: ConditionBadgeProps): JSX_2.Element;
|
|
47
|
+
|
|
48
|
+
declare interface ConditionBadgeProps {
|
|
49
|
+
condition: JsonLogicValue | undefined;
|
|
50
|
+
className?: string;
|
|
51
|
+
onClick?: () => void;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Result of evaluating a condition
|
|
56
|
+
*/
|
|
57
|
+
export declare interface ConditionResult {
|
|
58
|
+
/** The condition that was evaluated */
|
|
59
|
+
condition: JsonLogicValue;
|
|
60
|
+
/** The result of evaluation */
|
|
61
|
+
result: boolean;
|
|
62
|
+
/** Data context used for evaluation */
|
|
63
|
+
context: Record<string, unknown>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Create an empty message
|
|
68
|
+
*/
|
|
69
|
+
export declare function createEmptyMessage(): Message;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Actions for the debugger reducer
|
|
73
|
+
*/
|
|
74
|
+
export declare type DebuggerAction = {
|
|
75
|
+
type: 'ACTIVATE';
|
|
76
|
+
} | {
|
|
77
|
+
type: 'DEACTIVATE';
|
|
78
|
+
} | {
|
|
79
|
+
type: 'SET_INPUT_PAYLOAD';
|
|
80
|
+
payload: Record<string, unknown>;
|
|
81
|
+
} | {
|
|
82
|
+
type: 'START_EXECUTION';
|
|
83
|
+
} | {
|
|
84
|
+
type: 'EXECUTE_TRACE';
|
|
85
|
+
trace: ExecutionTrace;
|
|
86
|
+
} | {
|
|
87
|
+
type: 'EXECUTION_ERROR';
|
|
88
|
+
error: string;
|
|
89
|
+
} | {
|
|
90
|
+
type: 'PLAY';
|
|
91
|
+
} | {
|
|
92
|
+
type: 'PAUSE';
|
|
93
|
+
} | {
|
|
94
|
+
type: 'STOP';
|
|
95
|
+
} | {
|
|
96
|
+
type: 'RESET';
|
|
97
|
+
} | {
|
|
98
|
+
type: 'STEP_FORWARD';
|
|
99
|
+
} | {
|
|
100
|
+
type: 'STEP_BACKWARD';
|
|
101
|
+
} | {
|
|
102
|
+
type: 'GO_TO_STEP';
|
|
103
|
+
index: number;
|
|
104
|
+
} | {
|
|
105
|
+
type: 'SET_SPEED';
|
|
106
|
+
speed: number;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Context value interface
|
|
111
|
+
*/
|
|
112
|
+
declare interface DebuggerContextValue {
|
|
113
|
+
state: DebuggerState;
|
|
114
|
+
dispatch: React.Dispatch<DebuggerAction>;
|
|
115
|
+
activate: () => void;
|
|
116
|
+
deactivate: () => void;
|
|
117
|
+
setInputPayload: (payload: Record<string, unknown>) => void;
|
|
118
|
+
executeTrace: (trace: ExecutionTrace) => void;
|
|
119
|
+
startExecution: () => void;
|
|
120
|
+
setExecutionError: (error: string) => void;
|
|
121
|
+
play: () => void;
|
|
122
|
+
pause: () => void;
|
|
123
|
+
stop: () => void;
|
|
124
|
+
reset: () => void;
|
|
125
|
+
stepForward: () => void;
|
|
126
|
+
stepBackward: () => void;
|
|
127
|
+
goToStep: (index: number) => void;
|
|
128
|
+
setSpeed: (speed: number) => void;
|
|
129
|
+
currentStep: ExecutionStep | null;
|
|
130
|
+
currentMessage: Message | null;
|
|
131
|
+
currentChanges: Change[];
|
|
132
|
+
isAtStart: boolean;
|
|
133
|
+
isAtEnd: boolean;
|
|
134
|
+
hasTrace: boolean;
|
|
135
|
+
progress: number;
|
|
136
|
+
totalSteps: number;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Playback controls for the debugger
|
|
141
|
+
*/
|
|
142
|
+
export declare function DebuggerControls({ compact, className }: DebuggerControlsProps): JSX_2.Element;
|
|
143
|
+
|
|
144
|
+
declare interface DebuggerControlsProps {
|
|
145
|
+
/** Show compact version */
|
|
146
|
+
compact?: boolean;
|
|
147
|
+
/** Additional CSS class */
|
|
148
|
+
className?: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Provider component for debugger state
|
|
153
|
+
*/
|
|
154
|
+
export declare function DebuggerProvider({ children, initialPayload, autoActivate, }: DebuggerProviderProps): JSX_2.Element;
|
|
155
|
+
|
|
156
|
+
declare interface DebuggerProviderProps {
|
|
157
|
+
children: ReactNode;
|
|
158
|
+
/** Initial payload to use for debugging */
|
|
159
|
+
initialPayload?: Record<string, unknown>;
|
|
160
|
+
/** Auto-start in debug mode */
|
|
161
|
+
autoActivate?: boolean;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Complete debugger state
|
|
166
|
+
*/
|
|
167
|
+
export declare interface DebuggerState {
|
|
168
|
+
/** Whether debug mode is active */
|
|
169
|
+
isActive: boolean;
|
|
170
|
+
/** Current execution trace */
|
|
171
|
+
trace: ExecutionTrace | null;
|
|
172
|
+
/** Current step index being viewed */
|
|
173
|
+
currentStepIndex: number;
|
|
174
|
+
/** Playback state */
|
|
175
|
+
playbackState: PlaybackState;
|
|
176
|
+
/** Playback speed (ms between steps) */
|
|
177
|
+
playbackSpeed: number;
|
|
178
|
+
/** Input payload for debugging */
|
|
179
|
+
inputPayload: Record<string, unknown> | null;
|
|
180
|
+
/** Whether the debugger is currently executing */
|
|
181
|
+
isExecuting: boolean;
|
|
182
|
+
/** Error during execution */
|
|
183
|
+
executionError: string | null;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Tooltip/bubble showing debug step details
|
|
188
|
+
*/
|
|
189
|
+
export declare function DebugInfoBubble({ step, targetRef, visible, onClose, }: DebugInfoBubbleProps): ReactPortal | null;
|
|
190
|
+
|
|
191
|
+
declare interface DebugInfoBubbleProps {
|
|
192
|
+
/** The execution step to display */
|
|
193
|
+
step: ExecutionStep;
|
|
194
|
+
/** Target element to position near */
|
|
195
|
+
targetRef: React.RefObject<HTMLElement>;
|
|
196
|
+
/** Whether the bubble is visible */
|
|
197
|
+
visible: boolean;
|
|
198
|
+
/** Callback when bubble is closed */
|
|
199
|
+
onClose?: () => void;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Debug state for a node in the execution tree
|
|
204
|
+
*/
|
|
205
|
+
export declare type DebugNodeState = 'pending' | 'current' | 'executed' | 'skipped' | 'error';
|
|
206
|
+
|
|
207
|
+
export declare function DebugStateBadge({ state, conditionResult, size, }: DebugStateBadgeProps): JSX_2.Element;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Small badge showing debug state on tree nodes
|
|
211
|
+
*/
|
|
212
|
+
declare interface DebugStateBadgeProps {
|
|
213
|
+
state: DebugNodeState;
|
|
214
|
+
conditionResult?: boolean;
|
|
215
|
+
size?: 'sm' | 'md';
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Error boundary component to catch and display errors in child components
|
|
220
|
+
*/
|
|
221
|
+
export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
222
|
+
constructor(props: ErrorBoundaryProps);
|
|
223
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState;
|
|
224
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo_2): void;
|
|
225
|
+
render(): ReactNode;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
declare interface ErrorBoundaryProps {
|
|
229
|
+
children: ReactNode;
|
|
230
|
+
fallback?: ReactNode;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
declare interface ErrorBoundaryState {
|
|
234
|
+
hasError: boolean;
|
|
235
|
+
error: Error | null;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Error information captured during execution
|
|
240
|
+
*/
|
|
241
|
+
export declare interface ErrorInfo {
|
|
242
|
+
/** Error code or identifier */
|
|
243
|
+
code: string;
|
|
244
|
+
/** Human-readable error message */
|
|
245
|
+
message: string;
|
|
246
|
+
/** Task ID where error occurred */
|
|
247
|
+
task_id?: string;
|
|
248
|
+
/** Workflow ID where error occurred */
|
|
249
|
+
workflow_id?: string;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* A single step in the execution trace (matches Rust ExecutionStep)
|
|
254
|
+
*/
|
|
255
|
+
export declare interface ExecutionStep {
|
|
256
|
+
/** ID of the workflow this step belongs to */
|
|
257
|
+
workflow_id: string;
|
|
258
|
+
/** ID of the task (undefined for workflow-level skips) */
|
|
259
|
+
task_id?: string;
|
|
260
|
+
/** Result of the step execution */
|
|
261
|
+
result: StepResult;
|
|
262
|
+
/** Message snapshot after this step (only for executed steps) */
|
|
263
|
+
message?: Message;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Complete execution trace (matches Rust ExecutionTrace)
|
|
268
|
+
*/
|
|
269
|
+
export declare interface ExecutionTrace {
|
|
270
|
+
/** All execution steps in order */
|
|
271
|
+
steps: ExecutionStep[];
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Function configuration for a task
|
|
276
|
+
*/
|
|
277
|
+
export declare interface FunctionConfig {
|
|
278
|
+
/** Function name (e.g., "map", "validation", or custom) */
|
|
279
|
+
name: string;
|
|
280
|
+
/** Function-specific input configuration */
|
|
281
|
+
input?: Record<string, unknown>;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export declare function FunctionTypeBadge({ functionName, className }: FunctionTypeBadgeProps): JSX_2.Element;
|
|
285
|
+
|
|
286
|
+
declare interface FunctionTypeBadgeProps {
|
|
287
|
+
functionName: string;
|
|
288
|
+
className?: string;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Get the changes made at a specific step
|
|
293
|
+
* Returns the changes from the last audit_trail entry if step was executed
|
|
294
|
+
*/
|
|
295
|
+
export declare function getChangesAtStep(trace: ExecutionTrace, stepIndex: number): Change[];
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Get display info for a function type including the Lucide icon component
|
|
299
|
+
*/
|
|
300
|
+
export declare function getFunctionDisplayInfo(name: string): {
|
|
301
|
+
label: string;
|
|
302
|
+
colorClass: string;
|
|
303
|
+
Icon: LucideIcon;
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Get the message at a specific step in the trace
|
|
308
|
+
* Returns the message snapshot from the last executed step at or before the given index
|
|
309
|
+
*/
|
|
310
|
+
export declare function getMessageAtStep(trace: ExecutionTrace, stepIndex: number): Message | null;
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Get the state of a task based on the trace and current step
|
|
314
|
+
* Returns:
|
|
315
|
+
* - 'pending' for future steps (after current)
|
|
316
|
+
* - 'executed'/'skipped'/'error' for steps at or before current position
|
|
317
|
+
* Note: Tasks show as 'executed' when on their step (completed state)
|
|
318
|
+
*/
|
|
319
|
+
export declare function getTaskState(trace: ExecutionTrace, currentStepIndex: number, workflowId: string, taskId: string): DebugNodeState;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Get the state of a workflow based on the trace and current step
|
|
323
|
+
* Returns:
|
|
324
|
+
* - 'pending' if all workflow steps are after the current step
|
|
325
|
+
* - 'executed'/'skipped'/'error' for workflows with steps at or before current
|
|
326
|
+
* Note: Workflows don't show as 'current' - only individual tasks do
|
|
327
|
+
*/
|
|
328
|
+
export declare function getWorkflowState(trace: ExecutionTrace, currentStepIndex: number, workflowId: string): DebugNodeState;
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Check if a function is a built-in type
|
|
332
|
+
*/
|
|
333
|
+
export declare function isBuiltinFunction(name: string): name is BuiltinFunctionType;
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* JSONLogic value type - can be any valid JSON value or JSONLogic expression
|
|
337
|
+
*/
|
|
338
|
+
export declare type JsonLogicValue = string | number | boolean | null | JsonLogicValue[] | {
|
|
339
|
+
[key: string]: JsonLogicValue;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
export declare function JsonViewer({ data, initialExpanded, maxStringLength, className, }: JsonViewerProps): JSX_2.Element;
|
|
343
|
+
|
|
344
|
+
declare interface JsonViewerProps {
|
|
345
|
+
data: unknown;
|
|
346
|
+
initialExpanded?: boolean;
|
|
347
|
+
maxStringLength?: number;
|
|
348
|
+
className?: string;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Legacy execution step type (for backwards compatibility)
|
|
353
|
+
* @deprecated Use ExecutionStep instead
|
|
354
|
+
*/
|
|
355
|
+
export declare interface LegacyExecutionStep {
|
|
356
|
+
/** Unique ID for this step */
|
|
357
|
+
id: string;
|
|
358
|
+
/** Type of step */
|
|
359
|
+
type: 'workflow-condition' | 'workflow-start' | 'workflow-end' | 'task-condition' | 'task-start' | 'task-end';
|
|
360
|
+
/** Associated workflow */
|
|
361
|
+
workflow: Workflow;
|
|
362
|
+
/** Associated task (if applicable) */
|
|
363
|
+
task?: Task;
|
|
364
|
+
/** Result of condition evaluation (if applicable) */
|
|
365
|
+
conditionResult?: ConditionResult;
|
|
366
|
+
/** Message state before this step */
|
|
367
|
+
messageBefore: Message;
|
|
368
|
+
/** Message state after this step */
|
|
369
|
+
messageAfter: Message;
|
|
370
|
+
/** State of this node */
|
|
371
|
+
state: DebugNodeState;
|
|
372
|
+
/** Timestamp when this step occurred */
|
|
373
|
+
timestamp: number;
|
|
374
|
+
/** Duration of this step in ms (for task-end) */
|
|
375
|
+
duration?: number;
|
|
376
|
+
/** Error if this step failed */
|
|
377
|
+
error?: ErrorInfo;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Legacy trace type (for backwards compatibility)
|
|
382
|
+
* @deprecated Use ExecutionTrace instead
|
|
383
|
+
*/
|
|
384
|
+
export declare interface LegacyWorkflowExecutionTrace {
|
|
385
|
+
/** All execution steps */
|
|
386
|
+
steps: LegacyExecutionStep[];
|
|
387
|
+
/** Initial message before any processing */
|
|
388
|
+
initialMessage: Message;
|
|
389
|
+
/** Final message after all processing */
|
|
390
|
+
finalMessage: Message;
|
|
391
|
+
/** Total execution duration in ms */
|
|
392
|
+
totalDuration: number;
|
|
393
|
+
/** Whether execution completed successfully */
|
|
394
|
+
success: boolean;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Map function input configuration
|
|
399
|
+
*/
|
|
400
|
+
export declare interface MapFunctionInput {
|
|
401
|
+
mappings: MapMapping[];
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Map function mapping configuration
|
|
406
|
+
*/
|
|
407
|
+
export declare interface MapMapping {
|
|
408
|
+
/** Target path for the mapped value */
|
|
409
|
+
path: string;
|
|
410
|
+
/** JSONLogic expression to compute the value */
|
|
411
|
+
logic: JsonLogicValue;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Alias for MapMapping - used in tree and details views
|
|
416
|
+
*/
|
|
417
|
+
export declare type MappingItem = MapMapping;
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Message structure for workflow execution
|
|
421
|
+
* Mirrors the Rust Message struct from WASM output
|
|
422
|
+
*/
|
|
423
|
+
export declare interface Message {
|
|
424
|
+
/** Unique message ID */
|
|
425
|
+
id: string;
|
|
426
|
+
/** Original payload */
|
|
427
|
+
payload: Record<string, unknown>;
|
|
428
|
+
/** Context containing data, metadata, temp_data */
|
|
429
|
+
context: {
|
|
430
|
+
data: Record<string, unknown>;
|
|
431
|
+
metadata: Record<string, unknown>;
|
|
432
|
+
temp_data: Record<string, unknown>;
|
|
433
|
+
};
|
|
434
|
+
/** List of errors that occurred during processing */
|
|
435
|
+
errors: ErrorInfo[];
|
|
436
|
+
/** Audit trail of changes made during processing */
|
|
437
|
+
audit_trail: AuditTrail[];
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Panel for inputting test payload data
|
|
442
|
+
*
|
|
443
|
+
* Note: This is a simplified version that works with the new ExecutionTrace-based
|
|
444
|
+
* debugging system. The input is a JSON payload that gets processed through workflows.
|
|
445
|
+
*/
|
|
446
|
+
export declare function MessageInputPanel({ onExecute, isExecuting, className, }: MessageInputPanelProps): JSX_2.Element;
|
|
447
|
+
|
|
448
|
+
declare interface MessageInputPanelProps {
|
|
449
|
+
/** Callback to trigger debug execution */
|
|
450
|
+
onExecute: () => void;
|
|
451
|
+
/** Whether execution is in progress */
|
|
452
|
+
isExecuting?: boolean;
|
|
453
|
+
/** Additional CSS class */
|
|
454
|
+
className?: string;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Panel showing message state at current execution step
|
|
459
|
+
*/
|
|
460
|
+
export declare function MessageStatePanel({ className }: MessageStatePanelProps): JSX_2.Element;
|
|
461
|
+
|
|
462
|
+
declare interface MessageStatePanelProps {
|
|
463
|
+
/** Additional CSS class */
|
|
464
|
+
className?: string;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Playback state for the debugger
|
|
469
|
+
*/
|
|
470
|
+
export declare type PlaybackState = 'stopped' | 'playing' | 'paused';
|
|
471
|
+
|
|
472
|
+
export declare function RulesListView({ workflows, highlightedTaskIds, onTaskSelect, defaultExpandedIds, }: RulesListViewProps): JSX_2.Element;
|
|
473
|
+
|
|
474
|
+
declare interface RulesListViewProps {
|
|
475
|
+
workflows: Workflow[];
|
|
476
|
+
highlightedTaskIds?: Set<string>;
|
|
477
|
+
onTaskSelect?: (task: Task, workflow: Workflow) => void;
|
|
478
|
+
defaultExpandedIds?: string[];
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export declare function SearchInput({ value, onChange, onClear, placeholder, className, }: SearchInputProps): JSX_2.Element;
|
|
482
|
+
|
|
483
|
+
declare interface SearchInputProps {
|
|
484
|
+
value: string;
|
|
485
|
+
onChange: (value: string) => void;
|
|
486
|
+
onClear?: () => void;
|
|
487
|
+
placeholder?: string;
|
|
488
|
+
className?: string;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
export declare type SelectionType = TreeSelectionType;
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Result of a step (executed or skipped)
|
|
495
|
+
*/
|
|
496
|
+
export declare type StepResult = 'executed' | 'skipped';
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Task definition within a workflow
|
|
500
|
+
*/
|
|
501
|
+
export declare interface Task {
|
|
502
|
+
/** Unique identifier for the task */
|
|
503
|
+
id: string;
|
|
504
|
+
/** Human-readable name */
|
|
505
|
+
name: string;
|
|
506
|
+
/** Optional description */
|
|
507
|
+
description?: string;
|
|
508
|
+
/** JSONLogic condition (evaluated against metadata only) */
|
|
509
|
+
condition?: JsonLogicValue;
|
|
510
|
+
/** Function to execute */
|
|
511
|
+
function: FunctionConfig;
|
|
512
|
+
/** Whether to continue workflow if this task fails */
|
|
513
|
+
continue_on_error?: boolean;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export declare function TaskRow({ task, workflow, index, isHighlighted, onSelect, }: TaskRowProps): JSX_2.Element;
|
|
517
|
+
|
|
518
|
+
declare interface TaskRowProps {
|
|
519
|
+
task: Task;
|
|
520
|
+
workflow: Workflow;
|
|
521
|
+
index: number;
|
|
522
|
+
isHighlighted?: boolean;
|
|
523
|
+
onSelect?: (task: Task, workflow: Workflow) => void;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
export declare type Theme = 'light' | 'dark' | 'system';
|
|
527
|
+
|
|
528
|
+
declare interface ThemeContextValue {
|
|
529
|
+
theme: Theme;
|
|
530
|
+
resolvedTheme: 'light' | 'dark';
|
|
531
|
+
setTheme: (theme: Theme) => void;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
export declare function ThemeProvider({ children, defaultTheme }: ThemeProviderProps): JSX_2.Element;
|
|
535
|
+
|
|
536
|
+
declare interface ThemeProviderProps {
|
|
537
|
+
children: ReactNode;
|
|
538
|
+
defaultTheme?: Theme;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* Result of the debug state hook for a tree node
|
|
543
|
+
*/
|
|
544
|
+
export declare interface TreeNodeDebugState {
|
|
545
|
+
/** Current debug state of this node */
|
|
546
|
+
state: DebugNodeState | null;
|
|
547
|
+
/** Whether this node is the current step being viewed */
|
|
548
|
+
isCurrent: boolean;
|
|
549
|
+
/** Whether this node has been executed (or is being executed) */
|
|
550
|
+
isExecuted: boolean;
|
|
551
|
+
/** Whether this node was skipped due to condition */
|
|
552
|
+
isSkipped: boolean;
|
|
553
|
+
/** Whether this node had an error */
|
|
554
|
+
hasError: boolean;
|
|
555
|
+
/** Condition result if this is a condition node */
|
|
556
|
+
conditionResult?: boolean;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
export declare type TreeSelectionType = {
|
|
560
|
+
type: 'none';
|
|
561
|
+
} | {
|
|
562
|
+
type: 'workflow-condition';
|
|
563
|
+
workflow: Workflow;
|
|
564
|
+
condition: JsonLogicValue;
|
|
565
|
+
} | {
|
|
566
|
+
type: 'task';
|
|
567
|
+
task: Task;
|
|
568
|
+
workflow: Workflow;
|
|
569
|
+
} | {
|
|
570
|
+
type: 'task-condition';
|
|
571
|
+
task: Task;
|
|
572
|
+
workflow: Workflow;
|
|
573
|
+
condition: JsonLogicValue;
|
|
574
|
+
} | {
|
|
575
|
+
type: 'mapping';
|
|
576
|
+
task: Task;
|
|
577
|
+
workflow: Workflow;
|
|
578
|
+
mapping: MappingItem;
|
|
579
|
+
mappingIndex: number;
|
|
580
|
+
} | {
|
|
581
|
+
type: 'validation-rule';
|
|
582
|
+
task: Task;
|
|
583
|
+
workflow: Workflow;
|
|
584
|
+
rule: ValidationRule;
|
|
585
|
+
ruleIndex: number;
|
|
586
|
+
};
|
|
587
|
+
|
|
588
|
+
export declare function TreeView({ workflows, selection, onSelect, debugMode }: TreeViewProps): JSX_2.Element;
|
|
589
|
+
|
|
590
|
+
declare interface TreeViewProps {
|
|
591
|
+
workflows: Workflow[];
|
|
592
|
+
selection: TreeSelectionType;
|
|
593
|
+
onSelect: (selection: TreeSelectionType) => void;
|
|
594
|
+
/** Enable debug mode with state indicators */
|
|
595
|
+
debugMode?: boolean;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Hook to access debugger context
|
|
600
|
+
*/
|
|
601
|
+
export declare function useDebugger(): DebuggerContextValue;
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* Hook to check if debugger is available (doesn't throw if not in provider)
|
|
605
|
+
*/
|
|
606
|
+
export declare function useDebuggerOptional(): DebuggerContextValue | null;
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Hook to get debug state for a task condition node
|
|
610
|
+
* Note: In the simplified trace format, task conditions are implicit
|
|
611
|
+
* A task skip step indicates the condition was false
|
|
612
|
+
*/
|
|
613
|
+
export declare function useTaskConditionDebugState(task: Task, workflow: Workflow): TreeNodeDebugState;
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Hook to get debug state for a task node
|
|
617
|
+
*/
|
|
618
|
+
export declare function useTaskDebugState(task: Task, workflow: Workflow): TreeNodeDebugState;
|
|
619
|
+
|
|
620
|
+
export declare function useTheme(): ThemeContextValue;
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* Generic hook to get debug state for any node type
|
|
624
|
+
*/
|
|
625
|
+
export declare function useTreeNodeDebugState(options: {
|
|
626
|
+
type: 'workflow' | 'workflow-condition' | 'task' | 'task-condition' | 'mapping' | 'validation-rule';
|
|
627
|
+
workflow: Workflow;
|
|
628
|
+
task?: Task;
|
|
629
|
+
}): TreeNodeDebugState;
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Hook to get debug state for a workflow condition node
|
|
633
|
+
* Note: In the simplified trace format, workflow conditions are implicit
|
|
634
|
+
* A workflow skip step indicates the condition was false
|
|
635
|
+
*/
|
|
636
|
+
export declare function useWorkflowConditionDebugState(workflow: Workflow): TreeNodeDebugState;
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* Hook to get debug state for a workflow node
|
|
640
|
+
* Note: Workflows never show as 'current' - only tasks do
|
|
641
|
+
*/
|
|
642
|
+
export declare function useWorkflowDebugState(workflow: Workflow): TreeNodeDebugState;
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Validation function input configuration
|
|
646
|
+
*/
|
|
647
|
+
export declare interface ValidationFunctionInput {
|
|
648
|
+
rules: ValidationRule[];
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
/**
|
|
652
|
+
* Validation rule configuration
|
|
653
|
+
*/
|
|
654
|
+
export declare interface ValidationRule {
|
|
655
|
+
/** JSONLogic expression that should return true for valid data */
|
|
656
|
+
logic: JsonLogicValue;
|
|
657
|
+
/** Error message if validation fails */
|
|
658
|
+
message: string;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Workflow definition
|
|
663
|
+
*/
|
|
664
|
+
export declare interface Workflow {
|
|
665
|
+
/** Unique identifier for the workflow */
|
|
666
|
+
id: string;
|
|
667
|
+
/** Human-readable name */
|
|
668
|
+
name: string;
|
|
669
|
+
/** Execution priority (lower = higher priority, 0 is highest) */
|
|
670
|
+
priority?: number;
|
|
671
|
+
/** Optional description */
|
|
672
|
+
description?: string;
|
|
673
|
+
/** JSONLogic condition (evaluated against metadata only) */
|
|
674
|
+
condition?: JsonLogicValue;
|
|
675
|
+
/** Tasks in this workflow */
|
|
676
|
+
tasks: Task[];
|
|
677
|
+
/** Whether to continue processing other workflows if this one fails */
|
|
678
|
+
continue_on_error?: boolean;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
export declare function WorkflowCard({ workflow, isExpanded, onToggle, onTaskSelect, highlightedTaskIds, }: WorkflowCardProps): JSX_2.Element;
|
|
682
|
+
|
|
683
|
+
declare interface WorkflowCardProps {
|
|
684
|
+
workflow: Workflow;
|
|
685
|
+
isExpanded: boolean;
|
|
686
|
+
onToggle: () => void;
|
|
687
|
+
onTaskSelect?: (task: Workflow['tasks'][0], workflow: Workflow) => void;
|
|
688
|
+
highlightedTaskIds?: Set<string>;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
export declare function WorkflowFlowView({ workflows, onTaskSelect, onWorkflowSelect, onWorkflowConditionClick, onTaskConditionClick, selection, highlightedTaskIds, }: WorkflowFlowViewProps): JSX_2.Element;
|
|
692
|
+
|
|
693
|
+
declare interface WorkflowFlowViewProps {
|
|
694
|
+
workflows: Workflow[];
|
|
695
|
+
onTaskSelect?: (task: Task, workflow: Workflow) => void;
|
|
696
|
+
onWorkflowSelect?: (workflow: Workflow) => void;
|
|
697
|
+
onWorkflowConditionClick?: (workflow: Workflow) => void;
|
|
698
|
+
onTaskConditionClick?: (task: Task, workflow: Workflow) => void;
|
|
699
|
+
selection?: SelectionType;
|
|
700
|
+
highlightedTaskIds?: Set<string>;
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
export declare function WorkflowVisualizer({ workflows, onWorkflowSelect, onTaskSelect, theme, className, executionResult, debugMode, }: WorkflowVisualizerProps): JSX_2.Element;
|
|
704
|
+
|
|
705
|
+
export declare interface WorkflowVisualizerProps {
|
|
706
|
+
/** Array of workflow definitions to display */
|
|
707
|
+
workflows: Workflow[];
|
|
708
|
+
/** Callback when a workflow is selected */
|
|
709
|
+
onWorkflowSelect?: (workflow: Workflow) => void;
|
|
710
|
+
/** Callback when a task is selected */
|
|
711
|
+
onTaskSelect?: (task: Task, workflow: Workflow) => void;
|
|
712
|
+
/** Initial theme setting */
|
|
713
|
+
theme?: Theme;
|
|
714
|
+
/** Class name for the root element */
|
|
715
|
+
className?: string;
|
|
716
|
+
/** Execution result to display in the result panel */
|
|
717
|
+
executionResult?: Message | null;
|
|
718
|
+
/** Enable debug mode with step-by-step visualization */
|
|
719
|
+
debugMode?: boolean;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
export { }
|