flowstudio 0.0.30 → 0.0.32

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 (193) hide show
  1. package/README.md +3 -3
  2. package/dist/ai_creator.d.ts +1 -1
  3. package/dist/ai_creator.js +24 -128
  4. package/dist/ai_creator.js.map +1 -1
  5. package/dist/api_calls.d.ts +2 -0
  6. package/dist/api_calls.js +147 -0
  7. package/dist/api_calls.js.map +1 -0
  8. package/dist/app_analytics.d.ts +1 -1
  9. package/dist/app_analytics.js +75 -69
  10. package/dist/app_analytics.js.map +1 -1
  11. package/dist/app_details.d.ts +1 -1
  12. package/dist/app_details.js +25 -24
  13. package/dist/app_details.js.map +1 -1
  14. package/dist/app_layout.d.ts +2 -2
  15. package/dist/app_layout.js +4 -4
  16. package/dist/app_layout.js.map +1 -1
  17. package/dist/app_settings.d.ts +1 -1
  18. package/dist/app_settings.js +76 -8
  19. package/dist/app_settings.js.map +1 -1
  20. package/dist/bottom_left_panel.d.ts +1 -0
  21. package/dist/bottom_left_panel.js +8 -0
  22. package/dist/bottom_left_panel.js.map +1 -0
  23. package/dist/code.d.ts +1 -1
  24. package/dist/code.js +6 -2
  25. package/dist/code.js.map +1 -1
  26. package/dist/components/ftable.d.ts +13 -0
  27. package/dist/components/ftable.js +65 -0
  28. package/dist/components/ftable.js.map +1 -0
  29. package/dist/components/gsheet/index.d.ts +1 -0
  30. package/dist/components/gsheet/index.js +21 -0
  31. package/dist/components/gsheet/index.js.map +1 -0
  32. package/dist/components/mention_input/index.d.ts +18 -1
  33. package/dist/components/mention_input/index.js +203 -111
  34. package/dist/components/mention_input/index.js.map +1 -1
  35. package/dist/components/paginator_table.d.ts +1 -1
  36. package/dist/components/paginator_table.js +2 -2
  37. package/dist/components/paginator_table.js.map +1 -1
  38. package/dist/components/sheet/index.d.ts +1 -1
  39. package/dist/components/sheet/index.js +4 -2
  40. package/dist/components/sheet/index.js.map +1 -1
  41. package/dist/components/ui/alert.d.ts +8 -0
  42. package/dist/components/ui/alert.js +23 -0
  43. package/dist/components/ui/alert.js.map +1 -0
  44. package/dist/components/ui/badge.d.ts +9 -0
  45. package/dist/components/ui/badge.js +21 -0
  46. package/dist/components/ui/badge.js.map +1 -0
  47. package/dist/components/ui/button.d.ts +11 -0
  48. package/dist/components/ui/button.js +35 -0
  49. package/dist/components/ui/button.js.map +1 -0
  50. package/dist/components/ui/card.d.ts +8 -0
  51. package/dist/components/ui/card.js +17 -0
  52. package/dist/components/ui/card.js.map +1 -0
  53. package/dist/components/ui/dialog.d.ts +19 -0
  54. package/dist/components/ui/dialog.js +33 -0
  55. package/dist/components/ui/dialog.js.map +1 -0
  56. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  57. package/dist/components/ui/dropdown-menu.js +46 -0
  58. package/dist/components/ui/dropdown-menu.js.map +1 -0
  59. package/dist/components/ui/form.d.ts +24 -0
  60. package/dist/components/ui/form.js +61 -0
  61. package/dist/components/ui/form.js.map +1 -0
  62. package/dist/components/ui/input-group.d.ts +16 -0
  63. package/dist/components/ui/input-group.js +65 -0
  64. package/dist/components/ui/input-group.js.map +1 -0
  65. package/dist/components/ui/input.d.ts +5 -0
  66. package/dist/components/ui/input.js +9 -0
  67. package/dist/components/ui/input.js.map +1 -0
  68. package/dist/components/ui/label.d.ts +5 -0
  69. package/dist/components/ui/label.js +10 -0
  70. package/dist/components/ui/label.js.map +1 -0
  71. package/dist/components/ui/popover.d.ts +7 -0
  72. package/dist/components/ui/popover.js +23 -0
  73. package/dist/components/ui/popover.js.map +1 -0
  74. package/dist/components/ui/scroll-area.d.ts +5 -0
  75. package/dist/components/ui/scroll-area.js +12 -0
  76. package/dist/components/ui/scroll-area.js.map +1 -0
  77. package/dist/components/ui/select.d.ts +13 -0
  78. package/dist/components/ui/select.js +37 -0
  79. package/dist/components/ui/select.js.map +1 -0
  80. package/dist/components/ui/separator.d.ts +4 -0
  81. package/dist/components/ui/separator.js +8 -0
  82. package/dist/components/ui/separator.js.map +1 -0
  83. package/dist/components/ui/sheet.d.ts +13 -0
  84. package/dist/components/ui/sheet.js +93 -0
  85. package/dist/components/ui/sheet.js.map +1 -0
  86. package/dist/components/ui/skeleton.d.ts +2 -0
  87. package/dist/components/ui/skeleton.js +7 -0
  88. package/dist/components/ui/skeleton.js.map +1 -0
  89. package/dist/components/ui/sonner.d.ts +3 -0
  90. package/dist/components/ui/sonner.js +42 -0
  91. package/dist/components/ui/sonner.js.map +1 -0
  92. package/dist/components/ui/spinner.d.ts +7 -0
  93. package/dist/components/ui/spinner.js +17 -0
  94. package/dist/components/ui/spinner.js.map +1 -0
  95. package/dist/components/ui/switch.d.ts +4 -0
  96. package/dist/components/ui/switch.js +8 -0
  97. package/dist/components/ui/switch.js.map +1 -0
  98. package/dist/components/ui/table.d.ts +10 -0
  99. package/dist/components/ui/table.js +21 -0
  100. package/dist/components/ui/table.js.map +1 -0
  101. package/dist/components/ui/tabs.d.ts +7 -0
  102. package/dist/components/ui/tabs.js +13 -0
  103. package/dist/components/ui/tabs.js.map +1 -0
  104. package/dist/components/ui/textarea.d.ts +5 -0
  105. package/dist/components/ui/textarea.js +9 -0
  106. package/dist/components/ui/textarea.js.map +1 -0
  107. package/dist/components/ui/tooltip.d.ts +7 -0
  108. package/dist/components/ui/tooltip.js +11 -0
  109. package/dist/components/ui/tooltip.js.map +1 -0
  110. package/dist/constants.js +5 -4
  111. package/dist/constants.js.map +1 -1
  112. package/dist/context.d.ts +1 -1
  113. package/dist/context.js +2 -2
  114. package/dist/context.js.map +1 -1
  115. package/dist/envs.d.ts +2 -2
  116. package/dist/envs.js +2 -150
  117. package/dist/envs.js.map +1 -1
  118. package/dist/functions.d.ts +2 -5
  119. package/dist/functions.js +2 -210
  120. package/dist/functions.js.map +1 -1
  121. package/dist/globals.css +264 -0
  122. package/dist/home.d.ts +1 -1
  123. package/dist/home.js +64 -26
  124. package/dist/home.js.map +1 -1
  125. package/dist/index.d.ts +19 -3
  126. package/dist/index.js +81 -22
  127. package/dist/index.js.map +1 -1
  128. package/dist/lib/pane-context.d.ts +10 -0
  129. package/dist/lib/pane-context.js +21 -0
  130. package/dist/lib/pane-context.js.map +1 -0
  131. package/dist/lib/toast.d.ts +12 -0
  132. package/dist/lib/toast.js +36 -0
  133. package/dist/lib/toast.js.map +1 -0
  134. package/dist/lib/utils.d.ts +2 -0
  135. package/dist/lib/utils.js +6 -0
  136. package/dist/lib/utils.js.map +1 -0
  137. package/dist/new_project.d.ts +1 -1
  138. package/dist/new_project.js +60 -41
  139. package/dist/new_project.js.map +1 -1
  140. package/dist/node.d.ts +2 -2
  141. package/dist/node.js +152 -39
  142. package/dist/node.js.map +1 -1
  143. package/dist/project_widget.d.ts +2 -1
  144. package/dist/project_widget.js +6 -2
  145. package/dist/project_widget.js.map +1 -1
  146. package/dist/secrets.d.ts +2 -0
  147. package/dist/secrets.js +130 -0
  148. package/dist/secrets.js.map +1 -0
  149. package/dist/simulator.d.ts +1 -1
  150. package/dist/simulator.js +184 -63
  151. package/dist/simulator.js.map +1 -1
  152. package/dist/studio_pane.d.ts +1 -1
  153. package/dist/studio_pane.js +319 -56
  154. package/dist/studio_pane.js.map +1 -1
  155. package/dist/studio_pane_old.d.ts +1 -1
  156. package/dist/studio_pane_old.js +2 -3
  157. package/dist/studio_pane_old.js.map +1 -1
  158. package/dist/studio_pane_old_new.d.ts +1 -1
  159. package/dist/studio_pane_old_new.js +2 -3
  160. package/dist/studio_pane_old_new.js.map +1 -1
  161. package/dist/styles/globals.css +59 -0
  162. package/dist/styles.css +2 -0
  163. package/dist/top_center_panel.d.ts +1 -1
  164. package/dist/top_center_panel.js +4 -3
  165. package/dist/top_center_panel.js.map +1 -1
  166. package/dist/top_left_panel.d.ts +1 -1
  167. package/dist/top_left_panel.js +7 -41
  168. package/dist/top_left_panel.js.map +1 -1
  169. package/dist/top_right_panel.d.ts +1 -1
  170. package/dist/top_right_panel.js +12 -13
  171. package/dist/top_right_panel.js.map +1 -1
  172. package/dist/triggers.d.ts +2 -2
  173. package/dist/triggers.js +56 -37
  174. package/dist/triggers.js.map +1 -1
  175. package/dist/zustand/store.d.ts +411 -3
  176. package/dist/zustand/store.js +4 -0
  177. package/dist/zustand/store.js.map +1 -1
  178. package/package.json +54 -26
  179. package/src/globals.css +264 -0
  180. package/src/styles/globals.css +59 -0
  181. package/dist/components/combo_box/index.d.ts +0 -2
  182. package/dist/components/combo_box/index.js +0 -150
  183. package/dist/components/combo_box/index.js.map +0 -1
  184. package/dist/components/combo_box/style.css +0 -10
  185. package/dist/components/date_picker/index.d.ts +0 -1
  186. package/dist/components/date_picker/index.js +0 -46
  187. package/dist/components/date_picker/index.js.map +0 -1
  188. package/dist/components/date_picker/style.css +0 -204
  189. package/dist/components/gtable.d.ts +0 -15
  190. package/dist/components/gtable.js +0 -122
  191. package/dist/components/gtable.js.map +0 -1
  192. package/src/components/combo_box/style.css +0 -10
  193. package/src/components/date_picker/style.css +0 -204
package/dist/index.js CHANGED
@@ -1,25 +1,51 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useConfigStore } from './zustand/store';
4
- import { Flex, Tabs, Card, IconButton, Badge, Tooltip, TextField, Text, Spinner, Theme } from '@radix-ui/themes';
5
4
  import HomePage from './home';
6
- import { FaPlus, FaTimes } from 'react-icons/fa';
5
+ import { FaTimes } from 'react-icons/fa';
7
6
  import StudioPane from './studio_pane';
8
7
  import NewProject from './new_project';
9
8
  import { useEffect, useRef, useState } from 'react';
10
9
  import { ReactFlowProvider } from '@xyflow/react';
11
- import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';
10
+ import { QueryClient, QueryClientProvider, useQuery, useQueryClient } from '@tanstack/react-query';
12
11
  import { FaExpand } from 'react-icons/fa6';
13
12
  import { RiFullscreenExitLine } from "react-icons/ri";
14
13
  import '@xyflow/react/dist/style.css';
15
- import '@radix-ui/themes/styles.css';
14
+ import './globals.css';
16
15
  import flow_constants from './constants';
17
- export default function FlowStudio({ api_key, providerId, language, theme }) {
16
+ import { Card } from '@osanim/shared';
17
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@osanim/shared';
18
+ import { Button } from '@osanim/shared';
19
+ import { Badge } from '@osanim/shared';
20
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@osanim/shared';
21
+ import { Input } from '@osanim/shared';
22
+ import { Spinner } from '@osanim/shared';
23
+ import { cn } from './lib/utils';
24
+ import { Toaster } from 'sonner';
25
+ import { PaneProvider } from './lib/pane-context';
26
+ import { HomeIcon, Moon, Plus, Sun } from 'lucide-react';
27
+ import { PortalContainerContext } from '@osanim/shared';
28
+ export default function FlowStudio({ api_key, providerId, language, theme, primaryColor, quota }) {
18
29
  const queryClient = new QueryClient();
19
- return (_jsx(Theme, { appearance: theme, accentColor: 'gray', panelBackground: 'solid', style: { height: '100%', minHeight: '100%' }, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(ReactFlowProvider, { children: _jsx(Studio, { api_key: api_key, providerId: providerId, language: language, theme: theme || 'light' }) }) }) }));
30
+ const [internalTheme, setInternalTheme] = useState(theme === 'dark' || theme === 'light' ? theme : 'light');
31
+ const [portalContainer, setPortalContainer] = useState(null);
32
+ useEffect(() => {
33
+ if (theme === 'dark' || theme === 'light')
34
+ setInternalTheme(theme);
35
+ }, [theme]);
36
+ return (_jsxs("div", { suppressHydrationWarning: true, className: cn("flowstudio-root h-full min-h-full relative", internalTheme === 'dark' && 'dark'), style: primaryColor ? { '--primary': primaryColor } : undefined, children: [_jsx("div", { ref: setPortalContainer, className: "flowstudio-portal-root" }), _jsx(PortalContainerContext.Provider, { value: portalContainer, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(ReactFlowProvider, { children: _jsx("div", { className: 'relative w-full h-full', children: _jsx(Studio, { api_key: api_key, providerId: providerId, language: language, theme: internalTheme, setTheme: setInternalTheme, quota: quota }) }) }) }) })] }));
20
37
  }
21
- const Studio = ({ api_key, providerId, language, theme }) => {
22
- const { openedProjects, setOpenedProjects, setOpenNewProject, activeTab, setActiveTab } = useConfigStore();
38
+ const Studio = ({ api_key, providerId, language, theme, setTheme, quota }) => {
39
+ const { openedProjects, setOpenedProjects, setOpenNewProject, activeTab, setActiveTab, lastApiKey, setLastApiKey } = useConfigStore();
40
+ useEffect(() => {
41
+ if (!api_key)
42
+ return;
43
+ if (lastApiKey && api_key !== lastApiKey) {
44
+ setOpenedProjects([]);
45
+ setActiveTab('home');
46
+ }
47
+ setLastApiKey(api_key);
48
+ }, [api_key]);
23
49
  // const [getDefaultTab, setDefaultTab] = useState('')
24
50
  const { data: account, isPending: accountPending, refetch: accountRefetch } = useQuery({
25
51
  queryKey: [`account_${api_key}`, api_key],
@@ -27,7 +53,29 @@ const Studio = ({ api_key, providerId, language, theme }) => {
27
53
  const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/accounts/${api_key}/api-key-account`, { headers: { "X-API-KEY": `${api_key}` } });
28
54
  return res.json();
29
55
  },
30
- enabled: !!api_key
56
+ enabled: !!api_key,
57
+ staleTime: 5 * 60 * 1000, // 5 minutes
58
+ gcTime: 10 * 60 * 1000 // 10 minutes
59
+ });
60
+ const { data: project_categories, refetch: project_categoriesRefetch, isPending: project_categoriesPending } = useQuery({
61
+ queryKey: [`project_categories`],
62
+ queryFn: async () => {
63
+ const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/project-categories?ordering=created`, { headers: { "X-API-KEY": `${api_key}` } });
64
+ return res === null || res === void 0 ? void 0 : res.json();
65
+ },
66
+ enabled: !!api_key,
67
+ staleTime: 10 * 60 * 1000, // 10 minutes
68
+ gcTime: 15 * 60 * 1000 // 15 minutes
69
+ });
70
+ const { data: project_templates, refetch: project_templatesRefetch, isPending: project_templatesPending } = useQuery({
71
+ queryKey: [`project_templates`],
72
+ queryFn: async () => {
73
+ const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/project-templates?ordering=-created&page_size=500`, { headers: { "X-API-KEY": `${api_key}` } });
74
+ return res === null || res === void 0 ? void 0 : res.json();
75
+ },
76
+ enabled: !!api_key,
77
+ staleTime: 10 * 60 * 1000, // 10 minutes
78
+ gcTime: 15 * 60 * 1000 // 15 minutes
31
79
  });
32
80
  const { data: projects, refetch: projectsRefetch, isPending: projectsPending } = useQuery({
33
81
  queryKey: [`${account === null || account === void 0 ? void 0 : account.identifier}_projects`, account === null || account === void 0 ? void 0 : account.identifier],
@@ -36,25 +84,33 @@ const Studio = ({ api_key, providerId, language, theme }) => {
36
84
  return res === null || res === void 0 ? void 0 : res.json();
37
85
  },
38
86
  enabled: !!(account === null || account === void 0 ? void 0 : account.identifier),
39
- placeholderData: (previousData) => previousData
87
+ placeholderData: (previousData) => previousData,
88
+ staleTime: 2 * 60 * 1000, // 2 minutes
89
+ gcTime: 5 * 60 * 1000 // 5 minutes
40
90
  });
41
91
  const { data: providers } = useQuery({
42
92
  queryKey: [`providers`], queryFn: async () => {
43
- const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/providers?active=True`, { headers: { "X-API-KEY": `${api_key}` } });
93
+ const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/providers?active=True&page_size=999999`, { headers: { "X-API-KEY": `${api_key}` } });
44
94
  return res === null || res === void 0 ? void 0 : res.json();
45
- }, enabled: !!api_key, placeholderData: (previousData) => previousData
95
+ }, enabled: !!api_key, placeholderData: (previousData) => previousData,
96
+ staleTime: 10 * 60 * 1000, // 10 minutes
97
+ gcTime: 15 * 60 * 1000 // 15 minutes
46
98
  });
47
99
  const { data: provider } = useQuery({
48
100
  queryKey: [`provider_${providerId}`, providerId], queryFn: async () => {
49
101
  const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/providers/${providerId}`, { headers: { "X-API-KEY": `${api_key}` } });
50
102
  return res === null || res === void 0 ? void 0 : res.json();
51
- }, enabled: !!providerId, placeholderData: (previousData) => previousData
103
+ }, enabled: !!providerId, placeholderData: (previousData) => previousData,
104
+ staleTime: 10 * 60 * 1000, // 10 minutes
105
+ gcTime: 15 * 60 * 1000 // 15 minutes
52
106
  });
53
107
  const { data: get_points, isPending: getPointsPending, refetch: getPointsRefetch } = useQuery({
54
108
  queryKey: [`account_${account === null || account === void 0 ? void 0 : account.identifier}_points`, account === null || account === void 0 ? void 0 : account.identifier], queryFn: async () => {
55
109
  const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/accounts/${account === null || account === void 0 ? void 0 : account.identifier}/points`, { headers: { "X-API-KEY": `${api_key}` } });
56
110
  return res.json();
57
- }, ...{ initialData: { points: account === null || account === void 0 ? void 0 : account.points } }, placeholderData: (previousData) => previousData
111
+ }, ...{ initialData: { points: account === null || account === void 0 ? void 0 : account.points } }, placeholderData: (previousData) => previousData,
112
+ staleTime: 1 * 60 * 1000, // 1 minute
113
+ gcTime: 5 * 60 * 1000 // 5 minutes
58
114
  });
59
115
  const [isFullscreen, setFullScreen] = useState(false);
60
116
  const cardRef = useRef(null);
@@ -87,13 +143,15 @@ const Studio = ({ api_key, providerId, language, theme }) => {
87
143
  };
88
144
  }, []);
89
145
  const expiration_days = Math.ceil((new Date(account === null || account === void 0 ? void 0 : account.org_expiration_date).getTime() - Date.now()) / (1000 * 60 * 60 * 24));
90
- return (_jsx(Card, { ref: cardRef, className: '', style: { background: 'var(--color-panel-solid)', padding: 0, height: '100%', '--card-border-radius': '8px' }, children: _jsx(Tabs.Root, { value: activeTab, onValueChange: setActiveTab, style: { height: '100%' }, children: _jsxs(Flex, { direction: 'column', height: '100%', width: '100%', children: [_jsx(Flex, { flexShrink: '0', width: '100%', justify: 'between', children: _jsx(Tabs.List, { style: { alignItems: 'center', width: '100%' }, children: _jsxs(Flex, { justify: 'between', align: 'center', width: '100%', children: [_jsxs(Flex, { align: 'center', children: [_jsx(Tabs.Trigger, { value: "home", children: "Home" }), openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.map((val, ind) => (_jsx(TabsTrigger, { api_key: api_key, identifier: val, value: val, projects: projects, projectsRefetch: projectsRefetch, openedProjects: openedProjects, setOpenedProjects: setOpenedProjects, setActiveTab: setActiveTab }, ind))), _jsx(NewProject, { api_key: api_key, userId: account === null || account === void 0 ? void 0 : account.identifier, projects: projects, refetch: projectsRefetch, providers: providers, provider: provider, size: '1', variant: 'ghost', align: 'start', ml: '5', children: _jsx(FaPlus, {}) })] }), _jsxs(Flex, { align: 'center', gap: '3', children: [expiration_days <= 7 &&
91
- _jsx(Tooltip, { content: 'Expiration', side: 'left', align: 'center', children: _jsxs(Badge, { size: '1', highContrast: true, color: 'red', children: ["expiration in ", expiration_days, " days"] }) }), _jsx(Tooltip, { content: 'Points', side: 'left', align: 'center', children: _jsxs(Badge, { size: '1', onClick: () => getPointsRefetch(), style: { cursor: 'pointer' }, highContrast: true, color: (get_points === null || get_points === void 0 ? void 0 : get_points.points) < 51 ? 'red' : (get_points === null || get_points === void 0 ? void 0 : get_points.points) < 200 ? 'yellow' : undefined, children: [(accountPending || getPointsPending) ? _jsx(Spinner, {}) : (get_points === null || get_points === void 0 ? void 0 : get_points.points) || (account === null || account === void 0 ? void 0 : account.points), " points"] }) }), _jsx(Tooltip, { content: 'Fullscreen', side: 'left', align: 'center', children: _jsx(IconButton, { onClick: toggleFullscreen, variant: 'ghost', size: '1', mr: '4', children: isFullscreen ? _jsx(RiFullscreenExitLine, {}) : _jsx(FaExpand, {}) }) })] })] }) }) }), _jsxs(Flex, { flexGrow: '1', direction: 'column', width: '100%', children: [_jsx(Tabs.Content, { value: "home", style: { height: '100%' }, children: _jsx(HomePage, { api_key: api_key, userId: account === null || account === void 0 ? void 0 : account.identifier, projects: projects, projectsPending: projectsPending, refetch: projectsRefetch, providers: providers, provider: provider }) }), openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.map((val, ind) => (_jsx(Tabs.Content, { value: val.identifier, style: { height: '100%' }, children: _jsx(StudioPane, { api_key: api_key, identifier: val === null || val === void 0 ? void 0 : val.identifier, projectsRefetch: projectsRefetch, providers: providers, provider: provider, theme: theme }) }, ind)))] })] }) }) }));
146
+ return (_jsx(TooltipProvider, { children: _jsx("div", { ref: cardRef, className: 'relative p-0 h-full overflow-hidden rounded-none', children: _jsx(Card, { className: 'h-full overflow-hidden rounded-none gap-0 p-0', children: _jsx(Tabs, { value: activeTab, onValueChange: setActiveTab, className: 'h-full', children: _jsxs("div", { className: 'flex flex-col h-full w-full', children: [_jsx("div", { className: 'flex-shrink-0 w-full flex justify-between', children: _jsx(TabsList, { className: 'items-center w-full rounded-none', children: _jsxs("div", { className: 'flex justify-between items-center w-full gap-2', children: [_jsxs("div", { className: 'flex items-center grow overflow-x-auto py-2', children: [_jsxs(TabsTrigger, { value: "home", className: 'text-xs flex gap-1 items-center rounded-xs', children: [_jsx(HomeIcon, { size: 10 }), " Home"] }), openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.map((val, ind) => (_jsx(TabsTriggerCustom, { api_key: api_key, identifier: val, value: val, project_categories: project_categories, project_templates: project_templates, projects: projects, projectsRefetch: projectsRefetch, openedProjects: openedProjects, setOpenedProjects: setOpenedProjects, setActiveTab: setActiveTab }, ind))), _jsx(NewProject, { api_key: api_key, userId: account === null || account === void 0 ? void 0 : account.identifier, project_categories: project_categories, project_templates: project_templates, projects: projects, refetch: projectsRefetch, providers: providers, provider: provider, size: 'sm', variant: 'ghost', className: 'ml-1', children: _jsx(Plus, {}) })] }), _jsxs("div", { className: 'flex items-center shrink-0 gap-1', children: [expiration_days <= 7 &&
147
+ _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(Badge, { variant: 'outline', className: 'text-xs rounded-xs', children: ["expiration in ", expiration_days, " days"] }) }), _jsx(TooltipContent, { side: 'left', align: 'center', children: "Expiration" })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(Badge, { variant: 'outline', onClick: () => getPointsRefetch(), className: cn('cursor-pointer text-xs rounded-xs', (get_points === null || get_points === void 0 ? void 0 : get_points.points) < 51 ? 'bg-red-500' : (get_points === null || get_points === void 0 ? void 0 : get_points.points) < 200 ? 'bg-yellow-500' : ''), children: [(accountPending || getPointsPending) ? _jsx(Spinner, { size: 'sm', className: 'mr-1' }) : (get_points === null || get_points === void 0 ? void 0 : get_points.points) || (account === null || account === void 0 ? void 0 : account.points), " points"] }) }), _jsx(TooltipContent, { side: 'left', align: 'center', children: "Points" })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { onClick: toggleFullscreen, variant: 'ghost', size: 'icon', className: '', children: isFullscreen ? _jsx(RiFullscreenExitLine, {}) : _jsx(FaExpand, {}) }) }), _jsx(TooltipContent, { side: 'left', align: 'center', children: "Fullscreen" })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { suppressHydrationWarning: true, variant: 'ghost', size: 'icon', className: 'h-6 w-6', onClick: () => setTheme(theme === 'dark' ? 'light' : 'dark'), children: _jsx("span", { suppressHydrationWarning: true, children: theme === 'dark' ? _jsx(Sun, { size: 12 }) : _jsx(Moon, { size: 12 }) }) }) }), _jsx(TooltipContent, { side: 'left', align: 'center', children: "Theme" })] })] })] }) }) }), _jsxs("div", { className: 'flex grow flex-col w-full min-h-0', children: [_jsx(TabsContent, { value: "home", className: 'h-full mt-0', children: _jsx(HomePage, { api_key: api_key, userId: account === null || account === void 0 ? void 0 : account.identifier, project_categories: project_categories, project_templates: project_templates, projects: projects, projectsPending: projectsPending, templatesPending: project_templatesPending, categoriesPending: project_categoriesPending, refetch: projectsRefetch, providers: providers, provider: provider, quota: quota }) }), openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.map((val, ind) => (_jsx(TabsContent, { value: val.identifier, className: 'h-full w-full relative p-0 m-0', children: api_key &&
148
+ _jsx(PaneProvider, { containerId: val.identifier, children: _jsxs("div", { className: 'h-full w-full relative flowstudio-pane-container', children: [_jsx(StudioPane, { api_key: api_key, identifier: val === null || val === void 0 ? void 0 : val.identifier, projectsRefetch: projectsRefetch, providers: providers, provider: provider, theme: theme }), _jsx(Toaster, { position: "bottom-left", richColors: true, closeButton: true, visibleToasts: 3 })] }) }) }, ind)))] })] }) }) }) }) }));
92
149
  };
93
- const TabsTrigger = ({ api_key, children, value, projects, projectsRefetch, openedProjects, setOpenedProjects, setActiveTab, ...props }) => {
150
+ const TabsTriggerCustom = ({ api_key, children, value, project_categories, project_templates, projects, projectsRefetch, openedProjects, setOpenedProjects, setActiveTab, ...props }) => {
94
151
  const [appNameEdit, setAppNameEdit] = useState(false);
95
152
  const [getValidity, setValidity] = useState(true);
96
153
  const [renaming, setRenaming] = useState(false);
154
+ const queryClient = useQueryClient();
97
155
  const nameChange = (e) => {
98
156
  var _a;
99
157
  const appName = e.target.value || "";
@@ -111,10 +169,11 @@ const TabsTrigger = ({ api_key, children, value, projects, projectsRefetch, open
111
169
  if (getValidity && (appName.toLowerCase() !== String(value === null || value === void 0 ? void 0 : value.name).toLowerCase())) {
112
170
  try {
113
171
  setRenaming(true);
114
- const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/projects/${value === null || value === void 0 ? void 0 : value.identifier}`, { method: 'PATCH', headers: { "X-API-KEY": `${api_key}` }, body: JSON.stringify({ name: appName }) });
172
+ const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/projects/${value === null || value === void 0 ? void 0 : value.identifier}`, { method: 'PATCH', headers: { "X-API-KEY": `${api_key}`, "Content-Type": "application/json" }, body: JSON.stringify({ name: appName }) });
115
173
  if (response.ok) {
116
174
  projectsRefetch();
117
175
  setOpenedProjects(openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.map((project) => project.identifier === (value === null || value === void 0 ? void 0 : value.identifier) ? { ...project, name: appName } : project));
176
+ queryClient.invalidateQueries({ queryKey: [`project_${value === null || value === void 0 ? void 0 : value.identifier}`] });
118
177
  }
119
178
  setRenaming(false);
120
179
  }
@@ -125,15 +184,15 @@ const TabsTrigger = ({ api_key, children, value, projects, projectsRefetch, open
125
184
  }
126
185
  setAppNameEdit(false);
127
186
  };
128
- return (_jsx(Tabs.Trigger, { value: value === null || value === void 0 ? void 0 : value.identifier, children: _jsxs(Flex, { justify: 'between', align: 'center', gap: '2', children: [appNameEdit ?
129
- _jsx(TextField.Root, { max: 50, color: !getValidity ? 'red' : undefined, autoFocus: true, onChange: nameChange, onBlur: handleInputOnBlur, placeholder: "App Name", defaultValue: value === null || value === void 0 ? void 0 : value.name, size: "1", variant: 'surface', children: renaming && _jsxs(TextField.Slot, { side: 'right', pr: '2', children: [_jsx(Spinner, { size: '1', loading: true }), " "] }) })
187
+ return (_jsx(TabsTrigger, { value: value === null || value === void 0 ? void 0 : value.identifier, className: 'rounded-xs px-2', children: _jsxs("div", { className: 'flex justify-between items-center gap-2 h-5', children: [appNameEdit ?
188
+ _jsxs("div", { className: 'relative', children: [_jsx(Input, { max: 50, className: cn('h-5 pl-1 text-xs rounded-xs focus-visible:ring-1 focus-visible:ring-offset-0', !getValidity && 'border-red-500'), autoFocus: true, onChange: nameChange, onBlur: handleInputOnBlur, placeholder: "App Name", defaultValue: value === null || value === void 0 ? void 0 : value.name }), renaming && _jsx("div", { className: 'absolute right-2 top-1/2 -translate-y-1/2', children: _jsx(Spinner, { size: 'sm' }) })] })
130
189
  :
131
- _jsx(Text, { onDoubleClick: () => { setAppNameEdit(true); }, weight: "bold", size: "1", style: { padding: '4px 2px' }, children: (value === null || value === void 0 ? void 0 : value.name) || 'app name' }), _jsxs(Badge, { size: '1', style: { height: 15, width: 15, padding: 5 }, onClick: () => {
190
+ _jsx("span", { onDoubleClick: () => { setAppNameEdit(true); }, className: 'text-xs py-1 px-0.5', children: (value === null || value === void 0 ? void 0 : value.name) || 'app name' }), _jsxs(Badge, { variant: 'outline', className: 'h-4 w-4 p-1 cursor-pointer rounded-xs', onClick: () => {
132
191
  var _a, _b;
133
192
  setOpenedProjects(openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.filter((project) => (project === null || project === void 0 ? void 0 : project.identifier) !== (value === null || value === void 0 ? void 0 : value.identifier)));
134
193
  const currentIndex = openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects.findIndex((project) => (project === null || project === void 0 ? void 0 : project.identifier) === (value === null || value === void 0 ? void 0 : value.identifier));
135
194
  const nextTab = ((_a = openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects[currentIndex + 1]) === null || _a === void 0 ? void 0 : _a.identifier) || ((_b = openedProjects === null || openedProjects === void 0 ? void 0 : openedProjects[currentIndex - 1]) === null || _b === void 0 ? void 0 : _b.identifier);
136
195
  setActiveTab(nextTab || 'home');
137
- }, children: [" ", _jsx(FaTimes, { size: '12' })] })] }) }));
196
+ }, children: [" ", _jsx(FaTimes, { size: 12 })] })] }) }));
138
197
  };
139
198
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ type PaneContextType = {
2
+ containerId: string;
3
+ containerRef: React.RefObject<HTMLDivElement | null>;
4
+ };
5
+ export declare function PaneProvider({ children, containerId }: {
6
+ children: React.ReactNode;
7
+ containerId: string;
8
+ }): import("react").JSX.Element;
9
+ export declare function usePaneContext(): PaneContextType;
10
+ export {};
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useRef, cloneElement, Children, isValidElement } from 'react';
4
+ const PaneContext = createContext(null);
5
+ export function PaneProvider({ children, containerId }) {
6
+ const containerRef = useRef(null);
7
+ // Clone the first child and add the ref to it
8
+ const childArray = Children.toArray(children);
9
+ const firstChild = childArray[0];
10
+ if (isValidElement(firstChild) && firstChild.type === 'div') {
11
+ const clonedChild = cloneElement(firstChild, {
12
+ ref: containerRef,
13
+ });
14
+ return (_jsxs(PaneContext.Provider, { value: { containerId, containerRef }, children: [clonedChild, childArray.slice(1)] }));
15
+ }
16
+ return (_jsx(PaneContext.Provider, { value: { containerId, containerRef }, children: children }));
17
+ }
18
+ export function usePaneContext() {
19
+ return useContext(PaneContext);
20
+ }
21
+ //# sourceMappingURL=pane-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pane-context.js","sourceRoot":"","sources":["../../src/lib/pane-context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAa,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAO5G,MAAM,WAAW,GAAG,aAAa,CAAyB,IAAI,CAAC,CAAA;AAE/D,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAsD;IACxG,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAEjD,8CAA8C;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,YAAY,CAAC,UAAqC,EAAE;YACtE,GAAG,EAAE,YAAY;SAClB,CAAC,CAAC;QAEH,OAAO,CACL,MAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,aACvD,WAAW,EACX,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IACC,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,YACvD,QAAQ,GACY,CACxB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;AAChC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { toast as sonnerToast, ExternalToast } from 'sonner';
2
+ export declare const toast: {
3
+ success: (message: string | React.ReactNode, data?: ExternalToast) => string | number;
4
+ error: (message: string | React.ReactNode, data?: ExternalToast) => string | number;
5
+ info: (message: string | React.ReactNode, data?: ExternalToast) => string | number;
6
+ warning: (message: string | React.ReactNode, data?: ExternalToast) => string | number;
7
+ message: (message: string | React.ReactNode, data?: ExternalToast) => string | number;
8
+ loading: (message: string | React.ReactNode, data?: ExternalToast) => string | number;
9
+ promise: <T>(promise: Promise<T> | (() => Promise<T>), data?: Parameters<typeof sonnerToast.promise>[1]) => void;
10
+ custom: (jsx: React.ReactNode, data?: ExternalToast) => string | number;
11
+ dismiss: (id?: number | string) => string | number;
12
+ };
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { toast as sonnerToast } from 'sonner';
3
+ // Wrapper that adds a custom class to identify FlowStudio toasts
4
+ const createToastWithClass = (type) => {
5
+ return (message, data) => {
6
+ var _a;
7
+ return sonnerToast[type](message, {
8
+ ...data,
9
+ className: 'flowstudio-toast',
10
+ classNames: {
11
+ ...data === null || data === void 0 ? void 0 : data.classNames,
12
+ toast: `flowstudio-toast ${((_a = data === null || data === void 0 ? void 0 : data.classNames) === null || _a === void 0 ? void 0 : _a.toast) || ''}`,
13
+ }
14
+ });
15
+ };
16
+ };
17
+ // Export a scoped toast for FlowStudio
18
+ export const toast = {
19
+ success: createToastWithClass('success'),
20
+ error: createToastWithClass('error'),
21
+ info: createToastWithClass('info'),
22
+ warning: createToastWithClass('warning'),
23
+ message: createToastWithClass('message'),
24
+ loading: createToastWithClass('loading'),
25
+ promise: (promise, data) => {
26
+ sonnerToast.promise(promise, data);
27
+ },
28
+ custom: (jsx, data) => {
29
+ return sonnerToast.custom((id) => jsx, {
30
+ ...data,
31
+ className: 'flowstudio-toast',
32
+ });
33
+ },
34
+ dismiss: sonnerToast.dismiss,
35
+ };
36
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/lib/toast.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,KAAK,IAAI,WAAW,EAAiB,MAAM,QAAQ,CAAA;AAE5D,iEAAiE;AACjE,MAAM,oBAAoB,GAAG,CAAC,IAAsE,EAAE,EAAE;IACtG,OAAO,CAAC,OAAiC,EAAE,IAAoB,EAAE,EAAE;;QACjE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;YAChC,GAAG,IAAI;YACP,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE;gBACV,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU;gBACnB,KAAK,EAAE,oBAAoB,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,KAAK,KAAI,EAAE,EAAE;aAC3D;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAA;AAED,uCAAuC;AACvC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC;IACxC,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC;IACpC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,CAAK,OAAwC,EAAE,IAAgD,EAAQ,EAAE;QAChH,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,MAAM,EAAE,CAAC,GAAoB,EAAE,IAAoB,EAAE,EAAE;QACrD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAyB,EAAE;YAC3D,GAAG,IAAI;YACP,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,EAAE,WAAW,CAAC,OAAO;CAC7B,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
@@ -0,0 +1,6 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
6
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC"}
@@ -1 +1 @@
1
- export default function NewProject({ api_key, userId, projects, refetch, providers, provider, align, children, ...rest }: any): import("react/jsx-runtime").JSX.Element;
1
+ export default function NewProject({ api_key, userId, defaultProject, projects, refetch, providers, provider, align, children, ...rest }: any): import("react").JSX.Element;
@@ -1,41 +1,53 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useConfigStore } from "./zustand/store";
4
- import { Button, Flex, Popover, Select, Spinner, TextArea, TextField, Text } from "@radix-ui/themes";
5
- import * as Yup from "yup";
6
- import { yupResolver } from "@hookform/resolvers/yup";
7
- import { Controller, useForm } from "react-hook-form";
8
- import * as Form from "@radix-ui/react-form";
4
+ import * as Zod from "zod";
5
+ import { zodResolver } from "@hookform/resolvers/zod";
6
+ import { useForm } from "react-hook-form";
9
7
  import { Countries } from "countries-geo";
10
8
  import { useEffect } from "react";
11
9
  import flow_constants from "./constants";
12
- export default function NewProject({ api_key, userId, projects, refetch, providers, provider, align, children, ...rest }) {
10
+ import { Button } from "@osanim/shared";
11
+ import { Popover, PopoverContent, PopoverTrigger, PopoverClose } from "@osanim/shared";
12
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from "@osanim/shared";
13
+ import { Textarea } from "@osanim/shared";
14
+ import { Input } from "@osanim/shared";
15
+ import { Spinner } from "@osanim/shared";
16
+ import { Form, FormControl, FormField, FormItem, FormMessage } from "@osanim/shared";
17
+ export default function NewProject({ api_key, userId, defaultProject, projects, refetch, providers, provider, align, children, ...rest }) {
13
18
  const { openNewProject, setOpenNewProject, openedProjects, setOpenedProjects, setActiveTab } = useConfigStore();
14
- const formSchema = Yup.object().shape({
15
- name: Yup.string().required('required')
16
- .test('unique-name', 'Project name already exists', async (value) => {
17
- var _a;
18
- if (!value)
19
- return true;
20
- // const response = await fetch(`/api/projects`);
21
- // const projects = await response.json();
22
- return !((_a = projects === null || projects === void 0 ? void 0 : projects.results) === null || _a === void 0 ? void 0 : _a.some((project) => project.name === value));
19
+ const formSchema = Zod.object({
20
+ name: Zod.string().min(1, 'required')
21
+ .refine((value) => { var _a; return !((_a = projects === null || projects === void 0 ? void 0 : projects.results) === null || _a === void 0 ? void 0 : _a.some((project) => project.name === value)); }, {
22
+ message: 'Project name already exists'
23
23
  }),
24
- description: Yup.string(),
25
- type: Yup.string().required('required'),
26
- provider: Yup.string().required('required')
24
+ description: Zod.string().optional(),
25
+ flow: Zod.object().optional(),
26
+ flow_draft: Zod.object().optional(),
27
+ type: Zod.string().min(1, 'required'),
28
+ provider: Zod.string().min(1, 'required'),
27
29
  });
28
- const { control, register, handleSubmit: handleFormSubmit, getValues, setValue, reset, formState: { touchedFields, errors, isSubmitting }, } = useForm({
29
- resolver: yupResolver(formSchema),
30
+ const form = useForm({
31
+ resolver: zodResolver(formSchema),
32
+ defaultValues: {
33
+ name: '',
34
+ description: '',
35
+ flow: undefined,
36
+ flow_draft: undefined,
37
+ type: 'ussd',
38
+ provider: ''
39
+ }
30
40
  });
31
- const handleSubmit = async (data) => {
41
+ const onSubmit = async (data) => {
32
42
  try {
33
43
  const post_data = JSON.stringify({
34
44
  owner: userId,
35
45
  name: data.name,
36
46
  description: data.description,
37
47
  type: data.type,
38
- provider: data.provider
48
+ provider: data.provider,
49
+ flow: data.flow,
50
+ flow_draft: data.flow_draft
39
51
  });
40
52
  // console.log(post_data)
41
53
  const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/projects`, {
@@ -65,7 +77,7 @@ export default function NewProject({ api_key, userId, projects, refetch, provide
65
77
  else {
66
78
  setOpenedProjects([...openedProjects, { identifier: response_data === null || response_data === void 0 ? void 0 : response_data.identifier, name: response_data === null || response_data === void 0 ? void 0 : response_data.name }]);
67
79
  }
68
- reset();
80
+ form.reset();
69
81
  setOpenNewProject(false);
70
82
  }
71
83
  else {
@@ -78,25 +90,32 @@ export default function NewProject({ api_key, userId, projects, refetch, provide
78
90
  };
79
91
  useEffect(() => {
80
92
  if (provider) {
81
- setValue('provider', provider === null || provider === void 0 ? void 0 : provider.identifier);
93
+ form.setValue('provider', provider === null || provider === void 0 ? void 0 : provider.identifier);
82
94
  }
83
95
  }, [provider]);
84
- return (_jsxs(Popover.Root, { children: [_jsx(Popover.Trigger, { children: _jsx(Button, { ...rest, children: children }) }), _jsx(Popover.Content, { width: '100vw', maxWidth: '300px', side: 'bottom', align: align || 'center', children: _jsx(Flex, { direction: 'column', gap: '3', children: _jsx(Form.Root, { onSubmit: handleFormSubmit(handleSubmit), noValidate: true, children: _jsxs(Flex, { direction: 'column', gap: '3', children: [_jsx(Form.Field, { name: "name", serverInvalid: errors.name != null, children: _jsx(TextField.Root, { size: '1', type: "text", color: errors.name != null ? 'red' : undefined, autoComplete: "off", placeholder: "App Name", ...register("name"), style: {} }) }), _jsx(Form.Field, { name: "description", serverInvalid: errors.description != null, children: _jsx(TextArea, { size: '1', placeholder: "Description (Optional)", color: errors.description != null ? 'red' : undefined, ...register("description"), style: {} }) }), _jsxs(Flex, { justify: 'between', align: 'center', gap: '3', children: [_jsx(Form.Field, { name: "type", serverInvalid: errors.type != null, children: _jsx(Controller, { name: "type", control: control, render: ({ field }) => (_jsxs(Select.Root, { size: '1', value: field.value, onValueChange: field.onChange, children: [_jsx(Select.Trigger, { placeholder: "Select Type", id: "type", color: touchedFields.type && errors.type != null ? 'red' : undefined, variant: 'soft', style: { width: "100%", padding: "1px 10px" } }), _jsxs(Select.Content, { position: "popper", children: [_jsx(Select.Item, { value: 'ussd', children: "USSD" }), _jsx(Select.Item, { value: 'ivr', disabled: true, children: "IVR" }), _jsx(Select.Item, { value: 'sms', disabled: true, children: "SMS" }), _jsx(Select.Item, { value: 'email', disabled: true, children: "Email" }), _jsx(Select.Item, { value: 'whatsapp', disabled: true, children: "Whatsapp" }), _jsx(Select.Item, { value: 'facebook', disabled: true, children: "Facebook" }), _jsx(Select.Item, { value: 'messenger', disabled: true, children: "Messenger" })] })] })) }) }), _jsx(Form.Field, { name: "provider", serverInvalid: errors.provider != null, children: (provider === null || provider === void 0 ? void 0 : provider.identifier) ? _jsx(Text, { weight: 'bold', size: '1', color: 'gray', children: provider === null || provider === void 0 ? void 0 : provider.name }) :
85
- _jsx(Controller, { name: "provider", control: control, render: ({ field }) => (_jsxs(Select.Root, { size: '1', value: field.value, onValueChange: field.onChange, children: [_jsx(Select.Trigger, { placeholder: "Select Provider", color: touchedFields.provider && errors.provider != null ? 'red' : undefined, variant: 'soft', id: "provider", style: { width: "100%", padding: "1px 10px" } }), _jsx(Select.Content, { position: "popper", align: 'end', style: { maxHeight: '300px' }, children: (() => {
86
- var _a, _b;
87
- const grouped = (_b = (_a = providers === null || providers === void 0 ? void 0 : providers.results) === null || _a === void 0 ? void 0 : _a.sort((a, b) => { var _a; return (_a = a === null || a === void 0 ? void 0 : a.country) === null || _a === void 0 ? void 0 : _a.localeCompare(b === null || b === void 0 ? void 0 : b.country); })) === null || _b === void 0 ? void 0 : _b.reduce((acc, provider) => {
88
- var _a, _b;
89
- const country = ((_b = (_a = Countries === null || Countries === void 0 ? void 0 : Countries.getAll) === null || _a === void 0 ? void 0 : _a.find((c) => c.iso === (provider === null || provider === void 0 ? void 0 : provider.country))) === null || _b === void 0 ? void 0 : _b.name) ||
90
- 'Multi-National';
91
- acc[country] = acc[country] || [];
92
- acc[country].push(provider);
93
- return acc;
94
- }, {});
95
- return grouped
96
- ? Object.entries(grouped).map(([country, group]) => (_jsxs(Select.Group, { children: [_jsx(Select.Label, { style: { background: 'var(--gray-a4)' }, children: country }), group
97
- .sort((a, b) => a.name.localeCompare(b.name))
98
- .map((provider) => (_jsx(Select.Item, { value: provider === null || provider === void 0 ? void 0 : provider.identifier, children: provider === null || provider === void 0 ? void 0 : provider.name }, provider === null || provider === void 0 ? void 0 : provider.identifier)))] }, country)))
99
- : null;
100
- })() })] })) }) })] }), _jsxs(Flex, { justify: 'end', gap: '3', children: [_jsx(Popover.Close, { children: _jsx(Button, { size: '1', type: 'reset', onClick: () => { reset(); }, color: 'gray', variant: 'soft', children: "Cancel" }) }), _jsxs(Button, { size: '1', type: 'submit', disabled: isSubmitting, highContrast: true, children: [_jsx(Spinner, { loading: isSubmitting }), " ", isSubmitting ? 'Creating Project' : 'Create Project'] })] })] }) }) }) })] }));
96
+ useEffect(() => {
97
+ if (defaultProject) {
98
+ form.setValue('name', defaultProject === null || defaultProject === void 0 ? void 0 : defaultProject.name);
99
+ form.setValue('description', defaultProject === null || defaultProject === void 0 ? void 0 : defaultProject.description);
100
+ form.setValue('flow', defaultProject === null || defaultProject === void 0 ? void 0 : defaultProject.flow);
101
+ form.setValue('flow_draft', defaultProject === null || defaultProject === void 0 ? void 0 : defaultProject.flow_draft);
102
+ }
103
+ }, [defaultProject]);
104
+ return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { size: 'sm', className: "text-xs", ...rest, children: children }) }), _jsx(PopoverContent, { className: 'w-screen max-w-[300px]', side: 'bottom', align: align || 'center', children: _jsx("div", { className: 'flex flex-col gap-3', children: _jsx(Form, { ...form, children: _jsx("form", { id: "project-form", onSubmit: form.handleSubmit(onSubmit), className: "flex flex-col gap-2", children: _jsxs("div", { className: 'flex flex-col gap-3', children: [_jsx(FormField, { control: form.control, name: "name", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormControl, { children: _jsx(Input, { className: "text-xs", type: "text", autoComplete: "off", placeholder: "App Name", ...field }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "description", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormControl, { children: _jsx(Textarea, { className: "min-h-[60px] text-xs", placeholder: "Description (Optional)", ...field }) }), _jsx(FormMessage, {})] })) }), _jsxs("div", { className: 'flex justify-between items-center gap-3', children: [_jsx(FormField, { control: form.control, name: "type", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormControl, { children: _jsxs(Select, { value: field.value, onValueChange: field.onChange, defaultValue: "ussd", className: "text-xs", children: [_jsx(SelectTrigger, { size: 'sm', className: "text-xs w-full", id: "type", children: _jsx(SelectValue, { placeholder: "Select Type" }) }), _jsxs(SelectContent, { position: "popper", children: [_jsx(SelectItem, { value: 'ussd', children: "USSD" }), _jsx(SelectItem, { value: 'ivr', disabled: true, children: "IVR" }), _jsx(SelectItem, { value: 'sms', disabled: true, children: "SMS" }), _jsx(SelectItem, { value: 'email', disabled: true, children: "Email" }), _jsx(SelectItem, { value: 'whatsapp', disabled: true, children: "Whatsapp" }), _jsx(SelectItem, { value: 'facebook', disabled: true, children: "Facebook" }), _jsx(SelectItem, { value: 'messenger', disabled: true, children: "Messenger" })] })] }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "provider", render: ({ field }) => (_jsxs(FormItem, { children: [(provider === null || provider === void 0 ? void 0 : provider.identifier) ? (_jsx("span", { className: 'font-bold text-sm text-muted-foreground', children: provider === null || provider === void 0 ? void 0 : provider.name })) : (_jsx(FormControl, { children: _jsxs(Select, { value: field.value, onValueChange: field.onChange, children: [_jsx(SelectTrigger, { size: 'sm', className: "text-xs w-full", id: "provider", children: _jsx(SelectValue, { placeholder: "Select Provider" }) }), _jsx(SelectContent, { position: "popper", align: 'end', className: 'max-h-[300px]', children: (() => {
105
+ var _a, _b;
106
+ const grouped = (_b = (_a = providers === null || providers === void 0 ? void 0 : providers.results) === null || _a === void 0 ? void 0 : _a.sort((a, b) => { var _a; return (_a = a === null || a === void 0 ? void 0 : a.country) === null || _a === void 0 ? void 0 : _a.localeCompare(b === null || b === void 0 ? void 0 : b.country); })) === null || _b === void 0 ? void 0 : _b.reduce((acc, provider) => {
107
+ var _a, _b;
108
+ const country = ((_b = (_a = Countries === null || Countries === void 0 ? void 0 : Countries.getAll) === null || _a === void 0 ? void 0 : _a.find((c) => c.iso === (provider === null || provider === void 0 ? void 0 : provider.country))) === null || _b === void 0 ? void 0 : _b.name) ||
109
+ 'Multi-National';
110
+ acc[country] = acc[country] || [];
111
+ acc[country].push(provider);
112
+ return acc;
113
+ }, {});
114
+ return grouped
115
+ ? Object.entries(grouped).map(([country, group]) => (_jsxs(SelectGroup, { children: [_jsx(SelectLabel, { className: 'bg-muted', children: country }), group
116
+ .sort((a, b) => a.name.localeCompare(b.name))
117
+ .map((provider) => (_jsx(SelectItem, { value: provider === null || provider === void 0 ? void 0 : provider.identifier, children: provider === null || provider === void 0 ? void 0 : provider.name }, provider === null || provider === void 0 ? void 0 : provider.identifier)))] }, country)))
118
+ : null;
119
+ })() })] }) })), _jsx(FormMessage, {})] })) })] }), _jsxs("div", { className: 'flex justify-end gap-3', children: [_jsx(PopoverClose, { asChild: true, children: _jsx(Button, { size: 'sm', className: "text-xs", type: 'reset', onClick: () => { form.reset(); }, variant: 'secondary', children: "Cancel" }) }), _jsxs(Button, { size: 'sm', className: "text-xs", type: 'submit', disabled: form.formState.isSubmitting, children: [_jsx(Spinner, { loading: form.formState.isSubmitting, size: 'sm' }), " ", form.formState.isSubmitting ? 'Creating Project' : 'Create Project'] })] })] }) }) }) }) })] }));
101
120
  }
102
121
  //# sourceMappingURL=new_project.js.map