flowstudio 0.0.14 → 0.0.15

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 (131) hide show
  1. package/dist/ai_creator.d.ts +1 -0
  2. package/dist/ai_creator.js +140 -0
  3. package/dist/ai_creator.js.map +1 -0
  4. package/dist/app_analytics.d.ts +1 -0
  5. package/dist/app_analytics.js +76 -0
  6. package/dist/app_analytics.js.map +1 -0
  7. package/dist/app_details.d.ts +1 -0
  8. package/dist/app_details.js +84 -0
  9. package/dist/app_details.js.map +1 -0
  10. package/dist/app_layout.js +11 -0
  11. package/dist/app_layout.js.map +1 -0
  12. package/dist/app_settings.d.ts +1 -0
  13. package/dist/app_settings.js +15 -0
  14. package/dist/app_settings.js.map +1 -0
  15. package/dist/components/combo_box/index.d.ts +1 -0
  16. package/dist/components/combo_box/index.js +118 -33
  17. package/dist/components/combo_box/index.js.map +1 -1
  18. package/dist/components/date_picker/index.d.ts +1 -0
  19. package/dist/components/date_picker/index.js +46 -0
  20. package/dist/components/date_picker/index.js.map +1 -0
  21. package/dist/components/gtable.d.ts +15 -0
  22. package/dist/components/gtable.js +122 -0
  23. package/dist/components/gtable.js.map +1 -0
  24. package/dist/components/mention_input/index.d.ts +1 -0
  25. package/dist/components/mention_input/index.js +125 -0
  26. package/dist/components/mention_input/index.js.map +1 -0
  27. package/dist/components/paginator_table.d.ts +7 -0
  28. package/dist/components/paginator_table.js +38 -0
  29. package/dist/components/paginator_table.js.map +1 -0
  30. package/dist/components/sheet/index.d.ts +1 -1
  31. package/dist/components/sheet/index.js +3 -3
  32. package/dist/components/sheet/index.js.map +1 -1
  33. package/dist/context.d.ts +1 -0
  34. package/dist/context.js +7 -0
  35. package/dist/context.js.map +1 -0
  36. package/dist/envs.d.ts +2 -0
  37. package/dist/envs.js +135 -0
  38. package/dist/envs.js.map +1 -0
  39. package/dist/functions.d.ts +5 -0
  40. package/dist/functions.js +204 -0
  41. package/dist/functions.js.map +1 -0
  42. package/dist/getcode.d.ts +1 -0
  43. package/dist/getcode.js +8 -0
  44. package/dist/getcode.js.map +1 -0
  45. package/dist/home.d.ts +1 -0
  46. package/dist/home.js +47 -0
  47. package/dist/home.js.map +1 -0
  48. package/dist/index.d.ts +1 -2
  49. package/dist/index.js +152 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/new_project.d.ts +1 -0
  52. package/dist/new_project.js +101 -0
  53. package/dist/new_project.js.map +1 -0
  54. package/dist/node.d.ts +3 -0
  55. package/dist/node.js +219 -0
  56. package/dist/node.js.map +1 -0
  57. package/dist/project_widget.d.ts +1 -0
  58. package/dist/project_widget.js +23 -0
  59. package/dist/project_widget.js.map +1 -0
  60. package/dist/simulator.d.ts +1 -0
  61. package/dist/simulator.js +73 -0
  62. package/dist/simulator.js.map +1 -0
  63. package/dist/studio_pane.d.ts +1 -0
  64. package/dist/studio_pane.js +309 -0
  65. package/dist/studio_pane.js.map +1 -0
  66. package/dist/top_center_panel.d.ts +1 -0
  67. package/dist/top_center_panel.js +9 -0
  68. package/dist/top_center_panel.js.map +1 -0
  69. package/dist/top_left_panel.d.ts +1 -0
  70. package/dist/top_left_panel.js +46 -0
  71. package/dist/top_left_panel.js.map +1 -0
  72. package/dist/top_right_panel.d.ts +1 -0
  73. package/dist/top_right_panel.js +80 -0
  74. package/dist/top_right_panel.js.map +1 -0
  75. package/dist/triggers.d.ts +2 -0
  76. package/dist/triggers.js +156 -0
  77. package/dist/triggers.js.map +1 -0
  78. package/dist/zustand/store.d.ts +465 -285
  79. package/dist/zustand/store.js +33 -37
  80. package/dist/zustand/store.js.map +1 -1
  81. package/package.json +33 -12
  82. package/src/components/date_picker/style.css +204 -0
  83. package/src/components/sheet/style.css +5 -5
  84. package/src/studio.css +19 -0
  85. package/dist/components/app_layout.js +0 -14
  86. package/dist/components/app_layout.js.map +0 -1
  87. package/dist/components/app_settings/data_sources.d.ts +0 -1
  88. package/dist/components/app_settings/data_sources.js +0 -57
  89. package/dist/components/app_settings/data_sources.js.map +0 -1
  90. package/dist/components/app_settings/deploy.d.ts +0 -1
  91. package/dist/components/app_settings/deploy.js +0 -14
  92. package/dist/components/app_settings/deploy.js.map +0 -1
  93. package/dist/components/app_settings/index.d.ts +0 -1
  94. package/dist/components/app_settings/index.js +0 -53
  95. package/dist/components/app_settings/index.js.map +0 -1
  96. package/dist/components/app_settings/service_providers.d.ts +0 -1
  97. package/dist/components/app_settings/service_providers.js +0 -17
  98. package/dist/components/app_settings/service_providers.js.map +0 -1
  99. package/dist/components/app_settings/simulator.d.ts +0 -1
  100. package/dist/components/app_settings/simulator.js +0 -34
  101. package/dist/components/app_settings/simulator.js.map +0 -1
  102. package/dist/components/context.d.ts +0 -1
  103. package/dist/components/context.js +0 -19
  104. package/dist/components/context.js.map +0 -1
  105. package/dist/components/dock_panel.d.ts +0 -2
  106. package/dist/components/dock_panel.js +0 -46
  107. package/dist/components/dock_panel.js.map +0 -1
  108. package/dist/components/end.d.ts +0 -1
  109. package/dist/components/end.js +0 -6
  110. package/dist/components/end.js.map +0 -1
  111. package/dist/components/input.d.ts +0 -1
  112. package/dist/components/input.js +0 -11
  113. package/dist/components/input.js.map +0 -1
  114. package/dist/components/normal.d.ts +0 -1
  115. package/dist/components/normal.js +0 -6
  116. package/dist/components/normal.js.map +0 -1
  117. package/dist/components/start.d.ts +0 -1
  118. package/dist/components/start.js +0 -13
  119. package/dist/components/start.js.map +0 -1
  120. package/dist/components/studio/index.d.ts +0 -1
  121. package/dist/components/studio/index.js +0 -78
  122. package/dist/components/studio/index.js.map +0 -1
  123. package/dist/components/xnode.d.ts +0 -2
  124. package/dist/components/xnode.js +0 -28
  125. package/dist/components/xnode.js.map +0 -1
  126. package/dist/service_providers.json +0 -74
  127. package/dist/styles/sheet.css +0 -155
  128. package/src/styles/combo_box.css +0 -10
  129. package/src/styles/sheet.css +0 -155
  130. /package/dist/{components/app_layout.d.ts → app_layout.d.ts} +0 -0
  131. /package/{dist/styles/combo_box.css → src/components/combo_box/style.css} +0 -0
package/dist/node.js ADDED
@@ -0,0 +1,219 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Badge, Card, Flex, Inset, TextField, Box, Text, Button, TextArea, Separator, DropdownMenu, Popover, Select, Tooltip } from "@radix-ui/themes";
4
+ import { CiMenuKebab } from "react-icons/ci";
5
+ import { BiTrash } from "react-icons/bi";
6
+ import { useRef, useState, memo, useEffect, useMemo } from "react";
7
+ import { Handle, Position, useReactFlow } from "@xyflow/react";
8
+ import { useConfigStore } from "./zustand/store";
9
+ // import { FaTrash } from "react-icons/fa6";
10
+ // import MentionTextarea from "./components/mention_input";
11
+ import { v4 as uuidv4 } from 'uuid';
12
+ const Node = memo(function Node({ id: nodeId = 0, data }) {
13
+ var _a, _b, _c, _d;
14
+ const { label, message, useFunction, function: func, response, type, functions, sessions } = data;
15
+ const { setNodes, setEdges } = useReactFlow();
16
+ const { stateType } = useConfigStore();
17
+ const [labelEdit, setLabelEdit] = useState(false), [getMessage, setMessage] = useState(message), [getFunction, setFunction] = useState(func);
18
+ const labelRef = useRef(null);
19
+ useEffect(() => {
20
+ if (getMessage) {
21
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map(node => node.id === nodeId ? { ...node, data: { ...node.data, message: getMessage } } : node));
22
+ }
23
+ }, [getMessage, nodeId, setNodes]);
24
+ const handleInputOnBlur = (e) => {
25
+ const rawValue = e.target.value || "";
26
+ let formattedValue = rawValue.trim().toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
27
+ setNodes(nds => {
28
+ let uniqueValue = formattedValue;
29
+ let counter = 1;
30
+ while (nds.some(node => node.id !== nodeId && node.data.label === uniqueValue)) {
31
+ uniqueValue = `${formattedValue}_${counter}`;
32
+ counter++;
33
+ }
34
+ return nds === null || nds === void 0 ? void 0 : nds.map(node => node.id === nodeId ? { ...node, data: { ...node.data, label: uniqueValue } } : node);
35
+ });
36
+ setLabelEdit(false);
37
+ };
38
+ const handleFunctionSelect = (e) => {
39
+ const newFunc = e === '-' ? '' : e;
40
+ setFunction(newFunc);
41
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map(node => node.id === nodeId ? { ...node, data: { ...node.data, function: newFunc } } : node));
42
+ };
43
+ const deleteNode = () => {
44
+ setNodes((nds) => nds === null || nds === void 0 ? void 0 : nds.filter((node) => (node === null || node === void 0 ? void 0 : node.id) !== nodeId));
45
+ setEdges((eds) => eds === null || eds === void 0 ? void 0 : eds.filter((edge) => (edge === null || edge === void 0 ? void 0 : edge.source) !== nodeId && (edge === null || edge === void 0 ? void 0 : edge.target) !== nodeId));
46
+ };
47
+ const toggleFeature = (feature) => {
48
+ var _a;
49
+ if (feature === 'function') {
50
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map(node => node.id === nodeId ? { ...node, data: { ...node.data, useFunction: !useFunction } } : node));
51
+ }
52
+ else if (feature === 'responses') {
53
+ if ((_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.length) {
54
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map((node) => { var _a; return node.id === nodeId ? { ...node, data: { ...node.data, response: { ...(_a = node === null || node === void 0 ? void 0 : node.data) === null || _a === void 0 ? void 0 : _a.response, inputs: [] } } } : node; }));
55
+ }
56
+ else {
57
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map((node) => { var _a; return node.id === nodeId ? { ...node, data: { ...node.data, response: { ...(_a = node === null || node === void 0 ? void 0 : node.data) === null || _a === void 0 ? void 0 : _a.response, validation: 'alpha-numeric', source: 'manual', inputs: [{ id: 1 }] } } } : node; }));
58
+ }
59
+ }
60
+ };
61
+ const duplicateNode = () => {
62
+ setNodes((prevNodes) => {
63
+ const originalNode = prevNodes.find(node => node.id === nodeId);
64
+ if (!originalNode)
65
+ return prevNodes;
66
+ const newId = `node-${uuidv4()}`;
67
+ const offset = 40; // adjust as needed
68
+ const newPosition = {
69
+ x: originalNode.position.x + offset,
70
+ y: originalNode.position.y + offset
71
+ };
72
+ const newNode = {
73
+ ...originalNode,
74
+ id: newId,
75
+ position: newPosition,
76
+ data: {
77
+ ...originalNode.data,
78
+ label: `${originalNode.data.label}_copy`
79
+ }
80
+ };
81
+ // Reset selected nodes to ensure only the new node is selected
82
+ setTimeout(() => {
83
+ setNodes((nodes) => nodes.map(node => node.id === newId ? { ...node, selected: true } : { ...node, selected: false }));
84
+ }, 0);
85
+ return [...prevNodes, newNode];
86
+ });
87
+ };
88
+ const memoizedResponses = useMemo(() => { var _a; return !((_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.length) ? null : _jsx(Responses, { nodeId: nodeId, type: type, response: response, sessions: sessions, functions: functions }); }, [nodeId, type, response, sessions, functions]);
89
+ return (_jsxs(Card, { style: { minWidth: '250px', width: '250px', '--card-border-radius': '8px', position: 'relative', overflow: 'unset', contain: 'layout' }, children: [_jsx(Inset, { clip: "padding-box", side: "top", pb: "current", children: _jsxs(Flex, { p: "1", px: "3", pr: "3", gap: "1", align: "center", className: "drag-handle", style: { background: 'var(--accent-a5)' }, children: [_jsx(Badge, { size: '1', color: type === 'start' ? 'green' : ((_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.length) ? 'blue' : 'red', children: "n" }), _jsx(Flex, { flexGrow: "1", children: labelEdit ?
90
+ _jsx(TextField.Root, { autoFocus: true, onBlur: handleInputOnBlur, placeholder: "Enter Label", defaultValue: label, size: "1", style: { width: '100%' } }) :
91
+ _jsx(Text, { onDoubleClick: () => { setLabelEdit(true); }, weight: "bold", size: "1", style: { padding: '4px 2px', width: '100%' }, children: label || 'node_label' }) }), _jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { children: _jsx(Button, { size: "1", variant: "surface", radius: "small", tabIndex: -1, style: { height: 20, width: 15, padding: 3 }, children: _jsx(CiMenuKebab, {}) }) }), _jsxs(DropdownMenu.Content, { size: "1", sideOffset: 5, align: "end", style: { zIndex: 100, borderRadius: 5 }, children: [(functions === null || functions === void 0 ? void 0 : functions.length) > 0 && _jsxs(DropdownMenu.Item, { onSelect: () => toggleFeature('function'), color: useFunction ? 'red' : undefined, children: [useFunction ? 'Remove' : 'Add', " Function"] }), _jsxs(DropdownMenu.Item, { onSelect: () => toggleFeature('responses'), color: ((_b = response === null || response === void 0 ? void 0 : response.inputs) === null || _b === void 0 ? void 0 : _b.length) ? 'red' : undefined, children: [((_c = response === null || response === void 0 ? void 0 : response.inputs) === null || _c === void 0 ? void 0 : _c.length) ? 'Remove' : 'Add', " Responses"] }), type !== 'start' && _jsxs(_Fragment, { children: [_jsx(DropdownMenu.Item, { onSelect: duplicateNode, children: "Duplicate" }), _jsx(DropdownMenu.Separator, {}), _jsx(DropdownMenu.Item, { shortcut: "\u232B", color: "red", onSelect: deleteNode, children: "Delete" })] })] })] })] }) }), _jsxs(Flex, { direction: 'column', gap: '3', children: [stateType == 'design' ? _jsx(_Fragment, { children: _jsx(TextArea, { size: '1', rows: 3, className: "nodrag", placeholder: 'Message Text goes here', value: getMessage, onChange: (e) => { setMessage(e.target.value); }, style: { fontSize: 15, height: 'auto' } }) })
92
+ : _jsx(Text, { size: '1', color: 'gray', style: { maxWidth: '230px', minHeight: '50px', textWrap: 'wrap', padding: 4, lineHeight: 1.3, fontSize: 12 }, children: message }), memoizedResponses, useFunction && (functions === null || functions === void 0 ? void 0 : functions.length) > 0 && _jsxs(_Fragment, { children: [_jsx(Separator, { size: '4' }), _jsxs(Flex, { justify: 'between', align: 'center', children: [_jsx(Text, { color: 'gray', size: '1', children: "Function:" }), stateType == 'design' ?
93
+ _jsxs(Select.Root, { size: '1', value: getFunction, onValueChange: handleFunctionSelect, children: [_jsx(Select.Trigger, { placeholder: 'Fn' }), _jsxs(Select.Content, { position: 'popper', side: 'top', align: 'end', children: [_jsx(Select.Item, { value: "-", children: "-----" }), functions === null || functions === void 0 ? void 0 : functions.map((val, ind) => (_jsx(Select.Item, { value: val.identifier, children: val.name }, ind)))] })] })
94
+ : _jsx(Badge, { size: '1', children: (_d = functions === null || functions === void 0 ? void 0 : functions.find((fn) => fn.identifier === `${getFunction}`)) === null || _d === void 0 ? void 0 : _d.name })] })] })] }), type != 'start' &&
95
+ _jsx(Handle, { type: "target", position: Position.Left, id: nodeId, style: { top: 16, left: -6, position: 'fixed', background: 'var(--gray-7)', borderColor: 'var(--gray-7)', width: 10, height: 15, borderTopRightRadius: 0, borderTopLeftRadius: 3, borderBottomLeftRadius: 3, borderBottomRightRadius: 0, zIndex: 100 }, onClick: (e) => e.stopPropagation(), onDoubleClick: (e) => e.stopPropagation(), onMouseDown: (e) => { if (e.detail > 1)
96
+ e.preventDefault(); } })] }));
97
+ });
98
+ export default Node;
99
+ const Responses = memo(({ nodeId, type, response, sessions, functions }) => {
100
+ var _a;
101
+ const { setNodes } = useReactFlow();
102
+ const { stateType } = useConfigStore();
103
+ const updateNodeData = (key, value) => {
104
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map((node) => node.id === nodeId
105
+ ? { ...node, data: { ...node.data, response: { ...node.data.response, [key]: value } } }
106
+ : node));
107
+ };
108
+ const addInput = () => {
109
+ var _a;
110
+ return updateNodeData('inputs', [
111
+ ...((response === null || response === void 0 ? void 0 : response.inputs) || []),
112
+ { id: (((_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.length) || 0) + 1 }
113
+ ]);
114
+ };
115
+ const removeInput = (inputId) => { var _a; return updateNodeData('inputs', ((_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.filter((input) => input.id !== inputId)) || []); };
116
+ const renderInputs = (sourceType) => {
117
+ var _a, _b;
118
+ return (_b = (_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.filter((val) => (response === null || response === void 0 ? void 0 : response.source) === sourceType)) === null || _b === void 0 ? void 0 : _b.map((val, ind) => (_jsx(InputResponse, { nodeId: nodeId, keyid: `${nodeId}-${ind}`, identifier: ind, id: val === null || val === void 0 ? void 0 : val.id, text: val === null || val === void 0 ? void 0 : val.text, inputType: val === null || val === void 0 ? void 0 : val.inputType, source: response === null || response === void 0 ? void 0 : response.source, removeInput: removeInput, sessions: sessions === null || sessions === void 0 ? void 0 : sessions.filter((s) => s.input_id === `${val === null || val === void 0 ? void 0 : val.id}`), functions: functions }, `${nodeId}-${ind}`)));
119
+ };
120
+ return (_jsxs(_Fragment, { children: [_jsx(Inset, { clip: "padding-box", py: "current", children: _jsxs(Flex, { p: "1", px: "3", gap: "2", justify: "between", align: "center", style: { background: 'var(--accent-a3)' }, children: [_jsx(Text, { size: "1", color: "gray", children: "Responses" }), stateType === 'design' && (_jsxs(Flex, { gap: "2", children: [(response === null || response === void 0 ? void 0 : response.source) === 'manual' && (_jsx(Tooltip, { content: "Add Input", side: "bottom", align: "end", children: _jsx(Button, { size: "1", variant: "surface", radius: "small", onClick: addInput, style: { height: 15, width: 10 }, children: "+" }) })), _jsxs(DropdownMenu.Root, { children: [_jsx(Tooltip, { content: "Options", side: "bottom", align: "end", children: _jsx(DropdownMenu.Trigger, { children: _jsx(Button, { size: "1", variant: "surface", radius: "small", style: { height: 15, width: 15, padding: 3 }, children: _jsx(CiMenuKebab, { size: 10 }) }) }) }), _jsxs(DropdownMenu.Content, { size: "1", sideOffset: 5, align: "end", style: { zIndex: 100, borderRadius: 5 }, children: [_jsxs(DropdownMenu.Sub, { children: [_jsxs(DropdownMenu.SubTrigger, { children: ["Validation (", (response === null || response === void 0 ? void 0 : response.validation) == 'date' ? 'd' : (response === null || response === void 0 ? void 0 : response.validation) == 'number' ? 'n' : 'a/n', ")"] }), _jsxs(DropdownMenu.SubContent, { style: { borderRadius: 5 }, sideOffset: 10, children: [_jsx(DropdownMenu.Label, { children: _jsx("small", { children: "all responses on this node" }) }), _jsx(DropdownMenu.Separator, {}), ['alpha-numeric', 'number', 'date'].map(validation => (_jsx(DropdownMenu.Item, { onClick: () => updateNodeData('validation', validation), children: validation.charAt(0).toUpperCase() + validation.slice(1) }, validation)))] })] }), _jsxs(DropdownMenu.Sub, { children: [_jsxs(DropdownMenu.SubTrigger, { children: ["Source (", (response === null || response === void 0 ? void 0 : response.source) == 'manual' ? 'm' : 'f', ")"] }), _jsx(DropdownMenu.SubContent, { style: { borderRadius: 5 }, sideOffset: 10, children: ['manual', 'function'].map(source => (_jsx(DropdownMenu.Item, { onClick: () => updateNodeData('source', source), children: source.charAt(0).toUpperCase() + source.slice(1) }, source))) })] })] })] })] }))] }) }), _jsx(Flex, { direction: "column", gap: "3", px: "0", children: ((_a = response === null || response === void 0 ? void 0 : response.inputs) === null || _a === void 0 ? void 0 : _a.length) > 0 && (_jsx(_Fragment, { children: _jsxs(Flex, { direction: "column", gap: "2", children: [renderInputs('manual'), renderInputs('function')] }) })) })] }));
121
+ });
122
+ const InputResponse = memo(({ keyid, identifier, nodeId, id = 0, text = '', inputType = 'text', source = 'manual', removeInput, sessions = [], functions = [], ...rest }) => {
123
+ var _a;
124
+ const { stateType } = useConfigStore();
125
+ const { setNodes } = useReactFlow();
126
+ const [inputValue, setInputValue] = useState(text);
127
+ useEffect(() => {
128
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map((node) => node.id === nodeId
129
+ ? {
130
+ ...node,
131
+ data: {
132
+ ...node.data,
133
+ response: {
134
+ ...node.data.response,
135
+ inputs: node.data.response.inputs.map((input) => input.id === id ? { ...input, text: inputValue } : input)
136
+ }
137
+ }
138
+ }
139
+ : node));
140
+ }, [inputValue, id, nodeId, setNodes]);
141
+ const sessionStats = useMemo(() => sessions === null || sessions === void 0 ? void 0 : sessions.reduce((acc, val) => {
142
+ acc[val.input_value] = (acc[val.input_value] || 0) + 1;
143
+ return acc;
144
+ }, {}), [sessions]);
145
+ return (_jsxs(Box, { position: 'relative', children: [stateType === 'sessions' ?
146
+ _jsxs(Flex, { justify: "between", align: "center", width: "100%", py: source === 'function' ? '1' : '0', children: [_jsx(Text, { size: "1", color: "gray", children: source === 'function' ? (_jsxs(_Fragment, { children: [_jsx(Badge, { color: "teal", children: "Fn" }), " ", ((_a = functions === null || functions === void 0 ? void 0 : functions.find((f) => f.identifier === text)) === null || _a === void 0 ? void 0 : _a.name) || ""] })) : text ? `${id}. ${text}` : _jsx(Badge, { size: '1', color: "teal", children: "Custom Input" }) }), _jsxs(Popover.Root, { children: [_jsx(Popover.Trigger, { children: _jsx(Badge, { size: "1", children: (sessions === null || sessions === void 0 ? void 0 : sessions.length) || 0 }) }), _jsx(Popover.Content, { side: "right", children: (sessions === null || sessions === void 0 ? void 0 : sessions.length) > 0 && (_jsx(Flex, { direction: "column", gap: "2", children: Object.entries(sessionStats).map(([key, count], ind) => (_jsxs(Flex, { justify: "between", children: [_jsxs(Text, { children: [key, ":"] }), _jsx(Text, { children: count })] }, ind))) })) })] })] })
147
+ :
148
+ _jsx(Flex, { position: "relative", gap: "0", align: "center", style: { overflow: 'visible', contain: 'layout' }, ...rest, children: source === 'manual' ? (_jsx(Flex, { width: "100%", direction: "column", align: "end", children: _jsxs(Flex, { width: "100%", align: "center", children: [_jsx(Button, { size: "1", variant: "soft", style: { borderTopRightRadius: 0, borderBottomRightRadius: 0, height: 20, cursor: 'move' }, children: id }), _jsx(TextField.Root, { size: "1", value: inputValue, onChange: e => setInputValue(e.target.value), type: inputType, id: keyid, placeholder: inputType === 'number' ? '0' : 'User Input', style: { width: '100%', borderRadius: 4 }, children: identifier !== 0 && (_jsx(TextField.Slot, { side: "right", pr: "1", children: _jsx(Button, { size: "1", color: "red", variant: "soft", onClick: () => removeInput(id), style: { width: 20, height: 17, borderRadius: 2, padding: 4 }, children: _jsx(BiTrash, { size: 10 }) }) })) })] }) })) : (_jsxs(Flex, { width: "100%", gap: "1", children: [_jsxs(Select.Root, { size: "1", value: inputValue, onValueChange: setInputValue, children: [_jsx(Select.Trigger, { placeholder: "Select Function", style: { width: '100%' } }), _jsx(Select.Content, { position: "popper", children: functions === null || functions === void 0 ? void 0 : functions.map((val, ind) => (_jsx(Select.Item, { value: val.identifier, children: val.name }, ind))) })] }), identifier !== 0 && (_jsx(Button, { size: "1", color: "red", variant: "soft", onClick: () => removeInput(id), style: { width: 20, padding: 4 }, children: _jsx(BiTrash, { size: 20 }) }))] })) }), _jsx(Handle, { type: "source", position: Position.Right, id: `${id}`, style: { right: -18, background: 'var(--gray-7)', borderColor: 'var(--gray-7)', width: 10, height: 15, borderTopLeftRadius: 0, borderTopRightRadius: 3, borderBottomRightRadius: 3, borderBottomLeftRadius: 0, position: 'absolute', top: 11, zIndex: 100 }, onClick: e => e.stopPropagation(), onDoubleClick: e => e.stopPropagation(), onMouseDown: e => { if (e.detail > 1)
149
+ e.preventDefault(); } })] }));
150
+ });
151
+ export function FNode({ id: nodeId = 0, data }) {
152
+ var _a, _b, _c;
153
+ const { type, label, text, functionn: func, functions, sessions } = data;
154
+ const { setNodes, getNode, setEdges } = useReactFlow();
155
+ const { stateType } = useConfigStore();
156
+ const [labelEdit, setLabelEdit] = useState(false), [getFunction, setFunction] = useState(func);
157
+ const labelRef = useRef(null);
158
+ const handleInputOnBlur = (e) => {
159
+ const rawValue = e.target.value || "";
160
+ const formattedValue = rawValue.toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
161
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map(node => node.id === nodeId ? { ...node, data: { ...node.data, label: formattedValue } } : node));
162
+ setLabelEdit(false);
163
+ };
164
+ const handleFunctionSelect = (e) => {
165
+ const newFunc = e === '-' ? '' : e;
166
+ setFunction(newFunc);
167
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map(node => node.id === nodeId ? { ...node, data: { ...node.data, function: newFunc } } : node));
168
+ };
169
+ const deleteNode = () => {
170
+ setNodes((nds) => nds === null || nds === void 0 ? void 0 : nds.filter((node) => (node === null || node === void 0 ? void 0 : node.id) !== nodeId));
171
+ setEdges((eds) => eds === null || eds === void 0 ? void 0 : eds.filter((edge) => (edge === null || edge === void 0 ? void 0 : edge.source) !== nodeId && (edge === null || edge === void 0 ? void 0 : edge.target) !== nodeId));
172
+ };
173
+ const [functionValue, setFunctionValue] = useState(((_b = (_a = getNode(nodeId)) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.function) || '');
174
+ useEffect(() => {
175
+ setNodes(nds => nds === null || nds === void 0 ? void 0 : nds.map((node) => (node === null || node === void 0 ? void 0 : node.id) === nodeId ? { ...node, data: { ...node.data, function: functionValue } } : node));
176
+ }, [functionValue, nodeId, setNodes]);
177
+ const sessionStats = useMemo(() => sessions === null || sessions === void 0 ? void 0 : sessions.reduce((acc, val) => {
178
+ acc[val.input_value] = (acc[val.input_value] || 0) + 1;
179
+ return acc;
180
+ }, {}), [sessions]);
181
+ const duplicateNode = () => {
182
+ setNodes((prevNodes) => {
183
+ const originalNode = prevNodes.find(node => node.id === nodeId);
184
+ if (!originalNode)
185
+ return prevNodes;
186
+ const newId = `node-${uuidv4()}`;
187
+ const offset = 40; // adjust as needed
188
+ const newPosition = {
189
+ x: originalNode.position.x + offset,
190
+ y: originalNode.position.y + offset
191
+ };
192
+ const newNode = {
193
+ ...originalNode,
194
+ id: newId,
195
+ position: newPosition,
196
+ data: {
197
+ ...originalNode.data,
198
+ label: `${originalNode.data.label}_copy`
199
+ }
200
+ };
201
+ // Reset selected nodes to ensure only the new node is selected
202
+ setTimeout(() => {
203
+ setNodes((nodes) => nodes.map(node => node.id === newId ? { ...node, selected: true } : { ...node, selected: false }));
204
+ }, 0);
205
+ return [...prevNodes, newNode];
206
+ });
207
+ };
208
+ return (_jsxs(Card, { style: { background: 'yellow', minWidth: '250px', width: '250px', '--card-border-radius': '8px', position: 'relative', overflow: 'unset', contain: 'layout' }, children: [_jsx(Inset, { clip: "padding-box", side: "top", pb: "current", children: _jsxs(Flex, { p: "1", px: "3", pr: "3", gap: "1", align: "center", className: "drag-handle", style: { background: 'var(--accent-a5)' }, children: [_jsx(Badge, { size: '1', color: 'yellow', children: "fn" }), _jsx(Flex, { flexGrow: "1", children: labelEdit ?
209
+ _jsx(TextField.Root, { ref: labelRef, onBlur: handleInputOnBlur, placeholder: "Enter Label", defaultValue: label, size: "1", style: { width: '100%' } }) :
210
+ _jsx(Text, { onDoubleClick: () => { var _a; setLabelEdit(true); (_a = labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, weight: "bold", size: "1", style: { padding: '4px 2px' }, children: label || 'node_label' }) }), _jsxs(DropdownMenu.Root, { children: [_jsx(DropdownMenu.Trigger, { children: _jsx(Button, { size: "1", variant: "surface", radius: "small", tabIndex: -1, style: { height: 20, width: 15, padding: 3 }, children: _jsx(CiMenuKebab, {}) }) }), _jsx(DropdownMenu.Content, { size: "1", sideOffset: 5, align: "end", style: { zIndex: 100, borderRadius: 5 }, children: type !== 'start' && _jsxs(_Fragment, { children: [_jsx(DropdownMenu.Item, { onSelect: duplicateNode, children: "Duplicate" }), _jsx(DropdownMenu.Separator, {}), _jsx(DropdownMenu.Item, { shortcut: "\u232B", color: "red", onSelect: deleteNode, children: "Delete" })] }) })] })] }) }), _jsxs(Box, { position: 'relative', children: [stateType === 'sessions' ?
211
+ _jsx(Text, { size: "1", color: "gray", children: ((_c = functions === null || functions === void 0 ? void 0 : functions.find((f) => f.identifier === functionValue)) === null || _c === void 0 ? void 0 : _c.name) || "" })
212
+ :
213
+ _jsxs(Select.Root, { size: "1", value: functionValue, onValueChange: setFunctionValue, children: [_jsx(Select.Trigger, { placeholder: "Select Function", style: { width: '100%' } }), _jsx(Select.Content, { position: "popper", children: functions === null || functions === void 0 ? void 0 : functions.map((val, ind) => (_jsx(Select.Item, { value: val.identifier, children: val.name }, ind))) })] }), _jsx(Handle, { type: "source", position: Position.Right, id: `1`, style: { right: -18, background: 'var(--yellow-7)', borderColor: 'var(--yellow-7)', width: 10, height: 15, borderTopLeftRadius: 0, borderTopRightRadius: 3, borderBottomRightRadius: 3, borderBottomLeftRadius: 0, position: 'absolute', top: 11, zIndex: 100 }, onClick: e => e.stopPropagation(), onDoubleClick: e => e.stopPropagation(), onMouseDown: e => { if (e.detail > 1)
214
+ e.preventDefault(); } })] }), type != 'start' &&
215
+ _jsx(Handle, { type: "target", position: Position.Left, id: nodeId, style: { top: 16, left: -6, position: 'fixed', background: 'var(--yellow-7)', borderColor: 'var(--yellow-7)', width: 10, height: 15, borderTopRightRadius: 0, borderTopLeftRadius: 3, borderBottomLeftRadius: 3, borderBottomRightRadius: 0, zIndex: 100 }, onClick: (e) => e.stopPropagation(), onDoubleClick: (e) => e.stopPropagation(), onMouseDown: (e) => { if (e.detail > 1)
216
+ e.preventDefault(); } })] }));
217
+ }
218
+ ;
219
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function ProjectWidget({ api_key, identifier, name, logo, ...rest }: any): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { Card, Flex, Text, Separator, Inset } from "@radix-ui/themes";
5
+ // import Image from 'next/image'
6
+ // import { useRouter } from 'next/navigation'
7
+ import { useConfigStore } from './zustand/store';
8
+ export default function ProjectWidget({ api_key, identifier, name, logo, ...rest }) {
9
+ const [open, setOpen] = useState(false);
10
+ // const router = useRouter()
11
+ const { openedProjects, setOpenedProjects, setActiveTab } = useConfigStore();
12
+ const handleClick = () => {
13
+ setActiveTab(identifier);
14
+ if (openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.some((project) => project.identifier === identifier)) {
15
+ return openedProjects;
16
+ }
17
+ else {
18
+ setOpenedProjects([...openedProjects, { identifier, name }]);
19
+ }
20
+ };
21
+ return (_jsx(_Fragment, { children: _jsx(Card, { onClick: handleClick, style: { cursor: 'pointer' }, children: _jsx(Inset, { children: _jsxs(Flex, { direction: 'column', justify: 'center', align: 'center', children: [_jsx(Flex, { height: '100%', width: '100%', direction: 'column', align: 'center', justify: 'center', p: '5', children: _jsx("img", { fetchPriority: 'high', src: logo || '/onenote.png', alt: 'icon', width: 70, height: 70 }) }), _jsx(Separator, { size: '4' }), _jsx(Flex, { p: '2', children: _jsx(Text, { size: '1', color: 'gray', children: name }) })] }) }) }) }));
22
+ }
23
+ //# sourceMappingURL=project_widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_widget.js","sourceRoot":"","sources":["../src/project_widget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAErE,iCAAiC;AACjC,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAO;IACnF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,6BAA6B;IAC7B,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAAA;IAE5E,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,YAAY,CAAC,UAAU,CAAC,CAAA;QACzB,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC;YAC3E,OAAO,cAAc,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,iBAAiB,CAAC,CAAC,GAAG,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEjE,CAAC;IAEL,CAAC,CAAA;IAED,OAAO,CACH,4BACI,KAAC,IAAI,IAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,YACjD,KAAC,KAAK,cACN,MAAC,IAAI,IAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,aACzD,KAAC,IAAI,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,YAChG,cAAK,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,GAC5F,EACP,KAAC,SAAS,IAAC,IAAI,EAAE,GAAG,GAAI,EACxB,KAAC,IAAI,IAAC,CAAC,EAAE,GAAG,YACR,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,YAAG,IAAI,GAAQ,GAC1C,IACJ,GACC,GACL,GACR,CACN,CAAA;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export default function Simulator({ api_key, projectId }: any): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { yupResolver } from "@hookform/resolvers/yup";
3
+ import { Button, Card, Flex, SegmentedControl, TextField, Text, Spinner, Popover, Tooltip } from "@radix-ui/themes";
4
+ import { useForm } from "react-hook-form";
5
+ import * as Form from "@radix-ui/react-form";
6
+ import { IoReload } from "react-icons/io5";
7
+ import { useEffect, useState } from "react";
8
+ import * as Yup from "yup";
9
+ import parse from 'html-react-parser';
10
+ import { SendHorizonalIcon } from "lucide-react";
11
+ import { MdOutlinePhoneAndroid } from "react-icons/md";
12
+ export default function Simulator({ api_key, projectId }) {
13
+ var _a, _b;
14
+ const [deploymentType, setDeploymentType] = useState('draft');
15
+ const [userType, setUserType] = useState('normal');
16
+ const [flowMessage, setFlowMessage] = useState('');
17
+ const [refreshing, setRefreshing] = useState(false);
18
+ const simulatorEndpoint = `${process.env.SIMULATOR_ENDPOINT}`;
19
+ const initialFormSubmit = async () => {
20
+ setRefreshing(true);
21
+ await handleSubmit({
22
+ production_type: deploymentType || "live",
23
+ user_input: "000",
24
+ sessionid: '1234567',
25
+ msisdn: "024",
26
+ mode: "start",
27
+ trafficid: "123456789",
28
+ traffic_source: "ussd"
29
+ });
30
+ setRefreshing(false);
31
+ };
32
+ useEffect(() => {
33
+ if (userType) {
34
+ initialFormSubmit();
35
+ }
36
+ }, [userType]);
37
+ const ussdFormSchema = Yup.object().shape({
38
+ user_input: Yup.string().required('required')
39
+ });
40
+ const { register: registerInput, handleSubmit: handleFormSubmit, getValues: getUssdValues, setValue: setUssdValue, setFocus, reset: resetForm, formState: { errors, isSubmitting }, } = useForm({
41
+ resolver: yupResolver(ussdFormSchema),
42
+ defaultValues: {}
43
+ });
44
+ const handleSubmit = async (data) => {
45
+ try {
46
+ const post_data = JSON.stringify({
47
+ project_id: projectId,
48
+ production_type: deploymentType,
49
+ userdata: data.user_input,
50
+ sessionid: '1234567',
51
+ msisdn: "024",
52
+ mode: (data === null || data === void 0 ? void 0 : data.mode) || "more",
53
+ trafficid: "123456789",
54
+ traffic_source: "ussd"
55
+ });
56
+ const response = await fetch(`${simulatorEndpoint}`, { method: 'POST', body: post_data, headers: { "X-API-KEY": `${api_key}`, "Content-Type": "application/json" } });
57
+ if (await response.ok) {
58
+ const response_data = await response.text();
59
+ resetForm({});
60
+ setFocus('user_input');
61
+ setFlowMessage(response_data);
62
+ }
63
+ else {
64
+ console.log('simulator POST not successful');
65
+ }
66
+ }
67
+ catch (e) {
68
+ console.log('Form Submit Error: ' + e);
69
+ }
70
+ };
71
+ return (_jsxs(Popover.Root, { children: [_jsx(Tooltip, { content: 'Simulator', side: 'right', align: 'center', children: _jsx(Popover.Trigger, { children: _jsx(Button, { size: '1', variant: 'soft', children: _jsx(MdOutlinePhoneAndroid, {}) }) }) }), _jsx(Popover.Content, { side: 'right', sideOffset: 10, children: _jsxs(Flex, { direction: 'column', gap: '3', children: [_jsxs(Flex, { justify: 'between', children: [_jsxs(SegmentedControl.Root, { size: "1", defaultValue: "draft", radius: "large", children: [_jsx(SegmentedControl.Item, { onClick: () => setDeploymentType('draft'), value: "draft", children: "Draft" }), _jsx(SegmentedControl.Item, { onClick: () => setDeploymentType('live'), value: "live", children: "Live" })] }), _jsxs(Button, { size: '1', variant: 'outline', onClick: initialFormSubmit, children: [!refreshing && _jsx(IoReload, { size: '13' }), refreshing && _jsx(Spinner, {})] })] }), _jsx(Card, { style: { height: 'auto', minHeight: '150px', maxWidth: '230px' }, children: _jsx(Text, { wrap: 'wrap', color: 'gray', size: '1', children: parse(flowMessage) || 'No message' }) }), _jsx(Form.Root, { onSubmit: handleFormSubmit(handleSubmit), noValidate: true, children: _jsxs(Form.Field, { name: 'user_input', serverInvalid: errors.user_input != null, children: [_jsx(TextField.Root, { type: "text", ...registerInput('user_input'), id: "user_input", autoComplete: "off", placeholder: 'User Input', autoFocus: true, children: _jsx(TextField.Slot, { side: 'right', pr: '1', children: _jsxs(Button, { size: '1', highContrast: true, disabled: isSubmitting, type: "submit", children: [_jsx(Spinner, { loading: isSubmitting }), !isSubmitting && _jsx(SendHorizonalIcon, { size: '15' })] }) }) }), ((_a = errors.user_input) === null || _a === void 0 ? void 0 : _a.message) && _jsx(Form.Message, { children: (_b = errors.user_input) === null || _b === void 0 ? void 0 : _b.message })] }) })] }) })] }));
72
+ }
73
+ //# sourceMappingURL=simulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../src/simulator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function StudioPane({ api_key, projectsRefetch, identifier, providers, provider }: any): import("react/jsx-runtime").JSX.Element;