@orion-studios/payload-studio 0.6.0-beta.10 → 0.6.0-beta.12
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/admin/client.js +58 -38
- package/dist/admin/client.mjs +67 -47
- package/dist/admin/index.d.mts +2 -2
- package/dist/admin/index.d.ts +2 -2
- package/dist/admin/index.js +5 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin-app/index.d.mts +2 -2
- package/dist/admin-app/index.d.ts +2 -2
- package/dist/admin-app/styles.css +57 -2
- package/dist/{chunk-WLOPFFN2.mjs → chunk-XZQILJK3.mjs} +5 -1
- package/dist/{index-CkT_eyhK.d.ts → index-BV0vEGl6.d.ts} +3 -2
- package/dist/{index-52HdVLQq.d.ts → index-DAdN56fM.d.ts} +1 -1
- package/dist/{index-Bm2SaC3r.d.mts → index-DLfPOqYA.d.mts} +3 -2
- package/dist/{index-DEQC3Dwj.d.mts → index-G_uTNffQ.d.mts} +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -1
- package/dist/index.mjs +1 -1
- package/dist/{sitePreviewTypes-BkHCWxNW.d.mts → sitePreviewTypes-BrJwGzJj.d.mts} +1 -1
- package/dist/{sitePreviewTypes-BkHCWxNW.d.ts → sitePreviewTypes-BrJwGzJj.d.ts} +1 -1
- package/package.json +1 -1
package/dist/admin/client.js
CHANGED
|
@@ -1231,17 +1231,22 @@ var resolveUploadUrl = (value) => {
|
|
|
1231
1231
|
var resolveLogoUrl = (settings) => {
|
|
1232
1232
|
return resolveUploadUrl(settings.logo) || resolveUploadUrl(settings.adminLogo) || resolveUploadUrl(settings.brandLogo) || null;
|
|
1233
1233
|
};
|
|
1234
|
+
var resolveLogoOnDarkUrl = (settings) => {
|
|
1235
|
+
return resolveUploadUrl(settings.logoOnDark) || resolveUploadUrl(settings.logoDark) || resolveUploadUrl(settings.adminLogoDark) || resolveUploadUrl(settings.adminLogoOnDark) || resolveUploadUrl(settings.brandLogoDark) || null;
|
|
1236
|
+
};
|
|
1234
1237
|
var cachedBranding = null;
|
|
1235
|
-
function useSiteBranding(defaultName, defaultLogoUrl) {
|
|
1238
|
+
function useSiteBranding(defaultName, defaultLogoUrl, defaultLogoOnDarkUrl) {
|
|
1236
1239
|
const [branding, setBranding] = (0, import_react.useState)(() => {
|
|
1237
1240
|
if (cachedBranding) {
|
|
1238
1241
|
return {
|
|
1239
1242
|
logoUrl: cachedBranding.logoUrl || defaultLogoUrl || null,
|
|
1243
|
+
logoOnDarkUrl: cachedBranding.logoOnDarkUrl || defaultLogoOnDarkUrl || null,
|
|
1240
1244
|
siteName: cachedBranding.siteName || defaultName || null
|
|
1241
1245
|
};
|
|
1242
1246
|
}
|
|
1243
1247
|
return {
|
|
1244
1248
|
logoUrl: defaultLogoUrl || null,
|
|
1249
|
+
logoOnDarkUrl: defaultLogoOnDarkUrl || null,
|
|
1245
1250
|
siteName: defaultName || null
|
|
1246
1251
|
};
|
|
1247
1252
|
});
|
|
@@ -1258,9 +1263,11 @@ function useSiteBranding(defaultName, defaultLogoUrl) {
|
|
|
1258
1263
|
if (!record) return;
|
|
1259
1264
|
const siteName = pickString(record.siteName);
|
|
1260
1265
|
const logoUrl = resolveLogoUrl(record);
|
|
1261
|
-
|
|
1266
|
+
const logoOnDarkUrl = resolveLogoOnDarkUrl(record);
|
|
1267
|
+
cachedBranding = { logoOnDarkUrl, logoUrl, siteName };
|
|
1262
1268
|
if (!cancelled) {
|
|
1263
1269
|
setBranding({
|
|
1270
|
+
logoOnDarkUrl: logoOnDarkUrl || defaultLogoOnDarkUrl || null,
|
|
1264
1271
|
logoUrl: logoUrl || defaultLogoUrl || null,
|
|
1265
1272
|
siteName: siteName || defaultName || null
|
|
1266
1273
|
});
|
|
@@ -1272,16 +1279,20 @@ function useSiteBranding(defaultName, defaultLogoUrl) {
|
|
|
1272
1279
|
return () => {
|
|
1273
1280
|
cancelled = true;
|
|
1274
1281
|
};
|
|
1275
|
-
}, [defaultLogoUrl, defaultName]);
|
|
1282
|
+
}, [defaultLogoOnDarkUrl, defaultLogoUrl, defaultName]);
|
|
1276
1283
|
return branding;
|
|
1277
1284
|
}
|
|
1278
1285
|
|
|
1279
1286
|
// src/admin/components/Logo.tsx
|
|
1280
1287
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
1281
|
-
function Logo({ brandName = "Orion Studio", logoUrl } = {}) {
|
|
1282
|
-
const branding = useSiteBranding(brandName, logoUrl);
|
|
1288
|
+
function Logo({ brandName = "Orion Studio", logoOnDarkUrl, logoUrl } = {}) {
|
|
1289
|
+
const branding = useSiteBranding(brandName, logoUrl, logoOnDarkUrl);
|
|
1283
1290
|
const resolvedName = branding.siteName || brandName;
|
|
1284
1291
|
const resolvedLogo = branding.logoUrl || logoUrl || null;
|
|
1292
|
+
const resolvedLogoOnDark = branding.logoOnDarkUrl || logoOnDarkUrl || resolvedLogo || "";
|
|
1293
|
+
const hasDarkLogoVariant = Boolean(
|
|
1294
|
+
resolvedLogo && resolvedLogoOnDark.trim().length > 0 && resolvedLogoOnDark !== resolvedLogo
|
|
1295
|
+
);
|
|
1285
1296
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1286
1297
|
"div",
|
|
1287
1298
|
{
|
|
@@ -1300,8 +1311,6 @@ function Logo({ brandName = "Orion Studio", logoUrl } = {}) {
|
|
|
1300
1311
|
className: "orion-admin-logo-mark",
|
|
1301
1312
|
style: {
|
|
1302
1313
|
alignItems: "center",
|
|
1303
|
-
background: "var(--orion-cms-logo-bg, var(--admin-accent, #3b82f6))",
|
|
1304
|
-
borderRadius: "var(--orion-cms-logo-radius, var(--admin-radius-md, 8px))",
|
|
1305
1314
|
display: "flex",
|
|
1306
1315
|
flexShrink: 0,
|
|
1307
1316
|
height: 32,
|
|
@@ -1309,14 +1318,25 @@ function Logo({ brandName = "Orion Studio", logoUrl } = {}) {
|
|
|
1309
1318
|
overflow: "hidden",
|
|
1310
1319
|
width: 32
|
|
1311
1320
|
},
|
|
1312
|
-
children: resolvedLogo ? /* @__PURE__ */ (0, import_jsx_runtime.
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1321
|
+
children: resolvedLogo ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
1322
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1323
|
+
"img",
|
|
1324
|
+
{
|
|
1325
|
+
alt: `${resolvedName} logo`,
|
|
1326
|
+
className: `orion-admin-logo-image orion-admin-logo-image--default${hasDarkLogoVariant ? "" : " is-only-logo"}`,
|
|
1327
|
+
src: resolvedLogo
|
|
1328
|
+
}
|
|
1329
|
+
),
|
|
1330
|
+
hasDarkLogoVariant ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1331
|
+
"img",
|
|
1332
|
+
{
|
|
1333
|
+
alt: "",
|
|
1334
|
+
"aria-hidden": "true",
|
|
1335
|
+
className: "orion-admin-logo-image orion-admin-logo-image--dark",
|
|
1336
|
+
src: resolvedLogoOnDark
|
|
1337
|
+
}
|
|
1338
|
+
) : null
|
|
1339
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1320
1340
|
"svg",
|
|
1321
1341
|
{
|
|
1322
1342
|
fill: "none",
|
|
@@ -2554,7 +2574,7 @@ var navItemIsActive = (pathname, item) => {
|
|
|
2554
2574
|
};
|
|
2555
2575
|
|
|
2556
2576
|
// src/shared/studioSections.ts
|
|
2557
|
-
var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
|
|
2577
|
+
var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
|
|
2558
2578
|
var studioIcons = new Set(adminNavIcons);
|
|
2559
2579
|
var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
2560
2580
|
var isAbsoluteExternalURL2 = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
|
|
@@ -2752,7 +2772,7 @@ var buildStudioNavItems = (props, adminBasePath) => {
|
|
|
2752
2772
|
icon: "tools",
|
|
2753
2773
|
label: "Admin Tools",
|
|
2754
2774
|
matchPrefixes: [toolsPath, resolveAdminPath(adminBasePath, "/collections/users")],
|
|
2755
|
-
roles: ["admin"]
|
|
2775
|
+
roles: ["admin", "developer"]
|
|
2756
2776
|
};
|
|
2757
2777
|
const extensionItems = sections.map((section) => ({
|
|
2758
2778
|
href: resolveAdminPath(adminBasePath, section.href),
|
|
@@ -3193,9 +3213,9 @@ var import_react16 = require("react");
|
|
|
3193
3213
|
var import_link = __toESM(require("next/link"));
|
|
3194
3214
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3195
3215
|
var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
3196
|
-
var isRole = (value) => value === "admin" || value === "
|
|
3197
|
-
var canReviewForms = (role) => role === "admin" || role === "editor";
|
|
3198
|
-
var canCreatePages = (role) => role === "admin" || role === "editor";
|
|
3216
|
+
var isRole = (value) => value === "admin" || value === "client" || value === "developer" || value === "editor";
|
|
3217
|
+
var canReviewForms = (role) => role === "admin" || role === "developer" || role === "editor";
|
|
3218
|
+
var canCreatePages = (role) => role === "admin" || role === "developer" || role === "editor";
|
|
3199
3219
|
var canAccess = (role, roles) => {
|
|
3200
3220
|
if (!roles || roles.length === 0) {
|
|
3201
3221
|
return true;
|
|
@@ -3671,7 +3691,7 @@ function AdminStudioDashboardClient({
|
|
|
3671
3691
|
label: "Manage Media",
|
|
3672
3692
|
tone: "ghost"
|
|
3673
3693
|
});
|
|
3674
|
-
if (role === "admin") {
|
|
3694
|
+
if (role === "admin" || role === "developer") {
|
|
3675
3695
|
actions.push({
|
|
3676
3696
|
description: "Manage users, roles, and fallback tools.",
|
|
3677
3697
|
href: toolsPath,
|
|
@@ -3950,7 +3970,7 @@ var buildSectionLinks = (adminBasePath, sections, formsEnabled, globalsBasePath)
|
|
|
3950
3970
|
href: resolveAdminPath2(adminBasePath, "/tools"),
|
|
3951
3971
|
id: "admin-tools",
|
|
3952
3972
|
label: "Admin Tools",
|
|
3953
|
-
roles: ["admin"]
|
|
3973
|
+
roles: ["admin", "developer"]
|
|
3954
3974
|
}
|
|
3955
3975
|
];
|
|
3956
3976
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -4020,10 +4040,10 @@ var import_react17 = require("react");
|
|
|
4020
4040
|
var import_link2 = __toESM(require("next/link"));
|
|
4021
4041
|
var import_ui5 = require("@payloadcms/ui");
|
|
4022
4042
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
4023
|
-
var
|
|
4043
|
+
var hasAdminAccess = (user) => {
|
|
4024
4044
|
if (!user || typeof user !== "object") return false;
|
|
4025
4045
|
const role = user.role;
|
|
4026
|
-
return typeof role === "string" && role === "admin";
|
|
4046
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
4027
4047
|
};
|
|
4028
4048
|
var getPropString3 = (props, key, fallback) => {
|
|
4029
4049
|
if (!props || typeof props !== "object") return fallback;
|
|
@@ -4086,7 +4106,7 @@ function AdminStudioPagesListView(props) {
|
|
|
4086
4106
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4087
4107
|
AdminPage,
|
|
4088
4108
|
{
|
|
4089
|
-
actions:
|
|
4109
|
+
actions: hasAdminAccess(user) ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_link2.default, { className: "orion-admin-action-button", href: newPagePath, children: "New Page" }) : null,
|
|
4090
4110
|
breadcrumbs: [
|
|
4091
4111
|
{ label: "Dashboard", href: adminBasePath },
|
|
4092
4112
|
{ label: "Pages" }
|
|
@@ -4121,10 +4141,10 @@ function AdminStudioPagesListView(props) {
|
|
|
4121
4141
|
var import_react18 = require("react");
|
|
4122
4142
|
var import_ui6 = require("@payloadcms/ui");
|
|
4123
4143
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
4124
|
-
var
|
|
4144
|
+
var hasAdminAccess2 = (user) => {
|
|
4125
4145
|
if (!user || typeof user !== "object") return false;
|
|
4126
4146
|
const role = user.role;
|
|
4127
|
-
return typeof role === "string" && role === "admin";
|
|
4147
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
4128
4148
|
};
|
|
4129
4149
|
var isEditor = (user) => {
|
|
4130
4150
|
if (!user || typeof user !== "object") return false;
|
|
@@ -4182,7 +4202,7 @@ function AdminStudioPageEditView(props) {
|
|
|
4182
4202
|
}
|
|
4183
4203
|
setDidResolvePathFallback(true);
|
|
4184
4204
|
}, [pageIDFromParams]);
|
|
4185
|
-
const canPublish =
|
|
4205
|
+
const canPublish = hasAdminAccess2(user) || isEditor(user);
|
|
4186
4206
|
const refreshUnpublishedState = async (id) => {
|
|
4187
4207
|
try {
|
|
4188
4208
|
const response = await fetch(
|
|
@@ -4475,7 +4495,7 @@ var getPropString5 = (props, key, fallback) => {
|
|
|
4475
4495
|
var canManagePages = (user) => {
|
|
4476
4496
|
if (!user || typeof user !== "object") return false;
|
|
4477
4497
|
const role = user.role;
|
|
4478
|
-
return role === "admin" || role === "editor";
|
|
4498
|
+
return role === "admin" || role === "developer" || role === "editor";
|
|
4479
4499
|
};
|
|
4480
4500
|
var slugify = (value) => value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
|
|
4481
4501
|
function AdminStudioNewPageView(props) {
|
|
@@ -4497,7 +4517,7 @@ function AdminStudioNewPageView(props) {
|
|
|
4497
4517
|
title: "New Page",
|
|
4498
4518
|
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "orion-admin-card", children: [
|
|
4499
4519
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("strong", { children: "Access denied" }),
|
|
4500
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "This section is restricted to administrator and editor accounts." })
|
|
4520
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "This section is restricted to administrator, developer, and editor accounts." })
|
|
4501
4521
|
] })
|
|
4502
4522
|
}
|
|
4503
4523
|
) });
|
|
@@ -7511,17 +7531,17 @@ var FORM_TONE_OVERRIDES = {
|
|
|
7511
7531
|
var IDENTITY_KEYS = /* @__PURE__ */ new Set(["contactEmail", "email", "firstName", "lastName", "name"]);
|
|
7512
7532
|
var RESPONSE_FIELD_PREVIEW_LIMIT = 3;
|
|
7513
7533
|
var RESPONSE_SCROLL_THRESHOLD = 3;
|
|
7514
|
-
var
|
|
7534
|
+
var hasAdminAccess3 = (user) => {
|
|
7515
7535
|
if (!user || typeof user !== "object") return false;
|
|
7516
7536
|
const role = user.role;
|
|
7517
|
-
return typeof role === "string" && role === "admin";
|
|
7537
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
7518
7538
|
};
|
|
7519
7539
|
var isEditor2 = (user) => {
|
|
7520
7540
|
if (!user || typeof user !== "object") return false;
|
|
7521
7541
|
const role = user.role;
|
|
7522
7542
|
return typeof role === "string" && role === "editor";
|
|
7523
7543
|
};
|
|
7524
|
-
var canReviewForms2 = (user) =>
|
|
7544
|
+
var canReviewForms2 = (user) => hasAdminAccess3(user) || isEditor2(user);
|
|
7525
7545
|
var getPropString13 = (props, key, fallback) => {
|
|
7526
7546
|
if (!props || typeof props !== "object") return fallback;
|
|
7527
7547
|
const direct = props[key];
|
|
@@ -8004,11 +8024,11 @@ function AdminStudioFormsView(props) {
|
|
|
8004
8024
|
var import_react32 = require("react");
|
|
8005
8025
|
var import_ui12 = require("@payloadcms/ui");
|
|
8006
8026
|
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
8007
|
-
var userRoles = ["admin", "client", "editor"];
|
|
8008
|
-
var
|
|
8027
|
+
var userRoles = ["admin", "client", "developer", "editor"];
|
|
8028
|
+
var hasAdminAccess4 = (user) => {
|
|
8009
8029
|
if (!user || typeof user !== "object") return false;
|
|
8010
8030
|
const role = user.role;
|
|
8011
|
-
return typeof role === "string" && role === "admin";
|
|
8031
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
8012
8032
|
};
|
|
8013
8033
|
var normalizeRole = (value) => userRoles.includes(value) ? value : "editor";
|
|
8014
8034
|
function AdminStudioToolsView(props) {
|
|
@@ -8020,7 +8040,7 @@ function AdminStudioToolsView(props) {
|
|
|
8020
8040
|
const [savedMessage, setSavedMessage] = (0, import_react32.useState)(null);
|
|
8021
8041
|
const [createSubmitting, setCreateSubmitting] = (0, import_react32.useState)(false);
|
|
8022
8042
|
const [updatingUserID, setUpdatingUserID] = (0, import_react32.useState)(null);
|
|
8023
|
-
if (!
|
|
8043
|
+
if (!hasAdminAccess4(user)) {
|
|
8024
8044
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
8025
8045
|
AdminPage,
|
|
8026
8046
|
{
|
|
@@ -8032,7 +8052,7 @@ function AdminStudioToolsView(props) {
|
|
|
8032
8052
|
title: "Admin Tools",
|
|
8033
8053
|
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "orion-admin-card", children: [
|
|
8034
8054
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("strong", { children: "Access denied" }),
|
|
8035
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { children: "This section is restricted to administrator accounts." })
|
|
8055
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { children: "This section is restricted to administrator and developer accounts." })
|
|
8036
8056
|
] })
|
|
8037
8057
|
}
|
|
8038
8058
|
) });
|
package/dist/admin/client.mjs
CHANGED
|
@@ -41,17 +41,22 @@ var resolveUploadUrl = (value) => {
|
|
|
41
41
|
var resolveLogoUrl = (settings) => {
|
|
42
42
|
return resolveUploadUrl(settings.logo) || resolveUploadUrl(settings.adminLogo) || resolveUploadUrl(settings.brandLogo) || null;
|
|
43
43
|
};
|
|
44
|
+
var resolveLogoOnDarkUrl = (settings) => {
|
|
45
|
+
return resolveUploadUrl(settings.logoOnDark) || resolveUploadUrl(settings.logoDark) || resolveUploadUrl(settings.adminLogoDark) || resolveUploadUrl(settings.adminLogoOnDark) || resolveUploadUrl(settings.brandLogoDark) || null;
|
|
46
|
+
};
|
|
44
47
|
var cachedBranding = null;
|
|
45
|
-
function useSiteBranding(defaultName, defaultLogoUrl) {
|
|
48
|
+
function useSiteBranding(defaultName, defaultLogoUrl, defaultLogoOnDarkUrl) {
|
|
46
49
|
const [branding, setBranding] = useState(() => {
|
|
47
50
|
if (cachedBranding) {
|
|
48
51
|
return {
|
|
49
52
|
logoUrl: cachedBranding.logoUrl || defaultLogoUrl || null,
|
|
53
|
+
logoOnDarkUrl: cachedBranding.logoOnDarkUrl || defaultLogoOnDarkUrl || null,
|
|
50
54
|
siteName: cachedBranding.siteName || defaultName || null
|
|
51
55
|
};
|
|
52
56
|
}
|
|
53
57
|
return {
|
|
54
58
|
logoUrl: defaultLogoUrl || null,
|
|
59
|
+
logoOnDarkUrl: defaultLogoOnDarkUrl || null,
|
|
55
60
|
siteName: defaultName || null
|
|
56
61
|
};
|
|
57
62
|
});
|
|
@@ -68,9 +73,11 @@ function useSiteBranding(defaultName, defaultLogoUrl) {
|
|
|
68
73
|
if (!record) return;
|
|
69
74
|
const siteName = pickString(record.siteName);
|
|
70
75
|
const logoUrl = resolveLogoUrl(record);
|
|
71
|
-
|
|
76
|
+
const logoOnDarkUrl = resolveLogoOnDarkUrl(record);
|
|
77
|
+
cachedBranding = { logoOnDarkUrl, logoUrl, siteName };
|
|
72
78
|
if (!cancelled) {
|
|
73
79
|
setBranding({
|
|
80
|
+
logoOnDarkUrl: logoOnDarkUrl || defaultLogoOnDarkUrl || null,
|
|
74
81
|
logoUrl: logoUrl || defaultLogoUrl || null,
|
|
75
82
|
siteName: siteName || defaultName || null
|
|
76
83
|
});
|
|
@@ -82,16 +89,20 @@ function useSiteBranding(defaultName, defaultLogoUrl) {
|
|
|
82
89
|
return () => {
|
|
83
90
|
cancelled = true;
|
|
84
91
|
};
|
|
85
|
-
}, [defaultLogoUrl, defaultName]);
|
|
92
|
+
}, [defaultLogoOnDarkUrl, defaultLogoUrl, defaultName]);
|
|
86
93
|
return branding;
|
|
87
94
|
}
|
|
88
95
|
|
|
89
96
|
// src/admin/components/Logo.tsx
|
|
90
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
91
|
-
function Logo({ brandName = "Orion Studio", logoUrl } = {}) {
|
|
92
|
-
const branding = useSiteBranding(brandName, logoUrl);
|
|
97
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
98
|
+
function Logo({ brandName = "Orion Studio", logoOnDarkUrl, logoUrl } = {}) {
|
|
99
|
+
const branding = useSiteBranding(brandName, logoUrl, logoOnDarkUrl);
|
|
93
100
|
const resolvedName = branding.siteName || brandName;
|
|
94
101
|
const resolvedLogo = branding.logoUrl || logoUrl || null;
|
|
102
|
+
const resolvedLogoOnDark = branding.logoOnDarkUrl || logoOnDarkUrl || resolvedLogo || "";
|
|
103
|
+
const hasDarkLogoVariant = Boolean(
|
|
104
|
+
resolvedLogo && resolvedLogoOnDark.trim().length > 0 && resolvedLogoOnDark !== resolvedLogo
|
|
105
|
+
);
|
|
95
106
|
return /* @__PURE__ */ jsxs(
|
|
96
107
|
"div",
|
|
97
108
|
{
|
|
@@ -110,8 +121,6 @@ function Logo({ brandName = "Orion Studio", logoUrl } = {}) {
|
|
|
110
121
|
className: "orion-admin-logo-mark",
|
|
111
122
|
style: {
|
|
112
123
|
alignItems: "center",
|
|
113
|
-
background: "var(--orion-cms-logo-bg, var(--admin-accent, #3b82f6))",
|
|
114
|
-
borderRadius: "var(--orion-cms-logo-radius, var(--admin-radius-md, 8px))",
|
|
115
124
|
display: "flex",
|
|
116
125
|
flexShrink: 0,
|
|
117
126
|
height: 32,
|
|
@@ -119,14 +128,25 @@ function Logo({ brandName = "Orion Studio", logoUrl } = {}) {
|
|
|
119
128
|
overflow: "hidden",
|
|
120
129
|
width: 32
|
|
121
130
|
},
|
|
122
|
-
children: resolvedLogo ? /* @__PURE__ */
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
131
|
+
children: resolvedLogo ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
132
|
+
/* @__PURE__ */ jsx(
|
|
133
|
+
"img",
|
|
134
|
+
{
|
|
135
|
+
alt: `${resolvedName} logo`,
|
|
136
|
+
className: `orion-admin-logo-image orion-admin-logo-image--default${hasDarkLogoVariant ? "" : " is-only-logo"}`,
|
|
137
|
+
src: resolvedLogo
|
|
138
|
+
}
|
|
139
|
+
),
|
|
140
|
+
hasDarkLogoVariant ? /* @__PURE__ */ jsx(
|
|
141
|
+
"img",
|
|
142
|
+
{
|
|
143
|
+
alt: "",
|
|
144
|
+
"aria-hidden": "true",
|
|
145
|
+
className: "orion-admin-logo-image orion-admin-logo-image--dark",
|
|
146
|
+
src: resolvedLogoOnDark
|
|
147
|
+
}
|
|
148
|
+
) : null
|
|
149
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
130
150
|
"svg",
|
|
131
151
|
{
|
|
132
152
|
fill: "none",
|
|
@@ -463,7 +483,7 @@ function useTheme(defaultTheme = "brand-light") {
|
|
|
463
483
|
}
|
|
464
484
|
|
|
465
485
|
// src/admin/components/ThemeSwitcher.tsx
|
|
466
|
-
import { Fragment, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
486
|
+
import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
467
487
|
var iconSize = 16;
|
|
468
488
|
function SunIcon() {
|
|
469
489
|
return /* @__PURE__ */ jsxs5("svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
@@ -603,7 +623,7 @@ function ThemeProvider({
|
|
|
603
623
|
} catch {
|
|
604
624
|
}
|
|
605
625
|
}, [allowThemePreference, defaultTheme]);
|
|
606
|
-
return /* @__PURE__ */ jsx5(
|
|
626
|
+
return /* @__PURE__ */ jsx5(Fragment2, { children });
|
|
607
627
|
}
|
|
608
628
|
|
|
609
629
|
// src/admin/components/HelpTooltip.tsx
|
|
@@ -1333,7 +1353,7 @@ var useAdminBasePath = (fallback = DEFAULT_ADMIN_BASE_PATH) => {
|
|
|
1333
1353
|
};
|
|
1334
1354
|
|
|
1335
1355
|
// src/shared/studioSections.ts
|
|
1336
|
-
var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
|
|
1356
|
+
var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
|
|
1337
1357
|
var studioIcons = new Set(adminNavIcons);
|
|
1338
1358
|
var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
1339
1359
|
var isAbsoluteExternalURL2 = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
|
|
@@ -1531,7 +1551,7 @@ var buildStudioNavItems = (props, adminBasePath) => {
|
|
|
1531
1551
|
icon: "tools",
|
|
1532
1552
|
label: "Admin Tools",
|
|
1533
1553
|
matchPrefixes: [toolsPath, resolveAdminPath(adminBasePath, "/collections/users")],
|
|
1534
|
-
roles: ["admin"]
|
|
1554
|
+
roles: ["admin", "developer"]
|
|
1535
1555
|
};
|
|
1536
1556
|
const extensionItems = sections.map((section) => ({
|
|
1537
1557
|
href: resolveAdminPath(adminBasePath, section.href),
|
|
@@ -1568,7 +1588,7 @@ var isStudioShellRoute = (pathname, props, adminBasePath) => {
|
|
|
1568
1588
|
};
|
|
1569
1589
|
|
|
1570
1590
|
// src/admin/components/studio/AdminStudioNav.tsx
|
|
1571
|
-
import { Fragment as
|
|
1591
|
+
import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1572
1592
|
var iconSize2 = 18;
|
|
1573
1593
|
function NavIcon({ sectionID }) {
|
|
1574
1594
|
const props = {
|
|
@@ -1726,7 +1746,7 @@ function AdminStudioNav(props) {
|
|
|
1726
1746
|
textAlign: compact ? "center" : "left"
|
|
1727
1747
|
},
|
|
1728
1748
|
children: [
|
|
1729
|
-
!compact ? /* @__PURE__ */ jsxs11(
|
|
1749
|
+
!compact ? /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
1730
1750
|
/* @__PURE__ */ jsx12("div", { style: { color: "var(--theme-elevation-700)", fontSize: "0.85rem" }, children: "Signed in as" }),
|
|
1731
1751
|
/* @__PURE__ */ jsx12("div", { style: { fontWeight: 800, marginBottom: "0.55rem" }, children: typeof user?.email === "string" ? user.email : "User" })
|
|
1732
1752
|
] }) : null,
|
|
@@ -1824,9 +1844,9 @@ import { startTransition, useEffect as useEffect7, useMemo as useMemo3, useState
|
|
|
1824
1844
|
import Link from "next/link";
|
|
1825
1845
|
import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1826
1846
|
var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
1827
|
-
var isRole = (value) => value === "admin" || value === "
|
|
1828
|
-
var canReviewForms = (role) => role === "admin" || role === "editor";
|
|
1829
|
-
var canCreatePages = (role) => role === "admin" || role === "editor";
|
|
1847
|
+
var isRole = (value) => value === "admin" || value === "client" || value === "developer" || value === "editor";
|
|
1848
|
+
var canReviewForms = (role) => role === "admin" || role === "developer" || role === "editor";
|
|
1849
|
+
var canCreatePages = (role) => role === "admin" || role === "developer" || role === "editor";
|
|
1830
1850
|
var canAccess = (role, roles) => {
|
|
1831
1851
|
if (!roles || roles.length === 0) {
|
|
1832
1852
|
return true;
|
|
@@ -2302,7 +2322,7 @@ function AdminStudioDashboardClient({
|
|
|
2302
2322
|
label: "Manage Media",
|
|
2303
2323
|
tone: "ghost"
|
|
2304
2324
|
});
|
|
2305
|
-
if (role === "admin") {
|
|
2325
|
+
if (role === "admin" || role === "developer") {
|
|
2306
2326
|
actions.push({
|
|
2307
2327
|
description: "Manage users, roles, and fallback tools.",
|
|
2308
2328
|
href: toolsPath,
|
|
@@ -2581,7 +2601,7 @@ var buildSectionLinks = (adminBasePath, sections, formsEnabled, globalsBasePath)
|
|
|
2581
2601
|
href: resolveAdminPath2(adminBasePath, "/tools"),
|
|
2582
2602
|
id: "admin-tools",
|
|
2583
2603
|
label: "Admin Tools",
|
|
2584
|
-
roles: ["admin"]
|
|
2604
|
+
roles: ["admin", "developer"]
|
|
2585
2605
|
}
|
|
2586
2606
|
];
|
|
2587
2607
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -2651,10 +2671,10 @@ import { useEffect as useEffect8, useMemo as useMemo4, useState as useState8 } f
|
|
|
2651
2671
|
import Link2 from "next/link";
|
|
2652
2672
|
import { useAuth as useAuth3 } from "@payloadcms/ui";
|
|
2653
2673
|
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2654
|
-
var
|
|
2674
|
+
var hasAdminAccess = (user) => {
|
|
2655
2675
|
if (!user || typeof user !== "object") return false;
|
|
2656
2676
|
const role = user.role;
|
|
2657
|
-
return typeof role === "string" && role === "admin";
|
|
2677
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
2658
2678
|
};
|
|
2659
2679
|
var getPropString3 = (props, key, fallback) => {
|
|
2660
2680
|
if (!props || typeof props !== "object") return fallback;
|
|
@@ -2717,7 +2737,7 @@ function AdminStudioPagesListView(props) {
|
|
|
2717
2737
|
return /* @__PURE__ */ jsx18(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs15(
|
|
2718
2738
|
AdminPage,
|
|
2719
2739
|
{
|
|
2720
|
-
actions:
|
|
2740
|
+
actions: hasAdminAccess(user) ? /* @__PURE__ */ jsx18(Link2, { className: "orion-admin-action-button", href: newPagePath, children: "New Page" }) : null,
|
|
2721
2741
|
breadcrumbs: [
|
|
2722
2742
|
{ label: "Dashboard", href: adminBasePath },
|
|
2723
2743
|
{ label: "Pages" }
|
|
@@ -2751,11 +2771,11 @@ function AdminStudioPagesListView(props) {
|
|
|
2751
2771
|
// src/admin/components/studio/AdminStudioPageEditView.tsx
|
|
2752
2772
|
import { useEffect as useEffect9, useMemo as useMemo5, useRef as useRef3, useState as useState9 } from "react";
|
|
2753
2773
|
import { SetStepNav, toast, useAuth as useAuth4 } from "@payloadcms/ui";
|
|
2754
|
-
import { Fragment as
|
|
2755
|
-
var
|
|
2774
|
+
import { Fragment as Fragment4, jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2775
|
+
var hasAdminAccess2 = (user) => {
|
|
2756
2776
|
if (!user || typeof user !== "object") return false;
|
|
2757
2777
|
const role = user.role;
|
|
2758
|
-
return typeof role === "string" && role === "admin";
|
|
2778
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
2759
2779
|
};
|
|
2760
2780
|
var isEditor = (user) => {
|
|
2761
2781
|
if (!user || typeof user !== "object") return false;
|
|
@@ -2813,7 +2833,7 @@ function AdminStudioPageEditView(props) {
|
|
|
2813
2833
|
}
|
|
2814
2834
|
setDidResolvePathFallback(true);
|
|
2815
2835
|
}, [pageIDFromParams]);
|
|
2816
|
-
const canPublish =
|
|
2836
|
+
const canPublish = hasAdminAccess2(user) || isEditor(user);
|
|
2817
2837
|
const refreshUnpublishedState = async (id) => {
|
|
2818
2838
|
try {
|
|
2819
2839
|
const response = await fetch(
|
|
@@ -2904,7 +2924,7 @@ function AdminStudioPageEditView(props) {
|
|
|
2904
2924
|
return () => window.removeEventListener("message", onMessage);
|
|
2905
2925
|
}, []);
|
|
2906
2926
|
if (!pageID && !didResolvePathFallback) {
|
|
2907
|
-
return /* @__PURE__ */ jsx19(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs16(
|
|
2927
|
+
return /* @__PURE__ */ jsx19(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs16(Fragment4, { children: [
|
|
2908
2928
|
/* @__PURE__ */ jsx19(
|
|
2909
2929
|
SetStepNav,
|
|
2910
2930
|
{
|
|
@@ -2919,7 +2939,7 @@ function AdminStudioPageEditView(props) {
|
|
|
2919
2939
|
] }) });
|
|
2920
2940
|
}
|
|
2921
2941
|
if (!pageID) {
|
|
2922
|
-
return /* @__PURE__ */ jsx19(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs16(
|
|
2942
|
+
return /* @__PURE__ */ jsx19(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs16(Fragment4, { children: [
|
|
2923
2943
|
/* @__PURE__ */ jsx19(
|
|
2924
2944
|
SetStepNav,
|
|
2925
2945
|
{
|
|
@@ -2933,7 +2953,7 @@ function AdminStudioPageEditView(props) {
|
|
|
2933
2953
|
/* @__PURE__ */ jsx19("p", { style: { color: "var(--theme-elevation-600)" }, children: "Missing page ID." })
|
|
2934
2954
|
] }) });
|
|
2935
2955
|
}
|
|
2936
|
-
return /* @__PURE__ */ jsx19(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs16(
|
|
2956
|
+
return /* @__PURE__ */ jsx19(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsxs16(Fragment4, { children: [
|
|
2937
2957
|
/* @__PURE__ */ jsx19(
|
|
2938
2958
|
SetStepNav,
|
|
2939
2959
|
{
|
|
@@ -3106,7 +3126,7 @@ var getPropString5 = (props, key, fallback) => {
|
|
|
3106
3126
|
var canManagePages = (user) => {
|
|
3107
3127
|
if (!user || typeof user !== "object") return false;
|
|
3108
3128
|
const role = user.role;
|
|
3109
|
-
return role === "admin" || role === "editor";
|
|
3129
|
+
return role === "admin" || role === "developer" || role === "editor";
|
|
3110
3130
|
};
|
|
3111
3131
|
var slugify = (value) => value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
|
|
3112
3132
|
function AdminStudioNewPageView(props) {
|
|
@@ -3128,7 +3148,7 @@ function AdminStudioNewPageView(props) {
|
|
|
3128
3148
|
title: "New Page",
|
|
3129
3149
|
children: /* @__PURE__ */ jsxs17("div", { className: "orion-admin-card", children: [
|
|
3130
3150
|
/* @__PURE__ */ jsx20("strong", { children: "Access denied" }),
|
|
3131
|
-
/* @__PURE__ */ jsx20("span", { children: "This section is restricted to administrator and editor accounts." })
|
|
3151
|
+
/* @__PURE__ */ jsx20("span", { children: "This section is restricted to administrator, developer, and editor accounts." })
|
|
3132
3152
|
] })
|
|
3133
3153
|
}
|
|
3134
3154
|
) });
|
|
@@ -5185,17 +5205,17 @@ var FORM_TONE_OVERRIDES = {
|
|
|
5185
5205
|
var IDENTITY_KEYS = /* @__PURE__ */ new Set(["contactEmail", "email", "firstName", "lastName", "name"]);
|
|
5186
5206
|
var RESPONSE_FIELD_PREVIEW_LIMIT = 3;
|
|
5187
5207
|
var RESPONSE_SCROLL_THRESHOLD = 3;
|
|
5188
|
-
var
|
|
5208
|
+
var hasAdminAccess3 = (user) => {
|
|
5189
5209
|
if (!user || typeof user !== "object") return false;
|
|
5190
5210
|
const role = user.role;
|
|
5191
|
-
return typeof role === "string" && role === "admin";
|
|
5211
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
5192
5212
|
};
|
|
5193
5213
|
var isEditor2 = (user) => {
|
|
5194
5214
|
if (!user || typeof user !== "object") return false;
|
|
5195
5215
|
const role = user.role;
|
|
5196
5216
|
return typeof role === "string" && role === "editor";
|
|
5197
5217
|
};
|
|
5198
|
-
var canReviewForms2 = (user) =>
|
|
5218
|
+
var canReviewForms2 = (user) => hasAdminAccess3(user) || isEditor2(user);
|
|
5199
5219
|
var getPropString13 = (props, key, fallback) => {
|
|
5200
5220
|
if (!props || typeof props !== "object") return fallback;
|
|
5201
5221
|
const direct = props[key];
|
|
@@ -5678,11 +5698,11 @@ function AdminStudioFormsView(props) {
|
|
|
5678
5698
|
import { useEffect as useEffect18, useState as useState19 } from "react";
|
|
5679
5699
|
import { useAuth as useAuth7 } from "@payloadcms/ui";
|
|
5680
5700
|
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5681
|
-
var userRoles = ["admin", "client", "editor"];
|
|
5682
|
-
var
|
|
5701
|
+
var userRoles = ["admin", "client", "developer", "editor"];
|
|
5702
|
+
var hasAdminAccess4 = (user) => {
|
|
5683
5703
|
if (!user || typeof user !== "object") return false;
|
|
5684
5704
|
const role = user.role;
|
|
5685
|
-
return typeof role === "string" && role === "admin";
|
|
5705
|
+
return typeof role === "string" && (role === "admin" || role === "developer");
|
|
5686
5706
|
};
|
|
5687
5707
|
var normalizeRole = (value) => userRoles.includes(value) ? value : "editor";
|
|
5688
5708
|
function AdminStudioToolsView(props) {
|
|
@@ -5694,7 +5714,7 @@ function AdminStudioToolsView(props) {
|
|
|
5694
5714
|
const [savedMessage, setSavedMessage] = useState19(null);
|
|
5695
5715
|
const [createSubmitting, setCreateSubmitting] = useState19(false);
|
|
5696
5716
|
const [updatingUserID, setUpdatingUserID] = useState19(null);
|
|
5697
|
-
if (!
|
|
5717
|
+
if (!hasAdminAccess4(user)) {
|
|
5698
5718
|
return /* @__PURE__ */ jsx30(StudioSectionLayout, { navProps: props, children: /* @__PURE__ */ jsx30(
|
|
5699
5719
|
AdminPage,
|
|
5700
5720
|
{
|
|
@@ -5706,7 +5726,7 @@ function AdminStudioToolsView(props) {
|
|
|
5706
5726
|
title: "Admin Tools",
|
|
5707
5727
|
children: /* @__PURE__ */ jsxs27("div", { className: "orion-admin-card", children: [
|
|
5708
5728
|
/* @__PURE__ */ jsx30("strong", { children: "Access denied" }),
|
|
5709
|
-
/* @__PURE__ */ jsx30("span", { children: "This section is restricted to administrator accounts." })
|
|
5729
|
+
/* @__PURE__ */ jsx30("span", { children: "This section is restricted to administrator and developer accounts." })
|
|
5710
5730
|
] })
|
|
5711
5731
|
}
|
|
5712
5732
|
) });
|
package/dist/admin/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioDashboardPanel, f as ResolvedStudioSection, S as StudioDashboardPanel, g as StudioDashboardPanelSpan, h as StudioGlobalLink, j as StudioSection, k as StudioSectionCard, l as StudioSectionComponent, m as StudioSectionRole, n as StudioSectionView, o as configureAdmin, p as createHeaderNavItemsField, q as createSocialMediaConnectionsField, r as createSocialMediaGlobal, s as createThemePreferenceField, t as socialMediaConnectionsField, u as themePreferenceField, w as withTooltips } from '../index-
|
|
1
|
+
export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioDashboardPanel, f as ResolvedStudioSection, S as StudioDashboardPanel, g as StudioDashboardPanelSpan, h as StudioGlobalLink, j as StudioSection, k as StudioSectionCard, l as StudioSectionComponent, m as StudioSectionRole, n as StudioSectionView, o as configureAdmin, p as createHeaderNavItemsField, q as createSocialMediaConnectionsField, r as createSocialMediaGlobal, s as createThemePreferenceField, t as socialMediaConnectionsField, u as themePreferenceField, w as withTooltips } from '../index-DLfPOqYA.mjs';
|
|
2
2
|
export { b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, a as SocialMediaPlatform, h as SocialMediaProfileData, i as SocialMediaProfilesData } from '../socialMedia-C05Iy-SV.mjs';
|
|
3
3
|
import 'payload';
|
|
4
|
-
import '../sitePreviewTypes-
|
|
4
|
+
import '../sitePreviewTypes-BrJwGzJj.mjs';
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioDashboardPanel, f as ResolvedStudioSection, S as StudioDashboardPanel, g as StudioDashboardPanelSpan, h as StudioGlobalLink, j as StudioSection, k as StudioSectionCard, l as StudioSectionComponent, m as StudioSectionRole, n as StudioSectionView, o as configureAdmin, p as createHeaderNavItemsField, q as createSocialMediaConnectionsField, r as createSocialMediaGlobal, s as createThemePreferenceField, t as socialMediaConnectionsField, u as themePreferenceField, w as withTooltips } from '../index-
|
|
1
|
+
export { A as AdminConfig, a as AdminStudioConfig, b as AdminStudioFooterPreviewConfig, c as AdminStudioHeaderPreviewConfig, d as AdminStudioSitePreviewConfig, C as CreateSocialMediaConnectionsFieldOptions, e as CreateSocialMediaGlobalOptions, R as ResolvedStudioDashboardPanel, f as ResolvedStudioSection, S as StudioDashboardPanel, g as StudioDashboardPanelSpan, h as StudioGlobalLink, j as StudioSection, k as StudioSectionCard, l as StudioSectionComponent, m as StudioSectionRole, n as StudioSectionView, o as configureAdmin, p as createHeaderNavItemsField, q as createSocialMediaConnectionsField, r as createSocialMediaGlobal, s as createThemePreferenceField, t as socialMediaConnectionsField, u as themePreferenceField, w as withTooltips } from '../index-BV0vEGl6.js';
|
|
2
2
|
export { b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, a as SocialMediaPlatform, h as SocialMediaProfileData, i as SocialMediaProfilesData } from '../socialMedia-C05Iy-SV.js';
|
|
3
3
|
import 'payload';
|
|
4
|
-
import '../sitePreviewTypes-
|
|
4
|
+
import '../sitePreviewTypes-BrJwGzJj.js';
|
package/dist/admin/index.js
CHANGED
|
@@ -81,7 +81,7 @@ var adminNavIcons = [
|
|
|
81
81
|
];
|
|
82
82
|
|
|
83
83
|
// src/shared/studioSections.ts
|
|
84
|
-
var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
|
|
84
|
+
var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
|
|
85
85
|
var studioIcons = new Set(adminNavIcons);
|
|
86
86
|
var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
87
87
|
var isAbsoluteExternalURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
|
|
@@ -215,6 +215,7 @@ function configureAdmin(config) {
|
|
|
215
215
|
brandPrimary = "#3b82f6",
|
|
216
216
|
brandSecondary = "#8b5cf6",
|
|
217
217
|
defaultTheme = "brand-light",
|
|
218
|
+
logoOnDarkUrl,
|
|
218
219
|
logoUrl,
|
|
219
220
|
allowThemePreference = false,
|
|
220
221
|
userSessionDurationSeconds = 60 * 60 * 24
|
|
@@ -339,6 +340,7 @@ function configureAdmin(config) {
|
|
|
339
340
|
path: clientPath,
|
|
340
341
|
clientProps: {
|
|
341
342
|
brandName,
|
|
343
|
+
logoOnDarkUrl,
|
|
342
344
|
logoUrl
|
|
343
345
|
}
|
|
344
346
|
},
|
|
@@ -347,6 +349,7 @@ function configureAdmin(config) {
|
|
|
347
349
|
path: clientPath,
|
|
348
350
|
clientProps: {
|
|
349
351
|
brandName,
|
|
352
|
+
logoOnDarkUrl,
|
|
350
353
|
logoUrl
|
|
351
354
|
}
|
|
352
355
|
}
|
|
@@ -499,6 +502,7 @@ function configureAdmin(config) {
|
|
|
499
502
|
path: clientPath,
|
|
500
503
|
clientProps: {
|
|
501
504
|
brandName,
|
|
505
|
+
logoOnDarkUrl,
|
|
502
506
|
logoUrl
|
|
503
507
|
}
|
|
504
508
|
}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-
|
|
2
|
-
export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-
|
|
1
|
+
export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-G_uTNffQ.mjs';
|
|
2
|
+
export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-BrJwGzJj.mjs';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-
|
|
2
|
-
export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-
|
|
1
|
+
export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-DAdN56fM.js';
|
|
2
|
+
export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-BrJwGzJj.js';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'react';
|
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
--orion-cms-logo-radius,
|
|
36
36
|
var(--orion-cms-logo-radius-resolved, var(--orion-admin-radius-md))
|
|
37
37
|
);
|
|
38
|
+
--orion-admin-logo-bg: var(--orion-cms-logo-bg, transparent);
|
|
39
|
+
--orion-admin-logo-border: var(--orion-cms-logo-border, transparent);
|
|
40
|
+
--orion-admin-logo-shadow: var(--orion-cms-logo-shadow, none);
|
|
41
|
+
--orion-admin-logo-padding: var(--orion-cms-logo-padding, 0px);
|
|
42
|
+
--orion-admin-logo-fit: var(--orion-cms-logo-fit, contain);
|
|
38
43
|
--orion-admin-control-bg: var(--orion-cms-surface, var(--orion-cms-surface-resolved, #ffffff));
|
|
39
44
|
--orion-admin-control-hover-bg: color-mix(in srgb, var(--orion-admin-control-bg) 78%, white);
|
|
40
45
|
--orion-admin-input-bg: var(
|
|
@@ -164,19 +169,47 @@
|
|
|
164
169
|
}
|
|
165
170
|
|
|
166
171
|
.orion-admin-brand-logo {
|
|
172
|
+
align-items: center;
|
|
173
|
+
background: var(--orion-admin-logo-bg);
|
|
174
|
+
border: 1px solid var(--orion-admin-logo-border);
|
|
167
175
|
border-radius: var(--orion-admin-logo-radius);
|
|
176
|
+
box-shadow: var(--orion-admin-logo-shadow);
|
|
177
|
+
box-sizing: border-box;
|
|
178
|
+
display: flex;
|
|
168
179
|
flex: 0 0 auto;
|
|
169
180
|
height: 48px;
|
|
181
|
+
justify-content: center;
|
|
170
182
|
overflow: hidden;
|
|
183
|
+
padding: var(--orion-admin-logo-padding);
|
|
171
184
|
width: 48px;
|
|
172
185
|
}
|
|
173
186
|
|
|
174
187
|
.orion-admin-brand-logo img {
|
|
175
188
|
height: 100%;
|
|
176
|
-
object-fit:
|
|
189
|
+
object-fit: var(--orion-admin-logo-fit);
|
|
177
190
|
width: 100%;
|
|
178
191
|
}
|
|
179
192
|
|
|
193
|
+
.orion-admin-logo-mark {
|
|
194
|
+
background: var(--orion-admin-logo-bg);
|
|
195
|
+
border: 1px solid var(--orion-admin-logo-border);
|
|
196
|
+
border-radius: var(--orion-admin-logo-radius);
|
|
197
|
+
box-shadow: var(--orion-admin-logo-shadow);
|
|
198
|
+
box-sizing: border-box;
|
|
199
|
+
padding: var(--orion-admin-logo-padding);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.orion-admin-logo-image {
|
|
203
|
+
display: block;
|
|
204
|
+
height: 100%;
|
|
205
|
+
object-fit: var(--orion-admin-logo-fit);
|
|
206
|
+
width: 100%;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.orion-admin-logo-image--dark {
|
|
210
|
+
display: none;
|
|
211
|
+
}
|
|
212
|
+
|
|
180
213
|
.orion-admin-brand-text {
|
|
181
214
|
min-width: 0;
|
|
182
215
|
}
|
|
@@ -945,12 +978,34 @@
|
|
|
945
978
|
}
|
|
946
979
|
|
|
947
980
|
.template-minimal.login .login__brand .orion-admin-logo-mark {
|
|
981
|
+
--orion-admin-logo-bg: var(
|
|
982
|
+
--orion-cms-logo-dark-bg,
|
|
983
|
+
color-mix(in srgb, var(--orion-admin-login-panel-bg) 88%, white)
|
|
984
|
+
);
|
|
985
|
+
--orion-admin-logo-border: var(
|
|
986
|
+
--orion-cms-logo-dark-border,
|
|
987
|
+
color-mix(in srgb, var(--brand-secondary) 26%, rgba(255, 255, 255, 0.28))
|
|
988
|
+
);
|
|
989
|
+
--orion-admin-logo-fit: var(--orion-cms-logo-dark-fit, contain);
|
|
990
|
+
--orion-admin-logo-padding: var(--orion-cms-logo-dark-padding, clamp(0.32rem, 0.8vw, 0.48rem));
|
|
991
|
+
--orion-admin-logo-shadow: var(
|
|
992
|
+
--orion-cms-logo-dark-shadow,
|
|
993
|
+
0 18px 36px rgba(7, 13, 24, 0.18),
|
|
994
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.72)
|
|
995
|
+
);
|
|
948
996
|
border-radius: var(--orion-admin-logo-radius) !important;
|
|
949
|
-
box-shadow: var(--orion-admin-shadow-card);
|
|
950
997
|
height: 58px !important;
|
|
951
998
|
width: 58px !important;
|
|
952
999
|
}
|
|
953
1000
|
|
|
1001
|
+
.template-minimal.login .login__brand .orion-admin-logo-mark .orion-admin-logo-image--dark {
|
|
1002
|
+
display: block;
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
.template-minimal.login .login__brand .orion-admin-logo-mark .orion-admin-logo-image--default:not(.is-only-logo) {
|
|
1006
|
+
display: none;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
954
1009
|
.template-minimal.login .login__brand .orion-admin-logo-wordmark {
|
|
955
1010
|
color: var(--orion-admin-login-hero-text) !important;
|
|
956
1011
|
font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
|
|
@@ -53,7 +53,7 @@ var createThemePreferenceField = (defaultTheme = "brand-light") => ({
|
|
|
53
53
|
var themePreferenceField = createThemePreferenceField("brand-light");
|
|
54
54
|
|
|
55
55
|
// src/shared/studioSections.ts
|
|
56
|
-
var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
|
|
56
|
+
var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
|
|
57
57
|
var studioIcons = new Set(adminNavIcons);
|
|
58
58
|
var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
59
59
|
var isAbsoluteExternalURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
|
|
@@ -186,6 +186,7 @@ function configureAdmin(config) {
|
|
|
186
186
|
brandPrimary = "#3b82f6",
|
|
187
187
|
brandSecondary = "#8b5cf6",
|
|
188
188
|
defaultTheme = "brand-light",
|
|
189
|
+
logoOnDarkUrl,
|
|
189
190
|
logoUrl,
|
|
190
191
|
allowThemePreference = false,
|
|
191
192
|
userSessionDurationSeconds = 60 * 60 * 24
|
|
@@ -310,6 +311,7 @@ function configureAdmin(config) {
|
|
|
310
311
|
path: clientPath,
|
|
311
312
|
clientProps: {
|
|
312
313
|
brandName,
|
|
314
|
+
logoOnDarkUrl,
|
|
313
315
|
logoUrl
|
|
314
316
|
}
|
|
315
317
|
},
|
|
@@ -318,6 +320,7 @@ function configureAdmin(config) {
|
|
|
318
320
|
path: clientPath,
|
|
319
321
|
clientProps: {
|
|
320
322
|
brandName,
|
|
323
|
+
logoOnDarkUrl,
|
|
321
324
|
logoUrl
|
|
322
325
|
}
|
|
323
326
|
}
|
|
@@ -470,6 +473,7 @@ function configureAdmin(config) {
|
|
|
470
473
|
path: clientPath,
|
|
471
474
|
clientProps: {
|
|
472
475
|
brandName,
|
|
476
|
+
logoOnDarkUrl,
|
|
473
477
|
logoUrl
|
|
474
478
|
}
|
|
475
479
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Field, CollectionConfig, GlobalConfig } from 'payload';
|
|
2
|
-
import { a as AdminNavIcon, e as SitePreviewLink, f as SitePreviewLocationSummary } from './sitePreviewTypes-
|
|
2
|
+
import { a as AdminNavIcon, e as SitePreviewLink, f as SitePreviewLocationSummary } from './sitePreviewTypes-BrJwGzJj.js';
|
|
3
3
|
import { a as SocialMediaPlatform, b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, h as SocialMediaProfileData, i as SocialMediaProfilesData } from './socialMedia-C05Iy-SV.js';
|
|
4
4
|
|
|
5
5
|
type ThemeOption = 'light' | 'dark' | 'brand-light' | 'brand-dark';
|
|
6
6
|
declare const createThemePreferenceField: (defaultTheme?: ThemeOption) => Field;
|
|
7
7
|
declare const themePreferenceField: Field;
|
|
8
8
|
|
|
9
|
-
type StudioSectionRole = 'admin' | 'editor' | 'client';
|
|
9
|
+
type StudioSectionRole = 'admin' | 'developer' | 'editor' | 'client';
|
|
10
10
|
type StudioSectionCard = {
|
|
11
11
|
description?: string;
|
|
12
12
|
title: string;
|
|
@@ -104,6 +104,7 @@ interface AdminConfig {
|
|
|
104
104
|
brandPrimary?: string;
|
|
105
105
|
brandSecondary?: string;
|
|
106
106
|
defaultTheme?: ThemeOption;
|
|
107
|
+
logoOnDarkUrl?: string;
|
|
107
108
|
logoUrl?: string;
|
|
108
109
|
basePath?: string;
|
|
109
110
|
studio?: AdminStudioConfig;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-
|
|
2
|
+
import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-BrJwGzJj.js';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
|
|
5
5
|
type AdminBreadcrumbsProps = {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Field, CollectionConfig, GlobalConfig } from 'payload';
|
|
2
|
-
import { a as AdminNavIcon, e as SitePreviewLink, f as SitePreviewLocationSummary } from './sitePreviewTypes-
|
|
2
|
+
import { a as AdminNavIcon, e as SitePreviewLink, f as SitePreviewLocationSummary } from './sitePreviewTypes-BrJwGzJj.mjs';
|
|
3
3
|
import { a as SocialMediaPlatform, b as SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM, c as SOCIAL_MEDIA_ICON_OPTIONS, d as SOCIAL_MEDIA_PLATFORMS, e as SOCIAL_MEDIA_PLATFORM_LABELS, S as SocialMediaGlobalData, f as SocialMediaIconLibrary, g as SocialMediaIconOption, h as SocialMediaProfileData, i as SocialMediaProfilesData } from './socialMedia-C05Iy-SV.mjs';
|
|
4
4
|
|
|
5
5
|
type ThemeOption = 'light' | 'dark' | 'brand-light' | 'brand-dark';
|
|
6
6
|
declare const createThemePreferenceField: (defaultTheme?: ThemeOption) => Field;
|
|
7
7
|
declare const themePreferenceField: Field;
|
|
8
8
|
|
|
9
|
-
type StudioSectionRole = 'admin' | 'editor' | 'client';
|
|
9
|
+
type StudioSectionRole = 'admin' | 'developer' | 'editor' | 'client';
|
|
10
10
|
type StudioSectionCard = {
|
|
11
11
|
description?: string;
|
|
12
12
|
title: string;
|
|
@@ -104,6 +104,7 @@ interface AdminConfig {
|
|
|
104
104
|
brandPrimary?: string;
|
|
105
105
|
brandSecondary?: string;
|
|
106
106
|
defaultTheme?: ThemeOption;
|
|
107
|
+
logoOnDarkUrl?: string;
|
|
107
108
|
logoUrl?: string;
|
|
108
109
|
basePath?: string;
|
|
109
110
|
studio?: AdminStudioConfig;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-
|
|
2
|
+
import { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from './sitePreviewTypes-BrJwGzJj.mjs';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
|
|
5
5
|
type AdminBreadcrumbsProps = {
|
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { i as admin } from './index-
|
|
2
|
-
export { i as adminApp } from './index-
|
|
1
|
+
export { i as admin } from './index-DLfPOqYA.mjs';
|
|
2
|
+
export { i as adminApp } from './index-G_uTNffQ.mjs';
|
|
3
3
|
export { i as blocks } from './index-CluwY0ZQ.mjs';
|
|
4
4
|
export { i as nextjs } from './index-D8BNfUJb.mjs';
|
|
5
5
|
export { i as studio } from './index-DWmudwDm.mjs';
|
|
6
6
|
export { i as studioPages } from './index-Cv-6qnrw.mjs';
|
|
7
7
|
import 'payload';
|
|
8
|
-
import './sitePreviewTypes-
|
|
8
|
+
import './sitePreviewTypes-BrJwGzJj.mjs';
|
|
9
9
|
import './socialMedia-C05Iy-SV.mjs';
|
|
10
10
|
import 'react/jsx-runtime';
|
|
11
11
|
import 'react';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { i as admin } from './index-
|
|
2
|
-
export { i as adminApp } from './index-
|
|
1
|
+
export { i as admin } from './index-BV0vEGl6.js';
|
|
2
|
+
export { i as adminApp } from './index-DAdN56fM.js';
|
|
3
3
|
export { i as blocks } from './index-CluwY0ZQ.js';
|
|
4
4
|
export { i as nextjs } from './index-DD_E2UfJ.js';
|
|
5
5
|
export { i as studio } from './index-DWmudwDm.js';
|
|
6
6
|
export { i as studioPages } from './index-Crx_MtPw.js';
|
|
7
7
|
import 'payload';
|
|
8
|
-
import './sitePreviewTypes-
|
|
8
|
+
import './sitePreviewTypes-BrJwGzJj.js';
|
|
9
9
|
import './socialMedia-C05Iy-SV.js';
|
|
10
10
|
import 'react/jsx-runtime';
|
|
11
11
|
import 'react';
|
package/dist/index.js
CHANGED
|
@@ -107,7 +107,7 @@ var navItemIsActive = (pathname, item) => {
|
|
|
107
107
|
};
|
|
108
108
|
|
|
109
109
|
// src/shared/studioSections.ts
|
|
110
|
-
var studioRoles = /* @__PURE__ */ new Set(["admin", "editor", "client"]);
|
|
110
|
+
var studioRoles = /* @__PURE__ */ new Set(["admin", "developer", "editor", "client"]);
|
|
111
111
|
var studioIcons = new Set(adminNavIcons);
|
|
112
112
|
var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
113
113
|
var isAbsoluteExternalURL = (value) => /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(value) || value.startsWith("//");
|
|
@@ -241,6 +241,7 @@ function configureAdmin(config) {
|
|
|
241
241
|
brandPrimary = "#3b82f6",
|
|
242
242
|
brandSecondary = "#8b5cf6",
|
|
243
243
|
defaultTheme = "brand-light",
|
|
244
|
+
logoOnDarkUrl,
|
|
244
245
|
logoUrl,
|
|
245
246
|
allowThemePreference = false,
|
|
246
247
|
userSessionDurationSeconds = 60 * 60 * 24
|
|
@@ -365,6 +366,7 @@ function configureAdmin(config) {
|
|
|
365
366
|
path: clientPath,
|
|
366
367
|
clientProps: {
|
|
367
368
|
brandName,
|
|
369
|
+
logoOnDarkUrl,
|
|
368
370
|
logoUrl
|
|
369
371
|
}
|
|
370
372
|
},
|
|
@@ -373,6 +375,7 @@ function configureAdmin(config) {
|
|
|
373
375
|
path: clientPath,
|
|
374
376
|
clientProps: {
|
|
375
377
|
brandName,
|
|
378
|
+
logoOnDarkUrl,
|
|
376
379
|
logoUrl
|
|
377
380
|
}
|
|
378
381
|
}
|
|
@@ -525,6 +528,7 @@ function configureAdmin(config) {
|
|
|
525
528
|
path: clientPath,
|
|
526
529
|
clientProps: {
|
|
527
530
|
brandName,
|
|
531
|
+
logoOnDarkUrl,
|
|
528
532
|
logoUrl
|
|
529
533
|
}
|
|
530
534
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type AdminRole = 'admin' | 'editor' | 'client';
|
|
1
|
+
type AdminRole = 'admin' | 'developer' | 'editor' | 'client';
|
|
2
2
|
declare const adminNavIcons: readonly ["dashboard", "pages", "forms", "globals", "media", "tools", "account", "analytics"];
|
|
3
3
|
type AdminNavIcon = (typeof adminNavIcons)[number];
|
|
4
4
|
type AdminNavItem = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type AdminRole = 'admin' | 'editor' | 'client';
|
|
1
|
+
type AdminRole = 'admin' | 'developer' | 'editor' | 'client';
|
|
2
2
|
declare const adminNavIcons: readonly ["dashboard", "pages", "forms", "globals", "media", "tools", "account", "analytics"];
|
|
3
3
|
type AdminNavIcon = (typeof adminNavIcons)[number];
|
|
4
4
|
type AdminNavItem = {
|
package/package.json
CHANGED