@bagelink/blox 1.15.176 → 1.15.180

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 (67) hide show
  1. package/dist/{PreviewApp-B8EmNfyH.cjs → PreviewApp-APyemzqx.cjs} +1 -1
  2. package/dist/{PreviewApp-DdkAQqw2.js → PreviewApp-BKTydm92.js} +1 -1
  3. package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-CPBuld3j.cjs → PreviewApp.vue_vue_type_style_index_0_lang-C0ZVst7R.cjs} +6 -6
  4. package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-1JKQVLm2.js → PreviewApp.vue_vue_type_style_index_0_lang-DHb-NJ4C.js} +1 -1
  5. package/dist/api/index.d.ts +22 -0
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/components/BloxRouterView.vue.d.ts +26 -15
  8. package/dist/components/BloxRouterView.vue.d.ts.map +1 -1
  9. package/dist/composables/useLocale.d.ts +7 -0
  10. package/dist/composables/useLocale.d.ts.map +1 -1
  11. package/dist/composables/useLocaleNav.d.ts +2 -2
  12. package/dist/composables/useLocaleNav.d.ts.map +1 -1
  13. package/dist/content/{ContentDetailHost.vue.d.ts → ContentDetailView.vue.d.ts} +1 -1
  14. package/dist/content/ContentDetailView.vue.d.ts.map +1 -0
  15. package/dist/content/ContentHost.vue.d.ts +3 -0
  16. package/dist/content/ContentHost.vue.d.ts.map +1 -0
  17. package/dist/content/index.d.ts +9 -0
  18. package/dist/content/index.d.ts.map +1 -0
  19. package/dist/content/registry.d.ts +73 -0
  20. package/dist/content/registry.d.ts.map +1 -0
  21. package/dist/content/routes.d.ts +48 -0
  22. package/dist/content/routes.d.ts.map +1 -0
  23. package/dist/content/useContentItem.d.ts +37 -5
  24. package/dist/content/useContentItem.d.ts.map +1 -1
  25. package/dist/content/useContentSeo.d.ts +20 -7
  26. package/dist/content/useContentSeo.d.ts.map +1 -1
  27. package/dist/core.d.ts +3 -1
  28. package/dist/core.d.ts.map +1 -1
  29. package/dist/createBloxApp.d.ts.map +1 -1
  30. package/dist/data/useData.d.ts +91 -0
  31. package/dist/data/useData.d.ts.map +1 -0
  32. package/dist/index.cjs +185 -138
  33. package/dist/index.d.ts +7 -13
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.mjs +177 -131
  36. package/dist/localeRoutes.d.ts +15 -0
  37. package/dist/localeRoutes.d.ts.map +1 -0
  38. package/dist/localeStrategy.d.ts +13 -0
  39. package/dist/localeStrategy.d.ts.map +1 -1
  40. package/dist/{prerender-NHAqrTm3.js → prerender-DB1R4jiQ.js} +10 -9
  41. package/dist/{prerender-H72-UrK4.cjs → prerender-DXGy7pee.cjs} +10 -9
  42. package/dist/{core-KRHc4Bob.cjs → routes-C97aL4cQ.cjs} +415 -220
  43. package/dist/{core-Bp2bf8e4.js → routes-bhjTTXfU.js} +444 -249
  44. package/dist/ssg/cli.cjs +1 -1
  45. package/dist/ssg/cli.mjs +1 -1
  46. package/dist/ssg/createSSREntry.d.ts.map +1 -1
  47. package/dist/ssg/index.cjs +28 -19
  48. package/dist/ssg/index.mjs +31 -22
  49. package/dist/ssg/render-resolved-page.d.ts +6 -0
  50. package/dist/ssg/render-resolved-page.d.ts.map +1 -1
  51. package/dist/ssg/seo.d.ts +9 -3
  52. package/dist/ssg/seo.d.ts.map +1 -1
  53. package/dist/vite-plugin.cjs +2 -2
  54. package/dist/vite-plugin.d.ts.map +1 -1
  55. package/dist/vite-plugin.mjs +2 -2
  56. package/package.json +1 -1
  57. package/dist/components/LocaleRouterLink.vue.d.ts +0 -28
  58. package/dist/components/LocaleRouterLink.vue.d.ts.map +0 -1
  59. package/dist/composables/useData.d.ts +0 -22
  60. package/dist/composables/useData.d.ts.map +0 -1
  61. package/dist/composables/useSeo.d.ts +0 -20
  62. package/dist/composables/useSeo.d.ts.map +0 -1
  63. package/dist/content/ContentDetailHost.vue.d.ts.map +0 -1
  64. package/dist/content/defineContent.d.ts +0 -22
  65. package/dist/content/defineContent.d.ts.map +0 -1
  66. package/dist/routing/withLocaleRoutes.d.ts +0 -8
  67. package/dist/routing/withLocaleRoutes.d.ts.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,11 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const core = require("./core-KRHc4Bob.cjs");
4
- const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-CPBuld3j.cjs");
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");
5
5
  const vue = require("vue");
6
6
  const vueRouter = require("vue-router");
7
- const ssg_client = require("./ssg/client.cjs");
8
7
  const pinia = require("pinia");
8
+ const ssg_client = require("./ssg/client.cjs");
9
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
10
+ __name: "BloxRouterView",
11
+ props: {
12
+ transition: { default: "" }
13
+ },
14
+ setup(__props) {
15
+ function viewKey(matched, fallback) {
16
+ const leaf = matched[matched.length - 1];
17
+ return (leaf == null ? void 0 : leaf.path) ?? fallback;
18
+ }
19
+ return (_ctx, _cache) => {
20
+ const _component_RouterView = vue.resolveComponent("RouterView");
21
+ return vue.openBlock(), vue.createBlock(_component_RouterView, null, {
22
+ default: vue.withCtx(({ Component, route: r }) => [
23
+ __props.transition ? (vue.openBlock(), vue.createBlock(vue.Transition, {
24
+ key: 0,
25
+ name: __props.transition,
26
+ mode: "out-in"
27
+ }, {
28
+ default: vue.withCtx(() => [
29
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
30
+ key: viewKey(r.matched, r.path)
31
+ }))
32
+ ]),
33
+ _: 2
34
+ }, 1032, ["name"])) : (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
35
+ key: viewKey(r.matched, r.path)
36
+ }))
37
+ ]),
38
+ _: 1
39
+ });
40
+ };
41
+ }
42
+ });
9
43
  function useGlobalBlock(blockType, loader) {
10
44
  const data = vue.ref(null);
11
45
  const loading = vue.ref(false);
@@ -39,9 +73,9 @@ function useGlobalBlock(blockType, loader) {
39
73
  return { data, loading, refresh };
40
74
  }
41
75
  function useLocaleNav() {
42
- const strategy = vue.inject(core.BLOX_LOCALE_STRATEGY_KEY, null);
76
+ const strategy = vue.inject(routes.BLOX_LOCALE_STRATEGY_KEY, null);
43
77
  const router = vueRouter.useRouter();
44
- const { locale, currentAlternates } = core.useLocale();
78
+ const { locale, currentAlternates } = routes.useLocale();
45
79
  const availableLocales = vue.computed(() => {
46
80
  var _a;
47
81
  const alts = Object.keys(currentAlternates.value ?? {});
@@ -57,17 +91,23 @@ function useLocaleNav() {
57
91
  strategy.switchTo(targetLocale, alternateSlug, router);
58
92
  }
59
93
  function toPath(slug) {
60
- const normalized = core.normalizeLink(slug) ?? slug;
94
+ const normalized = routes.normalizeLink(slug) ?? slug;
61
95
  if (!strategy) return normalized;
62
96
  const loc = String(locale.value || "").slice(0, 2).toLowerCase();
63
97
  return strategy.toPath(normalized, loc || void 0);
64
98
  }
65
99
  function detect(path) {
66
- const hostname = typeof window !== "undefined" ? window.location.hostname : "";
67
- if (!strategy) return { locale: String(locale.value || "en"), slug: path || "/" };
68
- return strategy.detect(hostname, path);
100
+ const def = (strategy == null ? void 0 : strategy.defaultLocale) ?? String(locale.value || "en");
101
+ const supported = (strategy == null ? void 0 : strategy.locales) ?? [];
102
+ const segments = (path || "/").replace(/^\//, "").split("/");
103
+ const first = segments[0];
104
+ if (first && supported.includes(first)) {
105
+ const rest = segments.slice(1).join("/");
106
+ return { locale: first, slug: rest ? `/${rest}` : "/" };
107
+ }
108
+ return { locale: def, slug: path || "/" };
69
109
  }
70
- return { switchLocale, toPath, locale, availableLocales, detect };
110
+ return { switchLocale, toPath, detect, availableLocales, locale };
71
111
  }
72
112
  function usePageContext(key) {
73
113
  const contexts = vue.inject("contexts");
@@ -77,104 +117,64 @@ function usePageContext(key) {
77
117
  return value;
78
118
  });
79
119
  }
80
- function isServer() {
81
- try {
82
- if (false) ;
83
- } catch {
84
- }
85
- return typeof window === "undefined";
86
- }
87
- function writePayload(seo) {
88
- const root = typeof window !== "undefined" ? window : globalThis;
89
- if (!seo) {
90
- delete root[ssg_client.BLOX_PAGE_SEO_WINDOW_KEY];
91
- return;
92
- }
93
- root[ssg_client.BLOX_PAGE_SEO_WINDOW_KEY] = { ...seo };
94
- }
95
- function applyClientHead(seo) {
96
- if (typeof document === "undefined" || !seo) return;
97
- if (seo.title) document.title = seo.title;
98
- const ensureMeta = (attr, key, content) => {
99
- let el = document.head.querySelector(`meta[${attr}="${key}"]`);
100
- if (!el) {
101
- el = document.createElement("meta");
102
- el.setAttribute(attr, key);
103
- document.head.appendChild(el);
104
- }
105
- el.setAttribute("content", content);
120
+ function useContentSeo(item, head) {
121
+ const route = safeRoute();
122
+ const { locale } = routes.useLocale();
123
+ const strategy = vue.inject(routes.BLOX_LOCALE_STRATEGY_KEY, null);
124
+ const registration = () => {
125
+ var _a;
126
+ const name = (_a = route == null ? void 0 : route.meta) == null ? void 0 : _a.content;
127
+ return name ? routes.getContentRoute(name) : void 0;
106
128
  };
107
- if (seo.description) {
108
- ensureMeta("name", "description", seo.description);
109
- ensureMeta("property", "og:description", seo.description);
110
- }
111
- if (seo.title) {
112
- ensureMeta("property", "og:title", seo.title);
113
- }
114
- if (seo.image) {
115
- ensureMeta("property", "og:image", seo.image);
116
- }
117
- }
118
- function useSeo(getter) {
119
- const resolved = vue.computed(() => vue.toValue(getter) ?? null);
120
- function sync() {
121
- const seo = resolved.value;
122
- writePayload(seo ?? void 0);
123
- if (!isServer()) applyClientHead(seo ?? void 0);
124
- }
125
- if (isServer()) {
126
- vue.onServerPrefetch(() => {
127
- sync();
129
+ let alternates;
130
+ routes.useSeo(() => {
131
+ const base = head();
132
+ if (!base) return null;
133
+ return alternates ? { ...base, alternates } : base;
134
+ });
135
+ const registry = routes.getRegistryData();
136
+ if (registry == null ? void 0 : registry.isServer) {
137
+ vue.onServerPrefetch(async () => {
138
+ var _a, _b;
139
+ const reg = registration();
140
+ if (!reg) return;
141
+ const slug = String(((_a = route == null ? void 0 : route.params) == null ? void 0 : _a.slug) ?? ((_b = vue.toValue(item)) == null ? void 0 : _b.slug) ?? "");
142
+ const activeLoc = String(locale.value || "en").slice(0, 2).toLowerCase();
143
+ const entity = slug ? await routes.getItemBySlug(reg.collection, slug, activeLoc).catch(() => null) : vue.toValue(item);
144
+ if (!entity) return;
145
+ const id = String(entity.id ?? entity._id ?? "");
146
+ const supported = (strategy == null ? void 0 : strategy.locales) ?? [locale.value];
147
+ const locales = (Array.isArray(entity.available_locales) ? entity.available_locales : []).filter((l) => supported.includes(l));
148
+ if (!id || !locales.length) return;
149
+ const built = {};
150
+ await Promise.all(locales.map(async (loc) => {
151
+ var _a2;
152
+ const locSlug = loc === activeLoc ? String(entity.slug ?? "") : String(((_a2 = await routes.getItemById(reg.collection, id, loc).catch(() => null)) == null ? void 0 : _a2.slug) ?? "");
153
+ if (locSlug) built[loc] = reg.route.replace(/:slug(?=\/|$)/, locSlug);
154
+ }));
155
+ if (Object.keys(built).length > 1) alternates = built;
128
156
  });
129
- sync();
130
- } else {
131
- vue.watch(resolved, sync, { immediate: true, deep: true });
132
157
  }
133
- vue.onUnmounted(() => {
134
- writePayload(void 0);
135
- });
136
158
  }
137
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
138
- __name: "BloxRouterView",
139
- setup(__props) {
140
- return (_ctx, _cache) => {
141
- const _component_RouterView = vue.resolveComponent("RouterView");
142
- return vue.openBlock(), vue.createBlock(vue.Suspense, null, {
143
- fallback: vue.withCtx(() => [
144
- vue.renderSlot(_ctx.$slots, "fallback")
145
- ]),
146
- default: vue.withCtx(() => [
147
- vue.createVNode(_component_RouterView, null, {
148
- default: vue.withCtx(({ Component }) => [
149
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component)))
150
- ]),
151
- _: 1
152
- })
153
- ]),
154
- _: 3
155
- });
156
- };
159
+ function safeRoute() {
160
+ try {
161
+ return vueRouter.useRoute();
162
+ } catch {
163
+ return null;
157
164
  }
158
- });
159
- function useContentSeo(item, getter) {
160
- const route = vueRouter.useRoute();
161
- const { detect } = useLocaleNav();
162
- useSeo(() => {
163
- const base = vue.toValue(getter);
164
- if (!base) return null;
165
- const row = item.value;
166
- if (!row) return base;
167
- const locales = Array.isArray(row.available_locales) ? row.available_locales.map((l) => String(l).slice(0, 2).toLowerCase()) : [];
168
- if (!locales.length) return base;
169
- const bare = detect(route.path).slug || route.path || "/";
170
- const alternates = {};
171
- for (const loc of locales) alternates[loc] = bare;
172
- return { ...base, alternates };
173
- });
174
165
  }
175
166
  const DEFAULT_PLAUSIBLE_HOST = "https://analytics.bagel.to";
176
167
  function injectPlausible(config) {
168
+ var _a, _b;
177
169
  if (typeof document === "undefined") return;
170
+ if (typeof location !== "undefined" && /^(localhost|127\.0\.0\.1)$/i.test(location.hostname)) return;
171
+ try {
172
+ const inIframe = typeof window !== "undefined" && window.top !== window.self;
173
+ const isPreview = typeof window !== "undefined" && ((_b = (_a = window.location) == null ? void 0 : _a.pathname) == null ? void 0 : _b.startsWith("/_blox_preview"));
174
+ if (inIframe || isPreview) return;
175
+ } catch {
176
+ return;
177
+ }
178
178
  const opts = typeof config === "string" ? { domain: config } : config;
179
179
  const { domain } = opts;
180
180
  if (!domain) return;
@@ -215,7 +215,11 @@ function createBloxApp(options) {
215
215
  if (collectionInterceptor && axiosInstance) {
216
216
  axiosInstance.interceptors.request.use(collectionInterceptor);
217
217
  }
218
- const app = vue.createApp(rootComponent);
218
+ const app = vue.createApp({
219
+ name: "BloxRoot",
220
+ render: () => vue.h(vue.Suspense, null, { default: () => vue.h(rootComponent) })
221
+ });
222
+ routes.provideBloxData(app);
219
223
  const bloxOpts = {
220
224
  modules,
221
225
  websiteName,
@@ -224,14 +228,35 @@ function createBloxApp(options) {
224
228
  supportedLocales,
225
229
  router
226
230
  };
227
- const blox = core.createBlox(bloxOpts);
231
+ const blox = routes.createBlox(bloxOpts);
228
232
  const pinia$1 = pinia.createPinia();
229
233
  pinia$1.use(({ store: s }) => {
230
234
  s.router = vue.markRaw(router);
231
235
  });
232
- blox.install(app, {});
233
236
  app.use(pinia$1);
234
237
  app.use(router);
238
+ blox.install(app, {});
239
+ for (const record of routes.generateContentRoutes(supportedLocales, locale)) {
240
+ if (!router.hasRoute(record.name)) router.addRoute(record);
241
+ }
242
+ routes.installContentFallback(router, supportedLocales, locale);
243
+ const strategy = blox.strategy;
244
+ routes.installLocaleAwareResolve(router, strategy);
245
+ const localeOf = (path) => {
246
+ const first = path.replace(/^\//, "").split("/")[0];
247
+ return first && supportedLocales.includes(first) ? first : locale;
248
+ };
249
+ router.beforeEach((to, from) => {
250
+ const intended = from && from.matched.length ? localeOf(from.path) : localeOf(to.path);
251
+ const normalized = strategy.normalize(to.fullPath, intended);
252
+ if (normalized && normalized !== to.fullPath) {
253
+ routes.setActiveLocale(localeOf(normalized));
254
+ return normalized;
255
+ }
256
+ routes.setActiveLocale(localeOf(to.path));
257
+ return true;
258
+ });
259
+ routes.setActiveLocale(localeOf(router.currentRoute.value.path));
235
260
  for (const plugin of plugins) {
236
261
  if (Array.isArray(plugin)) {
237
262
  const [p, ...args] = plugin;
@@ -245,7 +270,7 @@ function createBloxApp(options) {
245
270
  }
246
271
  if (userSetup) userSetup(app);
247
272
  router.isReady().then(() => {
248
- core.installSmartLinks(router);
273
+ routes.installSmartLinks(router);
249
274
  app.mount(mountTarget);
250
275
  });
251
276
  return { app, router, blox };
@@ -268,6 +293,16 @@ function defineBlock(meta) {
268
293
  }
269
294
  return meta;
270
295
  }
296
+ function withLocaleRoutes(path, component, supportedLocales, defaultLocale = "en") {
297
+ const normalized = path.startsWith("/") ? path : `/${path}`;
298
+ const prefixed = supportedLocales.filter((l) => l !== defaultLocale);
299
+ const make = (p) => ({ path: p, component });
300
+ const routes2 = [make(normalized)];
301
+ if (prefixed.length) {
302
+ routes2.push(make(`/:locale(${prefixed.join("|")})${normalized}`));
303
+ }
304
+ return routes2;
305
+ }
271
306
  const MANIFEST_VERSION = 1;
272
307
  function definitionToEntry(type, def) {
273
308
  const { schema } = def;
@@ -302,44 +337,56 @@ function serializeRegistry(registry) {
302
337
  function buildBloxManifest(blox) {
303
338
  return serializeRegistry(blox.getRegistry());
304
339
  }
305
- exports.AdminEditBar = core._sfc_main;
306
- exports.BLOX_ADMIN_CONFIG_KEY = core.BLOX_ADMIN_CONFIG_KEY;
307
- exports.BLOX_CONFIG_KEY = core.BLOX_CONFIG_KEY;
308
- exports.BLOX_CONTENT_ITEM_KEY = core.BLOX_CONTENT_ITEM_KEY;
309
- exports.BLOX_GLOBAL_RESOLVER_KEY = core.BLOX_GLOBAL_RESOLVER_KEY;
310
- exports.BLOX_LOCALE_STRATEGY_KEY = core.BLOX_LOCALE_STRATEGY_KEY;
311
- exports.BloxInstance = core.BloxInstance;
312
- exports.CmsPageView = core._sfc_main$1;
313
- exports.GLOBAL_REF_KEY = core.GLOBAL_REF_KEY;
314
- exports.GlobalBlockHost = core.GlobalBlockHost;
315
- exports.LocaleRouterLink = core._sfc_main$2;
316
- exports.PageRenderer = core.PageRenderer;
317
- exports.classifyLink = core.classifyLink;
318
- exports.configureApi = core.configureApi;
319
- exports.contentRoutes = core.contentRoutes;
320
- exports.createBlox = core.createBlox;
321
- exports.defineContent = core.defineContent;
322
- exports.getWebsiteId = core.getWebsiteId;
323
- exports.getWebsiteIdSync = core.getWebsiteIdSync;
324
- exports.globalRefOf = core.globalRefOf;
325
- exports.installSmartLinks = core.installSmartLinks;
326
- exports.isAbsoluteExternal = core.isAbsoluteExternal;
327
- exports.isSpecialScheme = core.isSpecialScheme;
328
- exports.listItems = core.listItems;
329
- exports.normalizeLink = core.normalizeLink;
330
- exports.normalizeTo = core.normalizeTo;
331
- exports.resolvePath = core.resolvePath;
332
- exports.toInternalPath = core.toInternalPath;
333
- exports.useBloxEdit = core.useBloxEdit;
334
- exports.useContentItem = core.useContentItem;
335
- exports.useData = core.useData;
336
- exports.useLocale = core.useLocale;
337
- exports.withLocaleRoutes = core.withLocaleRoutes;
340
+ exports.AdminEditBar = routes._sfc_main;
341
+ exports.BLOX_ADMIN_CONFIG_KEY = routes.BLOX_ADMIN_CONFIG_KEY;
342
+ exports.BLOX_CONFIG_KEY = routes.BLOX_CONFIG_KEY;
343
+ exports.BLOX_DATA_KEY = routes.BLOX_DATA_KEY;
344
+ exports.BLOX_DATA_WINDOW_KEY = routes.BLOX_DATA_WINDOW_KEY;
345
+ exports.BLOX_GLOBAL_RESOLVER_KEY = routes.BLOX_GLOBAL_RESOLVER_KEY;
346
+ exports.BLOX_LOCALE_STRATEGY_KEY = routes.BLOX_LOCALE_STRATEGY_KEY;
347
+ exports.BloxInstance = routes.BloxInstance;
348
+ exports.CmsPageView = routes._sfc_main$1;
349
+ exports.ContentDetailView = routes._sfc_main$2;
350
+ exports.ContentHost = routes._sfc_main$3;
351
+ exports.GLOBAL_REF_KEY = routes.GLOBAL_REF_KEY;
352
+ exports.GlobalBlockHost = routes.GlobalBlockHost;
353
+ exports.PageRenderer = routes.PageRenderer;
354
+ exports.classifyLink = routes.classifyLink;
355
+ exports.collectBloxData = routes.collectBloxData;
356
+ exports.collectBloxSeo = routes.collectBloxSeo;
357
+ exports.configureApi = routes.configureApi;
358
+ exports.contentRoutes = routes.contentRoutes;
359
+ exports.createBlox = routes.createBlox;
360
+ exports.defineContent = routes.defineContent;
361
+ exports.generateContentRoutes = routes.generateContentRoutes;
362
+ exports.getContentRoute = routes.getContentRoute;
363
+ exports.getContentRouteByCollection = routes.getContentRouteByCollection;
364
+ exports.getItemById = routes.getItemById;
365
+ exports.getItemBySlug = routes.getItemBySlug;
366
+ exports.getWebsiteId = routes.getWebsiteId;
367
+ exports.getWebsiteIdSync = routes.getWebsiteIdSync;
368
+ exports.globalRefOf = routes.globalRefOf;
369
+ exports.installContentFallback = routes.installContentFallback;
370
+ exports.installSmartLinks = routes.installSmartLinks;
371
+ exports.isAbsoluteExternal = routes.isAbsoluteExternal;
372
+ exports.isSpecialScheme = routes.isSpecialScheme;
373
+ exports.listItems = routes.listItems;
374
+ exports.normalizeLink = routes.normalizeLink;
375
+ exports.normalizeTo = routes.normalizeTo;
376
+ exports.provideBloxData = routes.provideBloxData;
377
+ exports.provideContentItem = routes.provideContentItem;
378
+ exports.resolvePath = routes.resolvePath;
379
+ exports.setApiOrigin = routes.setApiOrigin;
380
+ exports.toInternalPath = routes.toInternalPath;
381
+ exports.useBloxEdit = routes.useBloxEdit;
382
+ exports.useContentItem = routes.useContentItem;
383
+ exports.useData = routes.useData;
384
+ exports.useLocale = routes.useLocale;
385
+ exports.useSeo = routes.useSeo;
338
386
  exports.PreviewApp = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
339
387
  exports.PreviewRenderer = PreviewApp_vue_vue_type_style_index_0_lang.PreviewRenderer;
340
388
  exports.sendToEditor = PreviewApp_vue_vue_type_style_index_0_lang.sendToEditor;
341
389
  exports.sendToPreview = PreviewApp_vue_vue_type_style_index_0_lang.sendToPreview;
342
- exports.BLOX_DATA_WINDOW_KEY = ssg_client.BLOX_DATA_WINDOW_KEY;
343
390
  exports.BloxRouterView = _sfc_main;
344
391
  exports.buildBloxManifest = buildBloxManifest;
345
392
  exports.createBloxApp = createBloxApp;
@@ -350,4 +397,4 @@ exports.useContentSeo = useContentSeo;
350
397
  exports.useGlobalBlock = useGlobalBlock;
351
398
  exports.useLocaleNav = useLocaleNav;
352
399
  exports.usePageContext = usePageContext;
353
- exports.useSeo = useSeo;
400
+ exports.withLocaleRoutes = withLocaleRoutes;
package/dist/index.d.ts CHANGED
@@ -1,29 +1,20 @@
1
- export { configureApi, getWebsiteId, getWebsiteIdSync, listItems, resolvePath } from './api/index';
1
+ export { configureApi, getWebsiteId, getWebsiteIdSync, listItems, resolvePath, setApiOrigin } from './api/index';
2
2
  export type { ListItemsOptions } from './api/index';
3
3
  export type { BindingWarning, Block, BloxPageApiAdapter, CollectionItem, CollectionItemsPage, ContentStatus, PageContent, PageCreateData, PageRead, PageResolveRead, PageUpdateData, WebsiteRead, } from './api/types';
4
4
  export { sendToEditor, sendToPreview } from './bridge';
5
5
  export type { BlockSchemaInfo, EditorMessage, PreviewMessage } from './bridge';
6
6
  export { default as CmsPageView } from './CmsPageView.vue';
7
+ export { default as BloxRouterView } from './components/BloxRouterView.vue';
7
8
  export { default as AdminEditBar } from './admin/AdminEditBar.vue';
8
9
  export { useBloxEdit } from './admin/useBloxEdit';
9
10
  export { useGlobalBlock } from './composables/useGlobalBlock';
10
11
  export type { GlobalBlockLoader, UseGlobalBlockResult } from './composables/useGlobalBlock';
12
+ export { BLOX_DATA_KEY, BLOX_DATA_WINDOW_KEY, collectBloxData, collectBloxSeo, provideBloxData, useData, useSeo } from './data/useData';
13
+ export type { BloxDataRegistry, BloxSeoHead, UseDataOptions, UseDataResult } from './data/useData';
11
14
  export { useLocale } from './composables/useLocale';
12
15
  export type { Locale } from './composables/useLocale';
13
16
  export { useLocaleNav } from './composables/useLocaleNav';
14
17
  export { usePageContext } from './composables/usePageContext';
15
- export { useData, BLOX_DATA_WINDOW_KEY } from './composables/useData';
16
- export type { UseDataOptions, UseDataResult } from './composables/useData';
17
- export { useSeo } from './composables/useSeo';
18
- export type { SeoInput, SeoGetter } from './composables/useSeo';
19
- export { withLocaleRoutes } from './routing/withLocaleRoutes';
20
- export { default as BloxRouterView } from './components/BloxRouterView.vue';
21
- export { default as LocaleRouterLink } from './components/LocaleRouterLink.vue';
22
- export { defineContent, contentRoutes } from './content/defineContent';
23
- export type { ContentRouteDef } from './content/defineContent';
24
- export { useContentItem, BLOX_CONTENT_ITEM_KEY } from './content/useContentItem';
25
- export type { ContentItem } from './content/useContentItem';
26
- export { useContentSeo } from './content/useContentSeo';
27
18
  export { classifyLink, installSmartLinks, isAbsoluteExternal, isSpecialScheme, normalizeLink, normalizeTo, toInternalPath, } from './smartLinks';
28
19
  export type { LinkKind } from './smartLinks';
29
20
  export { BloxInstance, createBlox } from './core';
@@ -33,6 +24,9 @@ export type { BloxAppResult, CreateBloxAppOptions, PlausibleOptions } from './cr
33
24
  export { defineBlock } from './defineBlock';
34
25
  export type { BlockMeta, BlockModule, BlockDataSource, BlockDataSourceConfig } from './defineBlock';
35
26
  export type { LocaleStrategy } from './localeStrategy';
27
+ export { withLocaleRoutes } from './localeRoutes';
28
+ export { defineContent, contentRoutes, getContentRoute, getContentRouteByCollection, generateContentRoutes, installContentFallback, provideContentItem, useContentItem, useContentSeo, getItemBySlug, getItemById, ContentHost, ContentDetailView, } from './content';
29
+ export type { ContentItem, ContentRoute, ContentRouteInput, ContentViewSchema } from './content';
36
30
  export { default as PageRenderer } from './PageRenderer';
37
31
  export { default as PreviewApp } from './PreviewApp.vue';
38
32
  export { default as PreviewRenderer } from './PreviewRenderer';
@@ -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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"}