@nuxtjs/prismic 3.4.8 → 4.0.0-rc.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 (34) hide show
  1. package/README.md +3 -3
  2. package/dist/client/200.html +1 -13
  3. package/dist/client/404.html +1 -13
  4. package/dist/client/_nuxt/ByLTtnHp.js +25 -0
  5. package/dist/client/_nuxt/{DDnTEJT-.js → CLsYcwBR.js} +1 -1
  6. package/dist/client/_nuxt/{B0l9158o.js → CttLvMQv.js} +1 -1
  7. package/dist/client/_nuxt/{qFNLh8PE.js → DVneGoC6.js} +1 -1
  8. package/dist/client/_nuxt/DWMwN7uC.js +1 -0
  9. package/dist/client/_nuxt/{Cqan8ox2.js → VREfgDfD.js} +1 -1
  10. package/dist/client/_nuxt/builds/latest.json +1 -1
  11. package/dist/client/_nuxt/builds/meta/5c01957e-0749-4107-95ef-276396288aa0.json +1 -0
  12. package/dist/client/_nuxt/entry.BC9BDAld.css +1 -0
  13. package/dist/client/_nuxt/error-404.5Ijuoi_n.css +1 -0
  14. package/dist/client/_nuxt/error-500.CZBrr-m_.css +1 -0
  15. package/dist/client/_nuxt/index.C4BggqQh.css +1 -0
  16. package/dist/client/index.html +1 -13
  17. package/dist/module.d.mts +32 -3
  18. package/dist/module.d.ts +32 -3
  19. package/dist/module.json +1 -1
  20. package/dist/module.mjs +22 -9
  21. package/dist/runtime/plugin.js +80 -70
  22. package/package.json +15 -15
  23. package/src/devtools/index.ts +4 -3
  24. package/src/lib/logger.ts +2 -2
  25. package/src/module.ts +19 -3
  26. package/src/runtime/plugin.ts +97 -84
  27. package/src/types.ts +43 -4
  28. package/dist/client/_nuxt/DSXwHa7K.js +0 -2
  29. package/dist/client/_nuxt/builds/meta/00ebe673-227d-488e-b689-9bf2ff2def42.json +0 -1
  30. package/dist/client/_nuxt/entry.CKuaGynx.css +0 -1
  31. package/dist/client/_nuxt/error-404.CK4zpOhH.css +0 -1
  32. package/dist/client/_nuxt/error-500.Bj55eCUK.css +0 -1
  33. package/dist/client/_nuxt/gctvBxZX.js +0 -25
  34. package/dist/client/_nuxt/index.z_5cflQA.css +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxtjs/prismic",
3
- "version": "3.4.8",
3
+ "version": "4.0.0-rc.1",
4
4
  "description": "Easily connect your Nuxt application to your content hosted on Prismic",
5
5
  "keywords": [
6
6
  "nuxt",
@@ -40,7 +40,7 @@
40
40
  "dev:build": "nuxt build playground",
41
41
  "dev:preview": "nuxt preview playground",
42
42
  "dev:generate": "nuxt generate playground",
43
- "prepare": "nuxt prepare playground && npm run build",
43
+ "prepare": "nuxt prepare playground",
44
44
  "release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
45
45
  "release:dry": "standard-version --dry-run",
46
46
  "release:rc": "npm run test && standard-version --release-as major --prerelease rc && git push --follow-tags && npm run build && npm publish --tag rc",
@@ -53,30 +53,30 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@nuxt/devtools-kit": "^1.7.0",
56
- "@nuxt/kit": "^3.15.0",
57
- "@prismicio/client": "^7.13.1",
58
- "@prismicio/vue": "^4.3.1",
59
- "birpc": "0.2.19",
60
- "consola": "^3.3.3",
56
+ "@nuxt/kit": "^3.15.1",
57
+ "@prismicio/client": "^7.14.0",
58
+ "@prismicio/vue": "^5.0.0-alpha.1",
59
+ "birpc": "2.0.19",
61
60
  "defu": "^6.1.4",
62
- "pathe": "^1.1.2",
61
+ "pathe": "^2.0.1",
63
62
  "sirv": "^3.0.0",
64
63
  "terminate": "^2.8.0"
65
64
  },
66
65
  "devDependencies": {
67
66
  "@iconify-json/carbon": "^1.2.5",
68
67
  "@iconify-json/logos": "^1.2.4",
68
+ "@iconify-json/simple-icons": "^1.2.20",
69
69
  "@nuxt/devtools-ui-kit": "^1.7.0",
70
- "@nuxt/eslint-config": "^0.7.4",
70
+ "@nuxt/eslint-config": "^0.7.5",
71
71
  "@nuxt/module-builder": "^0.8.4",
72
- "@nuxt/schema": "^3.15.0",
73
- "@unocss/preset-icons": "^0.65.3",
72
+ "@nuxt/schema": "^3.15.1",
73
+ "@unocss/preset-icons": "^65.4.0",
74
74
  "@vitest/coverage-v8": "^2.1.8",
75
- "eslint": "^9.17.0",
76
- "memfs": "^4.15.3",
77
- "nuxt": "^3.15.0",
75
+ "eslint": "^9.18.0",
76
+ "memfs": "^4.17.0",
77
+ "nuxt": "^3.15.1",
78
78
  "standard-version": "^9.5.0",
79
- "typescript": "^5.7.2",
79
+ "typescript": "^5.7.3",
80
80
  "vitest": "^2.1.8"
81
81
  },
82
82
  "engines": {
@@ -15,7 +15,7 @@ import {
15
15
  } from './types'
16
16
 
17
17
  const DEVTOOLS_UI_ROUTE = '/__prismic-client'
18
- const DEVTOOLS_UI_LOCAL_PORT = 3300
18
+ const DEVTOOLS_UI_LOCAL_PORT = 5173
19
19
 
20
20
  let subProcess: null | ReturnType<typeof startSubprocess> = null
21
21
 
@@ -53,6 +53,7 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
53
53
  target: `http://localhost:${DEVTOOLS_UI_LOCAL_PORT}${DEVTOOLS_UI_ROUTE}`,
54
54
  changeOrigin: true,
55
55
  followRedirects: true,
56
+ ws: true,
56
57
  rewrite: path => path.replace(DEVTOOLS_UI_ROUTE, ''),
57
58
  }
58
59
  })
@@ -93,7 +94,7 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
93
94
  }, {
94
95
  id: 'slicemachine',
95
96
  name: 'SliceMachine',
96
- icon: 'cib:prismic',
97
+ icon: 'i-simple-icons-prismic',
97
98
  }, nuxt)
98
99
 
99
100
  rpc.broadcast.updateStatus(SliceMachineStatus.STARTED)
@@ -115,7 +116,7 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
115
116
  // title to display in the tab
116
117
  title: 'Prismic',
117
118
  // any icon from Iconify, or a URL to an image
118
- icon: 'logos:prismic-icon',
119
+ icon: 'i-simple-icons-prismic',
119
120
  // iframe view
120
121
  view: {
121
122
  type: 'iframe',
package/src/lib/logger.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { consola } from 'consola'
1
+ import { useLogger } from '@nuxt/kit'
2
2
 
3
- export const logger = consola.withTag('nuxt:prismic')
3
+ export const logger = useLogger('nuxt:prismic') as ReturnType<typeof useLogger>
package/src/module.ts CHANGED
@@ -49,6 +49,12 @@ export default defineNuxtModule<PrismicModuleOptions>({
49
49
  richTextSerializer: '~/app/prismic/richTextSerializer',
50
50
  }
51
51
 
52
+ let prismicComponentsFiles = {
53
+ linkRel: '~/app/prismic/linkRel',
54
+ richTextComponents: '~/app/prismic/richTextComponents',
55
+ sliceZoneDefaultComponent: '~/app/prismic/sliceZoneDefaultComponent',
56
+ }
57
+
52
58
  // Nuxt 4 sets `app` as its `srcDir`, so we're just using the `prismic` folder there.
53
59
  if (
54
60
  nuxt.options?.future?.compatibilityVersion === 4
@@ -59,6 +65,11 @@ export default defineNuxtModule<PrismicModuleOptions>({
59
65
  linkResolver: '~/prismic/linkResolver',
60
66
  richTextSerializer: '~/prismic/richTextSerializer',
61
67
  }
68
+ prismicComponentsFiles = {
69
+ linkRel: '~/prismic/linkRel',
70
+ richTextComponents: '~/prismic/richTextComponents',
71
+ sliceZoneDefaultComponent: '~/prismic/sliceZoneDefaultComponent',
72
+ }
62
73
  }
63
74
 
64
75
  return {
@@ -67,7 +78,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
67
78
  clientConfig: {},
68
79
  ...prismicFiles,
69
80
  injectComponents: true,
70
- components: {},
81
+ components: prismicComponentsFiles,
71
82
  preview: '/preview',
72
83
  toolbar: true,
73
84
  devtools: true,
@@ -88,7 +99,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
88
99
 
89
100
  // Add runtime user code
90
101
  const proxyUserFileWithUndefinedFallback
91
- = (filename: string, path: string, extensions = ['js', 'mjs', 'ts']): boolean => {
102
+ = (filename: string, path: string, extensions = ['js', 'mjs', 'ts', 'vue']): boolean => {
92
103
  const resolvedFilename = `prismic/proxy/${filename}.ts`
93
104
  const resolvedPath = path.replace(/^(~~|@@)/, nuxt.options.rootDir).replace(/^(~|@)/, nuxt.options.srcDir)
94
105
  const maybeUserFile = fileExists(resolvedPath, extensions)
@@ -123,6 +134,11 @@ export default defineNuxtModule<PrismicModuleOptions>({
123
134
  proxyUserFileWithUndefinedFallback('linkResolver', moduleOptions.linkResolver!)
124
135
  proxyUserFileWithUndefinedFallback('richTextSerializer', moduleOptions.richTextSerializer!)
125
136
 
137
+ // Components
138
+ proxyUserFileWithUndefinedFallback('linkRel', moduleOptions.components!.linkRel!)
139
+ proxyUserFileWithUndefinedFallback('richTextComponents', moduleOptions.components!.richTextComponents!)
140
+ proxyUserFileWithUndefinedFallback('sliceZoneDefaultComponent', moduleOptions.components!.sliceZoneDefaultComponent!)
141
+
126
142
  nuxt.options.build.transpile.push(resolver.resolve('runtime'), '@nuxtjs/prismic', '@prismicio/vue')
127
143
  nuxt.options.vite.optimizeDeps ||= {}
128
144
  nuxt.options.vite.optimizeDeps.exclude ||= []
@@ -154,7 +170,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
154
170
  const prismicVueAutoImports = Object
155
171
  .keys(prismicVue)
156
172
  .filter(key => key.startsWith('use'))
157
- .concat('getSliceComponentProps', 'defineSliceZoneComponents')
173
+ .concat('getSliceComponentProps', 'defineSliceZoneComponents', 'getRichTextComponentProps')
158
174
  .map((key) => {
159
175
  return {
160
176
  name: key,
@@ -12,105 +12,118 @@ import _client from '#build/prismic/proxy/client'
12
12
  import linkResolver from '#build/prismic/proxy/linkResolver'
13
13
  // @ts-expect-error vfs cannot be resolved here
14
14
  import richTextSerializer from '#build/prismic/proxy/richTextSerializer'
15
+ // @ts-expect-error vfs cannot be resolved here
16
+ import linkRel from '#build/prismic/proxy/linkRel'
17
+ // @ts-expect-error vfs cannot be resolved here
18
+ import richTextComponents from '#build/prismic/proxy/richTextComponents'
19
+ // @ts-expect-error vfs cannot be resolved here
20
+ import sliceZoneDefaultComponent from '#build/prismic/proxy/sliceZoneDefaultComponent'
15
21
 
16
- export default defineNuxtPlugin(async (nuxtApp) => {
17
- const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
18
- let client: Client | undefined
19
- if (typeof _client === 'function') {
20
- try {
21
- client = await nuxtApp.runWithContext(() => _client())
22
- }
23
- catch (error) {
24
- console.error('[@nuxtjs/prismic] An error happened while resolving your Prismic custom client, disabling Prismic module gracefully...', error)
22
+ export default defineNuxtPlugin({
23
+ name: 'prismic:setup',
24
+ parallel: true,
25
+ async setup(nuxtApp) {
26
+ const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
27
+ let client: Client | undefined
28
+ if (typeof _client === 'function') {
29
+ try {
30
+ client = await nuxtApp.runWithContext(() => _client())
31
+ }
32
+ catch (error) {
33
+ console.error('[@nuxtjs/prismic] An error happened while resolving your Prismic custom client, disabling Prismic module gracefully...', error)
25
34
 
26
- // The Vue plugin still requires a client to work, we're providing an obviously broken one.
27
- client = createClient(
28
- 'error-resolving-custom-client',
29
- { ...options, documentAPIEndpoint: undefined },
30
- )
35
+ // The Vue plugin still requires a client to work, we're providing an obviously broken one.
36
+ client = createClient(
37
+ 'error-resolving-custom-client',
38
+ { ...options, documentAPIEndpoint: undefined },
39
+ )
40
+ }
41
+ }
42
+ else {
43
+ client = _client
31
44
  }
32
- }
33
- else {
34
- client = _client
35
- }
36
45
 
37
- const endpoint = options.environment || options.endpoint || client?.documentAPIEndpoint || ''
46
+ const endpoint = options.environment || options.endpoint || client?.documentAPIEndpoint || ''
38
47
 
39
- const prismicPlugin = createPrismic({
40
- ...options,
41
- endpoint,
42
- // TypeScript expects either an endpoint of a client, not both
43
- client: client as undefined,
44
- linkResolver,
45
- richTextSerializer,
46
- injectComponents: false, // Handled at module level
47
- components: {
48
- linkInternalComponent: NuxtLink,
49
- linkExternalComponent: NuxtLink,
50
- ...options.components,
51
- },
52
- })
48
+ const prismicPlugin = createPrismic({
49
+ ...options,
50
+ endpoint,
51
+ // TypeScript expects either an endpoint of a client, not both
52
+ client: client as undefined,
53
+ linkResolver,
54
+ richTextSerializer,
55
+ injectComponents: false, // Handled at module level
56
+ components: {
57
+ linkInternalComponent: NuxtLink,
58
+ linkExternalComponent: NuxtLink,
59
+ ...options.components,
60
+ linkRel,
61
+ richTextComponents,
62
+ sliceZoneDefaultComponent,
63
+ },
64
+ })
53
65
 
54
- nuxtApp.vueApp.use(prismicPlugin)
66
+ nuxtApp.vueApp.use(prismicPlugin)
55
67
 
56
- if (options.preview) {
57
- const previewCookie = useCookie('io.prismic.preview').value
68
+ if (options.preview) {
69
+ const previewCookie = useCookie('io.prismic.preview').value
58
70
 
59
- // Update client with req when running server side
60
- if (import.meta.server) {
61
- const req = useRequestEvent()?.node.req
62
- if (req) {
63
- prismicPlugin.client.enableAutoPreviewsFromReq(req)
71
+ // Update client with req when running server side
72
+ if (import.meta.server) {
73
+ const req = useRequestEvent()?.node.req
74
+ if (req) {
75
+ prismicPlugin.client.enableAutoPreviewsFromReq(req)
76
+ }
64
77
  }
65
- }
66
78
 
67
- if (previewCookie) {
68
- try {
69
- const session = typeof previewCookie === 'string' ? JSON.parse(decodeURIComponent(previewCookie)) : previewCookie
79
+ if (previewCookie) {
80
+ try {
81
+ const session = typeof previewCookie === 'string' ? JSON.parse(decodeURIComponent(previewCookie)) : previewCookie
70
82
 
71
- if (Object.keys(session).some(key =>
72
- key in session
73
- && typeof session[key] === 'object'
74
- && session[key] !== null
75
- && 'preview' in session[key]
76
- && session[key].preview)
77
- ) {
78
- let afterEachCalled = false
79
- onNuxtReady(() => {
80
- if (!afterEachCalled) {
83
+ if (Object.keys(session).some(key =>
84
+ key in session
85
+ && typeof session[key] === 'object'
86
+ && session[key] !== null
87
+ && 'preview' in session[key]
88
+ && session[key].preview)
89
+ ) {
90
+ let afterEachCalled = false
91
+ onNuxtReady(() => {
92
+ if (!afterEachCalled) {
93
+ refreshNuxtData()
94
+ }
95
+ })
96
+ useRouter().afterEach(() => {
97
+ afterEachCalled = true
81
98
  refreshNuxtData()
82
- }
83
- })
84
- useRouter().afterEach(() => {
85
- afterEachCalled = true
86
- refreshNuxtData()
87
- })
99
+ })
100
+ }
101
+ }
102
+ catch (error) {
103
+ console.warn('Failed to parse Prismic preview cookie', error)
88
104
  }
89
- }
90
- catch (error) {
91
- console.warn('Failed to parse Prismic preview cookie', error)
92
105
  }
93
106
  }
94
- }
95
107
 
96
- if (options.toolbar && prismicPlugin.client?.repositoryName) {
97
- // Add toolbar
98
- useHead({
99
- script: [{
100
- key: 'prismic-preview',
101
- src: `https://static.cdn.prismic.io/prismic.min.js?repo=${prismicPlugin.client.repositoryName}&new=true`,
102
- async: true,
103
- defer: true,
104
- crossorigin: 'anonymous',
105
- }],
106
- })
107
- }
108
- else {
109
- // TODO: We might want to let user disable this behavior because it might have unexpected side effects
110
- useCookie('io.prismic.preview').value = null
111
- }
108
+ if (options.toolbar && prismicPlugin.client?.repositoryName) {
109
+ // Add toolbar
110
+ useHead({
111
+ script: [{
112
+ key: 'prismic-preview',
113
+ src: `https://static.cdn.prismic.io/prismic.min.js?repo=${prismicPlugin.client.repositoryName}&new=true`,
114
+ async: true,
115
+ defer: true,
116
+ crossorigin: 'anonymous',
117
+ }],
118
+ })
119
+ }
120
+ else {
121
+ // TODO: We might want to let user disable this behavior because it might have unexpected side effects
122
+ useCookie('io.prismic.preview').value = null
123
+ }
112
124
 
113
- return {
114
- provide: { prismic: prismicPlugin },
115
- }
125
+ return {
126
+ provide: { prismic: prismicPlugin },
127
+ }
128
+ },
116
129
  })
package/src/types.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { PrismicPluginOptions } from '@prismicio/vue'
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ import type { PrismicPluginOptions, SliceComponentProps, TODOSliceComponent } from '@prismicio/vue'
2
3
 
3
4
  /**
4
5
  * `@nuxtjs/prismic` module options.
@@ -6,7 +7,10 @@ import type { PrismicPluginOptions } from '@prismicio/vue'
6
7
  * @see Module documentation: {@link https://prismic.nuxtjs.org}
7
8
  * @see Prismic documentation: {@link https://prismic.io/docs/nuxt-3-setup}
8
9
  */
9
- export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | 'htmlSerializer' | 'richTextSerializer'> & {
10
+ export type PrismicModuleOptions = Omit<
11
+ PrismicPluginOptions,
12
+ 'endpoint' | 'client' | 'linkResolver' | 'richTextSerializer' | 'components'
13
+ > & {
10
14
  /**
11
15
  * A Prismic repository endpoint to init the module's `@prismicio/client`
12
16
  * instance used to fetch content from a Prismic repository with.
@@ -78,7 +82,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
78
82
  preview?: string | false
79
83
 
80
84
  /**
81
- * Whether or not to inject Prismic toolbar script.
85
+ * Whether to inject Prismic toolbar script.
82
86
  *
83
87
  * @remarks
84
88
  * The toolbar script is required for previews to work.
@@ -88,9 +92,44 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
88
92
  toolbar?: boolean
89
93
 
90
94
  /**
91
- * Whether or not to enable the devtools UI.
95
+ * Whether to enable Prismic Nuxt DevTools integration.
92
96
  *
93
97
  * @defaultValue `true`
94
98
  */
95
99
  devtools?: boolean
100
+
101
+ /**
102
+ * Options used by Prismic Vue components.
103
+ */
104
+ components?: Omit<
105
+ Required<PrismicPluginOptions>['components'],
106
+ 'richTextComponents' | 'linkRel' | 'sliceZoneDefaultComponent' | 'linkInternalComponent' | 'linkExternalComponent'
107
+ > & {
108
+ /**
109
+ * An optional path to a file exporting the `rel` attribute to apply on links.
110
+ * It can export a function to use the link's metadata to determine the `rel` value.
111
+ *
112
+ * @defaultValue `"noreferrer"` for external links.
113
+ */
114
+ linkRel?: string
115
+
116
+ /**
117
+ * An optional path to a file exporting a map of Rich Text block types to Vue Components.
118
+ * It is used to render Rich Text or title fields.
119
+ *
120
+ * @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
121
+ */
122
+ richTextComponents?: string
123
+
124
+ /**
125
+ * An optional path to a file exporting a component or a functional component rendered
126
+ * if a component mapping from the `components` prop cannot be found.
127
+ *
128
+ * @remarks
129
+ * Components will be rendered using the {@link SliceComponentProps} interface.
130
+ *
131
+ * @defaultValue `null` when `process.env.NODE_ENV === "production"` else {@link TODOSliceComponent}
132
+ */
133
+ sliceZoneDefaultComponent?: string
134
+ }
96
135
  }
@@ -1,2 +0,0 @@
1
- import{m as g,o as l,c as r,n as _,p as u,q as y,s as b,a as i,u as E,w as $,d as C,t as S,v as c,x as M,y as R,z as A,F as V,A as P,B as H,r as W,f as G,l as q,b as N,C as U,D as K,E as Q,G as X}from"./gctvBxZX.js";import{_ as Y}from"./qFNLh8PE.js";import{_ as L}from"./DlAUqK2U.js";const F=g({__name:"NIcon",props:{icon:{}},setup(s){return(e,o)=>(l(),r("div",{class:_(["n-icon",e.icon])},null,2))}}),Z={class:"n-tip n-tip-base"},ee=g({__name:"NTip",props:{icon:{}},setup(s){return(e,o)=>{const a=F;return l(),r("div",Z,[u(e.$slots,"icon",{},()=>[e.icon?(l(),y(a,{key:0,icon:e.icon,class:"n-tip-icon"},null,8,["icon"])):b("",!0)]),i("div",null,[u(e.$slots,"default")])])}}}),ne={key:0,target:"_blank",href:"http://localhost:9999"},te=g({__name:"SlicemachineStatusTip",props:{running:{type:Boolean}},setup(s){const e=s,o=E(()=>e.running?"Slicemachine has been started and available at":"Slicemachine has not been started yet");return(a,n)=>{const t=ee;return l(),y(t,{n:a.running?"green":"yellow"},{default:$(()=>[C(S(c(o))+" ",1),a.running?(l(),r("a",ne,"http://localhost:9999")):b("",!0)]),_:1},8,["n"])}}}),oe=g({__name:"NButton",props:{to:{},icon:{},border:{type:Boolean,default:!0},disabled:{type:Boolean},type:{default:"button"}},setup(s){return(e,o)=>{const a=F;return l(),y(R(e.to?c(Y):"button"),M({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:$(()=>[u(e.$slots,"icon",{},()=>[e.icon?(l(),y(a,{key:0,icon:e.icon,class:_({"n-button-icon":e.$slots.default})},null,8,["icon","class"])):b("",!0)]),u(e.$slots,"default")]),_:3},16,["to","class"])}}}),se=A(),le=["innerHTML"],ie={class:"shiki"},ae=["textContent"],re=g({__name:"NCodeBlock",props:{code:{},lang:{},lines:{type:Boolean,default:!0},transformRendered:{}},emits:["loaded"],setup(s,{emit:e}){const o=s,a=e,n=E(()=>{var d;const t=o.lang==="text"?{code:o.code,supported:!1}:((d=se.value)==null?void 0:d.devtools.renderCodeHighlight(o.code,o.lang))||{code:o.code,supported:!1};return t.supported&&o.transformRendered&&(t.code=o.transformRendered(t.code)),t.supported&&H(()=>a("loaded")),t});return(t,d)=>t.lang&&n.value.supported?(l(),r("pre",{key:0,class:_(["n-code-block",t.lines?"n-code-block-lines":""]),innerHTML:n.value.code},null,10,le)):(l(),r("pre",{key:1,class:_(["n-code-block",t.lines?"n-code-block-lines":""])},[i("pre",ie,[i("code",null,[(l(!0),r(V,null,P(t.code.split(`
2
- `),(m,h)=>(l(),r(V,{key:h},[i("span",{class:"line",textContent:S(m)},null,8,ae),d[0]||(d[0]=i("br",null,null,-1))],64))),128))])])],2))}}),ce={flex:"~ gap-3","items-center":""},de=g({__name:"NIconTitle",props:{icon:{},text:{}},setup(s){return(e,o)=>(l(),r("div",ce,[e.icon?(l(),r("div",{key:0,class:_(e.icon)},null,2)):b("",!0),u(e.$slots,"default",{},()=>[i("div",null,S(e.text),1)])]))}});typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ue=s=>typeof s<"u";function pe(s){return JSON.parse(JSON.stringify(s))}function fe(s,e,o,a={}){var n,t,d;const{clone:m=!1,passive:h=!1,eventName:v,deep:B=!1,defaultValue:D,shouldEmit:T}=a,p=q(),w=(p==null?void 0:p.emit)||((n=p==null?void 0:p.$emit)==null?void 0:n.bind(p))||((d=(t=p==null?void 0:p.proxy)==null?void 0:t.$emit)==null?void 0:d.bind(p==null?void 0:p.proxy));let k=v;k=k||`update:${e.toString()}`;const J=f=>m?typeof m=="function"?m(f):pe(f):f,O=()=>ue(s[e])?J(s[e]):D,j=f=>{T?T(f)&&w(k,f):w(k,f)};if(h){const f=O(),z=W(f);let x=!1;return G(()=>s[e],I=>{x||(x=!0,z.value=J(I),H(()=>x=!1))}),G(z,I=>{!x&&(I!==s[e]||B)&&j(I)},{deep:B}),z}else return E({get(){return O()},set(f){j(f)}})}const me=["open"],_e={"text-base":""},ve={key:0,"text-sm":"",op50:""},ge=g({__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(s){const o=fe(s,"open",void 0,{passive:!0});function a(n){o.value=n.target.open}return(n,t)=>{const d=F,m=de;return l(),r(V,null,[i("details",{open:c(o),onToggle:t[0]||(t[0]=(...h)=>a&&a(...h))},[i("summary",{class:_(["cursor-pointer select-none hover:bg-active p4",n.collapse?"":"pointer-events-none"])},[N(m,{icon:n.icon,text:n.text,"text-xl":"",transition:"",class:_([c(o)?"op100":"op60",n.headerClass])},{default:$(()=>[i("div",null,[i("div",_e,[u(n.$slots,"text",{},()=>[C(S(n.text),1)],!0)]),n.description||n.$slots.description?(l(),r("div",ve,[u(n.$slots,"description",{},()=>[C(S(n.description),1)],!0)])):b("",!0)]),t[1]||(t[1]=i("div",{class:"flex-auto"},null,-1)),u(n.$slots,"actions",{},void 0,!0),n.collapse?(l(),y(d,{key:0,icon:"carbon-chevron-down",class:"chevron","cursor-pointer":"","place-self-start":"","text-base":"",op75:"",transition:"","duration-500":""})):b("",!0)]),_:3},8,["icon","text","class"])],2),t._lazyshow1||c(o)?(t._lazyshow1=!0,l(),r(V,null,[U(i("div",{class:_(["flex flex-col flex-gap2 pb6 pt2",typeof n.padding=="string"?n.padding:n.padding?"px4":""])},[u(n.$slots,"details",{},void 0,!0),i("div",{class:_([n.containerClass,"mt1"])},[u(n.$slots,"default",{},void 0,!0)],2),u(n.$slots,"footer",{},void 0,!0)],2),[[K,c(o)]])],64)):b("v-show-if",!0)],40,me),t[2]||(t[2]=i("div",{class:"x-divider"},null,-1))],64)}}}),be=L(ge,[["__scopeId","data-v-8e5b1c05"]]),he={},$e={class:"n-card n-card-base"};function ye(s,e){return l(),r("div",$e,[u(s.$slots,"default")])}const Se=L(he,[["render",ye]]),ke={class:"relative p-4 n-bg-base flex flex-col gap-4 h-screen"},Ne={class:"flex gap-2 mt-4 px-4"},Ce={key:1,class:"op-1/2"},xe=g({__name:"index",props:{rpc:{}},async setup(s){let e,o;const a=s,{status:n,start:t,stop:d,config:m}=([e,o]=Q(()=>X(a.rpc)),e=await e,o(),e);return(h,v)=>{const B=te,D=oe,T=re,p=be,w=Se;return l(),r("div",ke,[v[2]||(v[2]=i("h1",{class:"text-3xl font-bold"},[i("span",{class:"i-logos:prismic-icon"}),C(" @nuxtjs/prismic ")],-1)),N(w,{class:"grid gap-4"},{default:$(()=>[v[1]||(v[1]=i("h2",{class:"px-4 mt-4 text-xl font-bold"}," Slicemachine ",-1)),i("section",Ne,[N(B,{running:c(n).running,class:"flex-1"},null,8,["running"]),N(D,{onClick:v[0]||(v[0]=k=>c(n).running?c(d)():c(t)())},{default:$(()=>[C(S(c(n).running?"Stop":"Start")+" Slicemachine ",1)]),_:1})]),N(p,{text:"Configuration",icon:"carbon:settings",open:!1,"header-class":"hover:op100"},{default:$(()=>[c(m)?(l(),y(T,{key:0,lines:!1,code:JSON.stringify(c(m),null,2),lang:"json"},null,8,["code"])):(l(),r("p",Ce," Slicemachine configuration file not found! Please create one at the root of your project. "))]),_:1})]),_:1})])}}});export{xe as default};
@@ -1 +0,0 @@
1
- {"id":"00ebe673-227d-488e-b689-9bf2ff2def42","timestamp":1736174703849,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1 +0,0 @@
1
- :root{--nui-c-context:125,125,125}html{background-color:#fff}html.dark{background-color:#151515;color:#fff;color-scheme:dark}::-moz-selection{background:#8884}::selection{background:#8884}.shiki .line{display:inline-block;position:relative;width:100%}.shiki.diff .line>span{filter:saturate(.75);opacity:.75}.shiki.diff .line-added,.shiki.diff .line-removed{scroll-margin:5em}.shiki.diff .line-added>span,.shiki.diff .line-removed>span{opacity:1!important;position:inherit;scroll-margin:20px;z-index:100}.shiki.diff .line-added>span{color:#218c3b!important}.shiki.diff .line-removed>span{color:#d15547!important}.shiki .line-added:after{background-color:#43885420}.shiki .line-added:after,.shiki .line-removed:after{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.shiki .line-removed:after{background-color:#8f4c3926}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}.dark::view-transition-old(root){z-index:2147483646}.dark::view-transition-new(root){z-index:1}*,:after,:before{border-color:var(--un-default-border-color, #e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content: ""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v14/aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v14/aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232RmYJp8I5zzw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32RmYJp8I5.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.carbon-chevron-down{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 22L6 12l1.4-1.4l8.6 8.6l8.6-8.6L26 12z'/%3E%3C/svg%3E");background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:settings{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M27 16.76v-1.53l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11 11 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.5 11.5 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11 11 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.5 11.5 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51ZM25.21 24l-3.43-1.16a8.9 8.9 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.4 9.4 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.9 8.9 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.4 9.4 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20Z'/%3E%3Cpath fill='currentColor' d='M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6m0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4'/%3E%3C/svg%3E");background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.i-logos\:prismic-icon{background:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='%23E55638' d='M222.777 8.548a58.1 58.1 0 0 1 24.135 24.192c5.568 10.432 8.533 20.778 8.533 49.3v50.099a1.6 1.6 0 0 1-2.73 1.13v-.007l-18.88-18.915a8 8 0 0 1-2.34-5.66V85.531c0-21.397-2.226-29.155-6.4-36.977a43.57 43.57 0 0 0-18.105-18.14c-7.719-4.145-15.382-6.368-36.223-6.414h-31.211a1.6 1.6 0 0 1-1.124-2.73l18.88-18.923A7.97 7.97 0 0 1 162.958 0h10.617c28.466 0 38.791 2.972 49.202 8.548M183.602 40c17.635 0 31.929 14.329 31.929 32v20.26a1.6 1.6 0 0 1-2.703 1.152L187.086 68.75a15.9 15.9 0 0 0-5.824-3.719A15.9 15.9 0 0 0 175.616 64h-75.99a1.6 1.6 0 0 1-1.13-2.73l18.908-18.93a7.98 7.98 0 0 1 5.64-2.34z'/%3E%3Cpath fill='%23F4C942' d='m234.219 138.738l18.887 18.922a8.04 8.04 0 0 1 2.34 5.66v10.646c0 28.523-2.966 38.87-8.534 49.302a58.1 58.1 0 0 1-24.135 24.192c-10.41 5.568-20.736 8.54-49.202 8.54h-49.984a1.6 1.6 0 0 1-1.123-2.73v.006l18.88-18.922a7.97 7.97 0 0 1 5.646-2.347h23.104c21.347 0 29.084-2.226 36.892-6.414a43.57 43.57 0 0 0 18.105-18.14c4.174-7.823 6.4-15.581 6.4-36.978v-30.607a1.6 1.6 0 0 1 2.724-1.13M194.31 98.73l18.887 18.944a8.02 8.02 0 0 1 2.333 5.66v60.686c0 17.671-14.294 32-31.93 32h-20.216a1.6 1.6 0 0 1-1.152-2.702v-.007l24.604-25.806a15.9 15.9 0 0 0 3.72-5.831a16 16 0 0 0 1.023-5.654V99.86a1.6 1.6 0 0 1 2.731-1.13'/%3E%3Cpath fill='%237B8FEA' d='m2.724 122.73l18.894 18.923a8.04 8.04 0 0 1 2.34 5.66v23.155c0 21.397 2.218 29.155 6.4 36.977a43.57 43.57 0 0 0 18.097 18.14c7.808 4.19 15.552 6.415 36.9 6.415h30.535a1.6 1.6 0 0 1 1.138 2.73l-18.895 18.923A7.97 7.97 0 0 1 92.494 256H81.87c-28.466 0-38.784-2.972-49.194-8.548A58.1 58.1 0 0 1 8.533 223.26C3.021 212.933.06 202.69.001 174.81L0 123.86a1.6 1.6 0 0 1 2.724-1.13m39.893 39.858h-.007l25.756 24.662a15.9 15.9 0 0 0 5.817 3.719A15.8 15.8 0 0 0 79.83 192h75.99a1.6 1.6 0 0 1 1.123 2.73l-18.901 18.93a8 8 0 0 1-5.64 2.34H71.845a31.964 31.964 0 0 1-31.93-32v-20.26a1.6 1.6 0 0 1 2.703-1.152'/%3E%3Cpath fill='%23D97EE8' d='M92.06 40a1.6 1.6 0 0 1 1.152 2.702L68.601 68.516a15.9 15.9 0 0 0-3.712 5.83A16 16 0 0 0 63.858 80v76.16a1.6 1.6 0 0 1-2.724 1.124L42.247 138.34a8 8 0 0 1-2.332-5.654V72c0-17.671 14.293-32 31.929-32zm39.794-40a1.6 1.6 0 0 1 1.124 2.73l-18.88 18.923A7.98 7.98 0 0 1 108.452 24H85.348c-21.348 0-29.092 2.226-36.9 6.414a43.57 43.57 0 0 0-18.105 18.14c-4.13 7.74-6.353 15.418-6.4 36.307v31.278a1.6 1.6 0 0 1-2.723 1.13L2.347 98.347A8 8 0 0 1 0 92.687V82.04c0-28.522 2.965-38.87 8.533-49.3A58.1 58.1 0 0 1 32.668 8.548C42.975 3.028 53.198.06 81.015 0z'/%3E%3C/g%3E%3C/svg%3E") no-repeat;background-color:transparent;background-size:100% 100%;display:inline-block;height:1.2em;vertical-align:middle;width:1.2em}.n-button-icon{font-size:1.1em;margin-left:-.2em;margin-right:.2em}.n-icon-button{align-items:center;aspect-ratio:1/1;border-radius:.25rem;display:flex;height:1.6em;justify-content:center;opacity:.5;width:1.6em}.n-tip-base{align-items:center;background-color:rgba(var(--nui-c-context),.04);border-radius:.25rem;display:flex;gap:.5rem;padding:.4em 1em;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity))}.n-button-base{align-items:center;border-color:#9ca3af33;border-radius:.25rem;border-width:1px;display:inline-flex;gap:.25rem;opacity:.8;padding:.25em 1em;touch-action:manipulation;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent!important;outline-offset:2px!important}.n-icon{flex:none}.n-card-base{border-color:#9ca3af33;border-radius:.25rem;border-width:1px;--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity));--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.hover\:n-button-hover:hover{--un-border-opacity:1 !important;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))!important;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));opacity:1}.dark .n-bg-base,.dark .n-card-base{--un-bg-opacity:1;background-color:rgb(21 21 21 / var(--un-bg-opacity))}.n-bg-base,.n-code-block{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.dark .n-code-block{--un-bg-opacity:1;background-color:rgb(18 18 18 / var(--un-bg-opacity))}.dark .n-tip-base{background-color:rgba(var(--nui-c-context),.12)}.n-icon-button:hover{background-color:#9ca3af0d;opacity:1}.active\:n-button-active:active{background-color:rgba(var(--nui-c-context),.05);--un-ring-width:3px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.1) }.focus-visible\:n-focus-base:focus-visible{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5) }.n-transition{transition-duration:.15s;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.relative{position:relative}.-bottom-1\/2{bottom:-50%}.left-0{left:0}.right-0{right:0}.z-10{z-index:10}.z-20{z-index:20}.grid{display:grid}.mb-16{margin-bottom:4rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt1{margin-top:.25rem}.h-1\/2{height:50%}.h-auto{height:auto}.h-screen{height:100vh}.h1{height:.25rem}.h2{height:.5rem}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.w-full{width:100%}.flex,[flex~="~"]{display:flex}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-col{flex-direction:column}.cursor-pointer,[cursor-pointer=""]{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.place-content-center{place-content:center}.place-self-start,[place-self-start=""]{place-self:start}.items-center,[items-center=""]{align-items:center}.justify-center{justify-content:center}.flex-gap2,.gap-2{gap:.5rem}.gap-3,[flex~=gap-3]{gap:.75rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.border,[border=""]{border-width:1px}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.bg-black\/5{background-color:#0000000d}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.dark .dark\:bg-black{--un-bg-opacity:1;background-color:rgb(0 0 0 / var(--un-bg-opacity))}.dark .dark\:bg-white\/10{background-color:#ffffff1a}.p-4,.p4{padding:1rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-4,.px4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pb6{padding-bottom:1.5rem}.pt-14{padding-top:3.5rem}.pt2{padding-top:.5rem}.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-base,[text-base=""]{font-size:1rem;line-height:1.5rem}.text-sm,[text-sm=""]{font-size:.875rem;line-height:1.25rem}.text-xl,[text-xl=""]{font-size:1.25rem;line-height:1.75rem}.dark .dark\:text-white{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-black{--un-text-opacity:1;color:rgb(0 0 0 / var(--un-text-opacity))}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.leading-tight{line-height:1.25}.font-sans{font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.op100{opacity:1}.op50,[op50=""]{opacity:.5}.op60{opacity:.6}.op75,[op75=""]{opacity:.75}.hover\:op100:hover{opacity:1}.transition,[transition=""]{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500,[duration-500=""]{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}[n~=green]{--nui-c-context:74,222,128}[n~=yellow]{--nui-c-context:250,204,21}.n-disabled\:n-disabled[disabled],[disabled] .n-disabled\:n-disabled{filter:saturate(0);opacity:.6;pointer-events:none}@media (min-width:640px){.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-8xl{font-size:6rem;line-height:1}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}
@@ -1 +0,0 @@
1
- .spotlight[data-v-384058dc]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-384058dc]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-384058dc]{background-color:#ffffff4d}.gradient-border[data-v-384058dc]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-384058dc]{background-color:#1414144d}.gradient-border[data-v-384058dc]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-384058dc]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-384058dc]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-384058dc]{position:fixed}.left-0[data-v-384058dc]{left:0}.right-0[data-v-384058dc]{right:0}.z-10[data-v-384058dc]{z-index:10}.z-20[data-v-384058dc]{z-index:20}.grid[data-v-384058dc]{display:grid}.mb-16[data-v-384058dc]{margin-bottom:4rem}.mb-8[data-v-384058dc]{margin-bottom:2rem}.max-w-520px[data-v-384058dc]{max-width:520px}.min-h-screen[data-v-384058dc]{min-height:100vh}.w-full[data-v-384058dc]{width:100%}.flex[data-v-384058dc]{display:flex}.cursor-pointer[data-v-384058dc]{cursor:pointer}.place-content-center[data-v-384058dc]{place-content:center}.items-center[data-v-384058dc]{align-items:center}.justify-center[data-v-384058dc]{justify-content:center}.overflow-hidden[data-v-384058dc]{overflow:hidden}.bg-white[data-v-384058dc]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-384058dc]{padding-left:1rem;padding-right:1rem}.px-8[data-v-384058dc]{padding-left:2rem;padding-right:2rem}.py-2[data-v-384058dc]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-384058dc]{text-align:center}.text-8xl[data-v-384058dc]{font-size:6rem;line-height:1}.text-xl[data-v-384058dc]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-384058dc]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-384058dc]{font-weight:300}.font-medium[data-v-384058dc]{font-weight:500}.leading-tight[data-v-384058dc]{line-height:1.25}.font-sans[data-v-384058dc]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-384058dc]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-384058dc]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-384058dc]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-384058dc]{padding-left:0;padding-right:0}.sm\:px-6[data-v-384058dc]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-384058dc]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-384058dc]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-384058dc]{font-size:1.25rem;line-height:1.75rem}}
@@ -1 +0,0 @@
1
- .spotlight[data-v-5769e3cf]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-5769e3cf]{position:fixed}.-bottom-1\/2[data-v-5769e3cf]{bottom:-50%}.left-0[data-v-5769e3cf]{left:0}.right-0[data-v-5769e3cf]{right:0}.grid[data-v-5769e3cf]{display:grid}.mb-16[data-v-5769e3cf]{margin-bottom:4rem}.mb-8[data-v-5769e3cf]{margin-bottom:2rem}.h-1\/2[data-v-5769e3cf]{height:50%}.max-w-520px[data-v-5769e3cf]{max-width:520px}.min-h-screen[data-v-5769e3cf]{min-height:100vh}.place-content-center[data-v-5769e3cf]{place-content:center}.overflow-hidden[data-v-5769e3cf]{overflow:hidden}.bg-white[data-v-5769e3cf]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-5769e3cf]{padding-left:2rem;padding-right:2rem}.text-center[data-v-5769e3cf]{text-align:center}.text-8xl[data-v-5769e3cf]{font-size:6rem;line-height:1}.text-xl[data-v-5769e3cf]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-5769e3cf]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-5769e3cf]{font-weight:300}.font-medium[data-v-5769e3cf]{font-weight:500}.leading-tight[data-v-5769e3cf]{line-height:1.25}.font-sans[data-v-5769e3cf]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-5769e3cf]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-5769e3cf]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-5769e3cf]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-5769e3cf]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-5769e3cf]{font-size:2.25rem;line-height:2.5rem}}