flowstudio 0.0.31 → 0.0.33

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 (50) hide show
  1. package/README.md +6 -6
  2. package/dist/ai_creator.js +1 -9
  3. package/dist/ai_creator.js.map +1 -1
  4. package/dist/api_calls.js +5 -6
  5. package/dist/api_calls.js.map +1 -1
  6. package/dist/app_settings.js +3 -2
  7. package/dist/app_settings.js.map +1 -1
  8. package/dist/channels.d.ts +16 -0
  9. package/dist/channels.js +133 -0
  10. package/dist/channels.js.map +1 -0
  11. package/dist/components/mention_input/index.js +1 -1
  12. package/dist/constants.js +7 -5
  13. package/dist/constants.js.map +1 -1
  14. package/dist/context.js +1 -1
  15. package/dist/context.js.map +1 -1
  16. package/dist/globals.css +19 -8
  17. package/dist/home.d.ts +1 -1
  18. package/dist/home.js +55 -27
  19. package/dist/home.js.map +1 -1
  20. package/dist/index.d.ts +17 -1
  21. package/dist/index.js +29 -11
  22. package/dist/index.js.map +1 -1
  23. package/dist/new_project.js +52 -29
  24. package/dist/new_project.js.map +1 -1
  25. package/dist/node.js +8 -13
  26. package/dist/node.js.map +1 -1
  27. package/dist/providers/index.d.ts +4 -0
  28. package/dist/providers/index.js +97 -0
  29. package/dist/providers/index.js.map +1 -0
  30. package/dist/secrets.js +3 -2
  31. package/dist/secrets.js.map +1 -1
  32. package/dist/simulator.js +182 -62
  33. package/dist/simulator.js.map +1 -1
  34. package/dist/studio_pane.js +118 -80
  35. package/dist/studio_pane.js.map +1 -1
  36. package/dist/styles/globals.css +2 -2
  37. package/dist/styles.css +1 -1
  38. package/dist/top_left_panel.d.ts +1 -1
  39. package/dist/top_left_panel.js +2 -2
  40. package/dist/top_left_panel.js.map +1 -1
  41. package/dist/top_right_panel.js +1 -1
  42. package/dist/top_right_panel.js.map +1 -1
  43. package/dist/triggers.js +129 -87
  44. package/dist/triggers.js.map +1 -1
  45. package/dist/zustand/store.d.ts +92 -0
  46. package/dist/zustand/store.js +4 -0
  47. package/dist/zustand/store.js.map +1 -1
  48. package/package.json +4 -3
  49. package/src/globals.css +19 -8
  50. package/src/styles/globals.css +2 -2
package/dist/home.js CHANGED
@@ -3,37 +3,37 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import ProjectWidget from "./project_widget";
4
4
  import { FaPlus } from "react-icons/fa";
5
5
  import { useEffect, useState } from "react";
6
- import { useConfigStore } from "./zustand/store";
7
6
  import NewProject from "./new_project";
8
7
  import { Card, CardContent, CardFooter } from "@osanim/shared";
9
8
  import { Button } from "@osanim/shared";
10
9
  import { Skeleton } from "@osanim/shared";
11
10
  import { Separator } from "@osanim/shared";
12
11
  import { InputGroup, InputGroupAddon, InputGroupInput } from "@osanim/shared";
13
- import { Plus, SearchIcon } from "lucide-react";
14
- import { Tabs, TabsContent, TabsList, TabsTrigger } from "@osanim/shared";
15
- export default function HomePage({ api_key, userId, project_categories, project_templates, projects, projectsPending, templatesPending, categoriesPending, refetch, providers, provider }) {
16
- var _a, _b;
12
+ import { Tabs, TabsList, TabsTrigger } from "@osanim/shared";
13
+ import { GSheet } from "@osanim/shared";
14
+ import { useConfigStore } from "./zustand/store";
15
+ import { Plus, SearchIcon, Clock, ChevronRight, LayoutTemplate, Zap, ArrowRight, Activity, } from "lucide-react";
16
+ const steps = [
17
+ { n: 1, title: "Create a new app", desc: "Start from scratch or use a template", color: "text-primary border-primary" },
18
+ { n: 2, title: "Add triggers & actions", desc: "Drag and drop to build your flow", color: "text-violet-400 border-violet-400" },
19
+ { n: 3, title: "Connect & automate", desc: "Test and turn on your workflow", color: "text-green-400 border-green-400" },
20
+ ];
21
+ export default function HomePage({ api_key, userId, project_categories, project_templates, projects, projectsPending, templatesPending, categoriesPending, refetch, providers, provider, quota }) {
22
+ var _a, _b, _c, _d;
23
+ const { openTemplates, setOpenTemplates } = useConfigStore();
17
24
  const [getData, setData] = useState([]);
18
25
  const [getSearch, setSearch] = useState('');
19
26
  const [selectedCategory, setSelectedCategory] = useState('all');
20
- const { openNewProject, setOpenNewProject } = useConfigStore();
21
- // useEffect(()=>{
22
- // refetch()
23
- // }, [])
24
27
  useEffect(() => {
25
28
  var _a, _b;
26
29
  if (getSearch && ((_a = projects === null || projects === void 0 ? void 0 : projects.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
27
- let searchedData = (_b = projects === null || projects === void 0 ? void 0 : projects.results) === null || _b === void 0 ? void 0 : _b.filter((val) => {
30
+ const searchedData = (_b = projects === null || projects === void 0 ? void 0 : projects.results) === null || _b === void 0 ? void 0 : _b.filter((val) => {
28
31
  var _a, _b, _c;
29
- if ((getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase()) === '') {
32
+ if ((getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase()) === '')
30
33
  return val;
31
- }
32
- else if (((_a = val === null || val === void 0 ? void 0 : val.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase())) ||
34
+ return (((_a = val === null || val === void 0 ? void 0 : val.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase())) ||
33
35
  ((_b = val === null || val === void 0 ? void 0 : val.description) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase())) ||
34
- ((_c = val === null || val === void 0 ? void 0 : val.created) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes(getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase()))) {
35
- return val;
36
- }
36
+ ((_c = val === null || val === void 0 ? void 0 : val.created) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes(getSearch === null || getSearch === void 0 ? void 0 : getSearch.toLowerCase())));
37
37
  });
38
38
  setData(searchedData);
39
39
  }
@@ -44,16 +44,44 @@ export default function HomePage({ api_key, userId, project_categories, project_
44
44
  const filteredTemplates = selectedCategory === 'all'
45
45
  ? project_templates === null || project_templates === void 0 ? void 0 : project_templates.results
46
46
  : (_a = project_templates === null || project_templates === void 0 ? void 0 : project_templates.results) === null || _a === void 0 ? void 0 : _a.filter((template) => (template === null || template === void 0 ? void 0 : template.category) === selectedCategory);
47
- return (_jsx("div", { className: 'flex flex-col gap-5 p-5 w-full h-full overflow-y-auto', children: _jsxs(Tabs, { defaultValue: "apps", className: "gap-5", children: [_jsxs("div", { className: 'flex justify-between items-center w-full gap-5 sticky top-0', children: [_jsxs(TabsList, { className: "rounded-sm px-2", children: [_jsx(TabsTrigger, { value: "apps", className: "flex-1 text-xs rounded-xs", children: "Apps" }), _jsx(TabsTrigger, { value: "templates", className: "flex-1 text-xs rounded-xs", children: "Templates" })] }), _jsxs("div", { className: 'flex items-center gap-3', children: [_jsxs(InputGroup, { children: [_jsx(InputGroupInput, { className: "text-xs", placeholder: "Search ...", onChange: ((event) => { if (event.target.value == '') {
48
- setSearch('');
49
- }
50
- else {
51
- setSearch(event.target.value);
52
- } }) }), _jsx(InputGroupAddon, { children: _jsx(SearchIcon, {}) })] }), _jsxs(NewProject, { api_key: api_key, userId: userId, projects: projects, refetch: refetch, providers: providers, provider: provider, align: 'end', className: '', children: [_jsx(Plus, {}), " ", _jsx("span", { className: 'hidden md:inline-block', children: "New" })] })] })] }), _jsx(TabsContent, { value: "apps", children: _jsxs("div", { className: "w-full grid grid-cols-2 xs:grid-cols-3 sm:grid-cols-3 md:grid-cols-5 lg:grid-cols-5 xl:grid-cols-9 gap-5 mt-5", children: [projectsPending && Array.from({ length: 18 }).map((_, ind) => (_jsx(Card, { className: 'gap-0 p-0', children: _jsxs(CardContent, { className: 'flex flex-col gap-2 p-4', children: [_jsx(Skeleton, { className: 'h-[90px] w-full' }), _jsx(Separator, {}), _jsx(Skeleton, { className: 'h-5 w-full' })] }) }, ind))), getData === null || getData === void 0 ? void 0 : getData.map((val, ind) => (_jsx(ProjectWidget, { api_key: api_key, identifier: val.identifier, name: val.name }, ind))), (projects === null || projects === void 0 ? void 0 : projects.count) == 0 && getSearch == '' &&
53
- _jsx(Card, { className: 'gap-0 p-0', children: _jsxs(CardContent, { className: 'flex flex-col gap-5 justify-center items-center h-full p-6', children: [_jsx("span", { className: 'font-bold', children: "There are no Flow Apps" }), _jsxs("div", { className: 'flex gap-5 justify-center items-center', children: [_jsxs(NewProject, { api_key: api_key, userId: userId, projects: projects, refetch: refetch, providers: providers, size: 'default', children: [_jsx(FaPlus, {}), " ", _jsx("span", { className: 'hidden md:inline-block', children: "Create First App" })] }), _jsx("a", { href: 'https://flowstudio-docs.vercel.app', target: '_blank', children: _jsx(Button, { size: 'default', variant: 'ghost', children: "Learn More" }) })] })] }) })] }) }), _jsxs(TabsContent, { value: "templates", className: "flex flex-col gap-5", children: [_jsx("div", { className: "w-full flex justify-center ", children: _jsx(Tabs, { defaultValue: "all", value: selectedCategory, onValueChange: setSelectedCategory, className: "", children: _jsxs(TabsList, { className: "rounded-sm px-2", children: [_jsx(TabsTrigger, { value: "all", className: "flex-1 text-xs rounded-xs", children: "All" }), categoriesPending && Array.from({ length: 3 }).map((_, ind) => (_jsx(Skeleton, { className: "h-6 w-16 rounded-xs" }, ind))), !categoriesPending && ((_b = project_categories === null || project_categories === void 0 ? void 0 : project_categories.results) === null || _b === void 0 ? void 0 : _b.map((val, ind) => (_jsx(TabsTrigger, { value: val === null || val === void 0 ? void 0 : val.identifier, className: "flex-1 text-xs rounded-xs", children: val === null || val === void 0 ? void 0 : val.name }, ind))))] }) }) }), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 xl:grid-cols-5 gap-5", children: [templatesPending && Array.from({ length: 10 }).map((_, ind) => (_jsxs(Card, { className: "flex min-h-[280px] flex-col overflow-hidden gap-0 p-0", children: [_jsx("div", { className: "aspect-video w-full bg-muted", children: _jsx(Skeleton, { className: "h-full w-full" }) }), _jsxs(CardContent, { className: "flex flex-1 flex-col gap-2 p-4", children: [_jsx(Skeleton, { className: "h-5 w-3/4" }), _jsx(Skeleton, { className: "h-4 w-full" }), _jsx(Skeleton, { className: "h-4 w-2/3" })] }), _jsx(Separator, {}), _jsx(CardFooter, { className: "flex items-center justify-end gap-2 p-4 pt-3", children: _jsx(Skeleton, { className: "h-8 w-20" }) })] }, ind))), filteredTemplates === null || filteredTemplates === void 0 ? void 0 : filteredTemplates.map((val, ind) => {
54
- var _a, _b;
55
- const imageUrl = (val === null || val === void 0 ? void 0 : val.thumbnail) || (val === null || val === void 0 ? void 0 : val.image) || (val === null || val === void 0 ? void 0 : val.cover_image) || (val === null || val === void 0 ? void 0 : val.coverImage);
56
- return (_jsxs(Card, { className: "flex min-h-[280px] flex-col overflow-hidden gap-0 p-0", children: [_jsx("div", { className: "aspect-video w-full bg-muted", children: imageUrl ? (_jsx("img", { src: imageUrl, alt: (_a = val === null || val === void 0 ? void 0 : val.title) !== null && _a !== void 0 ? _a : "Template preview", className: "h-full w-full object-cover" })) : (_jsx("div", { className: "flex h-full w-full items-center justify-center text-xs text-muted-foreground", children: "No preview available" })) }), _jsxs(CardContent, { className: "flex flex-1 flex-col gap-2 p-4", children: [_jsx("h4", { className: "text-sm font-semibold", children: val === null || val === void 0 ? void 0 : val.title }), _jsx("p", { className: "text-xs text-muted-foreground line-clamp-3", children: val === null || val === void 0 ? void 0 : val.description })] }), _jsx(Separator, {}), _jsx(CardFooter, { className: "flex items-center justify-end gap-2 p-4 pt-3", children: _jsx(NewProject, { api_key: api_key, userId: userId, defaultProject: { name: val === null || val === void 0 ? void 0 : val.title, description: val === null || val === void 0 ? void 0 : val.description, flow: val === null || val === void 0 ? void 0 : val.flow, flow_draft: val === null || val === void 0 ? void 0 : val.flow }, projects: projects, refetch: refetch, providers: providers, size: 'xs', children: "Use Template" }) })] }, (_b = val === null || val === void 0 ? void 0 : val.identifier) !== null && _b !== void 0 ? _b : ind));
57
- })] })] })] }) }));
47
+ const categoryMap = Object.fromEntries(((_b = project_categories === null || project_categories === void 0 ? void 0 : project_categories.results) !== null && _b !== void 0 ? _b : []).map((c) => [c.identifier, c.name]));
48
+ return (_jsxs("div", { className: 'flex flex-col gap-0 w-full h-full overflow-y-auto', children: [_jsxs("div", { className: "w-full max-w-[1360px] mx-auto px-5 py-5 space-y-6", children: [_jsxs("div", { className: "relative overflow-hidden rounded-lg border bg-card", children: [_jsx("div", { className: "absolute inset-0 pointer-events-none opacity-30", style: {
49
+ backgroundImage: `radial-gradient(circle, hsl(var(--border)) 1px, transparent 1px)`,
50
+ backgroundSize: '24px 24px',
51
+ } }), _jsx("div", { className: "absolute inset-0 bg-linear-to-r from-background via-background/60 to-transparent pointer-events-none" }), _jsxs("div", { className: "relative flex flex-col md:flex-row items-center gap-6 p-6", children: [_jsx("div", { className: "shrink-0 hidden sm:flex w-24 h-24 items-center justify-center rounded-xl bg-primary/10 border border-primary/20", children: _jsxs("svg", { viewBox: "0 0 64 64", className: "w-14 h-14", fill: "none", children: [_jsx("rect", { x: "4", y: "22", width: "20", height: "20", rx: "4", fill: "hsl(220 90% 56%)" }), _jsx("circle", { cx: "44", cy: "16", r: "10", fill: "hsl(270 70% 60%)" }), _jsx("rect", { x: "38", y: "42", width: "18", height: "16", rx: "3", fill: "hsl(35 90% 55%)" }), _jsx("path", { d: "M24 32 Q34 20 34 16", stroke: "hsl(140 60% 50%)", strokeWidth: "2.5", strokeLinecap: "round", fill: "none" }), _jsx("path", { d: "M24 32 Q34 44 38 50", stroke: "hsl(140 60% 50%)", strokeWidth: "2.5", strokeLinecap: "round", fill: "none" }), _jsx("circle", { cx: "34", cy: "32", r: "3", fill: "hsl(140 60% 50%)" })] }) }), _jsxs("div", { className: "flex-1 space-y-2 text-center md:text-left", children: [_jsxs("h2", { className: "text-xl font-semibold", children: ["Welcome to ", _jsx("span", { className: "text-primary", children: "FlowApp Studio" })] }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Build. Connect. Automate." }), _jsx("p", { className: "text-xs text-muted-foreground max-w-md", children: "Create powerful logic apps with our intuitive drag & drop builder. No code. Just flow." }), _jsxs("div", { className: "flex flex-wrap gap-3 pt-1 justify-center md:justify-start", children: [_jsxs(NewProject, { api_key: api_key, userId: userId, projects: projects, refetch: refetch, providers: providers, provider: provider, size: 'sm', children: [_jsx(Plus, { className: "w-3.5 h-3.5" }), " Create Your First App"] }), _jsxs(Button, { size: "sm", variant: "outline", className: "gap-1.5 text-xs", onClick: () => setOpenTemplates(true), children: [_jsx(LayoutTemplate, { className: "w-3 h-3" }), " Templates"] })] })] }), _jsxs("div", { className: "hidden lg:flex flex-col gap-3 shrink-0 min-w-[220px]", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Get started in 3 easy steps" }), steps.map((s) => (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx("span", { className: `w-6 h-6 rounded-full border-2 flex items-center justify-center text-xs font-bold shrink-0 ${s.color}`, children: s.n }), _jsxs("div", { children: [_jsx("p", { className: "text-xs font-medium leading-tight", children: s.title }), _jsx("p", { className: "text-[11px] text-muted-foreground leading-tight", children: s.desc })] })] }, s.n)))] }), quota && _jsx(SessionsWidget, { quota: quota })] })] }), _jsxs("section", { className: "space-y-3 pb-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Clock, { className: "w-4 h-4 text-muted-foreground" }), _jsx("span", { className: "text-sm font-medium", children: "Recent Apps" }), ((_c = projects === null || projects === void 0 ? void 0 : projects.count) !== null && _c !== void 0 ? _c : 0) > 9 && (_jsxs(Button, { variant: "ghost", size: "sm", className: "text-xs gap-1 h-7", children: ["View all ", _jsx(ChevronRight, { className: "w-3 h-3" })] }))] }), _jsxs(InputGroup, { className: "w-[180px]", children: [_jsx(InputGroupInput, { className: "text-xs", placeholder: "Search ...", onChange: (event) => setSearch(event.target.value === '' ? '' : event.target.value) }), _jsx(InputGroupAddon, { children: _jsx(SearchIcon, {}) })] })] }), _jsxs("div", { className: "w-full grid grid-cols-2 xs:grid-cols-3 sm:grid-cols-3 lg:grid-cols-5 xl:grid-cols-6 2xl:grid-cols-7 gap-4", children: [projectsPending && Array.from({ length: 9 }).map((_, ind) => (_jsx(Card, { className: 'gap-0 p-0', children: _jsxs(CardContent, { className: 'flex flex-col gap-2 p-4', children: [_jsx(Skeleton, { className: 'h-[80px] w-full rounded' }), _jsx(Separator, {}), _jsx(Skeleton, { className: 'h-4 w-full' })] }) }, ind))), !projectsPending && (getData === null || getData === void 0 ? void 0 : getData.map((val, ind) => (_jsx(ProjectWidget, { api_key: api_key, identifier: val.identifier, name: val.name }, ind)))), !projectsPending && (projects === null || projects === void 0 ? void 0 : projects.count) === 0 && getSearch === '' && (_jsxs("div", { className: "col-span-full flex flex-col items-center justify-center py-12 gap-4 text-center", children: [_jsx("div", { className: "w-14 h-14 rounded-full bg-muted flex items-center justify-center", children: _jsx(LayoutTemplate, { className: "w-7 h-7 text-muted-foreground" }) }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium", children: "No apps yet" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Create your first app to get started" })] }), _jsxs("div", { className: "flex gap-3", children: [_jsxs(NewProject, { api_key: api_key, userId: userId, projects: projects, refetch: refetch, providers: providers, size: "sm", children: [_jsx(FaPlus, {}), " Create First App"] }), _jsx(Button, { size: "sm", variant: "ghost", onClick: () => setOpenTemplates(true), children: "Browse Templates" })] })] }))] })] })] }), _jsx(GSheet, { open: openTemplates, setOpen: setOpenTemplates, title: "Templates", showCloseBtn: true, side: "right", maxWidth: "750px", children: _jsxs("div", { className: "flex-1 overflow-y-auto px-5 py-5 flex flex-col gap-5", children: [_jsx(Tabs, { value: selectedCategory, onValueChange: setSelectedCategory, children: _jsxs(TabsList, { className: "h-auto bg-transparent p-0 flex-wrap gap-1 justify-start", children: [_jsx(TabsTrigger, { value: "all", className: "text-xs rounded-full px-3 py-1 border border-transparent data-[state=active]:border-primary data-[state=active]:bg-primary data-[state=active]:text-primary-foreground", children: "All Templates" }), categoriesPending && Array.from({ length: 5 }).map((_, ind) => (_jsx(Skeleton, { className: "h-7 w-20 rounded-full" }, ind))), !categoriesPending && ((_d = project_categories === null || project_categories === void 0 ? void 0 : project_categories.results) === null || _d === void 0 ? void 0 : _d.map((val, ind) => (_jsx(TabsTrigger, { value: val === null || val === void 0 ? void 0 : val.identifier, className: "text-xs rounded-full px-3 py-1 border border-transparent data-[state=active]:border-primary data-[state=active]:bg-primary data-[state=active]:text-primary-foreground", children: val === null || val === void 0 ? void 0 : val.name }, ind))))] }) }), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [templatesPending && Array.from({ length: 6 }).map((_, ind) => (_jsxs(Card, { className: "flex flex-col gap-0 p-0", children: [_jsxs(CardContent, { className: "flex flex-1 flex-col gap-3 p-4", children: [_jsx(Skeleton, { className: "h-12 w-12 rounded-lg" }), _jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-4 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-full" }), _jsx(Skeleton, { className: "h-3 w-2/3" })] })] }), _jsxs(CardFooter, { className: "flex items-center justify-between px-4 pb-4 pt-0", children: [_jsx(Skeleton, { className: "h-5 w-16 rounded" }), _jsx(Skeleton, { className: "h-7 w-24 rounded" })] })] }, ind))), filteredTemplates === null || filteredTemplates === void 0 ? void 0 : filteredTemplates.map((val, ind) => {
52
+ var _a, _b, _c, _d, _e;
53
+ const catColor = getCategoryColor((_b = (_a = val === null || val === void 0 ? void 0 : val.category) !== null && _a !== void 0 ? _a : val === null || val === void 0 ? void 0 : val.title) !== null && _b !== void 0 ? _b : '');
54
+ const categoryName = (_d = (_c = categoryMap[val === null || val === void 0 ? void 0 : val.category]) !== null && _c !== void 0 ? _c : val === null || val === void 0 ? void 0 : val.category_name) !== null && _d !== void 0 ? _d : val === null || val === void 0 ? void 0 : val.category;
55
+ return (_jsxs(Card, { className: "flex flex-col gap-0 p-0 hover:shadow-md transition-shadow", children: [_jsxs(CardContent, { className: "flex flex-1 flex-col gap-3 p-4", children: [_jsx("div", { className: "w-12 h-12 rounded-lg flex items-center justify-center shrink-0", style: { backgroundColor: catColor }, children: _jsx(LayoutTemplate, { className: "w-6 h-6 text-white/80" }) }), _jsxs("div", { className: "space-y-1 flex-1", children: [_jsx("h4", { className: "text-sm font-semibold leading-tight", children: val === null || val === void 0 ? void 0 : val.title }), _jsx("p", { className: "text-xs text-muted-foreground line-clamp-3", children: val === null || val === void 0 ? void 0 : val.description })] })] }), _jsxs(CardFooter, { className: "flex items-center justify-between px-4 pb-4 pt-0 gap-2", children: [categoryName ? (_jsx("span", { className: "text-[10px] text-muted-foreground border rounded px-2 py-0.5 shrink-0", children: categoryName })) : _jsx("span", {}), _jsxs(NewProject, { api_key: api_key, userId: userId, defaultProject: { name: val === null || val === void 0 ? void 0 : val.title, description: val === null || val === void 0 ? void 0 : val.description, flow: val === null || val === void 0 ? void 0 : val.flow, flow_draft: val === null || val === void 0 ? void 0 : val.flow }, projects: projects, refetch: refetch, providers: providers, size: "xs", children: ["Use Template ", _jsx(ArrowRight, { className: "w-3 h-3" })] })] })] }, (_e = val === null || val === void 0 ? void 0 : val.identifier) !== null && _e !== void 0 ? _e : ind));
56
+ })] }), !templatesPending && (_jsxs("div", { className: "rounded-lg border bg-card p-5 flex flex-col sm:flex-row items-center gap-4 justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center shrink-0", children: _jsx(Zap, { className: "w-5 h-5 text-primary" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-semibold", children: "Can't find what you need?" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Start from scratch or explore our help center for more examples." })] })] }), _jsxs("div", { className: "flex gap-3 shrink-0", children: [_jsx(NewProject, { api_key: api_key, userId: userId, projects: projects, refetch: refetch, providers: providers, size: "sm", children: "Start Blank App" }), _jsx("a", { href: "https://docs.flowappstudio.com", target: "_blank", rel: "noreferrer", children: _jsxs(Button, { variant: "outline", size: "sm", className: "gap-1.5 text-xs", children: ["Visit Help Center ", _jsx(ArrowRight, { className: "w-3 h-3" })] }) })] })] }))] }) })] }));
57
+ }
58
+ function SessionsWidget({ quota }) {
59
+ var _a, _b, _c, _d, _e, _f;
60
+ const used = (_b = (_a = quota === null || quota === void 0 ? void 0 : quota.usage) === null || _a === void 0 ? void 0 : _a.sessions_this_month) !== null && _b !== void 0 ? _b : 0;
61
+ const max = (_d = (_c = quota === null || quota === void 0 ? void 0 : quota.plan_limits) === null || _c === void 0 ? void 0 : _c.max_sessions) !== null && _d !== void 0 ? _d : -1;
62
+ const unlimited = max === -1;
63
+ const remaining = unlimited ? null : Math.max(0, max - used);
64
+ const pct = unlimited ? 0 : Math.min(100, Math.round((used / max) * 100));
65
+ const planName = (_f = (_e = quota === null || quota === void 0 ? void 0 : quota.plan_limits) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : 'Free';
66
+ const barColor = !unlimited && pct >= 90 ? 'bg-red-500' :
67
+ !unlimited && pct >= 70 ? 'bg-yellow-500' :
68
+ 'bg-primary';
69
+ return (_jsxs("div", { className: "hidden xl:flex flex-col gap-2 shrink-0 min-w-[180px] border rounded-lg px-4 py-3 bg-muted/30", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Activity, { className: "w-3.5 h-3.5 text-muted-foreground" }), _jsx("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Sessions" }), _jsx("span", { className: "ml-auto text-[10px] border rounded px-1.5 py-0.5", children: planName })] }), _jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-1", children: [_jsx("span", { className: "text-lg font-bold leading-none", children: unlimited ? '∞' : remaining === null || remaining === void 0 ? void 0 : remaining.toLocaleString() }), _jsx("span", { className: "text-[11px] text-muted-foreground", children: unlimited ? 'unlimited' : `of ${max.toLocaleString()} remaining` })] }), !unlimited && (_jsx("div", { className: "h-1.5 w-full rounded-full bg-muted overflow-hidden", children: _jsx("div", { className: `h-full rounded-full transition-all ${barColor}`, style: { width: `${pct}%` } }) })), _jsxs("p", { className: "text-[10px] text-muted-foreground", children: [used.toLocaleString(), " used this month"] })] })] }));
70
+ }
71
+ const CATEGORY_COLORS = [
72
+ 'hsl(262 83% 58%)',
73
+ 'hsl(221 83% 53%)',
74
+ 'hsl(142 71% 45%)',
75
+ 'hsl(38 92% 50%)',
76
+ 'hsl(346 77% 49%)',
77
+ 'hsl(197 71% 52%)',
78
+ 'hsl(291 64% 42%)',
79
+ 'hsl(162 63% 41%)',
80
+ ];
81
+ function getCategoryColor(str) {
82
+ let h = 0;
83
+ for (let i = 0; i < str.length; i++)
84
+ h = str.charCodeAt(i) + ((h << 5) - h);
85
+ return CATEGORY_COLORS[Math.abs(h) % CATEGORY_COLORS.length];
58
86
  }
59
87
  //# sourceMappingURL=home.js.map
package/dist/home.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"home.js","sourceRoot":"","sources":["../src/home.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"home.js","sourceRoot":"","sources":["../src/home.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,26 @@
1
1
  import '@xyflow/react/dist/style.css';
2
2
  import './globals.css';
3
3
  type ThemeProps = 'dark' | 'light';
4
- export default function FlowStudio({ api_key, providerId, language, theme }: {
4
+ interface QuotaData {
5
+ plan_limits?: {
6
+ name?: string;
7
+ code?: string;
8
+ max_sessions?: number;
9
+ max_apps?: number;
10
+ max_team_members?: number;
11
+ };
12
+ usage?: {
13
+ sessions_this_month?: number;
14
+ active_apps?: number;
15
+ team_members?: number;
16
+ };
17
+ }
18
+ export default function FlowStudio({ api_key, providerId, language, theme, primaryColor, quota }: {
5
19
  api_key: string;
6
20
  providerId?: string;
7
21
  language?: string;
8
22
  theme?: ThemeProps;
23
+ primaryColor?: string;
24
+ quota?: QuotaData;
9
25
  }): import("react").JSX.Element;
10
26
  export {};
package/dist/index.js CHANGED
@@ -7,13 +7,13 @@ import StudioPane from './studio_pane';
7
7
  import NewProject from './new_project';
8
8
  import { useEffect, useRef, useState } from 'react';
9
9
  import { ReactFlowProvider } from '@xyflow/react';
10
- import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';
10
+ import { QueryClient, QueryClientProvider, useQuery, useQueryClient } from '@tanstack/react-query';
11
11
  import { FaExpand } from 'react-icons/fa6';
12
12
  import { RiFullscreenExitLine } from "react-icons/ri";
13
13
  import '@xyflow/react/dist/style.css';
14
14
  import './globals.css';
15
15
  import flow_constants from './constants';
16
- import { Card, ThemeButton } from '@osanim/shared';
16
+ import { Card } from '@osanim/shared';
17
17
  import { Tabs, TabsContent, TabsList, TabsTrigger } from '@osanim/shared';
18
18
  import { Button } from '@osanim/shared';
19
19
  import { Badge } from '@osanim/shared';
@@ -23,13 +23,29 @@ import { Spinner } from '@osanim/shared';
23
23
  import { cn } from './lib/utils';
24
24
  import { Toaster } from 'sonner';
25
25
  import { PaneProvider } from './lib/pane-context';
26
- import { HomeIcon, Plus } from 'lucide-react';
27
- export default function FlowStudio({ api_key, providerId, language, theme }) {
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 }) {
28
29
  const queryClient = new QueryClient();
29
- return (_jsx("div", { className: cn("flowstudio-root h-full min-h-full relative", theme === 'dark' && 'dark'), 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: 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 }) }) }) }) })] }));
30
37
  }
31
- const Studio = ({ api_key, providerId, language, theme }) => {
32
- 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]);
33
49
  // const [getDefaultTab, setDefaultTab] = useState('')
34
50
  const { data: account, isPending: accountPending, refetch: accountRefetch } = useQuery({
35
51
  queryKey: [`account_${api_key}`, api_key],
@@ -74,7 +90,7 @@ const Studio = ({ api_key, providerId, language, theme }) => {
74
90
  });
75
91
  const { data: providers } = useQuery({
76
92
  queryKey: [`providers`], queryFn: async () => {
77
- 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}` } });
78
94
  return res === null || res === void 0 ? void 0 : res.json();
79
95
  }, enabled: !!api_key, placeholderData: (previousData) => previousData,
80
96
  staleTime: 10 * 60 * 1000, // 10 minutes
@@ -127,14 +143,15 @@ const Studio = ({ api_key, providerId, language, theme }) => {
127
143
  };
128
144
  }, []);
129
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));
130
- return (_jsx(TooltipProvider, { children: _jsx("div", { ref: cardRef, className: cn('relative p-0 h-full overflow-hidden rounded-none', theme === 'dark' && 'dark'), 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 &&
131
- _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(ThemeButton, { variant: 'ghost', size: 'xs', className: 'text-xs' }) }), _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 }) }), 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 &&
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 &&
132
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)))] })] }) }) }) }) }));
133
149
  };
134
150
  const TabsTriggerCustom = ({ api_key, children, value, project_categories, project_templates, projects, projectsRefetch, openedProjects, setOpenedProjects, setActiveTab, ...props }) => {
135
151
  const [appNameEdit, setAppNameEdit] = useState(false);
136
152
  const [getValidity, setValidity] = useState(true);
137
153
  const [renaming, setRenaming] = useState(false);
154
+ const queryClient = useQueryClient();
138
155
  const nameChange = (e) => {
139
156
  var _a;
140
157
  const appName = e.target.value || "";
@@ -152,10 +169,11 @@ const TabsTriggerCustom = ({ api_key, children, value, project_categories, proje
152
169
  if (getValidity && (appName.toLowerCase() !== String(value === null || value === void 0 ? void 0 : value.name).toLowerCase())) {
153
170
  try {
154
171
  setRenaming(true);
155
- 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 }) });
156
173
  if (response.ok) {
157
174
  projectsRefetch();
158
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}`] });
159
177
  }
160
178
  setRenaming(false);
161
179
  }
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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"}
@@ -14,7 +14,9 @@ import { Textarea } from "@osanim/shared";
14
14
  import { Input } from "@osanim/shared";
15
15
  import { Spinner } from "@osanim/shared";
16
16
  import { Form, FormControl, FormField, FormItem, FormMessage } from "@osanim/shared";
17
+ import { CHANNEL_ADAPTERS } from "./channels";
17
18
  export default function NewProject({ api_key, userId, defaultProject, projects, refetch, providers, provider, align, children, ...rest }) {
19
+ var _a;
18
20
  const { openNewProject, setOpenNewProject, openedProjects, setOpenedProjects, setActiveTab } = useConfigStore();
19
21
  const formSchema = Zod.object({
20
22
  name: Zod.string().min(1, 'required')
@@ -25,7 +27,11 @@ export default function NewProject({ api_key, userId, defaultProject, projects,
25
27
  flow: Zod.object().optional(),
26
28
  flow_draft: Zod.object().optional(),
27
29
  type: Zod.string().min(1, 'required'),
28
- provider: Zod.string().min(1, 'required'),
30
+ provider: Zod.string().optional(),
31
+ }).loose().superRefine((data, ctx) => {
32
+ if (data.type === 'ussd' && !data.provider) {
33
+ ctx.addIssue({ code: 'custom', message: 'required', path: ['provider'] });
34
+ }
29
35
  });
30
36
  const form = useForm({
31
37
  resolver: zodResolver(formSchema),
@@ -40,22 +46,42 @@ export default function NewProject({ api_key, userId, defaultProject, projects,
40
46
  });
41
47
  const onSubmit = async (data) => {
42
48
  try {
43
- const post_data = JSON.stringify({
44
- owner: userId,
45
- name: data.name,
46
- description: data.description,
47
- type: data.type,
48
- provider: data.provider,
49
- flow: data.flow,
50
- flow_draft: data.flow_draft
51
- });
52
- // console.log(post_data)
49
+ let providerId = data.provider;
50
+ if (data.type !== 'ussd') {
51
+ const adapter = CHANNEL_ADAPTERS[data.type];
52
+ if (adapter) {
53
+ const credentials = {};
54
+ adapter.credentials.forEach(({ key }) => { if (data[key])
55
+ credentials[key] = data[key]; });
56
+ const providerRes = await fetch(`${flow_constants.BACKEND_ENDPOINT}/providers`, {
57
+ method: 'POST',
58
+ headers: { 'X-API-KEY': api_key, 'Content-Type': 'application/json' },
59
+ body: JSON.stringify({ name: data.name, type: data.type, credentials, active: true }),
60
+ });
61
+ if (providerRes.ok) {
62
+ const providerData = await providerRes.json();
63
+ providerId = providerData.identifier;
64
+ }
65
+ else {
66
+ alert('Failed to create provider');
67
+ return;
68
+ }
69
+ }
70
+ }
53
71
  const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/projects`, {
54
72
  method: "POST",
55
73
  headers: {
56
74
  "X-API-KEY": `${api_key}`, "Content-Type": "application/json",
57
75
  },
58
- body: post_data,
76
+ body: JSON.stringify({
77
+ owner: userId,
78
+ name: data.name,
79
+ description: data.description,
80
+ type: data.type,
81
+ provider: providerId,
82
+ flow: data.flow,
83
+ flow_draft: data.flow_draft,
84
+ }),
59
85
  });
60
86
  if (await response.ok) {
61
87
  const response_data = await response.json();
@@ -64,7 +90,7 @@ export default function NewProject({ api_key, userId, defaultProject, projects,
64
90
  body: JSON.stringify({
65
91
  name: `${data.name} Trigger`,
66
92
  type: `${data.type}`,
67
- provider: `${data.provider}`,
93
+ provider: providerId,
68
94
  project: `${response_data === null || response_data === void 0 ? void 0 : response_data.identifier}`,
69
95
  active: true
70
96
  }),
@@ -101,21 +127,18 @@ export default function NewProject({ api_key, userId, defaultProject, projects,
101
127
  form.setValue('flow_draft', defaultProject === null || defaultProject === void 0 ? void 0 : defaultProject.flow_draft);
102
128
  }
103
129
  }, [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'] })] })] }) }) }) }) })] }));
130
+ 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, {})] })) }), !(provider === null || provider === void 0 ? void 0 : provider.identifier) && (_jsxs("div", { className: 'flex flex-col gap-3', children: [_jsxs("div", { className: 'flex gap-3', children: [_jsx(FormField, { control: form.control, name: "type", render: ({ field }) => (_jsxs(FormItem, { className: "flex-1", children: [_jsx(FormControl, { children: _jsxs(Select, { value: field.value, onValueChange: field.onChange, defaultValue: "ussd", children: [_jsx(SelectTrigger, { size: 'sm', className: "text-xs w-full", id: "type", children: _jsx(SelectValue, { placeholder: "Select Channel" }) }), _jsxs(SelectContent, { position: "popper", children: [_jsx(SelectItem, { value: 'ussd', children: "USSD" }), _jsx(SelectItem, { value: 'telegram', children: "Telegram" }), _jsx(SelectItem, { value: 'whatsapp', children: "WhatsApp" }), _jsx(SelectItem, { value: 'instagram', children: "Instagram" }), _jsx(SelectItem, { value: 'slack', children: "Slack" }), _jsx(SelectItem, { value: 'teams', children: "Microsoft Teams" }), _jsx(SelectItem, { value: 'discord', children: "Discord" }), _jsx(SelectItem, { value: 'line', children: "Line" }), _jsx(SelectItem, { value: 'viber', children: "Viber" })] })] }) }), _jsx(FormMessage, {})] })) }), form.watch('type') === 'ussd' && (_jsx(FormField, { control: form.control, name: "provider", render: ({ field }) => (_jsxs(FormItem, { className: "flex-1", children: [_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: (() => {
131
+ var _a, _b, _c;
132
+ const grouped = (_c = (_b = (_a = providers === null || providers === void 0 ? void 0 : providers.results) === null || _a === void 0 ? void 0 : _a.filter((p) => p.type === 'ussd')) === null || _b === void 0 ? void 0 : _b.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 || _c === void 0 ? void 0 : _c.reduce((acc, p) => {
133
+ var _a, _b;
134
+ const country = ((_b = (_a = Countries === null || Countries === void 0 ? void 0 : Countries.getAll) === null || _a === void 0 ? void 0 : _a.find((c) => c.iso === (p === null || p === void 0 ? void 0 : p.country))) === null || _b === void 0 ? void 0 : _b.name) || 'Multi-National';
135
+ acc[country] = acc[country] || [];
136
+ acc[country].push(p);
137
+ return acc;
138
+ }, {});
139
+ return grouped
140
+ ? Object.entries(grouped).map(([country, group]) => (_jsxs(SelectGroup, { children: [_jsx(SelectLabel, { className: 'bg-muted', children: country }), group.sort((a, b) => a.name.localeCompare(b.name)).map((p) => (_jsx(SelectItem, { value: p === null || p === void 0 ? void 0 : p.identifier, children: p === null || p === void 0 ? void 0 : p.name }, p === null || p === void 0 ? void 0 : p.identifier)))] }, country)))
141
+ : null;
142
+ })() })] }) }), _jsx(FormMessage, {})] })) }))] }), (_a = CHANNEL_ADAPTERS[form.watch('type')]) === null || _a === void 0 ? void 0 : _a.credentials.map(({ key, label, placeholder }) => (_jsx(FormField, { control: form.control, name: key, render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormControl, { children: _jsx(Input, { className: "text-xs font-mono", placeholder: `${label}: ${placeholder}`, autoComplete: "off", ...field, value: field.value }) }), _jsx(FormMessage, {})] })) }, key)))] })), _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'] })] })] }) }) }) }) })] }));
120
143
  }
121
144
  //# sourceMappingURL=new_project.js.map