nuxt-og-image 3.0.0-rc.54 → 3.0.0-rc.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/200.html +17 -14
- package/dist/client/404.html +17 -14
- package/dist/client/_nuxt/B474tPdy.js +66 -0
- package/dist/client/_nuxt/{8m94Rtva.js → B5M9JXfn.js} +1 -1
- package/dist/client/_nuxt/{DZD3AlMl.js → BiQytsUZ.js} +1 -1
- package/dist/client/_nuxt/Buoqr_Oi.js +2 -0
- package/dist/client/_nuxt/{kb-FbsIp.js → COuojIwY.js} +1 -1
- package/dist/client/_nuxt/{DCjyzNN-.js → D4FSFK-1.js} +1 -1
- package/dist/client/_nuxt/{o8H-iTt6.js → DG8tVHNj.js} +1 -1
- package/dist/client/_nuxt/{HFCcX1lU.js → DU18hSVa.js} +69 -69
- package/dist/client/_nuxt/DVC_qXWv.js +1 -0
- package/dist/client/_nuxt/{NL97_oaV.js → GPY1wEXZ.js} +1 -1
- package/dist/client/_nuxt/IconCSS.ml_PwIMm.css +1 -0
- package/dist/client/_nuxt/VQMr7AbF.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/13f41e6e-d220-4048-8549-013c386aea85.json +1 -0
- package/dist/client/_nuxt/cW9vKj3g.js +1 -0
- package/dist/client/_nuxt/{entry.DVnILh1U.css → entry.B6GrRE4Z.css} +1 -1
- package/dist/client/_nuxt/error-404.CshEgLbC.css +1 -0
- package/dist/client/_nuxt/error-500.Buijmx_2.css +1 -0
- package/dist/module.json +2 -2
- package/dist/module.mjs +7 -4
- package/dist/runtime/nitro/og-image/bindings/resvg/wasm-fs.d.ts +1 -1
- package/dist/runtime/nitro/og-image/bindings/resvg/wasm.d.ts +1 -1
- package/dist/runtime/nitro/og-image/chromium/screenshot.d.ts +0 -1
- package/dist/runtime/nitro/og-image/satori/instances.d.ts +1 -1
- package/dist/runtime/nitro/plugins/nuxt-content.d.ts +1 -1
- package/dist/runtime/nitro/plugins/prerender.d.ts +1 -1
- package/dist/runtime/nitro/util/cache.d.ts +10 -0
- package/dist/runtime/nitro/util/wasm.d.ts +0 -1
- package/dist/runtime/nuxt/components/OgImage/OgImage.d.ts +2 -2
- package/dist/runtime/nuxt/components/OgImage/OgImageScreenshot.d.ts +2 -2
- package/dist/runtime/nuxt/components/Templates/Community/Nuxt.vue +1 -1
- package/dist/runtime/nuxt/components/Templates/Community/NuxtSeo.vue +3 -3
- package/dist/runtime/nuxt/components/Templates/Community/Pergel.vue +1 -2
- package/dist/runtime/nuxt/composables/mock.d.ts +4 -0
- package/dist/runtime/types.d.ts +163 -0
- package/package.json +26 -22
- package/dist/client/_nuxt/CoEqzGFw.js +0 -44
- package/dist/client/_nuxt/IconCSS.MLh-peQH.css +0 -1
- package/dist/client/_nuxt/builds/meta/ce5d759a-31b3-43b6-b457-16195d8e8276.json +0 -1
- package/dist/client/_nuxt/error-404.DEDgGDo3.css +0 -1
- package/dist/client/_nuxt/error-500.D8jWTpMJ.css +0 -1
- package/dist/client/index.html +0 -263
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("nitropack
|
|
1
|
+
declare const _default: import("nitropack").NitroAppPlugin;
|
|
2
2
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("nitropack
|
|
1
|
+
declare const _default: import("nitropack").NitroAppPlugin;
|
|
2
2
|
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { H3Error } from 'h3';
|
|
2
|
+
import type { OgImageRenderEventContext } from '../../types.js';
|
|
3
|
+
export declare function useOgImageBufferCache(ctx: OgImageRenderEventContext, options: {
|
|
4
|
+
baseCacheKey: string | false;
|
|
5
|
+
cacheMaxAgeSeconds?: number;
|
|
6
|
+
}): Promise<void | H3Error | {
|
|
7
|
+
cachedItem: false | BufferSource;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
update: (image: BufferSource) => Promise<void>;
|
|
10
|
+
}>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { OgImageOptions } from '../../../types.js';
|
|
2
|
-
declare const _default: import("vue").DefineComponent<OgImageOptions<"NuxtSeo">, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<OgImageOptions<"NuxtSeo">>, {
|
|
3
|
-
|
|
2
|
+
declare const _default: import("@vue/runtime-core").DefineComponent<OgImageOptions<"NuxtSeo">, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<OgImageOptions<"NuxtSeo">>, {
|
|
3
|
+
[x: string]: unknown;
|
|
4
4
|
}, {}>;
|
|
5
5
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { OgImagePageScreenshotOptions } from '../../../types.js';
|
|
2
|
-
declare const _default: import("vue").DefineComponent<OgImagePageScreenshotOptions, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<OgImagePageScreenshotOptions>, {
|
|
3
|
-
|
|
2
|
+
declare const _default: import("@vue/runtime-core").DefineComponent<OgImagePageScreenshotOptions, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<OgImagePageScreenshotOptions>, {
|
|
3
|
+
[x: string]: unknown;
|
|
4
4
|
}, {}>;
|
|
5
5
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
2
|
/**
|
|
3
3
|
* @credits NuxtLabs <https://nuxtlabs.com/>
|
|
4
|
-
* @see https://github.com/nuxt/nuxt.com/blob/main/components/OgImage/
|
|
4
|
+
* @see https://github.com/nuxt/nuxt.com/blob/main/components/OgImage/Docs.vue
|
|
5
5
|
*/
|
|
6
6
|
import { computed } from 'vue'
|
|
7
7
|
|
|
@@ -78,13 +78,13 @@ const IconComponent = runtimeConfig.hasNuxtIcon
|
|
|
78
78
|
? resolveComponent('Icon')
|
|
79
79
|
: defineComponent({
|
|
80
80
|
render() {
|
|
81
|
-
return h('div', 'missing nuxt
|
|
81
|
+
return h('div', 'missing @nuxt/icon')
|
|
82
82
|
},
|
|
83
83
|
})
|
|
84
84
|
if (typeof props.icon === 'string' && !runtimeConfig.hasNuxtIcon && process.dev) {
|
|
85
|
-
console.warn('Please install
|
|
85
|
+
console.warn('Please install `@nuxt/icon` to use icons with the fallback OG Image component.')
|
|
86
86
|
// eslint-disable-next-line no-console
|
|
87
|
-
console.log('\
|
|
87
|
+
console.log('\nnpx nuxi module add icon\n')
|
|
88
88
|
// create simple div renderer component
|
|
89
89
|
}
|
|
90
90
|
</script>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
2
|
/**
|
|
3
3
|
* @credits Pergel <https://nuxtlabs.com/>
|
|
4
|
-
* @see https://github.com/nuxt/nuxt.com/blob/main/components/OgImage/OgImageDocs.vue
|
|
5
4
|
*/
|
|
6
5
|
import { computed } from 'vue'
|
|
7
6
|
|
|
@@ -33,7 +32,7 @@ const title = computed(() => props.title.slice(0, 60))
|
|
|
33
32
|
|
|
34
33
|
<div class="w-[600px] pl-[100px]">
|
|
35
34
|
<p v-if="headline" class="uppercase text-[24px] text-[#FEC476] mb-4 font-semibold">
|
|
36
|
-
|
|
35
|
+
{{ headline }}
|
|
37
36
|
</p>
|
|
38
37
|
<h1 class="w-[600px] m-0 text-[75px] font-semibold mb-4 text-white flex items-center">
|
|
39
38
|
<span>{{ title }}</span>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DefineOgImageInput, ExtractComponentProps, OgImageOptions, OgImagePageScreenshotOptions } from '../../types.js';
|
|
2
|
+
export declare function defineOgImage(_options?: DefineOgImageInput): void;
|
|
3
|
+
export declare function defineOgImageComponent<T extends keyof OgImageComponents>(component: T, props?: Partial<ExtractComponentProps<OgImageComponents[T]>>, options?: OgImageOptions): void;
|
|
4
|
+
export declare function defineOgImageScreenshot(options?: OgImagePageScreenshotOptions): void;
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import type { html } from 'satori-html';
|
|
2
|
+
import type { H3Error, H3Event } from 'h3';
|
|
3
|
+
import type { ResvgRenderOptions } from '@resvg/resvg-js';
|
|
4
|
+
import type { SatoriOptions } from 'satori';
|
|
5
|
+
import type { AllowedComponentProps, Component, ComponentCustomProps, VNodeProps } from '@vue/runtime-core';
|
|
6
|
+
import type { SharpOptions } from 'sharp';
|
|
7
|
+
import type { NitroApp, NitroOptions } from 'nitropack';
|
|
8
|
+
import type { OgImageComponents } from '#nuxt-og-image/components';
|
|
9
|
+
export interface OgImageRenderEventContext {
|
|
10
|
+
e: H3Event;
|
|
11
|
+
extension: 'png' | 'jpeg' | 'jpg' | 'svg' | 'html' | 'json';
|
|
12
|
+
key: string;
|
|
13
|
+
basePath: string;
|
|
14
|
+
renderer: Renderer;
|
|
15
|
+
options: OgImageOptions;
|
|
16
|
+
isDebugJsonPayload: boolean;
|
|
17
|
+
publicStoragePath: string;
|
|
18
|
+
_nitro: NitroApp;
|
|
19
|
+
}
|
|
20
|
+
export type IconifyEmojiIconSets = 'twemoji' | 'noto' | 'fluent-emoji' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'streamline-emojis' | 'openmoji';
|
|
21
|
+
export interface OgImageRuntimeConfig {
|
|
22
|
+
version: string;
|
|
23
|
+
satoriOptions: SatoriOptions;
|
|
24
|
+
resvgOptions: ResvgRenderOptions;
|
|
25
|
+
sharpOptions: SharpOptions;
|
|
26
|
+
publicStoragePath: string;
|
|
27
|
+
defaults: OgImageOptions;
|
|
28
|
+
debug: boolean;
|
|
29
|
+
baseCacheKey: string;
|
|
30
|
+
fonts: FontConfig[];
|
|
31
|
+
hasNuxtIcon: boolean;
|
|
32
|
+
colorPreference: 'light' | 'dark';
|
|
33
|
+
isNuxtContentDocumentDriven: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface OgImageComponent {
|
|
36
|
+
path?: string;
|
|
37
|
+
pascalName: string;
|
|
38
|
+
kebabName: string;
|
|
39
|
+
hash: string;
|
|
40
|
+
category: 'app' | 'community' | 'pro';
|
|
41
|
+
credits?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ScreenshotOptions {
|
|
44
|
+
colorScheme?: 'dark' | 'light';
|
|
45
|
+
selector?: string;
|
|
46
|
+
mask?: string;
|
|
47
|
+
/**
|
|
48
|
+
* The width of the screenshot.
|
|
49
|
+
*
|
|
50
|
+
* @default 1200
|
|
51
|
+
*/
|
|
52
|
+
width: number;
|
|
53
|
+
/**
|
|
54
|
+
* The height of the screenshot.
|
|
55
|
+
*
|
|
56
|
+
* @default 630
|
|
57
|
+
*/
|
|
58
|
+
height: number;
|
|
59
|
+
/**
|
|
60
|
+
* How long to wait before taking the screenshot. Useful for waiting for animations.
|
|
61
|
+
*/
|
|
62
|
+
delay?: number;
|
|
63
|
+
}
|
|
64
|
+
export type OgImagePrebuilt = {
|
|
65
|
+
url: string;
|
|
66
|
+
} & Pick<OgImageOptions, 'width' | 'height' | 'alt' | '_query'>;
|
|
67
|
+
export type DefineOgImageInput = OgImageOptions | OgImagePrebuilt | false;
|
|
68
|
+
export interface OgImageOptions<T extends keyof OgImageComponents = 'NuxtSeo'> {
|
|
69
|
+
/**
|
|
70
|
+
* The width of the screenshot.
|
|
71
|
+
*
|
|
72
|
+
* @default 1200
|
|
73
|
+
*/
|
|
74
|
+
width?: number;
|
|
75
|
+
/**
|
|
76
|
+
* The height of the screenshot.
|
|
77
|
+
*
|
|
78
|
+
* @default 630
|
|
79
|
+
*/
|
|
80
|
+
height?: number;
|
|
81
|
+
/**
|
|
82
|
+
* The alt text for the image.
|
|
83
|
+
*/
|
|
84
|
+
alt?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Use a prebuilt image instead of generating one.
|
|
87
|
+
*
|
|
88
|
+
* Should be an absolute URL.
|
|
89
|
+
*/
|
|
90
|
+
url?: string;
|
|
91
|
+
/**
|
|
92
|
+
* The name of the component to render.
|
|
93
|
+
*/
|
|
94
|
+
component?: T | string;
|
|
95
|
+
/**
|
|
96
|
+
* Props to pass to the component.
|
|
97
|
+
*/
|
|
98
|
+
props?: OgImageComponents[T] | Record<string, any>;
|
|
99
|
+
renderer?: 'chromium' | 'satori';
|
|
100
|
+
extension?: 'png' | 'jpeg' | 'jpg';
|
|
101
|
+
emojis?: IconifyEmojiIconSets;
|
|
102
|
+
/**
|
|
103
|
+
* Provide a static HTML template to render the OG Image instead of a component.
|
|
104
|
+
*/
|
|
105
|
+
html?: string;
|
|
106
|
+
resvg?: ResvgRenderOptions;
|
|
107
|
+
satori?: SatoriOptions;
|
|
108
|
+
screenshot?: Partial<ScreenshotOptions>;
|
|
109
|
+
sharp?: SharpOptions;
|
|
110
|
+
fonts?: InputFontConfig[];
|
|
111
|
+
cacheMaxAgeSeconds?: number;
|
|
112
|
+
/**
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
_query?: Record<string, any>;
|
|
116
|
+
}
|
|
117
|
+
export interface FontConfig {
|
|
118
|
+
name: string;
|
|
119
|
+
style?: string;
|
|
120
|
+
weight?: string | number;
|
|
121
|
+
path?: string;
|
|
122
|
+
key?: string;
|
|
123
|
+
absolutePath?: boolean;
|
|
124
|
+
}
|
|
125
|
+
export interface ResolvedFontConfig extends FontConfig {
|
|
126
|
+
cacheKey: string;
|
|
127
|
+
data?: BufferSource;
|
|
128
|
+
}
|
|
129
|
+
export type InputFontConfig = (`${string}:${number}` | string | FontConfig);
|
|
130
|
+
export interface RuntimeCompatibilitySchema {
|
|
131
|
+
chromium: 'chrome-launcher' | 'on-demand' | 'playwright' | false;
|
|
132
|
+
['css-inline']: 'node' | 'wasm' | 'wasm-fs' | false;
|
|
133
|
+
resvg: 'node' | 'wasm' | 'wasm-fs' | false;
|
|
134
|
+
satori: 'node' | 'wasm' | 'wasm-fs' | false;
|
|
135
|
+
sharp: 'node' | false;
|
|
136
|
+
wasm?: NitroOptions['wasm'];
|
|
137
|
+
}
|
|
138
|
+
export type CompatibilityFlags = Partial<Omit<RuntimeCompatibilitySchema, 'wasm'>>;
|
|
139
|
+
export interface CompatibilityFlagEnvOverrides {
|
|
140
|
+
dev?: CompatibilityFlags;
|
|
141
|
+
runtime?: CompatibilityFlags;
|
|
142
|
+
prerender?: CompatibilityFlags;
|
|
143
|
+
}
|
|
144
|
+
export type RendererOptions = Omit<OgImageOptions, 'extension'> & {
|
|
145
|
+
extension: Omit<OgImageOptions['extension'], 'html'>;
|
|
146
|
+
};
|
|
147
|
+
export interface Renderer {
|
|
148
|
+
name: 'chromium' | 'satori';
|
|
149
|
+
supportedFormats: Partial<RendererOptions['extension']>[];
|
|
150
|
+
createImage: (e: OgImageRenderEventContext) => Promise<H3Error | BufferSource | void>;
|
|
151
|
+
debug: (e: OgImageRenderEventContext) => Promise<Record<string, any>>;
|
|
152
|
+
}
|
|
153
|
+
export type ExtractComponentProps<T extends Component> = T extends new (...args: any) => any ? Omit<InstanceType<T>['$props'], keyof ComponentCustomProps | keyof VNodeProps | keyof AllowedComponentProps> : never;
|
|
154
|
+
export type OgImagePageScreenshotOptions = Omit<OgImageOptions, 'html' | 'renderer' | 'component' | 'satori' | 'resvg' | 'sharp'>;
|
|
155
|
+
export type VNode = ReturnType<typeof html>;
|
|
156
|
+
export interface SatoriTransformer {
|
|
157
|
+
filter: (node: VNode) => boolean;
|
|
158
|
+
transform: (node: VNode, e: OgImageRenderEventContext) => Promise<void> | void;
|
|
159
|
+
}
|
|
160
|
+
export interface SocialPreviewMetaData {
|
|
161
|
+
twitter?: Record<string, string>;
|
|
162
|
+
og?: Record<string, string>;
|
|
163
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-og-image",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.0.0-rc.
|
|
4
|
+
"version": "3.0.0-rc.56",
|
|
5
5
|
"description": "Enlightened OG Image generation for Nuxt.",
|
|
6
6
|
"author": {
|
|
7
7
|
"website": "https://harlanzw.com",
|
|
@@ -31,11 +31,14 @@
|
|
|
31
31
|
"dist",
|
|
32
32
|
"virtual.d.ts"
|
|
33
33
|
],
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=18.0.0"
|
|
36
|
+
},
|
|
34
37
|
"dependencies": {
|
|
35
38
|
"@css-inline/css-inline": "0.14.1",
|
|
36
39
|
"@css-inline/css-inline-wasm": "0.14.1",
|
|
37
|
-
"@nuxt/devtools-kit": "^1.3.
|
|
38
|
-
"@nuxt/kit": "^3.12.
|
|
40
|
+
"@nuxt/devtools-kit": "^1.3.9",
|
|
41
|
+
"@nuxt/kit": "^3.12.3",
|
|
39
42
|
"@resvg/resvg-js": "^2.6.2",
|
|
40
43
|
"@resvg/resvg-wasm": "^2.6.2",
|
|
41
44
|
"@unocss/core": "0.61.0",
|
|
@@ -43,24 +46,24 @@
|
|
|
43
46
|
"@vueuse/core": "^10.11.0",
|
|
44
47
|
"chrome-launcher": "^1.1.2",
|
|
45
48
|
"defu": "^6.1.4",
|
|
46
|
-
"execa": "^9.
|
|
49
|
+
"execa": "^9.3.0",
|
|
47
50
|
"flatted": "^3.3.1",
|
|
48
51
|
"floating-vue": "5.2.2",
|
|
49
52
|
"image-size": "^1.1.1",
|
|
50
53
|
"json-editor-vue": "^0.15.1",
|
|
51
54
|
"nuxt-icon": "^0.6.10",
|
|
52
|
-
"nuxt-site-config": "^2.2.
|
|
53
|
-
"nuxt-site-config-kit": "^2.2.
|
|
54
|
-
"nypm": "^0.3.
|
|
55
|
+
"nuxt-site-config": "^2.2.13",
|
|
56
|
+
"nuxt-site-config-kit": "^2.2.13",
|
|
57
|
+
"nypm": "^0.3.9",
|
|
55
58
|
"ofetch": "^1.3.4",
|
|
56
59
|
"ohash": "^1.1.3",
|
|
57
60
|
"pathe": "^1.1.2",
|
|
58
|
-
"pkg-types": "^1.1.
|
|
59
|
-
"playwright-core": "^1.
|
|
61
|
+
"pkg-types": "^1.1.3",
|
|
62
|
+
"playwright-core": "^1.45.1",
|
|
60
63
|
"radix3": "^1.1.2",
|
|
61
64
|
"satori": "0.10.13",
|
|
62
65
|
"satori-html": "^0.3.2",
|
|
63
|
-
"shiki": "^1.
|
|
66
|
+
"shiki": "^1.10.1",
|
|
64
67
|
"sirv": "^2.0.4",
|
|
65
68
|
"splitpanes": "^3.1.5",
|
|
66
69
|
"std-env": "^3.7.0",
|
|
@@ -70,21 +73,22 @@
|
|
|
70
73
|
"yoga-wasm-web": "^0.3.3"
|
|
71
74
|
},
|
|
72
75
|
"devDependencies": {
|
|
73
|
-
"@antfu/eslint-config": "^2.21.
|
|
76
|
+
"@antfu/eslint-config": "^2.21.2",
|
|
74
77
|
"@headlessui/vue": "^1.7.22",
|
|
75
|
-
"@iconify-json/carbon": "^1.1.
|
|
78
|
+
"@iconify-json/carbon": "^1.1.36",
|
|
76
79
|
"@iconify-json/logos": "^1.1.43",
|
|
77
80
|
"@iconify-json/noto": "^1.1.18",
|
|
78
81
|
"@iconify-json/ri": "^1.1.21",
|
|
79
|
-
"@iconify-json/tabler": "^1.1.
|
|
82
|
+
"@iconify-json/tabler": "^1.1.115",
|
|
80
83
|
"@img/sharp-linux-x64": "0.33.4",
|
|
81
|
-
"@nuxt/content": "^2.
|
|
82
|
-
"@nuxt/devtools": "1.3.
|
|
83
|
-
"@nuxt/devtools-ui-kit": "^1.3.
|
|
84
|
-
"@nuxt/
|
|
84
|
+
"@nuxt/content": "^2.13.0",
|
|
85
|
+
"@nuxt/devtools": "1.3.9",
|
|
86
|
+
"@nuxt/devtools-ui-kit": "^1.3.9",
|
|
87
|
+
"@nuxt/image": "^1.7.0",
|
|
88
|
+
"@nuxt/module-builder": "^0.8.1",
|
|
85
89
|
"@nuxt/test-utils": "3.13.1",
|
|
86
90
|
"@nuxt/ui": "^2.17.0",
|
|
87
|
-
"@nuxtjs/color-mode": "^3.4.
|
|
91
|
+
"@nuxtjs/color-mode": "^3.4.2",
|
|
88
92
|
"@nuxtjs/eslint-config-typescript": "^12.1.0",
|
|
89
93
|
"@nuxtjs/i18n": "^8.3.1",
|
|
90
94
|
"@nuxtjs/tailwindcss": "^6.12.0",
|
|
@@ -94,14 +98,14 @@
|
|
|
94
98
|
"@unocss/runtime": "0.61.0",
|
|
95
99
|
"@vueuse/nuxt": "^10.11.0",
|
|
96
100
|
"bumpp": "^9.4.1",
|
|
97
|
-
"eslint": "9.
|
|
101
|
+
"eslint": "9.6.0",
|
|
98
102
|
"jest-image-snapshot": "^6.4.0",
|
|
99
|
-
"nuxt": "^3.12.
|
|
103
|
+
"nuxt": "^3.12.3",
|
|
100
104
|
"nuxt-icon": "0.6.10",
|
|
101
|
-
"playwright": "^1.
|
|
105
|
+
"playwright": "^1.45.1",
|
|
102
106
|
"sass": "^1.77.6",
|
|
103
107
|
"sharp": "^0.33.4",
|
|
104
|
-
"typescript": "^5.
|
|
108
|
+
"typescript": "^5.5.3",
|
|
105
109
|
"unocss": "0.61.0",
|
|
106
110
|
"vitest": "^1.6.0"
|
|
107
111
|
},
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
const e=Object.freeze({displayName:"GDScript",fileTypes:["gd"],name:"gdscript",patterns:[{include:"#statement"},{include:"#expression"}],repository:{annotated_parameter:{begin:`(?x)
|
|
2
|
-
\\s* ([a-zA-Z_]\\w*) \\s* (:)\\s* ([a-zA-Z_]\\w*)?
|
|
3
|
-
`,beginCaptures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.annotation.gdscript"},3:{name:"entity.name.type.class.builtin.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"}]},annotations:{captures:{1:{name:"entity.name.function.decorator.gdscript"},2:{name:"entity.name.function.decorator.gdscript"}},match:"(@)(export|export_color_no_alpha|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|icon|onready|rpc|tool|warning_ignore|abstract)\\b"},any_method:{match:"\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))",name:"support.function.any-method.gdscript"},any_property:{captures:{1:{name:"punctuation.accessor.gdscript"},2:{name:"constant.language.gdscript"},3:{name:"variable.other.property.gdscript"}},match:"\\b(\\.)\\s*(?<![@\\$#%])(?:([A-Z_][A-Z_0-9]*)|([A-Za-z_]\\w*))\\b(?![(])"},any_variable:{match:"\\b(?<![@\\$#%])([A-Za-z_]\\w*)\\b(?![(])",name:"variable.other.gdscript"},arithmetic_operator:{match:"->|\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~|!",name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:"=",name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#const_vars"},{include:"#keywords"},{include:"#logic_operator"},{include:"#compare_operator"},{include:"#arithmetic_operator"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#round_braces"},{include:"#function_call"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#builtin_classes"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},builtin_classes:{match:"(?<![^.]\\.|:)\\b(OS|GDScript|Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray|super)\\b",name:"entity.name.type.class.builtin.gdscript"},builtin_get_node_shorthand:{patterns:[{include:"#builtin_get_node_shorthand_quoted"},{include:"#builtin_get_node_shorthand_bare"},{include:"#builtin_get_node_shorthand_bare_multi"}]},builtin_get_node_shorthand_bare:{captures:{1:{name:"keyword.control.flow.gdscript"},2:{name:"constant.character.escape.gdscript"},3:{name:"constant.character.escape.gdscript"}},match:"(?<!/\\s*)(\\$|%|\\$%)([a-zA-Z_]\\w*)\\b(?!\\s*/)",name:"meta.literal.nodepath.gdscript"},builtin_get_node_shorthand_bare_multi:{begin:"(\\$|%|\\$%)([a-zA-Z_]\\w*)",beginCaptures:{1:{name:"keyword.control.flow.gdscript"},2:{name:"constant.character.escape.gdscript"}},end:"(?!\\s*/\\s*%?\\s*[a-zA-Z_]\\w*)",name:"meta.literal.nodepath.gdscript",patterns:[{captures:{1:{name:"constant.character.escape.gdscript"},2:{name:"keyword.control.flow.gdscript"},3:{name:"constant.character.escape.gdscript"}},match:"(/)\\s*(%)?\\s*([a-zA-Z_]\\w*)\\s*"}]},builtin_get_node_shorthand_quoted:{begin:`(?:(\\$)|(&|\\^|@))("|')`,beginCaptures:{1:{name:"keyword.control.flow.gdscript"},2:{name:"variable.other.enummember.gdscript"}},end:"(\\3)",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow"}]},class_declaration:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"class.other.gdscript"}},match:"(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)"},class_enum:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"constant.language.gdscript"}},match:"\\b([A-Z][a-zA-Z_0-9]*)\\.([A-Z_0-9]+)"},class_is:{captures:{1:{name:"storage.type.is.gdscript"},2:{name:"entity.name.type.class.gdscript"}},match:"\\s+(is)\\s+([a-zA-Z_]\\w*)"},class_name:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"class.other.gdscript"}},match:"(?<=class_name)\\s+([a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?)"},class_new:{captures:{1:{name:"entity.name.type.class.gdscript"},2:{name:"storage.type.new.gdscript"},3:{name:"punctuation.parenthesis.begin.gdscript"}},match:"\\b([a-zA-Z_]\\w*).(new)\\("},comment:{captures:{1:{name:"punctuation.definition.comment.number-sign.gdscript"}},match:"(#).*$\\n?",name:"comment.line.number-sign.gdscript"},compare_operator:{match:"<=|>=|==|<|>|!=",name:"keyword.operator.comparison.gdscript"},const_vars:{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.gdscript"},control_flow:{match:"\\b(?:if|elif|else|while|break|continue|pass|return|match|yield|await)\\b",name:"keyword.control.gdscript"},expression:{patterns:[{include:"#base_expression"},{include:"#getter_setter_godot4"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{1:{name:"keyword.language.gdscript"},2:{name:"entity.other.inherited-class.gdscript"}},match:"(extends)\\s+([a-zA-Z_]\\w*\\.[a-zA-Z_]\\w*)?"},func:{match:"\\bfunc\\b",name:"keyword.language.gdscript"},function_arguments:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.gdscript"},{captures:{1:{name:"variable.parameter.function-call.gdscript"},2:{name:"keyword.operator.assignment.gdscript"}},match:"\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{1:{name:"punctuation.definition.arguments.end.gdscript"},2:{name:"punctuation.definition.arguments.begin.gdscript"}},match:"\\s*(\\))\\s*(\\()"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:`(?x)
|
|
4
|
-
\\b(?=
|
|
5
|
-
([a-zA-Z_]\\w*) \\s* (\\()
|
|
6
|
-
)
|
|
7
|
-
`,beginCaptures:{2:{name:"punctuation.definition.arguments.begin.gdscript"}},comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:`(?x) \\s*
|
|
8
|
-
(func) \\s+
|
|
9
|
-
([a-zA-Z_]\\w*) \\s*
|
|
10
|
-
(?=\\()`,beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{comment:"Some color schemas support meta.function-call.generic scope",match:`(?x)
|
|
11
|
-
\\b ([a-zA-Z_]\\w*) \\b
|
|
12
|
-
`,name:"support.function.any-method.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{1:{name:"entity.name.function.gdscript"}},match:"\\b(get):"},{begin:`(?x) \\s+
|
|
13
|
-
(set) \\s*
|
|
14
|
-
(?=\\()`,beginCaptures:{1:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]}]},in_keyword:{patterns:[{begin:"\\b(for)\\b",captures:{1:{name:"keyword.control.gdscript"}},end:":",patterns:[{match:"\\bin\\b",name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:"\\bin\\b",name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:"\\b(?:class|class_name|is|onready|tool|static|export|as|void|enum|preload|assert|breakpoint|rpc|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b",name:"keyword.language.gdscript"},lambda_declaration:{begin:"(func)\\s?(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:"\\b(?:true|false|null)\\b",name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.gdscript"},2:{name:"invalid.illegal.line.continuation.gdscript"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.gdscript"}},end:`(?x)
|
|
15
|
-
(?=^\\s*$)
|
|
16
|
-
|
|
|
17
|
-
(?! (\\s* [rR]? (\\'\\'\\'|\\"\\"\\"|\\'|\\"))
|
|
18
|
-
|
|
|
19
|
-
(\\G $) (?# '\\G' is necessary for ST)
|
|
20
|
-
)
|
|
21
|
-
`,patterns:[{include:"#base_expression"}]}]},logic_operator:{match:"\\b(and|or|not|!)\\b",name:"keyword.operator.wordlike.gdscript"},loose_default:{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},nodepath_function:{begin:"(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"},2:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:"%",name:"keyword.control.flow"}]}]},nodepath_object:{begin:"(NodePath)\\s*(?:\\()",beginCaptures:{1:{name:"support.class.library.gdscript"}},end:"(?:\\))",name:"meta.literal.nodepath.gdscript",patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:"0b[01_]+",name:"constant.numeric.integer.binary.gdscript"},{match:"0x[0-9A-Fa-f_]+",name:"constant.numeric.integer.hexadecimal.gdscript"},{match:"[-]?([0-9][0-9_]+\\.[0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?(\\.[0-9][0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?([0-9][0-9_]*e[\\-\\+]?\\[0-9_])",name:"constant.numeric.float.gdscript"},{match:"[-]?[0-9][0-9_]*",name:"constant.numeric.integer.gdscript"}]},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.parameters.gdscript"}},match:`(?x)
|
|
22
|
-
([a-zA-Z_]\\w*)
|
|
23
|
-
\\s* (?: (,) | (?=[)#\\n=]))
|
|
24
|
-
`},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:"\\b([A-Z][a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b",name:"entity.name.type.class.gdscript"},round_braces:{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.gdscript"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:"\\bself\\b",name:"variable.language.gdscript"},signal_declaration:{begin:`(?x) \\s*
|
|
25
|
-
(signal) \\s+
|
|
26
|
-
([a-zA-Z_]\\w*) \\s*
|
|
27
|
-
(?=\\()`,beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`((?=[#'"\\n]))`,name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},match:`(?x) \\s*
|
|
28
|
-
(signal) \\s+
|
|
29
|
-
([a-zA-Z_]\\w*)(?=[\\n\\s])`,name:"meta.signal.gdscript"},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:`(?x)
|
|
30
|
-
\\b(?<!\\.)(
|
|
31
|
-
continue | assert | break | elif | else | if | pass | return | while )\\b
|
|
32
|
-
`,name:"keyword.control.flow.gdscript"},{match:"\\b(?<!\\.)(class)\\b",name:"storage.type.class.gdscript"},{captures:{1:{name:"keyword.control.flow.gdscript"}},match:`(?x)
|
|
33
|
-
^\\s*(
|
|
34
|
-
case | match
|
|
35
|
-
)(?=\\s*([-+\\w\\d(\\[{'":#]|$))\\b
|
|
36
|
-
`}]},string_formatting:{captures:{1:{name:"constant.character.format.placeholder.other.gdscript"}},match:`(?x)
|
|
37
|
-
(
|
|
38
|
-
% (\\([\\w\\s]*\\))?
|
|
39
|
-
[-+#0 ]*
|
|
40
|
-
(\\d+|\\*)? (\\.(\\d+|\\*))?
|
|
41
|
-
([hlL])?
|
|
42
|
-
[diouxXeEfFgGcrsab%]
|
|
43
|
-
)
|
|
44
|
-
`,name:"meta.format.percent.gdscript"},strings:{begin:`(r)?("""|'''|"|')`,beginCaptures:{1:{name:"constant.character.escape.gdscript"}},end:"\\2",name:"string.quoted.gdscript",patterns:[{match:"\\\\.",name:"constant.character.escape.gdscript"},{include:"#string_formatting"}]},variable_declaration:{begin:"\\b(?:(var)|(const))\\s+(?:(\\b[A-Z_][A-Z_0-9]*\\b)|([A-Za-z_]\\w*))\\s*",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.var.gdscript"},2:{name:"keyword.language.gdscript storage.type.const.gdscript"},3:{name:"constant.language.gdscript"},4:{name:"variable.other.gdscript"}},end:"$|;",name:"meta.variable.gdscript",patterns:[{captures:{1:{name:"punctuation.separator.annotation.gdscript"},2:{name:"keyword.language.gdscript storage.type.const.gdscript"},3:{name:"entity.name.function.gdscript"}},match:"(:)?\\s*(set|get)\\s+=\\s+([a-zA-Z_]\\w*)"},{match:":=|=(?!=)",name:"keyword.operator.assignment.gdscript"},{captures:{1:{name:"punctuation.separator.annotation.gdscript"},2:{name:"entity.name.type.class.gdscript"}},match:"(:)\\s*([a-zA-Z_]\\w*)?"},{captures:{1:{name:"keyword.language.gdscript storage.type.const.gdscript"},2:{name:"entity.name.function.gdscript"},3:{name:"entity.name.function.gdscript"}},match:"(setget)\\s+([a-zA-Z_]\\w*)(?:[,]\\s*([a-zA-Z_]\\w*))?"},{include:"#expression"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]}},scopeName:"source.gdscript"});var n=[e];export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
span[data-v-369b0d4b]{background-color:currentColor;display:inline-block;-webkit-mask-image:var(--257a861c);mask-image:var(--257a861c);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"ce5d759a-31b3-43b6-b457-16195d8e8276","timestamp":1718856452123,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.spotlight[data-v-bdcd1a09]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-bdcd1a09]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-bdcd1a09]{background-color:#ffffff4d}.gradient-border[data-v-bdcd1a09]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-bdcd1a09]{background-color:#1414144d}.gradient-border[data-v-bdcd1a09]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-bdcd1a09]: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-bdcd1a09]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-bdcd1a09]{position:fixed}.left-0[data-v-bdcd1a09]{left:0}.right-0[data-v-bdcd1a09]{right:0}.z-10[data-v-bdcd1a09]{z-index:10}.z-20[data-v-bdcd1a09]{z-index:20}.grid[data-v-bdcd1a09]{display:grid}.mb-16[data-v-bdcd1a09]{margin-bottom:4rem}.mb-8[data-v-bdcd1a09]{margin-bottom:2rem}.max-w-520px[data-v-bdcd1a09]{max-width:520px}.min-h-screen[data-v-bdcd1a09]{min-height:100vh}.w-full[data-v-bdcd1a09]{width:100%}.flex[data-v-bdcd1a09]{display:flex}.cursor-pointer[data-v-bdcd1a09]{cursor:pointer}.place-content-center[data-v-bdcd1a09]{place-content:center}.items-center[data-v-bdcd1a09]{align-items:center}.justify-center[data-v-bdcd1a09]{justify-content:center}.overflow-hidden[data-v-bdcd1a09]{overflow:hidden}.bg-white[data-v-bdcd1a09]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-bdcd1a09]{padding-left:1rem;padding-right:1rem}.px-8[data-v-bdcd1a09]{padding-left:2rem;padding-right:2rem}.py-2[data-v-bdcd1a09]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-bdcd1a09]{text-align:center}.text-8xl[data-v-bdcd1a09]{font-size:6rem;line-height:1}.text-xl[data-v-bdcd1a09]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-bdcd1a09]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-bdcd1a09]{font-weight:300}.font-medium[data-v-bdcd1a09]{font-weight:500}.leading-tight[data-v-bdcd1a09]{line-height:1.25}.font-sans[data-v-bdcd1a09]{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-bdcd1a09]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-bdcd1a09]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-bdcd1a09]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-bdcd1a09]{padding-left:0;padding-right:0}.sm\:px-6[data-v-bdcd1a09]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-bdcd1a09]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-bdcd1a09]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-bdcd1a09]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.spotlight[data-v-fc2b23f7]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-fc2b23f7]{position:fixed}.-bottom-1\/2[data-v-fc2b23f7]{bottom:-50%}.left-0[data-v-fc2b23f7]{left:0}.right-0[data-v-fc2b23f7]{right:0}.grid[data-v-fc2b23f7]{display:grid}.mb-16[data-v-fc2b23f7]{margin-bottom:4rem}.mb-8[data-v-fc2b23f7]{margin-bottom:2rem}.h-1\/2[data-v-fc2b23f7]{height:50%}.max-w-520px[data-v-fc2b23f7]{max-width:520px}.min-h-screen[data-v-fc2b23f7]{min-height:100vh}.place-content-center[data-v-fc2b23f7]{place-content:center}.overflow-hidden[data-v-fc2b23f7]{overflow:hidden}.bg-white[data-v-fc2b23f7]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-fc2b23f7]{padding-left:2rem;padding-right:2rem}.text-center[data-v-fc2b23f7]{text-align:center}.text-8xl[data-v-fc2b23f7]{font-size:6rem;line-height:1}.text-xl[data-v-fc2b23f7]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-fc2b23f7]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-fc2b23f7]{font-weight:300}.font-medium[data-v-fc2b23f7]{font-weight:500}.leading-tight[data-v-fc2b23f7]{line-height:1.25}.font-sans[data-v-fc2b23f7]{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-fc2b23f7]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-fc2b23f7]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-fc2b23f7]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-fc2b23f7]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-fc2b23f7]{font-size:2.25rem;line-height:2.5rem}}
|