@orion-studios/payload-studio 0.3.0-beta.0 → 0.3.0-beta.2

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.
@@ -2159,7 +2159,7 @@ function AdminStudioDashboard() {
2159
2159
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { fontWeight: 900 }, children: "Pages" }),
2160
2160
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { color: "var(--theme-elevation-600)", marginTop: "0.25rem" }, children: "Edit your site pages with the custom editor." })
2161
2161
  ] }),
2162
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("a", { href: "/admin/globals", style: cardStyle, children: [
2162
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("a", { href: "/admin/studio-globals", style: cardStyle, children: [
2163
2163
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { fontWeight: 900 }, children: "Globals" }),
2164
2164
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { color: "var(--theme-elevation-600)", marginTop: "0.25rem" }, children: "Site settings, header, footer." })
2165
2165
  ] }),
@@ -2196,6 +2196,7 @@ var getPropString = (props, key, fallback) => {
2196
2196
  function AdminStudioNav(props) {
2197
2197
  const { user } = (0, import_ui3.useAuth)();
2198
2198
  const brandName = getPropString(props, "brandName", "Orion Studio");
2199
+ const globalsBasePath = getPropString(props, "globalsBasePath", "/admin/studio-globals");
2199
2200
  const [pathname, setPathname] = (0, import_react10.useState)("");
2200
2201
  (0, import_react10.useEffect)(() => {
2201
2202
  const update = () => setPathname(window.location.pathname);
@@ -2211,7 +2212,7 @@ function AdminStudioNav(props) {
2211
2212
  label: "Pages",
2212
2213
  matchPrefixes: ["/admin/pages", "/admin/collections/pages"]
2213
2214
  },
2214
- { href: "/admin/globals", label: "Globals", matchPrefixes: ["/admin/globals"] },
2215
+ { href: globalsBasePath, label: "Globals", matchPrefixes: [globalsBasePath, "/admin/globals"] },
2215
2216
  {
2216
2217
  href: "/admin/media",
2217
2218
  label: "Media",
@@ -2224,7 +2225,7 @@ function AdminStudioNav(props) {
2224
2225
  adminOnly: true
2225
2226
  }
2226
2227
  ],
2227
- []
2228
+ [globalsBasePath]
2228
2229
  );
2229
2230
  const linkStyle = (active) => ({
2230
2231
  background: active ? "var(--theme-elevation-100)" : "transparent",
@@ -2247,7 +2248,7 @@ function AdminStudioNav(props) {
2247
2248
  padding: "1rem 0.85rem"
2248
2249
  },
2249
2250
  children: [
2250
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { padding: "0 0.35rem" }, children: [
2251
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "admin-studio-brand", style: { padding: "0 0.35rem" }, children: [
2251
2252
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { fontSize: "1.05rem", fontWeight: 900, letterSpacing: "-0.01em" }, children: brandName }),
2252
2253
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { color: "var(--theme-elevation-600)", fontSize: "0.85rem" }, children: "Studio" })
2253
2254
  ] }),
@@ -2489,14 +2490,20 @@ function AdminStudioPageEditView(props) {
2489
2490
  const iframeRef = (0, import_react12.useRef)(null);
2490
2491
  const [saving, setSaving] = (0, import_react12.useState)(null);
2491
2492
  const builderBasePath = getPropString3(props, "builderBasePath", "/builder");
2492
- const pageID = (0, import_react12.useMemo)(() => {
2493
- const fromProps = getParam(props.params, "id");
2494
- if (fromProps) return fromProps;
2493
+ const pageIDFromParams = (0, import_react12.useMemo)(() => getParam(props.params, "id"), [props.params]);
2494
+ const [pageID, setPageID] = (0, import_react12.useState)(pageIDFromParams);
2495
+ const [didResolvePathFallback, setDidResolvePathFallback] = (0, import_react12.useState)(false);
2496
+ (0, import_react12.useEffect)(() => {
2497
+ if (pageIDFromParams) {
2498
+ setPageID(pageIDFromParams);
2499
+ setDidResolvePathFallback(true);
2500
+ return;
2501
+ }
2495
2502
  if (typeof window !== "undefined") {
2496
- return getPageIDFromPathname(window.location.pathname);
2503
+ setPageID(getPageIDFromPathname(window.location.pathname));
2497
2504
  }
2498
- return null;
2499
- }, [props.params]);
2505
+ setDidResolvePathFallback(true);
2506
+ }, [pageIDFromParams]);
2500
2507
  const canPublish = isAdmin3(user) || isEditor(user);
2501
2508
  const requestSave = (status) => {
2502
2509
  const iframe = iframeRef.current;
@@ -2523,6 +2530,12 @@ function AdminStudioPageEditView(props) {
2523
2530
  window.addEventListener("message", onMessage);
2524
2531
  return () => window.removeEventListener("message", onMessage);
2525
2532
  }, []);
2533
+ if (!pageID && !didResolvePathFallback) {
2534
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { padding: "1.2rem" }, children: [
2535
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h1", { style: { margin: 0 }, children: "Page Editor" }),
2536
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { color: "var(--theme-elevation-600)" }, children: "Loading page editor..." })
2537
+ ] });
2538
+ }
2526
2539
  if (!pageID) {
2527
2540
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { padding: "1.2rem" }, children: [
2528
2541
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h1", { style: { margin: 0 }, children: "Page Editor" }),
@@ -2629,7 +2642,19 @@ var getPropGlobals = (props) => {
2629
2642
  }
2630
2643
  return null;
2631
2644
  };
2645
+ var getPropString4 = (props, key, fallback) => {
2646
+ if (!props || typeof props !== "object") return fallback;
2647
+ const direct = props[key];
2648
+ if (typeof direct === "string" && direct.length > 0) return direct;
2649
+ const clientProps = props.clientProps;
2650
+ if (clientProps && typeof clientProps === "object") {
2651
+ const nested = clientProps[key];
2652
+ if (typeof nested === "string" && nested.length > 0) return nested;
2653
+ }
2654
+ return fallback;
2655
+ };
2632
2656
  function AdminStudioGlobalsView(props) {
2657
+ const globalsBasePath = getPropString4(props, "globalsBasePath", "/admin/studio-globals");
2633
2658
  const globals = getPropGlobals(props) || [
2634
2659
  { slug: "site-settings", label: "Website Settings" },
2635
2660
  { slug: "header", label: "Header & Navigation" },
@@ -2659,13 +2684,21 @@ function AdminStudioGlobalsView(props) {
2659
2684
  ]
2660
2685
  },
2661
2686
  global.slug
2662
- )) })
2687
+ )) }),
2688
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { marginTop: "1rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2689
+ "a",
2690
+ {
2691
+ href: globalsBasePath,
2692
+ style: { color: "var(--theme-elevation-700)", fontSize: "0.85rem", textDecoration: "none" },
2693
+ children: "Reload Globals view"
2694
+ }
2695
+ ) })
2663
2696
  ] });
2664
2697
  }
2665
2698
 
2666
2699
  // src/admin/components/studio/AdminStudioMediaView.tsx
2667
2700
  var import_jsx_runtime19 = require("react/jsx-runtime");
2668
- var getPropString4 = (props, key, fallback) => {
2701
+ var getPropString5 = (props, key, fallback) => {
2669
2702
  if (!props || typeof props !== "object") return fallback;
2670
2703
  const direct = props[key];
2671
2704
  if (typeof direct === "string" && direct.length > 0) return direct;
@@ -2677,7 +2710,7 @@ var getPropString4 = (props, key, fallback) => {
2677
2710
  return fallback;
2678
2711
  };
2679
2712
  function AdminStudioMediaView(props) {
2680
- const mediaCollectionSlug = getPropString4(props, "mediaCollectionSlug", "media");
2713
+ const mediaCollectionSlug = getPropString5(props, "mediaCollectionSlug", "media");
2681
2714
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { style: { padding: "1.2rem 1.2rem 2.5rem" }, children: [
2682
2715
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h1", { style: { margin: 0 }, children: "Media" }),
2683
2716
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { style: { color: "var(--theme-elevation-600)", marginTop: "0.35rem" }, children: "Media management is currently using Payload\u2019s library." }),
@@ -2713,7 +2746,7 @@ var isAdmin4 = (user) => {
2713
2746
  const role = user.role;
2714
2747
  return typeof role === "string" && role === "admin";
2715
2748
  };
2716
- var getPropString5 = (props, key, fallback) => {
2749
+ var getPropString6 = (props, key, fallback) => {
2717
2750
  if (!props || typeof props !== "object") return fallback;
2718
2751
  const direct = props[key];
2719
2752
  if (typeof direct === "string" && direct.length > 0) return direct;
@@ -2732,8 +2765,8 @@ function AdminStudioToolsView(props) {
2732
2765
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { style: { color: "var(--theme-elevation-600)" }, children: "You do not have access to this page." })
2733
2766
  ] });
2734
2767
  }
2735
- const pagesCollectionSlug = getPropString5(props, "pagesCollectionSlug", "pages");
2736
- const mediaCollectionSlug = getPropString5(props, "mediaCollectionSlug", "media");
2768
+ const pagesCollectionSlug = getPropString6(props, "pagesCollectionSlug", "pages");
2769
+ const mediaCollectionSlug = getPropString6(props, "mediaCollectionSlug", "media");
2737
2770
  const links = [
2738
2771
  { href: `/admin/collections/${pagesCollectionSlug}`, label: "Raw Pages Collection" },
2739
2772
  { href: `/admin/collections/${mediaCollectionSlug}`, label: "Raw Media Collection" },
@@ -979,7 +979,7 @@ function AdminStudioDashboard() {
979
979
  /* @__PURE__ */ jsx10("div", { style: { fontWeight: 900 }, children: "Pages" }),
980
980
  /* @__PURE__ */ jsx10("div", { style: { color: "var(--theme-elevation-600)", marginTop: "0.25rem" }, children: "Edit your site pages with the custom editor." })
981
981
  ] }),
982
- /* @__PURE__ */ jsxs9("a", { href: "/admin/globals", style: cardStyle, children: [
982
+ /* @__PURE__ */ jsxs9("a", { href: "/admin/studio-globals", style: cardStyle, children: [
983
983
  /* @__PURE__ */ jsx10("div", { style: { fontWeight: 900 }, children: "Globals" }),
984
984
  /* @__PURE__ */ jsx10("div", { style: { color: "var(--theme-elevation-600)", marginTop: "0.25rem" }, children: "Site settings, header, footer." })
985
985
  ] }),
@@ -1016,6 +1016,7 @@ var getPropString = (props, key, fallback) => {
1016
1016
  function AdminStudioNav(props) {
1017
1017
  const { user } = useAuth();
1018
1018
  const brandName = getPropString(props, "brandName", "Orion Studio");
1019
+ const globalsBasePath = getPropString(props, "globalsBasePath", "/admin/studio-globals");
1019
1020
  const [pathname, setPathname] = useState4("");
1020
1021
  useEffect5(() => {
1021
1022
  const update = () => setPathname(window.location.pathname);
@@ -1031,7 +1032,7 @@ function AdminStudioNav(props) {
1031
1032
  label: "Pages",
1032
1033
  matchPrefixes: ["/admin/pages", "/admin/collections/pages"]
1033
1034
  },
1034
- { href: "/admin/globals", label: "Globals", matchPrefixes: ["/admin/globals"] },
1035
+ { href: globalsBasePath, label: "Globals", matchPrefixes: [globalsBasePath, "/admin/globals"] },
1035
1036
  {
1036
1037
  href: "/admin/media",
1037
1038
  label: "Media",
@@ -1044,7 +1045,7 @@ function AdminStudioNav(props) {
1044
1045
  adminOnly: true
1045
1046
  }
1046
1047
  ],
1047
- []
1048
+ [globalsBasePath]
1048
1049
  );
1049
1050
  const linkStyle = (active) => ({
1050
1051
  background: active ? "var(--theme-elevation-100)" : "transparent",
@@ -1067,7 +1068,7 @@ function AdminStudioNav(props) {
1067
1068
  padding: "1rem 0.85rem"
1068
1069
  },
1069
1070
  children: [
1070
- /* @__PURE__ */ jsxs10("div", { style: { padding: "0 0.35rem" }, children: [
1071
+ /* @__PURE__ */ jsxs10("div", { className: "admin-studio-brand", style: { padding: "0 0.35rem" }, children: [
1071
1072
  /* @__PURE__ */ jsx11("div", { style: { fontSize: "1.05rem", fontWeight: 900, letterSpacing: "-0.01em" }, children: brandName }),
1072
1073
  /* @__PURE__ */ jsx11("div", { style: { color: "var(--theme-elevation-600)", fontSize: "0.85rem" }, children: "Studio" })
1073
1074
  ] }),
@@ -1309,14 +1310,20 @@ function AdminStudioPageEditView(props) {
1309
1310
  const iframeRef = useRef3(null);
1310
1311
  const [saving, setSaving] = useState6(null);
1311
1312
  const builderBasePath = getPropString3(props, "builderBasePath", "/builder");
1312
- const pageID = useMemo3(() => {
1313
- const fromProps = getParam(props.params, "id");
1314
- if (fromProps) return fromProps;
1313
+ const pageIDFromParams = useMemo3(() => getParam(props.params, "id"), [props.params]);
1314
+ const [pageID, setPageID] = useState6(pageIDFromParams);
1315
+ const [didResolvePathFallback, setDidResolvePathFallback] = useState6(false);
1316
+ useEffect7(() => {
1317
+ if (pageIDFromParams) {
1318
+ setPageID(pageIDFromParams);
1319
+ setDidResolvePathFallback(true);
1320
+ return;
1321
+ }
1315
1322
  if (typeof window !== "undefined") {
1316
- return getPageIDFromPathname(window.location.pathname);
1323
+ setPageID(getPageIDFromPathname(window.location.pathname));
1317
1324
  }
1318
- return null;
1319
- }, [props.params]);
1325
+ setDidResolvePathFallback(true);
1326
+ }, [pageIDFromParams]);
1320
1327
  const canPublish = isAdmin3(user) || isEditor(user);
1321
1328
  const requestSave = (status) => {
1322
1329
  const iframe = iframeRef.current;
@@ -1343,6 +1350,12 @@ function AdminStudioPageEditView(props) {
1343
1350
  window.addEventListener("message", onMessage);
1344
1351
  return () => window.removeEventListener("message", onMessage);
1345
1352
  }, []);
1353
+ if (!pageID && !didResolvePathFallback) {
1354
+ return /* @__PURE__ */ jsxs12("div", { style: { padding: "1.2rem" }, children: [
1355
+ /* @__PURE__ */ jsx13("h1", { style: { margin: 0 }, children: "Page Editor" }),
1356
+ /* @__PURE__ */ jsx13("p", { style: { color: "var(--theme-elevation-600)" }, children: "Loading page editor..." })
1357
+ ] });
1358
+ }
1346
1359
  if (!pageID) {
1347
1360
  return /* @__PURE__ */ jsxs12("div", { style: { padding: "1.2rem" }, children: [
1348
1361
  /* @__PURE__ */ jsx13("h1", { style: { margin: 0 }, children: "Page Editor" }),
@@ -1449,7 +1462,19 @@ var getPropGlobals = (props) => {
1449
1462
  }
1450
1463
  return null;
1451
1464
  };
1465
+ var getPropString4 = (props, key, fallback) => {
1466
+ if (!props || typeof props !== "object") return fallback;
1467
+ const direct = props[key];
1468
+ if (typeof direct === "string" && direct.length > 0) return direct;
1469
+ const clientProps = props.clientProps;
1470
+ if (clientProps && typeof clientProps === "object") {
1471
+ const nested = clientProps[key];
1472
+ if (typeof nested === "string" && nested.length > 0) return nested;
1473
+ }
1474
+ return fallback;
1475
+ };
1452
1476
  function AdminStudioGlobalsView(props) {
1477
+ const globalsBasePath = getPropString4(props, "globalsBasePath", "/admin/studio-globals");
1453
1478
  const globals = getPropGlobals(props) || [
1454
1479
  { slug: "site-settings", label: "Website Settings" },
1455
1480
  { slug: "header", label: "Header & Navigation" },
@@ -1479,13 +1504,21 @@ function AdminStudioGlobalsView(props) {
1479
1504
  ]
1480
1505
  },
1481
1506
  global.slug
1482
- )) })
1507
+ )) }),
1508
+ /* @__PURE__ */ jsx14("div", { style: { marginTop: "1rem" }, children: /* @__PURE__ */ jsx14(
1509
+ "a",
1510
+ {
1511
+ href: globalsBasePath,
1512
+ style: { color: "var(--theme-elevation-700)", fontSize: "0.85rem", textDecoration: "none" },
1513
+ children: "Reload Globals view"
1514
+ }
1515
+ ) })
1483
1516
  ] });
1484
1517
  }
1485
1518
 
1486
1519
  // src/admin/components/studio/AdminStudioMediaView.tsx
1487
1520
  import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
1488
- var getPropString4 = (props, key, fallback) => {
1521
+ var getPropString5 = (props, key, fallback) => {
1489
1522
  if (!props || typeof props !== "object") return fallback;
1490
1523
  const direct = props[key];
1491
1524
  if (typeof direct === "string" && direct.length > 0) return direct;
@@ -1497,7 +1530,7 @@ var getPropString4 = (props, key, fallback) => {
1497
1530
  return fallback;
1498
1531
  };
1499
1532
  function AdminStudioMediaView(props) {
1500
- const mediaCollectionSlug = getPropString4(props, "mediaCollectionSlug", "media");
1533
+ const mediaCollectionSlug = getPropString5(props, "mediaCollectionSlug", "media");
1501
1534
  return /* @__PURE__ */ jsxs14("div", { style: { padding: "1.2rem 1.2rem 2.5rem" }, children: [
1502
1535
  /* @__PURE__ */ jsx15("h1", { style: { margin: 0 }, children: "Media" }),
1503
1536
  /* @__PURE__ */ jsx15("p", { style: { color: "var(--theme-elevation-600)", marginTop: "0.35rem" }, children: "Media management is currently using Payload\u2019s library." }),
@@ -1533,7 +1566,7 @@ var isAdmin4 = (user) => {
1533
1566
  const role = user.role;
1534
1567
  return typeof role === "string" && role === "admin";
1535
1568
  };
1536
- var getPropString5 = (props, key, fallback) => {
1569
+ var getPropString6 = (props, key, fallback) => {
1537
1570
  if (!props || typeof props !== "object") return fallback;
1538
1571
  const direct = props[key];
1539
1572
  if (typeof direct === "string" && direct.length > 0) return direct;
@@ -1552,8 +1585,8 @@ function AdminStudioToolsView(props) {
1552
1585
  /* @__PURE__ */ jsx16("p", { style: { color: "var(--theme-elevation-600)" }, children: "You do not have access to this page." })
1553
1586
  ] });
1554
1587
  }
1555
- const pagesCollectionSlug = getPropString5(props, "pagesCollectionSlug", "pages");
1556
- const mediaCollectionSlug = getPropString5(props, "mediaCollectionSlug", "media");
1588
+ const pagesCollectionSlug = getPropString6(props, "pagesCollectionSlug", "pages");
1589
+ const mediaCollectionSlug = getPropString6(props, "mediaCollectionSlug", "media");
1557
1590
  const links = [
1558
1591
  { href: `/admin/collections/${pagesCollectionSlug}`, label: "Raw Pages Collection" },
1559
1592
  { href: `/admin/collections/${mediaCollectionSlug}`, label: "Raw Media Collection" },
@@ -1,2 +1,2 @@
1
- export { A as AdminConfig, c as configureAdmin, a as createThemePreferenceField, t as themePreferenceField, w as withTooltips } from '../index-BgQSKQKb.mjs';
1
+ export { A as AdminConfig, c as configureAdmin, a as createThemePreferenceField, t as themePreferenceField, w as withTooltips } from '../index-C5LUBJWe.mjs';
2
2
  import 'payload';
@@ -1,2 +1,2 @@
1
- export { A as AdminConfig, c as configureAdmin, a as createThemePreferenceField, t as themePreferenceField, w as withTooltips } from '../index-BgQSKQKb.js';
1
+ export { A as AdminConfig, c as configureAdmin, a as createThemePreferenceField, t as themePreferenceField, w as withTooltips } from '../index-C5LUBJWe.js';
2
2
  import 'payload';
@@ -122,7 +122,8 @@ function configureAdmin(config) {
122
122
  exportName: "AdminStudioNav",
123
123
  path: clientPath,
124
124
  clientProps: {
125
- brandName
125
+ brandName,
126
+ globalsBasePath: "/admin/studio-globals"
126
127
  }
127
128
  }
128
129
  } : {},
@@ -140,7 +141,10 @@ function configureAdmin(config) {
140
141
  dashboard: {
141
142
  Component: {
142
143
  exportName: studioEnabled ? "AdminStudioDashboard" : "Dashboard",
143
- path: clientPath
144
+ path: clientPath,
145
+ clientProps: {
146
+ globalsBasePath: "/admin/studio-globals"
147
+ }
144
148
  }
145
149
  },
146
150
  ...studioEnabled ? {
@@ -165,12 +169,13 @@ function configureAdmin(config) {
165
169
  }
166
170
  },
167
171
  studioGlobals: {
168
- path: "/globals",
172
+ path: "/studio-globals",
169
173
  Component: {
170
174
  exportName: "AdminStudioGlobalsView",
171
175
  path: clientPath,
172
176
  clientProps: {
173
- globals
177
+ globals,
178
+ globalsBasePath: "/admin/studio-globals"
174
179
  }
175
180
  }
176
181
  },
@@ -3,7 +3,7 @@ import {
3
3
  createThemePreferenceField,
4
4
  themePreferenceField,
5
5
  withTooltips
6
- } from "../chunk-BVN5HKTM.mjs";
6
+ } from "../chunk-NJWZOW5E.mjs";
7
7
  import "../chunk-6BWS3CLP.mjs";
8
8
  export {
9
9
  configureAdmin,
package/dist/admin.css CHANGED
@@ -325,3 +325,44 @@ html {
325
325
  transform: translateY(0);
326
326
  }
327
327
  }
328
+
329
+ /* ============================================================
330
+ Orion Studio Sidebar Guardrails
331
+ Keep sidebar visible on all admin routes and remove toggle overlap.
332
+ ============================================================ */
333
+
334
+ /* Hide all nav toggle controls and wrappers so nothing overlaps branding */
335
+ .template-default__nav-toggler-wrapper,
336
+ .template-default__nav-toggler-container,
337
+ .template-default__nav-toggler,
338
+ .nav-toggler,
339
+ button[aria-label*='menu' i],
340
+ button[aria-label*='sidebar' i] {
341
+ display: none !important;
342
+ }
343
+
344
+ /* Force default template to always reserve space for nav */
345
+ .template-default,
346
+ .template-default.template-default--nav-hydrated,
347
+ .template-default.template-default--nav-open,
348
+ .template-default.template-default--nav-hydrated.template-default--nav-open {
349
+ grid-template-columns: var(--nav-width) auto !important;
350
+ }
351
+
352
+ /* Ensure nav is rendered and visible regardless navOpen state */
353
+ .template-default .nav,
354
+ .template-default .nav--nav-open,
355
+ .template-default .nav--nav-hydrated {
356
+ display: unset !important;
357
+ opacity: 1 !important;
358
+ }
359
+
360
+ /* Keep main content width stable once toggler wrapper is removed */
361
+ .template-default .template-default__wrap {
362
+ min-width: 0 !important;
363
+ }
364
+
365
+ /* Remove old compensating left offset on custom brand text */
366
+ .admin-studio-brand {
367
+ padding-left: 0 !important;
368
+ }
@@ -96,7 +96,8 @@ function configureAdmin(config) {
96
96
  exportName: "AdminStudioNav",
97
97
  path: clientPath,
98
98
  clientProps: {
99
- brandName
99
+ brandName,
100
+ globalsBasePath: "/admin/studio-globals"
100
101
  }
101
102
  }
102
103
  } : {},
@@ -114,7 +115,10 @@ function configureAdmin(config) {
114
115
  dashboard: {
115
116
  Component: {
116
117
  exportName: studioEnabled ? "AdminStudioDashboard" : "Dashboard",
117
- path: clientPath
118
+ path: clientPath,
119
+ clientProps: {
120
+ globalsBasePath: "/admin/studio-globals"
121
+ }
118
122
  }
119
123
  },
120
124
  ...studioEnabled ? {
@@ -139,12 +143,13 @@ function configureAdmin(config) {
139
143
  }
140
144
  },
141
145
  studioGlobals: {
142
- path: "/globals",
146
+ path: "/studio-globals",
143
147
  Component: {
144
148
  exportName: "AdminStudioGlobalsView",
145
149
  path: clientPath,
146
150
  clientProps: {
147
- globals
151
+ globals,
152
+ globalsBasePath: "/admin/studio-globals"
148
153
  }
149
154
  }
150
155
  },
@@ -64,12 +64,13 @@ declare function configureAdmin(config: AdminConfig): {
64
64
  };
65
65
  } | undefined;
66
66
  studioGlobals?: {
67
- path: "/globals";
67
+ path: "/studio-globals";
68
68
  Component: {
69
69
  exportName: string;
70
70
  path: string;
71
71
  clientProps: {
72
72
  globals: StudioGlobalLink[];
73
+ globalsBasePath: string;
73
74
  };
74
75
  };
75
76
  } | undefined;
@@ -98,6 +99,9 @@ declare function configureAdmin(config: AdminConfig): {
98
99
  Component: {
99
100
  exportName: string;
100
101
  path: string;
102
+ clientProps: {
103
+ globalsBasePath: string;
104
+ };
101
105
  };
102
106
  };
103
107
  };
@@ -120,6 +124,7 @@ declare function configureAdmin(config: AdminConfig): {
120
124
  path: string;
121
125
  clientProps: {
122
126
  brandName: string;
127
+ globalsBasePath: string;
123
128
  };
124
129
  } | undefined;
125
130
  };
@@ -64,12 +64,13 @@ declare function configureAdmin(config: AdminConfig): {
64
64
  };
65
65
  } | undefined;
66
66
  studioGlobals?: {
67
- path: "/globals";
67
+ path: "/studio-globals";
68
68
  Component: {
69
69
  exportName: string;
70
70
  path: string;
71
71
  clientProps: {
72
72
  globals: StudioGlobalLink[];
73
+ globalsBasePath: string;
73
74
  };
74
75
  };
75
76
  } | undefined;
@@ -98,6 +99,9 @@ declare function configureAdmin(config: AdminConfig): {
98
99
  Component: {
99
100
  exportName: string;
100
101
  path: string;
102
+ clientProps: {
103
+ globalsBasePath: string;
104
+ };
101
105
  };
102
106
  };
103
107
  };
@@ -120,6 +124,7 @@ declare function configureAdmin(config: AdminConfig): {
120
124
  path: string;
121
125
  clientProps: {
122
126
  brandName: string;
127
+ globalsBasePath: string;
123
128
  };
124
129
  } | undefined;
125
130
  };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { i as admin } from './index-BgQSKQKb.mjs';
1
+ export { i as admin } from './index-C5LUBJWe.mjs';
2
2
  export { i as blocks } from './index-B-5K41Km.mjs';
3
3
  export { i as nextjs } from './index-CITGmLG_.mjs';
4
4
  export { i as studio } from './index-FA2Ep5rj.mjs';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { i as admin } from './index-BgQSKQKb.js';
1
+ export { i as admin } from './index-C5LUBJWe.js';
2
2
  export { i as blocks } from './index-B-5K41Km.js';
3
3
  export { i as nextjs } from './index-CITGmLG_.js';
4
4
  export { i as studio } from './index-FA2Ep5rj.js';
package/dist/index.js CHANGED
@@ -132,7 +132,8 @@ function configureAdmin(config) {
132
132
  exportName: "AdminStudioNav",
133
133
  path: clientPath,
134
134
  clientProps: {
135
- brandName
135
+ brandName,
136
+ globalsBasePath: "/admin/studio-globals"
136
137
  }
137
138
  }
138
139
  } : {},
@@ -150,7 +151,10 @@ function configureAdmin(config) {
150
151
  dashboard: {
151
152
  Component: {
152
153
  exportName: studioEnabled ? "AdminStudioDashboard" : "Dashboard",
153
- path: clientPath
154
+ path: clientPath,
155
+ clientProps: {
156
+ globalsBasePath: "/admin/studio-globals"
157
+ }
154
158
  }
155
159
  },
156
160
  ...studioEnabled ? {
@@ -175,12 +179,13 @@ function configureAdmin(config) {
175
179
  }
176
180
  },
177
181
  studioGlobals: {
178
- path: "/globals",
182
+ path: "/studio-globals",
179
183
  Component: {
180
184
  exportName: "AdminStudioGlobalsView",
181
185
  path: clientPath,
182
186
  clientProps: {
183
- globals
187
+ globals,
188
+ globalsBasePath: "/admin/studio-globals"
184
189
  }
185
190
  }
186
191
  },
package/dist/index.mjs CHANGED
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  admin_exports
3
- } from "./chunk-BVN5HKTM.mjs";
3
+ } from "./chunk-NJWZOW5E.mjs";
4
+ import {
5
+ blocks_exports
6
+ } from "./chunk-L62FYT57.mjs";
7
+ import {
8
+ studio_pages_exports
9
+ } from "./chunk-Q76U4Z53.mjs";
4
10
  import {
5
11
  nextjs_exports
6
12
  } from "./chunk-ZLLNO5FM.mjs";
7
13
  import {
8
14
  studio_exports
9
15
  } from "./chunk-WLXZDMK3.mjs";
10
- import {
11
- studio_pages_exports
12
- } from "./chunk-Q76U4Z53.mjs";
13
- import {
14
- blocks_exports
15
- } from "./chunk-L62FYT57.mjs";
16
16
  import "./chunk-6BWS3CLP.mjs";
17
17
  export {
18
18
  admin_exports as admin,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-studios/payload-studio",
3
- "version": "0.3.0-beta.0",
3
+ "version": "0.3.0-beta.2",
4
4
  "description": "Unified Payload CMS toolkit for Orion Studios",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {