flowstudio 0.0.19 → 0.0.22

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 (58) hide show
  1. package/dist/app_analytics.js +2 -1
  2. package/dist/app_analytics.js.map +1 -1
  3. package/dist/app_details.js +3 -2
  4. package/dist/app_details.js.map +1 -1
  5. package/dist/app_layout.js +1 -0
  6. package/dist/app_layout.js.map +1 -1
  7. package/dist/app_settings.js +2 -2
  8. package/dist/app_settings.js.map +1 -1
  9. package/dist/code.d.ts +1 -0
  10. package/dist/code.js +8 -0
  11. package/dist/code.js.map +1 -0
  12. package/dist/components/combo_box/style.css +10 -0
  13. package/dist/components/date_picker/style.css +204 -0
  14. package/dist/components/sheet/index.d.ts +1 -0
  15. package/dist/components/sheet/index.js +1 -1
  16. package/dist/components/sheet/index.js.map +1 -1
  17. package/dist/components/sheet/style.css +155 -0
  18. package/dist/constants.d.ts +6 -0
  19. package/dist/constants.js +7 -0
  20. package/dist/constants.js.map +1 -0
  21. package/dist/envs.js +26 -10
  22. package/dist/envs.js.map +1 -1
  23. package/dist/functions.js +39 -32
  24. package/dist/functions.js.map +1 -1
  25. package/dist/home.d.ts +1 -1
  26. package/dist/home.js +5 -3
  27. package/dist/home.js.map +1 -1
  28. package/dist/index.d.ts +9 -2
  29. package/dist/index.js +17 -17
  30. package/dist/index.js.map +1 -1
  31. package/dist/new_project.js +3 -2
  32. package/dist/new_project.js.map +1 -1
  33. package/dist/node.js +4 -3
  34. package/dist/node.js.map +1 -1
  35. package/dist/project_widget.js +1 -1
  36. package/dist/project_widget.js.map +1 -1
  37. package/dist/simulator.js +16 -14
  38. package/dist/simulator.js.map +1 -1
  39. package/dist/studio.css +19 -0
  40. package/dist/studio_pane.d.ts +2 -1
  41. package/dist/studio_pane.js +285 -120
  42. package/dist/studio_pane.js.map +1 -1
  43. package/dist/studio_pane_old.d.ts +1 -0
  44. package/dist/studio_pane_old.js +309 -0
  45. package/dist/studio_pane_old.js.map +1 -0
  46. package/dist/studio_pane_old_new.d.ts +1 -0
  47. package/dist/studio_pane_old_new.js +349 -0
  48. package/dist/studio_pane_old_new.js.map +1 -0
  49. package/dist/top_left_panel.js +2 -1
  50. package/dist/top_left_panel.js.map +1 -1
  51. package/dist/top_right_panel.js +4 -3
  52. package/dist/top_right_panel.js.map +1 -1
  53. package/dist/triggers.js +8 -7
  54. package/dist/triggers.js.map +1 -1
  55. package/package.json +2 -2
  56. package/dist/getcode.d.ts +0 -1
  57. package/dist/getcode.js +0 -8
  58. package/dist/getcode.js.map +0 -1
@@ -0,0 +1,309 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Box } from '@radix-ui/themes';
4
+ import { ReactFlow, useNodesState, useEdgesState, addEdge, Controls, Background, Panel, SmoothStepEdge, useReactFlow, reconnectEdge, useKeyPress } from '@xyflow/react';
5
+ import GNode, { FNode } from './node';
6
+ import ContextMenu from './context';
7
+ import { useConfigStore } from './zustand/store';
8
+ import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
9
+ import AppSettings from './app_settings';
10
+ import { useQuery } from '@tanstack/react-query';
11
+ import { v4 as uuidv4 } from 'uuid';
12
+ import TopRightPanel from './top_right_panel';
13
+ import TopCenterPanel from './top_center_panel';
14
+ import TopLeftPanel from './top_left_panel';
15
+ // import './studio.css';
16
+ import AppAnalytics from './app_analytics';
17
+ export default function StudioPane({ api_key, projectsRefetch, identifier, providers, provider }) {
18
+ const { appTheme, stateType } = useConfigStore();
19
+ const { data: project, status: projectStatus, refetch: projectRefetch } = useQuery({ queryKey: [`project_${identifier}`], queryFn: async () => {
20
+ const res = await fetch(`${process.env.BACKEND_ENDPOINT}/projects/${identifier}`, { headers: { "X-API-KEY": `${api_key}` } });
21
+ return res === null || res === void 0 ? void 0 : res.json();
22
+ }, enabled: !!identifier });
23
+ const { data: functions, refetch: functionsRefetch } = useQuery({ queryKey: [`project_${identifier}_functions`], queryFn: async () => {
24
+ const res = await fetch(`${process.env.BACKEND_ENDPOINT}/functions?project=${identifier}`, { headers: { "X-API-KEY": `${api_key}` } });
25
+ return res === null || res === void 0 ? void 0 : res.json();
26
+ }, enabled: !!identifier });
27
+ const { data: triggers, refetch: triggersRefetch } = useQuery({ queryKey: [`project_${identifier}_triggers`], queryFn: async () => {
28
+ const res = await fetch(`${process.env.BACKEND_ENDPOINT}/triggers?project=${identifier}`, { headers: { "X-API-KEY": `${api_key}` } });
29
+ return res === null || res === void 0 ? void 0 : res.json();
30
+ }, enabled: !!identifier });
31
+ const { data: envs, refetch: envsRefetch } = useQuery({ queryKey: [`project_${identifier}_envs`], queryFn: async () => {
32
+ const res = await fetch(`${process.env.BACKEND_ENDPOINT}/envs?project=${identifier}`, { headers: { "X-API-KEY": `${api_key}` } });
33
+ return res === null || res === void 0 ? void 0 : res.json();
34
+ }, enabled: !!identifier });
35
+ const { data: sessions, status: sessionsStatus, refetch: sessionsRefetch } = useQuery({ queryKey: [`project_${identifier}_sessions`], queryFn: async () => {
36
+ const res = await fetch(`${process.env.BACKEND_ENDPOINT}/sessions?project=${identifier}`, { headers: { "X-API-KEY": `${api_key}` } });
37
+ return res === null || res === void 0 ? void 0 : res.json();
38
+ }, enabled: !!identifier });
39
+ ////////////////// Nodes Management (React Flow) /////////////////////////////
40
+ const CustomSmoothstepEdge = ({ data, ...props }) => {
41
+ return _jsx(SmoothStepEdge, { ...props, data: data, style: { strokeWidth: 2 } });
42
+ };
43
+ const nodeTypes = useMemo(() => ({
44
+ gNode: (props) => { var _a; return (_jsx(GNode, { ...props, data: { ...props.data, functions: functions === null || functions === void 0 ? void 0 : functions.results, sessions: ((_a = sessions === null || sessions === void 0 ? void 0 : sessions.results) === null || _a === void 0 ? void 0 : _a.filter((session) => session.node_id === props.id)) || [] } })); },
45
+ fNode: (props) => { var _a; return (_jsx(FNode, { ...props, data: { ...props.data, functions: functions === null || functions === void 0 ? void 0 : functions.results, sessions: ((_a = sessions === null || sessions === void 0 ? void 0 : sessions.results) === null || _a === void 0 ? void 0 : _a.filter((session) => session.node_id === props.id)) || [] } })); }
46
+ }), [project === null || project === void 0 ? void 0 : project.identifier, functions]);
47
+ const edgeTypes = useMemo(() => ({ default: memo((props) => (_jsx(CustomSmoothstepEdge, { ...props, deletable: true }))) }), []);
48
+ const [nodes, setNodes, onNodesChange] = useNodesState((project === null || project === void 0 ? void 0 : project.nodes) || []);
49
+ const [edges, setEdges, onEdgesChange] = useEdgesState((project === null || project === void 0 ? void 0 : project.edges) || []);
50
+ const [rfInstance, setRfInstance] = useState(null);
51
+ const [saving, setSaving] = useState(false);
52
+ const { setViewport, screenToFlowPosition, getNodes, getEdges } = useReactFlow();
53
+ const isReconnectingRef = useRef(false);
54
+ const [currentState, setCurrentState] = useState(null);
55
+ const [history, setHistory] = useState([]);
56
+ const [historyIndex, setHistoryIndex] = useState(0);
57
+ // Key Presses
58
+ const cmdAndSPressed = useKeyPress(['Meta+s', 'Strg+s']);
59
+ const cmdAndZPressed = useKeyPress(['Meta+z', 'Strg+z']);
60
+ const cmdAndYPressed = useKeyPress(['Meta+y', 'Strg+y']);
61
+ ////////////// onMount and Initial Load //////////////
62
+ useEffect(() => {
63
+ }, []);
64
+ useEffect(() => {
65
+ var _a, _b, _c;
66
+ if (project === null || project === void 0 ? void 0 : project.flow_draft) {
67
+ const { x = 0, y = 0, zoom = 1 } = ((_a = project === null || project === void 0 ? void 0 : project.flow_draft) === null || _a === void 0 ? void 0 : _a.viewport) || {};
68
+ // const updatedNodes = project?.flow_draft?.nodes?.map((val: any) => {
69
+ // return { ...val, data: { ...val.data,
70
+ // },};
71
+ // }) || [];
72
+ setNodes(((_b = project === null || project === void 0 ? void 0 : project.flow_draft) === null || _b === void 0 ? void 0 : _b.nodes) || []);
73
+ setEdges(((_c = project === null || project === void 0 ? void 0 : project.flow_draft) === null || _c === void 0 ? void 0 : _c.edges) || []);
74
+ setViewport({ x, y, zoom });
75
+ }
76
+ }, [project]);
77
+ useEffect(() => {
78
+ setEdges((eds) => eds.map((edge) => ({ ...edge, animated: stateType === 'sessions', })));
79
+ }, [stateType, setEdges]);
80
+ //////////////////////////// Connections /////////////////////////////////
81
+ const onConnect = useCallback((connection) => {
82
+ setEdges((eds) => {
83
+ // Remove any existing edges from this source handle
84
+ const filteredEdges = eds.filter((edge) => !(edge.source === connection.source &&
85
+ edge.sourceHandle === connection.sourceHandle));
86
+ // Generate a unique ID for the new edge
87
+ const newEdgeId = `e${connection.source}-${connection.sourceHandle}-${connection.target}-${connection.targetHandle}`;
88
+ // Add the new connection with the unique ID
89
+ // console.log(`on connect edge: ${connection}`)
90
+ return addEdge({ ...connection, id: newEdgeId }, filteredEdges);
91
+ });
92
+ }, [setEdges]);
93
+ const onConnectStart = useCallback(() => {
94
+ // isReconnectingRef.current = false;
95
+ }, []);
96
+ const onConnectEnd = useCallback((event, connectionState) => {
97
+ // const reactFlowWrapper = document.querySelector('.react-flow'); // or your actual wrapper class
98
+ if (!connectionState.isValid && !connectionState.toNode) {
99
+ if (!connectionState.toNode && !isReconnectingRef.current) {
100
+ const { clientX, clientY } = 'changedTouches' in event ? event.changedTouches[0] : event;
101
+ const newId = `node-${uuidv4()}`;
102
+ setNodes((prevNodes) => {
103
+ const existingLabels = new Set(prevNodes.map((node) => node.data.label));
104
+ let newLabel = `node_label`;
105
+ let counter = 1;
106
+ // Ensure the label is unique by checking against existing labels
107
+ while (existingLabels.has(newLabel)) {
108
+ newLabel = `node_label_${counter++}`;
109
+ }
110
+ return [
111
+ ...prevNodes,
112
+ {
113
+ id: newId,
114
+ type: 'gNode',
115
+ position: screenToFlowPosition({
116
+ x: clientX,
117
+ y: clientY,
118
+ }),
119
+ data: {
120
+ label: newLabel,
121
+ message: ``, // Add a more descriptive message
122
+ type: 'end',
123
+ response: {
124
+ validation: 'alpha-numeric',
125
+ source: 'manual',
126
+ inputs: [{ id: 1 }],
127
+ },
128
+ },
129
+ }
130
+ ];
131
+ });
132
+ setEdges((eds) => eds.concat({
133
+ id: `e${connectionState.fromNode.id}-${newId}`,
134
+ source: connectionState.fromNode.id,
135
+ sourceHandle: connectionState.fromHandle.id,
136
+ target: newId,
137
+ }));
138
+ }
139
+ }
140
+ else if (connectionState.isValid) {
141
+ // valid connection, do nothing
142
+ }
143
+ else {
144
+ // invalid connection, remove edge
145
+ setEdges((eds) => eds.filter((e) => !(e.source === connectionState.fromNode.id &&
146
+ e.sourceHandle === connectionState.fromHandle.id)));
147
+ }
148
+ }, [screenToFlowPosition, setEdges, setNodes]);
149
+ const onNodesDelete = useCallback((nodesToDelete) => {
150
+ // setNodes((nds) => nds.filter((n) => !nodesToDelete.some((d) => d.id === n.id)));
151
+ }, []);
152
+ const onEdgesDelete = useCallback((edgesToDelete) => {
153
+ setEdges((eds) => eds.filter((e) => !edgesToDelete.some((d) => d.id === e.id)));
154
+ }, []);
155
+ const onReconnect = useCallback((oldEdge, newConnection) => {
156
+ if (!newConnection.target) {
157
+ // If no target, remove the edge
158
+ setEdges((eds) => eds.filter((e) => e.id !== oldEdge.id));
159
+ }
160
+ else {
161
+ // Otherwise, update the edge
162
+ setEdges((eds) => reconnectEdge(oldEdge, newConnection, eds));
163
+ }
164
+ }, [setEdges]);
165
+ const onReconnectStart = useCallback(() => {
166
+ isReconnectingRef.current = true;
167
+ }, []);
168
+ const onReconnectEnd = useCallback((event, edge) => {
169
+ // Remove the edge if the reconnection was not successful
170
+ setEdges((eds) => eds.filter((e) => e.id !== edge.id));
171
+ isReconnectingRef.current = false;
172
+ }, [setEdges]);
173
+ ///////////////////////////////Save//////////////////////////////////////////
174
+ const onSave = useCallback(async () => {
175
+ if (rfInstance) {
176
+ setSaving(true);
177
+ const flow = rfInstance.toObject();
178
+ // alert(JSON.stringify(flow))
179
+ if (!identifier)
180
+ return;
181
+ try {
182
+ const response = await fetch(`${process.env.BACKEND_ENDPOINT}/projects/${identifier}`, { method: 'PATCH', headers: { "X-API-KEY": `${api_key}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ flow_draft: flow }) });
183
+ if (!response.ok) {
184
+ setSaving(false);
185
+ // throw new Error('Failed to save flow draft');
186
+ }
187
+ setSaving(false);
188
+ // const result = await response.json();
189
+ // console.log('Save successful:', result);
190
+ }
191
+ catch (error) {
192
+ setSaving(false);
193
+ console.error('Error saving nodes and edges:', error);
194
+ }
195
+ }
196
+ }, [rfInstance]);
197
+ useEffect(() => {
198
+ if (cmdAndSPressed) {
199
+ onSave();
200
+ }
201
+ }, [cmdAndSPressed, onSave]);
202
+ ///////////////// Undo and Redo ///////////////////////
203
+ const handleChange = (newState) => {
204
+ // console.log('handleChange', newState);
205
+ if (historyIndex < history.length - 1) {
206
+ setHistory((prevHistory) => prevHistory.slice(0, historyIndex + 1));
207
+ }
208
+ // Add new state to history
209
+ setHistory((prevHistory) => [...prevHistory, newState]);
210
+ setHistoryIndex((prevIndex) => prevIndex + 1);
211
+ setCurrentState(newState);
212
+ };
213
+ // Undo function
214
+ const undo = () => {
215
+ if (historyIndex > 0) {
216
+ const prevIndex = historyIndex - 1;
217
+ setHistoryIndex(prevIndex);
218
+ setCurrentState(history[prevIndex]);
219
+ setNodes(history[prevIndex].nodes);
220
+ setEdges(history[prevIndex].edges);
221
+ setViewport(history[prevIndex].viewport);
222
+ }
223
+ };
224
+ // Redo function
225
+ const redo = () => {
226
+ if (historyIndex < history.length - 1) {
227
+ const nextIndex = historyIndex + 1;
228
+ setHistoryIndex(nextIndex);
229
+ setCurrentState(history[nextIndex]);
230
+ setNodes(history[nextIndex].nodes);
231
+ setEdges(history[nextIndex].edges);
232
+ setViewport(history[nextIndex].viewport);
233
+ }
234
+ };
235
+ useEffect(() => {
236
+ if (cmdAndZPressed) {
237
+ undo();
238
+ }
239
+ if (cmdAndYPressed) {
240
+ redo();
241
+ }
242
+ }, [cmdAndZPressed, cmdAndYPressed]);
243
+ ////////////////// For Context Menu /////////////////////////////
244
+ const [showContextMenu, setShowContextMenu] = useState(false);
245
+ const [contextMenuPosition, setContextMenuPosition] = useState({ x: 0, y: 0 });
246
+ const handleContextMenu = (event) => {
247
+ event.preventDefault();
248
+ const clickX = event.clientX;
249
+ const clickY = event.clientY;
250
+ setContextMenuPosition({ x: clickX, y: clickY });
251
+ setShowContextMenu(true);
252
+ };
253
+ const createNode = (type) => {
254
+ if ((contextMenuPosition === null || contextMenuPosition === void 0 ? void 0 : contextMenuPosition.x) != null && (contextMenuPosition === null || contextMenuPosition === void 0 ? void 0 : contextMenuPosition.y) != null) {
255
+ setNodes((prevNodes) => {
256
+ const newId = `node-${uuidv4()}`;
257
+ const existingLabels = new Set(prevNodes.map((node) => node.data.label));
258
+ let newLabel = `${type}_label`;
259
+ let counter = 1;
260
+ // Ensure the label is unique by checking against existing labels
261
+ while (existingLabels.has(newLabel)) {
262
+ newLabel = `${type}_label_${counter++}`;
263
+ }
264
+ return [
265
+ ...prevNodes,
266
+ {
267
+ id: newId,
268
+ type: type === 'function' ? 'fNode' : 'gNode',
269
+ position: { x: contextMenuPosition.x, y: contextMenuPosition.y },
270
+ data: type === 'function'
271
+ ? { label: newLabel, function: '' }
272
+ : { label: newLabel, message: '', type, response: { validation: 'alpha-numeric', source: 'manual', inputs: [{ id: 1 }] } }
273
+ }
274
+ ];
275
+ });
276
+ // Reset context menu position to avoid reusing the same position
277
+ setContextMenuPosition({ x: 0, y: 0 });
278
+ }
279
+ };
280
+ //////////////////// Auto Save //////////////////
281
+ useEffect(() => {
282
+ // Only save if there's an rfInstance and identifier
283
+ if (rfInstance && identifier) {
284
+ // Add a small debounce to prevent too frequent saves
285
+ const timer = setTimeout(() => { onSave(); }, 1000); // 1 second debounce
286
+ handleChange({ nodes, edges, viewport: rfInstance.getViewport() });
287
+ return () => clearTimeout(timer);
288
+ }
289
+ }, [nodes, edges]);
290
+ ///////////////// Delete Key Code ////////////////
291
+ const onSelectionChange = useCallback(({ nodes, edges }) => {
292
+ // console.log('Selected nodes:', nodes)
293
+ // console.log('Selected edges:', edges)
294
+ }, []);
295
+ useEffect(() => {
296
+ const handleKeyDown = (event) => {
297
+ if (event.key === 'Delete' || event.key === 'Backspace') {
298
+ // setNodes((nds) => nds.filter((node) => !node.selected))
299
+ setEdges((eds) => eds.filter((edge) => !edge.selected));
300
+ }
301
+ };
302
+ window.addEventListener('keydown', handleKeyDown);
303
+ return () => window.removeEventListener('keydown', handleKeyDown);
304
+ }, [setNodes, setEdges]);
305
+ return (_jsxs(Box, { position: 'absolute', top: '0', right: '0', bottom: '0px', left: '0', style: {}, children: [_jsxs(ReactFlow, { nodes: nodes, edges: edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onConnect: onConnect, nodeTypes: nodeTypes, edgeTypes: edgeTypes, onNodesDelete: onNodesDelete, onEdgesDelete: onEdgesDelete, onSelectionChange: onSelectionChange, onConnectEnd: onConnectEnd, onConnectStart: onConnectStart, onReconnect: onReconnect, onReconnectStart: onReconnectStart, onReconnectEnd: onReconnectEnd, onInit: setRfInstance, snapToGrid: true, fitView: true, minZoom: 0.1, maxZoom: 3, colorMode: appTheme, onPaneContextMenu: handleContextMenu, deleteKeyCode: null,
306
+ // viewport={project?.flow_draft?.viewport}
307
+ attributionPosition: "bottom-right", children: [_jsx(Controls, {}), _jsx(Background, { gap: 12, size: 1 }), _jsxs(Panel, { position: "top-center", children: [" ", _jsx(TopCenterPanel, { projectId: identifier })] }), _jsxs(Panel, { position: "top-left", children: [" ", _jsx(TopLeftPanel, { api_key: api_key, projectId: identifier, createNode: createNode, onSave: onSave, saving: saving, rfInstance: rfInstance, redo: redo, undo: undo, historyIndex: historyIndex })] }), _jsxs(Panel, { position: "top-right", children: [" ", _jsx(TopRightPanel, { api_key: api_key, projectId: identifier, createNode: createNode, onSave: onSave, saving: saving, rfInstance: rfInstance })] })] }), _jsx(AppAnalytics, { api_key: api_key, project: project, sessions: sessions, sessionsStatus: sessionsStatus, refetch: sessionsRefetch }), _jsx(AppSettings, { api_key: api_key, project: project, projectsRefetch: projectsRefetch, providers: providers, provider: provider, triggers: triggers, triggersRefetch: triggersRefetch, functions: functions, functionsRefetch: functionsRefetch, envs: envs, envsRefetch: envsRefetch }), _jsx(ContextMenu, { api_key: api_key, open: showContextMenu, setOpen: setShowContextMenu, createNode: createNode, menuPosition: contextMenuPosition })] }));
308
+ }
309
+ //# sourceMappingURL=studio_pane_old.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio_pane_old.js","sourceRoot":"","sources":["../src/studio_pane_old.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function StudioPane({ api_key, projectsRefetch, identifier, providers, provider, theme }: any): import("react/jsx-runtime").JSX.Element;