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
@@ -1,82 +1,88 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { Badge, Card, Flex, Grid, SegmentedControl, Text } from "@radix-ui/themes";
4
3
  import { useConfigStore } from "./zustand/store";
5
4
  import { useState } from "react";
6
- import GTable from "./components/gtable";
5
+ import { FTable } from "./components/ftable";
7
6
  import moment from "moment";
8
- import Sheet from "./components/sheet";
9
7
  import { useQuery } from "@tanstack/react-query";
10
8
  import flow_constants from "./constants";
9
+ import { Card, CardContent } from "@osanim/shared";
10
+ import { Tabs, TabsList, TabsTrigger } from "@osanim/shared";
11
+ import { Alert, AlertDescription } from "@osanim/shared";
12
+ import { Popover, PopoverContent, PopoverTrigger } from "@osanim/shared";
13
+ import { Button } from "@osanim/shared";
14
+ import { Calendar } from "@osanim/shared";
15
+ import { GSheet } from "@osanim/shared";
16
+ import { Users, Activity, CheckCircle2, Repeat, TrendingUp, CalendarIcon, Info, X } from "lucide-react";
11
17
  export default function AppAnalytics({ api_key, project }) {
12
- var _a, _b, _c, _d;
18
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
13
19
  const { openReports, setOpenReports } = useConfigStore();
14
- const [getReportType, setReportType] = useState('dashboard');
15
- const { data: sessions, status: sessionsStatus, refetch: sessionsRefetch } = useQuery({ queryKey: [`project_${project === null || project === void 0 ? void 0 : project.identifier}_sessions`, project === null || project === void 0 ? void 0 : project.identifier], queryFn: async () => {
16
- const res = await fetch(`${flow_constants.BACKEND_ENDPOINT}/sessions?project=${project === null || project === void 0 ? void 0 : project.identifier}&ordering=-created`, { headers: { "X-API-KEY": `${api_key}` } });
20
+ const [getReportType, setReportType] = useState('overview');
21
+ const [dateRange, setDateRange] = useState({
22
+ from: undefined,
23
+ to: undefined,
24
+ });
25
+ const [datePickerOpen, setDatePickerOpen] = useState(false);
26
+ const dateParams = () => {
27
+ const p = {};
28
+ if (dateRange.from)
29
+ p['date_from'] = moment(dateRange.from).format('YYYY-MM-DD');
30
+ if (dateRange.to)
31
+ p['date_to'] = moment(dateRange.to).format('YYYY-MM-DD');
32
+ return new URLSearchParams(p).toString();
33
+ };
34
+ const sessionsUrl = () => {
35
+ const base = `${flow_constants.BACKEND_ENDPOINT}/sessions?project=${project === null || project === void 0 ? void 0 : project.identifier}&ordering=-created`;
36
+ const extra = dateParams();
37
+ return extra ? `${base}&${extra}` : base;
38
+ };
39
+ const { data: summary } = useQuery({
40
+ queryKey: [`project_${project === null || project === void 0 ? void 0 : project.identifier}_summary`, dateRange.from, dateRange.to],
41
+ queryFn: async () => {
42
+ const params = dateParams();
43
+ const url = `${flow_constants.BACKEND_ENDPOINT}/projects/${project === null || project === void 0 ? void 0 : project.identifier}/summary${params ? '?' + params : ''}`;
44
+ const res = await fetch(url, { headers: { 'X-API-KEY': `${api_key}` } });
17
45
  return res === null || res === void 0 ? void 0 : res.json();
18
- }, ...{ enabled: !!(project === null || project === void 0 ? void 0 : project.identifier) } });
19
- return (_jsx(Sheet, { open: openReports, setOpen: setOpenReports, title: "Analytics", showCloseBtn: true, side: "right", maxWidth: '850px', children: _jsxs(Flex, { direction: 'column', flexGrow: '1', gap: '3', p: '3', width: '100%', style: {}, children: [_jsx(Flex, { justify: 'between', children: _jsxs(SegmentedControl.Root, { defaultValue: getReportType, variant: 'classic', size: '1', children: [_jsx(SegmentedControl.Item, { onClick: () => setReportType('dashboard'), value: "dashboard", children: "Dashboard" }), _jsx(SegmentedControl.Item, { onClick: () => setReportType('data'), value: "data", children: "Data" }), _jsx(SegmentedControl.Item, { onClick: () => setReportType('logs'), value: "logs", children: "Logs" })] }) }), getReportType == 'dashboard' &&
20
- _jsx(Flex, { direction: 'column', children: _jsxs(Grid, { columns: { initial: '2', sm: '3', md: '4' }, gap: '5', children: [_jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Sessions:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: ((_a = sessions === null || sessions === void 0 ? void 0 : sessions.results) === null || _a === void 0 ? void 0 : _a.length) || 0 })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Count of all user interactions with the flow app." }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Sess. Duration:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Average time users spend per session" }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Active Sess.:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Users currently interacting with your app live." }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Completion Rate:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Percentage of users who complete the entire flow." }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Retention Rate:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Percentage of returning users over time." }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Drop-Off Rate:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Drop-off rates measured at each node in the flow." }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Time per Step:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Average duration users spend on specific flow steps." }) })] }) }), _jsx(Card, { children: _jsxs(Flex, { direction: 'column', gap: '2', children: [_jsxs(Flex, { justify: 'between', children: [" ", _jsx(Text, { size: '2', children: "Popular:" }), " ", _jsx(Text, { size: '1', weight: 'bold', children: "0" })] }), _jsx(Text, { color: 'gray', size: '1', children: _jsx("i", { children: "Most frequented routes through your app\u2019s logic." }) })] }) })] }) }), getReportType == 'data' &&
21
- _jsx(GTable, { status: sessionsStatus, columns: [
22
- { Header: 'Phone Number', accessor: 'msisdn' },
23
- ...(((_c = (_b = project === null || project === void 0 ? void 0 : project.flow) === null || _b === void 0 ? void 0 : _b.nodes) === null || _c === void 0 ? void 0 : _c.map((val) => {
24
- var _a;
25
- return ({
26
- Header: _jsx(Flex, { gap: '2', children: (_a = val === null || val === void 0 ? void 0 : val.data) === null || _a === void 0 ? void 0 : _a.label }),
27
- accessor: val === null || val === void 0 ? void 0 : val.id,
28
- });
29
- })) || [])
30
- ],
31
- // columns={
32
- // project?.flow?.nodes?.map((val: any) => ({
33
- // Header: <Flex gap={'2'}>[] {val?.data?.label}</Flex>,
34
- // accessor: val?.id,
35
- // })) || []}
36
- data: ((_d = sessions === null || sessions === void 0 ? void 0 : sessions.results) === null || _d === void 0 ? void 0 : _d.filter((session, index, self) => index === self.findIndex((s) => s.session_id === session.session_id)).map((session) => {
37
- var _a, _b;
38
- const updatedSession = { ...session };
39
- (_b = (_a = project === null || project === void 0 ? void 0 : project.flow) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b.forEach((node) => {
40
- var _a, _b, _c, _d, _e;
41
- const matchingSession = (_a = sessions === null || sessions === void 0 ? void 0 : sessions.results) === null || _a === void 0 ? void 0 : _a.find((s) => s.session_id === session.session_id && s.node_id === (node === null || node === void 0 ? void 0 : node.id));
42
- updatedSession[node === null || node === void 0 ? void 0 : node.id] = (matchingSession === null || matchingSession === void 0 ? void 0 : matchingSession.input_value) ? (_jsxs(Flex, { gap: '2', children: [_jsx(Badge, { color: 'teal', children: matchingSession.input_id }), _jsx(Text, { children: (_e = (_d = (_c = (_b = node === null || node === void 0 ? void 0 : node.data) === null || _b === void 0 ? void 0 : _b.response) === null || _c === void 0 ? void 0 : _c.inputs) === null || _d === void 0 ? void 0 : _d.find((nd) => `${nd.id}` === matchingSession.input_id)) === null || _e === void 0 ? void 0 : _e.text })] })) : null;
43
- });
44
- return updatedSession;
45
- })) || [],
46
- // data={sessions?.results?.filter((session: any, index: number, self: any[]) => index === self.findIndex((s) => s.session_id === session.session_id))}
47
- // project?.flow?.nodes?.map((val:any, ind:any)=>(<Flex key={ind}><Badge>{val?.input_id}</Badge> {val?.input_value}</Flex>))
48
- search: { hint: `${'Search Data'}`, items: ['mode', 'input_id', 'input_value', 'node_id', 'created'] }, topRightBtns: _jsx(Flex, { gap: '3' }), showDownload: true }), getReportType == 'logs' &&
49
- _jsx(GTable, { status: sessionsStatus, data: (sessions === null || sessions === void 0 ? void 0 : sessions.results) || [], columns: [
50
- {
51
- Header: '#', sticky: 'left',
52
- Cell: (cell) => ([cell.row.index + 1])
46
+ },
47
+ enabled: !!(project === null || project === void 0 ? void 0 : project.identifier),
48
+ });
49
+ const topNodeLabel = ((_a = summary === null || summary === void 0 ? void 0 : summary.most_active_node) === null || _a === void 0 ? void 0 : _a.node_id)
50
+ ? (((_e = (_d = (_c = (_b = project === null || project === void 0 ? void 0 : project.flow) === null || _b === void 0 ? void 0 : _b.nodes) === null || _c === void 0 ? void 0 : _c.find((n) => n.id === summary.most_active_node.node_id)) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.label) || summary.most_active_node.node_id)
51
+ : null;
52
+ return (_jsx(GSheet, { open: openReports, setOpen: setOpenReports, title: "Analytics", showCloseBtn: true, side: "right", maxWidth: "850px", children: _jsxs("div", { className: "flex flex-col flex-grow gap-3 p-3 w-full", children: [_jsxs("div", { className: "flex justify-between items-center gap-3", children: [_jsx(Tabs, { value: getReportType, onValueChange: setReportType, children: _jsxs(TabsList, { className: "rounded-sm p-1", children: [_jsx(TabsTrigger, { value: "overview", className: "text-xs rounded-sm", children: "Overview" }), _jsx(TabsTrigger, { value: "data", className: "text-xs rounded-sm", children: "Data" }), _jsx(TabsTrigger, { value: "logs", className: "text-xs rounded-sm", children: "Sessions" })] }) }), _jsxs(Popover, { open: datePickerOpen, onOpenChange: setDatePickerOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", size: "sm", className: "text-xs h-8 gap-1.5 shrink-0", children: [_jsx(CalendarIcon, { className: "h-3 w-3" }), dateRange.from ? (dateRange.to
53
+ ? _jsxs(_Fragment, { children: [moment(dateRange.from).format('MMM DD'), " \u2013 ", moment(dateRange.to).format('MMM DD, YYYY')] })
54
+ : moment(dateRange.from).format('MMM DD, YYYY')) : 'Date range'] }) }), _jsxs(PopoverContent, { align: "end", className: "w-auto p-0", children: [_jsx(Calendar, { mode: "range", defaultMonth: dateRange.from, selected: { from: dateRange.from, to: dateRange.to }, onSelect: (range) => {
55
+ if (range)
56
+ setDateRange({ from: range.from, to: range.to });
57
+ }, numberOfMonths: 2 }), (dateRange.from || dateRange.to) && (_jsx("div", { className: "p-2 border-t flex justify-end", children: _jsxs(Button, { variant: "ghost", size: "sm", className: "text-xs", onClick: () => { setDateRange({ from: undefined, to: undefined }); setDatePickerOpen(false); }, children: [_jsx(X, { className: "h-3 w-3 mr-1" }), " Clear"] }) }))] })] })] }), getReportType === 'overview' && (_jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4", children: [_jsx(Card, { className: "gap-0 p-0 border-l-4 border-l-blue-400 hover:shadow-md transition-shadow", children: _jsxs(CardContent, { className: "p-5", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: "Total Sessions" }), _jsx("p", { className: "text-3xl font-bold", children: (_f = summary === null || summary === void 0 ? void 0 : summary.total_sessions) !== null && _f !== void 0 ? _f : '—' })] }), _jsx("div", { className: "p-2 bg-blue-100 dark:bg-blue-900/20 rounded-lg", children: _jsx(Users, { className: "h-5 w-5 text-blue-600 dark:text-blue-400" }) })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-3", children: "All interactions recorded in your flow" })] }) }), _jsx(Card, { className: "gap-0 p-0 border-l-4 border-l-indigo-400 hover:shadow-md transition-shadow", children: _jsxs(CardContent, { className: "p-5", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: "Unique Users" }), _jsx("p", { className: "text-3xl font-bold", children: (_g = summary === null || summary === void 0 ? void 0 : summary.unique_users) !== null && _g !== void 0 ? _g : '—' })] }), _jsx("div", { className: "p-2 bg-indigo-100 dark:bg-indigo-900/20 rounded-lg", children: _jsx(Users, { className: "h-5 w-5 text-indigo-600 dark:text-indigo-400" }) })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-3", children: "Distinct phone numbers engaged" })] }) }), _jsx(Card, { className: "gap-0 p-0 border-l-4 border-l-green-400 hover:shadow-md transition-shadow", children: _jsxs(CardContent, { className: "p-5", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: "Sessions Today" }), _jsx("p", { className: "text-3xl font-bold", children: (_h = summary === null || summary === void 0 ? void 0 : summary.sessions_today) !== null && _h !== void 0 ? _h : '—' })] }), _jsx("div", { className: "p-2 bg-green-100 dark:bg-green-900/20 rounded-lg", children: _jsx(Activity, { className: "h-5 w-5 text-green-600 dark:text-green-400" }) })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-3", children: "Interactions recorded today" })] }) }), _jsx(Card, { className: "gap-0 p-0 border-l-4 border-l-cyan-400 hover:shadow-md transition-shadow", children: _jsxs(CardContent, { className: "p-5", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: "Returning Users" }), _jsx("p", { className: "text-3xl font-bold", children: (_j = summary === null || summary === void 0 ? void 0 : summary.returning_users) !== null && _j !== void 0 ? _j : '—' })] }), _jsx("div", { className: "p-2 bg-cyan-100 dark:bg-cyan-900/20 rounded-lg", children: _jsx(Repeat, { className: "h-5 w-5 text-cyan-600 dark:text-cyan-400" }) })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-3", children: "Users who engaged more than once" })] }) }), _jsx(Card, { className: "gap-0 p-0 border-l-4 border-l-emerald-400 hover:shadow-md transition-shadow", children: _jsxs(CardContent, { className: "p-5", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: "Retention Rate" }), _jsxs("p", { className: "text-3xl font-bold", children: [(summary === null || summary === void 0 ? void 0 : summary.retention_rate) != null ? summary.retention_rate : '—', (summary === null || summary === void 0 ? void 0 : summary.retention_rate) != null && _jsx("span", { className: "text-lg text-muted-foreground ml-1", children: "%" })] })] }), _jsx("div", { className: "p-2 bg-emerald-100 dark:bg-emerald-900/20 rounded-lg", children: _jsx(CheckCircle2, { className: "h-5 w-5 text-emerald-600 dark:text-emerald-400" }) })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-3", children: "% of users who came back" })] }) }), _jsx(Card, { className: "gap-0 p-0 border-l-4 border-l-amber-400 hover:shadow-md transition-shadow", children: _jsxs(CardContent, { className: "p-5", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide", children: "Top Node" }), topNodeLabel ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-sm font-bold truncate max-w-[150px]", children: topNodeLabel }), _jsxs("p", { className: "text-2xl font-bold", children: [summary.most_active_node.count, _jsx("span", { className: "text-sm text-muted-foreground ml-1", children: "hits" })] })] })) : (_jsx("p", { className: "text-3xl font-bold", children: "\u2014" }))] }), _jsx("div", { className: "p-2 bg-amber-100 dark:bg-amber-900/20 rounded-lg", children: _jsx(TrendingUp, { className: "h-5 w-5 text-amber-600 dark:text-amber-400" }) })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-3", children: "Most visited step in your flow" })] }) })] })), getReportType === 'data' && (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs(Alert, { className: "rounded-sm border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-800", children: [_jsx(Info, { className: "h-4 w-4 text-blue-600 dark:text-blue-400 shrink-0 mt-0.5" }), _jsx(AlertDescription, { children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("p", { className: "font-semibold text-sm text-blue-900 dark:text-blue-100", children: "How to get meaningful data from your flow" }), _jsxs("ul", { className: "text-xs text-muted-foreground space-y-1.5 list-disc ml-4", children: [_jsxs("li", { children: ["Each row is ", _jsx("strong", { children: "one user interaction at one node" }), ". Group by ", _jsx("strong", { children: "session_id" }), " to reconstruct a user's full journey from start to finish."] }), _jsxs("li", { children: ["Pivot by ", _jsx("strong", { children: "node_id" }), " to see what users entered at each step \u2014 compare ", _jsx("strong", { children: "input_value" }), " counts per node to surface the most popular choices."] }), _jsxs("li", { children: ["Filter by ", _jsx("strong", { children: "msisdn" }), " (phone number) to trace an individual user's exact path through the flow."] }), _jsxs("li", { children: ["Identify ", _jsx("strong", { children: "drop-off" }), " by counting sessions per node \u2014 later nodes with fewer records reveal where users abandon the flow."] }), _jsxs("li", { children: ["Use the ", _jsx("strong", { children: "Overview \u2192 Top Node" }), " card and ", _jsx("strong", { children: "mode breakdown" }), " to see which channel (USSD, SMS, etc.) drives the most engagement."] })] })] }) })] }), _jsx(FTable, { apiUrl: sessionsUrl(), apiKey: api_key, columns: [
58
+ { header: 'Date', accessorKey: 'created' },
59
+ { header: 'Session ID', accessorKey: 'session_id' },
60
+ { header: 'Phone Number', accessorKey: 'msisdn' },
61
+ ...(((_l = (_k = project === null || project === void 0 ? void 0 : project.flow) === null || _k === void 0 ? void 0 : _k.nodes) === null || _l === void 0 ? void 0 : _l.map((val) => {
62
+ var _a;
63
+ return ({
64
+ header: _jsx("div", { className: "flex gap-2", children: (_a = val === null || val === void 0 ? void 0 : val.data) === null || _a === void 0 ? void 0 : _a.label }),
65
+ accessorKey: val === null || val === void 0 ? void 0 : val.id,
66
+ });
67
+ })) || []),
68
+ ], topRight: _jsx("div", { className: "flex gap-3" }) })] })), getReportType === 'logs' && (_jsx(FTable, { apiUrl: sessionsUrl(), apiKey: api_key, columns: [
69
+ { header: '#', accessorKey: 'index', cell: ({ row }) => [row.index + 1] },
70
+ { header: 'Phone Number', accessorKey: 'msisdn' },
71
+ { header: 'Mode', accessorKey: 'mode' },
72
+ {
73
+ header: 'Node / Stage',
74
+ cell: ({ row }) => {
75
+ var _a, _b, _c, _d;
76
+ return (_jsx(_Fragment, { children: (_d = (_c = (_b = (_a = project === null || project === void 0 ? void 0 : project.flow) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b.find((node) => { var _a; return (node === null || node === void 0 ? void 0 : node.id) === ((_a = row.original) === null || _a === void 0 ? void 0 : _a.node_id); })) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.label }));
53
77
  },
54
- {
55
- Header: 'Phone Number',
56
- accessor: 'msisdn'
57
- },
58
- {
59
- Header: 'Mode',
60
- accessor: 'mode'
61
- },
62
- {
63
- Header: 'Node / Stage',
64
- Cell: ({ value, row, original }) => {
65
- var _a, _b, _c, _d;
66
- return (_jsx(_Fragment, { children: (_d = (_c = (_b = (_a = project === null || project === void 0 ? void 0 : project.flow) === null || _a === void 0 ? void 0 : _a.nodes) === null || _b === void 0 ? void 0 : _b.find((node) => { var _a; return (node === null || node === void 0 ? void 0 : node.id) === ((_a = row.original) === null || _a === void 0 ? void 0 : _a.node_id); })) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.label }));
67
- }
68
- },
69
- {
70
- Header: 'Input Id',
71
- accessor: 'input_id'
72
- },
73
- {
74
- Header: 'Input Value',
75
- accessor: 'input_value'
76
- },
77
- {
78
- Header: 'Date', accessor: (d) => (moment(d.created).local().format("Do MMM YYYY hh:mm a"))
79
- }
80
- ], search: { hint: `${'Search Logs'}`, items: ['mode', 'input_id', 'input_value', 'node_id', 'created'] }, topRightBtns: _jsx(Flex, { gap: '3' }), showDownload: true }), getReportType == 'analytics' && _jsx(_Fragment, { children: _jsx(Card, { style: { '--card-border-radius': '0' } }) })] }) }));
78
+ },
79
+ { header: 'Input Id', accessorKey: 'input_id' },
80
+ { header: 'Input Value', accessorKey: 'input_value' },
81
+ {
82
+ header: 'Date',
83
+ accessorKey: 'created',
84
+ cell: ({ row }) => moment(row.original.created).local().format('Do MMM YYYY hh:mm a'),
85
+ },
86
+ ], topRight: _jsx("div", { className: "flex gap-3" }) }))] }) }));
81
87
  }
82
88
  //# sourceMappingURL=app_analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app_analytics.js","sourceRoot":"","sources":["../src/app_analytics.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app_analytics.js","sourceRoot":"","sources":["../src/app_analytics.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export default function AppDetails({ api_key, project, projectsRefetch }: any): import("react/jsx-runtime").JSX.Element;
1
+ export default function AppDetails({ api_key, project, projectsRefetch }: any): import("react").JSX.Element;
@@ -1,28 +1,34 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Button, Callout, Flex, Popover, Separator, Spinner, Switch, Text, TextArea, TextField } from "@radix-ui/themes";
4
- import * as Yup from "yup";
5
- import { yupResolver } from "@hookform/resolvers/yup";
3
+ import { Button } from "./components/ui/button";
4
+ import { Input } from "./components/ui/input";
5
+ import { Textarea } from "./components/ui/textarea";
6
+ import { Popover, PopoverContent, PopoverTrigger, PopoverClose } from "./components/ui/popover";
7
+ import { Separator } from "./components/ui/separator";
8
+ import { Spinner } from "./components/ui/spinner";
9
+ import { Switch } from "./components/ui/switch";
10
+ import * as Zod from "zod";
11
+ import { zodResolver } from "@hookform/resolvers/zod";
6
12
  import { Controller, useForm } from "react-hook-form";
7
- import * as Form from "@radix-ui/react-form";
8
13
  import { BsTrash } from "react-icons/bs";
9
14
  import { useEffect, useState } from "react";
10
15
  import { useConfigStore } from "./zustand/store";
11
- import { InfoCircledIcon } from "@radix-ui/react-icons";
12
16
  import flow_constants from "./constants";
17
+ import { toast } from "./lib/toast";
18
+ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "./components/ui/form";
13
19
  export default function AppDetails({ api_key, project, projectsRefetch }) {
14
- var _a, _b, _c, _d;
15
20
  const { openedProjects, setOpenedProjects, setActiveTab, setOpenSettings } = useConfigStore();
16
21
  const [deleting, setDeleting] = useState(false);
17
- const formSchema = Yup.object().shape({
18
- name: Yup.string().required('required'),
19
- description: Yup.string(),
20
- active: Yup.boolean()
22
+ const formSchema = Zod.object({
23
+ name: Zod.string().min(1, 'required'),
24
+ description: Zod.string(),
25
+ active: Zod.boolean()
21
26
  });
22
- const { control, register, handleSubmit: handleFormSubmit, getValues, setValue, reset, watch, formState: { errors, isSubmitting }, } = useForm({
23
- resolver: yupResolver(formSchema),
27
+ const form = useForm({
28
+ resolver: zodResolver(formSchema),
29
+ defaultValues: project,
24
30
  });
25
- const handleSubmit = async (data) => {
31
+ const onSubmit = async (data) => {
26
32
  try {
27
33
  const post_data = JSON.stringify({
28
34
  name: data.name,
@@ -37,12 +43,10 @@ export default function AppDetails({ api_key, project, projectsRefetch }) {
37
43
  });
38
44
  if (await response.ok) {
39
45
  projectsRefetch();
40
- // toast.success("Question posted successfully");
41
- // reset();
42
- // refetchQuestions();
46
+ toast.success("Project Updated");
43
47
  }
44
48
  else {
45
- // toast.error("Failed to post question");
49
+ toast.error("Failed to update project");
46
50
  }
47
51
  }
48
52
  catch (e) {
@@ -51,7 +55,7 @@ export default function AppDetails({ api_key, project, projectsRefetch }) {
51
55
  };
52
56
  useEffect(() => {
53
57
  if (project) {
54
- reset(project);
58
+ form.reset(project);
55
59
  }
56
60
  }, [project]);
57
61
  const deleteProject = async (identifier) => {
@@ -61,16 +65,14 @@ export default function AppDetails({ api_key, project, projectsRefetch }) {
61
65
  const response = await fetch(`${flow_constants.BACKEND_ENDPOINT}/projects/${identifier}`, { method: 'DELETE', headers: { "X-API-KEY": `${api_key}`, "Content-Type": "application/json" }, body: post_data });
62
66
  if (await response.ok) {
63
67
  projectsRefetch();
64
- // const data = await response.json()
65
68
  setOpenedProjects(openedProjects.filter((prj) => prj.identifier !== identifier));
66
69
  setActiveTab('home');
67
70
  setDeleting(false);
68
71
  setOpenSettings(false);
69
- // toast.success("Env Deleted Successfully")
72
+ toast.success("Project Deleted");
70
73
  }
71
74
  else {
72
- alert('not ok');
73
- // toast.error(JSON.stringify(data))
75
+ toast.error("Failed to delete project");
74
76
  }
75
77
  setDeleting(false);
76
78
  }
@@ -79,7 +81,6 @@ export default function AppDetails({ api_key, project, projectsRefetch }) {
79
81
  setDeleting(false);
80
82
  }
81
83
  };
82
- return (_jsx(Flex, { height: '100%', direction: 'column', gap: '3', children: _jsx(Form.Root, { onSubmit: handleFormSubmit(handleSubmit), noValidate: true, children: _jsxs(Flex, { direction: 'column', gap: '4', children: [_jsxs(Form.Field, { name: "name", serverInvalid: errors.name != null, children: [_jsx(TextField.Root, { type: "text", autoComplete: "off", placeholder: "Flow App Name", ...register("name") }), ((_a = errors.name) === null || _a === void 0 ? void 0 : _a.message) && (_jsx(Form.Message, { children: (_b = errors.name) === null || _b === void 0 ? void 0 : _b.message }))] }), _jsxs(Form.Field, { name: "description", serverInvalid: errors.description != null, children: [_jsx(TextArea, { placeholder: "Description", ...register("description"), rows: 5 }), ((_c = errors.description) === null || _c === void 0 ? void 0 : _c.message) && (_jsx(Form.Message, { children: (_d = errors.description) === null || _d === void 0 ? void 0 : _d.message }))] }), !watch('active') &&
83
- _jsxs(Callout.Root, { size: '1', color: 'yellow', children: [_jsx(Callout.Icon, { children: _jsx(InfoCircledIcon, {}) }), _jsx(Callout.Text, { children: "Deactivated Apps are unable to process hits from users." })] }), _jsxs(Flex, { justify: 'between', gap: '3', children: [_jsx(Controller, { name: "active", control: control, render: ({ field }) => (_jsx("label", { htmlFor: "active", children: _jsxs(Flex, { gap: '2', children: [_jsx(Switch, { checked: field.value, onCheckedChange: (checked) => { field.onChange(checked); }, highContrast: true, size: '1', id: 'active' }), " ", _jsx(Text, { color: 'gray', size: '2', children: watch('active') ? 'Deactivate' : 'Activate' })] }) })) }), _jsxs(Flex, { gap: '3', children: [_jsxs(Button, { type: 'submit', highContrast: true, size: '2', disabled: isSubmitting, children: [_jsx(Spinner, { loading: isSubmitting }), " ", isSubmitting ? 'Updating' : 'Update'] }), _jsxs(Popover.Root, { children: [_jsx(Popover.Trigger, { children: _jsx(Button, { "aria-label": 'Delete Project', color: "red", variant: 'surface', size: '2', children: _jsx(BsTrash, {}) }) }), _jsxs(Popover.Content, { align: 'end', maxWidth: '250px', size: '1', children: [_jsx(Text, { size: '1', color: 'gray', children: "Are you sure you want to Delete this Project" }), _jsx(Separator, { my: '3', size: '4' }), _jsxs(Flex, { justify: 'end', gap: '3', mt: '3', children: [_jsx(Popover.Close, { children: _jsx(Button, { variant: 'soft', color: 'gray', size: '1', children: "Cancel" }) }), _jsxs(Button, { color: 'red', type: 'button', size: '1', disabled: deleting, onClick: () => { deleteProject(project === null || project === void 0 ? void 0 : project.identifier); }, children: [_jsx(Spinner, { loading: deleting }), " ", deleting ? 'Deleting' : 'Delete'] })] })] })] })] })] })] }) }) }));
84
+ return (_jsx("div", { className: "h-full flex flex-col gap-3 mt-3", children: _jsx(Form, { ...form, children: _jsx("form", { onSubmit: form.handleSubmit(onSubmit), children: _jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(FormField, { control: form.control, name: "name", render: ({ field }) => (_jsxs(FormItem, { className: "flex-1", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx(FormLabel, { children: 'Project Title' }), _jsx(FormMessage, {})] }), _jsx(FormControl, { children: _jsx(Input, { placeholder: 'Flow App Name', className: "text-sm text-muted-foreground", autoComplete: "off", "aria-label": "Flow App Name", ...field }) })] })) }), _jsx(FormField, { control: form.control, name: "description", render: ({ field }) => (_jsxs(FormItem, { className: "flex-1", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx(FormLabel, { children: 'Description' }), _jsx(FormMessage, {})] }), _jsx(FormControl, { children: _jsx(Textarea, { placeholder: 'Description', className: "text-sm text-muted-foreground", autoComplete: "off", "aria-label": "Description", ...field }) })] })) }), _jsxs("div", { className: "flex justify-between gap-3", children: [_jsx(Controller, { name: "active", control: form.control, render: ({ field }) => (_jsxs("label", { htmlFor: "active", className: "flex gap-2 items-center cursor-pointer", children: [_jsx(Switch, { checked: field.value, onCheckedChange: (checked) => { field.onChange(checked); }, id: "active" }), _jsx("span", { className: "text-sm text-muted-foreground", children: form.watch('active') ? 'Activated' : 'Deactivated' })] })) }), _jsxs("div", { className: "flex gap-3", children: [_jsxs(Button, { type: "submit", size: "sm", disabled: form.formState.isSubmitting, children: [_jsx(Spinner, { loading: form.formState.isSubmitting }), " ", form.formState.isSubmitting ? 'Updating' : 'Update'] }), _jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { size: "sm", "aria-label": 'Delete Project', variant: "destructive", children: _jsx(BsTrash, {}) }) }), _jsxs(PopoverContent, { align: "end", className: "w-[250px]", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: "Are you sure you want to Delete this Project" }), _jsx(Separator, { className: "my-3" }), _jsxs("div", { className: "flex justify-end gap-3 mt-3", children: [_jsx(PopoverClose, { asChild: true, children: _jsx(Button, { variant: "outline", size: "xs", children: "Cancel" }) }), _jsxs(Button, { variant: "destructive", type: "button", size: "xs", disabled: deleting, onClick: () => { deleteProject(project === null || project === void 0 ? void 0 : project.identifier); }, children: [_jsx(Spinner, { loading: deleting }), " ", deleting ? 'Deleting' : 'Delete'] })] })] })] })] })] })] }) }) }) }));
84
85
  }
85
86
  //# sourceMappingURL=app_details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app_details.js","sourceRoot":"","sources":["../src/app_details.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app_details.js","sourceRoot":"","sources":["../src/app_details.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import '@radix-ui/themes/styles.css';
2
1
  import '@xyflow/react/dist/style.css';
3
- export default function AppLayout({ theme, accent, children }: any): import("react/jsx-runtime").JSX.Element;
2
+ import './globals.css';
3
+ export default function AppLayout({ theme, accent, children }: any): import("react").JSX.Element;
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Theme } from '@radix-ui/themes';
3
- import '@radix-ui/themes/styles.css';
4
2
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
5
3
  import '@xyflow/react/dist/style.css';
6
4
  import { ReactFlowProvider } from '@xyflow/react';
5
+ import './globals.css';
6
+ import { cn } from './lib/utils';
7
7
  // import { Toaster } from 'sonner';
8
- export default function AppLayout({ theme = 'inherit', accent = 'gray', children }) {
8
+ export default function AppLayout({ theme = 'light', accent = 'gray', children }) {
9
9
  const queryClient = new QueryClient();
10
- return (_jsx(Theme, { appearance: theme, accentColor: accent, panelBackground: 'solid', style: { height: '100%', minHeight: '100%' }, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(ReactFlowProvider, { children: children }) }) }));
10
+ return (_jsx("div", { className: cn("h-full min-h-full", theme === 'dark' && 'dark'), children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(ReactFlowProvider, { children: children }) }) }));
11
11
  }
12
12
  //# sourceMappingURL=app_layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app_layout.js","sourceRoot":"","sources":["../src/app_layout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,oCAAoC;AAEpC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAC,KAAK,GAAC,SAAS,EAAE,MAAM,GAAC,MAAM,EAAE,QAAQ,EAAK;IAC5E,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,OAAO,CACH,KAAC,KAAK,IAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,MAAM,EAAE,YAChH,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YACpC,KAAC,iBAAiB,cAErB,QAAQ,GAEW,GACE,GAClB,CACX,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"app_layout.js","sourceRoot":"","sources":["../src/app_layout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,oCAAoC;AAEpC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAC,KAAK,GAAC,OAAO,EAAE,MAAM,GAAC,MAAM,EAAE,QAAQ,EAAK;IAC1E,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,OAAO,CACH,cAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,YAC/D,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YACpC,KAAC,iBAAiB,cAErB,QAAQ,GAEW,GACE,GACpB,CACT,CAAA;AACL,CAAC"}
@@ -1 +1 @@
1
- export default function AppSettings({ api_key, project, projectsRefetch, providers, provider, triggers, triggersRefetch, functions, functionsRefetch, envs, envsRefetch }: any): import("react/jsx-runtime").JSX.Element;
1
+ export default function AppSettings({ api_key, project, projectRefetch, projectsRefetch, providers, provider, triggers, triggersRefetch, functions, functionsRefetch, envs, envsRefetch }: any): import("react").JSX.Element;