@bagelink/blox 1.15.170 → 1.15.172
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-CwB2kJi3.js → PreviewApp-CsC6qej1.js} +1 -1
- package/dist/{PreviewApp-DqRHk5sz.cjs → PreviewApp-Dz003khp.cjs} +1 -1
- package/dist/PreviewApp.vue.d.ts.map +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-B1SNJnOd.cjs → PreviewApp.vue_vue_type_style_index_0_lang-BNKK7Vhs.cjs} +5 -2
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-BVTlfTLk.js → PreviewApp.vue_vue_type_style_index_0_lang-C1SwhjdY.js} +5 -2
- package/dist/bridge.d.ts +4 -1
- package/dist/bridge.d.ts.map +1 -1
- package/dist/components/LocaleRouterLink.vue.d.ts +2 -0
- package/dist/components/LocaleRouterLink.vue.d.ts.map +1 -1
- package/dist/composables/useLocaleNav.d.ts.map +1 -1
- package/dist/{core-D8O506WZ.js → core-CbOrSpOU.js} +141 -21
- package/dist/{core-jis2RkPA.cjs → core-fPjj9xyJ.cjs} +132 -12
- package/dist/core.d.ts.map +1 -1
- package/dist/createBloxApp.d.ts.map +1 -1
- package/dist/defineBlock.d.ts +25 -2
- package/dist/defineBlock.d.ts.map +1 -1
- package/dist/index.cjs +15 -5
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +28 -18
- package/dist/localeStrategy.d.ts.map +1 -1
- package/dist/manifest.d.ts +2 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/schema.d.ts +5 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/smartLinks.d.ts +31 -0
- package/dist/smartLinks.d.ts.map +1 -0
- package/dist/ssg/index.cjs +1 -1
- package/dist/ssg/index.mjs +1 -1
- package/dist/vite-plugin.cjs +12 -2
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.mjs +12 -2
- 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-BNKK7Vhs.cjs");
|
|
4
4
|
exports.default = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewApp.vue.d.ts","sourceRoot":"","sources":["../src/PreviewApp.vue"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"PreviewApp.vue.d.ts","sourceRoot":"","sources":["../src/PreviewApp.vue"],"names":[],"mappings":";AAqSA,wBAMG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const vue = require("vue");
|
|
3
|
-
const core = require("./core-
|
|
3
|
+
const core = require("./core-fPjj9xyJ.cjs");
|
|
4
4
|
function sendToEditor(msg) {
|
|
5
5
|
window.parent.postMessage(msg, "*");
|
|
6
6
|
}
|
|
@@ -173,7 +173,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
173
173
|
if (msg.index !== null) {
|
|
174
174
|
vue.nextTick(() => {
|
|
175
175
|
const el = document.querySelector(`[data-blox-index="${msg.index}"]`);
|
|
176
|
-
|
|
176
|
+
if (!el) return;
|
|
177
|
+
const OFFSET = 72;
|
|
178
|
+
const top = el.getBoundingClientRect().top + window.scrollY - OFFSET;
|
|
179
|
+
window.scrollTo({ top: Math.max(0, top), behavior: "smooth" });
|
|
177
180
|
});
|
|
178
181
|
}
|
|
179
182
|
break;
|
|
@@ -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-CbOrSpOU.js";
|
|
3
3
|
function sendToEditor(msg) {
|
|
4
4
|
window.parent.postMessage(msg, "*");
|
|
5
5
|
}
|
|
@@ -172,7 +172,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
172
172
|
if (msg.index !== null) {
|
|
173
173
|
nextTick(() => {
|
|
174
174
|
const el = document.querySelector(`[data-blox-index="${msg.index}"]`);
|
|
175
|
-
|
|
175
|
+
if (!el) return;
|
|
176
|
+
const OFFSET = 72;
|
|
177
|
+
const top = el.getBoundingClientRect().top + window.scrollY - OFFSET;
|
|
178
|
+
window.scrollTo({ top: Math.max(0, top), behavior: "smooth" });
|
|
176
179
|
});
|
|
177
180
|
}
|
|
178
181
|
break;
|
package/dist/bridge.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { SchemaDefinition } from '@bagelink/vue';
|
|
2
2
|
import { Block, PageResolveRead } from './api/types';
|
|
3
|
+
import { BlockDataSourceConfig } from './defineBlock';
|
|
3
4
|
export interface BlockSchemaInfo {
|
|
4
5
|
label: string;
|
|
5
6
|
description?: string;
|
|
6
7
|
icon?: string;
|
|
7
8
|
fields?: SchemaDefinition;
|
|
8
9
|
defaults?: Record<string, unknown>;
|
|
9
|
-
dataSource?:
|
|
10
|
+
dataSource?: BlockDataSourceConfig;
|
|
11
|
+
/** Group key for the editor block picker. See {@link BlockMeta.category}. */
|
|
12
|
+
category?: string;
|
|
10
13
|
thumbnail?: string;
|
|
11
14
|
order?: number;
|
|
12
15
|
}
|
package/dist/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleRouterLink.vue.d.ts","sourceRoot":"","sources":["../../src/components/LocaleRouterLink.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LocaleRouterLink.vue.d.ts","sourceRoot":"","sources":["../../src/components/LocaleRouterLink.vue"],"names":[],"mappings":"AAuEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AASlD,KAAK,WAAW,GAAG;IAClB,EAAE,EAAE,gBAAgB,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACpF,CAAC;AA+BF,iBAAS,cAAc;WAqDT,OAAO,IAA6B;;yBAZrB,GAAG;yBACH,GAAG;yBACH,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,kSAMnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLocaleNav.d.ts","sourceRoot":"","sources":["../../src/composables/useLocaleNav.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLocaleNav.d.ts","sourceRoot":"","sources":["../../src/composables/useLocaleNav.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,YAAY;iCAKS,MAAM;mBAkBpB,MAAM,KAAG,MAAM;;EAQrC"}
|
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
import { BLOX_WEBSITE_ID_WINDOW_KEY, BLOX_STATE_WINDOW_KEY } from "./ssg/client.mjs";
|
|
5
|
-
import { inject, computed, ref, defineComponent, onMounted, unref, openBlock, createBlock, Teleport, createElementBlock, createElementVNode, createCommentVNode, onUnmounted, watch, h, provide, resolveComponent, createVNode, toDisplayString, withCtx, createTextVNode, Fragment,
|
|
5
|
+
import { inject, computed, ref, defineComponent, onMounted, unref, openBlock, createBlock, Teleport, createElementBlock, createElementVNode, createCommentVNode, onUnmounted, watch, h, provide, resolveComponent, createVNode, toDisplayString, withCtx, createTextVNode, Fragment, useAttrs, mergeProps, renderSlot, normalizeProps } from "vue";
|
|
6
6
|
import { useRoute, useRouter, RouterLink } from "vue-router";
|
|
7
7
|
import { getI18n, Loading } from "@bagelink/vue";
|
|
8
8
|
const BASE = "/api";
|
|
@@ -115,7 +115,7 @@ function useBloxEdit(configOverride) {
|
|
|
115
115
|
}
|
|
116
116
|
return { config, enabled, showEdit, studioBaseUrl, editUrl, enable, dismiss, init };
|
|
117
117
|
}
|
|
118
|
-
const _hoisted_1$
|
|
118
|
+
const _hoisted_1$2 = {
|
|
119
119
|
key: 0,
|
|
120
120
|
class: "blox-admin-bar"
|
|
121
121
|
};
|
|
@@ -138,7 +138,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
138
138
|
key: 0,
|
|
139
139
|
to: "body"
|
|
140
140
|
}, [
|
|
141
|
-
unref(showEdit) && __props.websiteId && __props.pageId ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
141
|
+
unref(showEdit) && __props.websiteId && __props.pageId ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
|
|
142
142
|
createElementVNode("button", {
|
|
143
143
|
type: "button",
|
|
144
144
|
class: "blox-admin-btn",
|
|
@@ -283,11 +283,11 @@ const PageRenderer = defineComponent({
|
|
|
283
283
|
);
|
|
284
284
|
}
|
|
285
285
|
});
|
|
286
|
-
const _hoisted_1 = {
|
|
286
|
+
const _hoisted_1$1 = {
|
|
287
287
|
key: 0,
|
|
288
288
|
class: "blox-loading flex column h-100vh justify-content-center"
|
|
289
289
|
};
|
|
290
|
-
const _hoisted_2 = {
|
|
290
|
+
const _hoisted_2$1 = {
|
|
291
291
|
key: 1,
|
|
292
292
|
class: "blox-not-found"
|
|
293
293
|
};
|
|
@@ -399,9 +399,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
399
399
|
return (_ctx, _cache) => {
|
|
400
400
|
const _component_RouterLink = resolveComponent("RouterLink");
|
|
401
401
|
return openBlock(), createElementBlock("div", null, [
|
|
402
|
-
initialLoading.value && blocks.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
402
|
+
initialLoading.value && blocks.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
403
403
|
createVNode(unref(Loading))
|
|
404
|
-
])) : notFound.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
404
|
+
])) : notFound.value ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
|
|
405
405
|
_cache[0] || (_cache[0] = createElementVNode("h2", null, "404", -1)),
|
|
406
406
|
createElementVNode("p", null, toDisplayString(unref(locale2) === "he" ? "הדף לא נמצא" : "Page not found"), 1),
|
|
407
407
|
createVNode(_component_RouterLink, { to: "/" }, {
|
|
@@ -423,7 +423,96 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
423
423
|
};
|
|
424
424
|
}
|
|
425
425
|
});
|
|
426
|
+
function normalizeLink(href) {
|
|
427
|
+
const v = href == null ? void 0 : href.trim();
|
|
428
|
+
if (!v) return void 0;
|
|
429
|
+
if (/^(https?:|mailto:|tel:|sms:|whatsapp:|geo:|#|\/\/|\/|\.)/i.test(v)) return v;
|
|
430
|
+
return `/${v}`;
|
|
431
|
+
}
|
|
432
|
+
const normalizeTo = normalizeLink;
|
|
433
|
+
function isAbsoluteExternal(href) {
|
|
434
|
+
return /^(https?:)?\/\//i.test(href);
|
|
435
|
+
}
|
|
436
|
+
function isSpecialScheme(href) {
|
|
437
|
+
return /^(mailto:|tel:|sms:|whatsapp:|geo:|#)/i.test(href);
|
|
438
|
+
}
|
|
439
|
+
function classifyLink(href, origin = typeof window !== "undefined" ? window.location.origin : "") {
|
|
440
|
+
if (isSpecialScheme(href)) return "special";
|
|
441
|
+
if (isAbsoluteExternal(href)) {
|
|
442
|
+
if (origin) {
|
|
443
|
+
try {
|
|
444
|
+
if (new URL(href, origin).origin === origin) return "internal";
|
|
445
|
+
} catch {
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return "external";
|
|
449
|
+
}
|
|
450
|
+
return "internal";
|
|
451
|
+
}
|
|
452
|
+
function toInternalPath(href) {
|
|
453
|
+
const normalized = normalizeLink(href) ?? href.trim();
|
|
454
|
+
if (isAbsoluteExternal(normalized)) {
|
|
455
|
+
try {
|
|
456
|
+
const base = typeof window !== "undefined" ? window.location.href : "http://localhost";
|
|
457
|
+
const url = new URL(normalized, base);
|
|
458
|
+
return `${url.pathname}${url.search}${url.hash}` || "/";
|
|
459
|
+
} catch {
|
|
460
|
+
return normalized;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
return normalized || "/";
|
|
464
|
+
}
|
|
465
|
+
function shouldIgnore(e, anchor) {
|
|
466
|
+
if (e.defaultPrevented) return true;
|
|
467
|
+
if (e.button !== 0) return true;
|
|
468
|
+
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return true;
|
|
469
|
+
if (anchor.hasAttribute("download")) return true;
|
|
470
|
+
const target = anchor.getAttribute("target");
|
|
471
|
+
if (target && target !== "_self") return true;
|
|
472
|
+
return false;
|
|
473
|
+
}
|
|
474
|
+
function installSmartLinks(router) {
|
|
475
|
+
if (typeof document === "undefined") return () => {
|
|
476
|
+
};
|
|
477
|
+
function onClick(e) {
|
|
478
|
+
var _a, _b, _c;
|
|
479
|
+
const path = ((_a = e.composedPath) == null ? void 0 : _a.call(e)) ?? [];
|
|
480
|
+
const anchor = path.find((el) => el instanceof HTMLAnchorElement) ?? ((_c = (_b = e.target) == null ? void 0 : _b.closest) == null ? void 0 : _c.call(_b, "a"));
|
|
481
|
+
if (!anchor) return;
|
|
482
|
+
const rawHref = anchor.getAttribute("href");
|
|
483
|
+
if (!rawHref) return;
|
|
484
|
+
const href = normalizeLink(rawHref) ?? rawHref.trim();
|
|
485
|
+
if (!href) return;
|
|
486
|
+
if (isSpecialScheme(href)) return;
|
|
487
|
+
if (isAbsoluteExternal(href)) {
|
|
488
|
+
let sameOrigin = false;
|
|
489
|
+
try {
|
|
490
|
+
sameOrigin = new URL(href, window.location.href).origin === window.location.origin;
|
|
491
|
+
} catch {
|
|
492
|
+
sameOrigin = false;
|
|
493
|
+
}
|
|
494
|
+
if (!sameOrigin) {
|
|
495
|
+
if (anchor.getAttribute("target")) return;
|
|
496
|
+
e.preventDefault();
|
|
497
|
+
window.open(href, "_blank", "noopener,noreferrer");
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
if (shouldIgnore(e, anchor)) return;
|
|
501
|
+
e.preventDefault();
|
|
502
|
+
void router.push(toInternalPath(href));
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
505
|
+
if (shouldIgnore(e, anchor)) return;
|
|
506
|
+
e.preventDefault();
|
|
507
|
+
void router.push(href.startsWith("/") ? href : `/${href}`);
|
|
508
|
+
}
|
|
509
|
+
document.addEventListener("click", onClick);
|
|
510
|
+
return () => document.removeEventListener("click", onClick);
|
|
511
|
+
}
|
|
512
|
+
const _hoisted_1 = ["href"];
|
|
513
|
+
const _hoisted_2 = ["href"];
|
|
426
514
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
515
|
+
...{ inheritAttrs: false },
|
|
427
516
|
__name: "LocaleRouterLink",
|
|
428
517
|
props: {
|
|
429
518
|
to: {},
|
|
@@ -434,20 +523,39 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
434
523
|
},
|
|
435
524
|
setup(__props) {
|
|
436
525
|
const props = __props;
|
|
526
|
+
const attrs = useAttrs();
|
|
437
527
|
const strategy = inject(BLOX_LOCALE_STRATEGY_KEY, null);
|
|
438
528
|
const { locale: locale2 } = useLocale();
|
|
439
|
-
const
|
|
440
|
-
if (
|
|
529
|
+
const resolved = computed(() => {
|
|
530
|
+
if (typeof props.to !== "string") {
|
|
531
|
+
return { kind: "route", to: props.to };
|
|
532
|
+
}
|
|
533
|
+
const href = normalizeLink(props.to) ?? props.to.trim();
|
|
534
|
+
const kind = classifyLink(href);
|
|
535
|
+
if (kind === "external") return { kind: "external", href };
|
|
536
|
+
if (kind === "special") return { kind: "special", href };
|
|
537
|
+
const path = toInternalPath(href);
|
|
441
538
|
const loc = String(locale2.value || "").slice(0, 2).toLowerCase();
|
|
442
|
-
|
|
539
|
+
const to = strategy ? strategy.toPath(path, loc || void 0) : path;
|
|
540
|
+
return { kind: "route", to };
|
|
443
541
|
});
|
|
444
542
|
return (_ctx, _cache) => {
|
|
445
|
-
return openBlock(),
|
|
543
|
+
return resolved.value.kind === "external" ? (openBlock(), createElementBlock("a", mergeProps({ key: 0 }, unref(attrs), {
|
|
544
|
+
href: resolved.value.href,
|
|
545
|
+
target: "_blank",
|
|
546
|
+
rel: "noopener noreferrer"
|
|
547
|
+
}), [
|
|
548
|
+
renderSlot(_ctx.$slots, "default")
|
|
549
|
+
], 16, _hoisted_1)) : resolved.value.kind === "special" ? (openBlock(), createElementBlock("a", mergeProps({ key: 1 }, unref(attrs), {
|
|
550
|
+
href: resolved.value.href
|
|
551
|
+
}), [
|
|
552
|
+
renderSlot(_ctx.$slots, "default")
|
|
553
|
+
], 16, _hoisted_2)) : (openBlock(), createBlock(unref(RouterLink), normalizeProps(mergeProps({ key: 2 }, { ...props, ...unref(attrs), to: resolved.value.to })), {
|
|
446
554
|
default: withCtx(() => [
|
|
447
555
|
renderSlot(_ctx.$slots, "default")
|
|
448
556
|
]),
|
|
449
557
|
_: 3
|
|
450
|
-
}, 16);
|
|
558
|
+
}, 16));
|
|
451
559
|
};
|
|
452
560
|
}
|
|
453
561
|
});
|
|
@@ -481,6 +589,9 @@ function createPathStrategy(options) {
|
|
|
481
589
|
toPath(slug, locale2) {
|
|
482
590
|
const loc = locale2 || _currentLocale;
|
|
483
591
|
let s = slug || "/";
|
|
592
|
+
if (s && !s.startsWith("/") && !/^(https?:|mailto:|tel:|sms:|whatsapp:|geo:|#|\/\/)/i.test(s)) {
|
|
593
|
+
s = `/${s}`;
|
|
594
|
+
}
|
|
484
595
|
const segments = s.replace(/^\//, "").split("/").filter(Boolean);
|
|
485
596
|
if (segments[0] && supportedLocales.includes(segments[0])) {
|
|
486
597
|
const rest = segments.slice(1).join("/");
|
|
@@ -590,6 +701,7 @@ class BloxInstance {
|
|
|
590
701
|
fields: meta.schema,
|
|
591
702
|
defaults: meta.defaults,
|
|
592
703
|
dataSource: meta.dataSource,
|
|
704
|
+
category: meta.category,
|
|
593
705
|
thumbnail: meta.thumbnail,
|
|
594
706
|
order: meta.order
|
|
595
707
|
}
|
|
@@ -617,6 +729,7 @@ class BloxInstance {
|
|
|
617
729
|
fields: meta.schema,
|
|
618
730
|
defaults: meta.defaults,
|
|
619
731
|
dataSource: meta.dataSource,
|
|
732
|
+
category: meta.category,
|
|
620
733
|
thumbnail: meta.thumbnail,
|
|
621
734
|
order: meta.order
|
|
622
735
|
}
|
|
@@ -643,7 +756,7 @@ class BloxInstance {
|
|
|
643
756
|
}
|
|
644
757
|
router.addRoute({
|
|
645
758
|
path: "/_blox_preview",
|
|
646
|
-
component: () => import("./PreviewApp-
|
|
759
|
+
component: () => import("./PreviewApp-CsC6qej1.js"),
|
|
647
760
|
beforeEnter: () => window.parent !== window ? true : "/"
|
|
648
761
|
});
|
|
649
762
|
router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$1 });
|
|
@@ -706,12 +819,19 @@ export {
|
|
|
706
819
|
BloxInstance as f,
|
|
707
820
|
globalRefOf as g,
|
|
708
821
|
_sfc_main$1 as h,
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
822
|
+
installSmartLinks as i,
|
|
823
|
+
GLOBAL_REF_KEY as j,
|
|
824
|
+
classifyLink as k,
|
|
825
|
+
configureApi as l,
|
|
826
|
+
getWebsiteId as m,
|
|
827
|
+
normalizeLink as n,
|
|
828
|
+
getWebsiteIdSync as o,
|
|
829
|
+
isAbsoluteExternal as p,
|
|
830
|
+
isSpecialScheme as q,
|
|
831
|
+
listItems as r,
|
|
832
|
+
normalizeTo as s,
|
|
833
|
+
resolvePath as t,
|
|
834
|
+
useLocale as u,
|
|
835
|
+
toInternalPath as v,
|
|
836
|
+
useBloxEdit as w
|
|
717
837
|
};
|
|
@@ -116,7 +116,7 @@ function useBloxEdit(configOverride) {
|
|
|
116
116
|
}
|
|
117
117
|
return { config, enabled, showEdit, studioBaseUrl, editUrl, enable, dismiss, init };
|
|
118
118
|
}
|
|
119
|
-
const _hoisted_1$
|
|
119
|
+
const _hoisted_1$2 = {
|
|
120
120
|
key: 0,
|
|
121
121
|
class: "blox-admin-bar"
|
|
122
122
|
};
|
|
@@ -139,7 +139,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
139
139
|
key: 0,
|
|
140
140
|
to: "body"
|
|
141
141
|
}, [
|
|
142
|
-
vue.unref(showEdit) && __props.websiteId && __props.pageId ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
142
|
+
vue.unref(showEdit) && __props.websiteId && __props.pageId ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
|
|
143
143
|
vue.createElementVNode("button", {
|
|
144
144
|
type: "button",
|
|
145
145
|
class: "blox-admin-btn",
|
|
@@ -284,11 +284,11 @@ const PageRenderer = vue.defineComponent({
|
|
|
284
284
|
);
|
|
285
285
|
}
|
|
286
286
|
});
|
|
287
|
-
const _hoisted_1 = {
|
|
287
|
+
const _hoisted_1$1 = {
|
|
288
288
|
key: 0,
|
|
289
289
|
class: "blox-loading flex column h-100vh justify-content-center"
|
|
290
290
|
};
|
|
291
|
-
const _hoisted_2 = {
|
|
291
|
+
const _hoisted_2$1 = {
|
|
292
292
|
key: 1,
|
|
293
293
|
class: "blox-not-found"
|
|
294
294
|
};
|
|
@@ -400,9 +400,9 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
400
400
|
return (_ctx, _cache) => {
|
|
401
401
|
const _component_RouterLink = vue.resolveComponent("RouterLink");
|
|
402
402
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
403
|
-
initialLoading.value && blocks.value.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
403
|
+
initialLoading.value && blocks.value.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
|
|
404
404
|
vue.createVNode(vue.unref(vue$1.Loading))
|
|
405
|
-
])) : notFound.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
|
405
|
+
])) : notFound.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, [
|
|
406
406
|
_cache[0] || (_cache[0] = vue.createElementVNode("h2", null, "404", -1)),
|
|
407
407
|
vue.createElementVNode("p", null, vue.toDisplayString(vue.unref(locale2) === "he" ? "הדף לא נמצא" : "Page not found"), 1),
|
|
408
408
|
vue.createVNode(_component_RouterLink, { to: "/" }, {
|
|
@@ -424,7 +424,96 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
424
424
|
};
|
|
425
425
|
}
|
|
426
426
|
});
|
|
427
|
+
function normalizeLink(href) {
|
|
428
|
+
const v = href == null ? void 0 : href.trim();
|
|
429
|
+
if (!v) return void 0;
|
|
430
|
+
if (/^(https?:|mailto:|tel:|sms:|whatsapp:|geo:|#|\/\/|\/|\.)/i.test(v)) return v;
|
|
431
|
+
return `/${v}`;
|
|
432
|
+
}
|
|
433
|
+
const normalizeTo = normalizeLink;
|
|
434
|
+
function isAbsoluteExternal(href) {
|
|
435
|
+
return /^(https?:)?\/\//i.test(href);
|
|
436
|
+
}
|
|
437
|
+
function isSpecialScheme(href) {
|
|
438
|
+
return /^(mailto:|tel:|sms:|whatsapp:|geo:|#)/i.test(href);
|
|
439
|
+
}
|
|
440
|
+
function classifyLink(href, origin = typeof window !== "undefined" ? window.location.origin : "") {
|
|
441
|
+
if (isSpecialScheme(href)) return "special";
|
|
442
|
+
if (isAbsoluteExternal(href)) {
|
|
443
|
+
if (origin) {
|
|
444
|
+
try {
|
|
445
|
+
if (new URL(href, origin).origin === origin) return "internal";
|
|
446
|
+
} catch {
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
return "external";
|
|
450
|
+
}
|
|
451
|
+
return "internal";
|
|
452
|
+
}
|
|
453
|
+
function toInternalPath(href) {
|
|
454
|
+
const normalized = normalizeLink(href) ?? href.trim();
|
|
455
|
+
if (isAbsoluteExternal(normalized)) {
|
|
456
|
+
try {
|
|
457
|
+
const base = typeof window !== "undefined" ? window.location.href : "http://localhost";
|
|
458
|
+
const url = new URL(normalized, base);
|
|
459
|
+
return `${url.pathname}${url.search}${url.hash}` || "/";
|
|
460
|
+
} catch {
|
|
461
|
+
return normalized;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return normalized || "/";
|
|
465
|
+
}
|
|
466
|
+
function shouldIgnore(e, anchor) {
|
|
467
|
+
if (e.defaultPrevented) return true;
|
|
468
|
+
if (e.button !== 0) return true;
|
|
469
|
+
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return true;
|
|
470
|
+
if (anchor.hasAttribute("download")) return true;
|
|
471
|
+
const target = anchor.getAttribute("target");
|
|
472
|
+
if (target && target !== "_self") return true;
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
function installSmartLinks(router) {
|
|
476
|
+
if (typeof document === "undefined") return () => {
|
|
477
|
+
};
|
|
478
|
+
function onClick(e) {
|
|
479
|
+
var _a, _b, _c;
|
|
480
|
+
const path = ((_a = e.composedPath) == null ? void 0 : _a.call(e)) ?? [];
|
|
481
|
+
const anchor = path.find((el) => el instanceof HTMLAnchorElement) ?? ((_c = (_b = e.target) == null ? void 0 : _b.closest) == null ? void 0 : _c.call(_b, "a"));
|
|
482
|
+
if (!anchor) return;
|
|
483
|
+
const rawHref = anchor.getAttribute("href");
|
|
484
|
+
if (!rawHref) return;
|
|
485
|
+
const href = normalizeLink(rawHref) ?? rawHref.trim();
|
|
486
|
+
if (!href) return;
|
|
487
|
+
if (isSpecialScheme(href)) return;
|
|
488
|
+
if (isAbsoluteExternal(href)) {
|
|
489
|
+
let sameOrigin = false;
|
|
490
|
+
try {
|
|
491
|
+
sameOrigin = new URL(href, window.location.href).origin === window.location.origin;
|
|
492
|
+
} catch {
|
|
493
|
+
sameOrigin = false;
|
|
494
|
+
}
|
|
495
|
+
if (!sameOrigin) {
|
|
496
|
+
if (anchor.getAttribute("target")) return;
|
|
497
|
+
e.preventDefault();
|
|
498
|
+
window.open(href, "_blank", "noopener,noreferrer");
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
if (shouldIgnore(e, anchor)) return;
|
|
502
|
+
e.preventDefault();
|
|
503
|
+
void router.push(toInternalPath(href));
|
|
504
|
+
return;
|
|
505
|
+
}
|
|
506
|
+
if (shouldIgnore(e, anchor)) return;
|
|
507
|
+
e.preventDefault();
|
|
508
|
+
void router.push(href.startsWith("/") ? href : `/${href}`);
|
|
509
|
+
}
|
|
510
|
+
document.addEventListener("click", onClick);
|
|
511
|
+
return () => document.removeEventListener("click", onClick);
|
|
512
|
+
}
|
|
513
|
+
const _hoisted_1 = ["href"];
|
|
514
|
+
const _hoisted_2 = ["href"];
|
|
427
515
|
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
516
|
+
...{ inheritAttrs: false },
|
|
428
517
|
__name: "LocaleRouterLink",
|
|
429
518
|
props: {
|
|
430
519
|
to: {},
|
|
@@ -435,20 +524,39 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
435
524
|
},
|
|
436
525
|
setup(__props) {
|
|
437
526
|
const props = __props;
|
|
527
|
+
const attrs = vue.useAttrs();
|
|
438
528
|
const strategy = vue.inject(BLOX_LOCALE_STRATEGY_KEY, null);
|
|
439
529
|
const { locale: locale2 } = useLocale();
|
|
440
|
-
const
|
|
441
|
-
if (
|
|
530
|
+
const resolved = vue.computed(() => {
|
|
531
|
+
if (typeof props.to !== "string") {
|
|
532
|
+
return { kind: "route", to: props.to };
|
|
533
|
+
}
|
|
534
|
+
const href = normalizeLink(props.to) ?? props.to.trim();
|
|
535
|
+
const kind = classifyLink(href);
|
|
536
|
+
if (kind === "external") return { kind: "external", href };
|
|
537
|
+
if (kind === "special") return { kind: "special", href };
|
|
538
|
+
const path = toInternalPath(href);
|
|
442
539
|
const loc = String(locale2.value || "").slice(0, 2).toLowerCase();
|
|
443
|
-
|
|
540
|
+
const to = strategy ? strategy.toPath(path, loc || void 0) : path;
|
|
541
|
+
return { kind: "route", to };
|
|
444
542
|
});
|
|
445
543
|
return (_ctx, _cache) => {
|
|
446
|
-
return vue.openBlock(), vue.
|
|
544
|
+
return resolved.value.kind === "external" ? (vue.openBlock(), vue.createElementBlock("a", vue.mergeProps({ key: 0 }, vue.unref(attrs), {
|
|
545
|
+
href: resolved.value.href,
|
|
546
|
+
target: "_blank",
|
|
547
|
+
rel: "noopener noreferrer"
|
|
548
|
+
}), [
|
|
549
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
550
|
+
], 16, _hoisted_1)) : resolved.value.kind === "special" ? (vue.openBlock(), vue.createElementBlock("a", vue.mergeProps({ key: 1 }, vue.unref(attrs), {
|
|
551
|
+
href: resolved.value.href
|
|
552
|
+
}), [
|
|
553
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
554
|
+
], 16, _hoisted_2)) : (vue.openBlock(), vue.createBlock(vue.unref(vueRouter.RouterLink), vue.normalizeProps(vue.mergeProps({ key: 2 }, { ...props, ...vue.unref(attrs), to: resolved.value.to })), {
|
|
447
555
|
default: vue.withCtx(() => [
|
|
448
556
|
vue.renderSlot(_ctx.$slots, "default")
|
|
449
557
|
]),
|
|
450
558
|
_: 3
|
|
451
|
-
}, 16);
|
|
559
|
+
}, 16));
|
|
452
560
|
};
|
|
453
561
|
}
|
|
454
562
|
});
|
|
@@ -482,6 +590,9 @@ function createPathStrategy(options) {
|
|
|
482
590
|
toPath(slug, locale2) {
|
|
483
591
|
const loc = locale2 || _currentLocale;
|
|
484
592
|
let s = slug || "/";
|
|
593
|
+
if (s && !s.startsWith("/") && !/^(https?:|mailto:|tel:|sms:|whatsapp:|geo:|#|\/\/)/i.test(s)) {
|
|
594
|
+
s = `/${s}`;
|
|
595
|
+
}
|
|
485
596
|
const segments = s.replace(/^\//, "").split("/").filter(Boolean);
|
|
486
597
|
if (segments[0] && supportedLocales.includes(segments[0])) {
|
|
487
598
|
const rest = segments.slice(1).join("/");
|
|
@@ -591,6 +702,7 @@ class BloxInstance {
|
|
|
591
702
|
fields: meta.schema,
|
|
592
703
|
defaults: meta.defaults,
|
|
593
704
|
dataSource: meta.dataSource,
|
|
705
|
+
category: meta.category,
|
|
594
706
|
thumbnail: meta.thumbnail,
|
|
595
707
|
order: meta.order
|
|
596
708
|
}
|
|
@@ -618,6 +730,7 @@ class BloxInstance {
|
|
|
618
730
|
fields: meta.schema,
|
|
619
731
|
defaults: meta.defaults,
|
|
620
732
|
dataSource: meta.dataSource,
|
|
733
|
+
category: meta.category,
|
|
621
734
|
thumbnail: meta.thumbnail,
|
|
622
735
|
order: meta.order
|
|
623
736
|
}
|
|
@@ -644,7 +757,7 @@ class BloxInstance {
|
|
|
644
757
|
}
|
|
645
758
|
router.addRoute({
|
|
646
759
|
path: "/_blox_preview",
|
|
647
|
-
component: () => Promise.resolve().then(() => require("./PreviewApp-
|
|
760
|
+
component: () => Promise.resolve().then(() => require("./PreviewApp-Dz003khp.cjs")),
|
|
648
761
|
beforeEnter: () => window.parent !== window ? true : "/"
|
|
649
762
|
});
|
|
650
763
|
router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$1 });
|
|
@@ -705,12 +818,19 @@ exports.GlobalBlockHost = GlobalBlockHost;
|
|
|
705
818
|
exports.PageRenderer = PageRenderer;
|
|
706
819
|
exports._sfc_main = _sfc_main$2;
|
|
707
820
|
exports._sfc_main$1 = _sfc_main$1;
|
|
821
|
+
exports.classifyLink = classifyLink;
|
|
708
822
|
exports.configureApi = configureApi;
|
|
709
823
|
exports.createBlox = createBlox;
|
|
710
824
|
exports.getWebsiteId = getWebsiteId;
|
|
711
825
|
exports.getWebsiteIdSync = getWebsiteIdSync;
|
|
712
826
|
exports.globalRefOf = globalRefOf;
|
|
827
|
+
exports.installSmartLinks = installSmartLinks;
|
|
828
|
+
exports.isAbsoluteExternal = isAbsoluteExternal;
|
|
829
|
+
exports.isSpecialScheme = isSpecialScheme;
|
|
713
830
|
exports.listItems = listItems;
|
|
831
|
+
exports.normalizeLink = normalizeLink;
|
|
832
|
+
exports.normalizeTo = normalizeTo;
|
|
714
833
|
exports.resolvePath = resolvePath;
|
|
834
|
+
exports.toInternalPath = toInternalPath;
|
|
715
835
|
exports.useBloxEdit = useBloxEdit;
|
|
716
836
|
exports.useLocale = useLocale;
|
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;
|
|
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;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;CAqC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
|
|
@@ -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,YAAY,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
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,YAAY,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQhD,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;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;IAChE;;;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;CACrC;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,CAoBvE;AAED,wDAAwD;AACxD,UAAU,SAAS;IAClB,YAAY,EAAE;QACb,OAAO,EAAE;YAER,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,IAAI,CAAA;SACvC,CAAA;KACD,CAAA;CACD;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,CAmF1E"}
|
package/dist/defineBlock.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { SchemaDefinition } from '@bagelink/vue';
|
|
2
|
+
/** Datastore collection this block reads from (shown as a deep-link in the designer). */
|
|
3
|
+
export interface BlockDataSource {
|
|
4
|
+
/** Datastore collection name (e.g. `'why-sell'`). */
|
|
5
|
+
collection: string;
|
|
6
|
+
/** Datastore store id. When omitted, the admin default store is used. */
|
|
7
|
+
store?: string;
|
|
8
|
+
/** Label in the designer (defaults to `collection`). */
|
|
9
|
+
label?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* `true` — show a "data" badge with no deep-link.
|
|
13
|
+
* One ref / list of refs — badge + clickable link(s) to the collection editor.
|
|
14
|
+
*/
|
|
15
|
+
export type BlockDataSourceConfig = boolean | BlockDataSource | BlockDataSource[];
|
|
2
16
|
export interface BlockMeta {
|
|
3
17
|
/** Block type key — must be unique across the app. Used as the export name by the Vite plugin. */
|
|
4
18
|
name: string;
|
|
@@ -11,8 +25,17 @@ export interface BlockMeta {
|
|
|
11
25
|
/** Default prop values. Merged with block props at render time so blocks show content before editing. */
|
|
12
26
|
defaults?: Record<string, unknown>;
|
|
13
27
|
description?: string;
|
|
14
|
-
/**
|
|
15
|
-
|
|
28
|
+
/**
|
|
29
|
+
* When set, the page designer shows that this block also pulls content from
|
|
30
|
+
* a datastore collection — and links to that collection when refs are provided.
|
|
31
|
+
*/
|
|
32
|
+
dataSource?: BlockDataSourceConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Group key for the editor block picker (e.g. `'hero'`, `'content'`, `'layout'`).
|
|
35
|
+
* The admin UI translates known keys via `pageDesigner.blockCategories.<key>`;
|
|
36
|
+
* unknown keys are shown as-is. Blocks without a category land in `"other"`.
|
|
37
|
+
*/
|
|
38
|
+
category?: string;
|
|
16
39
|
/** Static thumbnail image URL for the editor block picker. Overrides the default icon. */
|
|
17
40
|
thumbnail?: string;
|
|
18
41
|
/** Sort order in the editor block picker. Lower values appear first. Defaults to 100. */
|
|
@@ -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,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
|
|
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"}
|
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-fPjj9xyJ.cjs");
|
|
4
|
+
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-BNKK7Vhs.cjs");
|
|
5
5
|
const vue = require("vue");
|
|
6
6
|
const vueRouter = require("vue-router");
|
|
7
7
|
const pinia = require("pinia");
|
|
@@ -51,9 +51,10 @@ function useLocaleNav() {
|
|
|
51
51
|
strategy.switchTo(targetLocale, alternateSlug, router);
|
|
52
52
|
}
|
|
53
53
|
function toPath(slug) {
|
|
54
|
-
|
|
54
|
+
const normalized = core.normalizeLink(slug) ?? slug;
|
|
55
|
+
if (!strategy) return normalized;
|
|
55
56
|
const loc = String(locale.value || "").slice(0, 2).toLowerCase();
|
|
56
|
-
return strategy.toPath(
|
|
57
|
+
return strategy.toPath(normalized, loc || void 0);
|
|
57
58
|
}
|
|
58
59
|
return { switchLocale, toPath, locale };
|
|
59
60
|
}
|
|
@@ -138,6 +139,7 @@ function createBloxApp(options) {
|
|
|
138
139
|
}
|
|
139
140
|
if (userSetup) userSetup(app);
|
|
140
141
|
router.isReady().then(() => {
|
|
142
|
+
core.installSmartLinks(router);
|
|
141
143
|
app.mount(mountTarget);
|
|
142
144
|
});
|
|
143
145
|
return { app, router, blox };
|
|
@@ -180,7 +182,8 @@ function definitionToEntry(type, def) {
|
|
|
180
182
|
label: schema.label,
|
|
181
183
|
icon: schema.icon,
|
|
182
184
|
description: schema.description,
|
|
183
|
-
dataSource: schema.dataSource,
|
|
185
|
+
dataSource: !!schema.dataSource,
|
|
186
|
+
category: schema.category,
|
|
184
187
|
order: schema.order,
|
|
185
188
|
propsSchema,
|
|
186
189
|
defaults: schema.defaults
|
|
@@ -203,13 +206,20 @@ exports.CmsPageView = core._sfc_main$1;
|
|
|
203
206
|
exports.GLOBAL_REF_KEY = core.GLOBAL_REF_KEY;
|
|
204
207
|
exports.GlobalBlockHost = core.GlobalBlockHost;
|
|
205
208
|
exports.PageRenderer = core.PageRenderer;
|
|
209
|
+
exports.classifyLink = core.classifyLink;
|
|
206
210
|
exports.configureApi = core.configureApi;
|
|
207
211
|
exports.createBlox = core.createBlox;
|
|
208
212
|
exports.getWebsiteId = core.getWebsiteId;
|
|
209
213
|
exports.getWebsiteIdSync = core.getWebsiteIdSync;
|
|
210
214
|
exports.globalRefOf = core.globalRefOf;
|
|
215
|
+
exports.installSmartLinks = core.installSmartLinks;
|
|
216
|
+
exports.isAbsoluteExternal = core.isAbsoluteExternal;
|
|
217
|
+
exports.isSpecialScheme = core.isSpecialScheme;
|
|
211
218
|
exports.listItems = core.listItems;
|
|
219
|
+
exports.normalizeLink = core.normalizeLink;
|
|
220
|
+
exports.normalizeTo = core.normalizeTo;
|
|
212
221
|
exports.resolvePath = core.resolvePath;
|
|
222
|
+
exports.toInternalPath = core.toInternalPath;
|
|
213
223
|
exports.useBloxEdit = core.useBloxEdit;
|
|
214
224
|
exports.useLocale = core.useLocale;
|
|
215
225
|
exports.PreviewApp = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,12 +12,14 @@ export { useLocale } from './composables/useLocale';
|
|
|
12
12
|
export type { Locale } from './composables/useLocale';
|
|
13
13
|
export { useLocaleNav } from './composables/useLocaleNav';
|
|
14
14
|
export { usePageContext } from './composables/usePageContext';
|
|
15
|
+
export { classifyLink, installSmartLinks, isAbsoluteExternal, isSpecialScheme, normalizeLink, normalizeTo, toInternalPath, } from './smartLinks';
|
|
16
|
+
export type { LinkKind } from './smartLinks';
|
|
15
17
|
export { BloxInstance, createBlox } from './core';
|
|
16
18
|
export type { BloxComponent, BloxOptions } from './core';
|
|
17
19
|
export { createBloxApp, injectPlausible } from './createBloxApp';
|
|
18
20
|
export type { BloxAppResult, CreateBloxAppOptions, PlausibleOptions } from './createBloxApp';
|
|
19
21
|
export { defineBlock } from './defineBlock';
|
|
20
|
-
export type { BlockMeta, BlockModule } from './defineBlock';
|
|
22
|
+
export type { BlockMeta, BlockModule, BlockDataSource, BlockDataSourceConfig } from './defineBlock';
|
|
21
23
|
export type { LocaleStrategy } from './localeStrategy';
|
|
22
24
|
export { default as PageRenderer } from './PageRenderer';
|
|
23
25
|
export { default as PreviewApp } from './PreviewApp.vue';
|
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,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAK5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,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,EACN,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACd,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAK5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAKxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAK5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAEnG,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,
|
|
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, n as normalizeLink, c as createBlox, i as installSmartLinks } from "./core-CbOrSpOU.js";
|
|
2
|
+
import { _, b, d, e, f, h, j, G, P, k, l, m, o, g, p, q, r, s, t, v, w } from "./core-CbOrSpOU.js";
|
|
3
|
+
import { _ as _2, P as P2, s as s2, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-C1SwhjdY.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";
|
|
@@ -50,9 +50,10 @@ function useLocaleNav() {
|
|
|
50
50
|
strategy.switchTo(targetLocale, alternateSlug, router);
|
|
51
51
|
}
|
|
52
52
|
function toPath(slug) {
|
|
53
|
-
|
|
53
|
+
const normalized = normalizeLink(slug) ?? slug;
|
|
54
|
+
if (!strategy) return normalized;
|
|
54
55
|
const loc = String(locale.value || "").slice(0, 2).toLowerCase();
|
|
55
|
-
return strategy.toPath(
|
|
56
|
+
return strategy.toPath(normalized, loc || void 0);
|
|
56
57
|
}
|
|
57
58
|
return { switchLocale, toPath, locale };
|
|
58
59
|
}
|
|
@@ -118,16 +119,16 @@ function createBloxApp(options) {
|
|
|
118
119
|
};
|
|
119
120
|
const blox = createBlox(bloxOpts);
|
|
120
121
|
const pinia = createPinia();
|
|
121
|
-
pinia.use(({ store:
|
|
122
|
-
|
|
122
|
+
pinia.use(({ store: s3 }) => {
|
|
123
|
+
s3.router = markRaw(router);
|
|
123
124
|
});
|
|
124
125
|
blox.install(app, {});
|
|
125
126
|
app.use(pinia);
|
|
126
127
|
app.use(router);
|
|
127
128
|
for (const plugin of plugins) {
|
|
128
129
|
if (Array.isArray(plugin)) {
|
|
129
|
-
const [
|
|
130
|
-
app.use(
|
|
130
|
+
const [p2, ...args] = plugin;
|
|
131
|
+
app.use(p2, ...args);
|
|
131
132
|
} else {
|
|
132
133
|
app.use(plugin);
|
|
133
134
|
}
|
|
@@ -137,6 +138,7 @@ function createBloxApp(options) {
|
|
|
137
138
|
}
|
|
138
139
|
if (userSetup) userSetup(app);
|
|
139
140
|
router.isReady().then(() => {
|
|
141
|
+
installSmartLinks(router);
|
|
140
142
|
app.mount(mountTarget);
|
|
141
143
|
});
|
|
142
144
|
return { app, router, blox };
|
|
@@ -179,7 +181,8 @@ function definitionToEntry(type, def) {
|
|
|
179
181
|
label: schema.label,
|
|
180
182
|
icon: schema.icon,
|
|
181
183
|
description: schema.description,
|
|
182
|
-
dataSource: schema.dataSource,
|
|
184
|
+
dataSource: !!schema.dataSource,
|
|
185
|
+
category: schema.category,
|
|
183
186
|
order: schema.order,
|
|
184
187
|
propsSchema,
|
|
185
188
|
defaults: schema.defaults
|
|
@@ -200,26 +203,33 @@ export {
|
|
|
200
203
|
BLOX_LOCALE_STRATEGY_KEY,
|
|
201
204
|
f as BloxInstance,
|
|
202
205
|
h as CmsPageView,
|
|
203
|
-
|
|
206
|
+
j as GLOBAL_REF_KEY,
|
|
204
207
|
G as GlobalBlockHost,
|
|
205
208
|
P as PageRenderer,
|
|
206
209
|
_2 as PreviewApp,
|
|
207
210
|
P2 as PreviewRenderer,
|
|
208
211
|
buildBloxManifest,
|
|
209
|
-
|
|
212
|
+
k as classifyLink,
|
|
213
|
+
l as configureApi,
|
|
210
214
|
createBlox,
|
|
211
215
|
createBloxApp,
|
|
212
216
|
defineBlock,
|
|
213
|
-
|
|
214
|
-
|
|
217
|
+
m as getWebsiteId,
|
|
218
|
+
o as getWebsiteIdSync,
|
|
215
219
|
g as globalRefOf,
|
|
216
220
|
injectPlausible,
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
221
|
+
installSmartLinks,
|
|
222
|
+
p as isAbsoluteExternal,
|
|
223
|
+
q as isSpecialScheme,
|
|
224
|
+
r as listItems,
|
|
225
|
+
normalizeLink,
|
|
226
|
+
s as normalizeTo,
|
|
227
|
+
t as resolvePath,
|
|
228
|
+
s2 as sendToEditor,
|
|
220
229
|
a as sendToPreview,
|
|
221
230
|
serializeRegistry,
|
|
222
|
-
|
|
231
|
+
v as toInternalPath,
|
|
232
|
+
w as useBloxEdit,
|
|
223
233
|
useGlobalBlock,
|
|
224
234
|
useLocale,
|
|
225
235
|
useLocaleNav,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeStrategy.d.ts","sourceRoot":"","sources":["../src/localeStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,WAAW,cAAc;IAC9B,gEAAgE;IAChE,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5E;;;;;OAKG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACjD;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAChE,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B;AAMD,MAAM,WAAW,mBAAmB;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC1B;
|
|
1
|
+
{"version":3,"file":"localeStrategy.d.ts","sourceRoot":"","sources":["../src/localeStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,WAAW,cAAc;IAC9B,gEAAgE;IAChE,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5E;;;;;OAKG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACjD;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAChE,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B;AAMD,MAAM,WAAW,mBAAmB;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC1B;AAoED,MAAM,WAAW,qBAAqB;IACrC,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAgDD,MAAM,WAAW,eAAe;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACtC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAQ7E"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface BlockManifestEntry {
|
|
|
19
19
|
description?: string;
|
|
20
20
|
/** True when the block fetches its own data from a datastore collection. */
|
|
21
21
|
dataSource?: boolean;
|
|
22
|
+
/** Group key for the editor block picker. */
|
|
23
|
+
category?: string;
|
|
22
24
|
/** Sort order in the editor block picker (lower first). */
|
|
23
25
|
order?: number;
|
|
24
26
|
/**
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -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,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;
|
|
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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SchemaDefinition } from '@bagelink/vue';
|
|
2
2
|
import { Component } from 'vue';
|
|
3
|
-
import { BlockMeta } from './defineBlock';
|
|
3
|
+
import { BlockDataSourceConfig, BlockMeta } from './defineBlock';
|
|
4
4
|
export interface BlockSchema {
|
|
5
5
|
/** Human-readable name shown in the editor. */
|
|
6
6
|
label: string;
|
|
@@ -14,8 +14,10 @@ export interface BlockSchema {
|
|
|
14
14
|
fields?: SchemaDefinition;
|
|
15
15
|
/** Default prop values. Merged with block props at render time. */
|
|
16
16
|
defaults?: Record<string, unknown>;
|
|
17
|
-
/**
|
|
18
|
-
dataSource?:
|
|
17
|
+
/** Datastore linkage — see {@link BlockDataSourceConfig}. */
|
|
18
|
+
dataSource?: BlockDataSourceConfig;
|
|
19
|
+
/** Group key for the editor block picker. See {@link BlockMeta.category}. */
|
|
20
|
+
category?: string;
|
|
19
21
|
/** Static thumbnail image URL for the editor block picker. Overrides the default icon. */
|
|
20
22
|
thumbnail?: string;
|
|
21
23
|
/** Sort order in the editor block picker. Lower values appear first. Defaults to 100. */
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAErE,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;CACnB;AAED,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Router } from 'vue-router';
|
|
2
|
+
/**
|
|
3
|
+
* Normalise a link so editors can omit the leading slash on internal paths:
|
|
4
|
+
* `about` → `/about`. Leaves empty values and anything already absolute /
|
|
5
|
+
* special (http, mailto, tel, #, //, /…) untouched.
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizeLink(href?: string | null): string | undefined;
|
|
8
|
+
/** @deprecated use normalizeLink — kept as alias for existing call sites */
|
|
9
|
+
export declare const normalizeTo: typeof normalizeLink;
|
|
10
|
+
/** Absolute http(s) or protocol-relative (`//example.com`) URL. */
|
|
11
|
+
export declare function isAbsoluteExternal(href: string): boolean;
|
|
12
|
+
/** Browser-handled schemes / in-page anchors. */
|
|
13
|
+
export declare function isSpecialScheme(href: string): boolean;
|
|
14
|
+
export type LinkKind = 'external' | 'special' | 'internal';
|
|
15
|
+
/**
|
|
16
|
+
* Classify a (preferably already-normalised) href.
|
|
17
|
+
* Same-origin absolute URLs count as internal.
|
|
18
|
+
*/
|
|
19
|
+
export declare function classifyLink(href: string, origin?: string): LinkKind;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve an internal href to a path (+ search + hash) suitable for the router.
|
|
22
|
+
* Same-origin absolute URLs are reduced to path/search/hash.
|
|
23
|
+
*/
|
|
24
|
+
export declare function toInternalPath(href: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Document-level click delegation so raw `<a href>` (and Btn `:href`) get the
|
|
27
|
+
* same internal/external behaviour without per-block wiring.
|
|
28
|
+
* Returns an uninstall function.
|
|
29
|
+
*/
|
|
30
|
+
export declare function installSmartLinks(router: Router): () => void;
|
|
31
|
+
//# sourceMappingURL=smartLinks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smartLinks.d.ts","sourceRoot":"","sources":["../src/smartLinks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAKtE;AAED,4EAA4E;AAC5E,eAAO,MAAM,WAAW,sBAAgB,CAAA;AAExC,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAE1D;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,SAA8D,GAClE,QAAQ,CAWV;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYnD;AAYD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,CA0C5D"}
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -26,7 +26,7 @@ const prerender = require("../prerender-BLECK5o5.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-fPjj9xyJ.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-CbOrSpOU.js";
|
|
8
8
|
async function renderBloxSsgPage(options) {
|
|
9
9
|
const {
|
|
10
10
|
url,
|
package/dist/vite-plugin.cjs
CHANGED
|
@@ -266,10 +266,20 @@ function bloxPlugin(options = {}) {
|
|
|
266
266
|
const identifiers = /* @__PURE__ */ new Set();
|
|
267
267
|
const identRe = /\b([a-z_$][\w$]*)\b/gi;
|
|
268
268
|
let identMatch;
|
|
269
|
-
|
|
270
|
-
|
|
269
|
+
const strippedCall = callExpr.replace(/(['"`])(?:\\.|(?!\1).)*\1/g, '""').replace(/\b([a-z_$][\w$]*)\s*:/gi, ":");
|
|
270
|
+
const SKIP_IDENTS = /* @__PURE__ */ new Set([
|
|
271
|
+
"true",
|
|
272
|
+
"false",
|
|
273
|
+
"null",
|
|
274
|
+
"undefined",
|
|
275
|
+
"NaN",
|
|
276
|
+
"Infinity"
|
|
277
|
+
]);
|
|
278
|
+
while ((identMatch = identRe.exec(strippedCall)) !== null) {
|
|
279
|
+
if (!SKIP_IDENTS.has(identMatch[1])) identifiers.add(identMatch[1]);
|
|
271
280
|
}
|
|
272
281
|
for (const ident of identifiers) {
|
|
282
|
+
if (ident === "defineBlock") continue;
|
|
273
283
|
const declRe = new RegExp(`^([ \\t]*const\\s+${ident}\\s*=\\s*)`, "m");
|
|
274
284
|
const declMatch = declRe.exec(remaining);
|
|
275
285
|
if (!declMatch) continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAA;AAM9C,MAAM,WAAW,iBAAiB;IACjC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAA;AAM9C,MAAM,WAAW,iBAAiB;IACjC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,EAAE,CAqapE"}
|
package/dist/vite-plugin.mjs
CHANGED
|
@@ -242,10 +242,20 @@ function bloxPlugin(options = {}) {
|
|
|
242
242
|
const identifiers = /* @__PURE__ */ new Set();
|
|
243
243
|
const identRe = /\b([a-z_$][\w$]*)\b/gi;
|
|
244
244
|
let identMatch;
|
|
245
|
-
|
|
246
|
-
|
|
245
|
+
const strippedCall = callExpr.replace(/(['"`])(?:\\.|(?!\1).)*\1/g, '""').replace(/\b([a-z_$][\w$]*)\s*:/gi, ":");
|
|
246
|
+
const SKIP_IDENTS = /* @__PURE__ */ new Set([
|
|
247
|
+
"true",
|
|
248
|
+
"false",
|
|
249
|
+
"null",
|
|
250
|
+
"undefined",
|
|
251
|
+
"NaN",
|
|
252
|
+
"Infinity"
|
|
253
|
+
]);
|
|
254
|
+
while ((identMatch = identRe.exec(strippedCall)) !== null) {
|
|
255
|
+
if (!SKIP_IDENTS.has(identMatch[1])) identifiers.add(identMatch[1]);
|
|
247
256
|
}
|
|
248
257
|
for (const ident of identifiers) {
|
|
258
|
+
if (ident === "defineBlock") continue;
|
|
249
259
|
const declRe = new RegExp(`^([ \\t]*const\\s+${ident}\\s*=\\s*)`, "m");
|
|
250
260
|
const declMatch = declRe.exec(remaining);
|
|
251
261
|
if (!declMatch) continue;
|
package/package.json
CHANGED