@bagelink/blox 1.15.147 → 1.15.151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewApp-T3i0jOkB.js → PreviewApp-BFlmJyS_.js} +1 -1
- package/dist/{PreviewApp-0YmiHBi5.cjs → PreviewApp-F96n6nDi.cjs} +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-C0i8ucHq.js → PreviewApp.vue_vue_type_style_index_0_lang-Bi812qOg.js} +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-CwX30h--.cjs → PreviewApp.vue_vue_type_style_index_0_lang-hnJ-Wljq.cjs} +1 -1
- package/dist/{core-VQR6lrvO.js → core-gh9n4Dh5.js} +5 -1
- package/dist/{core-DmxEiWAR.cjs → core-kcqrnwf4.cjs} +5 -1
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/index.cjs +37 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +38 -3
- package/dist/manifest.d.ts +51 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/ssg/index.cjs +1 -1
- package/dist/ssg/index.mjs +1 -1
- package/dist/vite-plugin.cjs +87 -1070
- package/dist/vite-plugin.d.ts +25 -0
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.mjs +65 -1070
- package/package.json +1 -1
|
@@ -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-
|
|
3
|
+
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-hnJ-Wljq.cjs");
|
|
4
4
|
exports.default = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, inject, ref, h, provide, onMounted, onUnmounted, openBlock, createElementBlock, createVNode, unref, nextTick } from "vue";
|
|
2
|
-
import { B as BLOX_REGISTRY_KEY, g as globalRefOf, G as GlobalBlockHost, u as useLocale } from "./core-
|
|
2
|
+
import { B as BLOX_REGISTRY_KEY, g as globalRefOf, G as GlobalBlockHost, u as useLocale } from "./core-gh9n4Dh5.js";
|
|
3
3
|
function sendToEditor(msg) {
|
|
4
4
|
window.parent.postMessage(msg, "*");
|
|
5
5
|
}
|
|
@@ -595,6 +595,10 @@ class BloxInstance {
|
|
|
595
595
|
}
|
|
596
596
|
return this;
|
|
597
597
|
}
|
|
598
|
+
/** The resolved block registry (type → definition with component + schema). */
|
|
599
|
+
getRegistry() {
|
|
600
|
+
return this._registry;
|
|
601
|
+
}
|
|
598
602
|
registerRoutes(router) {
|
|
599
603
|
if (this._routeRegistered) return this;
|
|
600
604
|
if (this._config.supportedLocales.length > 0) {
|
|
@@ -609,7 +613,7 @@ class BloxInstance {
|
|
|
609
613
|
}
|
|
610
614
|
router.addRoute({
|
|
611
615
|
path: "/_blox_preview",
|
|
612
|
-
component: () => import("./PreviewApp-
|
|
616
|
+
component: () => import("./PreviewApp-BFlmJyS_.js"),
|
|
613
617
|
beforeEnter: () => window.parent !== window ? true : "/"
|
|
614
618
|
});
|
|
615
619
|
router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$1 });
|
|
@@ -596,6 +596,10 @@ class BloxInstance {
|
|
|
596
596
|
}
|
|
597
597
|
return this;
|
|
598
598
|
}
|
|
599
|
+
/** The resolved block registry (type → definition with component + schema). */
|
|
600
|
+
getRegistry() {
|
|
601
|
+
return this._registry;
|
|
602
|
+
}
|
|
599
603
|
registerRoutes(router) {
|
|
600
604
|
if (this._routeRegistered) return this;
|
|
601
605
|
if (this._config.supportedLocales.length > 0) {
|
|
@@ -610,7 +614,7 @@ class BloxInstance {
|
|
|
610
614
|
}
|
|
611
615
|
router.addRoute({
|
|
612
616
|
path: "/_blox_preview",
|
|
613
|
-
component: () => Promise.resolve().then(() => require("./PreviewApp-
|
|
617
|
+
component: () => Promise.resolve().then(() => require("./PreviewApp-F96n6nDi.cjs")),
|
|
614
618
|
beforeEnter: () => window.parent !== window ? true : "/"
|
|
615
619
|
});
|
|
616
620
|
router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$1 });
|
package/dist/core.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ export declare class BloxInstance {
|
|
|
40
40
|
constructor(options?: BloxOptions);
|
|
41
41
|
registerModules(modules: BlockModule[] | Record<string, BlockModule>): this;
|
|
42
42
|
registerComponents(components: Record<string, BloxComponent>): this;
|
|
43
|
+
/** The resolved block registry (type → definition with component + schema). */
|
|
44
|
+
getRegistry(): Record<string, BlockDefinition>;
|
|
43
45
|
registerRoutes(router: Router): this;
|
|
44
46
|
install(app: App, options?: BloxOptions): void;
|
|
45
47
|
}
|
package/dist/core.d.ts.map
CHANGED
|
@@ -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,EAAkB,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;AAmB5D,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,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IA8B3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA2BnE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;CAkC9C;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,EAAkB,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;AAmB5D,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,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IA8B3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA2BnE,+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;CAkC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const core = require("./core-
|
|
4
|
-
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-
|
|
3
|
+
const core = require("./core-kcqrnwf4.cjs");
|
|
4
|
+
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-hnJ-Wljq.cjs");
|
|
5
5
|
const vue = require("vue");
|
|
6
6
|
const vueRouter = require("vue-router");
|
|
7
7
|
const pinia = require("pinia");
|
|
@@ -133,6 +133,39 @@ function defineBlock(meta) {
|
|
|
133
133
|
}
|
|
134
134
|
return meta;
|
|
135
135
|
}
|
|
136
|
+
const MANIFEST_VERSION = 1;
|
|
137
|
+
function definitionToEntry(type, def) {
|
|
138
|
+
const { schema } = def;
|
|
139
|
+
let propsSchema = null;
|
|
140
|
+
const fields = schema.fields;
|
|
141
|
+
if (fields && typeof fields.toJSONSchema === "function") {
|
|
142
|
+
const hasFields = fields._fields && Object.keys(fields._fields).length > 0;
|
|
143
|
+
if (hasFields) {
|
|
144
|
+
try {
|
|
145
|
+
propsSchema = fields.toJSONSchema();
|
|
146
|
+
} catch {
|
|
147
|
+
propsSchema = null;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
type,
|
|
153
|
+
label: schema.label,
|
|
154
|
+
icon: schema.icon,
|
|
155
|
+
description: schema.description,
|
|
156
|
+
dataSource: schema.dataSource,
|
|
157
|
+
order: schema.order,
|
|
158
|
+
propsSchema,
|
|
159
|
+
defaults: schema.defaults
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function serializeRegistry(registry) {
|
|
163
|
+
const blocks = Object.entries(registry).map(([type, def]) => definitionToEntry(type, def)).sort((a, b) => (a.order ?? 100) - (b.order ?? 100) || a.label.localeCompare(b.label));
|
|
164
|
+
return { version: MANIFEST_VERSION, blocks };
|
|
165
|
+
}
|
|
166
|
+
function buildBloxManifest(blox) {
|
|
167
|
+
return serializeRegistry(blox.getRegistry());
|
|
168
|
+
}
|
|
136
169
|
exports.AdminEditBar = core._sfc_main;
|
|
137
170
|
exports.BLOX_ADMIN_CONFIG_KEY = core.BLOX_ADMIN_CONFIG_KEY;
|
|
138
171
|
exports.BLOX_CONFIG_KEY = core.BLOX_CONFIG_KEY;
|
|
@@ -156,8 +189,10 @@ exports.PreviewApp = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
|
|
|
156
189
|
exports.PreviewRenderer = PreviewApp_vue_vue_type_style_index_0_lang.PreviewRenderer;
|
|
157
190
|
exports.sendToEditor = PreviewApp_vue_vue_type_style_index_0_lang.sendToEditor;
|
|
158
191
|
exports.sendToPreview = PreviewApp_vue_vue_type_style_index_0_lang.sendToPreview;
|
|
192
|
+
exports.buildBloxManifest = buildBloxManifest;
|
|
159
193
|
exports.createBloxApp = createBloxApp;
|
|
160
194
|
exports.defineBlock = defineBlock;
|
|
195
|
+
exports.serializeRegistry = serializeRegistry;
|
|
161
196
|
exports.useGlobalBlock = useGlobalBlock;
|
|
162
197
|
exports.useLocaleNav = useLocaleNav;
|
|
163
198
|
exports.usePageContext = usePageContext;
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export type { LocaleStrategy } from './localeStrategy';
|
|
|
22
22
|
export { default as PageRenderer } from './PageRenderer';
|
|
23
23
|
export { default as PreviewApp } from './PreviewApp.vue';
|
|
24
24
|
export { default as PreviewRenderer } from './PreviewRenderer';
|
|
25
|
+
export { buildBloxManifest, serializeRegistry } from './manifest';
|
|
26
|
+
export type { BloxManifest, BlockManifestEntry } from './manifest';
|
|
25
27
|
export type { BlockComponent, BlockDefinition, BlockSchema } from './schema';
|
|
26
28
|
export { BLOX_ADMIN_CONFIG_KEY, BLOX_CONFIG_KEY, BLOX_GLOBAL_RESOLVER_KEY, BLOX_LOCALE_STRATEGY_KEY } from './symbols';
|
|
27
29
|
export type { BloxAdminConfig, BloxConfig, GlobalBlockResolver } from './symbols';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClG,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,YAAY,EACX,cAAc,EACd,KAAK,EAEL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,WAAW,GACX,MAAM,aAAa,CAAA;AAIpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAK7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAKxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3D,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAK9D,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI5E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEtH,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClG,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,YAAY,EACX,cAAc,EACd,KAAK,EAEL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,WAAW,GACX,MAAM,aAAa,CAAA;AAIpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAK7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAKxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3D,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAK9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAKlE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI5E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEtH,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, c as createBlox } from "./core-
|
|
2
|
-
import { _, b, d, e, f, h, i, G, P, j, k, l, g, m, r, n } from "./core-
|
|
3
|
-
import { _ as _2, P as P2, s, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-
|
|
1
|
+
import { a as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, c as createBlox } from "./core-gh9n4Dh5.js";
|
|
2
|
+
import { _, b, d, e, f, h, i, G, P, j, k, l, g, m, r, n } from "./core-gh9n4Dh5.js";
|
|
3
|
+
import { _ as _2, P as P2, s, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-Bi812qOg.js";
|
|
4
4
|
import { ref, onMounted, onUnmounted, inject, computed, createApp, markRaw } from "vue";
|
|
5
5
|
import { useRouter } from "vue-router";
|
|
6
6
|
import { createPinia } from "pinia";
|
|
@@ -132,6 +132,39 @@ function defineBlock(meta) {
|
|
|
132
132
|
}
|
|
133
133
|
return meta;
|
|
134
134
|
}
|
|
135
|
+
const MANIFEST_VERSION = 1;
|
|
136
|
+
function definitionToEntry(type, def) {
|
|
137
|
+
const { schema } = def;
|
|
138
|
+
let propsSchema = null;
|
|
139
|
+
const fields = schema.fields;
|
|
140
|
+
if (fields && typeof fields.toJSONSchema === "function") {
|
|
141
|
+
const hasFields = fields._fields && Object.keys(fields._fields).length > 0;
|
|
142
|
+
if (hasFields) {
|
|
143
|
+
try {
|
|
144
|
+
propsSchema = fields.toJSONSchema();
|
|
145
|
+
} catch {
|
|
146
|
+
propsSchema = null;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
type,
|
|
152
|
+
label: schema.label,
|
|
153
|
+
icon: schema.icon,
|
|
154
|
+
description: schema.description,
|
|
155
|
+
dataSource: schema.dataSource,
|
|
156
|
+
order: schema.order,
|
|
157
|
+
propsSchema,
|
|
158
|
+
defaults: schema.defaults
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function serializeRegistry(registry) {
|
|
162
|
+
const blocks = Object.entries(registry).map(([type, def]) => definitionToEntry(type, def)).sort((a2, b2) => (a2.order ?? 100) - (b2.order ?? 100) || a2.label.localeCompare(b2.label));
|
|
163
|
+
return { version: MANIFEST_VERSION, blocks };
|
|
164
|
+
}
|
|
165
|
+
function buildBloxManifest(blox) {
|
|
166
|
+
return serializeRegistry(blox.getRegistry());
|
|
167
|
+
}
|
|
135
168
|
export {
|
|
136
169
|
_ as AdminEditBar,
|
|
137
170
|
b as BLOX_ADMIN_CONFIG_KEY,
|
|
@@ -145,6 +178,7 @@ export {
|
|
|
145
178
|
P as PageRenderer,
|
|
146
179
|
_2 as PreviewApp,
|
|
147
180
|
P2 as PreviewRenderer,
|
|
181
|
+
buildBloxManifest,
|
|
148
182
|
j as configureApi,
|
|
149
183
|
createBlox,
|
|
150
184
|
createBloxApp,
|
|
@@ -156,6 +190,7 @@ export {
|
|
|
156
190
|
r as resolvePath,
|
|
157
191
|
s as sendToEditor,
|
|
158
192
|
a as sendToPreview,
|
|
193
|
+
serializeRegistry,
|
|
159
194
|
n as useBloxEdit,
|
|
160
195
|
useGlobalBlock,
|
|
161
196
|
useLocale,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BloxInstance } from './core';
|
|
2
|
+
import { BlockDefinition } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* Backend-friendly description of a single registered block.
|
|
5
|
+
*
|
|
6
|
+
* This is the shape stored on the Blox `Website.block_manifest` and served to
|
|
7
|
+
* agents via the blox MCP `describe_blocks` tool. It contains ONLY serializable
|
|
8
|
+
* data (no Vue components, no functions) so it can be persisted as JSON and read
|
|
9
|
+
* by any runtime.
|
|
10
|
+
*/
|
|
11
|
+
export interface BlockManifestEntry {
|
|
12
|
+
/** Block type key — matches `block.type` in page content. */
|
|
13
|
+
type: string;
|
|
14
|
+
/** Human-readable label shown in the editor. */
|
|
15
|
+
label: string;
|
|
16
|
+
/** Material icon name. */
|
|
17
|
+
icon?: string;
|
|
18
|
+
/** What the block is for — helps an agent pick the right block. */
|
|
19
|
+
description?: string;
|
|
20
|
+
/** True when the block fetches its own data from a datastore collection. */
|
|
21
|
+
dataSource?: boolean;
|
|
22
|
+
/** Sort order in the editor block picker (lower first). */
|
|
23
|
+
order?: number;
|
|
24
|
+
/**
|
|
25
|
+
* JSON Schema for the block's editable props (from FormFlow
|
|
26
|
+
* `SchemaDefinition.toJSONSchema()`). `null` when the block has no
|
|
27
|
+
* configurable props (static / i18n-driven content).
|
|
28
|
+
*/
|
|
29
|
+
propsSchema: Record<string, unknown> | null;
|
|
30
|
+
/** Default prop values, merged over props at render time. */
|
|
31
|
+
defaults?: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
export interface BloxManifest {
|
|
34
|
+
/** Manifest format version (bump on breaking shape changes). */
|
|
35
|
+
version: number;
|
|
36
|
+
/** All registered blocks, sorted by `order` then `label`. */
|
|
37
|
+
blocks: BlockManifestEntry[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build a serializable manifest from a resolved block registry.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* const manifest = serializeRegistry(blox.getRegistry())
|
|
44
|
+
* await fetch('/api/blox/websites/<id>/manifest', {
|
|
45
|
+
* method: 'PUT', body: JSON.stringify(manifest),
|
|
46
|
+
* })
|
|
47
|
+
*/
|
|
48
|
+
export declare function serializeRegistry(registry: Record<string, BlockDefinition>): BloxManifest;
|
|
49
|
+
/** Convenience: build a manifest directly from a BloxInstance. */
|
|
50
|
+
export declare function buildBloxManifest(blox: BloxInstance): BloxManifest;
|
|
51
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +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,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;AAkCD;;;;;;;;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"}
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -26,7 +26,7 @@ const prerender = require("../prerender-DH6Arhpk.cjs");
|
|
|
26
26
|
const ssg_client = require("./client.cjs");
|
|
27
27
|
const pinia = require("pinia");
|
|
28
28
|
const vue = require("vue");
|
|
29
|
-
const core = require("../core-
|
|
29
|
+
const core = require("../core-kcqrnwf4.cjs");
|
|
30
30
|
async function renderBloxSsgPage(options) {
|
|
31
31
|
const {
|
|
32
32
|
url,
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { BLOX_STATE_WINDOW_KEY, BLOX_COLLECTIONS_WINDOW_KEY, BLOX_WEBSITE_ID_WIN
|
|
|
4
4
|
import { getCollectionCache, getEmbeddedWebsiteId, installBloxStateCache, installCollectionCache } from "./client.mjs";
|
|
5
5
|
import { createPinia } from "pinia";
|
|
6
6
|
import { createSSRApp, markRaw } from "vue";
|
|
7
|
-
import { c as createBlox } from "../core-
|
|
7
|
+
import { c as createBlox } from "../core-gh9n4Dh5.js";
|
|
8
8
|
async function renderBloxSsgPage(options) {
|
|
9
9
|
const {
|
|
10
10
|
url,
|