@bagelink/blox 1.15.213 → 1.15.218

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 (44) hide show
  1. package/dist/PageRenderer.d.ts.map +1 -1
  2. package/dist/{PreviewApp-APyemzqx.cjs → PreviewApp-C2Cn1yH2.cjs} +1 -1
  3. package/dist/{PreviewApp-BKTydm92.js → PreviewApp-CNIVF6Xq.js} +1 -1
  4. package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-C0ZVst7R.cjs → PreviewApp.vue_vue_type_style_index_0_lang-kv9T9yLc.cjs} +20 -12
  5. package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-DHb-NJ4C.js → PreviewApp.vue_vue_type_style_index_0_lang-lotrZDHC.js} +20 -12
  6. package/dist/PreviewRenderer.d.ts.map +1 -1
  7. package/dist/api/types.d.ts +33 -2
  8. package/dist/api/types.d.ts.map +1 -1
  9. package/dist/bridge.d.ts +2 -0
  10. package/dist/bridge.d.ts.map +1 -1
  11. package/dist/composables/useGlobalBlock.d.ts +14 -21
  12. package/dist/composables/useGlobalBlock.d.ts.map +1 -1
  13. package/dist/core.d.ts.map +1 -1
  14. package/dist/defineBlock.d.ts +8 -0
  15. package/dist/defineBlock.d.ts.map +1 -1
  16. package/dist/index.cjs +16 -20
  17. package/dist/index.d.ts +3 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.mjs +45 -49
  20. package/dist/manifest.d.ts +2 -0
  21. package/dist/manifest.d.ts.map +1 -1
  22. package/dist/{prerender-BNFeuap-.cjs → prerender-BkTA1QZ6.cjs} +97 -64
  23. package/dist/{prerender-Bth9K3uz.js → prerender-wIuYNW6N.js} +97 -64
  24. package/dist/{routes-C97aL4cQ.cjs → routes-0bOKkut4.cjs} +5 -91
  25. package/dist/{routes-bhjTTXfU.js → routes-CHfoa2Mk.js} +38 -124
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.d.ts.map +1 -1
  28. package/dist/ssg/cli.cjs +14 -1
  29. package/dist/ssg/cli.mjs +14 -1
  30. package/dist/ssg/index.cjs +2 -2
  31. package/dist/ssg/index.d.ts +1 -1
  32. package/dist/ssg/index.d.ts.map +1 -1
  33. package/dist/ssg/index.mjs +3 -3
  34. package/dist/ssg/prerender.d.ts +5 -1
  35. package/dist/ssg/prerender.d.ts.map +1 -1
  36. package/dist/ssg/seo.d.ts +13 -27
  37. package/dist/ssg/seo.d.ts.map +1 -1
  38. package/dist/symbols.d.ts +0 -11
  39. package/dist/symbols.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/GlobalBlockHost.d.ts +0 -75
  42. package/dist/GlobalBlockHost.d.ts.map +0 -1
  43. package/dist/globalRef.d.ts +0 -9
  44. package/dist/globalRef.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PageRenderer.d.ts","sourceRoot":"","sources":["../src/PageRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;;;cAUtB,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;;;;cADL,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;;;AALvB,wBAgCE"}
1
+ {"version":3,"file":"PageRenderer.d.ts","sourceRoot":"","sources":["../src/PageRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;;;cAQtB,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;;;;cADL,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;;;AALvB,wBAqBE"}
@@ -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-C0ZVst7R.cjs");
3
+ const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-kv9T9yLc.cjs");
4
4
  exports.default = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "./PreviewApp.vue_vue_type_style_index_0_lang-DHb-NJ4C.js";
1
+ import { _ as _sfc_main } from "./PreviewApp.vue_vue_type_style_index_0_lang-lotrZDHC.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,12 +1,27 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
- const routes = require("./routes-C97aL4cQ.cjs");
3
+ const routes = require("./routes-0bOKkut4.cjs");
4
4
  function sendToEditor(msg) {
5
- window.parent.postMessage(msg, "*");
5
+ window.parent.postMessage(cloneForPostMessage(msg), "*");
6
6
  }
7
7
  function sendToPreview(iframe, msg) {
8
8
  var _a;
9
- (_a = iframe.contentWindow) == null ? void 0 : _a.postMessage(msg, "*");
9
+ (_a = iframe.contentWindow) == null ? void 0 : _a.postMessage(cloneForPostMessage(msg), "*");
10
+ }
11
+ function cloneForPostMessage(value) {
12
+ return stripNonCloneable(value);
13
+ }
14
+ function stripNonCloneable(value) {
15
+ if (typeof value === "function") return void 0;
16
+ if (value == null || typeof value !== "object") return value;
17
+ if (Array.isArray(value)) return value.map(stripNonCloneable);
18
+ const out = {};
19
+ for (const key of Object.keys(value)) {
20
+ const v = value[key];
21
+ if (typeof v === "function") continue;
22
+ out[key] = stripNonCloneable(v);
23
+ }
24
+ return out;
10
25
  }
11
26
  const PreviewRenderer = vue.defineComponent({
12
27
  name: "PreviewRenderer",
@@ -92,8 +107,7 @@ const PreviewRenderer = vue.defineComponent({
92
107
  const isSelected = props.selectedIndex === i;
93
108
  const isHovered = (props.hoveredIndex === i || localHovered.value === i) && !isSelected;
94
109
  const { label } = definition.schema;
95
- const globalRef = routes.globalRefOf(block);
96
- const isGlobal = props.globalBlockTypes.includes(block.type) || !!globalRef;
110
+ const isGlobal = props.globalBlockTypes.includes(block.type);
97
111
  const palette = isGlobal ? GLOBAL : REGULAR;
98
112
  const overlayStyle = { ...overlayBaseFor(palette.rgb) };
99
113
  if (isSelected) {
@@ -124,13 +138,7 @@ const PreviewRenderer = vue.defineComponent({
124
138
  "onMouseleave": onBlockLeave
125
139
  },
126
140
  [
127
- globalRef ? vue.h(routes.GlobalBlockHost, {
128
- component: definition.component,
129
- defaults: definition.schema.defaults,
130
- blockProps: block.props,
131
- globalRef,
132
- blockType: block.type
133
- }) : vue.h(definition.component, { ...definition.schema.defaults, ...block.props }),
141
+ vue.h(definition.component, { ...definition.schema.defaults, ...block.props }),
134
142
  vue.h("div", { style: overlayStyle }),
135
143
  (isSelected || isHovered) && vue.h("div", { style: labelStyle }, label)
136
144
  ]
@@ -1,11 +1,26 @@
1
1
  import { defineComponent, inject, ref, h, provide, onMounted, onUnmounted, openBlock, createElementBlock, createVNode, unref, nextTick } from "vue";
2
- import { e as BLOX_REGISTRY_KEY, f as globalRefOf, G as GlobalBlockHost, u as useLocale } from "./routes-bhjTTXfU.js";
2
+ import { e as BLOX_REGISTRY_KEY, u as useLocale } from "./routes-CHfoa2Mk.js";
3
3
  function sendToEditor(msg) {
4
- window.parent.postMessage(msg, "*");
4
+ window.parent.postMessage(cloneForPostMessage(msg), "*");
5
5
  }
6
6
  function sendToPreview(iframe, msg) {
7
7
  var _a;
8
- (_a = iframe.contentWindow) == null ? void 0 : _a.postMessage(msg, "*");
8
+ (_a = iframe.contentWindow) == null ? void 0 : _a.postMessage(cloneForPostMessage(msg), "*");
9
+ }
10
+ function cloneForPostMessage(value) {
11
+ return stripNonCloneable(value);
12
+ }
13
+ function stripNonCloneable(value) {
14
+ if (typeof value === "function") return void 0;
15
+ if (value == null || typeof value !== "object") return value;
16
+ if (Array.isArray(value)) return value.map(stripNonCloneable);
17
+ const out = {};
18
+ for (const key of Object.keys(value)) {
19
+ const v = value[key];
20
+ if (typeof v === "function") continue;
21
+ out[key] = stripNonCloneable(v);
22
+ }
23
+ return out;
9
24
  }
10
25
  const PreviewRenderer = defineComponent({
11
26
  name: "PreviewRenderer",
@@ -91,8 +106,7 @@ const PreviewRenderer = defineComponent({
91
106
  const isSelected = props.selectedIndex === i;
92
107
  const isHovered = (props.hoveredIndex === i || localHovered.value === i) && !isSelected;
93
108
  const { label } = definition.schema;
94
- const globalRef = globalRefOf(block);
95
- const isGlobal = props.globalBlockTypes.includes(block.type) || !!globalRef;
109
+ const isGlobal = props.globalBlockTypes.includes(block.type);
96
110
  const palette = isGlobal ? GLOBAL : REGULAR;
97
111
  const overlayStyle = { ...overlayBaseFor(palette.rgb) };
98
112
  if (isSelected) {
@@ -123,13 +137,7 @@ const PreviewRenderer = defineComponent({
123
137
  "onMouseleave": onBlockLeave
124
138
  },
125
139
  [
126
- globalRef ? h(GlobalBlockHost, {
127
- component: definition.component,
128
- defaults: definition.schema.defaults,
129
- blockProps: block.props,
130
- globalRef,
131
- blockType: block.type
132
- }) : h(definition.component, { ...definition.schema.defaults, ...block.props }),
140
+ h(definition.component, { ...definition.schema.defaults, ...block.props }),
133
141
  h("div", { style: overlayStyle }),
134
142
  (isSelected || isHovered) && h("div", { style: labelStyle }, label)
135
143
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewRenderer.d.ts","sourceRoot":"","sources":["../src/PreviewRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;;;cAetB,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;cAGJ,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;;cAIvB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;IAGxC,oFAAoF;;cAEpE,QAAQ,CAAC,MAAM,EAAE,CAAC;uBACpB,MAAM,EAAE;;;;;;cAdN,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;cAGJ,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;;cAIvB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;IAGxC,oFAAoF;;cAEpE,QAAQ,CAAC,MAAM,EAAE,CAAC;uBACpB,MAAM,EAAE;;;;;;;;AAlBxB,wBAuIE"}
1
+ {"version":3,"file":"PreviewRenderer.d.ts","sourceRoot":"","sources":["../src/PreviewRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;;;cAatB,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;cAGJ,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;;cAIvB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;IAGxC,oFAAoF;;cAEpE,QAAQ,CAAC,MAAM,EAAE,CAAC;uBACpB,MAAM,EAAE;;;;;;cAdN,QAAQ,CAAC,KAAK,EAAE,CAAC;uBACnB,KAAK,EAAE;;;cAGJ,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;;cAIvB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;;;IAGxC,oFAAoF;;cAEpE,QAAQ,CAAC,MAAM,EAAE,CAAC;uBACpB,MAAM,EAAE;;;;;;;;AAlBxB,wBA8HE"}
@@ -37,14 +37,45 @@ export interface PageResolveRead {
37
37
  */
38
38
  alternates?: Record<string, string>;
39
39
  }
40
+ export interface WebsiteSeo {
41
+ default_meta_title?: string | null;
42
+ default_meta_description?: string | null;
43
+ default_og_image?: string | null;
44
+ site_name?: string | null;
45
+ canonical_base_url?: string | null;
46
+ noindex?: boolean;
47
+ favicon_url?: string | null;
48
+ webclip?: string | null;
49
+ twitter_site?: string | null;
50
+ }
51
+ export interface SiteVerification {
52
+ google?: string | null;
53
+ bing?: string | null;
54
+ }
55
+ export interface StructuredData {
56
+ org?: Record<string, unknown> | null;
57
+ org_by_locale?: Record<string, Record<string, unknown>>;
58
+ }
59
+ export interface SiteIntegrations {
60
+ plausible_site_id?: string | null;
61
+ netlify_site_id?: string | null;
62
+ }
63
+ export interface GlobalBlockRead {
64
+ id: string;
65
+ type: string;
66
+ props: Record<string, unknown>;
67
+ }
40
68
  export interface WebsiteRead {
41
69
  id: string;
42
70
  name: string;
43
71
  domain: string | null;
44
72
  default_locale: string;
45
73
  supported_locales: string[];
46
- meta: Record<string, unknown> | null;
47
- favicon_url: string | null;
74
+ seo: WebsiteSeo;
75
+ verification: SiteVerification;
76
+ structured_data: StructuredData;
77
+ integrations: SiteIntegrations;
78
+ global_blocks: GlobalBlockRead[];
48
79
  robots_txt: string | null;
49
80
  }
50
81
  export interface CollectionItem {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
package/dist/bridge.d.ts CHANGED
@@ -12,6 +12,8 @@ export interface BlockSchemaInfo {
12
12
  category?: string;
13
13
  thumbnail?: string;
14
14
  order?: number;
15
+ /** True for site-level global blocks (nav/footer). See {@link BlockMeta.global}. */
16
+ global?: boolean;
15
17
  }
16
18
  export type EditorMessage = {
17
19
  type: 'BLOX_INIT';
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAMD,MAAM,MAAM,aAAa,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE;AAC7B;;;;GAIG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;AACrD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAMnD,MAAM,MAAM,cAAc,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACpD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM3C,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAEjF"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,MAAM,MAAM,aAAa,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE;AAC7B;;;;GAIG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;AACrD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAMnD,MAAM,MAAM,cAAc,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACpD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM3C,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAEjF"}
@@ -1,31 +1,24 @@
1
1
  import { Ref } from 'vue';
2
- /**
3
- * Loader for a global/shared block's content.
4
- *
5
- * Receives nothing and returns the saved props object (or `null` when nothing
6
- * is saved yet). Usually backed by a datastore singleton.
7
- */
8
- export type GlobalBlockLoader<T> = () => Promise<T | null>;
9
2
  export interface UseGlobalBlockResult<T> {
10
- /** The loaded shared content, or `null` until the first successful load. */
3
+ /** The shared block content (props), or `null` when nothing is stored yet. */
11
4
  data: Ref<T | null>;
12
- /** True while a (re)load is in flight. */
5
+ /** Always false content is resolved with the page, no async load. Kept for API compat. */
13
6
  loading: Ref<boolean>;
14
- /** Manually trigger a reload. */
15
- refresh: () => Promise<void>;
7
+ /** Re-read from the current `$website.global_blocks` context. */
8
+ refresh: () => void;
16
9
  }
17
10
  /**
18
- * Load and reactively track a global/shared block's content (e.g. site nav or
19
- * footer, stored as a datastore singleton and shared across every page).
11
+ * Read a global/shared block's content (site nav, footer, …) from the already-
12
+ * resolved website context. Global blocks live on the website
13
+ * (`$website.global_blocks[type]`), embedded in the resolve response — so there
14
+ * is no loader and no extra request (§B.4).
20
15
  *
21
- * The content is loaded once on mount. Additionally, when rendered inside the
22
- * page-designer preview iframe, it listens for the `BLOX_REFRESH_GLOBAL` editor
23
- * message and re-fetches — so saving the block in the editor updates the live
24
- * preview instantly, without a page reload.
16
+ * When rendered inside the page-designer preview iframe, it still listens for
17
+ * the `BLOX_REFRESH_GLOBAL` editor message and re-reads, so editing the block
18
+ * updates the live preview instantly.
25
19
  *
26
- * @param blockType The block's type (e.g. `'TopnavBlox'`). Used to match
27
- * targeted refresh messages.
28
- * @param loader Async function that fetches the saved shared content.
20
+ * @param blockType The block's type (e.g. `'TopNav'`). Used to look up its
21
+ * stored props and to match targeted refresh messages.
29
22
  */
30
- export declare function useGlobalBlock<T extends Record<string, unknown>>(blockType: string, loader: GlobalBlockLoader<T>): UseGlobalBlockResult<T>;
23
+ export declare function useGlobalBlock<T extends Record<string, unknown>>(blockType: string): UseGlobalBlockResult<T>;
31
24
  //# sourceMappingURL=useGlobalBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalBlock.d.ts","sourceRoot":"","sources":["../../src/composables/useGlobalBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAI9B;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAE1D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACtC,4EAA4E;IAC5E,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACnB,0CAA0C;IAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,iCAAiC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC1B,oBAAoB,CAAC,CAAC,CAAC,CAqCzB"}
1
+ {"version":3,"file":"useGlobalBlock.d.ts","sourceRoot":"","sources":["../../src/composables/useGlobalBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAI9B,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACtC,8EAA8E;IAC9E,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACnB,4FAA4F;IAC5F,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,iEAAiE;IACjE,OAAO,EAAE,MAAM,IAAI,CAAA;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,SAAS,EAAE,MAAM,GACf,oBAAoB,CAAC,CAAC,CAAC,CAoCzB"}
@@ -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;AAkB5D,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;IA+B3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA4BnE,+EAA+E;IAC/E,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBpC,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;AAkB5D,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;IAgC3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA6BnE,+EAA+E;IAC/E,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;CAoC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
@@ -40,6 +40,14 @@ export interface BlockMeta {
40
40
  thumbnail?: string;
41
41
  /** Sort order in the editor block picker. Lower values appear first. Defaults to 100. */
42
42
  order?: number;
43
+ /**
44
+ * When true, this block is a *global* (site-level) block: its content is
45
+ * shared across every page and stored on the website (`blox_global_block`),
46
+ * not in each page's blocks. Nav/footer are the canonical examples. The admin
47
+ * lists `global: true` blocks for editing; `useGlobalBlock('<name>')` reads
48
+ * the shared content at render (§B).
49
+ */
50
+ global?: boolean;
43
51
  }
44
52
  /** A Vue SFC module that has `export const <name> = defineBlock(...)` in its `<script setup>`. */
45
53
  export interface BlockModule {
@@ -1 +1 @@
1
- {"version":3,"file":"defineBlock.d.ts","sourceRoot":"","sources":["../src/defineBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,EAAE,CAAA;AAEjF,MAAM,WAAW,SAAS;IACzB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAmBtD"}
1
+ {"version":3,"file":"defineBlock.d.ts","sourceRoot":"","sources":["../src/defineBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,EAAE,CAAA;AAEjF,MAAM,WAAW,SAAS;IACzB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAmBtD"}
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const routes = require("./routes-C97aL4cQ.cjs");
4
- const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-C0ZVst7R.cjs");
3
+ const routes = require("./routes-0bOKkut4.cjs");
4
+ const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-kv9T9yLc.cjs");
5
5
  const vue = require("vue");
6
6
  const vueRouter = require("vue-router");
7
7
  const pinia = require("pinia");
@@ -40,27 +40,26 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
40
40
  };
41
41
  }
42
42
  });
43
- function useGlobalBlock(blockType, loader) {
44
- const data = vue.ref(null);
43
+ function useGlobalBlock(blockType) {
44
+ const contexts = vue.inject("contexts");
45
+ function read() {
46
+ var _a;
47
+ const website = (_a = contexts == null ? void 0 : contexts.value) == null ? void 0 : _a.$website;
48
+ const blocks = website == null ? void 0 : website.global_blocks;
49
+ return (blocks == null ? void 0 : blocks[blockType]) ?? null;
50
+ }
51
+ const data = vue.ref(read());
45
52
  const loading = vue.ref(false);
46
- async function refresh() {
47
- loading.value = true;
48
- try {
49
- const loaded = await loader();
50
- if (loaded) data.value = loaded;
51
- } catch (e) {
52
- console.warn(`[useGlobalBlock] failed to load "${blockType}", using defaults`, e);
53
- } finally {
54
- loading.value = false;
55
- }
53
+ function refresh() {
54
+ data.value = read();
56
55
  }
57
56
  function onEditorMessage(event) {
58
57
  const msg = event.data;
59
58
  if ((msg == null ? void 0 : msg.type) !== "BLOX_REFRESH_GLOBAL") return;
60
- if (!msg.block || msg.block === blockType) void refresh();
59
+ if (!msg.block || msg.block === blockType) refresh();
61
60
  }
62
61
  vue.onMounted(() => {
63
- void refresh();
62
+ refresh();
64
63
  if (typeof window !== "undefined") {
65
64
  window.addEventListener("message", onEditorMessage);
66
65
  }
@@ -326,6 +325,7 @@ function definitionToEntry(type, def) {
326
325
  dataSource: !!schema.dataSource,
327
326
  category: schema.category,
328
327
  order: schema.order,
328
+ global: schema.global,
329
329
  propsSchema,
330
330
  defaults: schema.defaults
331
331
  };
@@ -342,14 +342,11 @@ exports.BLOX_ADMIN_CONFIG_KEY = routes.BLOX_ADMIN_CONFIG_KEY;
342
342
  exports.BLOX_CONFIG_KEY = routes.BLOX_CONFIG_KEY;
343
343
  exports.BLOX_DATA_KEY = routes.BLOX_DATA_KEY;
344
344
  exports.BLOX_DATA_WINDOW_KEY = routes.BLOX_DATA_WINDOW_KEY;
345
- exports.BLOX_GLOBAL_RESOLVER_KEY = routes.BLOX_GLOBAL_RESOLVER_KEY;
346
345
  exports.BLOX_LOCALE_STRATEGY_KEY = routes.BLOX_LOCALE_STRATEGY_KEY;
347
346
  exports.BloxInstance = routes.BloxInstance;
348
347
  exports.CmsPageView = routes._sfc_main$1;
349
348
  exports.ContentDetailView = routes._sfc_main$2;
350
349
  exports.ContentHost = routes._sfc_main$3;
351
- exports.GLOBAL_REF_KEY = routes.GLOBAL_REF_KEY;
352
- exports.GlobalBlockHost = routes.GlobalBlockHost;
353
350
  exports.PageRenderer = routes.PageRenderer;
354
351
  exports.classifyLink = routes.classifyLink;
355
352
  exports.collectBloxData = routes.collectBloxData;
@@ -365,7 +362,6 @@ exports.getItemById = routes.getItemById;
365
362
  exports.getItemBySlug = routes.getItemBySlug;
366
363
  exports.getWebsiteId = routes.getWebsiteId;
367
364
  exports.getWebsiteIdSync = routes.getWebsiteIdSync;
368
- exports.globalRefOf = routes.globalRefOf;
369
365
  exports.installContentFallback = routes.installContentFallback;
370
366
  exports.installSmartLinks = routes.installSmartLinks;
371
367
  exports.isAbsoluteExternal = routes.isAbsoluteExternal;
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { default as BloxRouterView } from './components/BloxRouterView.vue';
8
8
  export { default as AdminEditBar } from './admin/AdminEditBar.vue';
9
9
  export { useBloxEdit } from './admin/useBloxEdit';
10
10
  export { useGlobalBlock } from './composables/useGlobalBlock';
11
- export type { GlobalBlockLoader, UseGlobalBlockResult } from './composables/useGlobalBlock';
11
+ export type { UseGlobalBlockResult } from './composables/useGlobalBlock';
12
12
  export { BLOX_DATA_KEY, BLOX_DATA_WINDOW_KEY, collectBloxData, collectBloxSeo, provideBloxData, useData, useSeo } from './data/useData';
13
13
  export type { BloxDataRegistry, BloxSeoHead, UseDataOptions, UseDataResult } from './data/useData';
14
14
  export { useLocale } from './composables/useLocale';
@@ -33,8 +33,6 @@ export { default as PreviewRenderer } from './PreviewRenderer';
33
33
  export { buildBloxManifest, serializeRegistry } from './manifest';
34
34
  export type { BloxManifest, BlockManifestEntry } from './manifest';
35
35
  export type { BlockComponent, BlockDefinition, BlockSchema } from './schema';
36
- export { BLOX_ADMIN_CONFIG_KEY, BLOX_CONFIG_KEY, BLOX_GLOBAL_RESOLVER_KEY, BLOX_LOCALE_STRATEGY_KEY } from './symbols';
37
- export type { BloxAdminConfig, BloxConfig, GlobalBlockResolver } from './symbols';
38
- export { GLOBAL_REF_KEY, globalRefOf } from './globalRef';
39
- export { default as GlobalBlockHost } from './GlobalBlockHost';
36
+ export { BLOX_ADMIN_CONFIG_KEY, BLOX_CONFIG_KEY, BLOX_LOCALE_STRATEGY_KEY } from './symbols';
37
+ export type { BloxAdminConfig, BloxConfig } from './symbols';
40
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { h as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, n as normalizeLink, j as useSeo, k as getRegistryData, l as getItemBySlug, m as getItemById, o as getContentRoute, p as provideBloxData, d as createBlox, g as generateContentRoutes, q as installContentFallback, i as installLocaleAwareResolve, a as setActiveLocale, r as installSmartLinks } from "./routes-bhjTTXfU.js";
2
- import { _, t, v, w, B, x, y, z, A, C, D, G, P, E, c, b, F, H, I, J, K, L, f, M, N, O, Q, R, S, s, T, U, V, W } from "./routes-bhjTTXfU.js";
3
- import { _ as _2, P as P2, s as s2, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-DHb-NJ4C.js";
4
- import { defineComponent, resolveComponent, openBlock, createBlock, withCtx, Transition, resolveDynamicComponent, ref, onMounted, onUnmounted, inject, computed, onServerPrefetch, toValue, createApp, h, Suspense, markRaw } from "vue";
1
+ import { f as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, n as normalizeLink, h as useSeo, j as getRegistryData, k as getItemBySlug, l as getItemById, m as getContentRoute, p as provideBloxData, d as createBlox, g as generateContentRoutes, o as installContentFallback, i as installLocaleAwareResolve, a as setActiveLocale, q as installSmartLinks } from "./routes-CHfoa2Mk.js";
2
+ import { _, r, t, v, B, w, x, y, z, P, A, c, b, C, D, E, F, G, H, I, J, K, L, M, N, s, O, Q, R, S } from "./routes-CHfoa2Mk.js";
3
+ import { _ as _2, P as P2, s as s2, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-lotrZDHC.js";
4
+ import { defineComponent, resolveComponent, openBlock, createBlock, withCtx, Transition, resolveDynamicComponent, inject, ref, onMounted, onUnmounted, computed, onServerPrefetch, toValue, createApp, h, Suspense, markRaw } from "vue";
5
5
  import { useRouter, useRoute } from "vue-router";
6
6
  import { createPinia } from "pinia";
7
7
  import { installBloxStateCache, installCollectionCache } from "./ssg/client.mjs";
@@ -18,7 +18,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  return (_ctx, _cache) => {
19
19
  const _component_RouterView = resolveComponent("RouterView");
20
20
  return openBlock(), createBlock(_component_RouterView, null, {
21
- default: withCtx(({ Component, route: r }) => [
21
+ default: withCtx(({ Component, route: r2 }) => [
22
22
  __props.transition ? (openBlock(), createBlock(Transition, {
23
23
  key: 0,
24
24
  name: __props.transition,
@@ -26,12 +26,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
26
  }, {
27
27
  default: withCtx(() => [
28
28
  (openBlock(), createBlock(resolveDynamicComponent(Component), {
29
- key: viewKey(r.matched, r.path)
29
+ key: viewKey(r2.matched, r2.path)
30
30
  }))
31
31
  ]),
32
32
  _: 2
33
33
  }, 1032, ["name"])) : (openBlock(), createBlock(resolveDynamicComponent(Component), {
34
- key: viewKey(r.matched, r.path)
34
+ key: viewKey(r2.matched, r2.path)
35
35
  }))
36
36
  ]),
37
37
  _: 1
@@ -39,27 +39,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
39
39
  };
40
40
  }
41
41
  });
42
- function useGlobalBlock(blockType, loader) {
43
- const data = ref(null);
42
+ function useGlobalBlock(blockType) {
43
+ const contexts = inject("contexts");
44
+ function read() {
45
+ var _a;
46
+ const website = (_a = contexts == null ? void 0 : contexts.value) == null ? void 0 : _a.$website;
47
+ const blocks = website == null ? void 0 : website.global_blocks;
48
+ return (blocks == null ? void 0 : blocks[blockType]) ?? null;
49
+ }
50
+ const data = ref(read());
44
51
  const loading = ref(false);
45
- async function refresh() {
46
- loading.value = true;
47
- try {
48
- const loaded = await loader();
49
- if (loaded) data.value = loaded;
50
- } catch (e) {
51
- console.warn(`[useGlobalBlock] failed to load "${blockType}", using defaults`, e);
52
- } finally {
53
- loading.value = false;
54
- }
52
+ function refresh() {
53
+ data.value = read();
55
54
  }
56
55
  function onEditorMessage(event) {
57
56
  const msg = event.data;
58
57
  if ((msg == null ? void 0 : msg.type) !== "BLOX_REFRESH_GLOBAL") return;
59
- if (!msg.block || msg.block === blockType) void refresh();
58
+ if (!msg.block || msg.block === blockType) refresh();
60
59
  }
61
60
  onMounted(() => {
62
- void refresh();
61
+ refresh();
63
62
  if (typeof window !== "undefined") {
64
63
  window.addEventListener("message", onEditorMessage);
65
64
  }
@@ -325,6 +324,7 @@ function definitionToEntry(type, def) {
325
324
  dataSource: !!schema.dataSource,
326
325
  category: schema.category,
327
326
  order: schema.order,
327
+ global: schema.global,
328
328
  propsSchema,
329
329
  defaults: schema.defaults
330
330
  };
@@ -338,60 +338,56 @@ function buildBloxManifest(blox) {
338
338
  }
339
339
  export {
340
340
  _ as AdminEditBar,
341
- t as BLOX_ADMIN_CONFIG_KEY,
342
- v as BLOX_CONFIG_KEY,
343
- w as BLOX_DATA_KEY,
341
+ r as BLOX_ADMIN_CONFIG_KEY,
342
+ t as BLOX_CONFIG_KEY,
343
+ v as BLOX_DATA_KEY,
344
344
  B as BLOX_DATA_WINDOW_KEY,
345
- x as BLOX_GLOBAL_RESOLVER_KEY,
346
345
  BLOX_LOCALE_STRATEGY_KEY,
347
- y as BloxInstance,
346
+ w as BloxInstance,
348
347
  _sfc_main as BloxRouterView,
349
- z as CmsPageView,
350
- A as ContentDetailView,
351
- C as ContentHost,
352
- D as GLOBAL_REF_KEY,
353
- G as GlobalBlockHost,
348
+ x as CmsPageView,
349
+ y as ContentDetailView,
350
+ z as ContentHost,
354
351
  P as PageRenderer,
355
352
  _2 as PreviewApp,
356
353
  P2 as PreviewRenderer,
357
354
  buildBloxManifest,
358
- E as classifyLink,
355
+ A as classifyLink,
359
356
  c as collectBloxData,
360
357
  b as collectBloxSeo,
361
- F as configureApi,
362
- H as contentRoutes,
358
+ C as configureApi,
359
+ D as contentRoutes,
363
360
  createBlox,
364
361
  createBloxApp,
365
362
  defineBlock,
366
- I as defineContent,
363
+ E as defineContent,
367
364
  generateContentRoutes,
368
365
  getContentRoute,
369
- J as getContentRouteByCollection,
366
+ F as getContentRouteByCollection,
370
367
  getItemById,
371
368
  getItemBySlug,
372
- K as getWebsiteId,
373
- L as getWebsiteIdSync,
374
- f as globalRefOf,
369
+ G as getWebsiteId,
370
+ H as getWebsiteIdSync,
375
371
  injectPlausible,
376
372
  installContentFallback,
377
373
  installSmartLinks,
378
- M as isAbsoluteExternal,
379
- N as isSpecialScheme,
380
- O as listItems,
374
+ I as isAbsoluteExternal,
375
+ J as isSpecialScheme,
376
+ K as listItems,
381
377
  normalizeLink,
382
- Q as normalizeTo,
378
+ L as normalizeTo,
383
379
  provideBloxData,
384
- R as provideContentItem,
385
- S as resolvePath,
380
+ M as provideContentItem,
381
+ N as resolvePath,
386
382
  s2 as sendToEditor,
387
383
  a as sendToPreview,
388
384
  serializeRegistry,
389
385
  s as setApiOrigin,
390
- T as toInternalPath,
391
- U as useBloxEdit,
392
- V as useContentItem,
386
+ O as toInternalPath,
387
+ Q as useBloxEdit,
388
+ R as useContentItem,
393
389
  useContentSeo,
394
- W as useData,
390
+ S as useData,
395
391
  useGlobalBlock,
396
392
  useLocale,
397
393
  useLocaleNav,
@@ -23,6 +23,8 @@ export interface BlockManifestEntry {
23
23
  category?: string;
24
24
  /** Sort order in the editor block picker (lower first). */
25
25
  order?: number;
26
+ /** True for site-level global blocks (nav/footer). */
27
+ global?: boolean;
26
28
  /**
27
29
  * JSON Schema for the block's editable props (from FormFlow
28
30
  * `SchemaDefinition.toJSONSchema()`). `null` when the block has no
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC5B;AAmCD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACvC,YAAY,CAKd;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAElE"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC5B;AAoCD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACvC,YAAY,CAKd;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAElE"}