nuxt-i18n-micro 1.14.1 → 1.15.0

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.
@@ -0,0 +1 @@
1
+ import{u as a}from"./CrMD8tE2.js";import{_ as s,o as i,c as u,a as t,t as o}from"./D4krr5Cl.js";const l={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],g={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(e){const n=e;return a({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[],style:[{children:'*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;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;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:before,:after{--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 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(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: }'}]}),(b,r)=>(i(),u("div",l,[r[0]||(r[0]=t("div",{class:"fixed -bottom-1/2 left-0 right-0 h-1/2 spotlight"},null,-1)),t("div",c,[t("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:o(e.statusCode)},null,8,d),t("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:o(e.description)},null,8,p)])]))}},m=s(g,[["__scopeId","data-v-b63e9691"]]);export{m as default};
@@ -0,0 +1 @@
1
+ import{_ as s,o as i,c as u,a as t,t as o,b as l,w as c,d,e as p}from"./D4krr5Cl.js";import{u as f}from"./CrMD8tE2.js";const g={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},b={class:"max-w-520px text-center z-20"},h=["textContent"],x=["textContent"],m={class:"w-full flex items-center justify-center"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const n=e;return f({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[],style:[{children:'*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;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;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:before,:after{--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 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(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: }'}]}),(k,r)=>{const a=p;return i(),u("div",g,[r[0]||(r[0]=t("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),t("div",b,[t("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:o(e.statusCode)},null,8,h),t("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:o(e.description)},null,8,x),t("div",m,[l(a,{to:"/",class:"gradient-border text-md sm:text-xl py-2 px-4 sm:py-3 sm:px-6 cursor-pointer"},{default:c(()=>[d(o(e.backHome),1)]),_:1})])])])}}},z=s(y,[["__scopeId","data-v-83de2354"]]);export{z as default};
@@ -1 +1 @@
1
- {"id":"fac332f5-ba87-4ce6-a934-08ead1d48099","timestamp":1725567796588}
1
+ {"id":"1b227ff9-c2d8-4498-a2d2-9e203ce63363","timestamp":1725618374874}
@@ -0,0 +1 @@
1
+ {"id":"1b227ff9-c2d8-4498-a2d2-9e203ce63363","timestamp":1725618374874,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1,12 +1,12 @@
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-i18n-micro/_nuxt/entry.DjxsrOxm.css">
4
- <link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/D1fvHJQV.js">
4
+ <link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/D4krr5Cl.js">
5
5
  <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/B6E6ObS_.js">
6
6
  <link rel="prefetch" as="style" href="/__nuxt-i18n-micro/_nuxt/error-404.D-AvUzLt.css">
7
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/BpNRGTHy.js">
8
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DxMn4SAe.js">
7
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DrbVAtr9.js">
8
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/CrMD8tE2.js">
9
9
  <link rel="prefetch" as="style" href="/__nuxt-i18n-micro/_nuxt/error-500.21ZDxC33.css">
10
- <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DzdJBprQ.js">
11
- <script type="module" src="/__nuxt-i18n-micro/_nuxt/D1fvHJQV.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>
12
- <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-i18n-micro",buildId:"fac332f5-ba87-4ce6-a934-08ead1d48099",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
10
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DKQku3vX.js">
11
+ <script type="module" src="/__nuxt-i18n-micro/_nuxt/D4krr5Cl.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>
12
+ <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-i18n-micro",buildId:"1b227ff9-c2d8-4498-a2d2-9e203ce63363",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
package/dist/module.d.mts CHANGED
@@ -21,6 +21,8 @@ interface ModuleOptions {
21
21
  routesLocaleLinks?: Record<string, string>;
22
22
  plural?: string;
23
23
  disablePageLocales?: boolean;
24
+ fallbackLocale?: string;
25
+ localeCookie?: string;
24
26
  }
25
27
  interface ModuleOptionsExtend extends ModuleOptions {
26
28
  plural: string;
package/dist/module.d.ts CHANGED
@@ -21,6 +21,8 @@ interface ModuleOptions {
21
21
  routesLocaleLinks?: Record<string, string>;
22
22
  plural?: string;
23
23
  disablePageLocales?: boolean;
24
+ fallbackLocale?: string;
25
+ localeCookie?: string;
24
26
  }
25
27
  interface ModuleOptionsExtend extends ModuleOptions {
26
28
  plural: string;
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-i18n-micro",
3
3
  "configKey": "i18n",
4
- "version": "1.14.1",
4
+ "version": "1.15.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "0.8.3",
7
7
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -347,6 +347,8 @@ const module = defineNuxtModule({
347
347
  disablePageLocales: false,
348
348
  disableWatcher: false,
349
349
  includeDefaultLocaleRoute: false,
350
+ fallbackLocale: void 0,
351
+ localeCookie: "user-locale",
350
352
  routesLocaleLinks: {},
351
353
  plural: `function (translation, count, _locale) {
352
354
  const forms = translation.toString().split('|')
@@ -373,10 +375,12 @@ const module = defineNuxtModule({
373
375
  disableWatcher: options.disableWatcher ?? false,
374
376
  defaultLocale: options.defaultLocale ?? "en",
375
377
  translationDir: options.translationDir ?? "locales",
378
+ localeCookie: options.localeCookie ?? "user-locale",
376
379
  autoDetectLanguage: options.autoDetectLanguage ?? true,
377
380
  autoDetectPath: options.autoDetectPath ?? "*",
378
381
  includeDefaultLocaleRoute: options.includeDefaultLocaleRoute ?? false,
379
382
  routesLocaleLinks: options.routesLocaleLinks ?? {},
383
+ fallbackLocale: options.fallbackLocale ?? void 0,
380
384
  dateBuild: Date.now(),
381
385
  baseURL: nuxt.options.app.baseURL
382
386
  };
@@ -1,4 +1,4 @@
1
- declare const _default: import("vue").DefineComponent<{
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
2
  keypath: {
3
3
  type: StringConstructor;
4
4
  required: true;
@@ -30,7 +30,7 @@ declare const _default: import("vue").DefineComponent<{
30
30
  type: FunctionConstructor;
31
31
  default: null;
32
32
  };
33
- }, () => any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
33
+ }>, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
34
34
  keypath: {
35
35
  type: StringConstructor;
36
36
  required: true;
@@ -62,12 +62,12 @@ declare const _default: import("vue").DefineComponent<{
62
62
  type: FunctionConstructor;
63
63
  default: null;
64
64
  };
65
- }>>, {
65
+ }>> & Readonly<{}>, {
66
66
  tag: string;
67
67
  params: Record<string, any>;
68
68
  defaultValue: string;
69
69
  html: boolean;
70
70
  hideIfEmpty: boolean;
71
71
  customPluralRule: Function;
72
- }, {}>;
72
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
73
73
  export default _default;
@@ -1,3 +1,22 @@
1
+ interface MetaLink {
2
+ [key: string]: string | undefined;
3
+ rel: string;
4
+ href: string;
5
+ hreflang?: string;
6
+ }
7
+ interface MetaTag {
8
+ [key: string]: string;
9
+ property: string;
10
+ content: string;
11
+ }
12
+ interface MetaObject {
13
+ htmlAttrs: {
14
+ lang?: string;
15
+ dir?: 'ltr' | 'rtl' | 'auto';
16
+ };
17
+ link: MetaLink[];
18
+ meta: MetaTag[];
19
+ }
1
20
  export declare const useLocaleHead: ({ addDirAttribute, identifierAttribute, addSeoAttributes, baseUrl }?: {
2
21
  addDirAttribute?: boolean | undefined;
3
22
  identifierAttribute?: string | undefined;
@@ -19,4 +38,21 @@ export declare const useLocaleHead: ({ addDirAttribute, identifierAttribute, add
19
38
  property: string;
20
39
  content: string;
21
40
  }[];
41
+ }, MetaObject | {
42
+ htmlAttrs: {
43
+ lang?: string | undefined;
44
+ dir?: ("ltr" | "rtl" | "auto") | undefined;
45
+ };
46
+ link: {
47
+ [x: string]: string | undefined;
48
+ rel: string;
49
+ href: string;
50
+ hreflang?: string | undefined;
51
+ }[];
52
+ meta: {
53
+ [x: string]: string;
54
+ property: string;
55
+ content: string;
56
+ }[];
22
57
  }>;
58
+ export {};
@@ -2,7 +2,7 @@ import { defineNuxtPlugin, useCookie, useRequestHeaders, navigateTo } from "#app
2
2
  import { useRoute, useRouter } from "#imports";
3
3
  export default defineNuxtPlugin(async (nuxtApp) => {
4
4
  const i18nConfig = nuxtApp.$config.public.i18nConfig;
5
- const userLocaleCookie = useCookie("user-locale");
5
+ const userLocaleCookie = useCookie(i18nConfig.localeCookie || "user-locale");
6
6
  const headers = useRequestHeaders(["accept-language"]);
7
7
  const supportedLocales = i18nConfig.locales?.map((locale) => locale.code) ?? [];
8
8
  const defaultLocale = i18nConfig.defaultLocale || "en";
@@ -29,6 +29,7 @@ export default defineNuxtPlugin(async (nuxtApp) => {
29
29
  const currentPath = router.currentRoute;
30
30
  const currentLocale = currentPath.value.params.locale ?? defaultLocale;
31
31
  if (detectedLocale === currentLocale) {
32
+ userLocaleCookie.value = detectedLocale;
32
33
  return;
33
34
  }
34
35
  const resolvedRoute = router.resolve(currentPath.value);
@@ -2,22 +2,47 @@ import { resolve } from "node:path";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { defineEventHandler } from "h3";
4
4
  import { useRuntimeConfig } from "#imports";
5
+ function deepMerge(target, source) {
6
+ for (const key of Object.keys(source)) {
7
+ if (source[key] instanceof Object && key in target) {
8
+ Object.assign(source[key], deepMerge(target[key], source[key]));
9
+ }
10
+ }
11
+ return { ...target, ...source };
12
+ }
13
+ function isEmptyObject(obj) {
14
+ for (const _ in obj) {
15
+ return false;
16
+ }
17
+ return true;
18
+ }
5
19
  export default defineEventHandler(async (event) => {
6
20
  const { page, locale } = event.context.params;
7
21
  const config = useRuntimeConfig();
8
22
  const { rootDirs } = config.i18nConfig;
9
- const { translationDir } = config.public.i18nConfig;
10
- let path = `${locale}.json`;
11
- if (page !== "general") {
12
- path = `pages/${page}/${locale}.json`;
23
+ const { translationDir, fallbackLocale } = config.public.i18nConfig;
24
+ const getTranslationPath = (locale2, page2) => {
25
+ return page2 === "general" ? `${locale2}.json` : `pages/${page2}/${locale2}.json`;
26
+ };
27
+ const paths = [];
28
+ if (fallbackLocale && fallbackLocale !== locale) {
29
+ rootDirs.forEach((dir) => {
30
+ paths.push(resolve(dir, translationDir, getTranslationPath(fallbackLocale, page)));
31
+ });
13
32
  }
33
+ rootDirs.forEach((dir) => {
34
+ paths.push(resolve(dir, translationDir, getTranslationPath(locale, page)));
35
+ });
14
36
  let translations = {};
15
- for (const i in rootDirs) {
16
- const translationPath = resolve(rootDirs[i], translationDir, path);
37
+ for (const translationPath of paths) {
17
38
  try {
18
39
  const fileContent = await readFile(translationPath, "utf-8");
19
40
  const content = JSON.parse(fileContent);
20
- translations = { ...translations, ...content };
41
+ if (isEmptyObject(translations)) {
42
+ translations = content;
43
+ } else {
44
+ translations = deepMerge(translations, content);
45
+ }
21
46
  } catch {
22
47
  }
23
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-i18n-micro",
3
- "version": "1.14.1",
3
+ "version": "1.15.0",
4
4
  "description": "Nuxt I18n Micro is a lightweight, high-performance internationalization module for Nuxt, designed to handle multi-language support with minimal overhead, fast build times, and efficient runtime performance.",
5
5
  "repository": "s00d/nuxt-i18n-micro",
6
6
  "license": "MIT",
@@ -61,7 +61,7 @@
61
61
  },
62
62
  "dependencies": {
63
63
  "@nuxt/devtools-kit": "^1.4.1",
64
- "@nuxt/kit": "^3.13.0",
64
+ "@nuxt/kit": "^3.13.1",
65
65
  "chokidar": "^3.6.0",
66
66
  "ps-node": "^0.1.6",
67
67
  "sirv": "^2.0.4",
@@ -70,9 +70,9 @@
70
70
  "devDependencies": {
71
71
  "@nuxt/devtools": "^1.4.1",
72
72
  "@nuxt/devtools-ui-kit": "^1.4.1",
73
- "@nuxt/eslint-config": "^0.5.4",
73
+ "@nuxt/eslint-config": "0.5.5",
74
74
  "@nuxt/module-builder": "^0.8.3",
75
- "@nuxt/schema": "^3.13.0",
75
+ "@nuxt/schema": "^3.13.1",
76
76
  "@nuxt/test-utils": "^3.14.1",
77
77
  "@playwright/test": "^1.46.1",
78
78
  "@types/node": "^20.14.11",
@@ -82,7 +82,7 @@
82
82
  "changelogen": "^0.5.5",
83
83
  "eslint": "^8.56.0",
84
84
  "execa": "^9.3.1",
85
- "nuxt": "^3.13.0",
85
+ "nuxt": "^3.13.1",
86
86
  "pidusage": "^3.0.2",
87
87
  "typescript": "latest",
88
88
  "vitepress": "^1.3.4",
@@ -1 +0,0 @@
1
- import{_ as a,o as s,c as i,a as e,t as o,b as u,w as c,d,e as l,p,f as h}from"./D1fvHJQV.js";import{u as f}from"./DxMn4SAe.js";const g=t=>(p("data-v-83de2354"),t=t(),h(),t),b={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},x=g(()=>e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),m={class:"max-w-520px text-center z-20"},y=["textContent"],_=["textContent"],k={class:"w-full flex items-center justify-center"},w={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return f({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[],style:[{children:'*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;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;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:before,:after{--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 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(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: }'}]}),(z,S)=>{const r=l;return s(),i("div",b,[x,e("div",m,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:o(t.statusCode)},null,8,y),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:o(t.description)},null,8,_),e("div",k,[u(r,{to:"/",class:"gradient-border text-md sm:text-xl py-2 px-4 sm:py-3 sm:px-6 cursor-pointer"},{default:c(()=>[d(o(t.backHome),1)]),_:1})])])])}}},N=a(w,[["__scopeId","data-v-83de2354"]]);export{N as default};