@orion-studios/payload-studio 0.5.0-beta.99 → 0.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +58 -68
  2. package/dist/admin/client.d.mts +5 -0
  3. package/dist/admin/client.d.ts +5 -0
  4. package/dist/admin/client.js +4440 -806
  5. package/dist/admin/client.mjs +3279 -785
  6. package/dist/admin/index.d.mts +2 -1
  7. package/dist/admin/index.d.ts +2 -1
  8. package/dist/admin/index.js +380 -55
  9. package/dist/admin/index.mjs +2 -1
  10. package/dist/admin-app/client.d.mts +1 -0
  11. package/dist/admin-app/client.d.ts +1 -0
  12. package/dist/admin-app/client.js +285 -109
  13. package/dist/admin-app/client.mjs +59 -871
  14. package/dist/admin-app/index.d.mts +2 -1
  15. package/dist/admin-app/index.d.ts +2 -1
  16. package/dist/admin-app/index.mjs +5 -3
  17. package/dist/admin-app/styles.css +1708 -56
  18. package/dist/admin.css +158 -35
  19. package/dist/blocks/index.js +415 -200
  20. package/dist/blocks/index.mjs +2 -2
  21. package/dist/{chunk-XK3K5GRP.mjs → chunk-JQAHXYAM.mjs} +271 -67
  22. package/dist/chunk-KPIX7OSV.mjs +1051 -0
  23. package/dist/chunk-OQSEJXC4.mjs +166 -0
  24. package/dist/{chunk-XHWQJUX5.mjs → chunk-OTHERBGX.mjs} +3 -3
  25. package/dist/chunk-PF3EBZXF.mjs +326 -0
  26. package/dist/{chunk-74XFAVXU.mjs → chunk-Q2HGC67S.mjs} +371 -55
  27. package/dist/{chunk-XVH5SCBD.mjs → chunk-RKTIFEUY.mjs} +4 -19
  28. package/dist/chunk-W2UOCJDX.mjs +32 -0
  29. package/dist/{chunk-C4J35SPJ.mjs → chunk-XKUTZ7IU.mjs} +257 -452
  30. package/dist/{index-ZbOx4OCF.d.mts → index-52HdVLQq.d.ts} +12 -22
  31. package/dist/index-BMitiKK8.d.ts +435 -0
  32. package/dist/index-Crx_MtPw.d.ts +223 -0
  33. package/dist/index-Cv-6qnrw.d.mts +223 -0
  34. package/dist/{index-ZbOx4OCF.d.ts → index-DEQC3Dwj.d.mts} +12 -22
  35. package/dist/{index-BIwu3qIH.d.mts → index-DWmudwDm.d.mts} +2 -1
  36. package/dist/{index-BIwu3qIH.d.ts → index-DWmudwDm.d.ts} +2 -1
  37. package/dist/index-D_b24Gef.d.mts +435 -0
  38. package/dist/index.d.mts +5 -4
  39. package/dist/index.d.ts +5 -4
  40. package/dist/index.js +1855 -1205
  41. package/dist/index.mjs +10 -8
  42. package/dist/nextjs/index.js +5 -684
  43. package/dist/nextjs/index.mjs +2 -3
  44. package/dist/sitePreviewTypes-BkHCWxNW.d.mts +58 -0
  45. package/dist/sitePreviewTypes-BkHCWxNW.d.ts +58 -0
  46. package/dist/studio/index.d.mts +1 -1
  47. package/dist/studio/index.d.ts +1 -1
  48. package/dist/studio-pages/builder.css +125 -83
  49. package/dist/studio-pages/client.d.mts +58 -1
  50. package/dist/studio-pages/client.d.ts +58 -1
  51. package/dist/studio-pages/client.js +450 -241
  52. package/dist/studio-pages/client.mjs +455 -247
  53. package/dist/studio-pages/index.d.mts +3 -2
  54. package/dist/studio-pages/index.d.ts +3 -2
  55. package/dist/studio-pages/index.js +418 -183
  56. package/dist/studio-pages/index.mjs +15 -6
  57. package/package.json +10 -4
  58. package/dist/chunk-SIL2J5MF.mjs +0 -155
  59. package/dist/index-BnoqmQDP.d.mts +0 -219
  60. package/dist/index-CTpik6fR.d.ts +0 -219
  61. package/dist/index-R7hA134j.d.mts +0 -140
  62. package/dist/index-vjrjy0P4.d.ts +0 -140
@@ -27,7 +27,9 @@ __export(client_exports, {
27
27
  MediaDetailPanel: () => MediaDetailPanel,
28
28
  MediaListItem: () => MediaListItem,
29
29
  MediaUploadForm: () => MediaUploadForm,
30
- PageEditorFrame: () => PageEditorFrame
30
+ PageEditorFrame: () => PageEditorFrame,
31
+ SiteFooterPreview: () => SiteFooterPreview,
32
+ SiteHeaderPreview: () => SiteHeaderPreview
31
33
  });
32
34
  module.exports = __toCommonJS(client_exports);
33
35
 
@@ -72,6 +74,14 @@ function NavIcon({ name }) {
72
74
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "8", y1: "13", x2: "16", y2: "13" }),
73
75
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "8", y1: "17", x2: "12", y2: "17" })
74
76
  ] });
77
+ case "forms":
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { ...props, children: [
79
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M9 3h6" }),
80
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 3v18" }),
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M5 7h14a2 2 0 0 1 2 2v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a2 2 0 0 1 2-2Z" }),
82
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M7 11h10" }),
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M7 15h6" })
84
+ ] });
75
85
  case "globals":
76
86
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { ...props, children: [
77
87
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "12", r: "3" }),
@@ -85,6 +95,13 @@ function NavIcon({ name }) {
85
95
  ] });
86
96
  case "tools":
87
97
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76Z" }) });
98
+ case "analytics":
99
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { ...props, children: [
100
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M4 19V5" }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M10 19V10" }),
102
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M16 19v-6" }),
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M22 19V3" })
104
+ ] });
88
105
  case "account":
89
106
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { ...props, children: [
90
107
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }),
@@ -485,14 +502,175 @@ var buildNestedNavTree = (items) => {
485
502
  return { childrenByParent, topLevel };
486
503
  };
487
504
 
488
- // src/admin-app/components/HeaderNavEditorWithPreview.tsx
505
+ // src/admin-app/components/SitePreview.tsx
489
506
  var import_jsx_runtime3 = require("react/jsx-runtime");
507
+ var fallbackHeaderNav = [{ href: "/", label: "Home" }];
508
+ var socialGlyphByPlatform = {
509
+ facebook: "f",
510
+ instagram: "ig",
511
+ linkedin: "in",
512
+ pinterest: "p",
513
+ snapchat: "sc",
514
+ tiktok: "tt",
515
+ x: "x",
516
+ youtube: "yt"
517
+ };
518
+ var getInitials = (value) => {
519
+ const initials = value.trim().split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() || "").join("");
520
+ return initials || "OS";
521
+ };
522
+ var getSocialGlyph = (platform) => {
523
+ const normalized = platform.trim().toLowerCase();
524
+ return socialGlyphByPlatform[normalized] || normalized.slice(0, 2).toUpperCase() || "\u2022";
525
+ };
526
+ var getTaglineLines = (tagline) => {
527
+ const parts = (tagline || "").split(".").map((part) => part.trim()).filter(Boolean);
528
+ const first = parts[0] ? `${parts[0]}.` : "Warm Gifts.";
529
+ const second = parts[1] ? `${parts[1]}.` : "Local Heart.";
530
+ return [first, second];
531
+ };
532
+ function PreviewSocialLinks({
533
+ links,
534
+ variant
535
+ }) {
536
+ if (links.length === 0) {
537
+ return null;
538
+ }
539
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
540
+ "div",
541
+ {
542
+ className: variant === "header" ? "orion-admin-site-preview-social-list" : "orion-admin-site-preview-social-list orion-admin-site-preview-social-list--footer",
543
+ children: links.map((item) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
544
+ "a",
545
+ {
546
+ className: variant === "header" ? "orion-admin-site-preview-social-badge" : "orion-admin-site-preview-social-badge orion-admin-site-preview-social-badge--footer",
547
+ href: item.url,
548
+ tabIndex: -1,
549
+ children: getSocialGlyph(item.platform)
550
+ },
551
+ `${item.platform}-${item.url}`
552
+ ))
553
+ }
554
+ );
555
+ }
556
+ function PreviewLogo({
557
+ className,
558
+ logoUrl,
559
+ siteName
560
+ }) {
561
+ if (logoUrl && logoUrl.trim().length > 0) {
562
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("img", { alt: `${siteName} logo`, className, src: logoUrl });
563
+ }
564
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${className} orion-admin-site-preview-logo-fallback`, children: getInitials(siteName) });
565
+ }
566
+ function SiteHeaderPreview({ site }) {
567
+ const navItems = site.navItems.length > 0 ? site.navItems : fallbackHeaderNav;
568
+ const [taglineLineOne, taglineLineTwo] = getTaglineLines(site.tagline);
569
+ const socialLinks = site.socialLinks?.slice(0, 4) || [];
570
+ const activePath = site.activePath || navItems[0]?.href || "/";
571
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { "aria-hidden": "true", className: "orion-admin-site-preview orion-admin-site-preview--header", children: [
572
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "orion-admin-site-preview-header-bar", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-shell orion-admin-site-preview-shell--utility", children: [
573
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-utility-copy", children: site.locationSummary?.address?.trim() || "Neighborhood gift shop" }),
574
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-utility-meta", children: [
575
+ site.locationSummary?.hours?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-utility-copy", children: site.locationSummary.hours.trim() }) : null,
576
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PreviewSocialLinks, { links: socialLinks, variant: "header" }),
577
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { className: "orion-admin-site-preview-header-action", href: site.actionHref || "/contact", tabIndex: -1, children: site.actionLabel || "Visit Today" })
578
+ ] })
579
+ ] }) }),
580
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "orion-admin-site-preview-header-main", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-shell orion-admin-site-preview-shell--main", children: [
581
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("a", { className: "orion-admin-site-preview-brand", href: "/", tabIndex: -1, children: [
582
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
583
+ PreviewLogo,
584
+ {
585
+ className: "orion-admin-site-preview-header-logo",
586
+ logoUrl: site.logoUrl,
587
+ siteName: site.siteName
588
+ }
589
+ ),
590
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-tagline", children: [
591
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-tagline-line", children: taglineLineOne }),
592
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-tagline-line", children: taglineLineTwo })
593
+ ] })
594
+ ] }),
595
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("nav", { className: "orion-admin-site-preview-nav", children: navItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
596
+ "a",
597
+ {
598
+ className: item.href === activePath ? "is-active" : void 0,
599
+ href: item.href,
600
+ tabIndex: -1,
601
+ children: item.label
602
+ },
603
+ `${item.href}-${item.label}`
604
+ )) }),
605
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-mobile-toggle", children: [
606
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", {}),
607
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", {}),
608
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", {})
609
+ ] })
610
+ ] }) })
611
+ ] });
612
+ }
613
+ function SiteFooterPreview({ site }) {
614
+ const description = site.description?.trim() || site.tagline?.trim() || "Thoughtful gifts, warm local service, and a beautifully stocked neighborhood shop.";
615
+ const socialLinks = site.socialLinks?.slice(0, 4) || [];
616
+ const builtByLabel = site.builtByLabel || "Built by Orion Studios";
617
+ const builtByHref = site.builtByHref || "https://orionstudios.dev";
618
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { "aria-hidden": "true", className: "orion-admin-site-preview orion-admin-site-preview--footer", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-footer-shell", children: [
619
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-footer-grid", children: [
620
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
621
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-footer-brand", children: [
622
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
623
+ PreviewLogo,
624
+ {
625
+ className: "orion-admin-site-preview-footer-logo",
626
+ logoUrl: site.logoUrl,
627
+ siteName: site.siteName
628
+ }
629
+ ),
630
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-footer-name", children: site.siteName })
631
+ ] }),
632
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-footer-description", children: description })
633
+ ] }),
634
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
635
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-footer-eyebrow", children: "Shop focus" }),
636
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "orion-admin-site-preview-footer-list", children: site.footerCategories.map((item) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: item }, item)) })
637
+ ] }),
638
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
639
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-footer-eyebrow", children: "Explore" }),
640
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "orion-admin-site-preview-footer-list", children: site.footerLinks.map((item) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: item.href, tabIndex: -1, children: item.label }, `${item.href}-${item.label}`)) })
641
+ ] }),
642
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
643
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "orion-admin-site-preview-footer-eyebrow", children: "Visit" }),
644
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-footer-contact", children: [
645
+ site.locationSummary.address?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: site.locationSummary.address.trim() }) : null,
646
+ site.locationSummary.hours?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: site.locationSummary.hours.trim() }) : null,
647
+ site.locationSummary.phone?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: `tel:${site.locationSummary.phone.trim()}`, tabIndex: -1, children: site.locationSummary.phone.trim() }) : null,
648
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: `mailto:${site.contactEmail}`, tabIndex: -1, children: site.contactEmail })
649
+ ] }),
650
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PreviewSocialLinks, { links: socialLinks, variant: "footer" })
651
+ ] })
652
+ ] }),
653
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "orion-admin-site-preview-footer-meta", children: [
654
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: site.copyright }),
655
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: builtByHref, tabIndex: -1, children: builtByLabel })
656
+ ] })
657
+ ] }) });
658
+ }
659
+
660
+ // src/admin-app/components/HeaderNavEditorWithPreview.tsx
661
+ var import_jsx_runtime4 = require("react/jsx-runtime");
490
662
  var fallbackNav = [{ href: "/", label: "Home" }];
491
663
  function HeaderNavEditorWithPreview({
664
+ activePath,
665
+ actionHref,
666
+ actionLabel,
492
667
  brandName,
493
668
  initialItems,
669
+ locationSummary,
494
670
  logoUrl,
671
+ onItemsChange,
495
672
  pageOptions,
673
+ socialLinks,
496
674
  tagline = ""
497
675
  }) {
498
676
  const [liveItems, setLiveItems] = (0, import_react3.useState)(initialItems);
@@ -501,48 +679,44 @@ function HeaderNavEditorWithPreview({
501
679
  const tree = buildNestedNavTree(normalized);
502
680
  return tree.topLevel.length > 0 ? tree : buildNestedNavTree(fallbackNav);
503
681
  }, [liveItems]);
504
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
505
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(HeaderNavItemsEditor, { initialItems, onItemsChange: setLiveItems, pageOptions }),
506
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { color: "#5d6664", fontSize: "0.88rem", fontWeight: 700 }, children: "Header Preview" }),
507
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
508
- "div",
682
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
683
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
684
+ HeaderNavItemsEditor,
509
685
  {
510
- style: {
511
- border: "1px solid #dce2e0",
512
- borderRadius: 14,
513
- overflow: "hidden"
686
+ initialItems,
687
+ onItemsChange: (items) => {
688
+ setLiveItems(items);
689
+ onItemsChange?.(items);
514
690
  },
515
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("header", { className: "site-header", style: { position: "relative", top: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "container container-content header-wrap", children: [
516
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("a", { className: "brand", href: "#", children: [
517
- logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("img", { alt: `${brandName} logo`, src: logoUrl }) : null,
518
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
519
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "brand-title", children: brandName }),
520
- tagline ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "brand-subtitle", children: tagline }) : null
521
- ] })
522
- ] }),
523
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("nav", { className: "site-nav open", children: previewItems.topLevel.map((item, index) => {
524
- const children = previewItems.childrenByParent.get(item.href) || [];
525
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
526
- "div",
527
- {
528
- className: children.length > 0 ? "site-nav-item has-children" : "site-nav-item",
529
- children: [
530
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { className: index === 0 ? "active" : "", href: item.href, children: item.label }),
531
- children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "site-subnav", children: children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: child.href, children: child.label }, `${item.href}-${child.href}`)) }) : null
532
- ]
533
- },
534
- `${item.href}-${index}`
535
- );
536
- }) })
537
- ] }) })
691
+ pageOptions
692
+ }
693
+ ),
694
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "orion-admin-preview-label", children: "Header Preview" }),
695
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "orion-admin-preview-frame", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "orion-admin-preview-surface", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
696
+ SiteHeaderPreview,
697
+ {
698
+ site: {
699
+ activePath,
700
+ actionHref,
701
+ actionLabel,
702
+ locationSummary,
703
+ logoUrl,
704
+ navItems: previewItems.topLevel.map((item) => ({
705
+ href: item.href,
706
+ label: item.label
707
+ })),
708
+ siteName: brandName,
709
+ socialLinks,
710
+ tagline
711
+ }
538
712
  }
539
- )
713
+ ) }) })
540
714
  ] });
541
715
  }
542
716
 
543
717
  // src/admin-app/components/MediaDetailPanel.tsx
544
718
  var import_react4 = require("react");
545
- var import_jsx_runtime4 = require("react/jsx-runtime");
719
+ var import_jsx_runtime5 = require("react/jsx-runtime");
546
720
  function formatFileSize(bytes) {
547
721
  if (bytes < 1024) return `${bytes} B`;
548
722
  if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
@@ -592,10 +766,10 @@ function MediaDetailPanel({
592
766
  metaRows.push({ label: "Uploaded", value: createdAt });
593
767
  }
594
768
  }
595
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "orion-admin-grid", style: { alignItems: "start" }, children: [
596
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
597
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "orion-admin-card", children: url ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("img", { alt: alt || filename || "Media", src: url, style: { borderRadius: 12, width: "100%" } }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: "No preview available." }) }),
598
- url ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
769
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "orion-admin-grid", style: { alignItems: "start" }, children: [
770
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [
771
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "orion-admin-card", children: url ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("img", { alt: alt || filename || "Media", src: url, style: { borderRadius: 12, width: "100%" } }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: "No preview available." }) }),
772
+ url ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
599
773
  "button",
600
774
  {
601
775
  className: "orion-admin-action-button",
@@ -606,28 +780,28 @@ function MediaDetailPanel({
606
780
  }
607
781
  ) : null
608
782
  ] }),
609
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "grid", gap: "0.8rem" }, children: [
610
- metaRows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "orion-admin-card orion-admin-meta-table", children: metaRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "orion-admin-meta-row", children: [
611
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "orion-admin-meta-label", children: row.label }),
612
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "orion-admin-meta-value", children: row.value })
783
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "grid", gap: "0.8rem" }, children: [
784
+ metaRows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "orion-admin-card orion-admin-meta-table", children: metaRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "orion-admin-meta-row", children: [
785
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "orion-admin-meta-label", children: row.label }),
786
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "orion-admin-meta-value", children: row.value })
613
787
  ] }, row.label)) }) : null,
614
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("form", { action: updateAction, className: "orion-admin-form", children: [
615
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("input", { name: "id", type: "hidden", value: id }),
616
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("label", { children: [
788
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("form", { action: updateAction, className: "orion-admin-form", children: [
789
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("input", { name: "id", type: "hidden", value: id }),
790
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("label", { children: [
617
791
  "Alt text",
618
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("input", { defaultValue: alt || "", name: "alt", required: true, type: "text" })
792
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("input", { defaultValue: alt || "", name: "alt", required: true, type: "text" })
619
793
  ] }),
620
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", { type: "submit", children: "Save" })
794
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { type: "submit", children: "Save" })
621
795
  ] }),
622
- confirmDelete ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "orion-admin-form", style: { borderColor: "#b42318" }, children: [
623
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { fontWeight: 700, margin: 0 }, children: "Are you sure you want to delete this asset?" }),
624
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem", margin: 0 }, children: "This action cannot be undone." }),
625
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
626
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("form", { action: deleteAction, style: { flex: 1 }, children: [
627
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("input", { name: "id", type: "hidden", value: id }),
628
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", { style: { background: "#b42318", border: 0, borderRadius: 10, color: "#fff", cursor: "pointer", fontWeight: 800, padding: "0.55rem 0.8rem", width: "100%" }, type: "submit", children: "Yes, Delete" })
796
+ confirmDelete ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "orion-admin-form", style: { borderColor: "#b42318" }, children: [
797
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { style: { fontWeight: 700, margin: 0 }, children: "Are you sure you want to delete this asset?" }),
798
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem", margin: 0 }, children: "This action cannot be undone." }),
799
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", gap: "0.5rem" }, children: [
800
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("form", { action: deleteAction, style: { flex: 1 }, children: [
801
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("input", { name: "id", type: "hidden", value: id }),
802
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { style: { background: "#b42318", border: 0, borderRadius: 10, color: "#fff", cursor: "pointer", fontWeight: 800, padding: "0.55rem 0.8rem", width: "100%" }, type: "submit", children: "Yes, Delete" })
629
803
  ] }),
630
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
804
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
631
805
  "button",
632
806
  {
633
807
  onClick: () => setConfirmDelete(false),
@@ -637,7 +811,7 @@ function MediaDetailPanel({
637
811
  }
638
812
  )
639
813
  ] })
640
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
814
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
641
815
  "button",
642
816
  {
643
817
  className: "orion-admin-action-button",
@@ -652,7 +826,7 @@ function MediaDetailPanel({
652
826
  }
653
827
 
654
828
  // src/admin-app/components/MediaListItem.tsx
655
- var import_jsx_runtime5 = require("react/jsx-runtime");
829
+ var import_jsx_runtime6 = require("react/jsx-runtime");
656
830
  function formatFileSize2(bytes) {
657
831
  if (bytes < 1024) return `${bytes} B`;
658
832
  if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
@@ -675,16 +849,16 @@ function MediaListItem({
675
849
  if (typeof filesize === "number") metaParts.push(formatFileSize2(filesize));
676
850
  if (typeof width === "number" && typeof height === "number") metaParts.push(`${width}\xD7${height}`);
677
851
  if (typeof mimeType === "string") metaParts.push(mimeType);
678
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("a", { className: "orion-admin-list-item", href, children: [
679
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { alignItems: "center", display: "flex", gap: "0.8rem" }, children: [
680
- url ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("img", { alt: altText || label, className: "orion-admin-media-preview", src: url }) : null,
681
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [
682
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("strong", { children: label }),
683
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "orion-admin-list-meta", children: altText || "No alt text" }),
684
- metaParts.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "orion-admin-list-meta", style: { marginTop: "0.15rem" }, children: metaParts.join(" \xB7 ") }) : null
852
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("a", { className: "orion-admin-list-item", href, children: [
853
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { alignItems: "center", display: "flex", gap: "0.8rem" }, children: [
854
+ url ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("img", { alt: altText || label, className: "orion-admin-media-preview", src: url }) : null,
855
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { children: [
856
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("strong", { children: label }),
857
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "orion-admin-list-meta", children: altText || "No alt text" }),
858
+ metaParts.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "orion-admin-list-meta", style: { marginTop: "0.15rem" }, children: metaParts.join(" \xB7 ") }) : null
685
859
  ] })
686
860
  ] }),
687
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "orion-admin-list-meta", children: "Edit" })
861
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "orion-admin-list-meta", children: "Edit" })
688
862
  ] });
689
863
  }
690
864
 
@@ -786,7 +960,7 @@ async function optimizeImageForUpload(file) {
786
960
  }
787
961
 
788
962
  // src/admin-app/components/MediaUploadForm.tsx
789
- var import_jsx_runtime6 = require("react/jsx-runtime");
963
+ var import_jsx_runtime7 = require("react/jsx-runtime");
790
964
  var MEDIA_LIBRARY_SYNC_EVENT = "orion-media-library-updated";
791
965
  var notifyMediaLibraryUpdated = () => {
792
966
  if (typeof window === "undefined") {
@@ -900,10 +1074,10 @@ function MediaUploadForm() {
900
1074
  setSubmitting(false);
901
1075
  }
902
1076
  };
903
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("form", { className: "orion-admin-upload-form", onSubmit: upload, children: [
904
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("label", { children: [
1077
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("form", { className: "orion-admin-upload-form", onSubmit: upload, children: [
1078
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("label", { children: [
905
1079
  "Alt text",
906
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1080
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
907
1081
  "input",
908
1082
  {
909
1083
  onChange: (event) => setAlt(event.target.value),
@@ -913,7 +1087,7 @@ function MediaUploadForm() {
913
1087
  }
914
1088
  )
915
1089
  ] }),
916
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
1090
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
917
1091
  "div",
918
1092
  {
919
1093
  className: `orion-admin-dropzone${dragging ? " is-dragging" : ""}${file ? " has-file" : ""}`,
@@ -922,14 +1096,14 @@ function MediaUploadForm() {
922
1096
  onDragOver,
923
1097
  onDrop,
924
1098
  children: [
925
- preview ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "orion-admin-dropzone-preview", children: [
926
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("img", { alt: "Upload preview", src: preview }),
927
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: file?.name })
928
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "orion-admin-dropzone-label", children: [
929
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("strong", { children: "Drop an image here" }),
930
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: "or click to browse" })
1099
+ preview ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "orion-admin-dropzone-preview", children: [
1100
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { alt: "Upload preview", src: preview }),
1101
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: file?.name })
1102
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "orion-admin-dropzone-label", children: [
1103
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children: "Drop an image here" }),
1104
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: "or click to browse" })
931
1105
  ] }),
932
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1106
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
933
1107
  "input",
934
1108
  {
935
1109
  accept: "image/*",
@@ -942,14 +1116,14 @@ function MediaUploadForm() {
942
1116
  ]
943
1117
  }
944
1118
  ),
945
- error ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "orion-admin-upload-error", children: error }) : null,
946
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { disabled: submitting, type: "submit", children: submitting ? "Uploading..." : "Upload" })
1119
+ error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "orion-admin-upload-error", children: error }) : null,
1120
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { disabled: submitting, type: "submit", children: submitting ? "Uploading..." : "Upload" })
947
1121
  ] });
948
1122
  }
949
1123
 
950
1124
  // src/admin-app/components/PageEditorFrame.tsx
951
1125
  var import_react6 = require("react");
952
- var import_jsx_runtime7 = require("react/jsx-runtime");
1126
+ var import_jsx_runtime8 = require("react/jsx-runtime");
953
1127
  var extractPageIDFromBuilderSrc = (value) => {
954
1128
  if (!value || typeof value !== "string") {
955
1129
  return null;
@@ -1191,8 +1365,8 @@ function PageEditorFrame({ src }) {
1191
1365
  },
1192
1366
  []
1193
1367
  );
1194
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "grid", gap: "0.8rem" }, children: [
1195
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1368
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "grid", gap: "0.8rem" }, children: [
1369
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
1196
1370
  "div",
1197
1371
  {
1198
1372
  style: {
@@ -1207,17 +1381,17 @@ function PageEditorFrame({ src }) {
1207
1381
  padding: "0.7rem 0.8rem"
1208
1382
  },
1209
1383
  children: [
1210
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "grid", gap: "0.2rem" }, children: [
1211
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem" }, children: "Save changes to update the page layout and content." }),
1212
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1384
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "grid", gap: "0.2rem" }, children: [
1385
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem" }, children: "Save changes to update the page layout and content." }),
1386
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1213
1387
  "div",
1214
1388
  {
1215
1389
  style: {
1216
1390
  alignItems: "center",
1217
- background: hasUnpublishedChanges ? "#fff3cd" : "#e7f7ee",
1218
- border: `1px solid ${hasUnpublishedChanges ? "#f0c36d" : "#87c79e"}`,
1391
+ background: hasUnpublishedChanges ? "#fff3cd" : "var(--orion-admin-accent-subtle)",
1392
+ border: `1px solid ${hasUnpublishedChanges ? "#f0c36d" : "color-mix(in srgb, var(--orion-admin-accent) 36%, transparent)"}`,
1219
1393
  borderRadius: 999,
1220
- color: hasUnpublishedChanges ? "#6a4a00" : "#0e5a2a",
1394
+ color: hasUnpublishedChanges ? "#6a4a00" : "var(--orion-admin-accent)",
1221
1395
  display: "inline-flex",
1222
1396
  fontSize: "0.75rem",
1223
1397
  fontWeight: 800,
@@ -1229,8 +1403,8 @@ function PageEditorFrame({ src }) {
1229
1403
  }
1230
1404
  )
1231
1405
  ] }),
1232
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { alignItems: "center", display: "flex", flexWrap: "wrap", gap: "0.5rem" }, children: [
1233
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1406
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { alignItems: "center", display: "flex", flexWrap: "wrap", gap: "0.5rem" }, children: [
1407
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1234
1408
  "button",
1235
1409
  {
1236
1410
  className: "orion-admin-action-button",
@@ -1241,7 +1415,7 @@ function PageEditorFrame({ src }) {
1241
1415
  children: "Undo"
1242
1416
  }
1243
1417
  ),
1244
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1418
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1245
1419
  "button",
1246
1420
  {
1247
1421
  className: "orion-admin-action-button",
@@ -1252,7 +1426,7 @@ function PageEditorFrame({ src }) {
1252
1426
  children: "Redo"
1253
1427
  }
1254
1428
  ),
1255
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1429
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1256
1430
  "button",
1257
1431
  {
1258
1432
  className: "orion-admin-action-button",
@@ -1262,13 +1436,13 @@ function PageEditorFrame({ src }) {
1262
1436
  children: saving === "draft" ? "Saving..." : "Save Draft"
1263
1437
  }
1264
1438
  ),
1265
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1439
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1266
1440
  "button",
1267
1441
  {
1268
1442
  className: "orion-admin-action-button",
1269
1443
  disabled: saving !== null,
1270
1444
  onClick: () => sendSave("published"),
1271
- style: { background: "#0f7d52" },
1445
+ style: { background: "var(--orion-admin-accent)" },
1272
1446
  type: "button",
1273
1447
  children: saving === "published" ? "Publishing..." : "Publish"
1274
1448
  }
@@ -1277,9 +1451,9 @@ function PageEditorFrame({ src }) {
1277
1451
  ]
1278
1452
  }
1279
1453
  ),
1280
- message ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { color: "#0f7d52", fontSize: "0.9rem", fontWeight: 700 }, children: message }) : null,
1281
- error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "orion-admin-error", children: error }) : null,
1282
- sessionExpired ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1454
+ message ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { color: "var(--orion-admin-accent)", fontSize: "0.9rem", fontWeight: 700 }, children: message }) : null,
1455
+ error ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "orion-admin-error", children: error }) : null,
1456
+ sessionExpired ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1283
1457
  "div",
1284
1458
  {
1285
1459
  style: {
@@ -1294,7 +1468,7 @@ function PageEditorFrame({ src }) {
1294
1468
  children: "Session expired. Log in again in a new tab, then save your changes."
1295
1469
  }
1296
1470
  ) : null,
1297
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1471
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1298
1472
  "iframe",
1299
1473
  {
1300
1474
  ref: iframeRef,
@@ -1314,7 +1488,7 @@ function PageEditorFrame({ src }) {
1314
1488
  }
1315
1489
  }
1316
1490
  ),
1317
- pendingNavigationURL && showUnsavedDialog ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1491
+ pendingNavigationURL && showUnsavedDialog ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1318
1492
  "div",
1319
1493
  {
1320
1494
  "data-orion-unsaved-dialog": "true",
@@ -1328,7 +1502,7 @@ function PageEditorFrame({ src }) {
1328
1502
  position: "fixed",
1329
1503
  zIndex: 2e3
1330
1504
  },
1331
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1505
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
1332
1506
  "div",
1333
1507
  {
1334
1508
  style: {
@@ -1343,12 +1517,12 @@ function PageEditorFrame({ src }) {
1343
1517
  width: "100%"
1344
1518
  },
1345
1519
  children: [
1346
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { children: [
1347
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { color: "var(--orion-admin-text)", fontSize: "1rem", fontWeight: 700 }, children: "Unsaved changes" }),
1348
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem", marginTop: "0.4rem" }, children: "You have unsaved edits in the page builder. Save before leaving this page?" })
1520
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
1521
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { color: "var(--orion-admin-text)", fontSize: "1rem", fontWeight: 700 }, children: "Unsaved changes" }),
1522
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { color: "var(--orion-admin-muted)", fontSize: "0.9rem", marginTop: "0.4rem" }, children: "You have unsaved edits in the page builder. Save before leaving this page?" })
1349
1523
  ] }),
1350
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", gap: "0.6rem", justifyContent: "flex-end" }, children: [
1351
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1524
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", gap: "0.6rem", justifyContent: "flex-end" }, children: [
1525
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1352
1526
  "button",
1353
1527
  {
1354
1528
  className: "orion-admin-action-button",
@@ -1360,7 +1534,7 @@ function PageEditorFrame({ src }) {
1360
1534
  children: "Stay"
1361
1535
  }
1362
1536
  ),
1363
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1537
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1364
1538
  "button",
1365
1539
  {
1366
1540
  className: "orion-admin-action-button",
@@ -1391,5 +1565,7 @@ function PageEditorFrame({ src }) {
1391
1565
  MediaDetailPanel,
1392
1566
  MediaListItem,
1393
1567
  MediaUploadForm,
1394
- PageEditorFrame
1568
+ PageEditorFrame,
1569
+ SiteFooterPreview,
1570
+ SiteHeaderPreview
1395
1571
  });