@genfeedai/workflow-ui 0.1.3 → 0.1.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.
Files changed (84) hide show
  1. package/dist/canvas.d.mts +16 -2
  2. package/dist/canvas.mjs +10 -8
  3. package/dist/chunk-6PSJTBNV.mjs +638 -0
  4. package/dist/chunk-7H3WJJYS.mjs +52 -0
  5. package/dist/{chunk-HCXI63ME.mjs → chunk-AUQGOJOQ.mjs} +27 -4
  6. package/dist/{chunk-AOTUCJMA.mjs → chunk-GWBGK3KL.mjs} +2 -2
  7. package/dist/chunk-JTPADIUO.mjs +130 -0
  8. package/dist/{chunk-SQK4JDYY.mjs → chunk-LT3ZJJL6.mjs} +9 -2
  9. package/dist/{chunk-7P2JWDC7.mjs → chunk-O5II6BOJ.mjs} +1198 -254
  10. package/dist/{chunk-AUZR6REQ.mjs → chunk-OQREHJXK.mjs} +1 -1
  11. package/dist/chunk-OY7BRSGG.mjs +60 -0
  12. package/dist/{chunk-E3YBVMYZ.mjs → chunk-PANZDSP6.mjs} +274 -305
  13. package/dist/chunk-PCIWWD37.mjs +90 -0
  14. package/dist/{chunk-RIGVIEYB.mjs → chunk-R727OFBR.mjs} +11 -1
  15. package/dist/chunk-ZD2BADZO.mjs +1294 -0
  16. package/dist/contextMenuStore-DMg0hJQ1.d.mts +22 -0
  17. package/dist/hooks.d.mts +53 -244
  18. package/dist/hooks.mjs +6 -6
  19. package/dist/index.d.mts +11 -7
  20. package/dist/index.mjs +13 -11
  21. package/dist/lib.d.mts +250 -4
  22. package/dist/lib.mjs +562 -2
  23. package/dist/nodes.d.mts +3 -1
  24. package/dist/nodes.mjs +6 -6
  25. package/dist/panels.mjs +3 -4
  26. package/dist/{promptLibraryStore-zqb59nsu.d.mts → promptLibraryStore-Bgw5LzvD.d.mts} +33 -5
  27. package/dist/provider.d.mts +2 -2
  28. package/dist/provider.mjs +0 -1
  29. package/dist/stores.d.mts +4 -3
  30. package/dist/stores.mjs +3 -40
  31. package/dist/toolbar.d.mts +3 -1
  32. package/dist/toolbar.mjs +5 -4
  33. package/dist/{types-ipAnBzAJ.d.mts → types-CF6DPx0P.d.mts} +8 -3
  34. package/dist/ui.d.mts +1 -1
  35. package/dist/ui.mjs +0 -1
  36. package/dist/{hooks.d.ts → useCommentNavigation-NzJjkaj2.d.mts} +15 -2
  37. package/dist/workflowStore-UAAKOOIK.mjs +2 -0
  38. package/package.json +30 -24
  39. package/dist/canvas.d.ts +0 -27
  40. package/dist/canvas.js +0 -45
  41. package/dist/chunk-3SPPKCWR.js +0 -458
  42. package/dist/chunk-3TMV3K34.js +0 -534
  43. package/dist/chunk-3YFFDHC5.js +0 -300
  44. package/dist/chunk-4MZ62VMF.js +0 -37
  45. package/dist/chunk-5HJFQVUR.js +0 -61
  46. package/dist/chunk-5LQ4QBR5.js +0 -2
  47. package/dist/chunk-6DOEUDD5.js +0 -254
  48. package/dist/chunk-AXFOCPPP.js +0 -998
  49. package/dist/chunk-BMFRA6GK.js +0 -1546
  50. package/dist/chunk-E323WAZG.mjs +0 -272
  51. package/dist/chunk-ECD5J2BA.js +0 -6022
  52. package/dist/chunk-EMGXUNBL.js +0 -120
  53. package/dist/chunk-EMUMKW5C.js +0 -107
  54. package/dist/chunk-FOMOOERN.js +0 -2
  55. package/dist/chunk-IASLG6IA.mjs +0 -118
  56. package/dist/chunk-IHF35QZD.js +0 -1095
  57. package/dist/chunk-JLWKW3G5.js +0 -2
  58. package/dist/chunk-KDIWRSYV.js +0 -375
  59. package/dist/chunk-L5TF4EHW.mjs +0 -1
  60. package/dist/chunk-RJ262NXS.js +0 -24
  61. package/dist/chunk-RXNEDWK2.js +0 -141
  62. package/dist/chunk-SEV2DWKF.js +0 -744
  63. package/dist/chunk-ZJWP5KGZ.mjs +0 -33
  64. package/dist/hooks.js +0 -56
  65. package/dist/index.d.ts +0 -29
  66. package/dist/index.js +0 -180
  67. package/dist/lib.d.ts +0 -164
  68. package/dist/lib.js +0 -144
  69. package/dist/nodes.d.ts +0 -128
  70. package/dist/nodes.js +0 -151
  71. package/dist/panels.d.ts +0 -22
  72. package/dist/panels.js +0 -21
  73. package/dist/promptLibraryStore-BZnfmEkc.d.ts +0 -464
  74. package/dist/provider.d.ts +0 -29
  75. package/dist/provider.js +0 -17
  76. package/dist/stores.d.ts +0 -96
  77. package/dist/stores.js +0 -113
  78. package/dist/toolbar.d.ts +0 -73
  79. package/dist/toolbar.js +0 -34
  80. package/dist/types-ipAnBzAJ.d.ts +0 -46
  81. package/dist/ui.d.ts +0 -67
  82. package/dist/ui.js +0 -84
  83. package/dist/workflowStore-7SDJC4UR.mjs +0 -3
  84. package/dist/workflowStore-LNJQ5RZG.js +0 -12
@@ -0,0 +1,22 @@
1
+ import * as zustand from 'zustand';
2
+
3
+ type ContextMenuType = 'node' | 'edge' | 'pane' | 'selection' | null;
4
+ interface ContextMenuPosition {
5
+ x: number;
6
+ y: number;
7
+ }
8
+ interface ContextMenuState {
9
+ isOpen: boolean;
10
+ position: ContextMenuPosition;
11
+ menuType: ContextMenuType;
12
+ targetId: string | null;
13
+ targetIds: string[] | null;
14
+ openNodeMenu: (nodeId: string, x: number, y: number) => void;
15
+ openEdgeMenu: (edgeId: string, x: number, y: number) => void;
16
+ openPaneMenu: (x: number, y: number) => void;
17
+ openSelectionMenu: (nodeIds: string[], x: number, y: number) => void;
18
+ close: () => void;
19
+ }
20
+ declare const useContextMenuStore: zustand.UseBoundStore<zustand.StoreApi<ContextMenuState>>;
21
+
22
+ export { type ContextMenuType as C, type ContextMenuPosition as a, useContextMenuStore as u };
package/dist/hooks.d.mts CHANGED
@@ -1,255 +1,64 @@
1
- import { NodeGroup, WorkflowNode, NodeType, WorkflowNodeData, ProviderModel, SelectedModel, AvailableVariable } from '@genfeedai/types';
2
- import { FitViewOptions } from '@xyflow/react';
3
- import * as react from 'react';
4
- import { ReactNode, RefObject } from 'react';
1
+ export { C as CommentNavigation, e as useAIGenNode, f as useAIGenNodeHeader, i as useAutoLoadModelSchema, b as useCanGenerate, u as useCanvasKeyboardShortcuts, j as useCommentNavigation, h as useMediaUpload, d as useModelSelection, c as useNodeExecution, g as usePromptAutocomplete, a as useRequiredInputs } from './useCommentNavigation-NzJjkaj2.mjs';
2
+ import { WorkflowNode, WorkflowEdge } from '@genfeedai/types';
3
+ import { a as ContextMenuPosition, C as ContextMenuType } from './contextMenuStore-DMg0hJQ1.mjs';
4
+ import '@xyflow/react';
5
+ import 'react';
6
+ import 'zustand';
5
7
 
6
- interface UseCanvasKeyboardShortcutsParams {
7
- selectedNodeIds: string[];
8
- groups: NodeGroup[];
8
+ interface ClipboardData {
9
9
  nodes: WorkflowNode[];
10
- toggleNodeLock: (nodeId: string) => void;
11
- createGroup: (nodeIds: string[]) => string;
12
- deleteGroup: (groupId: string) => void;
13
- unlockAllNodes: () => void;
14
- addNode: (type: NodeType, position: {
15
- x: number;
16
- y: number;
17
- }) => string;
18
- togglePalette: () => void;
19
- fitView: (options?: FitViewOptions) => void;
20
- openShortcutHelp: () => void;
21
- openNodeSearch: () => void;
10
+ edges: WorkflowEdge[];
11
+ isCut: boolean;
22
12
  }
23
- /**
24
- * Hook that handles keyboard shortcuts for the workflow canvas
25
- *
26
- * Shortcuts:
27
- * - M: Toggle sidebar/palette
28
- * - L: Toggle lock on selected nodes
29
- * - F: Fit view to selection (or all if none selected)
30
- * - ?: Show shortcut help modal
31
- * - Ctrl/Cmd+F: Open node search
32
- * - Ctrl/Cmd+G: Create group from selection
33
- * - Ctrl/Cmd+Shift+G: Ungroup selected nodes
34
- * - Ctrl/Cmd+Shift+L: Unlock all nodes
35
- * - Shift+I: Add image generator node
36
- * - Shift+V: Add video generator node
37
- * - Shift+P: Add prompt node
38
- * - Shift+L: Add LLM node
39
- * - Ctrl/Cmd+Z: Undo
40
- * - Ctrl/Cmd+Shift+Z: Redo
41
- */
42
- declare function useCanvasKeyboardShortcuts({ selectedNodeIds, groups, nodes, toggleNodeLock, createGroup, deleteGroup, unlockAllNodes, addNode, togglePalette, fitView, openShortcutHelp, openNodeSearch, }: UseCanvasKeyboardShortcutsParams): void;
43
-
44
- interface RequiredInputsResult {
45
- /** Whether all required inputs have connections */
46
- hasRequiredInputs: boolean;
47
- /** List of missing required input handle IDs */
48
- missingInputs: string[];
49
- /** Map of handle ID to whether it's connected */
50
- connectionStatus: Map<string, boolean>;
51
- }
52
- /**
53
- * Hook that checks if all required inputs for a node are connected.
54
- * Uses edge connections, not actual data values.
55
- *
56
- * @param nodeId - The node ID to check
57
- * @param nodeType - The node type (to look up required inputs from NODE_DEFINITIONS)
58
- * @returns Object with hasRequiredInputs boolean and details about missing inputs
59
- */
60
- declare function useRequiredInputs(nodeId: string, nodeType: NodeType): RequiredInputsResult;
61
-
62
- interface MissingItem {
63
- type: 'connection' | 'data' | 'schema';
64
- field: string;
65
- message: string;
66
- }
67
- interface CanGenerateResult {
68
- /** Whether all validation passes and generation can proceed */
69
- canGenerate: boolean;
70
- /** List of missing items with details */
71
- missingItems: MissingItem[];
72
- /** Whether all required connections exist */
73
- hasRequiredConnections: boolean;
74
- /** Whether all connected nodes have actual data */
75
- hasConnectedData: boolean;
76
- /** Whether all required schema fields are filled */
77
- hasRequiredSchemaFields: boolean;
78
- }
79
- interface UseCanGenerateOptions {
80
- /** The node ID to validate */
81
- nodeId: string;
82
- /** The node type (to look up required inputs from NODE_DEFINITIONS) */
83
- nodeType: NodeType;
84
- /** The model's input schema with required array */
85
- inputSchema?: Record<string, unknown>;
86
- /** Current schema parameter values */
87
- schemaParams?: Record<string, unknown>;
88
- }
89
- /**
90
- * Hook that performs comprehensive validation for the Generate button.
91
- *
92
- * Validates:
93
- * 1. Required connections exist (from NODE_DEFINITIONS)
94
- * 2. Connected nodes have actual data values (not just edges)
95
- * 3. Required schema fields from model inputSchema are filled
96
- *
97
- * @returns Object with canGenerate boolean and detailed breakdown
98
- */
99
- declare function useCanGenerate({ nodeId, nodeType, inputSchema, schemaParams, }: UseCanGenerateOptions): CanGenerateResult;
100
-
101
- /**
102
- * Hook for triggering and stopping node execution
103
- *
104
- * Encapsulates the common pattern of:
105
- * 1. Setting node status to processing
106
- * 2. Triggering execution
107
- * 3. Stopping execution and resetting status
108
- *
109
- * @param nodeId - The ID of the node to execute
110
- * @returns handleGenerate - Callback to trigger node execution
111
- * @returns handleStop - Callback to stop node execution
112
- */
113
- declare function useNodeExecution(nodeId: string): {
114
- handleGenerate: () => void;
115
- handleStop: () => void;
116
- };
117
-
118
- type ModelMap = Record<string, string>;
119
- interface UseModelSelectionOptions<TModel extends string> {
120
- /** Node ID to update */
121
- nodeId: string;
122
- /** Map of provider model IDs to internal model types */
123
- modelMap: ModelMap;
124
- /** Fallback internal model if not found in map */
125
- fallbackModel: TModel;
126
- }
127
- /**
128
- * Hook for handling model selection in AI generator nodes.
129
- * Consolidates the common pattern from ImageGenNode and VideoGenNode.
130
- *
131
- * @returns handleModelSelect callback to pass to ModelBrowserModal
132
- */
133
- declare function useModelSelection<TModel extends string, TNodeData extends WorkflowNodeData & {
134
- model?: TModel;
135
- }>({ nodeId, modelMap, fallbackModel }: UseModelSelectionOptions<TModel>): {
136
- handleModelSelect: (model: ProviderModel) => void;
13
+ declare function useNodeActions(): {
14
+ clipboard: ClipboardData | null;
15
+ deleteNode: (nodeId: string) => void;
16
+ duplicate: (nodeId: string) => string | null;
17
+ copyNode: (nodeId: string) => void;
18
+ copyMultipleNodes: (nodeIds: string[]) => void;
19
+ cutNode: (nodeId: string) => void;
20
+ cutMultipleNodes: (nodeIds: string[]) => void;
21
+ deleteMultipleNodes: (nodeIds: string[]) => void;
22
+ duplicateMultipleNodes: (nodeIds: string[]) => string[];
23
+ pasteNodes: (offsetX: number, offsetY: number) => {
24
+ nodeIds: string[];
25
+ edgeIds: string[];
26
+ } | null;
27
+ getPasteData: (offsetX: number, offsetY: number) => {
28
+ nodes: WorkflowNode[];
29
+ edges: WorkflowEdge[];
30
+ } | null;
137
31
  };
138
32
 
139
- /**
140
- * JSON Schema property definition
141
- * These come from Replicate model schemas
142
- */
143
- interface SchemaProperty {
144
- type?: string;
145
- title?: string;
146
- description?: string;
147
- default?: unknown;
148
- minimum?: number;
149
- maximum?: number;
150
- 'x-order'?: number;
151
- allOf?: Array<{
152
- $ref: string;
153
- }>;
154
- enum?: string[];
155
- nullable?: boolean;
156
- }
157
-
158
- interface UseAIGenNodeOptions {
159
- nodeId: string;
160
- selectedModel: SelectedModel | undefined;
161
- schemaParams: Record<string, unknown> | undefined;
162
- }
163
- declare function useAIGenNode<TNodeData extends WorkflowNodeData>({ nodeId, selectedModel, schemaParams, }: UseAIGenNodeOptions): {
164
- schemaProperties: Record<string, SchemaProperty> | undefined;
165
- enumValues: Record<string, string[]> | undefined;
166
- modelSupportsImageInput: boolean;
167
- handleSchemaParamChange: (key: string, value: unknown) => void;
168
- componentSchemas: Record<string, {
169
- enum?: unknown[];
170
- type?: string;
171
- }> | undefined;
172
- };
173
-
174
- interface UseAIGenNodeHeaderOptions {
175
- modelDisplayName: string;
176
- isProcessing: boolean;
177
- canGenerate: boolean;
178
- hasOutput: boolean;
179
- onModelBrowse: () => void;
180
- onGenerate: () => void;
181
- onStop: () => void;
182
- onExpand: () => void;
183
- }
184
- declare function useAIGenNodeHeader({ modelDisplayName, isProcessing, canGenerate, hasOutput, onModelBrowse, onGenerate, onStop, onExpand, }: UseAIGenNodeHeaderOptions): {
185
- titleElement: ReactNode;
186
- headerActions: ReactNode;
33
+ declare function usePaneActions(): {
34
+ addNodeAtPosition: (type: string, screenX: number, screenY: number) => void;
35
+ selectAll: () => void;
36
+ fitView: () => void;
37
+ autoLayout: (direction?: "TB" | "LR") => void;
187
38
  };
188
39
 
189
- interface UsePromptAutocompleteOptions {
190
- availableVariables: AvailableVariable[];
191
- textareaRef: RefObject<HTMLTextAreaElement | null>;
192
- localTemplate: string;
193
- setLocalTemplate: (value: string) => void;
194
- onTemplateCommit?: (newTemplate: string) => void;
195
- }
196
- interface UsePromptAutocompleteReturn {
197
- showAutocomplete: boolean;
198
- autocompletePosition: {
199
- top: number;
200
- left: number;
201
- };
202
- filteredAutocompleteVars: AvailableVariable[];
203
- selectedAutocompleteIndex: number;
204
- handleChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
205
- handleKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
206
- handleAutocompleteSelect: (varName: string) => void;
207
- closeAutocomplete: () => void;
40
+ interface ContextMenuItemConfig {
41
+ id: string;
42
+ label?: string;
43
+ icon?: React.ReactNode;
44
+ shortcut?: string;
45
+ disabled?: boolean;
46
+ danger?: boolean;
47
+ separator?: boolean;
48
+ submenu?: ContextMenuItemConfig[];
49
+ onClick?: () => void;
208
50
  }
209
- declare function usePromptAutocomplete({ availableVariables, textareaRef, localTemplate, setLocalTemplate, onTemplateCommit, }: UsePromptAutocompleteOptions): UsePromptAutocompleteReturn;
210
51
 
211
- interface UseMediaUploadOptions<T extends WorkflowNodeData> {
212
- nodeId: string;
213
- mediaType: 'image' | 'video';
214
- initialUrl?: string;
215
- getMetadata: (src: string) => Promise<Record<string, unknown>>;
216
- buildUploadUpdate: (url: string, filename: string, metadata: Record<string, unknown>) => Partial<T>;
217
- buildUrlUpdate: (url: string, metadata: Record<string, unknown> | null) => Partial<T>;
218
- buildRemoveUpdate: () => Partial<T>;
219
- }
220
- declare function useMediaUpload<T extends WorkflowNodeData>({ nodeId, mediaType, initialUrl, getMetadata, buildUploadUpdate, buildUrlUpdate, buildRemoveUpdate, }: UseMediaUploadOptions<T>): {
221
- fileInputRef: react.RefObject<HTMLInputElement | null>;
222
- showUrlInput: boolean;
223
- setShowUrlInput: react.Dispatch<react.SetStateAction<boolean>>;
224
- urlValue: string;
225
- setUrlValue: react.Dispatch<react.SetStateAction<string>>;
226
- isUploading: boolean;
227
- handleFileSelect: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>;
228
- handleRemove: () => void;
229
- handleUrlSubmit: () => Promise<void>;
230
- handleUrlKeyDown: (e: React.KeyboardEvent) => void;
52
+ declare function useContextMenu(): {
53
+ isOpen: boolean;
54
+ position: ContextMenuPosition;
55
+ menuType: ContextMenuType;
56
+ menuItems: ContextMenuItemConfig[];
57
+ openNodeMenu: (nodeId: string, x: number, y: number) => void;
58
+ openEdgeMenu: (edgeId: string, x: number, y: number) => void;
59
+ openPaneMenu: (x: number, y: number) => void;
60
+ openSelectionMenu: (nodeIds: string[], x: number, y: number) => void;
61
+ close: () => void;
231
62
  };
232
63
 
233
- interface UseAutoLoadModelSchemaOptions<TModel extends string> {
234
- /** Current model type from node data */
235
- currentModel: TModel | undefined;
236
- /** Selected model with full schema (if already loaded) */
237
- selectedModel: SelectedModel | undefined;
238
- /** Map from internal model type to API model ID */
239
- modelIdMap: Record<TModel, string>;
240
- /** Callback when model is loaded from API */
241
- onModelSelect: (model: ProviderModel) => void;
242
- }
243
- /**
244
- * Hook that auto-loads model schema for a node when the selectedModel is not set
245
- * but a model type is already selected.
246
- *
247
- * This handles the case where a node has a default model but hasn't loaded
248
- * the full schema yet.
249
- *
250
- * Uses the WorkflowUIProvider's modelSchema service to fetch the schema.
251
- * Falls back to no-op if the service is not configured.
252
- */
253
- declare function useAutoLoadModelSchema<TModel extends string>({ currentModel, selectedModel, modelIdMap, onModelSelect, }: UseAutoLoadModelSchemaOptions<TModel>): void;
254
-
255
- export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useCanvasKeyboardShortcuts, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs };
64
+ export { useContextMenu, useNodeActions, usePaneActions };
package/dist/hooks.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import './chunk-L5TF4EHW.mjs';
2
- export { useCanvasKeyboardShortcuts } from './chunk-IASLG6IA.mjs';
3
- export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs } from './chunk-AOTUCJMA.mjs';
1
+ export { useCommentNavigation } from './chunk-7H3WJJYS.mjs';
2
+ export { useCanvasKeyboardShortcuts, useContextMenu, useNodeActions, usePaneActions } from './chunk-ZD2BADZO.mjs';
3
+ export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs } from './chunk-GWBGK3KL.mjs';
4
4
  import './chunk-7SKSRSS7.mjs';
5
5
  import './chunk-EFXQT23N.mjs';
6
+ import './chunk-PCIWWD37.mjs';
6
7
  import './chunk-LDN7IX4Y.mjs';
7
- import './chunk-SQK4JDYY.mjs';
8
- import './chunk-RIGVIEYB.mjs';
8
+ import './chunk-LT3ZJJL6.mjs';
9
+ import './chunk-R727OFBR.mjs';
9
10
  import './chunk-FT33LFII.mjs';
10
11
  import './chunk-VRN3UWE5.mjs';
11
- import './chunk-ZJWP5KGZ.mjs';
package/dist/index.d.mts CHANGED
@@ -1,14 +1,14 @@
1
- export { GroupOverlay, HelperLines, NodeSearch, PauseEdge, ShortcutHelpModal, WorkflowCanvas } from './canvas.mjs';
1
+ export { ConnectionDropMenu, EdgeToolbar, EditableEdge, GroupOverlay, HelperLines, NodeSearch, PauseEdge, ReferenceEdge, ShortcutHelpModal, WorkflowCanvas } from './canvas.mjs';
2
2
  export { BaseNode, nodeTypes } from './nodes.mjs';
3
3
  export { DebugPanel, NodePalette, PanelContainer } from './panels.mjs';
4
- export { BottomBar, DropdownItem, OverflowMenu, OverflowMenuProps, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown, ToolbarDropdownProps } from './toolbar.mjs';
5
- export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useCanvasKeyboardShortcuts, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs } from './hooks.mjs';
6
- export { g as configurePromptLibrary, e as useAnnotationStore, b as useExecutionStore, d as usePromptEditorStore, f as usePromptLibraryStore, c as useSettingsStore, u as useUIStore, a as useWorkflowStore } from './promptLibraryStore-zqb59nsu.mjs';
4
+ export { BottomBar, CostIndicator, DropdownItem, OverflowMenu, OverflowMenuProps, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown, ToolbarDropdownProps } from './toolbar.mjs';
5
+ export { C as CommentNavigation, e as useAIGenNode, f as useAIGenNodeHeader, i as useAutoLoadModelSchema, b as useCanGenerate, u as useCanvasKeyboardShortcuts, j as useCommentNavigation, h as useMediaUpload, d as useModelSelection, c as useNodeExecution, g as usePromptAutocomplete, a as useRequiredInputs } from './useCommentNavigation-NzJjkaj2.mjs';
7
6
  import { GroupColor } from '@genfeedai/types';
8
7
  export { GroupColor, NodeGroup } from '@genfeedai/types';
8
+ import * as react_jsx_runtime from 'react/jsx-runtime';
9
+ export { I as ImageHistoryItem, p as configurePromptLibrary, j as useAnnotationStore, b as useExecutionStore, i as usePromptEditorStore, o as usePromptLibraryStore, c as useSettingsStore, a as useUIStore, u as useWorkflowStore } from './promptLibraryStore-Bgw5LzvD.mjs';
9
10
  export { WorkflowUIProvider, useWorkflowUIConfig } from './provider.mjs';
10
- export { M as ModelBrowserModalProps, P as PromptLibraryService, a as PromptPickerProps, W as WorkflowUIConfig } from './types-ipAnBzAJ.mjs';
11
- import 'react/jsx-runtime';
11
+ export { M as ModelBrowserModalProps, P as PromptLibraryService, a as PromptPickerProps, W as WorkflowUIConfig } from './types-CF6DPx0P.mjs';
12
12
  import '@xyflow/react';
13
13
  import 'react';
14
14
  import 'zustand';
@@ -26,4 +26,8 @@ declare const GROUP_COLORS: Record<GroupColor, {
26
26
  }>;
27
27
  declare const DEFAULT_GROUP_COLORS: GroupColor[];
28
28
 
29
- export { DEFAULT_GROUP_COLORS, GROUP_COLORS };
29
+ declare function NotificationToast(): react_jsx_runtime.JSX.Element | null;
30
+
31
+ declare function GlobalImageHistory(): react_jsx_runtime.JSX.Element | null;
32
+
33
+ export { DEFAULT_GROUP_COLORS, GROUP_COLORS, GlobalImageHistory, NotificationToast };
package/dist/index.mjs CHANGED
@@ -1,19 +1,21 @@
1
- export { DEFAULT_GROUP_COLORS, GROUP_COLORS, GroupOverlay, HelperLines, NodeSearch, PauseEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-7P2JWDC7.mjs';
2
- export { BaseNode, nodeTypes } from './chunk-E3YBVMYZ.mjs';
1
+ export { ConnectionDropMenu, DEFAULT_GROUP_COLORS, EdgeToolbar, EditableEdge, GROUP_COLORS, GlobalImageHistory, GroupOverlay, HelperLines, NodeSearch, NotificationToast, PauseEdge, ReferenceEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-O5II6BOJ.mjs';
2
+ export { BaseNode, nodeTypes } from './chunk-PANZDSP6.mjs';
3
3
  import './chunk-ZJD5WMR3.mjs';
4
- import './chunk-E323WAZG.mjs';
5
- export { DebugPanel, NodePalette, PanelContainer } from './chunk-AUZR6REQ.mjs';
6
- export { BottomBar, OverflowMenu, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown } from './chunk-HCXI63ME.mjs';
7
- import './chunk-L5TF4EHW.mjs';
8
- export { useCanvasKeyboardShortcuts } from './chunk-IASLG6IA.mjs';
9
- export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs } from './chunk-AOTUCJMA.mjs';
4
+ import './chunk-6PSJTBNV.mjs';
5
+ export { DebugPanel, NodePalette, PanelContainer } from './chunk-OQREHJXK.mjs';
6
+ export { BottomBar, CostIndicator, OverflowMenu, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown } from './chunk-AUQGOJOQ.mjs';
7
+ import './chunk-JTPADIUO.mjs';
8
+ import './chunk-OY7BRSGG.mjs';
9
+ export { useCommentNavigation } from './chunk-7H3WJJYS.mjs';
10
+ export { useCanvasKeyboardShortcuts } from './chunk-ZD2BADZO.mjs';
11
+ export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs } from './chunk-GWBGK3KL.mjs';
10
12
  import './chunk-7SKSRSS7.mjs';
11
13
  import './chunk-EFXQT23N.mjs';
12
14
  export { useAnnotationStore, usePromptEditorStore } from './chunk-CV4M7CNU.mjs';
15
+ import './chunk-PCIWWD37.mjs';
13
16
  import './chunk-LDN7IX4Y.mjs';
14
- export { useExecutionStore, useSettingsStore, useUIStore } from './chunk-SQK4JDYY.mjs';
15
- export { useWorkflowStore } from './chunk-RIGVIEYB.mjs';
17
+ export { useExecutionStore, useSettingsStore, useUIStore } from './chunk-LT3ZJJL6.mjs';
18
+ export { useWorkflowStore } from './chunk-R727OFBR.mjs';
16
19
  import './chunk-MLJJBBTB.mjs';
17
20
  export { WorkflowUIProvider, useWorkflowUIConfig } from './chunk-FT33LFII.mjs';
18
21
  export { configurePromptLibrary, usePromptLibraryStore } from './chunk-VRN3UWE5.mjs';
19
- import './chunk-ZJWP5KGZ.mjs';