@bagelink/blox 1.15.611 → 1.15.617

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 (51) hide show
  1. package/dist/CmsPageView.vue.d.ts.map +1 -1
  2. package/dist/{PreviewApp-CIyd-N0N.js → PreviewApp-BMp-8qs3.js} +1 -1
  3. package/dist/{PreviewApp-BRrYLB8D.cjs → PreviewApp-CjelUL54.cjs} +1 -1
  4. package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-DeDQpkll.cjs → PreviewApp.vue_vue_type_style_index_0_lang-DU4NixKc.cjs} +1 -1
  5. package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-DO-6pJux.js → PreviewApp.vue_vue_type_style_index_0_lang-DfqvSF62.js} +1 -1
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/{appRuntime-DScwVn-L.cjs → appRuntime-CeEDneOA.cjs} +21 -34
  8. package/dist/{appRuntime-CMgL56OK.js → appRuntime-DURTwUXn.js} +65 -78
  9. package/dist/appRuntime.d.ts +1 -0
  10. package/dist/appRuntime.d.ts.map +1 -1
  11. package/dist/client-AoDTJJXJ.cjs +29 -0
  12. package/dist/client-XQnL-B6N.js +30 -0
  13. package/dist/composables/usePageContext.d.ts +1 -1
  14. package/dist/composables/usePageContext.d.ts.map +1 -1
  15. package/dist/core.d.ts +2 -0
  16. package/dist/core.d.ts.map +1 -1
  17. package/dist/createBloxApp.d.ts +2 -0
  18. package/dist/createBloxApp.d.ts.map +1 -1
  19. package/dist/data/useData.d.ts +1 -2
  20. package/dist/data/useData.d.ts.map +1 -1
  21. package/dist/hydration.d.ts +13 -0
  22. package/dist/hydration.d.ts.map +1 -0
  23. package/dist/index.cjs +14 -7
  24. package/dist/index.d.ts +3 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.mjs +49 -42
  27. package/dist/{shard-runner-BJ5GOYAH.cjs → shard-runner-B5xLPIMv.cjs} +2 -2
  28. package/dist/{shard-runner-AhSQzGqP.js → shard-runner-DX_UVx1L.js} +2 -2
  29. package/dist/ssg/cli.cjs +2 -2
  30. package/dist/ssg/cli.mjs +2 -2
  31. package/dist/ssg/client.cjs +3 -6
  32. package/dist/ssg/client.d.ts +3 -1
  33. package/dist/ssg/client.d.ts.map +1 -1
  34. package/dist/ssg/client.mjs +3 -6
  35. package/dist/ssg/cms-routes.d.ts +0 -4
  36. package/dist/ssg/cms-routes.d.ts.map +1 -1
  37. package/dist/ssg/constants.d.ts +5 -2
  38. package/dist/ssg/constants.d.ts.map +1 -1
  39. package/dist/ssg/createSSREntry.d.ts +1 -0
  40. package/dist/ssg/createSSREntry.d.ts.map +1 -1
  41. package/dist/ssg/index.cjs +42 -14
  42. package/dist/ssg/index.d.ts +3 -3
  43. package/dist/ssg/index.d.ts.map +1 -1
  44. package/dist/ssg/index.mjs +55 -28
  45. package/dist/ssg/render-resolved-page.d.ts +2 -9
  46. package/dist/ssg/render-resolved-page.d.ts.map +1 -1
  47. package/dist/symbols.d.ts +1 -0
  48. package/dist/symbols.d.ts.map +1 -1
  49. package/dist/{validate-output-CVjmUmiV.js → validate-output-CyzlxxkS.js} +17 -19
  50. package/dist/{validate-output-BTTHpr9g.cjs → validate-output-DwAoJflg.cjs} +4 -6
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CmsPageView.vue.d.ts","sourceRoot":"","sources":["../src/CmsPageView.vue"],"names":[],"mappings":";AAqkBA,wBAMG"}
1
+ {"version":3,"file":"CmsPageView.vue.d.ts","sourceRoot":"","sources":["../src/CmsPageView.vue"],"names":[],"mappings":";AA2hBA,wBAMG"}
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "./PreviewApp.vue_vue_type_style_index_0_lang-DO-6pJux.js";
1
+ import { _ as _sfc_main } from "./PreviewApp.vue_vue_type_style_index_0_lang-DfqvSF62.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-DeDQpkll.cjs");
3
+ const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-DU4NixKc.cjs");
4
4
  exports.default = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
- const appRuntime = require("./appRuntime-DScwVn-L.cjs");
3
+ const appRuntime = require("./appRuntime-CeEDneOA.cjs");
4
4
  function sendToEditor(msg) {
5
5
  window.parent.postMessage(cloneForPostMessage(msg), "*");
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, inject, ref, h, provide, onMounted, onUnmounted, openBlock, createElementBlock, createVNode, unref, nextTick } from "vue";
2
- import { f as BLOX_REGISTRY_KEY, r as resolveBlockProps, u as useLocale, g as BLOX_RUNTIME_KEY } from "./appRuntime-CMgL56OK.js";
2
+ import { e as BLOX_REGISTRY_KEY, r as resolveBlockProps, u as useLocale, f as BLOX_RUNTIME_KEY } from "./appRuntime-DURTwUXn.js";
3
3
  function sendToEditor(msg) {
4
4
  window.parent.postMessage(cloneForPostMessage(msg), "*");
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  const pinia = require("pinia");
6
6
  const vue = require("vue");
7
- const ssg_client = require("./ssg/client.cjs");
7
+ const ssg_client = require("./client-AoDTJJXJ.cjs");
8
8
  const vueRouter = require("vue-router");
9
9
  const vue$1 = require("@bagelink/vue");
10
10
  const pageTitle = require("./pageTitle-nIl1cDfD.cjs");
@@ -56,10 +56,9 @@ function createBloxApi(options) {
56
56
  return response.json();
57
57
  }
58
58
  function getWebsiteIdSync2() {
59
+ var _a;
59
60
  if (websiteId) return websiteId;
60
- if (typeof window === "undefined") return null;
61
- const embedded = window[ssg_client.BLOX_WEBSITE_ID_WINDOW_KEY];
62
- return typeof embedded === "string" && embedded !== "" ? embedded : null;
61
+ return ((_a = ssg_client.readBloxHydration()) == null ? void 0 : _a.websiteId) ?? null;
63
62
  }
64
63
  async function getWebsiteId2() {
65
64
  const existing = getWebsiteIdSync2();
@@ -479,6 +478,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
479
478
  const router = vueRouter.useRouter();
480
479
  const { locale: locale2, setLocale, setAlternates } = useLocale();
481
480
  const strategy = vue.inject(BLOX_LOCALE_STRATEGY_KEY, null);
481
+ const config = vue.inject(BLOX_CONFIG_KEY, null);
482
482
  const ssrRouteState = vue.inject(BLOX_SSR_ROUTE_STATE_KEY, null);
483
483
  const api = useBloxApi();
484
484
  const blocks = vue.ref([]);
@@ -501,21 +501,14 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
501
501
  function currentRouteTarget(fallback) {
502
502
  return typeof (route == null ? void 0 : route.fullPath) === "string" && route.fullPath ? route.fullPath : currentRoutePath() || fallback;
503
503
  }
504
- function navigableAlternates(alternates, resolvedSlug) {
505
- const keys = Object.keys(alternates ?? {});
506
- if (!keys.length) return { [locale2.value]: resolvedSlug };
507
- return Object.fromEntries(keys.map((l) => [l, resolvedSlug]));
508
- }
509
504
  function tryHydrateFromState(path) {
505
+ var _a;
510
506
  if ((ssrRouteState == null ? void 0 : ssrRouteState.path) === path && ssrRouteState.resolved) {
511
507
  applyResolvedState(ssrRouteState.resolved);
512
508
  return true;
513
509
  }
514
- const win = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : void 0;
515
- if (!win) return false;
516
- const state = win[ssg_client.BLOX_STATE_WINDOW_KEY];
517
- if (!state || typeof state !== "object") return false;
518
- const entry = state[path];
510
+ const routeState = (_a = ssg_client.readBloxHydration()) == null ? void 0 : _a.route;
511
+ const entry = (routeState == null ? void 0 : routeState.path) === path ? routeState.resolved : void 0;
519
512
  if (!entry) return false;
520
513
  applyResolvedState(entry);
521
514
  return true;
@@ -528,11 +521,6 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
528
521
  setAlternates(entry.alternates && Object.keys(entry.alternates).length ? entry.alternates : {});
529
522
  updateDocumentTitle(entry);
530
523
  }
531
- function hasEmbeddedState() {
532
- if (typeof window === "undefined") return false;
533
- const state = window[ssg_client.BLOX_STATE_WINDOW_KEY];
534
- return !!state && typeof state === "object" && !Array.isArray(state);
535
- }
536
524
  function updateDocumentTitle(resolved) {
537
525
  if (typeof document === "undefined") return;
538
526
  const title = pageTitle.resolvePageTitle(resolved, {
@@ -560,7 +548,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
560
548
  initialLoading.value = false;
561
549
  return;
562
550
  }
563
- if (hasEmbeddedState() && typeof window !== "undefined") {
551
+ if ((config == null ? void 0 : config.navigation) === "document" && typeof window !== "undefined") {
564
552
  window.location.assign(currentRouteTarget(slug));
565
553
  return;
566
554
  }
@@ -570,7 +558,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
570
558
  blocks.value = ((_a = resolved.page.content) == null ? void 0 : _a.blocks) ?? [];
571
559
  contexts.value = resolved.contexts ?? {};
572
560
  currentPageId.value = resolved.page.id ?? null;
573
- setAlternates(navigableAlternates(resolved.alternates, slug));
561
+ setAlternates(resolved.alternates ?? {});
574
562
  updateDocumentTitle(resolved);
575
563
  } catch (e) {
576
564
  const msg = e instanceof Error ? e.message : String(e);
@@ -624,7 +612,6 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
624
612
  };
625
613
  }
626
614
  });
627
- const BLOX_DATA_WINDOW_KEY = "__BLOX_DATA__";
628
615
  const BLOX_DATA_KEY = Symbol("blox-data");
629
616
  function provideBloxData(app, opts = {}) {
630
617
  const isServer = opts.server ?? false;
@@ -641,12 +628,8 @@ function provideBloxData(app, opts = {}) {
641
628
  return registry2;
642
629
  }
643
630
  function readPayload() {
644
- if (typeof window === "undefined") return null;
645
- const raw = window[BLOX_DATA_WINDOW_KEY];
646
- if (raw && typeof raw === "object" && !Array.isArray(raw)) {
647
- return raw;
648
- }
649
- return null;
631
+ var _a;
632
+ return ((_a = ssg_client.readBloxHydration()) == null ? void 0 : _a.data) ?? null;
650
633
  }
651
634
  function getRegistry() {
652
635
  if (vue.getCurrentInstance()) {
@@ -980,7 +963,8 @@ class BloxInstance {
980
963
  __publicField(this, "_adminEdit");
981
964
  this._config = {
982
965
  defaultLocale: (options == null ? void 0 : options.defaultLocale) ?? "en",
983
- supportedLocales: (options == null ? void 0 : options.supportedLocales) ?? []
966
+ supportedLocales: (options == null ? void 0 : options.supportedLocales) ?? [],
967
+ navigation: (options == null ? void 0 : options.navigation) ?? "spa"
984
968
  };
985
969
  this._strategy = createLocaleStrategy(options ?? {});
986
970
  this._adminEdit = options == null ? void 0 : options.adminEdit;
@@ -1069,7 +1053,7 @@ class BloxInstance {
1069
1053
  router.addRoute({
1070
1054
  path: "/_blox_preview",
1071
1055
  name: BLOX_PREVIEW_ROUTE_NAME,
1072
- component: () => Promise.resolve().then(() => require("./PreviewApp-BRrYLB8D.cjs")),
1056
+ component: () => Promise.resolve().then(() => require("./PreviewApp-CjelUL54.cjs")),
1073
1057
  beforeEnter: () => typeof window === "undefined" || window.parent !== window ? true : "/"
1074
1058
  });
1075
1059
  }
@@ -1088,7 +1072,8 @@ class BloxInstance {
1088
1072
  if (options) {
1089
1073
  this._config = {
1090
1074
  defaultLocale: options.defaultLocale ?? this._config.defaultLocale,
1091
- supportedLocales: options.supportedLocales ?? this._config.supportedLocales
1075
+ supportedLocales: options.supportedLocales ?? this._config.supportedLocales,
1076
+ navigation: options.navigation ?? this._config.navigation
1092
1077
  };
1093
1078
  this._strategy = createLocaleStrategy({
1094
1079
  ...options,
@@ -1394,8 +1379,9 @@ function installContentFallback(router, supportedLocales, defaultLocale, api) {
1394
1379
  });
1395
1380
  }
1396
1381
  function hasEmbeddedContentItem(collection, slug, locale2) {
1382
+ var _a;
1397
1383
  if (typeof window === "undefined") return false;
1398
- const payload = window[BLOX_DATA_WINDOW_KEY];
1384
+ const payload = (_a = ssg_client.readBloxHydration()) == null ? void 0 : _a.data;
1399
1385
  if (!payload || typeof payload !== "object" || Array.isArray(payload)) return false;
1400
1386
  return `content:${collection}:${slug}:${locale2}` in payload;
1401
1387
  }
@@ -1413,6 +1399,7 @@ function installBloxRuntime(options) {
1413
1399
  setup,
1414
1400
  adminEdit,
1415
1401
  contentFallback = false,
1402
+ navigation = "spa",
1416
1403
  api,
1417
1404
  localeState: localeState2
1418
1405
  } = options;
@@ -1423,7 +1410,8 @@ function installBloxRuntime(options) {
1423
1410
  defaultLocale: locale2,
1424
1411
  supportedLocales,
1425
1412
  router,
1426
- adminEdit
1413
+ adminEdit,
1414
+ navigation
1427
1415
  });
1428
1416
  const pinia$1 = pinia.createPinia();
1429
1417
  pinia$1.use(({ store: piniaStore }) => {
@@ -1454,7 +1442,6 @@ function installBloxRuntime(options) {
1454
1442
  exports.BLOX_ADMIN_CONFIG_KEY = BLOX_ADMIN_CONFIG_KEY;
1455
1443
  exports.BLOX_CONFIG_KEY = BLOX_CONFIG_KEY;
1456
1444
  exports.BLOX_DATA_KEY = BLOX_DATA_KEY;
1457
- exports.BLOX_DATA_WINDOW_KEY = BLOX_DATA_WINDOW_KEY;
1458
1445
  exports.BLOX_LAYOUT_KEY = BLOX_LAYOUT_KEY;
1459
1446
  exports.BLOX_LOCALE_STRATEGY_KEY = BLOX_LOCALE_STRATEGY_KEY;
1460
1447
  exports.BLOX_REGISTRY_KEY = BLOX_REGISTRY_KEY;
@@ -3,7 +3,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { createPinia } from "pinia";
5
5
  import { getCurrentInstance, inject, computed, ref, defineComponent, onMounted, unref, openBlock, createBlock, Teleport, createElementBlock, createElementVNode, createCommentVNode, h, provide, watch, resolveComponent, toDisplayString, createVNode, withCtx, createTextVNode, Fragment, shallowRef, onServerPrefetch, toValue, markRaw, resolveDynamicComponent } from "vue";
6
- import { BLOX_WEBSITE_ID_WINDOW_KEY, BLOX_STATE_WINDOW_KEY } from "./ssg/client.mjs";
6
+ import { a as BLOX_WEBSITE_ID_WINDOW_KEY, r as readBloxHydration } from "./client-XQnL-B6N.js";
7
7
  import { useRoute, useRouter } from "vue-router";
8
8
  import { getI18n } from "@bagelink/vue";
9
9
  import { r as resolvePageTitle, s as siteNameFromContexts, a as preserveCurrentSiteSuffix } from "./pageTitle-BOTMH-D8.js";
@@ -55,10 +55,9 @@ function createBloxApi(options) {
55
55
  return response.json();
56
56
  }
57
57
  function getWebsiteIdSync2() {
58
+ var _a;
58
59
  if (websiteId) return websiteId;
59
- if (typeof window === "undefined") return null;
60
- const embedded = window[BLOX_WEBSITE_ID_WINDOW_KEY];
61
- return typeof embedded === "string" && embedded !== "" ? embedded : null;
60
+ return ((_a = readBloxHydration()) == null ? void 0 : _a.websiteId) ?? null;
62
61
  }
63
62
  async function getWebsiteId2() {
64
63
  const existing = getWebsiteIdSync2();
@@ -478,6 +477,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
478
477
  const router = useRouter();
479
478
  const { locale: locale2, setLocale, setAlternates } = useLocale();
480
479
  const strategy = inject(BLOX_LOCALE_STRATEGY_KEY, null);
480
+ const config = inject(BLOX_CONFIG_KEY, null);
481
481
  const ssrRouteState = inject(BLOX_SSR_ROUTE_STATE_KEY, null);
482
482
  const api = useBloxApi();
483
483
  const blocks = ref([]);
@@ -500,21 +500,14 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
500
500
  function currentRouteTarget(fallback) {
501
501
  return typeof (route == null ? void 0 : route.fullPath) === "string" && route.fullPath ? route.fullPath : currentRoutePath() || fallback;
502
502
  }
503
- function navigableAlternates(alternates, resolvedSlug) {
504
- const keys = Object.keys(alternates ?? {});
505
- if (!keys.length) return { [locale2.value]: resolvedSlug };
506
- return Object.fromEntries(keys.map((l) => [l, resolvedSlug]));
507
- }
508
503
  function tryHydrateFromState(path) {
504
+ var _a;
509
505
  if ((ssrRouteState == null ? void 0 : ssrRouteState.path) === path && ssrRouteState.resolved) {
510
506
  applyResolvedState(ssrRouteState.resolved);
511
507
  return true;
512
508
  }
513
- const win = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : void 0;
514
- if (!win) return false;
515
- const state = win[BLOX_STATE_WINDOW_KEY];
516
- if (!state || typeof state !== "object") return false;
517
- const entry = state[path];
509
+ const routeState = (_a = readBloxHydration()) == null ? void 0 : _a.route;
510
+ const entry = (routeState == null ? void 0 : routeState.path) === path ? routeState.resolved : void 0;
518
511
  if (!entry) return false;
519
512
  applyResolvedState(entry);
520
513
  return true;
@@ -527,11 +520,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
527
520
  setAlternates(entry.alternates && Object.keys(entry.alternates).length ? entry.alternates : {});
528
521
  updateDocumentTitle(entry);
529
522
  }
530
- function hasEmbeddedState() {
531
- if (typeof window === "undefined") return false;
532
- const state = window[BLOX_STATE_WINDOW_KEY];
533
- return !!state && typeof state === "object" && !Array.isArray(state);
534
- }
535
523
  function updateDocumentTitle(resolved) {
536
524
  if (typeof document === "undefined") return;
537
525
  const title = resolvePageTitle(resolved, {
@@ -559,7 +547,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
559
547
  initialLoading.value = false;
560
548
  return;
561
549
  }
562
- if (hasEmbeddedState() && typeof window !== "undefined") {
550
+ if ((config == null ? void 0 : config.navigation) === "document" && typeof window !== "undefined") {
563
551
  window.location.assign(currentRouteTarget(slug));
564
552
  return;
565
553
  }
@@ -569,7 +557,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
569
557
  blocks.value = ((_a = resolved.page.content) == null ? void 0 : _a.blocks) ?? [];
570
558
  contexts.value = resolved.contexts ?? {};
571
559
  currentPageId.value = resolved.page.id ?? null;
572
- setAlternates(navigableAlternates(resolved.alternates, slug));
560
+ setAlternates(resolved.alternates ?? {});
573
561
  updateDocumentTitle(resolved);
574
562
  } catch (e) {
575
563
  const msg = e instanceof Error ? e.message : String(e);
@@ -623,7 +611,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
623
611
  };
624
612
  }
625
613
  });
626
- const BLOX_DATA_WINDOW_KEY = "__BLOX_DATA__";
627
614
  const BLOX_DATA_KEY = Symbol("blox-data");
628
615
  function provideBloxData(app, opts = {}) {
629
616
  const isServer = opts.server ?? false;
@@ -640,12 +627,8 @@ function provideBloxData(app, opts = {}) {
640
627
  return registry2;
641
628
  }
642
629
  function readPayload() {
643
- if (typeof window === "undefined") return null;
644
- const raw = window[BLOX_DATA_WINDOW_KEY];
645
- if (raw && typeof raw === "object" && !Array.isArray(raw)) {
646
- return raw;
647
- }
648
- return null;
630
+ var _a;
631
+ return ((_a = readBloxHydration()) == null ? void 0 : _a.data) ?? null;
649
632
  }
650
633
  function getRegistry() {
651
634
  if (getCurrentInstance()) {
@@ -979,7 +962,8 @@ class BloxInstance {
979
962
  __publicField(this, "_adminEdit");
980
963
  this._config = {
981
964
  defaultLocale: (options == null ? void 0 : options.defaultLocale) ?? "en",
982
- supportedLocales: (options == null ? void 0 : options.supportedLocales) ?? []
965
+ supportedLocales: (options == null ? void 0 : options.supportedLocales) ?? [],
966
+ navigation: (options == null ? void 0 : options.navigation) ?? "spa"
983
967
  };
984
968
  this._strategy = createLocaleStrategy(options ?? {});
985
969
  this._adminEdit = options == null ? void 0 : options.adminEdit;
@@ -1068,7 +1052,7 @@ class BloxInstance {
1068
1052
  router.addRoute({
1069
1053
  path: "/_blox_preview",
1070
1054
  name: BLOX_PREVIEW_ROUTE_NAME,
1071
- component: () => import("./PreviewApp-CIyd-N0N.js"),
1055
+ component: () => import("./PreviewApp-BMp-8qs3.js"),
1072
1056
  beforeEnter: () => typeof window === "undefined" || window.parent !== window ? true : "/"
1073
1057
  });
1074
1058
  }
@@ -1087,7 +1071,8 @@ class BloxInstance {
1087
1071
  if (options) {
1088
1072
  this._config = {
1089
1073
  defaultLocale: options.defaultLocale ?? this._config.defaultLocale,
1090
- supportedLocales: options.supportedLocales ?? this._config.supportedLocales
1074
+ supportedLocales: options.supportedLocales ?? this._config.supportedLocales,
1075
+ navigation: options.navigation ?? this._config.navigation
1091
1076
  };
1092
1077
  this._strategy = createLocaleStrategy({
1093
1078
  ...options,
@@ -1393,8 +1378,9 @@ function installContentFallback(router, supportedLocales, defaultLocale, api) {
1393
1378
  });
1394
1379
  }
1395
1380
  function hasEmbeddedContentItem(collection, slug, locale2) {
1381
+ var _a;
1396
1382
  if (typeof window === "undefined") return false;
1397
- const payload = window[BLOX_DATA_WINDOW_KEY];
1383
+ const payload = (_a = readBloxHydration()) == null ? void 0 : _a.data;
1398
1384
  if (!payload || typeof payload !== "object" || Array.isArray(payload)) return false;
1399
1385
  return `content:${collection}:${slug}:${locale2}` in payload;
1400
1386
  }
@@ -1412,6 +1398,7 @@ function installBloxRuntime(options) {
1412
1398
  setup,
1413
1399
  adminEdit,
1414
1400
  contentFallback = false,
1401
+ navigation = "spa",
1415
1402
  api,
1416
1403
  localeState: localeState2
1417
1404
  } = options;
@@ -1422,7 +1409,8 @@ function installBloxRuntime(options) {
1422
1409
  defaultLocale: locale2,
1423
1410
  supportedLocales,
1424
1411
  router,
1425
- adminEdit
1412
+ adminEdit,
1413
+ navigation
1426
1414
  });
1427
1415
  const pinia = createPinia();
1428
1416
  pinia.use(({ store: piniaStore }) => {
@@ -1451,61 +1439,60 @@ function installBloxRuntime(options) {
1451
1439
  return blox;
1452
1440
  }
1453
1441
  export {
1454
- toInternalPath as $,
1455
- BloxInstance as A,
1456
- BLOX_DATA_WINDOW_KEY as B,
1457
- _sfc_main$2 as C,
1458
- _sfc_main$1 as D,
1459
- _sfc_main as E,
1460
- applyLayoutChrome as F,
1461
- classifyLink as G,
1462
- configureApi as H,
1463
- contentRoutes as I,
1464
- createBlox as J,
1465
- createBloxApi as K,
1466
- defineContent as L,
1467
- generateContentRoutes as M,
1468
- getContentRouteByCollection as N,
1469
- getWebsiteId as O,
1442
+ useBloxEdit as $,
1443
+ _sfc_main$2 as A,
1444
+ BLOX_SSR_ROUTE_STATE_KEY as B,
1445
+ _sfc_main$1 as C,
1446
+ _sfc_main as D,
1447
+ applyLayoutChrome as E,
1448
+ classifyLink as F,
1449
+ configureApi as G,
1450
+ contentRoutes as H,
1451
+ createBlox as I,
1452
+ createBloxApi as J,
1453
+ defineContent as K,
1454
+ generateContentRoutes as L,
1455
+ getContentRouteByCollection as M,
1456
+ getWebsiteId as N,
1457
+ getWebsiteIdSync as O,
1470
1458
  PageRenderer as P,
1471
- getWebsiteIdSync as Q,
1472
- installContentFallback as R,
1473
- isAbsoluteExternal as S,
1474
- isSoloContentPage as T,
1475
- isSpecialScheme as U,
1476
- listItems as V,
1477
- normalizeTo as W,
1478
- provideContentItem as X,
1479
- resolvePath as Y,
1480
- setApiOrigin as Z,
1459
+ installContentFallback as Q,
1460
+ isAbsoluteExternal as R,
1461
+ isSoloContentPage as S,
1462
+ isSpecialScheme as T,
1463
+ listItems as U,
1464
+ normalizeTo as V,
1465
+ provideContentItem as W,
1466
+ resolvePath as X,
1467
+ setApiOrigin as Y,
1468
+ toInternalPath as Z,
1481
1469
  _sfc_main$3 as _,
1482
1470
  collectBloxSeo as a,
1483
- useBloxEdit as a0,
1484
- useContentItem as a1,
1485
- useData as a2,
1471
+ useContentItem as a0,
1472
+ useData as a1,
1486
1473
  provideBloxApi as b,
1487
1474
  collectBloxData as c,
1488
1475
  provideBloxLocale as d,
1489
- BLOX_SSR_ROUTE_STATE_KEY as e,
1490
- BLOX_REGISTRY_KEY as f,
1491
- BLOX_RUNTIME_KEY as g,
1492
- BLOX_LOCALE_STRATEGY_KEY as h,
1476
+ BLOX_REGISTRY_KEY as e,
1477
+ BLOX_RUNTIME_KEY as f,
1478
+ BLOX_LOCALE_STRATEGY_KEY as g,
1479
+ useBloxApi as h,
1493
1480
  installBloxRuntime as i,
1494
- useBloxApi as j,
1495
- useSeo as k,
1496
- getRegistryData as l,
1497
- getItemBySlug as m,
1481
+ useSeo as j,
1482
+ getRegistryData as k,
1483
+ getItemBySlug as l,
1484
+ getItemById as m,
1498
1485
  normalizeLink as n,
1499
- getItemById as o,
1486
+ getContentRoute as o,
1500
1487
  provideBloxData as p,
1501
- getContentRoute as q,
1488
+ installSmartLinks as q,
1502
1489
  resolveBlockProps as r,
1503
1490
  setActiveLocale as s,
1504
- installSmartLinks as t,
1491
+ consumePendingLocaleSwitch as t,
1505
1492
  useLocale as u,
1506
- consumePendingLocaleSwitch as v,
1507
- BLOX_ADMIN_CONFIG_KEY as w,
1508
- BLOX_CONFIG_KEY as x,
1509
- BLOX_DATA_KEY as y,
1510
- BLOX_LAYOUT_KEY as z
1493
+ BLOX_ADMIN_CONFIG_KEY as v,
1494
+ BLOX_CONFIG_KEY as w,
1495
+ BLOX_DATA_KEY as x,
1496
+ BLOX_LAYOUT_KEY as y,
1497
+ BloxInstance as z
1511
1498
  };
@@ -18,6 +18,7 @@ export interface InstallBloxRuntimeOptions {
18
18
  setup?: (app: App) => void;
19
19
  adminEdit?: BloxAdminConfig;
20
20
  contentFallback?: boolean;
21
+ navigation?: 'document' | 'spa';
21
22
  api: BloxApiClient;
22
23
  localeState: BloxLocaleState;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"appRuntime.d.ts","sourceRoot":"","sources":["../src/appRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGtD,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,aAAa,CAAA;IAClB,WAAW,EAAE,eAAe,CAAA;CAC5B;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAsDnF"}
1
+ {"version":3,"file":"appRuntime.d.ts","sourceRoot":"","sources":["../src/appRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGtD,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;IAC/B,GAAG,EAAE,aAAa,CAAA;IAClB,WAAW,EAAE,eAAe,CAAA;CAC5B;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAwDnF"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ const BLOX_HYDRATION_WINDOW_KEY = "__BLOX_HYDRATION__";
3
+ const BLOX_STATE_WINDOW_KEY = "__BLOX_STATE__";
4
+ const BLOX_WEBSITE_ID_WINDOW_KEY = "__BLOX_WEBSITE_ID__";
5
+ const BLOX_DATA_WINDOW_KEY = "__BLOX_DATA__";
6
+ function browserGlobals() {
7
+ return typeof window === "undefined" ? null : window;
8
+ }
9
+ function readBloxHydration() {
10
+ const globals = browserGlobals();
11
+ if (!globals) return null;
12
+ const payload = globals[BLOX_HYDRATION_WINDOW_KEY];
13
+ if (payload && typeof payload === "object" && !Array.isArray(payload) && payload.version === 2) return payload;
14
+ const legacyState = globals[BLOX_STATE_WINDOW_KEY];
15
+ const entries = legacyState && typeof legacyState === "object" && !Array.isArray(legacyState) ? Object.entries(legacyState) : [];
16
+ const legacyData = globals[BLOX_DATA_WINDOW_KEY];
17
+ const websiteId = globals[BLOX_WEBSITE_ID_WINDOW_KEY];
18
+ if (!entries.length && !legacyData && !websiteId) return null;
19
+ const [path, resolved] = entries[0] ?? [];
20
+ return {
21
+ version: 2,
22
+ ...path && resolved ? { route: { path, resolved } } : {},
23
+ ...typeof websiteId === "string" ? { websiteId } : {},
24
+ data: legacyData && typeof legacyData === "object" && !Array.isArray(legacyData) ? legacyData : {}
25
+ };
26
+ }
27
+ exports.BLOX_HYDRATION_WINDOW_KEY = BLOX_HYDRATION_WINDOW_KEY;
28
+ exports.BLOX_WEBSITE_ID_WINDOW_KEY = BLOX_WEBSITE_ID_WINDOW_KEY;
29
+ exports.readBloxHydration = readBloxHydration;
@@ -0,0 +1,30 @@
1
+ const BLOX_HYDRATION_WINDOW_KEY = "__BLOX_HYDRATION__";
2
+ const BLOX_STATE_WINDOW_KEY = "__BLOX_STATE__";
3
+ const BLOX_WEBSITE_ID_WINDOW_KEY = "__BLOX_WEBSITE_ID__";
4
+ const BLOX_DATA_WINDOW_KEY = "__BLOX_DATA__";
5
+ function browserGlobals() {
6
+ return typeof window === "undefined" ? null : window;
7
+ }
8
+ function readBloxHydration() {
9
+ const globals = browserGlobals();
10
+ if (!globals) return null;
11
+ const payload = globals[BLOX_HYDRATION_WINDOW_KEY];
12
+ if (payload && typeof payload === "object" && !Array.isArray(payload) && payload.version === 2) return payload;
13
+ const legacyState = globals[BLOX_STATE_WINDOW_KEY];
14
+ const entries = legacyState && typeof legacyState === "object" && !Array.isArray(legacyState) ? Object.entries(legacyState) : [];
15
+ const legacyData = globals[BLOX_DATA_WINDOW_KEY];
16
+ const websiteId = globals[BLOX_WEBSITE_ID_WINDOW_KEY];
17
+ if (!entries.length && !legacyData && !websiteId) return null;
18
+ const [path, resolved] = entries[0] ?? [];
19
+ return {
20
+ version: 2,
21
+ ...path && resolved ? { route: { path, resolved } } : {},
22
+ ...typeof websiteId === "string" ? { websiteId } : {},
23
+ data: legacyData && typeof legacyData === "object" && !Array.isArray(legacyData) ? legacyData : {}
24
+ };
25
+ }
26
+ export {
27
+ BLOX_HYDRATION_WINDOW_KEY as B,
28
+ BLOX_WEBSITE_ID_WINDOW_KEY as a,
29
+ readBloxHydration as r
30
+ };
@@ -1,2 +1,2 @@
1
- export declare function usePageContext<T extends Record<string, unknown> = Record<string, unknown>>(key: string): import('vue').ComputedRef<T | null>;
1
+ export declare function usePageContext<T extends Record<string, unknown> = Record<string, unknown>>(key?: string): import('vue').ComputedRef<T | null>;
2
2
  //# sourceMappingURL=usePageContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePageContext.d.ts","sourceRoot":"","sources":["../../src/composables/usePageContext.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzF,GAAG,EAAE,MAAM,uCAuBX"}
1
+ {"version":3,"file":"usePageContext.d.ts","sourceRoot":"","sources":["../../src/composables/usePageContext.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzF,GAAG,SAAU,uCAuBb"}
package/dist/core.d.ts CHANGED
@@ -32,6 +32,8 @@ export interface BloxOptions extends StrategyOptions {
32
32
  store?: string;
33
33
  /** Opt-in admin "edit this page" button (deep-links to the studio designer). */
34
34
  adminEdit?: BloxAdminConfig;
35
+ /** CMS navigation contract. @default 'spa' */
36
+ navigation?: 'document' | 'spa';
35
37
  }
36
38
  export declare class BloxInstance {
37
39
  private readonly _registry;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,WAAW,CAAA;AAO5D,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AACrD,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAa7C,4GAA4G;AAC5G,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE5D,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,qIAAqI;IACrI,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrD,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,eAAe,CAAA;CAC3B;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,OAAO,CAAC,EAAE,WAAW;IASjC,uEAAuE;IACvE,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IAiC3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA8BnE,+EAA+E;IAC/E,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA0CpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;CAoC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,WAAW,CAAA;AAO5D,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AACrD,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAa7C,4GAA4G;AAC5G,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE5D,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,qIAAqI;IACrI,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrD,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;CAC/B;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,OAAO,CAAC,EAAE,WAAW;IAUjC,uEAAuE;IACvE,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IAiC3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA8BnE,+EAA+E;IAC/E,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA0CpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;CAqC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
@@ -68,6 +68,8 @@ export interface CreateBloxAppOptions {
68
68
  navigation?: 'document' | 'spa';
69
69
  /** Opt-in admin "edit this page" button configuration. */
70
70
  adminEdit?: BloxOptions['adminEdit'];
71
+ /** Reload the target document when a lazy route chunk is stale. @default true */
72
+ chunkLoadRecovery?: boolean;
71
73
  }
72
74
  /** Plausible Analytics injection options. */
73
75
  export interface PlausibleOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"createBloxApp.d.ts","sourceRoot":"","sources":["../src/createBloxApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAWhD,MAAM,WAAW,oBAAoB;IACpC,oCAAoC;IACpC,aAAa,EAAE,SAAS,CAAA;IACxB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAA;IAClD;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAChD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAA;IACrC,iFAAiF;IACjF,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;IAC/B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;CACpC;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAChC,gGAAgG;IAChG,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAoCvE;AAED,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAsI1E"}
1
+ {"version":3,"file":"createBloxApp.d.ts","sourceRoot":"","sources":["../src/createBloxApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAWhD,MAAM,WAAW,oBAAoB;IACpC,oCAAoC;IACpC,aAAa,EAAE,SAAS,CAAA;IACxB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAA;IAClD;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAChD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAA;IACrC,iFAAiF;IACjF,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;IAC/B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACpC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAChC,gGAAgG;IAChG,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAoCvE;AAED,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA4I1E"}
@@ -1,5 +1,4 @@
1
1
  import { App, MaybeRefOrGetter, Ref } from 'vue';
2
- export declare const BLOX_DATA_WINDOW_KEY: "__BLOX_DATA__";
3
2
  export declare const BLOX_DATA_KEY: unique symbol;
4
3
  /** Per-page SEO overrides a block can set during SSR (see `useSeo`). */
5
4
  export interface BloxSeoHead {
@@ -26,7 +25,7 @@ export interface BloxSeoHead {
26
25
  export interface BloxDataRegistry {
27
26
  /** Resolved values collected during SSR, serialized into the payload. */
28
27
  readonly ssr: Map<string, unknown>;
29
- /** Hydration payload read from `window.__BLOX_DATA__` on the client. */
28
+ /** Keyed data read from the unified hydration payload on the client. */
30
29
  readonly payload: Record<string, unknown> | null;
31
30
  /** True while rendering on the server (collect phase). */
32
31
  readonly isServer: boolean;