@nuxt/scripts 0.8.4 → 0.8.5

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.
@@ -1 +1 @@
1
- import{i as f,r as u,f as o,g as d,h as v,j as l,k as i,l as h,m}from"./qH8ZJPJc.js";function U(t,a={}){const e=a.head||f();if(e)return e.ssr?e.push(t,a):p(e,t,a)}function p(t,a,e={}){const s=u(!1),n=u({});o(()=>{n.value=s.value?{}:h(a)});const r=t.push(n.value,e);return d(n,c=>{r.patch(c)}),m()&&(v(()=>{r.dispose()}),l(()=>{s.value=!0}),i(()=>{s.value=!1})),r}export{U as u};
1
+ import{i as f,r as u,f as o,g as d,h as v,j as l,k as i,l as h,m}from"./DRQPj4Ao.js";function U(t,a={}){const e=a.head||f();if(e)return e.ssr?e.push(t,a):p(e,t,a)}function p(t,a,e={}){const s=u(!1),n=u({});o(()=>{n.value=s.value?{}:h(a)});const r=t.push(n.value,e);return d(n,c=>{r.patch(c)}),m()&&(v(()=>{r.dispose()}),l(()=>{s.value=!0}),i(()=>{s.value=!1})),r}export{U as u};
@@ -1 +1 @@
1
- {"id":"663d447b-1805-44f3-9c37-fee30740d200","timestamp":1725733682996}
1
+ {"id":"95e6959f-5542-43c9-98ac-9f6c4fe3c6a0","timestamp":1725890525855}
@@ -0,0 +1 @@
1
+ {"id":"95e6959f-5542-43c9-98ac-9f6c4fe3c6a0","timestamp":1725890525855,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -0,0 +1 @@
1
+ .spotlight[data-v-8bde3b33]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-8bde3b33]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-8bde3b33]{background-color:#ffffff4d}.gradient-border[data-v-8bde3b33]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-8bde3b33]{background-color:#1414144d}.gradient-border[data-v-8bde3b33]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-8bde3b33]: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-8bde3b33]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-8bde3b33]{position:fixed}.left-0[data-v-8bde3b33]{left:0}.right-0[data-v-8bde3b33]{right:0}.z-10[data-v-8bde3b33]{z-index:10}.z-20[data-v-8bde3b33]{z-index:20}.grid[data-v-8bde3b33]{display:grid}.mb-16[data-v-8bde3b33]{margin-bottom:4rem}.mb-8[data-v-8bde3b33]{margin-bottom:2rem}.max-w-520px[data-v-8bde3b33]{max-width:520px}.min-h-screen[data-v-8bde3b33]{min-height:100vh}.w-full[data-v-8bde3b33]{width:100%}.flex[data-v-8bde3b33]{display:flex}.cursor-pointer[data-v-8bde3b33]{cursor:pointer}.place-content-center[data-v-8bde3b33]{place-content:center}.items-center[data-v-8bde3b33]{align-items:center}.justify-center[data-v-8bde3b33]{justify-content:center}.overflow-hidden[data-v-8bde3b33]{overflow:hidden}.bg-white[data-v-8bde3b33]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-8bde3b33]{padding-left:1rem;padding-right:1rem}.px-8[data-v-8bde3b33]{padding-left:2rem;padding-right:2rem}.py-2[data-v-8bde3b33]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-8bde3b33]{text-align:center}.text-8xl[data-v-8bde3b33]{font-size:6rem;line-height:1}.text-xl[data-v-8bde3b33]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-8bde3b33]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-8bde3b33]{font-weight:300}.font-medium[data-v-8bde3b33]{font-weight:500}.leading-tight[data-v-8bde3b33]{line-height:1.25}.font-sans[data-v-8bde3b33]{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-8bde3b33]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-8bde3b33]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-8bde3b33]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-8bde3b33]{padding-left:0;padding-right:0}.sm\:px-6[data-v-8bde3b33]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-8bde3b33]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-8bde3b33]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-8bde3b33]{font-size:1.25rem;line-height:1.75rem}}
@@ -0,0 +1 @@
1
+ .spotlight[data-v-e8a98c8b]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-e8a98c8b]{position:fixed}.-bottom-1\/2[data-v-e8a98c8b]{bottom:-50%}.left-0[data-v-e8a98c8b]{left:0}.right-0[data-v-e8a98c8b]{right:0}.grid[data-v-e8a98c8b]{display:grid}.mb-16[data-v-e8a98c8b]{margin-bottom:4rem}.mb-8[data-v-e8a98c8b]{margin-bottom:2rem}.h-1\/2[data-v-e8a98c8b]{height:50%}.max-w-520px[data-v-e8a98c8b]{max-width:520px}.min-h-screen[data-v-e8a98c8b]{min-height:100vh}.place-content-center[data-v-e8a98c8b]{place-content:center}.overflow-hidden[data-v-e8a98c8b]{overflow:hidden}.bg-white[data-v-e8a98c8b]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-e8a98c8b]{padding-left:2rem;padding-right:2rem}.text-center[data-v-e8a98c8b]{text-align:center}.text-8xl[data-v-e8a98c8b]{font-size:6rem;line-height:1}.text-xl[data-v-e8a98c8b]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-e8a98c8b]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-e8a98c8b]{font-weight:300}.font-medium[data-v-e8a98c8b]{font-weight:500}.leading-tight[data-v-e8a98c8b]{line-height:1.25}.font-sans[data-v-e8a98c8b]{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-e8a98c8b]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-e8a98c8b]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-e8a98c8b]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-e8a98c8b]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-e8a98c8b]{font-size:2.25rem;line-height:2.5rem}}
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
2
2
  <meta name="viewport" content="width=device-width, initial-scale=1">
3
3
  <link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.BAZUAl3s.css">
4
- <link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qH8ZJPJc.js">
4
+ <link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DRQPj4Ao.js">
5
5
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DXFkqnOI.js">
6
6
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BigF1UXR.js">
7
7
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CowR2XfX.js">
@@ -257,10 +257,10 @@
257
257
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B3g-KkBK.js">
258
258
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bxkoe-BC.js">
259
259
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Br6ll-O0.js">
260
- <link rel="prefetch" as="style" href="/__nuxt-scripts/_nuxt/error-404.Dh7DYMRz.css">
261
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Ba8BmHI-.js">
262
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CQ_lMUWv.js">
263
- <link rel="prefetch" as="style" href="/__nuxt-scripts/_nuxt/error-500.W3BiwNt2.css">
264
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CL9amlOg.js">
265
- <script type="module" src="/__nuxt-scripts/_nuxt/qH8ZJPJc.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"serverRendered":1},false]</script>
266
- <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"663d447b-1805-44f3-9c37-fee30740d200",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
260
+ <link rel="prefetch" as="style" href="/__nuxt-scripts/_nuxt/error-404.DcouQntd.css">
261
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DL6Ucn5j.js">
262
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dj8iohMZ.js">
263
+ <link rel="prefetch" as="style" href="/__nuxt-scripts/_nuxt/error-500.Btilk7Db.css">
264
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CfE59ZiL.js">
265
+ <script type="module" src="/__nuxt-scripts/_nuxt/DRQPj4Ao.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"serverRendered":1},false]</script>
266
+ <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"95e6959f-5542-43c9-98ac-9f6c4fe3c6a0",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3",
6
6
  "bridge": false
7
7
  },
8
- "version": "0.8.4",
8
+ "version": "0.8.5",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "0.8.3",
11
11
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -300,6 +300,7 @@ function setupPublicAssetStrategy(options = {}) {
300
300
  await fsp.rm(cacheDir, { recursive: true, force: true });
301
301
  await fsp.mkdir(cacheDir, { recursive: true });
302
302
  let banner = false;
303
+ const failedScriptDownload = /* @__PURE__ */ new Set();
303
304
  for (const [filename, url] of renderedScriptSrc) {
304
305
  const key = `data:scripts:${filename}`;
305
306
  let res = await storage.getItemRaw(key);
@@ -311,6 +312,10 @@ function setupPublicAssetStrategy(options = {}) {
311
312
  let encoding;
312
313
  let size = 0;
313
314
  res = await fetch(url).then((r) => {
315
+ if (!r.ok) {
316
+ failedScriptDownload.add({ url, statusText: r.statusText, status: r.status });
317
+ return Buffer.from("");
318
+ }
314
319
  encoding = r.headers.get("content-encoding");
315
320
  const contentLength = r.headers.get("content-length");
316
321
  size = contentLength ? Number(contentLength) / 1024 : 0;
@@ -321,6 +326,10 @@ function setupPublicAssetStrategy(options = {}) {
321
326
  }
322
327
  await fsp.writeFile(join(cacheDir, filename), res);
323
328
  }
329
+ if (failedScriptDownload.size) {
330
+ throw new Error(`@nuxt/script: Failed to download scripts:
331
+ ${[...failedScriptDownload].map(({ url, statusText, status }) => ` \u251C\u2500 ${url} (${status} ${statusText})`).join("\n")}`);
332
+ }
324
333
  if (banner)
325
334
  logger.success("Scripts downloaded and cached.");
326
335
  });
@@ -184,6 +184,7 @@ const height = computed(() => {
184
184
  })
185
185
 
186
186
  onMounted(() => {
187
+ // @ts-ignore failing for end users
187
188
  onLoaded(async ({ Vimeo }) => {
188
189
  const vimeoOptions = props.vimeoOptions || {}
189
190
  if (!vimeoOptions.id && props.id) {
@@ -59,7 +59,7 @@ if (props.trigger === 'mousedown' && trigger instanceof Promise) {
59
59
  }
60
60
  onMounted(() => {
61
61
  onLoaded(async (instance) => {
62
- const YouTube: typeof YT & { ready: (fn: () => void) => void } = await instance.YT
62
+ const YouTube = instance.YT instanceof Promise ? await instance.YT : instance.YT
63
63
  await new Promise<void>((resolve) => {
64
64
  if (typeof YT.Player === 'undefined')
65
65
  YouTube.ready(resolve)
@@ -23,4 +23,4 @@ declare global {
23
23
  *
24
24
  * A 3P wrapper for Google Analytics that takes an options input to feed into third-party-capital({@link https://github.com/GoogleChromeLabs/third-party-capital}), which returns instructions for nuxt-scripts.
25
25
  */
26
- export declare function useScriptGoogleAdsense<T extends GoogleAdsenseApi>(_options?: GoogleAdsenseInput): import("#imports").UseScriptContext<T>;
26
+ export declare function useScriptGoogleAdsense<T extends GoogleAdsenseApi>(_options?: GoogleAdsenseInput): import("../composables/useScript").UseScriptContext<T>;
@@ -1,4 +1,5 @@
1
1
  import type Vimeo from '@vimeo/player';
2
+ import type { UseScriptContext } from '@unhead/vue';
2
3
  import type { RegistryScriptInput } from '#nuxt-scripts';
3
4
  type Constructor<T extends new (...args: any) => any> = T extends new (...args: infer A) => infer R ? new (...args: A) => R : never;
4
5
  export interface VimeoPlayerApi {
@@ -11,5 +12,5 @@ declare global {
11
12
  interface Window extends VimeoPlayerApi {
12
13
  }
13
14
  }
14
- export declare function useScriptVimeoPlayer<T extends VimeoPlayerApi>(_options?: VimeoPlayerInput): import("#imports").UseScriptContext<T>;
15
+ export declare function useScriptVimeoPlayer<T extends VimeoPlayerApi>(_options?: VimeoPlayerInput): UseScriptContext<T>;
15
16
  export {};
@@ -1,8 +1,19 @@
1
+ import type { UseScriptContext } from '@unhead/vue';
2
+ import type { MaybePromise } from '../utils.js';
1
3
  import type { RegistryScriptInput } from '#nuxt-scripts';
2
4
  export interface YouTubePlayerApi {
3
- YT: typeof YT & {
4
- ready: (fn: () => void) => void;
5
- };
5
+ YT: MaybePromise<{
6
+ Player: YT.Player;
7
+ PlayerState: YT.PlayerState;
8
+ get(k: string): any;
9
+ loaded: 0 | 1;
10
+ loading: 0 | 1;
11
+ ready(f: () => void): void;
12
+ scan(): void;
13
+ setConfig(config: YT.PlayerOptions): void;
14
+ subscribe<EventName extends keyof YT.Events>(event: EventName, listener: YT.Events[EventName], context?: any): void;
15
+ unsubscribe<EventName extends keyof YT.Events>(event: EventName, listener: YT.Events[EventName], context?: any): void;
16
+ }>;
6
17
  }
7
18
  declare global {
8
19
  interface Window extends YouTubePlayerApi {
@@ -10,4 +21,4 @@ declare global {
10
21
  }
11
22
  }
12
23
  export type YouTubePlayerInput = RegistryScriptInput;
13
- export declare function useScriptYouTubePlayer<T extends YouTubePlayerApi>(_options: YouTubePlayerInput): import("#imports").UseScriptContext<T>;
24
+ export declare function useScriptYouTubePlayer<T extends YouTubePlayerApi>(_options: YouTubePlayerInput): UseScriptContext<T>;
@@ -12,7 +12,7 @@ export function useScriptYouTubePlayer(_options) {
12
12
  scriptOptions: {
13
13
  use() {
14
14
  return {
15
- YT: readyPromise.then(() => {
15
+ YT: window.YT || readyPromise.then(() => {
16
16
  return window.YT;
17
17
  })
18
18
  };
@@ -1,6 +1,7 @@
1
1
  import type { InferInput, ObjectSchema } from 'valibot';
2
2
  import type { UseScriptInput } from '@unhead/vue';
3
3
  import type { EmptyOptionsSchema, NuxtUseScriptOptions, RegistryScriptInput, ScriptRegistry } from '#nuxt-scripts';
4
+ export type MaybePromise<T> = Promise<T> | T;
4
5
  type OptionsFn<O extends ObjectSchema<any, any>> = (options: InferInput<O>) => ({
5
6
  scriptInput?: UseScriptInput;
6
7
  scriptOptions?: NuxtUseScriptOptions;
@@ -8,5 +9,5 @@ type OptionsFn<O extends ObjectSchema<any, any>> = (options: InferInput<O>) => (
8
9
  clientInit?: () => void;
9
10
  });
10
11
  export declare function scriptRuntimeConfig<T extends keyof ScriptRegistry>(key: T): ScriptRegistry[T];
11
- export declare function useRegistryScript<T extends Record<string | symbol, any>, O extends ObjectSchema<any, any> = EmptyOptionsSchema, U = {}>(registryKey: keyof ScriptRegistry | string, optionsFn: OptionsFn<O>, _userOptions?: RegistryScriptInput<O>): import("#imports").UseScriptContext<T>;
12
+ export declare function useRegistryScript<T extends Record<string | symbol, any>, O extends ObjectSchema<any, any> = EmptyOptionsSchema, U = {}>(registryKey: keyof ScriptRegistry | string, optionsFn: OptionsFn<O>, _userOptions?: RegistryScriptInput<O>): import("./composables/useScript").UseScriptContext<T>;
12
13
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxt/scripts",
3
3
  "type": "module",
4
- "version": "0.8.4",
4
+ "version": "0.8.5",
5
5
  "packageManager": "pnpm@9.9.0",
6
6
  "description": "Load third-party scripts with better performance, privacy and DX in Nuxt Apps.",
7
7
  "author": {
@@ -72,7 +72,7 @@
72
72
  "@types/stripe-v3": "^3.1.33",
73
73
  "@types/vimeo__player": "^2.18.3",
74
74
  "@types/youtube": "^0.1.0",
75
- "@unhead/vue": "1.11.0-beta.1",
75
+ "@unhead/vue": "1.11.1",
76
76
  "@vueuse/core": "^11.0.3",
77
77
  "consola": "^3.2.3",
78
78
  "defu": "^6.1.4",
@@ -101,7 +101,7 @@
101
101
  "@nuxt/test-utils": "3.14.1",
102
102
  "@types/semver": "^7.5.8",
103
103
  "@typescript-eslint/typescript-estree": "^8.4.0",
104
- "@unhead/schema": "1.11.0-beta.1",
104
+ "@unhead/schema": "1.11.1",
105
105
  "acorn-loose": "^8.4.0",
106
106
  "bumpp": "^9.5.2",
107
107
  "changelogen": "^0.5.5",
@@ -120,14 +120,14 @@
120
120
  "@nuxt/schema": "3.13.0",
121
121
  "@nuxt/scripts": "workspace:*",
122
122
  "@unhead/dom": "1.10.2",
123
- "@unhead/schema": "1.10.4",
124
- "@unhead/shared": "1.10.4",
125
- "@unhead/ssr": "1.10.4",
126
- "@unhead/vue": "1.10.4",
123
+ "@unhead/schema": "1.11.1",
124
+ "@unhead/shared": "1.11.1",
125
+ "@unhead/ssr": "1.11.1",
126
+ "@unhead/vue": "1.11.1",
127
127
  "nuxt": "^3.13.1",
128
128
  "nuxt-scripts-devtools": "workspace:*",
129
129
  "shiki": "1.10.3",
130
- "unhead": "1.10.4",
130
+ "unhead": "1.11.1",
131
131
  "vue": "^3.5.3",
132
132
  "vue-router": "^4.4.3"
133
133
  }
@@ -1 +0,0 @@
1
- {"id":"663d447b-1805-44f3-9c37-fee30740d200","timestamp":1725733682996,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1 +0,0 @@
1
- .spotlight[data-v-c2b918fa]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-c2b918fa]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-c2b918fa]{background-color:#ffffff4d}.gradient-border[data-v-c2b918fa]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-c2b918fa]{background-color:#1414144d}.gradient-border[data-v-c2b918fa]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-c2b918fa]: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-c2b918fa]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-c2b918fa]{position:fixed}.left-0[data-v-c2b918fa]{left:0}.right-0[data-v-c2b918fa]{right:0}.z-10[data-v-c2b918fa]{z-index:10}.z-20[data-v-c2b918fa]{z-index:20}.grid[data-v-c2b918fa]{display:grid}.mb-16[data-v-c2b918fa]{margin-bottom:4rem}.mb-8[data-v-c2b918fa]{margin-bottom:2rem}.max-w-520px[data-v-c2b918fa]{max-width:520px}.min-h-screen[data-v-c2b918fa]{min-height:100vh}.w-full[data-v-c2b918fa]{width:100%}.flex[data-v-c2b918fa]{display:flex}.cursor-pointer[data-v-c2b918fa]{cursor:pointer}.place-content-center[data-v-c2b918fa]{place-content:center}.items-center[data-v-c2b918fa]{align-items:center}.justify-center[data-v-c2b918fa]{justify-content:center}.overflow-hidden[data-v-c2b918fa]{overflow:hidden}.bg-white[data-v-c2b918fa]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-c2b918fa]{padding-left:1rem;padding-right:1rem}.px-8[data-v-c2b918fa]{padding-left:2rem;padding-right:2rem}.py-2[data-v-c2b918fa]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-c2b918fa]{text-align:center}.text-8xl[data-v-c2b918fa]{font-size:6rem;line-height:1}.text-xl[data-v-c2b918fa]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-c2b918fa]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-c2b918fa]{font-weight:300}.font-medium[data-v-c2b918fa]{font-weight:500}.leading-tight[data-v-c2b918fa]{line-height:1.25}.font-sans[data-v-c2b918fa]{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-c2b918fa]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-c2b918fa]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-c2b918fa]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-c2b918fa]{padding-left:0;padding-right:0}.sm\:px-6[data-v-c2b918fa]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-c2b918fa]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-c2b918fa]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-c2b918fa]{font-size:1.25rem;line-height:1.75rem}}
@@ -1 +0,0 @@
1
- .spotlight[data-v-76910127]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-76910127]{position:fixed}.-bottom-1\/2[data-v-76910127]{bottom:-50%}.left-0[data-v-76910127]{left:0}.right-0[data-v-76910127]{right:0}.grid[data-v-76910127]{display:grid}.mb-16[data-v-76910127]{margin-bottom:4rem}.mb-8[data-v-76910127]{margin-bottom:2rem}.h-1\/2[data-v-76910127]{height:50%}.max-w-520px[data-v-76910127]{max-width:520px}.min-h-screen[data-v-76910127]{min-height:100vh}.place-content-center[data-v-76910127]{place-content:center}.overflow-hidden[data-v-76910127]{overflow:hidden}.bg-white[data-v-76910127]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-76910127]{padding-left:2rem;padding-right:2rem}.text-center[data-v-76910127]{text-align:center}.text-8xl[data-v-76910127]{font-size:6rem;line-height:1}.text-xl[data-v-76910127]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-76910127]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-76910127]{font-weight:300}.font-medium[data-v-76910127]{font-weight:500}.leading-tight[data-v-76910127]{line-height:1.25}.font-sans[data-v-76910127]{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-76910127]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-76910127]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-76910127]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-76910127]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-76910127]{font-size:2.25rem;line-height:2.5rem}}