@genfeedai/workflow-ui 0.2.2 → 0.2.3
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 +11 -33
- package/dist/canvas.mjs +3 -4
- package/dist/{chunk-JT4Y5H3U.mjs → chunk-FMJPFB6W.mjs} +1 -1
- package/dist/{chunk-4VEN4UN7.mjs → chunk-HWVTD2LC.mjs} +2 -2
- package/dist/{chunk-2JQSKIWR.mjs → chunk-N5NJZTK4.mjs} +1 -2
- package/dist/{chunk-WBR34V4L.mjs → chunk-XPZAHIWY.mjs} +1 -1
- package/dist/index.mjs +4 -5
- package/dist/lib.mjs +1 -2
- package/dist/nodes.mjs +1 -2
- package/dist/toolbar.mjs +2 -3
- package/package.json +3 -3
- package/dist/chunk-OY7BRSGG.mjs +0 -60
package/README.md
CHANGED
|
@@ -1,52 +1,30 @@
|
|
|
1
1
|
# @genfeedai/workflow-ui
|
|
2
2
|
|
|
3
|
-
Shared UI components
|
|
3
|
+
Shared workflow editor UI components built on React Flow.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm
|
|
9
|
-
# or
|
|
10
|
-
bun add @genfeedai/workflow-ui
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Peer Dependencies
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install @xyflow/react react react-dom zustand zundo next
|
|
8
|
+
npm i @genfeedai/workflow-ui
|
|
17
9
|
```
|
|
18
10
|
|
|
19
11
|
## Usage
|
|
20
12
|
|
|
21
|
-
```
|
|
13
|
+
```ts
|
|
22
14
|
import { WorkflowCanvas } from '@genfeedai/workflow-ui/canvas';
|
|
15
|
+
import { WorkflowUIProvider } from '@genfeedai/workflow-ui/provider';
|
|
23
16
|
import { useWorkflowStore } from '@genfeedai/workflow-ui/stores';
|
|
24
|
-
import
|
|
17
|
+
import '@genfeedai/workflow-ui/styles';
|
|
25
18
|
```
|
|
26
19
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
| Export | Description |
|
|
30
|
-
|--------|-------------|
|
|
31
|
-
| `@genfeedai/workflow-ui` | Main entry (re-exports all) |
|
|
32
|
-
| `@genfeedai/workflow-ui/canvas` | Workflow canvas components |
|
|
33
|
-
| `@genfeedai/workflow-ui/nodes` | Node type components |
|
|
34
|
-
| `@genfeedai/workflow-ui/panels` | Side panels (inspector, settings) |
|
|
35
|
-
| `@genfeedai/workflow-ui/toolbar` | Toolbar components |
|
|
36
|
-
| `@genfeedai/workflow-ui/hooks` | React hooks |
|
|
37
|
-
| `@genfeedai/workflow-ui/stores` | Zustand stores |
|
|
38
|
-
| `@genfeedai/workflow-ui/provider` | Context providers |
|
|
39
|
-
| `@genfeedai/workflow-ui/ui` | Primitive UI components |
|
|
40
|
-
| `@genfeedai/workflow-ui/lib` | Utility functions |
|
|
41
|
-
| `@genfeedai/workflow-ui/styles` | CSS stylesheet |
|
|
20
|
+
## Related Packages
|
|
42
21
|
|
|
43
|
-
|
|
22
|
+
- `@genfeedai/types`
|
|
23
|
+
- `@genfeedai/core`
|
|
44
24
|
|
|
45
|
-
|
|
25
|
+
## Build Faster with Genfeed
|
|
46
26
|
|
|
47
|
-
|
|
48
|
-
import '@genfeedai/workflow-ui/styles';
|
|
49
|
-
```
|
|
27
|
+
Embed the workflow UI in your own product, or use Genfeed out of the box at [https://genfeed.ai](https://genfeed.ai).
|
|
50
28
|
|
|
51
29
|
## License
|
|
52
30
|
|
package/dist/canvas.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export { ConnectionDropMenu, EdgeToolbar, EditableEdge, GroupOverlay, HelperLines, NodeSearch, PauseEdge, ReferenceEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { ConnectionDropMenu, EdgeToolbar, EditableEdge, GroupOverlay, HelperLines, NodeSearch, PauseEdge, ReferenceEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-HWVTD2LC.mjs';
|
|
2
|
+
import './chunk-XPZAHIWY.mjs';
|
|
3
3
|
import './chunk-ZJD5WMR3.mjs';
|
|
4
4
|
import './chunk-6PSJTBNV.mjs';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-OY7BRSGG.mjs';
|
|
5
|
+
import './chunk-N5NJZTK4.mjs';
|
|
7
6
|
import './chunk-ZD2BADZO.mjs';
|
|
8
7
|
import './chunk-GWBGK3KL.mjs';
|
|
9
8
|
import './chunk-7SKSRSS7.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { calculateWorkflowCost, formatCost } from './chunk-
|
|
1
|
+
import { calculateWorkflowCost, formatCost } from './chunk-N5NJZTK4.mjs';
|
|
2
2
|
import { useSettingsStore, useExecutionStore, useUIStore } from './chunk-LT3ZJJL6.mjs';
|
|
3
3
|
import { useWorkflowStore } from './chunk-R727OFBR.mjs';
|
|
4
4
|
import { X, CloudOff, Loader2, Cloud, Check, ChevronDown, SaveAll, Save, FolderOpen, Bug, LayoutGrid, Undo2, Redo2, Settings, AlertCircle, Minus, Plus, Square, Play, ChevronUp, PlayCircle, RotateCcw, DollarSign, MoreVertical } from 'lucide-react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { nodeTypes, NodeDetailModal } from './chunk-
|
|
2
|
-
import { calculateWorkflowCost, formatCost } from './chunk-
|
|
1
|
+
import { nodeTypes, NodeDetailModal } from './chunk-XPZAHIWY.mjs';
|
|
2
|
+
import { calculateWorkflowCost, formatCost } from './chunk-N5NJZTK4.mjs';
|
|
3
3
|
import { useContextMenu, useCanvasKeyboardShortcuts, ContextMenu } from './chunk-ZD2BADZO.mjs';
|
|
4
4
|
import { useUIStore, useSettingsStore, useExecutionStore } from './chunk-LT3ZJJL6.mjs';
|
|
5
5
|
import { useWorkflowStore, getHandleType } from './chunk-R727OFBR.mjs';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { PRICING, DEFAULT_VIDEO_DURATION, IMAGE_NODE_TYPES, VIDEO_NODE_TYPES, LUMA_NODE_TYPES, TOPAZ_NODE_TYPES } from '
|
|
1
|
+
import { PRICING, DEFAULT_VIDEO_DURATION, IMAGE_NODE_TYPES, VIDEO_NODE_TYPES, LUMA_NODE_TYPES, TOPAZ_NODE_TYPES } from '@genfeedai/core';
|
|
2
2
|
|
|
3
|
-
// src/lib/costCalculator.ts
|
|
4
3
|
function isNodeType(type, list) {
|
|
5
4
|
return list.includes(type);
|
|
6
5
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Checkbox, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Slider, Label, Input, GridPositionSelector, ComparisonSlider } from './chunk-ZJD5WMR3.mjs';
|
|
2
2
|
import { generateHandlesFromSchema, DEFAULT_IMAGE_MODEL, IMAGE_MODEL_MAP, IMAGE_MODEL_ID_MAP, IMAGE_MODELS, LIPSYNC_MODELS, LIPSYNC_SYNC_MODES, DEFAULT_LLM_MODEL, LLM_MODEL_MAP, LLM_MODEL_ID_MAP, LLM_MODELS, DEFAULT_VIDEO_MODEL, VIDEO_MODEL_MAP, VIDEO_MODEL_ID_MAP, VIDEO_MODELS, EASING_PRESETS, CubicBezierEditor, getMediaFromNode } from './chunk-6PSJTBNV.mjs';
|
|
3
|
-
import { LUMA_ASPECT_RATIOS } from './chunk-OY7BRSGG.mjs';
|
|
4
3
|
import { useNodeExecution, useCanGenerate, useModelSelection, useAutoLoadModelSchema, useAIGenNode, useAIGenNodeHeader, useMediaUpload, usePromptAutocomplete, useRequiredInputs } from './chunk-GWBGK3KL.mjs';
|
|
5
4
|
import { Button } from './chunk-7SKSRSS7.mjs';
|
|
6
5
|
import { getImageDimensions, getVideoMetadata } from './chunk-EFXQT23N.mjs';
|
|
@@ -18,6 +17,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
18
17
|
import Image4 from 'next/image';
|
|
19
18
|
import { createPortal } from 'react-dom';
|
|
20
19
|
import { useShallow } from 'zustand/react/shallow';
|
|
20
|
+
import { LUMA_ASPECT_RATIOS } from '@genfeedai/core';
|
|
21
21
|
|
|
22
22
|
var NodeErrorBoundary = class extends Component {
|
|
23
23
|
constructor(props) {
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
export { ConnectionDropMenu, DEFAULT_GROUP_COLORS, EdgeToolbar, EditableEdge, GROUP_COLORS, GlobalImageHistory, GroupOverlay, HelperLines, NodeSearch, NotificationToast, PauseEdge, ReferenceEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-
|
|
2
|
-
export { BaseNode, nodeTypes } from './chunk-
|
|
1
|
+
export { ConnectionDropMenu, DEFAULT_GROUP_COLORS, EdgeToolbar, EditableEdge, GROUP_COLORS, GlobalImageHistory, GroupOverlay, HelperLines, NodeSearch, NotificationToast, PauseEdge, ReferenceEdge, ShortcutHelpModal, WorkflowCanvas } from './chunk-HWVTD2LC.mjs';
|
|
2
|
+
export { BaseNode, nodeTypes } from './chunk-XPZAHIWY.mjs';
|
|
3
3
|
import './chunk-ZJD5WMR3.mjs';
|
|
4
4
|
import './chunk-6PSJTBNV.mjs';
|
|
5
5
|
export { DebugPanel, NodePalette, PanelContainer } from './chunk-OQREHJXK.mjs';
|
|
6
|
-
export { BottomBar, CostIndicator, OverflowMenu, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-OY7BRSGG.mjs';
|
|
6
|
+
export { BottomBar, CostIndicator, OverflowMenu, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown } from './chunk-FMJPFB6W.mjs';
|
|
7
|
+
import './chunk-N5NJZTK4.mjs';
|
|
9
8
|
export { useCommentNavigation } from './chunk-7H3WJJYS.mjs';
|
|
10
9
|
export { useCanvasKeyboardShortcuts } from './chunk-ZD2BADZO.mjs';
|
|
11
10
|
export { useAIGenNode, useAIGenNodeHeader, useAutoLoadModelSchema, useCanGenerate, useMediaUpload, useModelSelection, useNodeExecution, usePromptAutocomplete, useRequiredInputs } from './chunk-GWBGK3KL.mjs';
|
package/dist/lib.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { easing, getEasingFunction } from './chunk-6PSJTBNV.mjs';
|
|
2
2
|
export { CubicBezierEditor, DEFAULT_CUSTOM_BEZIER, DEFAULT_IMAGE_MODEL, DEFAULT_LIPSYNC_MODEL, DEFAULT_LLM_MODEL, DEFAULT_VIDEO_MODEL, EASING_BEZIER_MAP, EASING_PRESETS, IMAGE_MODELS, IMAGE_MODEL_ID_MAP, IMAGE_MODEL_MAP, LIPSYNC_MODELS, LIPSYNC_SYNC_MODES, LLM_MODELS, LLM_MODEL_ID_MAP, LLM_MODEL_MAP, PRESET_BEZIERS, VIDEO_MODELS, VIDEO_MODEL_ID_MAP, VIDEO_MODEL_MAP, applySpeedCurve, createAsymmetricEase, createBezierEasing, easing, evaluateBezier, generateHandlesFromSchema, getAllEasingNames, getEasingBezier, getEasingDisplayName, getEasingFunction, getImageModelLabel, getLLMModelLabel, getLipSyncModelLabel, getMediaFromNode, getPresetBezier, getVideoModelLabel, isSchemaHandle, lipSyncModelSupportsImage } from './chunk-6PSJTBNV.mjs';
|
|
3
|
-
export { calculateWorkflowCost, formatCost } from './chunk-
|
|
4
|
-
import './chunk-OY7BRSGG.mjs';
|
|
3
|
+
export { calculateWorkflowCost, formatCost } from './chunk-N5NJZTK4.mjs';
|
|
5
4
|
export { CONNECTION_FIELDS, extractEnumValues, getImageDimensions, getSchemaDefaults, getVideoMetadata, supportsImageInput, validateRequiredSchemaFields } from './chunk-EFXQT23N.mjs';
|
|
6
5
|
|
|
7
6
|
// src/lib/speedCurve.ts
|
package/dist/nodes.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export { AnimationNode, AnnotationNode, AudioInputNode, BaseNode, DownloadNode, ImageCompareNode, ImageGenNode, ImageGridSplitNode, ImageInputNode, LLMNode, LipSyncNode, MotionControlNode, NodeDetailModal, OutputGalleryNode, OutputNode, PromptConstructorNode, PromptNode, ReframeNode, ResizeNode, SubtitleNode, TextToSpeechNode, TranscribeNode, UpscaleNode, VideoFrameExtractNode, VideoGenNode, VideoInputNode, VideoStitchNode, VideoTrimNode, VoiceChangeNode, WorkflowInputNode, WorkflowOutputNode, WorkflowRefNode, nodeTypes, setWorkflowRefApi } from './chunk-
|
|
1
|
+
export { AnimationNode, AnnotationNode, AudioInputNode, BaseNode, DownloadNode, ImageCompareNode, ImageGenNode, ImageGridSplitNode, ImageInputNode, LLMNode, LipSyncNode, MotionControlNode, NodeDetailModal, OutputGalleryNode, OutputNode, PromptConstructorNode, PromptNode, ReframeNode, ResizeNode, SubtitleNode, TextToSpeechNode, TranscribeNode, UpscaleNode, VideoFrameExtractNode, VideoGenNode, VideoInputNode, VideoStitchNode, VideoTrimNode, VoiceChangeNode, WorkflowInputNode, WorkflowOutputNode, WorkflowRefNode, nodeTypes, setWorkflowRefApi } from './chunk-XPZAHIWY.mjs';
|
|
2
2
|
import './chunk-ZJD5WMR3.mjs';
|
|
3
3
|
import './chunk-6PSJTBNV.mjs';
|
|
4
|
-
import './chunk-OY7BRSGG.mjs';
|
|
5
4
|
import './chunk-GWBGK3KL.mjs';
|
|
6
5
|
import './chunk-7SKSRSS7.mjs';
|
|
7
6
|
import './chunk-EFXQT23N.mjs';
|
package/dist/toolbar.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { BottomBar, CostIndicator, OverflowMenu, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-OY7BRSGG.mjs';
|
|
1
|
+
export { BottomBar, CostIndicator, OverflowMenu, SaveAsDialog, SaveIndicator, Toolbar, ToolbarDropdown } from './chunk-FMJPFB6W.mjs';
|
|
2
|
+
import './chunk-N5NJZTK4.mjs';
|
|
4
3
|
import './chunk-LDN7IX4Y.mjs';
|
|
5
4
|
import './chunk-LT3ZJJL6.mjs';
|
|
6
5
|
import './chunk-R727OFBR.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genfeedai/workflow-ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"description": "Shared UI components for Genfeed workflow editor",
|
|
@@ -75,7 +75,8 @@
|
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@dagrejs/dagre": "^2.0.4",
|
|
78
|
-
"@genfeedai/
|
|
78
|
+
"@genfeedai/core": "^0.2.1",
|
|
79
|
+
"@genfeedai/types": "^0.2.2",
|
|
79
80
|
"@radix-ui/react-checkbox": "^1.1.4",
|
|
80
81
|
"@radix-ui/react-label": "^2.1.2",
|
|
81
82
|
"@radix-ui/react-select": "^2.1.6",
|
|
@@ -88,7 +89,6 @@
|
|
|
88
89
|
"tailwind-merge": "^3.4.0"
|
|
89
90
|
},
|
|
90
91
|
"devDependencies": {
|
|
91
|
-
"@genfeedai/core": "workspace:*",
|
|
92
92
|
"@testing-library/jest-dom": "6.6.3",
|
|
93
93
|
"@testing-library/react": "16.2.0",
|
|
94
94
|
"@types/node": "^25.2.3",
|
package/dist/chunk-OY7BRSGG.mjs
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// ../core/dist/index.mjs
|
|
2
|
-
var PRICING = {
|
|
3
|
-
// Image generation (per image)
|
|
4
|
-
"nano-banana": 0.039,
|
|
5
|
-
"nano-banana-pro": {
|
|
6
|
-
"1K": 0.15,
|
|
7
|
-
"2K": 0.15,
|
|
8
|
-
"4K": 0.3
|
|
9
|
-
},
|
|
10
|
-
// Legacy aliases
|
|
11
|
-
"imagen-4-fast": 0.039,
|
|
12
|
-
"imagen-4": 0.15,
|
|
13
|
-
// Video generation (per second)
|
|
14
|
-
"veo-3.1-fast": { withAudio: 0.15, withoutAudio: 0.1 },
|
|
15
|
-
"veo-3.1": { withAudio: 0.4, withoutAudio: 0.2 },
|
|
16
|
-
// Legacy aliases
|
|
17
|
-
"veo-3-fast": { withAudio: 0.15, withoutAudio: 0.1 },
|
|
18
|
-
"veo-3": { withAudio: 0.4, withoutAudio: 0.2 },
|
|
19
|
-
// LLM (per token, derived from $9.50/million)
|
|
20
|
-
llama: 95e-7,
|
|
21
|
-
// Luma Reframe
|
|
22
|
-
"luma-reframe-image": {
|
|
23
|
-
"photon-flash-1": 0.01,
|
|
24
|
-
"photon-1": 0.03
|
|
25
|
-
},
|
|
26
|
-
"luma-reframe-video": 0.06,
|
|
27
|
-
// per second
|
|
28
|
-
// Topaz Upscale (tiered by megapixels)
|
|
29
|
-
"topaz-image-upscale": [
|
|
30
|
-
{ maxMP: 1, price: 0.05 },
|
|
31
|
-
{ maxMP: 4, price: 0.08 },
|
|
32
|
-
{ maxMP: 9, price: 0.16 },
|
|
33
|
-
{ maxMP: 16, price: 0.27 },
|
|
34
|
-
{ maxMP: 25, price: 0.41 },
|
|
35
|
-
{ maxMP: Infinity, price: 0.82 }
|
|
36
|
-
],
|
|
37
|
-
// Topaz Video (per 5 seconds based on resolution and fps)
|
|
38
|
-
"topaz-video-upscale": {
|
|
39
|
-
"720p-15": 0.014,
|
|
40
|
-
"720p-24": 0.022,
|
|
41
|
-
"720p-30": 0.027,
|
|
42
|
-
"720p-60": 0.054,
|
|
43
|
-
"1080p-15": 0.051,
|
|
44
|
-
"1080p-24": 0.081,
|
|
45
|
-
"1080p-30": 0.101,
|
|
46
|
-
"1080p-60": 0.203,
|
|
47
|
-
"4k-15": 0.187,
|
|
48
|
-
"4k-24": 0.299,
|
|
49
|
-
"4k-30": 0.373,
|
|
50
|
-
"4k-60": 0.747
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
var IMAGE_NODE_TYPES = ["imageGen", "image-gen", "ImageGenNode"];
|
|
54
|
-
var VIDEO_NODE_TYPES = ["videoGen", "video-gen", "VideoGenNode"];
|
|
55
|
-
var LUMA_NODE_TYPES = ["reframe", "lumaReframeImage", "lumaReframeVideo"];
|
|
56
|
-
var TOPAZ_NODE_TYPES = ["upscale", "topazImageUpscale", "topazVideoUpscale"];
|
|
57
|
-
var DEFAULT_VIDEO_DURATION = 8;
|
|
58
|
-
var LUMA_ASPECT_RATIOS = ["1:1", "3:4", "4:3", "9:16", "16:9", "9:21", "21:9"];
|
|
59
|
-
|
|
60
|
-
export { DEFAULT_VIDEO_DURATION, IMAGE_NODE_TYPES, LUMA_ASPECT_RATIOS, LUMA_NODE_TYPES, PRICING, TOPAZ_NODE_TYPES, VIDEO_NODE_TYPES };
|