camox 0.48.0 → 0.51.0
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.
- package/dist/core/layoutContext.d.ts +1 -0
- package/dist/features/canvas/sidebar/CanvasInspector.js +1 -1
- package/dist/features/content/ContentAssets.js +84 -88
- package/dist/features/preview/CamoxPreview.js +1 -1
- package/dist/features/preview/EditablePageExperience.js +17 -9
- package/dist/features/preview/components/BlockActionsPopover.js +11 -35
- package/dist/features/preview/components/FieldToolbar.js +1 -1
- package/dist/features/preview/components/MobilePreviewDrawer.js +6 -9
- package/dist/features/preview/components/PreviewPanel.js +10 -64
- package/dist/features/preview/components/PreviewToolbar.js +1 -1
- package/dist/features/preview/previewConstants.js +2 -8
- package/dist/features/preview/usePreviewViewportActions.js +1 -1
- package/dist/features/provider/AuthenticatedCamoxProvider.js +1 -1
- package/dist/features/provider/components/CommandPalette.js +2 -5
- package/dist/features/provider/signInShortcut.js +1 -2
- package/dist/features/provider/useAdminShortcuts.js +47 -53
- package/dist/features/routes/pageRuntime.d.ts +2 -1
- package/dist/features/routes/pageRuntime.js +27 -20
- package/dist/features/runtime/publicCache.js +83 -0
- package/dist/features/runtime/runtime.d.ts +13 -3
- package/dist/features/runtime/runtime.js +173 -79
- package/dist/features/runtime/worker.d.ts +5 -1
- package/dist/features/runtime/worker.js +20 -3
- package/dist/features/settings/AnalyticsSettings.js +622 -0
- package/dist/features/settings/CamoxSettings.js +95 -0
- package/dist/features/settings/FaviconSettings.js +254 -0
- package/dist/features/settings/ProjectNameSettings.js +145 -0
- package/dist/features/settings/SettingsPart.js +73 -0
- package/dist/features/settings/SocialProfilesSettings.js +245 -0
- package/dist/features/settings/useProjectMutation.js +61 -0
- package/dist/features/studio/components/DraftsControl.js +136 -131
- package/dist/features/studio/components/LocalePicker.js +178 -174
- package/dist/features/studio/components/Navbar.js +107 -66
- package/dist/features/studio/components/ProjectMenu.js +118 -170
- package/dist/features/studio/components/ReviewDraftSheet.js +1046 -990
- package/dist/features/studio/components/UserButton.js +1 -1
- package/dist/features/studio/routes.js +3 -1
- package/dist/features/studio/showInCanvas.js +129 -0
- package/dist/features/vite/definitionsSync.js +4 -5
- package/dist/features/vite/runtimeDev.js +32 -17
- package/dist/features/vite/staticAssetHeaders.js +52 -0
- package/dist/features/vite/vite.d.ts +1 -1
- package/dist/features/vite/vite.js +16 -4
- package/dist/lib/api-client-server.d.ts +1 -1
- package/dist/lib/api-client.d.ts +2 -1
- package/dist/lib/draft-scope.d.ts +1 -0
- package/dist/lib/locale-path.d.ts +3 -11
- package/dist/lib/locale-path.js +3 -27
- package/dist/lib/queries.js +7 -1
- package/dist/lib/shortcuts.js +29 -0
- package/dist/lib/studio-reads.d.ts +1 -0
- package/dist/lib/utils.js +1 -104
- package/dist/package.js +1 -1
- package/dist/studio.css +1 -1
- package/package.json +5 -4
- package/dist/features/studio/components/FaviconDialog.js +0 -318
- package/dist/features/studio/components/SocialProfilesDialog.js +0 -342
|
@@ -4,7 +4,7 @@ import { Link as Link$1, useNavigate } from "../../navigation/navigation.js";
|
|
|
4
4
|
import { cn } from "../../../lib/utils.js";
|
|
5
5
|
import { usePageDestinations } from "../../../hooks/use-page-destinations.js";
|
|
6
6
|
import { useLocalePath, useLocalizedPath } from "../../../lib/view-locale.js";
|
|
7
|
-
import { STUDIO_BASE_PATH, STUDIO_CONTENT_PATH } from "../routes.js";
|
|
7
|
+
import { STUDIO_BASE_PATH, STUDIO_CONTENT_PATH, STUDIO_SETTINGS_PATH } from "../routes.js";
|
|
8
8
|
import { studioStore } from "../studioStore.js";
|
|
9
9
|
import { UserButton } from "./UserButton.js";
|
|
10
10
|
import { DraftPicker, PendingChanges } from "./DraftsControl.js";
|
|
@@ -21,6 +21,7 @@ import { Database, Globe } from "lucide-react";
|
|
|
21
21
|
const links = [{
|
|
22
22
|
to: "/",
|
|
23
23
|
title: "Website",
|
|
24
|
+
isWebsite: true,
|
|
24
25
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Globe, {}), "Website"] }),
|
|
25
26
|
icon: "Globe",
|
|
26
27
|
aliases: ["Website"]
|
|
@@ -41,14 +42,16 @@ const getNavbarLinks = () => links;
|
|
|
41
42
|
* locale since, a Studio location stays, while a page, whose path may differ there, goes home.
|
|
42
43
|
*/
|
|
43
44
|
function navbarHref(link, last, locale, localized) {
|
|
44
|
-
if (link
|
|
45
|
+
if (!link.isWebsite || !last) return localized(link.to);
|
|
45
46
|
if (last.locale === locale) return `${localized(last.path)}${last.search}${last.hash}`;
|
|
46
47
|
if (last.path.startsWith(`${"/camox"}/`)) return localized(last.path);
|
|
47
48
|
return localized(link.to);
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
/** Whether `pathname` is in the studio section at `sectionPath`. */
|
|
51
|
+
const isInSection = (sectionPath, pathname) => pathname === sectionPath || pathname.startsWith(`${sectionPath}/`);
|
|
52
|
+
const isSettingsNavbarPath = (pathname) => isInSection(STUDIO_SETTINGS_PATH, pathname);
|
|
50
53
|
const Navbar = (t0) => {
|
|
51
|
-
const $ = c(
|
|
54
|
+
const $ = c(26);
|
|
52
55
|
const { isWebsite: t1, recordPage } = t0;
|
|
53
56
|
const isWebsite = t1 === void 0 ? false : t1;
|
|
54
57
|
const pages = usePageDestinations();
|
|
@@ -57,86 +60,104 @@ const Navbar = (t0) => {
|
|
|
57
60
|
const { locale } = useViewLocale();
|
|
58
61
|
const last = useSelector(studioStore, _temp);
|
|
59
62
|
let t2;
|
|
63
|
+
if ($[0] !== pathname) {
|
|
64
|
+
t2 = isSettingsNavbarPath(pathname);
|
|
65
|
+
$[0] = pathname;
|
|
66
|
+
$[1] = t2;
|
|
67
|
+
} else t2 = $[1];
|
|
68
|
+
const isSettings = t2;
|
|
60
69
|
let t3;
|
|
61
|
-
if ($[
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
$[1] = t3;
|
|
66
|
-
} else {
|
|
67
|
-
t2 = $[0];
|
|
68
|
-
t3 = $[1];
|
|
69
|
-
}
|
|
70
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
71
|
+
t3 = /* @__PURE__ */ jsx(ProjectMenu, {});
|
|
72
|
+
$[2] = t3;
|
|
73
|
+
} else t3 = $[2];
|
|
70
74
|
let t4;
|
|
71
|
-
if ($[
|
|
72
|
-
t4 = /* @__PURE__ */
|
|
75
|
+
if ($[3] !== isSettings) {
|
|
76
|
+
t4 = /* @__PURE__ */ jsx(DraftPicker, { disabled: isSettings });
|
|
77
|
+
$[3] = isSettings;
|
|
78
|
+
$[4] = t4;
|
|
79
|
+
} else t4 = $[4];
|
|
80
|
+
let t5;
|
|
81
|
+
if ($[5] !== isSettings || $[6] !== recordPage) {
|
|
82
|
+
t5 = /* @__PURE__ */ jsx(LocalePicker, {
|
|
83
|
+
recordPage,
|
|
84
|
+
disabled: isSettings
|
|
85
|
+
});
|
|
86
|
+
$[5] = isSettings;
|
|
87
|
+
$[6] = recordPage;
|
|
88
|
+
$[7] = t5;
|
|
89
|
+
} else t5 = $[7];
|
|
90
|
+
let t6;
|
|
91
|
+
if ($[8] !== t4 || $[9] !== t5) {
|
|
92
|
+
t6 = /* @__PURE__ */ jsxs("div", {
|
|
73
93
|
className: "flex items-center gap-1",
|
|
74
94
|
children: [
|
|
75
|
-
t2,
|
|
76
95
|
t3,
|
|
77
|
-
|
|
96
|
+
t4,
|
|
97
|
+
t5
|
|
78
98
|
]
|
|
79
99
|
});
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const
|
|
100
|
+
$[8] = t4;
|
|
101
|
+
$[9] = t5;
|
|
102
|
+
$[10] = t6;
|
|
103
|
+
} else t6 = $[10];
|
|
104
|
+
let t7;
|
|
105
|
+
if ($[11] !== isWebsite || $[12] !== last || $[13] !== locale || $[14] !== localized || $[15] !== pages || $[16] !== pathname) {
|
|
106
|
+
t7 = getNavbarLinks().map((link) => {
|
|
107
|
+
const isActive = link.isWebsite ? isWebsite || !!pages?.some((page) => page.fullPath === pathname) : isInSection(link.to, pathname);
|
|
88
108
|
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link$1, {
|
|
89
109
|
to: navbarHref(link, last, locale.tag, localized),
|
|
90
|
-
|
|
110
|
+
"aria-current": isActive ? "page" : void 0,
|
|
111
|
+
className: cn(buttonVariants({ variant: "ghost" }), isActive ? "bg-muted text-foreground dark:bg-muted/50" : "text-muted-foreground hover:text-muted-foreground"),
|
|
91
112
|
activeProps: { className: "bg-muted text-foreground! dark:bg-muted/50" },
|
|
92
113
|
children: link.children
|
|
93
114
|
}) }, link.to);
|
|
94
115
|
});
|
|
95
|
-
$[
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
} else
|
|
103
|
-
let
|
|
104
|
-
if ($[
|
|
105
|
-
|
|
116
|
+
$[11] = isWebsite;
|
|
117
|
+
$[12] = last;
|
|
118
|
+
$[13] = locale;
|
|
119
|
+
$[14] = localized;
|
|
120
|
+
$[15] = pages;
|
|
121
|
+
$[16] = pathname;
|
|
122
|
+
$[17] = t7;
|
|
123
|
+
} else t7 = $[17];
|
|
124
|
+
let t8;
|
|
125
|
+
if ($[18] !== t7) {
|
|
126
|
+
t8 = /* @__PURE__ */ jsx("ul", {
|
|
106
127
|
className: "flex items-center gap-1",
|
|
107
|
-
children:
|
|
128
|
+
children: t7
|
|
108
129
|
});
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
} else
|
|
112
|
-
let
|
|
113
|
-
if ($[
|
|
114
|
-
|
|
130
|
+
$[18] = t7;
|
|
131
|
+
$[19] = t8;
|
|
132
|
+
} else t8 = $[19];
|
|
133
|
+
let t9;
|
|
134
|
+
if ($[20] !== t6 || $[21] !== t8) {
|
|
135
|
+
t9 = /* @__PURE__ */ jsxs("div", {
|
|
115
136
|
className: "flex flex-row gap-2",
|
|
116
|
-
children: [
|
|
137
|
+
children: [t6, t8]
|
|
117
138
|
});
|
|
118
|
-
$[
|
|
119
|
-
$[
|
|
120
|
-
$[
|
|
121
|
-
} else
|
|
122
|
-
let
|
|
123
|
-
if ($[
|
|
124
|
-
|
|
139
|
+
$[20] = t6;
|
|
140
|
+
$[21] = t8;
|
|
141
|
+
$[22] = t9;
|
|
142
|
+
} else t9 = $[22];
|
|
143
|
+
let t10;
|
|
144
|
+
if ($[23] === Symbol.for("react.memo_cache_sentinel")) {
|
|
145
|
+
t10 = /* @__PURE__ */ jsxs("div", {
|
|
125
146
|
className: "flex items-center gap-2",
|
|
126
147
|
children: [/* @__PURE__ */ jsx(PendingChanges, {}), /* @__PURE__ */ jsx(UserButton, {})]
|
|
127
148
|
});
|
|
128
|
-
$[
|
|
129
|
-
} else
|
|
130
|
-
let
|
|
131
|
-
if ($[
|
|
132
|
-
|
|
149
|
+
$[23] = t10;
|
|
150
|
+
} else t10 = $[23];
|
|
151
|
+
let t11;
|
|
152
|
+
if ($[24] !== t9) {
|
|
153
|
+
t11 = /* @__PURE__ */ jsxs("nav", {
|
|
133
154
|
className: "bg-background relative flex items-center justify-between gap-4 border-b-2 px-2 py-2",
|
|
134
|
-
children: [
|
|
155
|
+
children: [t9, t10]
|
|
135
156
|
});
|
|
136
|
-
$[
|
|
137
|
-
$[
|
|
138
|
-
} else
|
|
139
|
-
return
|
|
157
|
+
$[24] = t9;
|
|
158
|
+
$[25] = t11;
|
|
159
|
+
} else t11 = $[25];
|
|
160
|
+
return t11;
|
|
140
161
|
};
|
|
141
162
|
function useNavbarActions() {
|
|
142
163
|
const $ = c(5);
|
|
@@ -156,10 +177,27 @@ function useNavbarActions() {
|
|
|
156
177
|
const last = studioStore.getSnapshot().context.websiteLocation;
|
|
157
178
|
navigate({ to: navbarHref(link, last, locale.tag, localized) });
|
|
158
179
|
},
|
|
159
|
-
shortcut: {
|
|
180
|
+
shortcut: `${index + 1}`,
|
|
160
181
|
icon: link.icon,
|
|
161
182
|
aliases: link.aliases
|
|
162
183
|
}));
|
|
184
|
+
actions.push({
|
|
185
|
+
id: `navigate-to-${STUDIO_SETTINGS_PATH}`,
|
|
186
|
+
label: "Go to Settings",
|
|
187
|
+
groupLabel: "Navigation",
|
|
188
|
+
checkIfAvailable: _temp3,
|
|
189
|
+
execute: () => void navigate({ to: localized(STUDIO_SETTINGS_PATH) }),
|
|
190
|
+
shortcut: `${actions.length + 1}`,
|
|
191
|
+
icon: "Settings",
|
|
192
|
+
aliases: [
|
|
193
|
+
"Settings",
|
|
194
|
+
"Project settings",
|
|
195
|
+
"Project name",
|
|
196
|
+
"Favicon",
|
|
197
|
+
"Social profiles",
|
|
198
|
+
"Analytics"
|
|
199
|
+
]
|
|
200
|
+
});
|
|
163
201
|
actionsStore.send({
|
|
164
202
|
type: "registerManyActions",
|
|
165
203
|
actions
|
|
@@ -167,7 +205,7 @@ function useNavbarActions() {
|
|
|
167
205
|
return () => {
|
|
168
206
|
actionsStore.send({
|
|
169
207
|
type: "unregisterManyActions",
|
|
170
|
-
ids: actions.map(
|
|
208
|
+
ids: actions.map(_temp4)
|
|
171
209
|
});
|
|
172
210
|
};
|
|
173
211
|
};
|
|
@@ -187,9 +225,12 @@ function useNavbarActions() {
|
|
|
187
225
|
}
|
|
188
226
|
React.useEffect(t0, t1);
|
|
189
227
|
}
|
|
190
|
-
function
|
|
228
|
+
function _temp4(a) {
|
|
191
229
|
return a.id;
|
|
192
230
|
}
|
|
231
|
+
function _temp3() {
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
193
234
|
function _temp2() {
|
|
194
235
|
return true;
|
|
195
236
|
}
|
|
@@ -198,4 +239,4 @@ function _temp(state) {
|
|
|
198
239
|
}
|
|
199
240
|
|
|
200
241
|
//#endregion
|
|
201
|
-
export { Navbar, getNavbarLinks,
|
|
242
|
+
export { Navbar, getNavbarLinks, useNavbarActions };
|
|
@@ -2,15 +2,15 @@ import { AuthContext } from "../../../lib/auth.js";
|
|
|
2
2
|
import { getApiUrl } from "../../../lib/api-client.js";
|
|
3
3
|
import { Link as Link$1 } from "../../navigation/navigation.js";
|
|
4
4
|
import { reads, useReadQuery } from "../../../lib/studio-reads.js";
|
|
5
|
+
import { useLocalizedPath } from "../../../lib/view-locale.js";
|
|
6
|
+
import { STUDIO_SETTINGS_PATH } from "../routes.js";
|
|
5
7
|
import { buildFaviconUrl } from "../../routes/pageRuntime.js";
|
|
6
8
|
import { version } from "../../../package.js";
|
|
7
|
-
import { FaviconDialog } from "./FaviconDialog.js";
|
|
8
|
-
import { SocialProfilesDialog } from "./SocialProfilesDialog.js";
|
|
9
9
|
import { c } from "react/compiler-runtime";
|
|
10
10
|
import * as React from "react";
|
|
11
|
-
import {
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { Button } from "@camox/ui/button";
|
|
13
|
-
import {
|
|
13
|
+
import { ChevronDown, Info, Settings, Users } from "lucide-react";
|
|
14
14
|
import { Skeleton } from "@camox/ui/skeleton";
|
|
15
15
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "@camox/ui/dropdown-menu";
|
|
16
16
|
|
|
@@ -49,7 +49,7 @@ const Favicon = (t0) => {
|
|
|
49
49
|
return t4;
|
|
50
50
|
};
|
|
51
51
|
const ProjectMenu = () => {
|
|
52
|
-
const $ = c(
|
|
52
|
+
const $ = c(48);
|
|
53
53
|
const authCtx = React.useContext(AuthContext);
|
|
54
54
|
let t0;
|
|
55
55
|
if ($[0] !== authCtx.projectUuid) {
|
|
@@ -58,8 +58,7 @@ const ProjectMenu = () => {
|
|
|
58
58
|
$[1] = t0;
|
|
59
59
|
} else t0 = $[1];
|
|
60
60
|
const { data: project } = useReadQuery(t0);
|
|
61
|
-
const
|
|
62
|
-
const [isSocialProfilesDialogOpen, setIsSocialProfilesDialogOpen] = React.useState(false);
|
|
61
|
+
const localized = useLocalizedPath();
|
|
63
62
|
if (!project) {
|
|
64
63
|
let t1;
|
|
65
64
|
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -118,149 +117,134 @@ const ProjectMenu = () => {
|
|
|
118
117
|
$[12] = t4;
|
|
119
118
|
$[13] = t6;
|
|
120
119
|
} else t6 = $[13];
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
});
|
|
129
|
-
$[14] = t7;
|
|
130
|
-
$[15] = t8;
|
|
131
|
-
} else t8 = $[15];
|
|
120
|
+
let t7;
|
|
121
|
+
if ($[14] !== localized) {
|
|
122
|
+
t7 = localized(STUDIO_SETTINGS_PATH);
|
|
123
|
+
$[14] = localized;
|
|
124
|
+
$[15] = t7;
|
|
125
|
+
} else t7 = $[15];
|
|
126
|
+
const t8 = t7;
|
|
132
127
|
let t9;
|
|
133
|
-
if ($[16]
|
|
134
|
-
t9 = /* @__PURE__ */ jsx(
|
|
135
|
-
$[16] =
|
|
136
|
-
|
|
128
|
+
if ($[16] !== t8) {
|
|
129
|
+
t9 = /* @__PURE__ */ jsx(Link$1, { to: t8 });
|
|
130
|
+
$[16] = t8;
|
|
131
|
+
$[17] = t9;
|
|
132
|
+
} else t9 = $[17];
|
|
137
133
|
let t10;
|
|
138
|
-
if ($[
|
|
139
|
-
t10 = /* @__PURE__ */
|
|
140
|
-
render: t8,
|
|
141
|
-
children: [t9, "Project settings"]
|
|
142
|
-
});
|
|
143
|
-
$[17] = t8;
|
|
134
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
135
|
+
t10 = /* @__PURE__ */ jsx(Settings, {});
|
|
144
136
|
$[18] = t10;
|
|
145
137
|
} else t10 = $[18];
|
|
146
138
|
let t11;
|
|
147
|
-
if ($[19]
|
|
139
|
+
if ($[19] !== t9) {
|
|
148
140
|
t11 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
149
|
-
|
|
150
|
-
children: [
|
|
141
|
+
render: t9,
|
|
142
|
+
children: [t10, "Settings"]
|
|
151
143
|
});
|
|
152
|
-
$[19] =
|
|
153
|
-
|
|
144
|
+
$[19] = t9;
|
|
145
|
+
$[20] = t11;
|
|
146
|
+
} else t11 = $[20];
|
|
154
147
|
let t12;
|
|
148
|
+
if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
|
|
149
|
+
t12 = /* @__PURE__ */ jsx(DropdownMenuSeparator, {});
|
|
150
|
+
$[21] = t12;
|
|
151
|
+
} else t12 = $[21];
|
|
155
152
|
let t13;
|
|
156
|
-
if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
|
|
157
|
-
t12 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
158
|
-
onClick: () => setIsSocialProfilesDialogOpen(true),
|
|
159
|
-
children: [/* @__PURE__ */ jsx(AtSign, {}), "Social profiles…"]
|
|
160
|
-
});
|
|
161
|
-
t13 = /* @__PURE__ */ jsx(DropdownMenuSeparator, {});
|
|
162
|
-
$[20] = t12;
|
|
163
|
-
$[21] = t13;
|
|
164
|
-
} else {
|
|
165
|
-
t12 = $[20];
|
|
166
|
-
t13 = $[21];
|
|
167
|
-
}
|
|
168
|
-
let t14;
|
|
169
153
|
if ($[22] !== project.organizationSlug) {
|
|
170
|
-
|
|
154
|
+
t13 = /* @__PURE__ */ jsx(DropdownMenuLabel, {
|
|
171
155
|
className: "text-muted-foreground text-xs font-normal",
|
|
172
156
|
children: project.organizationSlug
|
|
173
157
|
});
|
|
174
158
|
$[22] = project.organizationSlug;
|
|
175
|
-
$[23] =
|
|
176
|
-
} else
|
|
177
|
-
const
|
|
178
|
-
let
|
|
179
|
-
if ($[24] !==
|
|
180
|
-
|
|
181
|
-
href:
|
|
159
|
+
$[23] = t13;
|
|
160
|
+
} else t13 = $[23];
|
|
161
|
+
const t14 = authCtx ? `${authCtx.authenticationUrl}/${project.organizationSlug}/members` : "#";
|
|
162
|
+
let t15;
|
|
163
|
+
if ($[24] !== t14) {
|
|
164
|
+
t15 = /* @__PURE__ */ jsx("a", {
|
|
165
|
+
href: t14,
|
|
182
166
|
target: "_blank",
|
|
183
167
|
rel: "noopener noreferrer"
|
|
184
168
|
});
|
|
185
|
-
$[24] =
|
|
186
|
-
$[25] =
|
|
187
|
-
} else
|
|
188
|
-
let
|
|
169
|
+
$[24] = t14;
|
|
170
|
+
$[25] = t15;
|
|
171
|
+
} else t15 = $[25];
|
|
172
|
+
let t16;
|
|
189
173
|
if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
|
|
190
|
-
|
|
191
|
-
$[26] =
|
|
192
|
-
} else
|
|
193
|
-
let
|
|
194
|
-
if ($[27] !==
|
|
195
|
-
|
|
196
|
-
render:
|
|
197
|
-
children: [
|
|
174
|
+
t16 = /* @__PURE__ */ jsx(Users, {});
|
|
175
|
+
$[26] = t16;
|
|
176
|
+
} else t16 = $[26];
|
|
177
|
+
let t17;
|
|
178
|
+
if ($[27] !== t15) {
|
|
179
|
+
t17 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
180
|
+
render: t15,
|
|
181
|
+
children: [t16, "Team members"]
|
|
198
182
|
});
|
|
199
|
-
$[27] =
|
|
200
|
-
$[28] =
|
|
201
|
-
} else
|
|
202
|
-
const
|
|
203
|
-
let
|
|
204
|
-
if ($[29] !==
|
|
205
|
-
|
|
206
|
-
href:
|
|
183
|
+
$[27] = t15;
|
|
184
|
+
$[28] = t17;
|
|
185
|
+
} else t17 = $[28];
|
|
186
|
+
const t18 = authCtx ? `${authCtx.authenticationUrl}/${project.organizationSlug}/settings` : "#";
|
|
187
|
+
let t19;
|
|
188
|
+
if ($[29] !== t18) {
|
|
189
|
+
t19 = /* @__PURE__ */ jsx("a", {
|
|
190
|
+
href: t18,
|
|
207
191
|
target: "_blank",
|
|
208
192
|
rel: "noopener noreferrer"
|
|
209
193
|
});
|
|
210
|
-
$[29] =
|
|
211
|
-
$[30] =
|
|
212
|
-
} else
|
|
213
|
-
let
|
|
194
|
+
$[29] = t18;
|
|
195
|
+
$[30] = t19;
|
|
196
|
+
} else t19 = $[30];
|
|
197
|
+
let t20;
|
|
214
198
|
if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
|
|
215
|
-
|
|
216
|
-
$[31] =
|
|
217
|
-
} else
|
|
218
|
-
let
|
|
219
|
-
if ($[32] !==
|
|
220
|
-
|
|
221
|
-
render:
|
|
222
|
-
children: [
|
|
199
|
+
t20 = /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4" });
|
|
200
|
+
$[31] = t20;
|
|
201
|
+
} else t20 = $[31];
|
|
202
|
+
let t21;
|
|
203
|
+
if ($[32] !== t19) {
|
|
204
|
+
t21 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
205
|
+
render: t19,
|
|
206
|
+
children: [t20, "Team settings"]
|
|
223
207
|
});
|
|
224
|
-
$[32] =
|
|
225
|
-
$[33] =
|
|
226
|
-
} else
|
|
227
|
-
let
|
|
228
|
-
if ($[34] !==
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
208
|
+
$[32] = t19;
|
|
209
|
+
$[33] = t21;
|
|
210
|
+
} else t21 = $[33];
|
|
211
|
+
let t22;
|
|
212
|
+
if ($[34] !== t13 || $[35] !== t17 || $[36] !== t21) {
|
|
213
|
+
t22 = /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
|
|
214
|
+
t13,
|
|
215
|
+
t17,
|
|
216
|
+
t21
|
|
233
217
|
] });
|
|
234
|
-
$[34] =
|
|
235
|
-
$[35] =
|
|
236
|
-
$[36] =
|
|
237
|
-
$[37] =
|
|
238
|
-
} else
|
|
239
|
-
let
|
|
218
|
+
$[34] = t13;
|
|
219
|
+
$[35] = t17;
|
|
220
|
+
$[36] = t21;
|
|
221
|
+
$[37] = t22;
|
|
222
|
+
} else t22 = $[37];
|
|
223
|
+
let t23;
|
|
240
224
|
if ($[38] === Symbol.for("react.memo_cache_sentinel")) {
|
|
241
|
-
|
|
242
|
-
$[38] =
|
|
243
|
-
} else
|
|
225
|
+
t23 = /* @__PURE__ */ jsx(DropdownMenuSeparator, {});
|
|
226
|
+
$[38] = t23;
|
|
227
|
+
} else t23 = $[38];
|
|
228
|
+
let t24;
|
|
244
229
|
let t25;
|
|
245
|
-
let t26;
|
|
246
230
|
if ($[39] === Symbol.for("react.memo_cache_sentinel")) {
|
|
247
|
-
|
|
248
|
-
to: "https://camox.
|
|
231
|
+
t24 = /* @__PURE__ */ jsx(Link$1, {
|
|
232
|
+
to: "https://camox.ai",
|
|
249
233
|
target: "_blank"
|
|
250
234
|
});
|
|
251
|
-
|
|
252
|
-
$[39] =
|
|
253
|
-
$[40] =
|
|
235
|
+
t25 = /* @__PURE__ */ jsx(Info, { className: "h-4 w-4" });
|
|
236
|
+
$[39] = t24;
|
|
237
|
+
$[40] = t25;
|
|
254
238
|
} else {
|
|
255
|
-
|
|
256
|
-
|
|
239
|
+
t24 = $[39];
|
|
240
|
+
t25 = $[40];
|
|
257
241
|
}
|
|
258
|
-
let
|
|
242
|
+
let t26;
|
|
259
243
|
if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
|
|
260
|
-
|
|
261
|
-
render:
|
|
244
|
+
t26 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
245
|
+
render: t24,
|
|
262
246
|
children: [
|
|
263
|
-
|
|
247
|
+
t25,
|
|
264
248
|
"Powered by Camox",
|
|
265
249
|
/* @__PURE__ */ jsxs("span", {
|
|
266
250
|
className: "text-muted-foreground ml-auto",
|
|
@@ -268,70 +252,34 @@ const ProjectMenu = () => {
|
|
|
268
252
|
})
|
|
269
253
|
]
|
|
270
254
|
});
|
|
271
|
-
$[41] =
|
|
272
|
-
} else
|
|
273
|
-
let
|
|
274
|
-
if ($[42] !==
|
|
275
|
-
|
|
255
|
+
$[41] = t26;
|
|
256
|
+
} else t26 = $[41];
|
|
257
|
+
let t27;
|
|
258
|
+
if ($[42] !== t11 || $[43] !== t22) {
|
|
259
|
+
t27 = /* @__PURE__ */ jsxs(DropdownMenuContent, {
|
|
276
260
|
className: "w-72",
|
|
277
261
|
align: "start",
|
|
278
262
|
side: "bottom",
|
|
279
263
|
children: [
|
|
280
|
-
t10,
|
|
281
264
|
t11,
|
|
282
265
|
t12,
|
|
283
|
-
|
|
266
|
+
t22,
|
|
284
267
|
t23,
|
|
285
|
-
|
|
286
|
-
t27
|
|
268
|
+
t26
|
|
287
269
|
]
|
|
288
270
|
});
|
|
289
|
-
$[42] =
|
|
290
|
-
$[43] =
|
|
291
|
-
$[44] =
|
|
292
|
-
} else
|
|
293
|
-
let
|
|
294
|
-
if ($[45] !==
|
|
295
|
-
|
|
296
|
-
$[45] =
|
|
271
|
+
$[42] = t11;
|
|
272
|
+
$[43] = t22;
|
|
273
|
+
$[44] = t27;
|
|
274
|
+
} else t27 = $[44];
|
|
275
|
+
let t28;
|
|
276
|
+
if ($[45] !== t27 || $[46] !== t6) {
|
|
277
|
+
t28 = /* @__PURE__ */ jsxs(DropdownMenu, { children: [t6, t27] });
|
|
278
|
+
$[45] = t27;
|
|
297
279
|
$[46] = t6;
|
|
298
|
-
$[47] =
|
|
299
|
-
} else
|
|
300
|
-
|
|
301
|
-
if ($[48] !== isFaviconDialogOpen || $[49] !== project) {
|
|
302
|
-
t30 = /* @__PURE__ */ jsx(FaviconDialog, {
|
|
303
|
-
project,
|
|
304
|
-
open: isFaviconDialogOpen,
|
|
305
|
-
onOpenChange: setIsFaviconDialogOpen
|
|
306
|
-
});
|
|
307
|
-
$[48] = isFaviconDialogOpen;
|
|
308
|
-
$[49] = project;
|
|
309
|
-
$[50] = t30;
|
|
310
|
-
} else t30 = $[50];
|
|
311
|
-
let t31;
|
|
312
|
-
if ($[51] !== isSocialProfilesDialogOpen || $[52] !== project) {
|
|
313
|
-
t31 = /* @__PURE__ */ jsx(SocialProfilesDialog, {
|
|
314
|
-
project,
|
|
315
|
-
open: isSocialProfilesDialogOpen,
|
|
316
|
-
onOpenChange: setIsSocialProfilesDialogOpen
|
|
317
|
-
});
|
|
318
|
-
$[51] = isSocialProfilesDialogOpen;
|
|
319
|
-
$[52] = project;
|
|
320
|
-
$[53] = t31;
|
|
321
|
-
} else t31 = $[53];
|
|
322
|
-
let t32;
|
|
323
|
-
if ($[54] !== t29 || $[55] !== t30 || $[56] !== t31) {
|
|
324
|
-
t32 = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
325
|
-
t29,
|
|
326
|
-
t30,
|
|
327
|
-
t31
|
|
328
|
-
] });
|
|
329
|
-
$[54] = t29;
|
|
330
|
-
$[55] = t30;
|
|
331
|
-
$[56] = t31;
|
|
332
|
-
$[57] = t32;
|
|
333
|
-
} else t32 = $[57];
|
|
334
|
-
return t32;
|
|
280
|
+
$[47] = t28;
|
|
281
|
+
} else t28 = $[47];
|
|
282
|
+
return t28;
|
|
335
283
|
};
|
|
336
284
|
|
|
337
285
|
//#endregion
|