camox 0.47.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/createApp.d.ts +19 -6
- package/dist/core/createApp.js +7 -2
- package/dist/core/createBlock.js +54 -43
- package/dist/core/createCollection.d.ts +25 -7
- package/dist/core/createCollection.js +28 -9
- package/dist/core/createLayout.d.ts +98 -71
- package/dist/core/createLayout.js +10 -16
- package/dist/core/derivedRoutes.js +1 -1
- package/dist/core/editing/BlockEditingRuntime.d.ts +3 -2
- package/dist/core/editing/CompleteBlockEditingRuntime.js +2 -1
- package/dist/core/editing/createEditableBlock.d.ts +59 -19
- package/dist/core/editing/createEditableBlock.js +162 -151
- package/dist/core/editing/useLatestRecord.js +7 -7
- package/dist/core/layoutContext.d.ts +55 -0
- package/dist/core/layoutContext.js +66 -0
- package/dist/core/lib/contentType.d.ts +91 -4
- package/dist/core/lib/contentType.js +84 -7
- package/dist/core/lib/recordScope.js +19 -17
- package/dist/core/lib/reference.d.ts +6 -2
- package/dist/core/recordItem.js +55 -2
- package/dist/core/requestContext.d.ts +18 -0
- package/dist/core/structuredData.d.ts +126 -0
- package/dist/core/structuredData.js +40 -0
- package/dist/features/canvas/canvasCamera.js +1 -1
- package/dist/features/canvas/sidebar/CanvasInspector.js +1 -1
- package/dist/features/canvas/sidebar/CanvasSidebarFrame.js +1 -1
- package/dist/features/content/ContentAssets.js +84 -88
- package/dist/features/content/ContentCollection.js +13 -7
- package/dist/features/content/collection-form.js +6 -2
- package/dist/features/content/components/MissingFromLocale.js +1 -1
- package/dist/features/og/pageImage.js +89 -0
- package/dist/features/page/CuratedPageContent.js +45 -32
- package/dist/features/page/DerivedPageContent.js +49 -22
- package/dist/features/page/SharedLayoutContent.js +26 -22
- package/dist/features/preview/CamoxPreview.js +41 -27
- package/dist/features/preview/EditablePageExperience.js +17 -9
- package/dist/features/preview/components/AddBlockSheet.js +1 -0
- package/dist/features/preview/components/BlockActionsPopover.js +19 -41
- package/dist/features/preview/components/FieldToolbar.js +1 -1
- package/dist/features/preview/components/MobilePreviewDrawer.js +6 -9
- package/dist/features/preview/components/PageInfo.js +244 -264
- package/dist/features/preview/components/PageTree.js +63 -53
- package/dist/features/preview/components/PreviewPanel.js +10 -64
- package/dist/features/preview/components/PreviewToolbar.js +1 -1
- package/dist/features/preview/components/RecordCard.js +50 -34
- package/dist/features/preview/components/RecordCombobox.js +12 -5
- package/dist/features/preview/components/ReferenceFieldEditor.js +4 -2
- package/dist/features/preview/components/ReferenceListFieldEditor.js +24 -19
- package/dist/features/preview/components/RepeatableItemsList.js +62 -46
- package/dist/features/preview/components/SelectionEditor.js +3 -2
- package/dist/features/preview/components/useFieldWriter.js +2 -4
- package/dist/features/preview/components/useRecordView.js +2 -2
- package/dist/features/preview/entityName.js +11 -0
- package/dist/features/preview/pageRecord.js +17 -18
- 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 +17 -2
- package/dist/features/routes/pageRuntime.js +61 -57
- package/dist/features/runtime/RuntimeChrome.js +1 -1
- package/dist/features/runtime/breadcrumbs.js +68 -0
- package/dist/features/runtime/livePages.js +3 -2
- package/dist/features/runtime/pageGraph.js +92 -0
- package/dist/features/runtime/projectLogo.js +110 -0
- package/dist/features/runtime/publicCache.js +83 -0
- package/dist/features/runtime/runtime.d.ts +24 -9
- package/dist/features/runtime/runtime.js +447 -130
- package/dist/features/runtime/runtimeRoutes.d.ts +1 -0
- package/dist/features/runtime/runtimeRoutes.js +1 -0
- package/dist/features/runtime/structuredData.js +213 -0
- 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/ChatSidebar.js +5 -5
- 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 +85 -110
- package/dist/features/studio/components/ReviewDraftSheet.js +1046 -990
- package/dist/features/studio/components/ThreadMessages.js +2 -2
- 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/blockBoilerplate.js +3 -2
- package/dist/features/vite/definitionsSync.js +4 -5
- package/dist/features/vite/layoutGeneration.js +3 -2
- 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 +17 -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.d.ts +4 -0
- package/dist/lib/queries.js +8 -1
- package/dist/lib/shortcuts.js +29 -0
- package/dist/lib/studio-reads.d.ts +1 -0
- package/dist/lib/studio-reads.js +3 -1
- package/dist/lib/utils.js +1 -104
- package/dist/package.js +1 -1
- package/dist/studio.css +1 -1
- package/package.json +6 -4
- package/skills/camox/references/block-definitions.md +105 -25
- package/skills/camox/references/layout-definitions.md +53 -17
- package/skills/camox/references/routed-layouts.md +17 -14
- package/dist/features/studio/components/FaviconDialog.js +0 -318
|
@@ -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,14 +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
9
|
import { c } from "react/compiler-runtime";
|
|
9
10
|
import * as React from "react";
|
|
10
|
-
import {
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
import { Button } from "@camox/ui/button";
|
|
12
|
-
import { ChevronDown,
|
|
13
|
+
import { ChevronDown, Info, Settings, Users } from "lucide-react";
|
|
13
14
|
import { Skeleton } from "@camox/ui/skeleton";
|
|
14
15
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "@camox/ui/dropdown-menu";
|
|
15
16
|
|
|
@@ -48,7 +49,7 @@ const Favicon = (t0) => {
|
|
|
48
49
|
return t4;
|
|
49
50
|
};
|
|
50
51
|
const ProjectMenu = () => {
|
|
51
|
-
const $ = c(
|
|
52
|
+
const $ = c(48);
|
|
52
53
|
const authCtx = React.useContext(AuthContext);
|
|
53
54
|
let t0;
|
|
54
55
|
if ($[0] !== authCtx.projectUuid) {
|
|
@@ -57,7 +58,7 @@ const ProjectMenu = () => {
|
|
|
57
58
|
$[1] = t0;
|
|
58
59
|
} else t0 = $[1];
|
|
59
60
|
const { data: project } = useReadQuery(t0);
|
|
60
|
-
const
|
|
61
|
+
const localized = useLocalizedPath();
|
|
61
62
|
if (!project) {
|
|
62
63
|
let t1;
|
|
63
64
|
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -116,137 +117,130 @@ const ProjectMenu = () => {
|
|
|
116
117
|
$[12] = t4;
|
|
117
118
|
$[13] = t6;
|
|
118
119
|
} else t6 = $[13];
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
});
|
|
127
|
-
$[14] = t7;
|
|
128
|
-
$[15] = t8;
|
|
129
|
-
} 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;
|
|
130
127
|
let t9;
|
|
131
|
-
if ($[16]
|
|
132
|
-
t9 = /* @__PURE__ */ jsx(
|
|
133
|
-
$[16] =
|
|
134
|
-
|
|
128
|
+
if ($[16] !== t8) {
|
|
129
|
+
t9 = /* @__PURE__ */ jsx(Link$1, { to: t8 });
|
|
130
|
+
$[16] = t8;
|
|
131
|
+
$[17] = t9;
|
|
132
|
+
} else t9 = $[17];
|
|
135
133
|
let t10;
|
|
136
|
-
if ($[
|
|
137
|
-
t10 = /* @__PURE__ */
|
|
138
|
-
render: t8,
|
|
139
|
-
children: [t9, "Project settings"]
|
|
140
|
-
});
|
|
141
|
-
$[17] = t8;
|
|
134
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
135
|
+
t10 = /* @__PURE__ */ jsx(Settings, {});
|
|
142
136
|
$[18] = t10;
|
|
143
137
|
} else t10 = $[18];
|
|
144
138
|
let t11;
|
|
145
|
-
|
|
146
|
-
if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
|
|
139
|
+
if ($[19] !== t9) {
|
|
147
140
|
t11 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
148
|
-
|
|
149
|
-
children: [
|
|
141
|
+
render: t9,
|
|
142
|
+
children: [t10, "Settings"]
|
|
150
143
|
});
|
|
144
|
+
$[19] = t9;
|
|
145
|
+
$[20] = t11;
|
|
146
|
+
} else t11 = $[20];
|
|
147
|
+
let t12;
|
|
148
|
+
if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
|
|
151
149
|
t12 = /* @__PURE__ */ jsx(DropdownMenuSeparator, {});
|
|
152
|
-
$[
|
|
153
|
-
|
|
154
|
-
} else {
|
|
155
|
-
t11 = $[19];
|
|
156
|
-
t12 = $[20];
|
|
157
|
-
}
|
|
150
|
+
$[21] = t12;
|
|
151
|
+
} else t12 = $[21];
|
|
158
152
|
let t13;
|
|
159
|
-
if ($[
|
|
153
|
+
if ($[22] !== project.organizationSlug) {
|
|
160
154
|
t13 = /* @__PURE__ */ jsx(DropdownMenuLabel, {
|
|
161
155
|
className: "text-muted-foreground text-xs font-normal",
|
|
162
156
|
children: project.organizationSlug
|
|
163
157
|
});
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
166
|
-
} else t13 = $[
|
|
158
|
+
$[22] = project.organizationSlug;
|
|
159
|
+
$[23] = t13;
|
|
160
|
+
} else t13 = $[23];
|
|
167
161
|
const t14 = authCtx ? `${authCtx.authenticationUrl}/${project.organizationSlug}/members` : "#";
|
|
168
162
|
let t15;
|
|
169
|
-
if ($[
|
|
163
|
+
if ($[24] !== t14) {
|
|
170
164
|
t15 = /* @__PURE__ */ jsx("a", {
|
|
171
165
|
href: t14,
|
|
172
166
|
target: "_blank",
|
|
173
167
|
rel: "noopener noreferrer"
|
|
174
168
|
});
|
|
175
|
-
$[
|
|
176
|
-
$[
|
|
177
|
-
} else t15 = $[
|
|
169
|
+
$[24] = t14;
|
|
170
|
+
$[25] = t15;
|
|
171
|
+
} else t15 = $[25];
|
|
178
172
|
let t16;
|
|
179
|
-
if ($[
|
|
173
|
+
if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
|
|
180
174
|
t16 = /* @__PURE__ */ jsx(Users, {});
|
|
181
|
-
$[
|
|
182
|
-
} else t16 = $[
|
|
175
|
+
$[26] = t16;
|
|
176
|
+
} else t16 = $[26];
|
|
183
177
|
let t17;
|
|
184
|
-
if ($[
|
|
178
|
+
if ($[27] !== t15) {
|
|
185
179
|
t17 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
186
180
|
render: t15,
|
|
187
181
|
children: [t16, "Team members"]
|
|
188
182
|
});
|
|
189
|
-
$[
|
|
190
|
-
$[
|
|
191
|
-
} else t17 = $[
|
|
183
|
+
$[27] = t15;
|
|
184
|
+
$[28] = t17;
|
|
185
|
+
} else t17 = $[28];
|
|
192
186
|
const t18 = authCtx ? `${authCtx.authenticationUrl}/${project.organizationSlug}/settings` : "#";
|
|
193
187
|
let t19;
|
|
194
|
-
if ($[
|
|
188
|
+
if ($[29] !== t18) {
|
|
195
189
|
t19 = /* @__PURE__ */ jsx("a", {
|
|
196
190
|
href: t18,
|
|
197
191
|
target: "_blank",
|
|
198
192
|
rel: "noopener noreferrer"
|
|
199
193
|
});
|
|
200
|
-
$[
|
|
201
|
-
$[
|
|
202
|
-
} else t19 = $[
|
|
194
|
+
$[29] = t18;
|
|
195
|
+
$[30] = t19;
|
|
196
|
+
} else t19 = $[30];
|
|
203
197
|
let t20;
|
|
204
|
-
if ($[
|
|
198
|
+
if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
|
|
205
199
|
t20 = /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4" });
|
|
206
|
-
$[
|
|
207
|
-
} else t20 = $[
|
|
200
|
+
$[31] = t20;
|
|
201
|
+
} else t20 = $[31];
|
|
208
202
|
let t21;
|
|
209
|
-
if ($[
|
|
203
|
+
if ($[32] !== t19) {
|
|
210
204
|
t21 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
211
205
|
render: t19,
|
|
212
206
|
children: [t20, "Team settings"]
|
|
213
207
|
});
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
216
|
-
} else t21 = $[
|
|
208
|
+
$[32] = t19;
|
|
209
|
+
$[33] = t21;
|
|
210
|
+
} else t21 = $[33];
|
|
217
211
|
let t22;
|
|
218
|
-
if ($[
|
|
212
|
+
if ($[34] !== t13 || $[35] !== t17 || $[36] !== t21) {
|
|
219
213
|
t22 = /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
|
|
220
214
|
t13,
|
|
221
215
|
t17,
|
|
222
216
|
t21
|
|
223
217
|
] });
|
|
224
|
-
$[
|
|
225
|
-
$[
|
|
226
|
-
$[
|
|
227
|
-
$[
|
|
228
|
-
} else t22 = $[
|
|
218
|
+
$[34] = t13;
|
|
219
|
+
$[35] = t17;
|
|
220
|
+
$[36] = t21;
|
|
221
|
+
$[37] = t22;
|
|
222
|
+
} else t22 = $[37];
|
|
229
223
|
let t23;
|
|
230
|
-
if ($[
|
|
224
|
+
if ($[38] === Symbol.for("react.memo_cache_sentinel")) {
|
|
231
225
|
t23 = /* @__PURE__ */ jsx(DropdownMenuSeparator, {});
|
|
232
|
-
$[
|
|
233
|
-
} else t23 = $[
|
|
226
|
+
$[38] = t23;
|
|
227
|
+
} else t23 = $[38];
|
|
234
228
|
let t24;
|
|
235
229
|
let t25;
|
|
236
|
-
if ($[
|
|
230
|
+
if ($[39] === Symbol.for("react.memo_cache_sentinel")) {
|
|
237
231
|
t24 = /* @__PURE__ */ jsx(Link$1, {
|
|
238
|
-
to: "https://camox.
|
|
232
|
+
to: "https://camox.ai",
|
|
239
233
|
target: "_blank"
|
|
240
234
|
});
|
|
241
235
|
t25 = /* @__PURE__ */ jsx(Info, { className: "h-4 w-4" });
|
|
242
|
-
$[
|
|
243
|
-
$[
|
|
236
|
+
$[39] = t24;
|
|
237
|
+
$[40] = t25;
|
|
244
238
|
} else {
|
|
245
|
-
t24 = $[
|
|
246
|
-
t25 = $[
|
|
239
|
+
t24 = $[39];
|
|
240
|
+
t25 = $[40];
|
|
247
241
|
}
|
|
248
242
|
let t26;
|
|
249
|
-
if ($[
|
|
243
|
+
if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
|
|
250
244
|
t26 = /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
251
245
|
render: t24,
|
|
252
246
|
children: [
|
|
@@ -258,16 +252,15 @@ const ProjectMenu = () => {
|
|
|
258
252
|
})
|
|
259
253
|
]
|
|
260
254
|
});
|
|
261
|
-
$[
|
|
262
|
-
} else t26 = $[
|
|
255
|
+
$[41] = t26;
|
|
256
|
+
} else t26 = $[41];
|
|
263
257
|
let t27;
|
|
264
|
-
if ($[
|
|
258
|
+
if ($[42] !== t11 || $[43] !== t22) {
|
|
265
259
|
t27 = /* @__PURE__ */ jsxs(DropdownMenuContent, {
|
|
266
260
|
className: "w-72",
|
|
267
261
|
align: "start",
|
|
268
262
|
side: "bottom",
|
|
269
263
|
children: [
|
|
270
|
-
t10,
|
|
271
264
|
t11,
|
|
272
265
|
t12,
|
|
273
266
|
t22,
|
|
@@ -275,36 +268,18 @@ const ProjectMenu = () => {
|
|
|
275
268
|
t26
|
|
276
269
|
]
|
|
277
270
|
});
|
|
278
|
-
$[
|
|
279
|
-
$[
|
|
280
|
-
$[
|
|
281
|
-
} else t27 = $[
|
|
271
|
+
$[42] = t11;
|
|
272
|
+
$[43] = t22;
|
|
273
|
+
$[44] = t27;
|
|
274
|
+
} else t27 = $[44];
|
|
282
275
|
let t28;
|
|
283
|
-
if ($[
|
|
276
|
+
if ($[45] !== t27 || $[46] !== t6) {
|
|
284
277
|
t28 = /* @__PURE__ */ jsxs(DropdownMenu, { children: [t6, t27] });
|
|
285
|
-
$[
|
|
286
|
-
$[
|
|
287
|
-
$[
|
|
288
|
-
} else t28 = $[
|
|
289
|
-
|
|
290
|
-
if ($[47] !== isFaviconDialogOpen || $[48] !== project) {
|
|
291
|
-
t29 = /* @__PURE__ */ jsx(FaviconDialog, {
|
|
292
|
-
project,
|
|
293
|
-
open: isFaviconDialogOpen,
|
|
294
|
-
onOpenChange: setIsFaviconDialogOpen
|
|
295
|
-
});
|
|
296
|
-
$[47] = isFaviconDialogOpen;
|
|
297
|
-
$[48] = project;
|
|
298
|
-
$[49] = t29;
|
|
299
|
-
} else t29 = $[49];
|
|
300
|
-
let t30;
|
|
301
|
-
if ($[50] !== t28 || $[51] !== t29) {
|
|
302
|
-
t30 = /* @__PURE__ */ jsxs(Fragment, { children: [t28, t29] });
|
|
303
|
-
$[50] = t28;
|
|
304
|
-
$[51] = t29;
|
|
305
|
-
$[52] = t30;
|
|
306
|
-
} else t30 = $[52];
|
|
307
|
-
return t30;
|
|
278
|
+
$[45] = t27;
|
|
279
|
+
$[46] = t6;
|
|
280
|
+
$[47] = t28;
|
|
281
|
+
} else t28 = $[47];
|
|
282
|
+
return t28;
|
|
308
283
|
};
|
|
309
284
|
|
|
310
285
|
//#endregion
|