@nuxtjs/prismic 3.2.1 → 3.3.1

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 (45) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -7
  3. package/dist/client/200.html +11 -11
  4. package/dist/client/404.html +11 -11
  5. package/dist/client/_nuxt/{Lz2p7R1y.js → B4G-IZst.js} +1 -1
  6. package/dist/client/_nuxt/BXaKOz4R.js +2 -0
  7. package/dist/client/_nuxt/{D54RSGlc.js → Bn9u41Uw.js} +1 -1
  8. package/dist/client/_nuxt/{ChHt1xqE.js → CpxYXSTt.js} +1 -1
  9. package/dist/client/_nuxt/D2P5wF0N.js +1 -0
  10. package/dist/client/_nuxt/DCUMl-h9.js +24 -0
  11. package/dist/client/_nuxt/builds/latest.json +1 -1
  12. package/dist/client/_nuxt/builds/meta/90726dd4-ebfb-46c1-9125-67d088c2862d.json +1 -0
  13. package/dist/client/_nuxt/entry.CtO0E-QA.css +1 -0
  14. package/dist/client/_nuxt/error-404.luvduoeL.css +1 -0
  15. package/dist/client/_nuxt/error-500.C5gpBh_R.css +1 -0
  16. package/dist/client/_nuxt/index.14_QEbrK.css +1 -0
  17. package/dist/client/index.html +11 -11
  18. package/dist/module.json +6 -2
  19. package/dist/module.mjs +54 -18
  20. package/dist/runtime/{preview.vue → PrismicPreview.vue} +3 -2
  21. package/dist/runtime/plugin.client.d.ts +0 -2
  22. package/dist/runtime/{plugin.client.mjs → plugin.client.js} +1 -1
  23. package/dist/runtime/plugin.d.ts +0 -2
  24. package/dist/types.d.mts +40 -0
  25. package/dist/types.d.ts +40 -0
  26. package/package.json +34 -37
  27. package/src/devtools/index.ts +14 -13
  28. package/src/devtools/types.ts +6 -6
  29. package/src/lib/fileExists.ts +2 -1
  30. package/src/module.ts +87 -28
  31. package/src/runtime/{preview.vue → PrismicPreview.vue} +3 -2
  32. package/src/runtime/plugin.client.ts +1 -1
  33. package/src/runtime/plugin.ts +15 -14
  34. package/src/runtime/usePrismicPreview.ts +1 -1
  35. package/src/types.ts +9 -9
  36. package/dist/client/_nuxt/C7iAG9wF.js +0 -1
  37. package/dist/client/_nuxt/CeI64nSh.js +0 -2
  38. package/dist/client/_nuxt/Cjy23aWT.js +0 -29
  39. package/dist/client/_nuxt/builds/meta/4cf6b9d4-082b-4191-a00f-b315b1452682.json +0 -1
  40. package/dist/client/_nuxt/entry.CDGvsxww.css +0 -1
  41. package/dist/client/_nuxt/error-404.Cp3iMWid.css +0 -1
  42. package/dist/client/_nuxt/error-500.OT9K-Srj.css +0 -1
  43. package/dist/client/_nuxt/index.ofkS6DTB.css +0 -1
  44. /package/dist/runtime/{plugin.mjs → plugin.js} +0 -0
  45. /package/dist/runtime/{usePrismicPreview.mjs → usePrismicPreview.js} +0 -0
package/src/module.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { join } from 'node:path'
2
+ import { readFile } from 'node:fs/promises'
3
+ import { existsSync } from 'node:fs'
2
4
 
3
5
  import { defu } from 'defu'
4
6
  import {
@@ -8,7 +10,8 @@ import {
8
10
  addPlugin,
9
11
  addImports,
10
12
  addComponent,
11
- extendPages
13
+ extendPages,
14
+ getNuxtVersion,
12
15
  } from '@nuxt/kit'
13
16
 
14
17
  import * as prismicVue from '@prismicio/vue'
@@ -37,23 +40,41 @@ export default defineNuxtModule<PrismicModuleOptions>({
37
40
  meta: {
38
41
  name: '@nuxtjs/prismic',
39
42
  configKey: 'prismic',
40
- compatibility: { nuxt: '^3.7.0' }
43
+ compatibility: { nuxt: '>=3.7.0' },
44
+ },
45
+ defaults: (nuxt) => {
46
+ let prismicFiles = {
47
+ client: '~/app/prismic/client',
48
+ linkResolver: '~/app/prismic/linkResolver',
49
+ richTextSerializer: '~/app/prismic/richTextSerializer',
50
+ }
51
+
52
+ // Nuxt 4 sets `app` as its `srcDir`, so we're just using the `prismic` folder there.
53
+ if (
54
+ nuxt.options?.future?.compatibilityVersion === 4
55
+ || getNuxtVersion(nuxt).startsWith('4')
56
+ ) {
57
+ prismicFiles = {
58
+ client: '~/prismic/client',
59
+ linkResolver: '~/prismic/linkResolver',
60
+ richTextSerializer: '~/prismic/richTextSerializer',
61
+ }
62
+ }
63
+
64
+ return {
65
+ endpoint: '',
66
+ environment: '',
67
+ clientConfig: {},
68
+ ...prismicFiles,
69
+ injectComponents: true,
70
+ components: {},
71
+ preview: '/preview',
72
+ toolbar: true,
73
+ devtools: true,
74
+ }
41
75
  },
42
- defaults: _nuxt => ({
43
- endpoint: '',
44
- environment: '',
45
- clientConfig: {},
46
- client: '~/app/prismic/client',
47
- linkResolver: '~/app/prismic/linkResolver',
48
- richTextSerializer: '~/app/prismic/richTextSerializer',
49
- injectComponents: true,
50
- components: {},
51
- preview: '/preview',
52
- toolbar: true,
53
- devtools: true
54
- }),
55
76
  hooks: {},
56
- setup (options, nuxt) {
77
+ setup(options, nuxt) {
57
78
  // Expose options through public runtime config
58
79
  nuxt.options.runtimeConfig.public ||= {} as typeof nuxt.options.runtimeConfig.public
59
80
  const moduleOptions: PrismicModuleOptions = defu(nuxt.options.runtimeConfig.public.prismic, options)
@@ -66,8 +87,8 @@ export default defineNuxtModule<PrismicModuleOptions>({
66
87
  }
67
88
 
68
89
  // Add runtime user code
69
- const proxyUserFileWithUndefinedFallback =
70
- (filename: string, path: string, extensions = ['js', 'mjs', 'ts']): boolean => {
90
+ const proxyUserFileWithUndefinedFallback
91
+ = (filename: string, path: string, extensions = ['js', 'mjs', 'ts']): boolean => {
71
92
  const resolvedFilename = `prismic/proxy/${filename}.ts`
72
93
  const resolvedPath = path.replace(/^(~~|@@)/, nuxt.options.rootDir).replace(/^(~|@)/, nuxt.options.srcDir)
73
94
  const maybeUserFile = fileExists(resolvedPath, extensions)
@@ -78,15 +99,16 @@ export default defineNuxtModule<PrismicModuleOptions>({
78
99
 
79
100
  addTemplate({
80
101
  filename: resolvedFilename,
81
- getContents: () => `export { default } from '${path}'`
102
+ getContents: () => `export { default } from '${path}'`,
82
103
  })
83
104
 
84
105
  return true
85
- } else {
106
+ }
107
+ else {
86
108
  // Else provide `undefined` fallback
87
109
  addTemplate({
88
110
  filename: resolvedFilename,
89
- getContents: () => 'export default undefined'
111
+ getContents: () => 'export default undefined',
90
112
  })
91
113
 
92
114
  return false
@@ -118,12 +140,12 @@ export default defineNuxtModule<PrismicModuleOptions>({
118
140
  'PrismicLink',
119
141
  'PrismicText',
120
142
  'PrismicRichText',
121
- 'SliceZone'
143
+ 'SliceZone',
122
144
  ].forEach((component) => {
123
145
  addComponent({
124
146
  name: component,
125
147
  export: component,
126
- filePath: '@prismicio/vue'
148
+ filePath: '@prismicio/vue',
127
149
  })
128
150
  })
129
151
  }
@@ -137,14 +159,14 @@ export default defineNuxtModule<PrismicModuleOptions>({
137
159
  return {
138
160
  name: key,
139
161
  as: key,
140
- from: '@prismicio/vue'
162
+ from: '@prismicio/vue',
141
163
  }
142
164
  })
143
165
  addImports(prismicVueAutoImports)
144
166
  addImports({
145
167
  name: 'usePrismicPreview',
146
168
  as: 'usePrismicPreview',
147
- from: resolver.resolve('runtime/usePrismicPreview')
169
+ from: resolver.resolve('runtime/usePrismicPreview'),
148
170
  })
149
171
 
150
172
  // Add preview route
@@ -154,14 +176,15 @@ export default defineNuxtModule<PrismicModuleOptions>({
154
176
  if (maybeUserPreviewPage) {
155
177
  logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), '~').replace(nuxt.options.rootDir, '~~').replace(/\\/g, '/')
156
178
  }\`, available at \`${moduleOptions.preview}\``)
157
- } else {
179
+ }
180
+ else {
158
181
  logger.info(`Using default preview page, available at \`${moduleOptions.preview}\``)
159
182
 
160
183
  extendPages((pages) => {
161
184
  pages.unshift({
162
185
  name: 'prismic-preview',
163
186
  path: moduleOptions.preview as string, // Checked before
164
- file: resolver.resolve('runtime/preview.vue')
187
+ file: resolver.resolve('runtime/PrismicPreview.vue'),
165
188
  })
166
189
  })
167
190
  }
@@ -170,5 +193,41 @@ export default defineNuxtModule<PrismicModuleOptions>({
170
193
  logger.warn('`toolbar` option is disabled but `preview` is enabled. Previews won\'t work unless you manually load the toolbar.')
171
194
  }
172
195
  }
173
- }
196
+
197
+ // Integrate with @nuxt/eslint
198
+ // @ts-expect-error 3rd party hook
199
+ nuxt.hook('eslint:config:addons', (addons: {
200
+ name: string
201
+ getConfigs: () => Promise<{ configs: string[] }>
202
+ }[]) => {
203
+ addons.push({
204
+ name: '@nuxtjs/prismic',
205
+ async getConfigs() {
206
+ const configPath = resolver.resolve(nuxt.options.rootDir, 'slicemachine.config.json')
207
+
208
+ const configs: string[] = []
209
+
210
+ try {
211
+ if (existsSync(configPath)) {
212
+ const config = JSON.parse(await readFile(configPath, 'utf-8'))
213
+
214
+ if (config && 'libraries' in config && Array.isArray(config.libraries)) {
215
+ configs.push(JSON.stringify({
216
+ files: config.libraries.map((library: string) => `${library.replace('./', '')}/**/index.vue`),
217
+ rules: {
218
+ 'vue/multi-word-component-names': 'off',
219
+ },
220
+ }))
221
+ }
222
+ }
223
+ }
224
+ catch (error) {
225
+ // noop
226
+ }
227
+
228
+ return { configs }
229
+ },
230
+ })
231
+ })
232
+ },
174
233
  })
@@ -3,7 +3,8 @@
3
3
  <figure>
4
4
  <img
5
5
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMzYiPgogIDxwYXRoIGZpbGw9IiMyMTI3MzUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTM1LjUzOCAxOC43NGwtMi42NTUtMi42NmExLjEyNiAxLjEyNiAwIDAgMS0uMzI5LS43OTZ2LTMuMjU2YzAtMy4wMDktLjMxMy00LjEtLjktNS4yYTYuMTI3IDYuMTI3IDAgMCAwLTIuNTQ2LTIuNTUxYy0xLjA5Ny0uNTg5LTIuMTg2LS45MDItNS4xODgtLjkwMmgtNC4yOTVhLjIyNS4yMjUgMCAwIDEtLjE1OC0uMzg0TDIyLjEyMi4zM2MuMjEtLjIxMS40OTYtLjMzLjc5NC0uMzNoMS40OTNjNC4wMDMgMCA1LjQ1NS40MTggNi45MTkgMS4yMDJhOC4xNjkgOC4xNjkgMCAwIDEgMy4zOTQgMy40MDJjLjc4MyAxLjQ2NyAxLjIgMi45MjIgMS4yIDYuOTMzdjcuMDQ1YS4yMjUuMjI1IDAgMCAxLS4zODQuMTU5ek0xNy4yMjIgMzUuNjE3bDIuNjU1LTIuNjYxYy4yMS0uMjExLjQ5Ni0uMzMuNzk0LS4zM2gzLjI0OWMzLjAwMiAwIDQuMDktLjMxMyA1LjE4OC0uOTAyYTYuMTI3IDYuMTI3IDAgMCAwIDIuNTQ2LTIuNTUxYy41ODctMS4xLjktMi4xOTEuOS01LjJ2LTQuMzA0YS4yMjUuMjI1IDAgMCAxIC4zODMtLjE1OWwyLjY1NiAyLjY2MWMuMjEuMjExLjMyOS40OTguMzI5Ljc5NnYxLjQ5N2MwIDQuMDExLS40MTcgNS40NjYtMS4yIDYuOTMzYTguMTY5IDguMTY5IDAgMCAxLTMuMzk0IDMuNDAyQzI5Ljg2NCAzNS41ODIgMjguNDEyIDM2IDI0LjQwOSAzNkgxNy4zOGEuMjI1LjIyNSAwIDAgMS0uMTU4LS4zODR6TS4zODMgMTcuMjU5TDMuMDQgMTkuOTJjLjIxLjIxMS4zMjkuNDk4LjMyOS43OTZ2My4yNTZjMCAzLjAwOS4zMTIgNC4xLjkgNS4yYTYuMTI3IDYuMTI3IDAgMCAwIDIuNTQ1IDIuNTUxYzEuMDk4LjU4OSAyLjE4Ny45MDIgNS4xODkuOTAyaDQuMjk0YS4yMjUuMjI1IDAgMCAxIC4xNi4zODRsLTIuNjU3IDIuNjYxYy0uMjEuMjExLS40OTYuMzMtLjc5My4zM2gtMS40OTRjLTQuMDAzIDAtNS40NTQtLjQxOC02LjkxOC0xLjIwMkE4LjE2OSA4LjE2OSAwIDAgMSAxLjIgMzEuMzk2Qy40MTcgMjkuOTI5IDAgMjguNDc0IDAgMjQuNDYzdi03LjA0NWEuMjI1LjIyNSAwIDAgMSAuMzgzLS4xNTl6TTE2LjA0NSAzLjA0NWMtLjIxMS4yMTEtLjQ5Ni4zMy0uNzk0LjMzaC0zLjI0OWMtMy4wMDIgMC00LjA5MS4zMTMtNS4xODkuOTAyYTYuMTI3IDYuMTI3IDAgMCAwLTIuNTQ2IDIuNTUxYy0uNTg3IDEuMS0uOSAyLjE5MS0uOSA1LjJ2NC4zMDRhLjIyNS4yMjUgMCAwIDEtLjM4My4xNTlMLjMzIDEzLjgzQTEuMTI2IDEuMTI2IDAgMCAxIDAgMTMuMDM0di0xLjQ5N2MwLTQuMDExLjQxNy01LjQ2NiAxLjItNi45MzNhOC4xNjkgOC4xNjkgMCAwIDEgMy4zOTQtMy40MDJDNi4wNTguNDE4IDcuNTEgMCAxMS41MTIgMGg3LjAzYS4yMjUuMjI1IDAgMCAxIC4xNTguMzg0bC0yLjY1NSAyLjY2MXptMTMuODg0IDEwLjA5MWwtMy42Mi0zLjQ2OGMtLjI0LS4yNC0uNTItLjQxNC0uODE5LS41MjNBMi4yMzYgMi4yMzYgMCAwIDAgMjQuNjk2IDlIMTQuMDFhLjIyNS4yMjUgMCAwIDEtLjE1OS0uMzg0bDIuNjU5LTIuNjYyYy4yMS0uMjEuNDk1LS4zMjkuNzkzLS4zMjloOC41MTZjMi40OCAwIDQuNDkgMi4wMTUgNC40OSA0LjV2Mi44NDlhLjIyNS4yMjUgMCAwIDEtLjM4LjE2MnptLTcuMTE1IDE2Ljg2MWwzLjQ2LTMuNjI5Yy4yNC0uMjQuNDE0LS41Mi41MjMtLjgyYTIuMjUgMi4yNSAwIDAgMCAuMTQ0LS43OTV2LTEwLjcxYS4yMjUuMjI1IDAgMCAxIC4zODQtLjE1OWwyLjY1NiAyLjY2NGMuMjEuMjExLjMyOC40OTcuMzI4Ljc5NnY4LjUzNGMwIDIuNDg1LTIuMDEgNC41LTQuNDkgNC41aC0yLjg0M2EuMjI1LjIyNSAwIDAgMS0uMTYyLS4zOHpNNS45OTIgMjIuODY0bDMuNjIyIDMuNDY4Yy4yMzkuMjQuNTIuNDE0LjgxOC41MjMuMjQ2LjA5NC41MTQuMTQ1Ljc5NC4xNDVoMTAuNjg2YS4yMjUuMjI1IDAgMCAxIC4xNTguMzg0bC0yLjY1OCAyLjY2MmMtLjIxLjIxLS40OTYuMzI5LS43OTMuMzI5aC04LjUxNmE0LjQ5NSA0LjQ5NSAwIDAgMS00LjQ5LTQuNXYtMi44NDlhLjIyNS4yMjUgMCAwIDEgLjM4LS4xNjJ6bTcuMTE2LTE2Ljg1OWwtMy40NjEgMy42M2MtLjI0LjI0LS40MTMuNTItLjUyMi44MmEyLjI1IDIuMjUgMCAwIDAtLjE0NS43OTV2MTAuNzFhLjIyNS4yMjUgMCAwIDEtLjM4My4xNThsLTIuNjU2LTIuNjY0YTEuMTI2IDEuMTI2IDAgMCAxLS4zMjgtLjc5NXYtOC41MzRjMC0yLjQ4NSAyLjAxLTQuNSA0LjQ5LTQuNWgyLjg0M2EuMjI1LjIyNSAwIDAgMSAuMTYyLjM4em0zMy4xMDUgNC4zNzloLjg2OGMuNTkzIDAgMS4wNzQuNDggMS4wNzQgMS4wNzR2MS4wMTZjMCAuMDMyLjAyNi4wNTcuMDU3LjA1Ny40OTUtLjg3NSAxLjE2LTEuNTEgMS45OTgtMS45MDlhNi4yMzYgNi4yMzYgMCAwIDEgMi43MS0uNTk2YzEuMDQ3IDAgMS45ODkuMTk0IDIuODI2LjU4Mi44MzcuMzg3IDEuNTUuOTIgMi4xNCAxLjU5NWE2Ljg5NiA2Ljg5NiAwIDAgMSAxLjM0IDIuMzg2Yy4zMDUuOTE1LjQ1NyAxLjkuNDU3IDIuOTUzYTguNzk1IDguNzk1IDAgMCAxLS40ODUgMi45NTMgNy40MTggNy40MTggMCAwIDEtMS4zNTUgMi4zODYgNi4yNjkgNi4yNjkgMCAwIDEtMi4wOTcgMS41OTUgNi4xODIgNi4xODIgMCAwIDEtMi42ODMuNTgyYy0uNjQ3IDAtMS4yMTctLjA3LTEuNzEyLS4yMDlhNS43NTEgNS43NTEgMCAwIDEtMS4zMTItLjUzNyA1LjI1MiA1LjI1MiAwIDAgMS0uOTctLjcgNS4wMTIgNS4wMTIgMCAwIDEtLjY1Ny0uNzMxLjA4Ni4wODYgMCAwIDAtLjA4Ni4wODV2Ny4yMjRhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwM2ExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0xMC4wNDYgNy4xNThjMC0uNTU3LS4wOS0xLjA5NC0uMjctMS42MWE0LjA3OCA0LjA3OCAwIDAgMC0uOC0xLjM3MyAzLjk5IDMuOTkgMCAwIDAtMS4yNy0uOTU0Yy0uNDk0LS4yMzktMS4wNTUtLjM1OC0xLjY4My0uMzU4LS42MjggMC0xLjE5LjEyLTEuNjg0LjM1OGEzLjk5IDMuOTkgMCAwIDAtMS4yNy45NTQgNC4wNzggNC4wNzggMCAwIDAtLjc5OSAxLjM3MiA0Ljg0NSA0Ljg0NSAwIDAgMC0uMjcgMS42MWMwIC41NTguMDkgMS4wOTQuMjcgMS42MTEuMTgxLjUxNy40NDcuOTc1LjggMS4zNzJhMy45OSAzLjk5IDAgMCAwIDEuMjcuOTU1Yy40OTQuMjM4IDEuMDU1LjM1OCAxLjY4My4zNTguNjI4IDAgMS4xODktLjEyIDEuNjgzLS4zNThhMy45OSAzLjk5IDAgMCAwIDEuMjctLjk1NWMuMzUyLS4zOTcuNjE4LS44NTUuOC0xLjM3Mi4xOC0uNTE3LjI3LTEuMDUzLjI3LTEuNjF6bTguMzU5LTcuMTU4aC45OGMuNjI2IDAgMS4xMzQuNTA3IDEuMTM0IDEuMTMzdjEuMDc3YzAgLjAzMS4wMjUuMDU3LjA1Ny4wNTcuMzgtLjgzNi45MjItMS40ODIgMS42MjYtMS45MzkuNzA0LS40NTcgMS41MTMtLjY4NiAyLjQyNi0uNjg2LjIwOSAwIC40MTQuMDIuNjEzLjA2YS43NjIuNzYyIDAgMCAxIC42MTQuNzQ3djEuOTY0YS43MTUuNzE1IDAgMCAxLS44NDIuNzA0IDQuNTggNC41OCAwIDAgMC0uODEzLS4wNzVjLS44IDAtMS40NDEuMTU0LTEuOTI2LjQ2Mi0uNDg1LjMwOS0uODU2LjY2MS0xLjExMyAxLjA2YTMuNiAzLjYgMCAwIDAtLjUxNCAxLjE5MmMtLjA4Ni4zOTgtLjEyOC42OTYtLjEyOC44OTV2Ni4zNTVhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0xMS41ODUgMGguODA0Yy43MjMgMCAxLjMxLjU4NyAxLjMxIDEuMzFWMjMuMzlhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0tMS43OTUtNC44NjJjMC0uNTc2LjIwNC0xLjA3OC42MTMtMS41MDYuNDEtLjQyNy45MjgtLjY0MSAxLjU1NS0uNjQxLjYyOCAwIDEuMTU2LjIwNCAxLjU4NC42MTEuNDI4LjQwOC42NDIuOTIuNjQyIDEuNTM2IDAgLjYxNy0uMjE0IDEuMTI5LS42NDIgMS41MzYtLjQyOC40MDgtLjk1Ni42MTItMS41ODQuNjEyLS42MjcgMC0xLjE0Ni0uMjE0LTEuNTU1LS42NDFhMi4xMDggMi4xMDggMCAwIDEtLjYxMy0xLjUwN3ptMTQuNzUzIDguMTMzYy0uNjk1LS41MS0xLjMxNC0uNzY2LTEuODU1LS43NjYtLjQ1NyAwLS45MDQuMTItMS4zNDIuMzU4LS40MzcuMjM5LS42NTYuNjI2LS42NTYgMS4xNjMgMCAuNDM4LjE4Ljc1Ni41NDIuOTU1LjM2Mi4xOTguODE4LjM2OCAxLjM3LjUwNy41NTIuMTM5IDEuMTQ2LjI4MyAxLjc4My40MzIuNjM4LjE1IDEuMjMyLjM3OCAxLjc4NC42ODYuNTUyLjMwOCAxLjAwOC43MyAxLjM3IDEuMjY4LjM2MS41MzcuNTQyIDEuMjcyLjU0MiAyLjIwNyAwIC44NTUtLjE3NiAxLjU3NS0uNTI4IDIuMTYyYTQuMjQxIDQuMjQxIDAgMCAxLTEuMzcgMS40MTcgNS45MjcgNS45MjcgMCAwIDEtMS44OTcuNzc1IDkuNTUzIDkuNTUzIDAgMCAxLTIuMTEyLjIzOWMtMS4wNjUgMC0yLjA0NS0uMTYtMi45NC0uNDc3LS4zNS0uMTI1LS43Ny0uMzc1LTEuMjYtLjc1MWExLjMxIDEuMzEgMCAwIDEtLjExOS0xLjk3NmwuMzU1LS4zNDhhMS4zMSAxLjMxIDAgMCAxIDEuNzgzLS4wNDhjLjIwOC4xODMuMzg4LjMyNC41NC40MjMuNTA0LjMyOSAxLjExOC40OTMgMS44NC40OTMuMjQ4IDAgLjUwNS0uMDMuNzcxLS4wOS4yNjctLjA2LjUxNC0uMTU5Ljc0Mi0uMjk4LjIyOC0uMTQuNDE0LS4zMTMuNTU3LS41MjIuMTQyLS4yMDkuMjE0LS40NTIuMjE0LS43MyAwLS40OTgtLjE4MS0uODY2LS41NDMtMS4xMDQtLjM2MS0uMjM5LS44MTgtLjQzMy0xLjM3LS41ODJhMjguNzQ2IDI4Ljc0NiAwIDAgMC0xLjc4My0uNDE3IDYuNzA3IDYuNzA3IDAgMCAxLTEuNzgzLS42MjcgMy43OTUgMy43OTUgMCAwIDEtMS4zNy0xLjIwOGMtLjM2MS0uNTE3LS41NDItMS4yMzMtLjU0Mi0yLjE0NyAwLS43OTUuMTU3LTEuNDg2LjQ3LTIuMDczYTQuMjY1IDQuMjY1IDAgMCAxIDEuMjQyLTEuNDQ2IDUuMjU2IDUuMjU2IDAgMCAxIDEuNzctLjgzNiA3Ljc3MyA3Ljc3MyAwIDAgMSAyLjAyNS0uMjY4Yy45MTMgMCAxLjgxNy4xNjQgMi43MTEuNDkyLjMyNC4xMTkuNjg1LjMzOSAxLjA4NC42NmExLjMxIDEuMzEgMCAwIDEgLjA3NSAxLjk3NWwtLjQyNi40MDFhMS4zMSAxLjMxIDAgMCAxLTEuNjc0LjEwMXptNy43ODctMy4yNzFoLjYzM2MuNzIzIDAgMS4zMS41ODcgMS4zMSAxLjMxdi45MjdhNS42MDIgNS42MDIgMCAwIDEgMS41MjctMS44MDVjLjY3NS0uNTI3IDEuNTgzLS43OSAyLjcyNS0uNzkgMi4xNSAwIDMuNTc2Ljg4NSA0LjI4IDIuNjU0LjQ5NS0uOTE0IDEuMTEzLTEuNTg1IDEuODU1LTIuMDEzLjc0Mi0uNDI3IDEuNjI2LS42NDEgMi42NTQtLjY0MS45MTMgMCAxLjY4My4xNTkgMi4zMTEuNDc3YTQuMDg0IDQuMDg0IDAgMCAxIDEuNTI3IDEuMzEyYy4zOS41NTcuNjcgMS4yMDguODQxIDEuOTU0LjE3Mi43NDYuMjU3IDEuNTQ2LjI1NyAyLjR2Ny4yMmExLjMxIDEuMzEgMCAwIDEtMS4zMSAxLjMxaC0uODA0YTEuMzEgMS4zMSAwIDAgMS0xLjMxLTEuMzF2LTYuODAyYzAtLjQzNy0uMDM4LS44Ni0uMTE0LTEuMjY3YTMuMTExIDMuMTExIDAgMCAwLS40LTEuMDc0IDIuMDYyIDIuMDYyIDAgMCAwLS43Ny0uNzNjLS4zMjQtLjE4LS43NDItLjI2OS0xLjI1Ni0uMjY5LS41MzIgMC0uOTg0LjEwNC0xLjM1NS4zMTNhMi42ODYgMi42ODYgMCAwIDAtLjkxMy44MzUgMy41MDggMy41MDggMCAwIDAtLjUxNCAxLjE5MyA1Ljk0IDUuOTQgMCAwIDAtLjE1NyAxLjM1N3Y2LjQ0NWExLjMxIDEuMzEgMCAwIDEtMS4zMSAxLjMxaC0uODA0YTEuMzEgMS4zMSAwIDAgMS0xLjMxLTEuMzF2LTcuMjJjMC0uODk1LS4xOC0xLjYwNi0uNTQyLTIuMTMzLS4zNjItLjUyNi0uOTYtLjc5LTEuNzk4LS43OS0uNTcgMC0xLjA1MS4xLTEuNDQxLjI5OC0uMzkuMi0uNzEzLjQ2OC0uOTcuODA2YTMuMjYgMy4yNiAwIDAgMC0uNTU3IDEuMTYzIDUuNDEzIDUuNDEzIDAgMCAwLS4xNyAxLjM3MnY2LjUwNGExLjMxIDEuMzEgMCAwIDEtMS4zMTEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg3LTEuMzEgMS4zMS0xLjMxem0yNS40NTQgMGguODAzYy43MjQgMCAxLjMxLjU4NyAxLjMxIDEuMzFWMjMuMzlhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwM2ExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0tMS43OTYtNC44NjJjMC0uNTc2LjIwNS0xLjA3OC42MTQtMS41MDYuNDA5LS40MjcuOTI3LS42NDEgMS41NTUtLjY0MS42MjggMCAxLjE1Ni4yMDQgMS41ODQuNjExLjQyOC40MDguNjQyLjkyLjY0MiAxLjUzNiAwIC42MTctLjIxNCAxLjEyOS0uNjQyIDEuNTM2LS40MjguNDA4LS45NTYuNjEyLTEuNTg0LjYxMi0uNjI4IDAtMS4xNDYtLjIxNC0xLjU1NS0uNjQxYTIuMTA4IDIuMTA4IDAgMCAxLS42MTQtMS41MDd6bTE2Ljc1MSA4LjM3M2EzLjU2NCAzLjU2NCAwIDAgMC0uMzcxLS4yNiAyLjYwNyAyLjYwNyAwIDAgMC0xLjM0Mi0uMzg4Yy0uNjI3IDAtMS4xODkuMTItMS42ODMuMzU4YTMuOTkgMy45OSAwIDAgMC0xLjI3Ljk1NCA0LjA3OCA0LjA3OCAwIDAgMC0uNzk5IDEuMzcyIDQuODQ1IDQuODQ1IDAgMCAwLS4yNzEgMS42MWMwIC41NTguMDkgMS4wOTQuMjcxIDEuNjExLjE4LjUxNy40NDcuOTc1LjggMS4zNzJhMy45OSAzLjk5IDAgMCAwIDEuMjY5Ljk1NWMuNDk0LjIzOCAxLjA1Ni4zNTggMS42ODMuMzU4LjUzMyAwIDEuMDI4LS4xMTUgMS40ODQtLjM0My4wOTMtLjA0Ny4xOTMtLjExLjMtLjE4OWExLjMxIDEuMzEgMCAwIDEgMS43NTYuMTg1bC41Mi41ODRhMS4yNDggMS4yNDggMCAwIDEtLjMwNyAxLjkxIDcuOTggNy45OCAwIDAgMS0yLjY2OC45N2MtLjQxOS4wNjktLjc4LjEwNC0xLjA4NS4xMDRhNy45MDQgNy45MDQgMCAwIDEtMi45MS0uNTM3QTYuOTM4IDYuOTM4IDAgMCAxIDEzMC4zNjUgMjNhNy4yMyA3LjIzIDAgMCAxLTEuNTgzLTIuMzcxYy0uMzktLjkyNS0uNTg1LTEuOTU0LS41ODUtMy4wODcgMC0xLjEzMy4xOTUtMi4xNjIuNTg1LTMuMDg3YTcuMjMgNy4yMyAwIDAgMSAxLjU4My0yLjM3MSA2LjkzOCA2LjkzOCAwIDAgMSAyLjM2OS0xLjUyMSA3LjkwNCA3LjkwNCAwIDAgMSAyLjkxLS41MzdjLjg3NiAwIDEuNzU1LjE3NCAyLjY0LjUyMi4zMzcuMTMzLjczNS4zNyAxLjE5My43MTFhMS4zMSAxLjMxIDAgMCAxIC4xNjQgMS45NTdsLS41My41NTNhMS4zMSAxLjMxIDAgMCAxLTEuNzU0LjEyNnoiLz4KPC9zdmc+"
6
- alt="Prismic">
6
+ alt="Prismic"
7
+ >
7
8
  <figcaption>
8
9
  Loading preview...
9
10
  </figcaption>
@@ -15,7 +16,7 @@
15
16
  import { useHead, usePrismicPreview } from '#imports'
16
17
 
17
18
  useHead({
18
- title: 'Prismic Preview - Loading'
19
+ title: 'Prismic Preview - Loading',
19
20
  })
20
21
 
21
22
  usePrismicPreview()
@@ -1,7 +1,7 @@
1
1
  import type { PrismicModuleOptions } from '../types'
2
2
  import { defineNuxtPlugin, refreshNuxtData, useRuntimeConfig } from '#imports'
3
3
 
4
- export default defineNuxtPlugin((nuxtApp) => {
4
+ export default defineNuxtPlugin((_nuxtApp) => {
5
5
  const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
6
6
 
7
7
  // Hot reload preview updates
@@ -1,8 +1,8 @@
1
1
  import { isRepositoryEndpoint, getRepositoryName, type Client } from '@prismicio/client'
2
2
  import { createPrismic } from '@prismicio/vue'
3
3
 
4
- import NuxtLink from '#app/components/nuxt-link'
5
4
  import type { PrismicModuleOptions } from '../types'
5
+ import NuxtLink from '#app/components/nuxt-link'
6
6
  import { defineNuxtPlugin, useCookie, useRequestEvent, onNuxtReady, refreshNuxtData, useHead, useRuntimeConfig, useRouter } from '#imports'
7
7
 
8
8
  // @ts-expect-error vfs cannot be resolved here
@@ -26,8 +26,8 @@ export default defineNuxtPlugin((nuxtApp) => {
26
26
  components: {
27
27
  linkInternalComponent: NuxtLink,
28
28
  linkExternalComponent: NuxtLink,
29
- ...options.components
30
- }
29
+ ...options.components,
30
+ },
31
31
  })
32
32
 
33
33
  nuxtApp.vueApp.use(prismicPlugin)
@@ -48,11 +48,11 @@ export default defineNuxtPlugin((nuxtApp) => {
48
48
  const session = typeof previewCookie === 'string' ? JSON.parse(decodeURIComponent(previewCookie)) : previewCookie
49
49
 
50
50
  if (Object.keys(session).some(key =>
51
- key in session &&
52
- typeof session[key] === 'object' &&
53
- session[key] !== null &&
54
- 'preview' in session[key] &&
55
- session[key].preview)
51
+ key in session
52
+ && typeof session[key] === 'object'
53
+ && session[key] !== null
54
+ && 'preview' in session[key]
55
+ && session[key].preview)
56
56
  ) {
57
57
  let afterEachCalled = false
58
58
  onNuxtReady(() => {
@@ -65,8 +65,8 @@ export default defineNuxtPlugin((nuxtApp) => {
65
65
  refreshNuxtData()
66
66
  })
67
67
  }
68
- } catch (error) {
69
- // eslint-disable-next-line no-console
68
+ }
69
+ catch (error) {
70
70
  console.warn('Failed to parse Prismic preview cookie', error)
71
71
  }
72
72
  }
@@ -84,15 +84,16 @@ export default defineNuxtPlugin((nuxtApp) => {
84
84
  src: `https://static.cdn.prismic.io/prismic.min.js?repo=${repositoryName}&new=true`,
85
85
  async: true,
86
86
  defer: true,
87
- crossorigin: 'anonymous'
88
- }]
87
+ crossorigin: 'anonymous',
88
+ }],
89
89
  })
90
- } else {
90
+ }
91
+ else {
91
92
  // TODO: We might want to let user disable this behavior because it might have unexpected side effects
92
93
  useCookie('io.prismic.preview').value = null
93
94
  }
94
95
 
95
96
  return {
96
- provide: { prismic: prismicPlugin }
97
+ provide: { prismic: prismicPlugin },
97
98
  }
98
99
  })
@@ -13,7 +13,7 @@ export const usePrismicPreview = (defaultURL = '/'): void => {
13
13
  onMounted(async () => {
14
14
  const redirectURL = await client.resolvePreviewURL({
15
15
  linkResolver,
16
- defaultURL
16
+ defaultURL,
17
17
  })
18
18
 
19
19
  push(redirectURL)
package/src/types.ts CHANGED
@@ -26,7 +26,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
26
26
  *
27
27
  * @see Prismic client documentation {@link https://prismic.io/docs/technical-reference/prismicio-client}
28
28
  */
29
- endpoint?: string;
29
+ endpoint?: string
30
30
 
31
31
  /**
32
32
  * The Prismic environment in use by Slice Machine configured through
@@ -36,7 +36,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
36
36
  *
37
37
  * @internal
38
38
  */
39
- environment?: string;
39
+ environment?: string
40
40
 
41
41
  /**
42
42
  * An optional path to a file exporting a `@prismicio/client` instance used
@@ -47,7 +47,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
47
47
  * `usePrismic().client`.
48
48
  * @see Prismic client documentation {@link https://prismic.io/docs/technical-reference/prismicio-client}
49
49
  */
50
- client?: string;
50
+ client?: string
51
51
 
52
52
  /**
53
53
  * An optional path to a file exporting a link resolver function used to
@@ -56,7 +56,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
56
56
  *
57
57
  * @see Link resolver documentation {@link https://prismic.io/docs/route-resolver#link-resolver}
58
58
  */
59
- linkResolver?: string;
59
+ linkResolver?: string
60
60
 
61
61
  /**
62
62
  * An optional path to a file exporting an HTML serializer to customize
@@ -64,7 +64,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
64
64
  *
65
65
  * @see HTML serializer documentation {@link https://prismic.io/docs/rich-text}
66
66
  */
67
- richTextSerializer?: string;
67
+ richTextSerializer?: string
68
68
 
69
69
  /**
70
70
  * Desired path of the preview page used by Prismic to enter preview
@@ -75,7 +75,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
75
75
  *
76
76
  * @defaultValue `"/preview"`
77
77
  */
78
- preview?: string | false;
78
+ preview?: string | false
79
79
 
80
80
  /**
81
81
  * Whether or not to inject Prismic toolbar script.
@@ -85,12 +85,12 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
85
85
  *
86
86
  * @defaultValue `true`
87
87
  */
88
- toolbar?: boolean;
88
+ toolbar?: boolean
89
89
 
90
90
  /**
91
91
  * Whether or not to enable the devtools UI.
92
92
  *
93
93
  * @defaultValue `true`
94
94
  */
95
- devtools?: boolean;
96
- };
95
+ devtools?: boolean
96
+ }
@@ -1 +0,0 @@
1
- import{J as _,n as B,x as b,r as P,K as L,L as N,M as w,h as T,N as U,O as C,P as O,Q as V,R as j,S as I,T as D,U as E,V as q,W as R,X as F,Y as H,Z as M}from"./Cjy23aWT.js";async function k(t,r=_()){const{path:s,matched:e}=r.resolve(t);if(!e.length||(r._routePreloaded||(r._routePreloaded=new Set),r._routePreloaded.has(s)))return;const n=r._preloadPromises=r._preloadPromises||[];if(n.length>4)return Promise.all(n).then(()=>k(t,r));r._routePreloaded.add(s);const i=e.map(u=>{var a;return(a=u.components)==null?void 0:a.default}).filter(u=>typeof u=="function");for(const u of i){const a=Promise.resolve(u()).catch(()=>{}).finally(()=>n.splice(n.indexOf(a)));n.push(a)}await Promise.all(n)}const z=(...t)=>t.find(r=>r!==void 0);function Q(t){const r=t.componentName||"NuxtLink";function s(e,n){if(!e||t.trailingSlash!=="append"&&t.trailingSlash!=="remove")return e;if(typeof e=="string")return S(e,t.trailingSlash);const i="path"in e&&e.path!==void 0?e.path:n(e).path;return{...e,name:void 0,path:S(i,t.trailingSlash)}}return B({name:r,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1}},setup(e,{slots:n}){const i=_(),u=E(),a=b(()=>{const l=e.to||e.href||"";return s(l,i.resolve)}),f=b(()=>typeof a.value=="string"&&q(a.value,{acceptRelative:!0})),g=b(()=>e.target&&e.target!=="_self"),p=b(()=>e.external||g.value?!0:typeof a.value=="object"?!1:a.value===""||f.value),x=P(!1),v=P(null),A=l=>{var d;v.value=e.custom?(d=l==null?void 0:l.$el)==null?void 0:d.nextElementSibling:l==null?void 0:l.$el};if(e.prefetch!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!$()){const d=R();let h,o=null;L(()=>{const y=W();N(()=>{h=w(()=>{var c;(c=v==null?void 0:v.value)!=null&&c.tagName&&(o=y.observe(v.value,async()=>{o==null||o(),o=null;const m=typeof a.value=="string"?a.value:i.resolve(a.value).fullPath;await Promise.all([d.hooks.callHook("link:prefetch",m).catch(()=>{}),!p.value&&k(a.value,i).catch(()=>{})]),x.value=!0}))})})}),T(()=>{h&&U(h),o==null||o(),o=null})}return()=>{var o,y;if(!p.value){const c={ref:A,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(x.value&&(c.class=e.prefetchedClass||t.prefetchedClass),c.rel=e.rel||void 0),C(O("RouterLink"),c,n.default)}const l=typeof a.value=="object"?((o=i.resolve(a.value))==null?void 0:o.href)??null:a.value&&!e.external&&!f.value?s(V(u.app.baseURL,a.value),i.resolve):a.value||null,d=e.target||null,h=z(e.noRel?"":e.rel,t.externalRelAttribute,f.value||g.value?"noopener noreferrer":"")||null;if(e.custom){if(!n.default)return null;const c=()=>F(l,{replace:e.replace,external:e.external});return n.default({href:l,navigate:c,get route(){if(!l)return;const m=j(l);return{path:m.pathname,fullPath:m.pathname,get query(){return I(m.search)},hash:m.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l}},rel:h,target:d,isExternal:p.value,isActive:!1,isExactActive:!1})}return C("a",{ref:v,href:l,rel:h,target:d},(y=n.default)==null?void 0:y.call(n))}}})}const K=Q(D);function S(t,r){const s=r==="append"?H:M;return q(t)&&!t.startsWith("http")?t:s(t,!0)}function W(){const t=R();if(t._observer)return t._observer;let r=null;const s=new Map,e=(i,u)=>(r||(r=new IntersectionObserver(a=>{for(const f of a){const g=s.get(f.target);(f.isIntersecting||f.intersectionRatio>0)&&g&&g()}})),s.set(i,u),r.observe(i),()=>{s.delete(i),r.unobserve(i),s.size===0&&(r.disconnect(),r=null)});return t._observer={observe:e}}function $(){const t=navigator.connection;return!!(t&&(t.saveData||/2g/.test(t.effectiveType)))}export{K as _};
@@ -1,2 +0,0 @@
1
- import{n as h,o as s,c as i,q as m,s as d,u as b,v,a as l,x as E,w as g,d as N,t as $,y as r,z as R,A,B as P,F as V,C as W,D as G,r as q,g as j,m as U,b as S,E as K,G as Q,p as X,e as Y,H as Z,I as ee}from"./Cjy23aWT.js";import{_ as ne}from"./C7iAG9wF.js";import{_ as L}from"./DlAUqK2U.js";const F=h({__name:"NIcon",props:{icon:{}},setup(o){return(e,t)=>(s(),i("div",{class:m(["n-icon",e.icon])},null,2))}}),oe={class:"n-tip n-tip-base"},te=h({__name:"NTip",props:{icon:{}},setup(o){return(e,t)=>{const c=F;return s(),i("div",oe,[d(e.$slots,"icon",{},()=>[e.icon?(s(),b(c,{key:0,icon:e.icon,class:"n-tip-icon"},null,8,["icon"])):v("",!0)]),l("div",null,[d(e.$slots,"default")])])}}}),se={key:0,target:"_blank",href:"http://localhost:9999"},ae=h({__name:"SlicemachineStatusTip",props:{running:{type:Boolean}},setup(o){const e=o,t=E(()=>e.running?"Slicemachine has been started and available at":"Slicemachine has not been started yet");return(c,n)=>{const a=te;return s(),b(a,{n:c.running?"green":"yellow"},{default:g(()=>[N($(r(t))+" ",1),c.running?(s(),i("a",se,"http://localhost:9999")):v("",!0)]),_:1},8,["n"])}}}),le=h({__name:"NButton",props:{to:{},icon:{},border:{type:Boolean,default:!0},disabled:{type:Boolean},type:{default:"button"}},setup(o){return(e,t)=>{const c=F;return s(),b(A(e.to?r(ne):"button"),R({to:e.to},{...e.$attrs,...!e.to&&{type:e.type},...e.disabled?{disabled:!0}:{tabindex:0}},{class:[[{"n-button-base active:n-button-active focus-visible:n-focus-base hover:n-button-hover":e.border},{"n-icon-button":!e.$slots.default}],"n-button n-transition n-disabled:n-disabled"]}),{default:g(()=>[d(e.$slots,"icon",{},()=>[e.icon?(s(),b(c,{key:0,icon:e.icon,class:m({"n-button-icon":e.$slots.default})},null,8,["icon","class"])):v("",!0)]),d(e.$slots,"default")]),_:3},16,["to","class"])}}}),ie=P(),ce=["innerHTML"],re={class:"shiki"},de=["textContent"],ue=l("br",null,null,-1),pe=h({__name:"NCodeBlock",props:{code:{},lang:{},lines:{type:Boolean,default:!0},transformRendered:{}},emits:["loaded"],setup(o,{emit:e}){const t=o,c=e,n=E(()=>{var _;const a=t.lang==="text"?{code:t.code,supported:!1}:((_=ie.value)==null?void 0:_.devtools.renderCodeHighlight(t.code,t.lang))||{code:t.code,supported:!1};return a.supported&&t.transformRendered&&(a.code=t.transformRendered(a.code)),a.supported&&G(()=>c("loaded")),a});return(a,_)=>a.lang&&n.value.supported?(s(),i("pre",{key:0,class:m(["n-code-block",a.lines?"n-code-block-lines":""]),innerHTML:n.value.code},null,10,ce)):(s(),i("pre",{key:1,class:m(["n-code-block",a.lines?"n-code-block-lines":""])},[l("pre",re,[l("code",null,[(s(!0),i(V,null,W(a.code.split(`
2
- `),(f,k)=>(s(),i(V,{key:k},[l("span",{class:"line",textContent:$(f)},null,8,de),ue],64))),128))])])],2))}}),_e={flex:"~ gap-3","items-center":""},fe=h({__name:"NIconTitle",props:{icon:{},text:{}},setup(o){return(e,t)=>(s(),i("div",_e,[e.icon?(s(),i("div",{key:0,class:m(e.icon)},null,2)):v("",!0),d(e.$slots,"default",{},()=>[l("div",null,$(e.text),1)])]))}});typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const me=o=>typeof o<"u";function he(o){return JSON.parse(JSON.stringify(o))}function ve(o,e,t,c={}){var n,a,_;const{clone:f=!1,passive:k=!1,eventName:C,deep:B=!1,defaultValue:D,shouldEmit:w}=c,u=U(),T=t||(u==null?void 0:u.emit)||((n=u==null?void 0:u.$emit)==null?void 0:n.bind(u))||((_=(a=u==null?void 0:u.proxy)==null?void 0:a.$emit)==null?void 0:_.bind(u==null?void 0:u.proxy));let y=C;e||(e="modelValue"),y=y||`update:${e.toString()}`;const H=p=>f?typeof f=="function"?f(p):he(p):p,J=()=>me(o[e])?H(o[e]):D,O=p=>{w?w(p)&&T(y,p):T(y,p)};if(k){const p=J(),z=q(p);let x=!1;return j(()=>o[e],I=>{x||(x=!0,z.value=H(I),G(()=>x=!1))}),j(z,I=>{!x&&(I!==o[e]||B)&&O(I)},{deep:B}),z}else return E({get(){return J()},set(p){O(p)}})}const M=o=>(X("data-v-041276db"),o=o(),Y(),o),ge=["open"],be={"text-base":""},$e={key:0,"text-sm":"",op50:""},ye=M(()=>l("div",{class:"flex-auto"},null,-1)),Se=M(()=>l("div",{class:"x-divider"},null,-1)),Ne=h({__name:"NSectionBlock",props:{icon:{},text:{},description:{},containerClass:{default:""},headerClass:{},collapse:{type:Boolean,default:!0},open:{type:Boolean,default:!0},padding:{type:[Boolean,String],default:!0}},setup(o){const t=ve(o,"open",void 0,{passive:!0});function c(n){t.value=n.target.open}return(n,a)=>{const _=F,f=fe;return s(),i(V,null,[l("details",{open:r(t),onToggle:c},[l("summary",{class:m(["cursor-pointer select-none hover:bg-active p4",n.collapse?"":"pointer-events-none"])},[S(f,{icon:n.icon,text:n.text,"text-xl":"",transition:"",class:m([r(t)?"op100":"op60",n.headerClass])},{default:g(()=>[l("div",null,[l("div",be,[d(n.$slots,"text",{},()=>[N($(n.text),1)],!0)]),n.description||n.$slots.description?(s(),i("div",$e,[d(n.$slots,"description",{},()=>[N($(n.description),1)],!0)])):v("",!0)]),ye,d(n.$slots,"actions",{},void 0,!0),n.collapse?(s(),b(_,{key:0,icon:"carbon-chevron-down",class:"chevron","cursor-pointer":"","place-self-start":"","text-base":"",op75:"",transition:"","duration-500":""})):v("",!0)]),_:3},8,["icon","text","class"])],2),a._lazyshow1||r(t)?(a._lazyshow1=!0,s(),i(V,null,[K(l("div",{class:m(["flex flex-col flex-gap2 pb6 pt2",typeof n.padding=="string"?n.padding:n.padding?"px4":""])},[d(n.$slots,"details",{},void 0,!0),l("div",{class:m([n.containerClass,"mt1"])},[d(n.$slots,"default",{},void 0,!0)],2),d(n.$slots,"footer",{},void 0,!0)],2),[[Q,r(t)]])],64)):v("v-show-if",!0)],40,ge),Se],64)}}}),ke=L(Ne,[["__scopeId","data-v-041276db"]]),Ce={},Be={class:"n-card n-card-base"};function we(o,e){return s(),i("div",Be,[d(o.$slots,"default")])}const Te=L(Ce,[["render",we]]),xe={class:"relative p-4 n-bg-base flex flex-col gap-4 h-screen"},Ie=l("h1",{class:"text-3xl font-bold"},[l("span",{class:"i-logos:prismic-icon"}),N(" @nuxtjs/prismic ")],-1),Ve=l("h2",{class:"px-4 mt-4 text-xl font-bold"}," Slicemachine ",-1),De={class:"flex gap-2 mt-4 px-4"},ze={key:1,class:"op-1/2"},Je=h({__name:"index",props:{rpc:{}},async setup(o){let e,t;const c=o,{status:n,start:a,stop:_,config:f}=([e,t]=Z(()=>ee(c.rpc)),e=await e,t(),e);return(k,C)=>{const B=ae,D=le,w=pe,u=ke,T=Te;return s(),i("div",xe,[Ie,S(T,{class:"grid gap-4"},{default:g(()=>[Ve,l("section",De,[S(B,{running:r(n).running,class:"flex-1"},null,8,["running"]),S(D,{onClick:C[0]||(C[0]=y=>r(n).running?r(_)():r(a)())},{default:g(()=>[N($(r(n).running?"Stop":"Start")+" Slicemachine ",1)]),_:1})]),S(u,{text:"Configuration",icon:"carbon:settings",open:!1,"header-class":"hover:op100"},{default:g(()=>[r(f)?(s(),b(w,{key:0,lines:!1,code:JSON.stringify(r(f),null,2),lang:"json"},null,8,["code"])):(s(),i("p",ze," Slicemachine configuration file not found! Please create one at the root of your project. "))]),_:1})]),_:1})])}}});export{Je as default};