@nuxtjs/prismic 4.0.0 → 4.1.0-pr.235.94cfeb5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +18 -32
  3. package/dist/module.d.mts +48 -75
  4. package/dist/module.json +3 -3
  5. package/dist/module.mjs +193 -242
  6. package/dist/runtime/PrismicPreview.d.vue.ts +3 -0
  7. package/dist/runtime/PrismicPreview.vue +8 -14
  8. package/dist/runtime/PrismicPreview.vue.d.ts +3 -0
  9. package/dist/runtime/plugin.client.js +13 -7
  10. package/dist/runtime/plugin.js +89 -72
  11. package/dist/runtime/usePrismicPreview.d.ts +1 -5
  12. package/dist/runtime/usePrismicPreview.js +3 -3
  13. package/dist/types.d.mts +3 -1
  14. package/package.json +38 -45
  15. package/src/module.ts +352 -185
  16. package/src/runtime/PrismicPreview.vue +12 -16
  17. package/src/runtime/plugin.client.ts +16 -12
  18. package/src/runtime/plugin.ts +114 -103
  19. package/src/runtime/usePrismicPreview.ts +7 -11
  20. package/dist/client/200.html +0 -1
  21. package/dist/client/404.html +0 -1
  22. package/dist/client/_nuxt/BMD6bpEv.js +0 -1
  23. package/dist/client/_nuxt/BQB6UGbx.js +0 -25
  24. package/dist/client/_nuxt/CkG7IjgS.js +0 -1
  25. package/dist/client/_nuxt/DlAUqK2U.js +0 -1
  26. package/dist/client/_nuxt/H1okkFcd.js +0 -1
  27. package/dist/client/_nuxt/RYS3n4u0.js +0 -1
  28. package/dist/client/_nuxt/V_weDLQm.js +0 -1
  29. package/dist/client/_nuxt/builds/latest.json +0 -1
  30. package/dist/client/_nuxt/builds/meta/ef21bbff-0463-480b-852c-adffad3f33b7.json +0 -1
  31. package/dist/client/_nuxt/entry.BC9BDAld.css +0 -1
  32. package/dist/client/_nuxt/error-404.smTsHvdw.css +0 -1
  33. package/dist/client/_nuxt/error-500.Bo-s0s94.css +0 -1
  34. package/dist/client/_nuxt/index.C4BggqQh.css +0 -1
  35. package/dist/client/index.html +0 -1
  36. package/dist/module.cjs +0 -5
  37. package/dist/module.d.ts +0 -136
  38. package/dist/types.d.ts +0 -1
  39. package/src/devtools/index.ts +0 -127
  40. package/src/devtools/types.ts +0 -22
  41. package/src/lib/fileExists.ts +0 -15
  42. package/src/lib/index.ts +0 -2
  43. package/src/lib/logger.ts +0 -3
  44. package/src/types.ts +0 -137
package/dist/module.mjs CHANGED
@@ -1,289 +1,240 @@
1
- import { join } from 'node:path';
2
- import { readFile } from 'node:fs/promises';
3
1
  import { existsSync } from 'node:fs';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { defineNuxtModule, createResolver, useLogger, addPlugin, addComponent, addImports, extendPages, getNuxtVersion, addTemplate } from '@nuxt/kit';
4
5
  import { defu } from 'defu';
5
- import { useLogger, defineNuxtModule, getNuxtVersion, createResolver, addPlugin, addComponent, addImports, extendPages, addTemplate } from '@nuxt/kit';
6
- import * as prismicVue from '@prismicio/vue';
7
- import { onDevToolsInitialized, extendServerRpc, startSubprocess } from '@nuxt/devtools-kit';
8
- import { resolve } from 'pathe';
9
- import terminate from 'terminate';
10
-
11
- const RPC_NAMESPACE = "prismic-slicemachine-rpc";
12
- var SliceMachineStatus = /* @__PURE__ */ ((SliceMachineStatus2) => {
13
- SliceMachineStatus2[SliceMachineStatus2["STARTED"] = 0] = "STARTED";
14
- SliceMachineStatus2[SliceMachineStatus2["STOPPED"] = 1] = "STOPPED";
15
- return SliceMachineStatus2;
16
- })(SliceMachineStatus || {});
17
-
18
- const DEVTOOLS_UI_ROUTE = "/__prismic-client";
19
- const DEVTOOLS_UI_LOCAL_PORT = 5173;
20
- let subProcess = null;
21
- const stopSubprocess = () => {
22
- if (subProcess) {
23
- const pid = subProcess.getProcess().pid;
24
- if (pid) {
25
- terminate(pid);
26
- }
27
- subProcess.terminate();
28
- subProcess = null;
29
- }
30
- };
31
- const setupDevToolsUI = (nuxt, resolver) => {
32
- const clientPath = resolver.resolve("./client");
33
- const isProductionBuild = existsSync(clientPath);
34
- if (isProductionBuild) {
35
- nuxt.hook("vite:serverCreated", async (server) => {
36
- const sirv = await import('sirv').then((r) => r.default || r);
37
- server.middlewares.use(
38
- DEVTOOLS_UI_ROUTE,
39
- sirv(clientPath, { dev: true, single: true })
40
- );
41
- });
42
- } else {
43
- nuxt.hook("vite:extendConfig", (config) => {
44
- config.server = config.server || {};
45
- config.server.proxy = config.server.proxy || {};
46
- config.server.proxy[DEVTOOLS_UI_ROUTE] = {
47
- target: `http://localhost:${DEVTOOLS_UI_LOCAL_PORT}${DEVTOOLS_UI_ROUTE}`,
48
- changeOrigin: true,
49
- followRedirects: true,
50
- ws: true,
51
- rewrite: (path) => path.replace(DEVTOOLS_UI_ROUTE, "")
52
- };
53
- });
54
- }
55
- nuxt.hooks.hook("close", () => {
56
- stopSubprocess();
57
- });
58
- process.on("exit", () => {
59
- stopSubprocess();
60
- });
61
- onDevToolsInitialized(() => {
62
- const rpc = extendServerRpc(
63
- RPC_NAMESPACE,
64
- {
65
- async getSlicemachineConfig() {
66
- const configPath = resolve(nuxt.options.rootDir, "slicemachine.config.json");
67
- if (existsSync(configPath)) {
68
- return JSON.parse(await readFile(configPath, "utf-8"));
69
- }
70
- return null;
71
- },
72
- isSliceMachineStarted() {
73
- return subProcess !== null;
74
- },
75
- startSliceMachine() {
76
- stopSubprocess();
77
- subProcess = startSubprocess({
78
- command: "npx",
79
- args: ["start-slicemachine"],
80
- cwd: nuxt.options.rootDir
81
- }, {
82
- id: "slicemachine",
83
- name: "SliceMachine",
84
- icon: "i-simple-icons-prismic"
85
- }, nuxt);
86
- rpc.broadcast.updateStatus(SliceMachineStatus.STARTED);
87
- return SliceMachineStatus.STARTED;
88
- },
89
- stopSliceMachine() {
90
- stopSubprocess();
91
- rpc.broadcast.updateStatus(SliceMachineStatus.STOPPED);
92
- return SliceMachineStatus.STOPPED;
93
- }
94
- }
95
- );
96
- });
97
- nuxt.hook("devtools:customTabs", (tabs) => {
98
- tabs.push({
99
- // unique identifier
100
- name: "prismic",
101
- // title to display in the tab
102
- title: "Prismic",
103
- // any icon from Iconify, or a URL to an image
104
- icon: "i-simple-icons-prismic",
105
- // iframe view
106
- view: {
107
- type: "iframe",
108
- src: DEVTOOLS_UI_ROUTE
109
- }
110
- });
111
- });
112
- };
113
-
114
- const logger = useLogger("nuxt:prismic");
115
6
 
116
- const fileExists = (path, extensions = ["js", "ts"]) => {
117
- if (!path) {
118
- return null;
119
- } else if (existsSync(path)) {
120
- return path;
121
- }
122
- const extension = extensions.find((extension2) => existsSync(`${path}.${extension2}`));
123
- return extension ? `${path}.${extension}` : null;
124
- };
125
-
126
- const module = defineNuxtModule({
7
+ const module$1 = defineNuxtModule({
127
8
  meta: {
128
9
  name: "@nuxtjs/prismic",
129
10
  configKey: "prismic",
130
11
  compatibility: { nuxt: ">=3.7.0" }
131
12
  },
132
13
  defaults: (nuxt) => {
133
- let prismicFiles = {
134
- client: "~/app/prismic/client",
135
- linkResolver: "~/app/prismic/linkResolver",
136
- richTextSerializer: "~/app/prismic/richTextSerializer"
137
- };
138
- let prismicComponentsFiles = {
139
- linkRel: "~/app/prismic/linkRel",
140
- richTextComponents: "~/app/prismic/richTextComponents",
141
- sliceZoneDefaultComponent: "~/app/prismic/sliceZoneDefaultComponent"
142
- };
143
- if (nuxt.options?.future?.compatibilityVersion === 4 || getNuxtVersion(nuxt).startsWith("4")) {
144
- prismicFiles = {
145
- client: "~/prismic/client",
146
- linkResolver: "~/prismic/linkResolver",
147
- richTextSerializer: "~/prismic/richTextSerializer"
148
- };
149
- prismicComponentsFiles = {
150
- linkRel: "~/prismic/linkRel",
151
- richTextComponents: "~/prismic/richTextComponents",
152
- sliceZoneDefaultComponent: "~/prismic/sliceZoneDefaultComponent"
14
+ const nuxt3flavor = getNuxtVersion(nuxt).startsWith("3") && !nuxt.options?.future?.compatibilityVersion;
15
+ if (nuxt3flavor) {
16
+ return {
17
+ endpoint: "u",
18
+ environment: "",
19
+ clientConfig: {},
20
+ client: "~/app/prismic/client",
21
+ preview: "/preview",
22
+ toolbar: true,
23
+ componentsConfig: {
24
+ linkResolver: "~/app/prismic/linkResolver",
25
+ defaultComponents: "~/app/prismic/defaultComponents"
26
+ }
153
27
  };
154
28
  }
155
29
  return {
156
30
  endpoint: "",
157
31
  environment: "",
32
+ client: "~/prismic/client",
158
33
  clientConfig: {},
159
- ...prismicFiles,
160
- injectComponents: true,
161
- components: prismicComponentsFiles,
162
34
  preview: "/preview",
163
35
  toolbar: true,
164
- devtools: true
36
+ componentsConfig: {
37
+ linkResolver: "~/prismic/linkResolver",
38
+ defaultComponents: "~/prismic/defaultComponents"
39
+ }
165
40
  };
166
41
  },
167
- hooks: {},
168
42
  setup(options, nuxt) {
169
- nuxt.options.runtimeConfig.public ||= {};
170
- const moduleOptions = defu(nuxt.options.runtimeConfig.public.prismic, options);
171
- nuxt.options.runtimeConfig.public.prismic = moduleOptions;
172
43
  const resolver = createResolver(import.meta.url);
173
- if (nuxt.options.devtools && options.devtools) {
174
- setupDevToolsUI(nuxt, resolver);
44
+ const logger = useLogger("nuxt:prismic");
45
+ const moduleOptions = defu(
46
+ nuxt.options.runtimeConfig.public?.prismic,
47
+ options
48
+ );
49
+ exposeRuntimeConfig();
50
+ transpileDependencies();
51
+ const ok = proxyUserFiles();
52
+ if (!ok) return;
53
+ addRuntimePlugins();
54
+ addAutoImports();
55
+ addPreviewRoute();
56
+ extendESLintConfig();
57
+ function exposeRuntimeConfig() {
58
+ nuxt.options.runtimeConfig.public ||= {};
59
+ nuxt.options.runtimeConfig.public.prismic = moduleOptions;
60
+ }
61
+ function transpileDependencies() {
62
+ nuxt.options.build.transpile.push(
63
+ resolver.resolve("runtime"),
64
+ "@nuxtjs/prismic",
65
+ "@prismicio/vue"
66
+ );
67
+ nuxt.options.vite.optimizeDeps ||= {};
68
+ nuxt.options.vite.optimizeDeps.exclude ||= [];
69
+ nuxt.options.vite.optimizeDeps.exclude.push("@prismicio/vue");
175
70
  }
176
- const proxyUserFileWithUndefinedFallback = (filename, path, deprecated) => {
177
- const resolvedFilename = `prismic/proxy/${filename}.ts`;
178
- const resolvedPath = path.replace(/^(~~|@@)/, nuxt.options.rootDir).replace(/^(~|@)/, nuxt.options.srcDir);
179
- const maybeUserFile = fileExists(resolvedPath, ["js", "mjs", "ts", "vue"]);
180
- if (maybeUserFile) {
181
- logger.info(`Using user-defined \`${filename}\` at \`${maybeUserFile.replace(nuxt.options.srcDir, "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\``);
182
- if (deprecated) {
183
- logger.warn(`\`${filename}\` is deprecated and will be removed in a future version.${typeof deprecated === "string" ? `${deprecated}` : ""}`);
71
+ function proxyUserFiles() {
72
+ const proxyUserFileWithUndefinedFallback = (filename, path) => {
73
+ const resolvedFilename = `prismic/proxy/${filename}.ts`;
74
+ const resolvedPath = path.replace(/^(~~|@@)/, nuxt.options.rootDir).replace(/^(~|@)/, nuxt.options.srcDir);
75
+ const maybeUserFile = fileExists(resolvedPath, [
76
+ "js",
77
+ "mjs",
78
+ "ts",
79
+ "vue"
80
+ ]);
81
+ if (maybeUserFile) {
82
+ logger.info(
83
+ `Using user-defined \`${filename}\` at \`${maybeUserFile.replace(nuxt.options.srcDir, "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\``
84
+ );
85
+ addTemplate({
86
+ filename: resolvedFilename,
87
+ getContents: () => `export { default } from '${path}'`
88
+ });
89
+ return true;
90
+ } else {
91
+ addTemplate({
92
+ filename: resolvedFilename,
93
+ getContents: () => "export default undefined"
94
+ });
95
+ return false;
184
96
  }
185
- addTemplate({
186
- filename: resolvedFilename,
187
- getContents: () => `export { default } from '${path}'`
188
- });
189
- return true;
190
- } else {
191
- addTemplate({
192
- filename: resolvedFilename,
193
- getContents: () => "export default undefined"
194
- });
97
+ };
98
+ const proxiedUserClient = proxyUserFileWithUndefinedFallback(
99
+ "client",
100
+ moduleOptions.client
101
+ );
102
+ if (!moduleOptions.endpoint && !proxiedUserClient && !process.env.NUXT_PUBLIC_PRISMIC_ENDPOINT) {
103
+ logger.warn(
104
+ `\`endpoint\` option is missing and \`${moduleOptions.client}\` was not found. At least one of them is required for the module to run. Disabling module...`
105
+ );
195
106
  return false;
196
107
  }
197
- };
198
- const proxiedUserClient = proxyUserFileWithUndefinedFallback("client", moduleOptions.client);
199
- if (!moduleOptions.endpoint && !proxiedUserClient && !process.env.NUXT_PUBLIC_PRISMIC_ENDPOINT) {
200
- logger.warn(`\`endpoint\` option is missing and \`${moduleOptions.client}\` was not found. At least one of them is required for the module to run. Disabling module...`);
201
- return;
108
+ proxyUserFileWithUndefinedFallback(
109
+ "linkResolver",
110
+ moduleOptions.componentsConfig.linkResolver
111
+ );
112
+ proxyUserFileWithUndefinedFallback(
113
+ "defaultComponents",
114
+ moduleOptions.componentsConfig.defaultComponents
115
+ );
116
+ return true;
202
117
  }
203
- proxyUserFileWithUndefinedFallback("linkResolver", moduleOptions.linkResolver);
204
- proxyUserFileWithUndefinedFallback("richTextSerializer", moduleOptions.richTextSerializer, "Use `components.richTextComponents` instead.");
205
- proxyUserFileWithUndefinedFallback("linkRel", moduleOptions.components.linkRel);
206
- proxyUserFileWithUndefinedFallback("richTextComponents", moduleOptions.components.richTextComponents);
207
- proxyUserFileWithUndefinedFallback("sliceZoneDefaultComponent", moduleOptions.components.sliceZoneDefaultComponent);
208
- nuxt.options.build.transpile.push(resolver.resolve("runtime"), "@nuxtjs/prismic", "@prismicio/vue");
209
- nuxt.options.vite.optimizeDeps ||= {};
210
- nuxt.options.vite.optimizeDeps.exclude ||= [];
211
- nuxt.options.vite.optimizeDeps.exclude.push("@prismicio/vue");
212
- addPlugin(resolver.resolve("runtime/plugin"));
213
- addPlugin(resolver.resolve("runtime/plugin.client"));
214
- if (moduleOptions.injectComponents) {
118
+ function addRuntimePlugins() {
119
+ addPlugin(resolver.resolve("runtime/plugin"));
120
+ addPlugin(resolver.resolve("runtime/plugin.client"));
121
+ }
122
+ function addAutoImports() {
215
123
  [
216
- "PrismicEmbed",
217
124
  "PrismicImage",
218
125
  "PrismicLink",
219
126
  "PrismicText",
220
127
  "PrismicRichText",
128
+ "PrismicTable",
221
129
  "SliceZone"
222
- ].forEach((component) => {
130
+ ].forEach((entry) => {
223
131
  addComponent({
224
- name: component,
225
- export: component,
132
+ name: entry,
133
+ export: entry,
226
134
  filePath: "@prismicio/vue"
227
135
  });
228
136
  });
137
+ addImports(
138
+ [
139
+ "usePrismic",
140
+ "getSliceComponentProps",
141
+ "defineSliceZoneComponents",
142
+ "getRichTextComponentProps",
143
+ "getTableComponentProps"
144
+ ].map((entry) => ({ name: entry, as: entry, from: "@prismicio/vue" }))
145
+ );
146
+ addImports({
147
+ name: "usePrismicPreview",
148
+ as: "usePrismicPreview",
149
+ from: resolver.resolve("runtime/usePrismicPreview")
150
+ });
229
151
  }
230
- const prismicVueAutoImports = Object.keys(prismicVue).filter((key) => key.startsWith("use")).concat("getSliceComponentProps", "defineSliceZoneComponents", "getRichTextComponentProps").map((key) => {
231
- return {
232
- name: key,
233
- as: key,
234
- from: "@prismicio/vue"
235
- };
236
- });
237
- addImports(prismicVueAutoImports);
238
- addImports({
239
- name: "usePrismicPreview",
240
- as: "usePrismicPreview",
241
- from: resolver.resolve("runtime/usePrismicPreview")
242
- });
243
- if (moduleOptions.preview) {
244
- const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, moduleOptions.preview), ["js", "ts", "vue"]);
245
- if (maybeUserPreviewPage) {
246
- logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\`, available at \`${moduleOptions.preview}\``);
247
- } else {
248
- logger.info(`Using default preview page, available at \`${moduleOptions.preview}\``);
249
- extendPages((pages) => {
250
- pages.unshift({
251
- name: "prismic-preview",
252
- path: moduleOptions.preview,
253
- // Checked before
254
- file: resolver.resolve("runtime/PrismicPreview.vue")
152
+ function addPreviewRoute() {
153
+ if (moduleOptions.preview) {
154
+ const maybeUserPreviewPage = fileExists(
155
+ join(
156
+ nuxt.options.srcDir,
157
+ nuxt.options.dir.pages,
158
+ moduleOptions.preview
159
+ ),
160
+ ["js", "ts", "vue"]
161
+ );
162
+ if (maybeUserPreviewPage) {
163
+ logger.info(
164
+ `Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), "~").replace(nuxt.options.rootDir, "~~").replace(
165
+ /\\/g,
166
+ "/"
167
+ )}\`, available at \`${moduleOptions.preview}\``
168
+ );
169
+ } else {
170
+ logger.info(
171
+ `Using default preview page, available at \`${moduleOptions.preview}\``
172
+ );
173
+ extendPages((pages) => {
174
+ pages.unshift({
175
+ name: "prismic-preview",
176
+ path: moduleOptions.preview,
177
+ // Checked before
178
+ file: resolver.resolve("runtime/PrismicPreview.vue")
179
+ });
255
180
  });
256
- });
257
- }
258
- if (!moduleOptions.toolbar) {
259
- logger.warn("`toolbar` option is disabled but `preview` is enabled. Previews won't work unless you manually load the toolbar.");
181
+ }
182
+ if (!moduleOptions.toolbar) {
183
+ logger.warn(
184
+ "`toolbar` option is disabled but `preview` is enabled. Previews won't work unless you manually load the toolbar."
185
+ );
186
+ }
260
187
  }
261
188
  }
262
- nuxt.hook("eslint:config:addons", (addons) => {
263
- addons.push({
264
- name: "@nuxtjs/prismic",
265
- async getConfigs() {
266
- const configPath = resolver.resolve(nuxt.options.rootDir, "slicemachine.config.json");
267
- const configs = [];
268
- try {
269
- if (existsSync(configPath)) {
270
- const config = JSON.parse(await readFile(configPath, "utf-8"));
271
- if (config && "libraries" in config && Array.isArray(config.libraries)) {
272
- configs.push(JSON.stringify({
273
- files: config.libraries.map((library) => `${library.replace("./", "")}/**/index.vue`),
274
- rules: {
275
- "vue/multi-word-component-names": "off"
189
+ function extendESLintConfig() {
190
+ nuxt.hook(
191
+ // @ts-expect-error 3rd party hook
192
+ "eslint:config:addons",
193
+ (addons) => {
194
+ addons.push({
195
+ name: "@nuxtjs/prismic",
196
+ async getConfigs() {
197
+ const configPath = resolver.resolve(
198
+ nuxt.options.rootDir,
199
+ "slicemachine.config.json"
200
+ );
201
+ const configs = [];
202
+ try {
203
+ if (existsSync(configPath)) {
204
+ const config = JSON.parse(await readFile(configPath, "utf-8"));
205
+ if (config && "libraries" in config && Array.isArray(config.libraries)) {
206
+ configs.push(
207
+ JSON.stringify({
208
+ files: config.libraries.map(
209
+ (library) => `${library.replace("./", "")}/**/index.vue`
210
+ ),
211
+ rules: {
212
+ "vue/multi-word-component-names": "off"
213
+ }
214
+ })
215
+ );
276
216
  }
277
- }));
217
+ }
218
+ } catch {
278
219
  }
220
+ return { configs };
279
221
  }
280
- } catch {
281
- }
282
- return { configs };
222
+ });
283
223
  }
284
- });
285
- });
224
+ );
225
+ }
286
226
  }
287
227
  });
228
+ function fileExists(path, extensions = ["js", "ts"]) {
229
+ if (!path) {
230
+ return null;
231
+ } else if (existsSync(path)) {
232
+ return path;
233
+ }
234
+ const extension = extensions.find(
235
+ (extension2) => existsSync(`${path}.${extension2}`)
236
+ );
237
+ return extension ? `${path}.${extension}` : null;
238
+ }
288
239
 
289
- export { module as default };
240
+ export { module$1 as default };
@@ -0,0 +1,3 @@
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,27 +1,21 @@
1
+ <script setup>
2
+ import { usePrismicPreview, useSeoMeta } from "#imports";
3
+ useSeoMeta({ title: "Prismic Preview - Loading" });
4
+ usePrismicPreview();
5
+ </script>
6
+
1
7
  <template>
2
8
  <section class="prismic-preview">
3
9
  <figure>
4
10
  <img
5
11
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMzYiPgogIDxwYXRoIGZpbGw9IiMyMTI3MzUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTM1LjUzOCAxOC43NGwtMi42NTUtMi42NmExLjEyNiAxLjEyNiAwIDAgMS0uMzI5LS43OTZ2LTMuMjU2YzAtMy4wMDktLjMxMy00LjEtLjktNS4yYTYuMTI3IDYuMTI3IDAgMCAwLTIuNTQ2LTIuNTUxYy0xLjA5Ny0uNTg5LTIuMTg2LS45MDItNS4xODgtLjkwMmgtNC4yOTVhLjIyNS4yMjUgMCAwIDEtLjE1OC0uMzg0TDIyLjEyMi4zM2MuMjEtLjIxMS40OTYtLjMzLjc5NC0uMzNoMS40OTNjNC4wMDMgMCA1LjQ1NS40MTggNi45MTkgMS4yMDJhOC4xNjkgOC4xNjkgMCAwIDEgMy4zOTQgMy40MDJjLjc4MyAxLjQ2NyAxLjIgMi45MjIgMS4yIDYuOTMzdjcuMDQ1YS4yMjUuMjI1IDAgMCAxLS4zODQuMTU5ek0xNy4yMjIgMzUuNjE3bDIuNjU1LTIuNjYxYy4yMS0uMjExLjQ5Ni0uMzMuNzk0LS4zM2gzLjI0OWMzLjAwMiAwIDQuMDktLjMxMyA1LjE4OC0uOTAyYTYuMTI3IDYuMTI3IDAgMCAwIDIuNTQ2LTIuNTUxYy41ODctMS4xLjktMi4xOTEuOS01LjJ2LTQuMzA0YS4yMjUuMjI1IDAgMCAxIC4zODMtLjE1OWwyLjY1NiAyLjY2MWMuMjEuMjExLjMyOS40OTguMzI5Ljc5NnYxLjQ5N2MwIDQuMDExLS40MTcgNS40NjYtMS4yIDYuOTMzYTguMTY5IDguMTY5IDAgMCAxLTMuMzk0IDMuNDAyQzI5Ljg2NCAzNS41ODIgMjguNDEyIDM2IDI0LjQwOSAzNkgxNy4zOGEuMjI1LjIyNSAwIDAgMS0uMTU4LS4zODR6TS4zODMgMTcuMjU5TDMuMDQgMTkuOTJjLjIxLjIxMS4zMjkuNDk4LjMyOS43OTZ2My4yNTZjMCAzLjAwOS4zMTIgNC4xLjkgNS4yYTYuMTI3IDYuMTI3IDAgMCAwIDIuNTQ1IDIuNTUxYzEuMDk4LjU4OSAyLjE4Ny45MDIgNS4xODkuOTAyaDQuMjk0YS4yMjUuMjI1IDAgMCAxIC4xNi4zODRsLTIuNjU3IDIuNjYxYy0uMjEuMjExLS40OTYuMzMtLjc5My4zM2gtMS40OTRjLTQuMDAzIDAtNS40NTQtLjQxOC02LjkxOC0xLjIwMkE4LjE2OSA4LjE2OSAwIDAgMSAxLjIgMzEuMzk2Qy40MTcgMjkuOTI5IDAgMjguNDc0IDAgMjQuNDYzdi03LjA0NWEuMjI1LjIyNSAwIDAgMSAuMzgzLS4xNTl6TTE2LjA0NSAzLjA0NWMtLjIxMS4yMTEtLjQ5Ni4zMy0uNzk0LjMzaC0zLjI0OWMtMy4wMDIgMC00LjA5MS4zMTMtNS4xODkuOTAyYTYuMTI3IDYuMTI3IDAgMCAwLTIuNTQ2IDIuNTUxYy0uNTg3IDEuMS0uOSAyLjE5MS0uOSA1LjJ2NC4zMDRhLjIyNS4yMjUgMCAwIDEtLjM4My4xNTlMLjMzIDEzLjgzQTEuMTI2IDEuMTI2IDAgMCAxIDAgMTMuMDM0di0xLjQ5N2MwLTQuMDExLjQxNy01LjQ2NiAxLjItNi45MzNhOC4xNjkgOC4xNjkgMCAwIDEgMy4zOTQtMy40MDJDNi4wNTguNDE4IDcuNTEgMCAxMS41MTIgMGg3LjAzYS4yMjUuMjI1IDAgMCAxIC4xNTguMzg0bC0yLjY1NSAyLjY2MXptMTMuODg0IDEwLjA5MWwtMy42Mi0zLjQ2OGMtLjI0LS4yNC0uNTItLjQxNC0uODE5LS41MjNBMi4yMzYgMi4yMzYgMCAwIDAgMjQuNjk2IDlIMTQuMDFhLjIyNS4yMjUgMCAwIDEtLjE1OS0uMzg0bDIuNjU5LTIuNjYyYy4yMS0uMjEuNDk1LS4zMjkuNzkzLS4zMjloOC41MTZjMi40OCAwIDQuNDkgMi4wMTUgNC40OSA0LjV2Mi44NDlhLjIyNS4yMjUgMCAwIDEtLjM4LjE2MnptLTcuMTE1IDE2Ljg2MWwzLjQ2LTMuNjI5Yy4yNC0uMjQuNDE0LS41Mi41MjMtLjgyYTIuMjUgMi4yNSAwIDAgMCAuMTQ0LS43OTV2LTEwLjcxYS4yMjUuMjI1IDAgMCAxIC4zODQtLjE1OWwyLjY1NiAyLjY2NGMuMjEuMjExLjMyOC40OTcuMzI4Ljc5NnY4LjUzNGMwIDIuNDg1LTIuMDEgNC41LTQuNDkgNC41aC0yLjg0M2EuMjI1LjIyNSAwIDAgMS0uMTYyLS4zOHpNNS45OTIgMjIuODY0bDMuNjIyIDMuNDY4Yy4yMzkuMjQuNTIuNDE0LjgxOC41MjMuMjQ2LjA5NC41MTQuMTQ1Ljc5NC4xNDVoMTAuNjg2YS4yMjUuMjI1IDAgMCAxIC4xNTguMzg0bC0yLjY1OCAyLjY2MmMtLjIxLjIxLS40OTYuMzI5LS43OTMuMzI5aC04LjUxNmE0LjQ5NSA0LjQ5NSAwIDAgMS00LjQ5LTQuNXYtMi44NDlhLjIyNS4yMjUgMCAwIDEgLjM4LS4xNjJ6bTcuMTE2LTE2Ljg1OWwtMy40NjEgMy42M2MtLjI0LjI0LS40MTMuNTItLjUyMi44MmEyLjI1IDIuMjUgMCAwIDAtLjE0NS43OTV2MTAuNzFhLjIyNS4yMjUgMCAwIDEtLjM4My4xNThsLTIuNjU2LTIuNjY0YTEuMTI2IDEuMTI2IDAgMCAxLS4zMjgtLjc5NXYtOC41MzRjMC0yLjQ4NSAyLjAxLTQuNSA0LjQ5LTQuNWgyLjg0M2EuMjI1LjIyNSAwIDAgMSAuMTYyLjM4em0zMy4xMDUgNC4zNzloLjg2OGMuNTkzIDAgMS4wNzQuNDggMS4wNzQgMS4wNzR2MS4wMTZjMCAuMDMyLjAyNi4wNTcuMDU3LjA1Ny40OTUtLjg3NSAxLjE2LTEuNTEgMS45OTgtMS45MDlhNi4yMzYgNi4yMzYgMCAwIDEgMi43MS0uNTk2YzEuMDQ3IDAgMS45ODkuMTk0IDIuODI2LjU4Mi44MzcuMzg3IDEuNTUuOTIgMi4xNCAxLjU5NWE2Ljg5NiA2Ljg5NiAwIDAgMSAxLjM0IDIuMzg2Yy4zMDUuOTE1LjQ1NyAxLjkuNDU3IDIuOTUzYTguNzk1IDguNzk1IDAgMCAxLS40ODUgMi45NTMgNy40MTggNy40MTggMCAwIDEtMS4zNTUgMi4zODYgNi4yNjkgNi4yNjkgMCAwIDEtMi4wOTcgMS41OTUgNi4xODIgNi4xODIgMCAwIDEtMi42ODMuNTgyYy0uNjQ3IDAtMS4yMTctLjA3LTEuNzEyLS4yMDlhNS43NTEgNS43NTEgMCAwIDEtMS4zMTItLjUzNyA1LjI1MiA1LjI1MiAwIDAgMS0uOTctLjcgNS4wMTIgNS4wMTIgMCAwIDEtLjY1Ny0uNzMxLjA4Ni4wODYgMCAwIDAtLjA4Ni4wODV2Ny4yMjRhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwM2ExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0xMC4wNDYgNy4xNThjMC0uNTU3LS4wOS0xLjA5NC0uMjctMS42MWE0LjA3OCA0LjA3OCAwIDAgMC0uOC0xLjM3MyAzLjk5IDMuOTkgMCAwIDAtMS4yNy0uOTU0Yy0uNDk0LS4yMzktMS4wNTUtLjM1OC0xLjY4My0uMzU4LS42MjggMC0xLjE5LjEyLTEuNjg0LjM1OGEzLjk5IDMuOTkgMCAwIDAtMS4yNy45NTQgNC4wNzggNC4wNzggMCAwIDAtLjc5OSAxLjM3MiA0Ljg0NSA0Ljg0NSAwIDAgMC0uMjcgMS42MWMwIC41NTguMDkgMS4wOTQuMjcgMS42MTEuMTgxLjUxNy40NDcuOTc1LjggMS4zNzJhMy45OSAzLjk5IDAgMCAwIDEuMjcuOTU1Yy40OTQuMjM4IDEuMDU1LjM1OCAxLjY4My4zNTguNjI4IDAgMS4xODktLjEyIDEuNjgzLS4zNThhMy45OSAzLjk5IDAgMCAwIDEuMjctLjk1NWMuMzUyLS4zOTcuNjE4LS44NTUuOC0xLjM3Mi4xOC0uNTE3LjI3LTEuMDUzLjI3LTEuNjF6bTguMzU5LTcuMTU4aC45OGMuNjI2IDAgMS4xMzQuNTA3IDEuMTM0IDEuMTMzdjEuMDc3YzAgLjAzMS4wMjUuMDU3LjA1Ny4wNTcuMzgtLjgzNi45MjItMS40ODIgMS42MjYtMS45MzkuNzA0LS40NTcgMS41MTMtLjY4NiAyLjQyNi0uNjg2LjIwOSAwIC40MTQuMDIuNjEzLjA2YS43NjIuNzYyIDAgMCAxIC42MTQuNzQ3djEuOTY0YS43MTUuNzE1IDAgMCAxLS44NDIuNzA0IDQuNTggNC41OCAwIDAgMC0uODEzLS4wNzVjLS44IDAtMS40NDEuMTU0LTEuOTI2LjQ2Mi0uNDg1LjMwOS0uODU2LjY2MS0xLjExMyAxLjA2YTMuNiAzLjYgMCAwIDAtLjUxNCAxLjE5MmMtLjA4Ni4zOTgtLjEyOC42OTYtLjEyOC44OTV2Ni4zNTVhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0xMS41ODUgMGguODA0Yy43MjMgMCAxLjMxLjU4NyAxLjMxIDEuMzFWMjMuMzlhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0tMS43OTUtNC44NjJjMC0uNTc2LjIwNC0xLjA3OC42MTMtMS41MDYuNDEtLjQyNy45MjgtLjY0MSAxLjU1NS0uNjQxLjYyOCAwIDEuMTU2LjIwNCAxLjU4NC42MTEuNDI4LjQwOC42NDIuOTIuNjQyIDEuNTM2IDAgLjYxNy0uMjE0IDEuMTI5LS42NDIgMS41MzYtLjQyOC40MDgtLjk1Ni42MTItMS41ODQuNjEyLS42MjcgMC0xLjE0Ni0uMjE0LTEuNTU1LS42NDFhMi4xMDggMi4xMDggMCAwIDEtLjYxMy0xLjUwN3ptMTQuNzUzIDguMTMzYy0uNjk1LS41MS0xLjMxNC0uNzY2LTEuODU1LS43NjYtLjQ1NyAwLS45MDQuMTItMS4zNDIuMzU4LS40MzcuMjM5LS42NTYuNjI2LS42NTYgMS4xNjMgMCAuNDM4LjE4Ljc1Ni41NDIuOTU1LjM2Mi4xOTguODE4LjM2OCAxLjM3LjUwNy41NTIuMTM5IDEuMTQ2LjI4MyAxLjc4My40MzIuNjM4LjE1IDEuMjMyLjM3OCAxLjc4NC42ODYuNTUyLjMwOCAxLjAwOC43MyAxLjM3IDEuMjY4LjM2MS41MzcuNTQyIDEuMjcyLjU0MiAyLjIwNyAwIC44NTUtLjE3NiAxLjU3NS0uNTI4IDIuMTYyYTQuMjQxIDQuMjQxIDAgMCAxLTEuMzcgMS40MTcgNS45MjcgNS45MjcgMCAwIDEtMS44OTcuNzc1IDkuNTUzIDkuNTUzIDAgMCAxLTIuMTEyLjIzOWMtMS4wNjUgMC0yLjA0NS0uMTYtMi45NC0uNDc3LS4zNS0uMTI1LS43Ny0uMzc1LTEuMjYtLjc1MWExLjMxIDEuMzEgMCAwIDEtLjExOS0xLjk3NmwuMzU1LS4zNDhhMS4zMSAxLjMxIDAgMCAxIDEuNzgzLS4wNDhjLjIwOC4xODMuMzg4LjMyNC41NC40MjMuNTA0LjMyOSAxLjExOC40OTMgMS44NC40OTMuMjQ4IDAgLjUwNS0uMDMuNzcxLS4wOS4yNjctLjA2LjUxNC0uMTU5Ljc0Mi0uMjk4LjIyOC0uMTQuNDE0LS4zMTMuNTU3LS41MjIuMTQyLS4yMDkuMjE0LS40NTIuMjE0LS43MyAwLS40OTgtLjE4MS0uODY2LS41NDMtMS4xMDQtLjM2MS0uMjM5LS44MTgtLjQzMy0xLjM3LS41ODJhMjguNzQ2IDI4Ljc0NiAwIDAgMC0xLjc4My0uNDE3IDYuNzA3IDYuNzA3IDAgMCAxLTEuNzgzLS42MjcgMy43OTUgMy43OTUgMCAwIDEtMS4zNy0xLjIwOGMtLjM2MS0uNTE3LS41NDItMS4yMzMtLjU0Mi0yLjE0NyAwLS43OTUuMTU3LTEuNDg2LjQ3LTIuMDczYTQuMjY1IDQuMjY1IDAgMCAxIDEuMjQyLTEuNDQ2IDUuMjU2IDUuMjU2IDAgMCAxIDEuNzctLjgzNiA3Ljc3MyA3Ljc3MyAwIDAgMSAyLjAyNS0uMjY4Yy45MTMgMCAxLjgxNy4xNjQgMi43MTEuNDkyLjMyNC4xMTkuNjg1LjMzOSAxLjA4NC42NmExLjMxIDEuMzEgMCAwIDEgLjA3NSAxLjk3NWwtLjQyNi40MDFhMS4zMSAxLjMxIDAgMCAxLTEuNjc0LjEwMXptNy43ODctMy4yNzFoLjYzM2MuNzIzIDAgMS4zMS41ODcgMS4zMSAxLjMxdi45MjdhNS42MDIgNS42MDIgMCAwIDEgMS41MjctMS44MDVjLjY3NS0uNTI3IDEuNTgzLS43OSAyLjcyNS0uNzkgMi4xNSAwIDMuNTc2Ljg4NSA0LjI4IDIuNjU0LjQ5NS0uOTE0IDEuMTEzLTEuNTg1IDEuODU1LTIuMDEzLjc0Mi0uNDI3IDEuNjI2LS42NDEgMi42NTQtLjY0MS45MTMgMCAxLjY4My4xNTkgMi4zMTEuNDc3YTQuMDg0IDQuMDg0IDAgMCAxIDEuNTI3IDEuMzEyYy4zOS41NTcuNjcgMS4yMDguODQxIDEuOTU0LjE3Mi43NDYuMjU3IDEuNTQ2LjI1NyAyLjR2Ny4yMmExLjMxIDEuMzEgMCAwIDEtMS4zMSAxLjMxaC0uODA0YTEuMzEgMS4zMSAwIDAgMS0xLjMxLTEuMzF2LTYuODAyYzAtLjQzNy0uMDM4LS44Ni0uMTE0LTEuMjY3YTMuMTExIDMuMTExIDAgMCAwLS40LTEuMDc0IDIuMDYyIDIuMDYyIDAgMCAwLS43Ny0uNzNjLS4zMjQtLjE4LS43NDItLjI2OS0xLjI1Ni0uMjY5LS41MzIgMC0uOTg0LjEwNC0xLjM1NS4zMTNhMi42ODYgMi42ODYgMCAwIDAtLjkxMy44MzUgMy41MDggMy41MDggMCAwIDAtLjUxNCAxLjE5MyA1Ljk0IDUuOTQgMCAwIDAtLjE1NyAxLjM1N3Y2LjQ0NWExLjMxIDEuMzEgMCAwIDEtMS4zMSAxLjMxaC0uODA0YTEuMzEgMS4zMSAwIDAgMS0xLjMxLTEuMzF2LTcuMjJjMC0uODk1LS4xOC0xLjYwNi0uNTQyLTIuMTMzLS4zNjItLjUyNi0uOTYtLjc5LTEuNzk4LS43OS0uNTcgMC0xLjA1MS4xLTEuNDQxLjI5OC0uMzkuMi0uNzEzLjQ2OC0uOTcuODA2YTMuMjYgMy4yNiAwIDAgMC0uNTU3IDEuMTYzIDUuNDEzIDUuNDEzIDAgMCAwLS4xNyAxLjM3MnY2LjUwNGExLjMxIDEuMzEgMCAwIDEtMS4zMTEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg3LTEuMzEgMS4zMS0xLjMxem0yNS40NTQgMGguODAzYy43MjQgMCAxLjMxLjU4NyAxLjMxIDEuMzFWMjMuMzlhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwM2ExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0tMS43OTYtNC44NjJjMC0uNTc2LjIwNS0xLjA3OC42MTQtMS41MDYuNDA5LS40MjcuOTI3LS42NDEgMS41NTUtLjY0MS42MjggMCAxLjE1Ni4yMDQgMS41ODQuNjExLjQyOC40MDguNjQyLjkyLjY0MiAxLjUzNiAwIC42MTctLjIxNCAxLjEyOS0uNjQyIDEuNTM2LS40MjguNDA4LS45NTYuNjEyLTEuNTg0LjYxMi0uNjI4IDAtMS4xNDYtLjIxNC0xLjU1NS0uNjQxYTIuMTA4IDIuMTA4IDAgMCAxLS42MTQtMS41MDd6bTE2Ljc1MSA4LjM3M2EzLjU2NCAzLjU2NCAwIDAgMC0uMzcxLS4yNiAyLjYwNyAyLjYwNyAwIDAgMC0xLjM0Mi0uMzg4Yy0uNjI3IDAtMS4xODkuMTItMS42ODMuMzU4YTMuOTkgMy45OSAwIDAgMC0xLjI3Ljk1NCA0LjA3OCA0LjA3OCAwIDAgMC0uNzk5IDEuMzcyIDQuODQ1IDQuODQ1IDAgMCAwLS4yNzEgMS42MWMwIC41NTguMDkgMS4wOTQuMjcxIDEuNjExLjE4LjUxNy40NDcuOTc1LjggMS4zNzJhMy45OSAzLjk5IDAgMCAwIDEuMjY5Ljk1NWMuNDk0LjIzOCAxLjA1Ni4zNTggMS42ODMuMzU4LjUzMyAwIDEuMDI4LS4xMTUgMS40ODQtLjM0My4wOTMtLjA0Ny4xOTMtLjExLjMtLjE4OWExLjMxIDEuMzEgMCAwIDEgMS43NTYuMTg1bC41Mi41ODRhMS4yNDggMS4yNDggMCAwIDEtLjMwNyAxLjkxIDcuOTggNy45OCAwIDAgMS0yLjY2OC45N2MtLjQxOS4wNjktLjc4LjEwNC0xLjA4NS4xMDRhNy45MDQgNy45MDQgMCAwIDEtMi45MS0uNTM3QTYuOTM4IDYuOTM4IDAgMCAxIDEzMC4zNjUgMjNhNy4yMyA3LjIzIDAgMCAxLTEuNTgzLTIuMzcxYy0uMzktLjkyNS0uNTg1LTEuOTU0LS41ODUtMy4wODcgMC0xLjEzMy4xOTUtMi4xNjIuNTg1LTMuMDg3YTcuMjMgNy4yMyAwIDAgMSAxLjU4My0yLjM3MSA2LjkzOCA2LjkzOCAwIDAgMSAyLjM2OS0xLjUyMSA3LjkwNCA3LjkwNCAwIDAgMSAyLjkxLS41MzdjLjg3NiAwIDEuNzU1LjE3NCAyLjY0LjUyMi4zMzcuMTMzLjczNS4zNyAxLjE5My43MTFhMS4zMSAxLjMxIDAgMCAxIC4xNjQgMS45NTdsLS41My41NTNhMS4zMSAxLjMxIDAgMCAxLTEuNzU0LjEyNnoiLz4KPC9zdmc+"
6
12
  alt="Prismic"
7
- >
8
- <figcaption>
9
- Loading preview...
10
- </figcaption>
13
+ />
14
+ <figcaption>Loading preview...</figcaption>
11
15
  </figure>
12
16
  </section>
13
17
  </template>
14
18
 
15
- <script setup>
16
- import { useHead, usePrismicPreview } from '#imports'
17
-
18
- useHead({
19
- title: 'Prismic Preview - Loading',
20
- })
21
-
22
- usePrismicPreview()
23
- </script>
24
-
25
19
  <style scoped>
26
20
  .prismic-preview{align-items:center;background:#fff;color:#666;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1rem;height:100vh;justify-content:center;left:0;position:fixed;text-align:center;top:0;width:100%}img{margin-bottom:1.25rem}
27
21
  </style>
@@ -0,0 +1,3 @@
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,11 +1,17 @@
1
1
  import { defineNuxtPlugin } from "#app";
2
2
  import { refreshNuxtData, useRuntimeConfig } from "#imports";
3
- export default defineNuxtPlugin((_nuxtApp) => {
4
- const options = useRuntimeConfig().public.prismic;
5
- if (options.preview) {
6
- window.addEventListener("prismicPreviewUpdate", (event) => {
7
- event.preventDefault();
8
- refreshNuxtData();
9
- });
3
+ export default defineNuxtPlugin({
4
+ name: "prismic:plugin:client",
5
+ parallel: true,
6
+ setup() {
7
+ hotReloadPrismicPreview();
8
+ function hotReloadPrismicPreview() {
9
+ if (useRuntimeConfig().public.prismic?.preview) {
10
+ window.addEventListener("prismicPreviewUpdate", (event) => {
11
+ event.preventDefault();
12
+ refreshNuxtData();
13
+ });
14
+ }
15
+ }
10
16
  }
11
17
  });