@genfeedai/workflow-ui 0.2.1 → 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 CHANGED
@@ -1,52 +1,30 @@
1
1
  # @genfeedai/workflow-ui
2
2
 
3
- Shared UI components for the Genfeed workflow editor built on React Flow.
3
+ Shared workflow editor UI components built on React Flow.
4
4
 
5
- ## Installation
5
+ ## Install
6
6
 
7
7
  ```bash
8
- npm install @genfeedai/workflow-ui
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
- ```typescript
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 { WorkflowProvider } from '@genfeedai/workflow-ui/provider';
17
+ import '@genfeedai/workflow-ui/styles';
25
18
  ```
26
19
 
27
- ### Subpath Exports
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
- ### Styles
22
+ - `@genfeedai/types`
23
+ - `@genfeedai/core`
44
24
 
45
- Import the stylesheet in your app:
25
+ ## Build Faster with Genfeed
46
26
 
47
- ```typescript
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-4VEN4UN7.mjs';
2
- import './chunk-WBR34V4L.mjs';
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-2JQSKIWR.mjs';
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-2JQSKIWR.mjs';
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-WBR34V4L.mjs';
2
- import { calculateWorkflowCost, formatCost } from './chunk-2JQSKIWR.mjs';
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 './chunk-OY7BRSGG.mjs';
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-4VEN4UN7.mjs';
2
- export { BaseNode, nodeTypes } from './chunk-WBR34V4L.mjs';
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-JT4Y5H3U.mjs';
7
- import './chunk-2JQSKIWR.mjs';
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-2JQSKIWR.mjs';
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-WBR34V4L.mjs';
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-JT4Y5H3U.mjs';
2
- import './chunk-2JQSKIWR.mjs';
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.1",
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/types": "workspace:*",
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",
@@ -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 };