@genfeedai/workflow-ui 0.1.0 → 0.1.2

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 (45) hide show
  1. package/dist/canvas.js +13 -13
  2. package/dist/canvas.mjs +7 -7
  3. package/dist/{chunk-HPQT36RR.js → chunk-3TMV3K34.js} +18 -27
  4. package/dist/{chunk-Z7PWFZG5.js → chunk-4MZ62VMF.js} +8 -1
  5. package/dist/{chunk-VOGL2WCE.mjs → chunk-7P2JWDC7.mjs} +9 -18
  6. package/dist/{chunk-FT64PCUP.mjs → chunk-AOTUCJMA.mjs} +6 -15
  7. package/dist/{chunk-LAJ34AH2.mjs → chunk-AUZR6REQ.mjs} +4 -7
  8. package/dist/{chunk-EC2ZIWOK.js → chunk-AXFOCPPP.js} +36 -45
  9. package/dist/{chunk-CETJJ73S.js → chunk-BMFRA6GK.js} +28 -37
  10. package/dist/{chunk-XV5Z5XYR.mjs → chunk-E3YBVMYZ.mjs} +403 -59
  11. package/dist/{chunk-H6LZKSLY.js → chunk-ECD5J2BA.js} +496 -152
  12. package/dist/{chunk-ADWNF7V3.js → chunk-EMGXUNBL.js} +3 -3
  13. package/dist/{chunk-22PDGHNQ.mjs → chunk-HCXI63ME.mjs} +2 -2
  14. package/dist/{chunk-UQQUWGHW.mjs → chunk-IASLG6IA.mjs} +1 -1
  15. package/dist/chunk-IHF35QZD.js +1095 -0
  16. package/dist/{chunk-E544XUBL.js → chunk-KDIWRSYV.js} +8 -11
  17. package/dist/chunk-RIGVIEYB.mjs +1093 -0
  18. package/dist/{chunk-SW7QNEZU.js → chunk-SEV2DWKF.js} +30 -30
  19. package/dist/{chunk-CSUBLSKZ.mjs → chunk-SQK4JDYY.mjs} +27 -36
  20. package/dist/{chunk-AC6TWLRT.mjs → chunk-ZJWP5KGZ.mjs} +8 -2
  21. package/dist/hooks.js +15 -15
  22. package/dist/hooks.mjs +5 -5
  23. package/dist/index.js +42 -42
  24. package/dist/index.mjs +9 -9
  25. package/dist/lib.js +1 -1
  26. package/dist/lib.mjs +1 -1
  27. package/dist/nodes.js +38 -38
  28. package/dist/nodes.mjs +5 -5
  29. package/dist/panels.js +7 -7
  30. package/dist/panels.mjs +4 -4
  31. package/dist/provider.js +1 -1
  32. package/dist/provider.mjs +1 -1
  33. package/dist/stores.js +8 -8
  34. package/dist/stores.mjs +3 -3
  35. package/dist/toolbar.js +10 -10
  36. package/dist/toolbar.mjs +4 -4
  37. package/dist/ui.js +1 -1
  38. package/dist/ui.mjs +1 -1
  39. package/dist/workflowStore-7SDJC4UR.mjs +3 -0
  40. package/dist/workflowStore-LNJQ5RZG.js +12 -0
  41. package/package.json +1 -1
  42. package/dist/chunk-BJ3R5R32.mjs +0 -2163
  43. package/dist/chunk-NSDLGLAQ.js +0 -2166
  44. package/dist/workflowStore-4EGKJLYK.mjs +0 -3
  45. package/dist/workflowStore-KM32FDL7.js +0 -12
package/dist/canvas.js CHANGED
@@ -1,45 +1,45 @@
1
1
  'use strict';
2
2
 
3
- var chunkCETJJ73S_js = require('./chunk-CETJJ73S.js');
4
- require('./chunk-H6LZKSLY.js');
3
+ var chunkBMFRA6GK_js = require('./chunk-BMFRA6GK.js');
4
+ require('./chunk-ECD5J2BA.js');
5
5
  require('./chunk-3SPPKCWR.js');
6
6
  require('./chunk-3YFFDHC5.js');
7
- require('./chunk-ADWNF7V3.js');
8
- require('./chunk-HPQT36RR.js');
7
+ require('./chunk-EMGXUNBL.js');
8
+ require('./chunk-3TMV3K34.js');
9
9
  require('./chunk-5HJFQVUR.js');
10
10
  require('./chunk-EMUMKW5C.js');
11
11
  require('./chunk-6DOEUDD5.js');
12
12
  require('./chunk-JLWKW3G5.js');
13
- require('./chunk-EC2ZIWOK.js');
14
- require('./chunk-NSDLGLAQ.js');
13
+ require('./chunk-AXFOCPPP.js');
14
+ require('./chunk-IHF35QZD.js');
15
15
  require('./chunk-5LQ4QBR5.js');
16
16
  require('./chunk-RJ262NXS.js');
17
17
  require('./chunk-RXNEDWK2.js');
18
- require('./chunk-Z7PWFZG5.js');
18
+ require('./chunk-4MZ62VMF.js');
19
19
 
20
20
 
21
21
 
22
22
  Object.defineProperty(exports, "GroupOverlay", {
23
23
  enumerable: true,
24
- get: function () { return chunkCETJJ73S_js.GroupOverlay; }
24
+ get: function () { return chunkBMFRA6GK_js.GroupOverlay; }
25
25
  });
26
26
  Object.defineProperty(exports, "HelperLines", {
27
27
  enumerable: true,
28
- get: function () { return chunkCETJJ73S_js.HelperLines; }
28
+ get: function () { return chunkBMFRA6GK_js.HelperLines; }
29
29
  });
30
30
  Object.defineProperty(exports, "NodeSearch", {
31
31
  enumerable: true,
32
- get: function () { return chunkCETJJ73S_js.NodeSearch; }
32
+ get: function () { return chunkBMFRA6GK_js.NodeSearch; }
33
33
  });
34
34
  Object.defineProperty(exports, "PauseEdge", {
35
35
  enumerable: true,
36
- get: function () { return chunkCETJJ73S_js.PauseEdge; }
36
+ get: function () { return chunkBMFRA6GK_js.PauseEdge; }
37
37
  });
38
38
  Object.defineProperty(exports, "ShortcutHelpModal", {
39
39
  enumerable: true,
40
- get: function () { return chunkCETJJ73S_js.ShortcutHelpModal; }
40
+ get: function () { return chunkBMFRA6GK_js.ShortcutHelpModal; }
41
41
  });
42
42
  Object.defineProperty(exports, "WorkflowCanvas", {
43
43
  enumerable: true,
44
- get: function () { return chunkCETJJ73S_js.WorkflowCanvas; }
44
+ get: function () { return chunkBMFRA6GK_js.WorkflowCanvas; }
45
45
  });
package/dist/canvas.mjs CHANGED
@@ -1,16 +1,16 @@
1
- export { GroupOverlay, HelperLines, NodeSearch, PauseEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-VOGL2WCE.mjs';
2
- import './chunk-XV5Z5XYR.mjs';
1
+ export { GroupOverlay, HelperLines, NodeSearch, PauseEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-7P2JWDC7.mjs';
2
+ import './chunk-E3YBVMYZ.mjs';
3
3
  import './chunk-ZJD5WMR3.mjs';
4
4
  import './chunk-E323WAZG.mjs';
5
- import './chunk-UQQUWGHW.mjs';
6
- import './chunk-FT64PCUP.mjs';
5
+ import './chunk-IASLG6IA.mjs';
6
+ import './chunk-AOTUCJMA.mjs';
7
7
  import './chunk-7SKSRSS7.mjs';
8
8
  import './chunk-EFXQT23N.mjs';
9
9
  import './chunk-CV4M7CNU.mjs';
10
10
  import './chunk-LDN7IX4Y.mjs';
11
- import './chunk-CSUBLSKZ.mjs';
12
- import './chunk-BJ3R5R32.mjs';
11
+ import './chunk-SQK4JDYY.mjs';
12
+ import './chunk-RIGVIEYB.mjs';
13
13
  import './chunk-MLJJBBTB.mjs';
14
14
  import './chunk-FT33LFII.mjs';
15
15
  import './chunk-VRN3UWE5.mjs';
16
- import './chunk-AC6TWLRT.mjs';
16
+ import './chunk-ZJWP5KGZ.mjs';
@@ -2,13 +2,13 @@
2
2
 
3
3
  var chunk5HJFQVUR_js = require('./chunk-5HJFQVUR.js');
4
4
  var chunkEMUMKW5C_js = require('./chunk-EMUMKW5C.js');
5
- var chunkEC2ZIWOK_js = require('./chunk-EC2ZIWOK.js');
6
- var chunkNSDLGLAQ_js = require('./chunk-NSDLGLAQ.js');
5
+ var chunkAXFOCPPP_js = require('./chunk-AXFOCPPP.js');
6
+ var chunkIHF35QZD_js = require('./chunk-IHF35QZD.js');
7
7
  var chunkRJ262NXS_js = require('./chunk-RJ262NXS.js');
8
- var chunkZ7PWFZG5_js = require('./chunk-Z7PWFZG5.js');
9
8
  var react = require('react');
10
9
  var lucideReact = require('lucide-react');
11
10
  var jsxRuntime = require('react/jsx-runtime');
11
+ var types = require('@genfeedai/types');
12
12
  var shallow = require('zustand/react/shallow');
13
13
 
14
14
  function useAIGenNode({
@@ -16,7 +16,7 @@ function useAIGenNode({
16
16
  selectedModel,
17
17
  schemaParams
18
18
  }) {
19
- const updateNodeData = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.updateNodeData);
19
+ const updateNodeData = chunkIHF35QZD_js.useWorkflowStore((state) => state.updateNodeData);
20
20
  const schemaProperties = react.useMemo(() => {
21
21
  const schema = selectedModel?.inputSchema;
22
22
  return schema?.properties;
@@ -34,7 +34,7 @@ function useAIGenNode({
34
34
  const componentSchemas = selectedModel?.componentSchemas;
35
35
  const handleSchemaParamChange = react.useCallback(
36
36
  (key, value) => {
37
- const currentNode = chunkNSDLGLAQ_js.useWorkflowStore.getState().getNodeById(nodeId);
37
+ const currentNode = chunkIHF35QZD_js.useWorkflowStore.getState().getNodeById(nodeId);
38
38
  const currentData = currentNode?.data;
39
39
  updateNodeData(nodeId, {
40
40
  schemaParams: {
@@ -136,13 +136,10 @@ function useAutoLoadModelSchema({
136
136
  };
137
137
  }, [currentModel, selectedModel, modelIdMap, onModelSelect, modelSchema]);
138
138
  }
139
-
140
- // src/hooks/useRequiredInputs.ts
141
- var import_types = chunkZ7PWFZG5_js.__toESM(chunkNSDLGLAQ_js.require_dist());
142
139
  function useRequiredInputs(nodeId, nodeType) {
143
- const edges = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.edges);
140
+ const edges = chunkIHF35QZD_js.useWorkflowStore((state) => state.edges);
144
141
  return react.useMemo(() => {
145
- const nodeDef = import_types.NODE_DEFINITIONS[nodeType];
142
+ const nodeDef = types.NODE_DEFINITIONS[nodeType];
146
143
  if (!nodeDef) {
147
144
  return { hasRequiredInputs: true, missingInputs: [], connectionStatus: /* @__PURE__ */ new Map() };
148
145
  }
@@ -164,9 +161,6 @@ function useRequiredInputs(nodeId, nodeType) {
164
161
  };
165
162
  }, [nodeId, nodeType, edges]);
166
163
  }
167
-
168
- // src/hooks/useCanGenerate.ts
169
- var import_types2 = chunkZ7PWFZG5_js.__toESM(chunkNSDLGLAQ_js.require_dist());
170
164
  function extractOutputValue(node, handleType) {
171
165
  const data = node.data;
172
166
  if (handleType === "text") {
@@ -187,12 +181,12 @@ function useCanGenerate({
187
181
  schemaParams
188
182
  }) {
189
183
  const { hasRequiredInputs, missingInputs } = useRequiredInputs(nodeId, nodeType);
190
- const getConnectedInputs = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.getConnectedInputs);
184
+ const getConnectedInputs = chunkIHF35QZD_js.useWorkflowStore((state) => state.getConnectedInputs);
191
185
  const incomingEdgesSelector = react.useCallback(
192
186
  (state) => state.edges.filter((e) => e.target === nodeId),
193
187
  [nodeId]
194
188
  );
195
- const incomingEdges = chunkNSDLGLAQ_js.useWorkflowStore(shallow.useShallow(incomingEdgesSelector));
189
+ const incomingEdges = chunkIHF35QZD_js.useWorkflowStore(shallow.useShallow(incomingEdgesSelector));
196
190
  const connectedOutputsSelector = react.useCallback(
197
191
  (state) => {
198
192
  const outputs = {};
@@ -206,7 +200,7 @@ function useCanGenerate({
206
200
  },
207
201
  [incomingEdges]
208
202
  );
209
- chunkNSDLGLAQ_js.useWorkflowStore(shallow.useShallow(connectedOutputsSelector));
203
+ chunkIHF35QZD_js.useWorkflowStore(shallow.useShallow(connectedOutputsSelector));
210
204
  return react.useMemo(() => {
211
205
  const missingItems = [];
212
206
  for (const inputId of missingInputs) {
@@ -217,7 +211,7 @@ function useCanGenerate({
217
211
  });
218
212
  }
219
213
  const connectedInputs = getConnectedInputs(nodeId);
220
- const nodeDef = import_types2.NODE_DEFINITIONS[nodeType];
214
+ const nodeDef = types.NODE_DEFINITIONS[nodeType];
221
215
  const requiredHandleIds = new Set(
222
216
  nodeDef?.inputs.filter((h) => h.required).map((h) => h.id) ?? []
223
217
  );
@@ -267,7 +261,7 @@ function useCanGenerate({
267
261
  ]);
268
262
  }
269
263
  function useModelSelection({ nodeId, modelMap, fallbackModel }) {
270
- const updateNodeData = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.updateNodeData);
264
+ const updateNodeData = chunkIHF35QZD_js.useWorkflowStore((state) => state.updateNodeData);
271
265
  const handleModelSelect = react.useCallback(
272
266
  (model) => {
273
267
  const internalModel = modelMap[model.id] ?? fallbackModel;
@@ -290,15 +284,12 @@ function useModelSelection({ nodeId, modelMap, fallbackModel }) {
290
284
  );
291
285
  return { handleModelSelect };
292
286
  }
293
-
294
- // src/hooks/useNodeExecution.ts
295
- var import_types3 = chunkZ7PWFZG5_js.__toESM(chunkNSDLGLAQ_js.require_dist());
296
287
  function useNodeExecution(nodeId) {
297
- const updateNodeData = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.updateNodeData);
298
- const executeNode = chunkEC2ZIWOK_js.useExecutionStore((state) => state.executeNode);
299
- const stopNodeExecution = chunkEC2ZIWOK_js.useExecutionStore((state) => state.stopNodeExecution);
288
+ const updateNodeData = chunkIHF35QZD_js.useWorkflowStore((state) => state.updateNodeData);
289
+ const executeNode = chunkAXFOCPPP_js.useExecutionStore((state) => state.executeNode);
290
+ const stopNodeExecution = chunkAXFOCPPP_js.useExecutionStore((state) => state.stopNodeExecution);
300
291
  const handleGenerate = react.useCallback(() => {
301
- updateNodeData(nodeId, { status: import_types3.NodeStatusEnum.PROCESSING });
292
+ updateNodeData(nodeId, { status: types.NodeStatusEnum.PROCESSING });
302
293
  executeNode(nodeId);
303
294
  }, [nodeId, executeNode, updateNodeData]);
304
295
  const handleStop = react.useCallback(() => {
@@ -324,8 +315,8 @@ function useMediaUpload({
324
315
  buildUrlUpdate,
325
316
  buildRemoveUpdate
326
317
  }) {
327
- const updateNodeData = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.updateNodeData);
328
- const workflowId = chunkNSDLGLAQ_js.useWorkflowStore((state) => state.workflowId);
318
+ const updateNodeData = chunkIHF35QZD_js.useWorkflowStore((state) => state.updateNodeData);
319
+ const workflowId = chunkIHF35QZD_js.useWorkflowStore((state) => state.workflowId);
329
320
  const { fileUpload } = chunkRJ262NXS_js.useWorkflowUIConfig();
330
321
  const fileInputRef = react.useRef(null);
331
322
  const [showUrlInput, setShowUrlInput] = react.useState(false);
@@ -6,7 +6,13 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __commonJS = (cb, mod) => function __require() {
9
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
10
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
11
+ }) : x)(function(x) {
12
+ if (typeof require !== "undefined") return require.apply(this, arguments);
13
+ throw Error('Dynamic require of "' + x + '" is not supported');
14
+ });
15
+ var __commonJS = (cb, mod) => function __require2() {
10
16
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
17
  };
12
18
  var __copyProps = (to, from, except, desc) => {
@@ -27,4 +33,5 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
33
  ));
28
34
 
29
35
  exports.__commonJS = __commonJS;
36
+ exports.__require = __require;
30
37
  exports.__toESM = __toESM;
@@ -1,22 +1,19 @@
1
- import { nodeTypes } from './chunk-XV5Z5XYR.mjs';
1
+ import { nodeTypes } from './chunk-E3YBVMYZ.mjs';
2
2
  import { getMediaFromNode } from './chunk-E323WAZG.mjs';
3
- import { useCanvasKeyboardShortcuts } from './chunk-UQQUWGHW.mjs';
3
+ import { useCanvasKeyboardShortcuts } from './chunk-IASLG6IA.mjs';
4
4
  import { Button } from './chunk-7SKSRSS7.mjs';
5
5
  import { usePromptEditorStore } from './chunk-CV4M7CNU.mjs';
6
- import { useUIStore, useSettingsStore, useExecutionStore } from './chunk-CSUBLSKZ.mjs';
7
- import { require_dist, useWorkflowStore } from './chunk-BJ3R5R32.mjs';
8
- import { __toESM } from './chunk-AC6TWLRT.mjs';
6
+ import { useUIStore, useSettingsStore, useExecutionStore } from './chunk-SQK4JDYY.mjs';
7
+ import { useWorkflowStore } from './chunk-RIGVIEYB.mjs';
9
8
  import { useNodes, ViewportPortal, useViewport, useStore, getBezierPath, BaseEdge, useReactFlow, ReactFlow, SelectionMode, ConnectionMode, Background, BackgroundVariant, Controls, MiniMap } from '@xyflow/react';
10
9
  import { Pause, Palette, Lock, Unlock, Trash2, Search, X, Keyboard, PanelLeft, Download, ChevronLeft, ChevronRight, ZoomOut, ZoomIn } from 'lucide-react';
11
10
  import { memo, useMemo, useState, useCallback, useEffect, useRef } from 'react';
12
11
  import '@xyflow/react/dist/style.css';
12
+ import { NODE_DEFINITIONS } from '@genfeedai/types';
13
13
  import { clsx } from 'clsx';
14
14
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
15
15
  import Image from 'next/image';
16
16
 
17
- // src/canvas/WorkflowCanvas.tsx
18
- var import_types3 = __toESM(require_dist());
19
-
20
17
  // src/types/groups.ts
21
18
  var GROUP_COLORS = {
22
19
  purple: {
@@ -556,9 +553,6 @@ function HelperLinesComponent({ draggingNodeId }) {
556
553
  );
557
554
  }
558
555
  var HelperLines = memo(HelperLinesComponent);
559
-
560
- // src/canvas/NodeSearch.tsx
561
- var import_types = __toESM(require_dist());
562
556
  function NodeSearch() {
563
557
  const { activeModal, closeModal } = useUIStore();
564
558
  const { nodes, setSelectedNodeIds } = useWorkflowStore();
@@ -581,7 +575,7 @@ function NodeSearch() {
581
575
  const label = (node.data.label || "").toLowerCase();
582
576
  const type = (node.type || "").toLowerCase();
583
577
  const comment = (node.data.comment || "").toLowerCase();
584
- const nodeDefLabel = import_types.NODE_DEFINITIONS[node.type]?.label?.toLowerCase() || "";
578
+ const nodeDefLabel = NODE_DEFINITIONS[node.type]?.label?.toLowerCase() || "";
585
579
  return label.includes(query) || type.includes(query) || comment.includes(query) || nodeDefLabel.includes(query);
586
580
  });
587
581
  }, [nodes, search]);
@@ -681,7 +675,7 @@ function NodeSearch() {
681
675
  )
682
676
  ] }),
683
677
  /* @__PURE__ */ jsx("div", { ref: listRef, className: "max-h-[300px] overflow-y-auto space-y-1", children: filteredNodes.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-center text-muted-foreground py-8", children: search ? `No nodes found for "${search}"` : "No nodes in workflow" }) : filteredNodes.map((node, index) => {
684
- const nodeDef = import_types.NODE_DEFINITIONS[node.type];
678
+ const nodeDef = NODE_DEFINITIONS[node.type];
685
679
  const comment = node.data.comment;
686
680
  return /* @__PURE__ */ jsxs(
687
681
  "button",
@@ -862,9 +856,6 @@ function ShortcutHelpModal() {
862
856
  }
863
857
  );
864
858
  }
865
-
866
- // src/nodes/NodeDetailModal.tsx
867
- var import_types2 = __toESM(require_dist());
868
859
  var PROMPT_NODE_TYPES = ["prompt"];
869
860
  function NodeDetailModal() {
870
861
  const { activeModal, nodeDetailNodeId, nodeDetailStartIndex, closeNodeDetailModal } = useUIStore();
@@ -893,7 +884,7 @@ function NodeDetailModal() {
893
884
  }, [node]);
894
885
  const nodeDef = useMemo(() => {
895
886
  if (!node) return null;
896
- return import_types2.NODE_DEFINITIONS[node.type];
887
+ return NODE_DEFINITIONS[node.type];
897
888
  }, [node]);
898
889
  const imageUrls = mediaInfo.urls ?? [];
899
890
  const hasMultipleImages = imageUrls.length > 1;
@@ -1123,7 +1114,7 @@ function supportsImageInput(schema) {
1123
1114
  function getEdgeDataType(edge, nodeMap) {
1124
1115
  const sourceNode = nodeMap.get(edge.source);
1125
1116
  if (!sourceNode) return null;
1126
- const nodeDef = import_types3.NODE_DEFINITIONS[sourceNode.type];
1117
+ const nodeDef = NODE_DEFINITIONS[sourceNode.type];
1127
1118
  if (!nodeDef) return null;
1128
1119
  const sourceHandle = nodeDef.outputs.find((h) => h.id === edge.sourceHandle);
1129
1120
  return sourceHandle?.type ?? null;
@@ -1,12 +1,12 @@
1
1
  import { Button } from './chunk-7SKSRSS7.mjs';
2
2
  import { extractEnumValues, supportsImageInput, validateRequiredSchemaFields, CONNECTION_FIELDS, getSchemaDefaults, getImageDimensions, getVideoMetadata } from './chunk-EFXQT23N.mjs';
3
- import { useExecutionStore } from './chunk-CSUBLSKZ.mjs';
4
- import { require_dist, useWorkflowStore } from './chunk-BJ3R5R32.mjs';
3
+ import { useExecutionStore } from './chunk-SQK4JDYY.mjs';
4
+ import { useWorkflowStore } from './chunk-RIGVIEYB.mjs';
5
5
  import { useWorkflowUIConfig } from './chunk-FT33LFII.mjs';
6
- import { __toESM } from './chunk-AC6TWLRT.mjs';
7
6
  import { useMemo, useCallback, useRef, useEffect, useState } from 'react';
8
7
  import { ChevronDown, Expand, Square, Play } from 'lucide-react';
9
8
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
9
+ import { NODE_DEFINITIONS, NodeStatusEnum } from '@genfeedai/types';
10
10
  import { useShallow } from 'zustand/react/shallow';
11
11
 
12
12
  function useAIGenNode({
@@ -134,13 +134,10 @@ function useAutoLoadModelSchema({
134
134
  };
135
135
  }, [currentModel, selectedModel, modelIdMap, onModelSelect, modelSchema]);
136
136
  }
137
-
138
- // src/hooks/useRequiredInputs.ts
139
- var import_types = __toESM(require_dist());
140
137
  function useRequiredInputs(nodeId, nodeType) {
141
138
  const edges = useWorkflowStore((state) => state.edges);
142
139
  return useMemo(() => {
143
- const nodeDef = import_types.NODE_DEFINITIONS[nodeType];
140
+ const nodeDef = NODE_DEFINITIONS[nodeType];
144
141
  if (!nodeDef) {
145
142
  return { hasRequiredInputs: true, missingInputs: [], connectionStatus: /* @__PURE__ */ new Map() };
146
143
  }
@@ -162,9 +159,6 @@ function useRequiredInputs(nodeId, nodeType) {
162
159
  };
163
160
  }, [nodeId, nodeType, edges]);
164
161
  }
165
-
166
- // src/hooks/useCanGenerate.ts
167
- var import_types2 = __toESM(require_dist());
168
162
  function extractOutputValue(node, handleType) {
169
163
  const data = node.data;
170
164
  if (handleType === "text") {
@@ -215,7 +209,7 @@ function useCanGenerate({
215
209
  });
216
210
  }
217
211
  const connectedInputs = getConnectedInputs(nodeId);
218
- const nodeDef = import_types2.NODE_DEFINITIONS[nodeType];
212
+ const nodeDef = NODE_DEFINITIONS[nodeType];
219
213
  const requiredHandleIds = new Set(
220
214
  nodeDef?.inputs.filter((h) => h.required).map((h) => h.id) ?? []
221
215
  );
@@ -288,15 +282,12 @@ function useModelSelection({ nodeId, modelMap, fallbackModel }) {
288
282
  );
289
283
  return { handleModelSelect };
290
284
  }
291
-
292
- // src/hooks/useNodeExecution.ts
293
- var import_types3 = __toESM(require_dist());
294
285
  function useNodeExecution(nodeId) {
295
286
  const updateNodeData = useWorkflowStore((state) => state.updateNodeData);
296
287
  const executeNode = useExecutionStore((state) => state.executeNode);
297
288
  const stopNodeExecution = useExecutionStore((state) => state.stopNodeExecution);
298
289
  const handleGenerate = useCallback(() => {
299
- updateNodeData(nodeId, { status: import_types3.NodeStatusEnum.PROCESSING });
290
+ updateNodeData(nodeId, { status: NodeStatusEnum.PROCESSING });
300
291
  executeNode(nodeId);
301
292
  }, [nodeId, executeNode, updateNodeData]);
302
293
  const handleStop = useCallback(() => {
@@ -1,12 +1,9 @@
1
- import { useExecutionStore, useUIStore } from './chunk-CSUBLSKZ.mjs';
2
- import { require_dist } from './chunk-BJ3R5R32.mjs';
3
- import { __toESM } from './chunk-AC6TWLRT.mjs';
1
+ import { useExecutionStore, useUIStore } from './chunk-SQK4JDYY.mjs';
2
+ import { getNodesByCategory } from '@genfeedai/types';
4
3
  import { Bug, Trash2, X, ChevronDown, ChevronRight, Copy, PanelLeftClose, Search, GitBranch, ArrowLeftFromLine, ArrowRightToLine, Download, Eye, CheckCircle, Columns2, LayoutGrid, Subtitles, Pencil, Grid3X3, Maximize, Crop, Film, Scissors, Layers, Wand2, Maximize2, Navigation, AudioLines, Mic, Brain, Video, Sparkles, Puzzle, Volume2, FileVideo, FileText, MessageSquare, Image } from 'lucide-react';
5
4
  import { forwardRef, memo, useCallback, useState, useMemo } from 'react';
6
5
  import { jsx, jsxs } from 'react/jsx-runtime';
7
6
 
8
- // src/panels/NodePalette.tsx
9
- var import_types = __toESM(require_dist());
10
7
  var ICONS = {
11
8
  // Input
12
9
  Image,
@@ -105,7 +102,7 @@ function NodeCard({ type, label, description, icon, category }) {
105
102
  );
106
103
  }
107
104
  function CategorySection({ category, isExpanded, onToggle }) {
108
- const nodes = (0, import_types.getNodesByCategory)()[category];
105
+ const nodes = getNodesByCategory()[category];
109
106
  return /* @__PURE__ */ jsxs("div", { className: "border-b border-[var(--border)] last:border-0", children: [
110
107
  /* @__PURE__ */ jsxs(
111
108
  "button",
@@ -138,7 +135,7 @@ function NodePalette() {
138
135
  const [expandedCategories, setExpandedCategories] = useState(
139
136
  /* @__PURE__ */ new Set(["input"])
140
137
  );
141
- const nodesByCategory = useMemo(() => (0, import_types.getNodesByCategory)(), []);
138
+ const nodesByCategory = useMemo(() => getNodesByCategory(), []);
142
139
  const filteredNodes = useMemo(() => {
143
140
  if (!searchQuery.trim()) return null;
144
141
  const query = searchQuery.toLowerCase();