next-intl 4.0.1 → 4.0.3

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.
@@ -2,7 +2,9 @@
2
2
 
3
3
  var fs = require('fs');
4
4
  var path = require('path');
5
+ var module$1 = require('module');
5
6
 
7
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
6
8
  function formatMessage(message) {
7
9
  return `\n[next-intl] ${message}\n`;
8
10
  }
@@ -84,6 +86,22 @@ export default messages;`;
84
86
  fs.writeFileSync(declarationPath, createDeclaration(content));
85
87
  }
86
88
 
89
+ // eslint-disable-next-line import/order
90
+ const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('plugin.cjs', document.baseURI).href)));
91
+ const pkg = require$1('next/package.json');
92
+ function compareVersions(version1, version2) {
93
+ const v1Parts = version1.split('.').map(Number);
94
+ const v2Parts = version2.split('.').map(Number);
95
+ for (let i = 0; i < 3; i++) {
96
+ const v1 = v1Parts[i] || 0;
97
+ const v2 = v2Parts[i] || 0;
98
+ if (v1 > v2) return 1;
99
+ if (v1 < v2) return -1;
100
+ }
101
+ return 0;
102
+ }
103
+ const hasStableTurboConfig = compareVersions(pkg.version, '15.3.0') >= 0;
104
+
87
105
  function withExtensions(localPath) {
88
106
  return [`${localPath}.ts`, `${localPath}.tsx`, `${localPath}.js`, `${localPath}.jsx`];
89
107
  }
@@ -126,22 +144,31 @@ function getNextConfig(pluginConfig, nextConfig) {
126
144
  if (pluginConfig.requestConfig?.startsWith('/')) {
127
145
  throwError("Turbopack support for next-intl currently does not support absolute paths, please provide a relative one (e.g. './src/i18n/config.ts').\n\nFound: " + pluginConfig.requestConfig);
128
146
  }
129
-
130
- // `NextConfig['turbo']` is stable in Next.js 15. In case the
131
- // experimental feature is removed in the future, we should
132
- // replace this accordingly in a future major version.
133
- nextIntlConfig.experimental = {
134
- ...nextConfig?.experimental,
135
- turbo: {
136
- ...nextConfig?.experimental?.turbo,
147
+ const resolveAlias = {
148
+ // Turbo aliases don't work with absolute
149
+ // paths (see error handling above)
150
+ 'next-intl/config': resolveI18nPath(pluginConfig.requestConfig)
151
+ };
152
+ if (hasStableTurboConfig && !nextConfig?.experimental?.turbo) {
153
+ nextIntlConfig.turbopack = {
154
+ ...nextConfig?.turbopack,
137
155
  resolveAlias: {
138
- ...nextConfig?.experimental?.turbo?.resolveAlias,
139
- // Turbo aliases don't work with absolute
140
- // paths (see error handling above)
141
- 'next-intl/config': resolveI18nPath(pluginConfig.requestConfig)
156
+ ...nextConfig?.turbopack?.resolveAlias,
157
+ ...resolveAlias
142
158
  }
143
- }
144
- };
159
+ };
160
+ } else {
161
+ nextIntlConfig.experimental = {
162
+ ...nextConfig?.experimental,
163
+ turbo: {
164
+ ...nextConfig?.experimental?.turbo,
165
+ resolveAlias: {
166
+ ...nextConfig?.experimental?.turbo?.resolveAlias,
167
+ ...resolveAlias
168
+ }
169
+ }
170
+ };
171
+ }
145
172
  } else {
146
173
  nextIntlConfig.webpack = function webpack(...[config, options]) {
147
174
  // Webpack requires absolute paths
@@ -154,10 +181,12 @@ function getNextConfig(pluginConfig, nextConfig) {
154
181
  }
155
182
 
156
183
  // Forward config
157
- nextIntlConfig.env = {
158
- ...nextConfig?.env,
159
- _next_intl_trailing_slash: nextConfig?.trailingSlash ? 'true' : undefined
160
- };
184
+ if (nextConfig?.trailingSlash) {
185
+ nextIntlConfig.env = {
186
+ ...nextConfig.env,
187
+ _next_intl_trailing_slash: 'true'
188
+ };
189
+ }
161
190
  return Object.assign({}, nextConfig, nextIntlConfig);
162
191
  }
163
192
 
@@ -1,4 +1,4 @@
1
- import { getSortedPathnames, matchesPathname, normalizeTrailingSlash, getLocalePrefix, templateToRegex, prefixPathname, getLocalizedTemplate } from '../shared/utils.js';
1
+ import { normalizeTrailingSlash, getSortedPathnames, matchesPathname, prefixPathname, getLocalePrefix, templateToRegex, getLocalizedTemplate } from '../shared/utils.js';
2
2
 
3
3
  function getInternalTemplate(pathnames, pathname, locale) {
4
4
  const sortedPathnames = getSortedPathnames(Object.keys(pathnames));
@@ -1,4 +1,4 @@
1
- import { getSortedPathnames, matchesPathname, getLocalizedTemplate, isLocalizableHref, prefixPathname, getLocalePrefix, normalizeTrailingSlash } from '../../shared/utils.js';
1
+ import { getSortedPathnames, matchesPathname, isLocalizableHref, prefixPathname, getLocalizedTemplate, normalizeTrailingSlash, getLocalePrefix } from '../../shared/utils.js';
2
2
 
3
3
  // Minor false positive: A route that has both optional and
4
4
  // required params will allow optional params.
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import hasStableTurboConfig from './hasStableTurboConfig.js';
3
4
  import { throwError } from './utils.js';
4
5
 
5
6
  function withExtensions(localPath) {
@@ -44,22 +45,31 @@ function getNextConfig(pluginConfig, nextConfig) {
44
45
  if (pluginConfig.requestConfig?.startsWith('/')) {
45
46
  throwError("Turbopack support for next-intl currently does not support absolute paths, please provide a relative one (e.g. './src/i18n/config.ts').\n\nFound: " + pluginConfig.requestConfig);
46
47
  }
47
-
48
- // `NextConfig['turbo']` is stable in Next.js 15. In case the
49
- // experimental feature is removed in the future, we should
50
- // replace this accordingly in a future major version.
51
- nextIntlConfig.experimental = {
52
- ...nextConfig?.experimental,
53
- turbo: {
54
- ...nextConfig?.experimental?.turbo,
48
+ const resolveAlias = {
49
+ // Turbo aliases don't work with absolute
50
+ // paths (see error handling above)
51
+ 'next-intl/config': resolveI18nPath(pluginConfig.requestConfig)
52
+ };
53
+ if (hasStableTurboConfig && !nextConfig?.experimental?.turbo) {
54
+ nextIntlConfig.turbopack = {
55
+ ...nextConfig?.turbopack,
55
56
  resolveAlias: {
56
- ...nextConfig?.experimental?.turbo?.resolveAlias,
57
- // Turbo aliases don't work with absolute
58
- // paths (see error handling above)
59
- 'next-intl/config': resolveI18nPath(pluginConfig.requestConfig)
57
+ ...nextConfig?.turbopack?.resolveAlias,
58
+ ...resolveAlias
60
59
  }
61
- }
62
- };
60
+ };
61
+ } else {
62
+ nextIntlConfig.experimental = {
63
+ ...nextConfig?.experimental,
64
+ turbo: {
65
+ ...nextConfig?.experimental?.turbo,
66
+ resolveAlias: {
67
+ ...nextConfig?.experimental?.turbo?.resolveAlias,
68
+ ...resolveAlias
69
+ }
70
+ }
71
+ };
72
+ }
63
73
  } else {
64
74
  nextIntlConfig.webpack = function webpack(...[config, options]) {
65
75
  // Webpack requires absolute paths
@@ -72,10 +82,12 @@ function getNextConfig(pluginConfig, nextConfig) {
72
82
  }
73
83
 
74
84
  // Forward config
75
- nextIntlConfig.env = {
76
- ...nextConfig?.env,
77
- _next_intl_trailing_slash: nextConfig?.trailingSlash ? 'true' : undefined
78
- };
85
+ if (nextConfig?.trailingSlash) {
86
+ nextIntlConfig.env = {
87
+ ...nextConfig.env,
88
+ _next_intl_trailing_slash: 'true'
89
+ };
90
+ }
79
91
  return Object.assign({}, nextConfig, nextIntlConfig);
80
92
  }
81
93
 
@@ -0,0 +1,19 @@
1
+ import { createRequire } from 'module';
2
+
3
+ // eslint-disable-next-line import/order
4
+ const require = createRequire(import.meta.url);
5
+ const pkg = require('next/package.json');
6
+ function compareVersions(version1, version2) {
7
+ const v1Parts = version1.split('.').map(Number);
8
+ const v2Parts = version2.split('.').map(Number);
9
+ for (let i = 0; i < 3; i++) {
10
+ const v1 = v1Parts[i] || 0;
11
+ const v2 = v2Parts[i] || 0;
12
+ if (v1 > v2) return 1;
13
+ if (v1 < v2) return -1;
14
+ }
15
+ return 0;
16
+ }
17
+ const hasStableTurboConfig = compareVersions(pkg.version, '15.3.0') >= 0;
18
+
19
+ export { hasStableTurboConfig as default };
@@ -1,4 +1,4 @@
1
- import { useTranslations as useTranslations$1, useFormatter as useFormatter$1 } from 'use-intl';
1
+ import { useFormatter as useFormatter$1, useTranslations as useTranslations$1 } from 'use-intl';
2
2
  export * from 'use-intl';
3
3
 
4
4
  /**
@@ -2,9 +2,9 @@ import getConfigNow from '../server/react-server/getConfigNow.js';
2
2
  import getFormats from '../server/react-server/getFormats.js';
3
3
  import NextIntlClientProvider from '../shared/NextIntlClientProvider.js';
4
4
  import { jsx } from 'react/jsx-runtime';
5
- import getLocaleCached from '../server/react-server/getLocale.js';
6
- import getMessages from '../server/react-server/getMessages.js';
7
5
  import getTimeZone from '../server/react-server/getTimeZone.js';
6
+ import getMessages from '../server/react-server/getMessages.js';
7
+ import getLocaleCached from '../server/react-server/getLocale.js';
8
8
 
9
9
  async function NextIntlClientProviderServer({
10
10
  formats,
@@ -1,5 +1,5 @@
1
1
  import { cache } from 'react';
2
- import { _createIntlFormatters, _createCache, initializeConfig } from 'use-intl/core';
2
+ import { initializeConfig, _createIntlFormatters, _createCache } from 'use-intl/core';
3
3
  import { isPromise } from '../../shared/utils.js';
4
4
  import { getRequestLocale } from './RequestLocale.js';
5
5
  import getRuntimeConfig from 'next-intl/config';
@@ -2,7 +2,7 @@ export { default as getRequestConfig } from './server/react-server/getRequestCon
2
2
  export { default as getFormatter } from './server/react-server/getFormatter.js';
3
3
  export { default as getNow } from './server/react-server/getNow.js';
4
4
  export { default as getTimeZone } from './server/react-server/getTimeZone.js';
5
- export { default as getTranslations } from './server/react-server/getTranslations.js';
6
5
  export { default as getMessages } from './server/react-server/getMessages.js';
7
6
  export { default as getLocale } from './server/react-server/getLocale.js';
7
+ export { default as getTranslations } from './server/react-server/getTranslations.js';
8
8
  export { setCachedRequestLocale as setRequestLocale } from './server/react-server/RequestLocaleCache.js';
@@ -1 +1 @@
1
- import{getSortedPathnames as e,matchesPathname as t,normalizeTrailingSlash as n,getLocalePrefix as r,templateToRegex as o,prefixPathname as c,getLocalizedTemplate as i}from"../shared/utils.js";function s(n,r,o){const c=e(Object.keys(n));for(const e of c){const c=n[e];if("string"==typeof c){if(t(c,r))return[void 0,e]}else{const s=Object.entries(c),f=s.findIndex((([e])=>e===o));f>0&&s.unshift(s.splice(f,1)[0]);for(const[o]of s){const c=i(n[e],o,e);if(t(c,r))return[o,e]}}}for(const e of Object.keys(n))if(t(e,r))return[void 0,e];return[void 0,void 0]}function f(e,t,r,o){let c="";return c+=h(r,d(t,e)),c=n(c),c}function l(e,t,r){e.endsWith("/")||(e+="/");const o=u(t,r),c=new RegExp(`^(${o.map((([,e])=>e.replaceAll("/","\\/"))).join("|")})/(.*)`,"i"),i=e.match(c);let s=i?"/"+i[2]:e;return"/"!==s&&(s=n(s)),s}function u(e,t,n=!0){const o=e.map((e=>[e,r(e,t)]));return n&&o.sort(((e,t)=>t[1].length-e[1].length)),o}function a(e,t,n,r){const o=u(t,n);r&&o.sort((([e],[t])=>{if(e===r.defaultLocale)return-1;if(t===r.defaultLocale)return 1;const n=r.locales.includes(e),o=r.locales.includes(t);return n&&!o?-1:!n&&o?1:0}));for(const[t,n]of o){let r,o;if(e===n||e.startsWith(n+"/"))r=o=!0;else{const t=e.toLowerCase(),c=n.toLowerCase();(t===c||t.startsWith(c+"/"))&&(r=!1,o=!0)}if(o)return{locale:t,prefix:n,matchedPrefix:e.slice(0,n.length),exact:r}}}function d(e,t){const r=n(t),c=n(e),i=o(c).exec(r);if(!i)return;const s={};for(let e=1;e<i.length;e++){const t=c.match(/\[([^\]]+)\]/g)?.[e-1].replace(/[[\]]/g,"");t&&(s[t]=i[e])}return s}function h(e,t){if(!t)return e;let n=e=e.replace(/\[\[/g,"[").replace(/\]\]/g,"]");return Object.entries(t).forEach((([e,t])=>{n=n.replace(`[${e}]`,t)})),n}function p(e,t,n){let r=e;return t&&(r=c(t,r)),n&&(r+=n),r}function g(e){return e.get("x-forwarded-host")??e.get("host")??void 0}function x(e,t){return t.defaultLocale===e||t.locales.includes(e)}function m(e,t,n){let r;return e&&x(t,e)&&(r=e),r||(r=n.find((e=>e.defaultLocale===t))),r||(r=n.find((e=>e.locales.includes(t)))),r}function j(e,t){return n(t+e)}function L(e){return`/${e}`}function v(e){return e.replace(/\\/g,"%5C").replace(/\/+/g,"/")}export{j as applyBasePath,p as formatPathname,h as formatPathnameTemplate,f as formatTemplatePathname,m as getBestMatchingDomain,g as getHost,s as getInternalTemplate,L as getLocaleAsPrefix,u as getLocalePrefixes,l as getNormalizedPathname,a as getPathnameMatch,d as getRouteParams,x as isLocaleSupportedOnDomain,v as sanitizePathname};
1
+ import{normalizeTrailingSlash as e,getSortedPathnames as t,matchesPathname as n,prefixPathname as r,getLocalePrefix as o,templateToRegex as c,getLocalizedTemplate as i}from"../shared/utils.js";function s(e,r,o){const c=t(Object.keys(e));for(const t of c){const c=e[t];if("string"==typeof c){if(n(c,r))return[void 0,t]}else{const s=Object.entries(c),f=s.findIndex((([e])=>e===o));f>0&&s.unshift(s.splice(f,1)[0]);for(const[o]of s){const c=i(e[t],o,t);if(n(c,r))return[o,t]}}}for(const t of Object.keys(e))if(n(t,r))return[void 0,t];return[void 0,void 0]}function f(t,n,r,o){let c="";return c+=h(r,d(n,t)),c=e(c),c}function l(t,n,r){t.endsWith("/")||(t+="/");const o=u(n,r),c=new RegExp(`^(${o.map((([,e])=>e.replaceAll("/","\\/"))).join("|")})/(.*)`,"i"),i=t.match(c);let s=i?"/"+i[2]:t;return"/"!==s&&(s=e(s)),s}function u(e,t,n=!0){const r=e.map((e=>[e,o(e,t)]));return n&&r.sort(((e,t)=>t[1].length-e[1].length)),r}function a(e,t,n,r){const o=u(t,n);r&&o.sort((([e],[t])=>{if(e===r.defaultLocale)return-1;if(t===r.defaultLocale)return 1;const n=r.locales.includes(e),o=r.locales.includes(t);return n&&!o?-1:!n&&o?1:0}));for(const[t,n]of o){let r,o;if(e===n||e.startsWith(n+"/"))r=o=!0;else{const t=e.toLowerCase(),c=n.toLowerCase();(t===c||t.startsWith(c+"/"))&&(r=!1,o=!0)}if(o)return{locale:t,prefix:n,matchedPrefix:e.slice(0,n.length),exact:r}}}function d(t,n){const r=e(n),o=e(t),i=c(o).exec(r);if(!i)return;const s={};for(let e=1;e<i.length;e++){const t=o.match(/\[([^\]]+)\]/g)?.[e-1].replace(/[[\]]/g,"");t&&(s[t]=i[e])}return s}function h(e,t){if(!t)return e;let n=e=e.replace(/\[\[/g,"[").replace(/\]\]/g,"]");return Object.entries(t).forEach((([e,t])=>{n=n.replace(`[${e}]`,t)})),n}function p(e,t,n){let o=e;return t&&(o=r(t,o)),n&&(o+=n),o}function g(e){return e.get("x-forwarded-host")??e.get("host")??void 0}function x(e,t){return t.defaultLocale===e||t.locales.includes(e)}function m(e,t,n){let r;return e&&x(t,e)&&(r=e),r||(r=n.find((e=>e.defaultLocale===t))),r||(r=n.find((e=>e.locales.includes(t)))),r}function j(t,n){return e(n+t)}function L(e){return`/${e}`}function v(e){return e.replace(/\\/g,"%5C").replace(/\/+/g,"/")}export{j as applyBasePath,p as formatPathname,h as formatPathnameTemplate,f as formatTemplatePathname,m as getBestMatchingDomain,g as getHost,s as getInternalTemplate,L as getLocaleAsPrefix,u as getLocalePrefixes,l as getNormalizedPathname,a as getPathnameMatch,d as getRouteParams,x as isLocaleSupportedOnDomain,v as sanitizePathname};
@@ -1 +1 @@
1
- import{getSortedPathnames as e,matchesPathname as n,getLocalizedTemplate as t,isLocalizableHref as r,prefixPathname as o,getLocalePrefix as a,normalizeTrailingSlash as i}from"../../shared/utils.js";function c(e){return"string"==typeof e?{pathname:e}:e}function s(e){function n(e){return String(e)}const t=new URLSearchParams;for(const[r,o]of Object.entries(e))Array.isArray(o)?o.forEach((e=>{t.append(r,n(e))})):t.set(r,n(o));return"?"+t.toString()}function f({pathname:e,locale:n,params:r,pathnames:o,query:a}){function c(e){let n=o[e];return n||(n=e),n}function f(e,o){let c=t(e,n,o);return r&&Object.entries(r).forEach((([e,n])=>{let t,r;Array.isArray(n)?(t=`(\\[)?\\[...${e}\\](\\])?`,r=n.map((e=>String(e))).join("/")):(t=`\\[${e}\\]`,r=String(n)),c=c.replace(new RegExp(t,"g"),r)})),c=c.replace(/\[\[\.\.\..+\]\]/g,""),c=i(c),a&&(c+=s(a)),c}if("string"==typeof e){return f(c(e),e)}{const{pathname:n,...t}=e;return{...t,pathname:f(c(n),n)}}}function u(r,o,a){const i=e(Object.keys(a)),c=decodeURI(o);for(const e of i){const o=a[e];if("string"==typeof o){if(n(o,c))return e}else if(n(t(o,r,e),c))return e}return o}function l(e,n=window.location.pathname){return"/"===e?n:n.replace(e,"")}function p(e,n,t,i){const{mode:c}=t.localePrefix;let s;return void 0!==i?s=i:r(e)&&("always"===c?s=!0:"as-needed"===c&&(s=t.domains?!t.domains.some((e=>e.defaultLocale===n)):n!==t.defaultLocale)),s?o(a(n,t.localePrefix),e):e}export{p as applyPathnamePrefix,f as compileLocalizedPathname,l as getBasePath,u as getRoute,c as normalizeNameOrNameWithParams,s as serializeSearchParams};
1
+ import{getSortedPathnames as e,matchesPathname as n,isLocalizableHref as t,prefixPathname as r,getLocalizedTemplate as o,normalizeTrailingSlash as a,getLocalePrefix as i}from"../../shared/utils.js";function c(e){return"string"==typeof e?{pathname:e}:e}function s(e){function n(e){return String(e)}const t=new URLSearchParams;for(const[r,o]of Object.entries(e))Array.isArray(o)?o.forEach((e=>{t.append(r,n(e))})):t.set(r,n(o));return"?"+t.toString()}function f({pathname:e,locale:n,params:t,pathnames:r,query:i}){function c(e){let n=r[e];return n||(n=e),n}function f(e,r){let c=o(e,n,r);return t&&Object.entries(t).forEach((([e,n])=>{let t,r;Array.isArray(n)?(t=`(\\[)?\\[...${e}\\](\\])?`,r=n.map((e=>String(e))).join("/")):(t=`\\[${e}\\]`,r=String(n)),c=c.replace(new RegExp(t,"g"),r)})),c=c.replace(/\[\[\.\.\..+\]\]/g,""),c=a(c),i&&(c+=s(i)),c}if("string"==typeof e){return f(c(e),e)}{const{pathname:n,...t}=e;return{...t,pathname:f(c(n),n)}}}function u(t,r,a){const i=e(Object.keys(a)),c=decodeURI(r);for(const e of i){const r=a[e];if("string"==typeof r){if(n(r,c))return e}else if(n(o(r,t,e),c))return e}return r}function l(e,n=window.location.pathname){return"/"===e?n:n.replace(e,"")}function p(e,n,o,a){const{mode:c}=o.localePrefix;let s;return void 0!==a?s=a:t(e)&&("always"===c?s=!0:"as-needed"===c&&(s=o.domains?!o.domains.some((e=>e.defaultLocale===n)):n!==o.defaultLocale)),s?r(i(n,o.localePrefix),e):e}export{p as applyPathnamePrefix,f as compileLocalizedPathname,l as getBasePath,u as getRoute,c as normalizeNameOrNameWithParams,s as serializeSearchParams};
@@ -1 +1 @@
1
- import t from"fs";import n from"path";import{throwError as e}from"./utils.js";function o(t){return[`${t}.ts`,`${t}.tsx`,`${t}.js`,`${t}.jsx`]}function i(i,r){function s(e){return t.existsSync(function(t){const e=[];return r&&e.push(r),e.push(t),n.resolve(...e)}(e))}if(i)return s(i)||e(`Could not find i18n config at ${i}, please provide a valid path.`),i;for(const t of[...o("./i18n/request"),...o("./src/i18n/request")])if(s(t))return t;e("Could not locate request configuration module.\n\nThis path is supported by default: ./(src/)i18n/request.{js,jsx,ts,tsx}\n\nAlternatively, you can specify a custom location in your Next.js config:\n\nconst withNextIntl = createNextIntlPlugin(\n\nAlternatively, you can specify a custom location in your Next.js config:\n\nconst withNextIntl = createNextIntlPlugin(\n './path/to/i18n/request.tsx'\n);")}function r(t,o){const r={};return null!=process.env.TURBOPACK?(t.requestConfig?.startsWith("/")&&e("Turbopack support for next-intl currently does not support absolute paths, please provide a relative one (e.g. './src/i18n/config.ts').\n\nFound: "+t.requestConfig),r.experimental={...o?.experimental,turbo:{...o?.experimental?.turbo,resolveAlias:{...o?.experimental?.turbo?.resolveAlias,"next-intl/config":i(t.requestConfig)}}}):r.webpack=function(...[e,r]){return e.resolve.alias["next-intl/config"]=n.resolve(e.context,i(t.requestConfig,e.context)),"function"==typeof o?.webpack?o.webpack(e,r):e},r.env={...o?.env,_next_intl_trailing_slash:o?.trailingSlash?"true":void 0},Object.assign({},o,r)}export{r as default};
1
+ import t from"fs";import e from"path";import n from"./hasStableTurboConfig.js";import{throwError as o}from"./utils.js";function r(t){return[`${t}.ts`,`${t}.tsx`,`${t}.js`,`${t}.jsx`]}function s(n,s){function i(n){return t.existsSync(function(t){const n=[];return s&&n.push(s),n.push(t),e.resolve(...n)}(n))}if(n)return i(n)||o(`Could not find i18n config at ${n}, please provide a valid path.`),n;for(const t of[...r("./i18n/request"),...r("./src/i18n/request")])if(i(t))return t;o("Could not locate request configuration module.\n\nThis path is supported by default: ./(src/)i18n/request.{js,jsx,ts,tsx}\n\nAlternatively, you can specify a custom location in your Next.js config:\n\nconst withNextIntl = createNextIntlPlugin(\n\nAlternatively, you can specify a custom location in your Next.js config:\n\nconst withNextIntl = createNextIntlPlugin(\n './path/to/i18n/request.tsx'\n);")}function i(t,r){const i={};if(null!=process.env.TURBOPACK){t.requestConfig?.startsWith("/")&&o("Turbopack support for next-intl currently does not support absolute paths, please provide a relative one (e.g. './src/i18n/config.ts').\n\nFound: "+t.requestConfig);const e={"next-intl/config":s(t.requestConfig)};n&&!r?.experimental?.turbo?i.turbopack={...r?.turbopack,resolveAlias:{...r?.turbopack?.resolveAlias,...e}}:i.experimental={...r?.experimental,turbo:{...r?.experimental?.turbo,resolveAlias:{...r?.experimental?.turbo?.resolveAlias,...e}}}}else i.webpack=function(...[n,o]){return n.resolve.alias["next-intl/config"]=e.resolve(n.context,s(t.requestConfig,n.context)),"function"==typeof r?.webpack?r.webpack(n,o):n};return r?.trailingSlash&&(i.env={...r.env,_next_intl_trailing_slash:"true"}),Object.assign({},r,i)}export{i as default};
@@ -0,0 +1 @@
1
+ import{createRequire as t}from"module";const r=function(t,r){const e=t.split(".").map(Number),o=r.split(".").map(Number);for(let t=0;t<3;t++){const r=e[t]||0,n=o[t]||0;if(r>n)return 1;if(r<n)return-1}return 0}(t(import.meta.url)("next/package.json").version,"15.3.0")>=0;export{r as default};
@@ -1 +1 @@
1
- import{useTranslations as r,useFormatter as t}from"use-intl";export*from"use-intl";function o(r,t){return(...r)=>{try{return t(...r)}catch{throw new Error(void 0)}}}const e=o(0,r),n=o(0,t);export{n as useFormatter,e as useTranslations};
1
+ import{useFormatter as r,useTranslations as t}from"use-intl";export*from"use-intl";function o(r,t){return(...r)=>{try{return t(...r)}catch{throw new Error(void 0)}}}const e=o(0,t),n=o(0,r);export{n as useFormatter,e as useTranslations};
@@ -1 +1 @@
1
- import e from"../server/react-server/getConfigNow.js";import r from"../server/react-server/getFormats.js";import t from"../shared/NextIntlClientProvider.js";import{jsx as o}from"react/jsx-runtime";import s from"../server/react-server/getLocale.js";import a from"../server/react-server/getMessages.js";import m from"../server/react-server/getTimeZone.js";async function i({formats:i,locale:n,messages:v,now:f,timeZone:c,...g}){return o(t,{formats:void 0===i?await r():i,locale:n??await s(),messages:void 0===v?await a():v,now:f??await e(),timeZone:c??await m(),...g})}export{i as default};
1
+ import e from"../server/react-server/getConfigNow.js";import r from"../server/react-server/getFormats.js";import t from"../shared/NextIntlClientProvider.js";import{jsx as o}from"react/jsx-runtime";import s from"../server/react-server/getTimeZone.js";import a from"../server/react-server/getMessages.js";import m from"../server/react-server/getLocale.js";async function i({formats:i,locale:n,messages:v,now:f,timeZone:c,...g}){return o(t,{formats:void 0===i?await r():i,locale:n??await m(),messages:void 0===v?await a():v,now:f??await e(),timeZone:c??await s(),...g})}export{i as default};
@@ -1 +1 @@
1
- import{cache as e}from"react";import{_createIntlFormatters as t,_createCache as o,initializeConfig as r}from"use-intl/core";import{isPromise as n}from"../../shared/utils.js";import{getRequestLocale as i}from"./RequestLocale.js";import s from"next-intl/config";const a=e((function(){return Intl.DateTimeFormat().resolvedOptions().timeZone}));const c=e((async function(e,t){let o=e({locale:t,get requestLocale(){return t?Promise.resolve(t):i()}});if(n(o)&&(o=await o),!o.locale)throw new Error("No locale was returned from `getRequestConfig`.\n\nSee https://next-intl.dev/docs/usage/configuration#i18n-request");return o})),m=e(t),l=e(o);const u=e((async function(e){const t=await c(s,e);return{...r(t),_formatters:m(l()),timeZone:t.timeZone||a()}}));export{u as default};
1
+ import{cache as e}from"react";import{initializeConfig as t,_createIntlFormatters as o,_createCache as r}from"use-intl/core";import{isPromise as n}from"../../shared/utils.js";import{getRequestLocale as i}from"./RequestLocale.js";import s from"next-intl/config";const a=e((function(){return Intl.DateTimeFormat().resolvedOptions().timeZone}));const c=e((async function(e,t){let o=e({locale:t,get requestLocale(){return t?Promise.resolve(t):i()}});if(n(o)&&(o=await o),!o.locale)throw new Error("No locale was returned from `getRequestConfig`.\n\nSee https://next-intl.dev/docs/usage/configuration#i18n-request");return o})),m=e(o),l=e(r);const u=e((async function(e){const o=await c(s,e);return{...t(o),_formatters:m(l()),timeZone:o.timeZone||a()}}));export{u as default};
@@ -1 +1 @@
1
- export{default as getRequestConfig}from"./server/react-server/getRequestConfig.js";export{default as getFormatter}from"./server/react-server/getFormatter.js";export{default as getNow}from"./server/react-server/getNow.js";export{default as getTimeZone}from"./server/react-server/getTimeZone.js";export{default as getTranslations}from"./server/react-server/getTranslations.js";export{default as getMessages}from"./server/react-server/getMessages.js";export{default as getLocale}from"./server/react-server/getLocale.js";export{setCachedRequestLocale as setRequestLocale}from"./server/react-server/RequestLocaleCache.js";
1
+ export{default as getRequestConfig}from"./server/react-server/getRequestConfig.js";export{default as getFormatter}from"./server/react-server/getFormatter.js";export{default as getNow}from"./server/react-server/getNow.js";export{default as getTimeZone}from"./server/react-server/getTimeZone.js";export{default as getMessages}from"./server/react-server/getMessages.js";export{default as getLocale}from"./server/react-server/getLocale.js";export{default as getTranslations}from"./server/react-server/getTranslations.js";export{setCachedRequestLocale as setRequestLocale}from"./server/react-server/RequestLocaleCache.js";
@@ -3,138 +3,141 @@ import type { RoutingConfigLocalizedNavigation, RoutingConfigSharedNavigation }
3
3
  import type { DomainsConfig, LocalePrefixMode, Locales, Pathnames } from '../../routing/types.js';
4
4
  export default function createNavigation<const AppLocales extends Locales, const AppLocalePrefixMode extends LocalePrefixMode = 'always', const AppPathnames extends Pathnames<AppLocales> = never, const AppDomains extends DomainsConfig<AppLocales> = never>(routing?: [AppPathnames] extends [never] ? RoutingConfigSharedNavigation<AppLocales, AppLocalePrefixMode, AppDomains> | undefined : RoutingConfigLocalizedNavigation<AppLocales, AppLocalePrefixMode, AppPathnames, AppDomains>): {
5
5
  Link: import("react").ForwardRefExoticComponent<Omit<{
6
- slot?: string | undefined;
6
+ slot?: string | undefined | undefined;
7
7
  style?: import("react").CSSProperties | undefined;
8
- title?: string | undefined;
8
+ title?: string | undefined | undefined;
9
9
  locale?: Locale | undefined;
10
10
  onError?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
11
- children?: import("react").ReactNode | undefined;
11
+ children?: import("react").ReactNode;
12
12
  ref?: import("react").Ref<HTMLAnchorElement> | undefined;
13
13
  replace?: boolean | undefined;
14
- prefix?: string | undefined;
14
+ prefix?: string | undefined | undefined;
15
15
  key?: import("react").Key | null | undefined;
16
16
  as?: (string | import("url").UrlObject) | undefined;
17
17
  scroll?: boolean | undefined;
18
18
  shallow?: boolean | undefined;
19
19
  passHref?: boolean | undefined;
20
- prefetch?: (boolean | null) | undefined;
20
+ prefetch?: boolean | null | undefined;
21
21
  legacyBehavior?: boolean | undefined;
22
22
  onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
23
23
  onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
24
24
  onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
25
+ onNavigate?: ((event: {
26
+ preventDefault: () => void;
27
+ }) => void) | undefined;
25
28
  download?: any;
26
- hrefLang?: string | undefined;
27
- media?: string | undefined;
28
- ping?: string | undefined;
29
+ hrefLang?: string | undefined | undefined;
30
+ media?: string | undefined | undefined;
31
+ ping?: string | undefined | undefined;
29
32
  target?: import("react").HTMLAttributeAnchorTarget | undefined;
30
- type?: string | undefined;
33
+ type?: string | undefined | undefined;
31
34
  referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
32
- defaultChecked?: boolean | undefined;
35
+ defaultChecked?: boolean | undefined | undefined;
33
36
  defaultValue?: string | number | readonly string[] | undefined;
34
- suppressContentEditableWarning?: boolean | undefined;
35
- suppressHydrationWarning?: boolean | undefined;
36
- accessKey?: string | undefined;
37
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
38
- autoFocus?: boolean | undefined;
39
- className?: string | undefined;
37
+ suppressContentEditableWarning?: boolean | undefined | undefined;
38
+ suppressHydrationWarning?: boolean | undefined | undefined;
39
+ accessKey?: string | undefined | undefined;
40
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
41
+ autoFocus?: boolean | undefined | undefined;
42
+ className?: string | undefined | undefined;
40
43
  contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
41
- contextMenu?: string | undefined;
42
- dir?: string | undefined;
44
+ contextMenu?: string | undefined | undefined;
45
+ dir?: string | undefined | undefined;
43
46
  draggable?: (boolean | "true" | "false") | undefined;
44
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
45
- hidden?: boolean | undefined;
46
- id?: string | undefined;
47
- lang?: string | undefined;
48
- nonce?: string | undefined;
47
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
48
+ hidden?: boolean | undefined | undefined;
49
+ id?: string | undefined | undefined;
50
+ lang?: string | undefined | undefined;
51
+ nonce?: string | undefined | undefined;
49
52
  spellCheck?: (boolean | "true" | "false") | undefined;
50
- tabIndex?: number | undefined;
51
- translate?: "yes" | "no" | undefined;
52
- radioGroup?: string | undefined;
53
+ tabIndex?: number | undefined | undefined;
54
+ translate?: "yes" | "no" | undefined | undefined;
55
+ radioGroup?: string | undefined | undefined;
53
56
  role?: import("react").AriaRole | undefined;
54
- about?: string | undefined;
55
- content?: string | undefined;
56
- datatype?: string | undefined;
57
+ about?: string | undefined | undefined;
58
+ content?: string | undefined | undefined;
59
+ datatype?: string | undefined | undefined;
57
60
  inlist?: any;
58
- property?: string | undefined;
59
- rel?: string | undefined;
60
- resource?: string | undefined;
61
- rev?: string | undefined;
62
- typeof?: string | undefined;
63
- vocab?: string | undefined;
64
- autoCorrect?: string | undefined;
65
- autoSave?: string | undefined;
66
- color?: string | undefined;
67
- itemProp?: string | undefined;
68
- itemScope?: boolean | undefined;
69
- itemType?: string | undefined;
70
- itemID?: string | undefined;
71
- itemRef?: string | undefined;
72
- results?: number | undefined;
73
- security?: string | undefined;
74
- unselectable?: "on" | "off" | undefined;
75
- popover?: "" | "auto" | "manual" | undefined;
76
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
77
- popoverTarget?: string | undefined;
78
- inert?: boolean | undefined;
79
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
80
- is?: string | undefined;
61
+ property?: string | undefined | undefined;
62
+ rel?: string | undefined | undefined;
63
+ resource?: string | undefined | undefined;
64
+ rev?: string | undefined | undefined;
65
+ typeof?: string | undefined | undefined;
66
+ vocab?: string | undefined | undefined;
67
+ autoCorrect?: string | undefined | undefined;
68
+ autoSave?: string | undefined | undefined;
69
+ color?: string | undefined | undefined;
70
+ itemProp?: string | undefined | undefined;
71
+ itemScope?: boolean | undefined | undefined;
72
+ itemType?: string | undefined | undefined;
73
+ itemID?: string | undefined | undefined;
74
+ itemRef?: string | undefined | undefined;
75
+ results?: number | undefined | undefined;
76
+ security?: string | undefined | undefined;
77
+ unselectable?: "on" | "off" | undefined | undefined;
78
+ popover?: "" | "auto" | "manual" | undefined | undefined;
79
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
80
+ popoverTarget?: string | undefined | undefined;
81
+ inert?: boolean | undefined | undefined;
82
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
83
+ is?: string | undefined | undefined;
81
84
  tw?: string | undefined;
82
- "aria-activedescendant"?: string | undefined;
85
+ "aria-activedescendant"?: string | undefined | undefined;
83
86
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
84
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
85
- "aria-braillelabel"?: string | undefined;
86
- "aria-brailleroledescription"?: string | undefined;
87
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
88
+ "aria-braillelabel"?: string | undefined | undefined;
89
+ "aria-brailleroledescription"?: string | undefined | undefined;
87
90
  "aria-busy"?: (boolean | "true" | "false") | undefined;
88
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
89
- "aria-colcount"?: number | undefined;
90
- "aria-colindex"?: number | undefined;
91
- "aria-colindextext"?: string | undefined;
92
- "aria-colspan"?: number | undefined;
93
- "aria-controls"?: string | undefined;
94
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
95
- "aria-describedby"?: string | undefined;
96
- "aria-description"?: string | undefined;
97
- "aria-details"?: string | undefined;
91
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
92
+ "aria-colcount"?: number | undefined | undefined;
93
+ "aria-colindex"?: number | undefined | undefined;
94
+ "aria-colindextext"?: string | undefined | undefined;
95
+ "aria-colspan"?: number | undefined | undefined;
96
+ "aria-controls"?: string | undefined | undefined;
97
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
98
+ "aria-describedby"?: string | undefined | undefined;
99
+ "aria-description"?: string | undefined | undefined;
100
+ "aria-details"?: string | undefined | undefined;
98
101
  "aria-disabled"?: (boolean | "true" | "false") | undefined;
99
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
100
- "aria-errormessage"?: string | undefined;
102
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
103
+ "aria-errormessage"?: string | undefined | undefined;
101
104
  "aria-expanded"?: (boolean | "true" | "false") | undefined;
102
- "aria-flowto"?: string | undefined;
105
+ "aria-flowto"?: string | undefined | undefined;
103
106
  "aria-grabbed"?: (boolean | "true" | "false") | undefined;
104
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
107
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
105
108
  "aria-hidden"?: (boolean | "true" | "false") | undefined;
106
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
107
- "aria-keyshortcuts"?: string | undefined;
108
- "aria-label"?: string | undefined;
109
- "aria-labelledby"?: string | undefined;
110
- "aria-level"?: number | undefined;
111
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
109
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
110
+ "aria-keyshortcuts"?: string | undefined | undefined;
111
+ "aria-label"?: string | undefined | undefined;
112
+ "aria-labelledby"?: string | undefined | undefined;
113
+ "aria-level"?: number | undefined | undefined;
114
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
112
115
  "aria-modal"?: (boolean | "true" | "false") | undefined;
113
116
  "aria-multiline"?: (boolean | "true" | "false") | undefined;
114
117
  "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
115
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
116
- "aria-owns"?: string | undefined;
117
- "aria-placeholder"?: string | undefined;
118
- "aria-posinset"?: number | undefined;
119
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
118
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
119
+ "aria-owns"?: string | undefined | undefined;
120
+ "aria-placeholder"?: string | undefined | undefined;
121
+ "aria-posinset"?: number | undefined | undefined;
122
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
120
123
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
121
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
124
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
122
125
  "aria-required"?: (boolean | "true" | "false") | undefined;
123
- "aria-roledescription"?: string | undefined;
124
- "aria-rowcount"?: number | undefined;
125
- "aria-rowindex"?: number | undefined;
126
- "aria-rowindextext"?: string | undefined;
127
- "aria-rowspan"?: number | undefined;
126
+ "aria-roledescription"?: string | undefined | undefined;
127
+ "aria-rowcount"?: number | undefined | undefined;
128
+ "aria-rowindex"?: number | undefined | undefined;
129
+ "aria-rowindextext"?: string | undefined | undefined;
130
+ "aria-rowspan"?: number | undefined | undefined;
128
131
  "aria-selected"?: (boolean | "true" | "false") | undefined;
129
- "aria-setsize"?: number | undefined;
130
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
131
- "aria-valuemax"?: number | undefined;
132
- "aria-valuemin"?: number | undefined;
133
- "aria-valuenow"?: number | undefined;
134
- "aria-valuetext"?: string | undefined;
132
+ "aria-setsize"?: number | undefined | undefined;
133
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
134
+ "aria-valuemax"?: number | undefined | undefined;
135
+ "aria-valuemin"?: number | undefined | undefined;
136
+ "aria-valuenow"?: number | undefined | undefined;
137
+ "aria-valuetext"?: string | undefined | undefined;
135
138
  dangerouslySetInnerHTML?: {
136
139
  __html: string | TrustedHTML;
137
- } | undefined;
140
+ } | undefined | undefined;
138
141
  onCopy?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
139
142
  onCopyCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
140
143
  onCut?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
@@ -4,138 +4,141 @@ export default function createNavigation<const AppLocales extends Locales, const
4
4
  usePathname: () => never;
5
5
  useRouter: () => never;
6
6
  Link: import("react").ForwardRefExoticComponent<Omit<{
7
- slot?: string | undefined;
7
+ slot?: string | undefined | undefined;
8
8
  style?: import("react").CSSProperties | undefined;
9
- title?: string | undefined;
9
+ title?: string | undefined | undefined;
10
10
  locale?: import("use-intl").Locale | undefined;
11
11
  onError?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
12
- children?: import("react").ReactNode | undefined;
12
+ children?: import("react").ReactNode;
13
13
  ref?: import("react").Ref<HTMLAnchorElement> | undefined;
14
14
  replace?: boolean | undefined;
15
- prefix?: string | undefined;
15
+ prefix?: string | undefined | undefined;
16
16
  key?: import("react").Key | null | undefined;
17
17
  as?: (string | import("url").UrlObject) | undefined;
18
18
  scroll?: boolean | undefined;
19
19
  shallow?: boolean | undefined;
20
20
  passHref?: boolean | undefined;
21
- prefetch?: (boolean | null) | undefined;
21
+ prefetch?: boolean | null | undefined;
22
22
  legacyBehavior?: boolean | undefined;
23
23
  onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
24
24
  onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
25
25
  onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
26
+ onNavigate?: ((event: {
27
+ preventDefault: () => void;
28
+ }) => void) | undefined;
26
29
  download?: any;
27
- hrefLang?: string | undefined;
28
- media?: string | undefined;
29
- ping?: string | undefined;
30
+ hrefLang?: string | undefined | undefined;
31
+ media?: string | undefined | undefined;
32
+ ping?: string | undefined | undefined;
30
33
  target?: import("react").HTMLAttributeAnchorTarget | undefined;
31
- type?: string | undefined;
34
+ type?: string | undefined | undefined;
32
35
  referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
33
- defaultChecked?: boolean | undefined;
36
+ defaultChecked?: boolean | undefined | undefined;
34
37
  defaultValue?: string | number | readonly string[] | undefined;
35
- suppressContentEditableWarning?: boolean | undefined;
36
- suppressHydrationWarning?: boolean | undefined;
37
- accessKey?: string | undefined;
38
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
39
- autoFocus?: boolean | undefined;
40
- className?: string | undefined;
38
+ suppressContentEditableWarning?: boolean | undefined | undefined;
39
+ suppressHydrationWarning?: boolean | undefined | undefined;
40
+ accessKey?: string | undefined | undefined;
41
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
42
+ autoFocus?: boolean | undefined | undefined;
43
+ className?: string | undefined | undefined;
41
44
  contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
42
- contextMenu?: string | undefined;
43
- dir?: string | undefined;
45
+ contextMenu?: string | undefined | undefined;
46
+ dir?: string | undefined | undefined;
44
47
  draggable?: (boolean | "true" | "false") | undefined;
45
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
46
- hidden?: boolean | undefined;
47
- id?: string | undefined;
48
- lang?: string | undefined;
49
- nonce?: string | undefined;
48
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
49
+ hidden?: boolean | undefined | undefined;
50
+ id?: string | undefined | undefined;
51
+ lang?: string | undefined | undefined;
52
+ nonce?: string | undefined | undefined;
50
53
  spellCheck?: (boolean | "true" | "false") | undefined;
51
- tabIndex?: number | undefined;
52
- translate?: "yes" | "no" | undefined;
53
- radioGroup?: string | undefined;
54
+ tabIndex?: number | undefined | undefined;
55
+ translate?: "yes" | "no" | undefined | undefined;
56
+ radioGroup?: string | undefined | undefined;
54
57
  role?: import("react").AriaRole | undefined;
55
- about?: string | undefined;
56
- content?: string | undefined;
57
- datatype?: string | undefined;
58
+ about?: string | undefined | undefined;
59
+ content?: string | undefined | undefined;
60
+ datatype?: string | undefined | undefined;
58
61
  inlist?: any;
59
- property?: string | undefined;
60
- rel?: string | undefined;
61
- resource?: string | undefined;
62
- rev?: string | undefined;
63
- typeof?: string | undefined;
64
- vocab?: string | undefined;
65
- autoCorrect?: string | undefined;
66
- autoSave?: string | undefined;
67
- color?: string | undefined;
68
- itemProp?: string | undefined;
69
- itemScope?: boolean | undefined;
70
- itemType?: string | undefined;
71
- itemID?: string | undefined;
72
- itemRef?: string | undefined;
73
- results?: number | undefined;
74
- security?: string | undefined;
75
- unselectable?: "on" | "off" | undefined;
76
- popover?: "" | "auto" | "manual" | undefined;
77
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
78
- popoverTarget?: string | undefined;
79
- inert?: boolean | undefined;
80
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
81
- is?: string | undefined;
62
+ property?: string | undefined | undefined;
63
+ rel?: string | undefined | undefined;
64
+ resource?: string | undefined | undefined;
65
+ rev?: string | undefined | undefined;
66
+ typeof?: string | undefined | undefined;
67
+ vocab?: string | undefined | undefined;
68
+ autoCorrect?: string | undefined | undefined;
69
+ autoSave?: string | undefined | undefined;
70
+ color?: string | undefined | undefined;
71
+ itemProp?: string | undefined | undefined;
72
+ itemScope?: boolean | undefined | undefined;
73
+ itemType?: string | undefined | undefined;
74
+ itemID?: string | undefined | undefined;
75
+ itemRef?: string | undefined | undefined;
76
+ results?: number | undefined | undefined;
77
+ security?: string | undefined | undefined;
78
+ unselectable?: "on" | "off" | undefined | undefined;
79
+ popover?: "" | "auto" | "manual" | undefined | undefined;
80
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
81
+ popoverTarget?: string | undefined | undefined;
82
+ inert?: boolean | undefined | undefined;
83
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
84
+ is?: string | undefined | undefined;
82
85
  tw?: string | undefined;
83
- "aria-activedescendant"?: string | undefined;
86
+ "aria-activedescendant"?: string | undefined | undefined;
84
87
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
85
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
86
- "aria-braillelabel"?: string | undefined;
87
- "aria-brailleroledescription"?: string | undefined;
88
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
89
+ "aria-braillelabel"?: string | undefined | undefined;
90
+ "aria-brailleroledescription"?: string | undefined | undefined;
88
91
  "aria-busy"?: (boolean | "true" | "false") | undefined;
89
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
90
- "aria-colcount"?: number | undefined;
91
- "aria-colindex"?: number | undefined;
92
- "aria-colindextext"?: string | undefined;
93
- "aria-colspan"?: number | undefined;
94
- "aria-controls"?: string | undefined;
95
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
96
- "aria-describedby"?: string | undefined;
97
- "aria-description"?: string | undefined;
98
- "aria-details"?: string | undefined;
92
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
93
+ "aria-colcount"?: number | undefined | undefined;
94
+ "aria-colindex"?: number | undefined | undefined;
95
+ "aria-colindextext"?: string | undefined | undefined;
96
+ "aria-colspan"?: number | undefined | undefined;
97
+ "aria-controls"?: string | undefined | undefined;
98
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
99
+ "aria-describedby"?: string | undefined | undefined;
100
+ "aria-description"?: string | undefined | undefined;
101
+ "aria-details"?: string | undefined | undefined;
99
102
  "aria-disabled"?: (boolean | "true" | "false") | undefined;
100
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
101
- "aria-errormessage"?: string | undefined;
103
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
104
+ "aria-errormessage"?: string | undefined | undefined;
102
105
  "aria-expanded"?: (boolean | "true" | "false") | undefined;
103
- "aria-flowto"?: string | undefined;
106
+ "aria-flowto"?: string | undefined | undefined;
104
107
  "aria-grabbed"?: (boolean | "true" | "false") | undefined;
105
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
108
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
106
109
  "aria-hidden"?: (boolean | "true" | "false") | undefined;
107
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
108
- "aria-keyshortcuts"?: string | undefined;
109
- "aria-label"?: string | undefined;
110
- "aria-labelledby"?: string | undefined;
111
- "aria-level"?: number | undefined;
112
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
110
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
111
+ "aria-keyshortcuts"?: string | undefined | undefined;
112
+ "aria-label"?: string | undefined | undefined;
113
+ "aria-labelledby"?: string | undefined | undefined;
114
+ "aria-level"?: number | undefined | undefined;
115
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
113
116
  "aria-modal"?: (boolean | "true" | "false") | undefined;
114
117
  "aria-multiline"?: (boolean | "true" | "false") | undefined;
115
118
  "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
116
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
117
- "aria-owns"?: string | undefined;
118
- "aria-placeholder"?: string | undefined;
119
- "aria-posinset"?: number | undefined;
120
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
119
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
120
+ "aria-owns"?: string | undefined | undefined;
121
+ "aria-placeholder"?: string | undefined | undefined;
122
+ "aria-posinset"?: number | undefined | undefined;
123
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
121
124
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
122
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
125
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
123
126
  "aria-required"?: (boolean | "true" | "false") | undefined;
124
- "aria-roledescription"?: string | undefined;
125
- "aria-rowcount"?: number | undefined;
126
- "aria-rowindex"?: number | undefined;
127
- "aria-rowindextext"?: string | undefined;
128
- "aria-rowspan"?: number | undefined;
127
+ "aria-roledescription"?: string | undefined | undefined;
128
+ "aria-rowcount"?: number | undefined | undefined;
129
+ "aria-rowindex"?: number | undefined | undefined;
130
+ "aria-rowindextext"?: string | undefined | undefined;
131
+ "aria-rowspan"?: number | undefined | undefined;
129
132
  "aria-selected"?: (boolean | "true" | "false") | undefined;
130
- "aria-setsize"?: number | undefined;
131
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
132
- "aria-valuemax"?: number | undefined;
133
- "aria-valuemin"?: number | undefined;
134
- "aria-valuenow"?: number | undefined;
135
- "aria-valuetext"?: string | undefined;
133
+ "aria-setsize"?: number | undefined | undefined;
134
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
135
+ "aria-valuemax"?: number | undefined | undefined;
136
+ "aria-valuemin"?: number | undefined | undefined;
137
+ "aria-valuenow"?: number | undefined | undefined;
138
+ "aria-valuetext"?: string | undefined | undefined;
136
139
  dangerouslySetInnerHTML?: {
137
140
  __html: string | TrustedHTML;
138
- } | undefined;
141
+ } | undefined | undefined;
139
142
  onCopy?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
140
143
  onCopyCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
141
144
  onCut?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
@@ -22,138 +22,141 @@ export default function createSharedNavigationFns<const AppLocales extends Local
22
22
  alternateLinks: NonNullable<boolean | undefined>;
23
23
  };
24
24
  Link: import("react").ForwardRefExoticComponent<Omit<{
25
- slot?: string | undefined;
25
+ slot?: string | undefined | undefined;
26
26
  style?: import("react").CSSProperties | undefined;
27
- title?: string | undefined;
27
+ title?: string | undefined | undefined;
28
28
  locale?: Locale | undefined;
29
29
  onError?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
30
- children?: import("react").ReactNode | undefined;
30
+ children?: import("react").ReactNode;
31
31
  ref?: import("react").Ref<HTMLAnchorElement> | undefined;
32
32
  replace?: boolean | undefined;
33
- prefix?: string | undefined;
33
+ prefix?: string | undefined | undefined;
34
34
  key?: import("react").Key | null | undefined;
35
35
  as?: (string | import("url").UrlObject) | undefined;
36
36
  scroll?: boolean | undefined;
37
37
  shallow?: boolean | undefined;
38
38
  passHref?: boolean | undefined;
39
- prefetch?: (boolean | null) | undefined;
39
+ prefetch?: boolean | null | undefined;
40
40
  legacyBehavior?: boolean | undefined;
41
41
  onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
42
42
  onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
43
43
  onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
44
+ onNavigate?: ((event: {
45
+ preventDefault: () => void;
46
+ }) => void) | undefined;
44
47
  download?: any;
45
- hrefLang?: string | undefined;
46
- media?: string | undefined;
47
- ping?: string | undefined;
48
+ hrefLang?: string | undefined | undefined;
49
+ media?: string | undefined | undefined;
50
+ ping?: string | undefined | undefined;
48
51
  target?: import("react").HTMLAttributeAnchorTarget | undefined;
49
- type?: string | undefined;
52
+ type?: string | undefined | undefined;
50
53
  referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
51
- defaultChecked?: boolean | undefined;
54
+ defaultChecked?: boolean | undefined | undefined;
52
55
  defaultValue?: string | number | readonly string[] | undefined;
53
- suppressContentEditableWarning?: boolean | undefined;
54
- suppressHydrationWarning?: boolean | undefined;
55
- accessKey?: string | undefined;
56
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
57
- autoFocus?: boolean | undefined;
58
- className?: string | undefined;
56
+ suppressContentEditableWarning?: boolean | undefined | undefined;
57
+ suppressHydrationWarning?: boolean | undefined | undefined;
58
+ accessKey?: string | undefined | undefined;
59
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
60
+ autoFocus?: boolean | undefined | undefined;
61
+ className?: string | undefined | undefined;
59
62
  contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
60
- contextMenu?: string | undefined;
61
- dir?: string | undefined;
63
+ contextMenu?: string | undefined | undefined;
64
+ dir?: string | undefined | undefined;
62
65
  draggable?: (boolean | "true" | "false") | undefined;
63
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
64
- hidden?: boolean | undefined;
65
- id?: string | undefined;
66
- lang?: string | undefined;
67
- nonce?: string | undefined;
66
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
67
+ hidden?: boolean | undefined | undefined;
68
+ id?: string | undefined | undefined;
69
+ lang?: string | undefined | undefined;
70
+ nonce?: string | undefined | undefined;
68
71
  spellCheck?: (boolean | "true" | "false") | undefined;
69
- tabIndex?: number | undefined;
70
- translate?: "yes" | "no" | undefined;
71
- radioGroup?: string | undefined;
72
+ tabIndex?: number | undefined | undefined;
73
+ translate?: "yes" | "no" | undefined | undefined;
74
+ radioGroup?: string | undefined | undefined;
72
75
  role?: import("react").AriaRole | undefined;
73
- about?: string | undefined;
74
- content?: string | undefined;
75
- datatype?: string | undefined;
76
+ about?: string | undefined | undefined;
77
+ content?: string | undefined | undefined;
78
+ datatype?: string | undefined | undefined;
76
79
  inlist?: any;
77
- property?: string | undefined;
78
- rel?: string | undefined;
79
- resource?: string | undefined;
80
- rev?: string | undefined;
81
- typeof?: string | undefined;
82
- vocab?: string | undefined;
83
- autoCorrect?: string | undefined;
84
- autoSave?: string | undefined;
85
- color?: string | undefined;
86
- itemProp?: string | undefined;
87
- itemScope?: boolean | undefined;
88
- itemType?: string | undefined;
89
- itemID?: string | undefined;
90
- itemRef?: string | undefined;
91
- results?: number | undefined;
92
- security?: string | undefined;
93
- unselectable?: "on" | "off" | undefined;
94
- popover?: "" | "auto" | "manual" | undefined;
95
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
96
- popoverTarget?: string | undefined;
97
- inert?: boolean | undefined;
98
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
99
- is?: string | undefined;
80
+ property?: string | undefined | undefined;
81
+ rel?: string | undefined | undefined;
82
+ resource?: string | undefined | undefined;
83
+ rev?: string | undefined | undefined;
84
+ typeof?: string | undefined | undefined;
85
+ vocab?: string | undefined | undefined;
86
+ autoCorrect?: string | undefined | undefined;
87
+ autoSave?: string | undefined | undefined;
88
+ color?: string | undefined | undefined;
89
+ itemProp?: string | undefined | undefined;
90
+ itemScope?: boolean | undefined | undefined;
91
+ itemType?: string | undefined | undefined;
92
+ itemID?: string | undefined | undefined;
93
+ itemRef?: string | undefined | undefined;
94
+ results?: number | undefined | undefined;
95
+ security?: string | undefined | undefined;
96
+ unselectable?: "on" | "off" | undefined | undefined;
97
+ popover?: "" | "auto" | "manual" | undefined | undefined;
98
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
99
+ popoverTarget?: string | undefined | undefined;
100
+ inert?: boolean | undefined | undefined;
101
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
102
+ is?: string | undefined | undefined;
100
103
  tw?: string | undefined;
101
- "aria-activedescendant"?: string | undefined;
104
+ "aria-activedescendant"?: string | undefined | undefined;
102
105
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
103
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
104
- "aria-braillelabel"?: string | undefined;
105
- "aria-brailleroledescription"?: string | undefined;
106
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
107
+ "aria-braillelabel"?: string | undefined | undefined;
108
+ "aria-brailleroledescription"?: string | undefined | undefined;
106
109
  "aria-busy"?: (boolean | "true" | "false") | undefined;
107
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
108
- "aria-colcount"?: number | undefined;
109
- "aria-colindex"?: number | undefined;
110
- "aria-colindextext"?: string | undefined;
111
- "aria-colspan"?: number | undefined;
112
- "aria-controls"?: string | undefined;
113
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
114
- "aria-describedby"?: string | undefined;
115
- "aria-description"?: string | undefined;
116
- "aria-details"?: string | undefined;
110
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
111
+ "aria-colcount"?: number | undefined | undefined;
112
+ "aria-colindex"?: number | undefined | undefined;
113
+ "aria-colindextext"?: string | undefined | undefined;
114
+ "aria-colspan"?: number | undefined | undefined;
115
+ "aria-controls"?: string | undefined | undefined;
116
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
117
+ "aria-describedby"?: string | undefined | undefined;
118
+ "aria-description"?: string | undefined | undefined;
119
+ "aria-details"?: string | undefined | undefined;
117
120
  "aria-disabled"?: (boolean | "true" | "false") | undefined;
118
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
119
- "aria-errormessage"?: string | undefined;
121
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
122
+ "aria-errormessage"?: string | undefined | undefined;
120
123
  "aria-expanded"?: (boolean | "true" | "false") | undefined;
121
- "aria-flowto"?: string | undefined;
124
+ "aria-flowto"?: string | undefined | undefined;
122
125
  "aria-grabbed"?: (boolean | "true" | "false") | undefined;
123
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
126
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
124
127
  "aria-hidden"?: (boolean | "true" | "false") | undefined;
125
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
126
- "aria-keyshortcuts"?: string | undefined;
127
- "aria-label"?: string | undefined;
128
- "aria-labelledby"?: string | undefined;
129
- "aria-level"?: number | undefined;
130
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
128
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
129
+ "aria-keyshortcuts"?: string | undefined | undefined;
130
+ "aria-label"?: string | undefined | undefined;
131
+ "aria-labelledby"?: string | undefined | undefined;
132
+ "aria-level"?: number | undefined | undefined;
133
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
131
134
  "aria-modal"?: (boolean | "true" | "false") | undefined;
132
135
  "aria-multiline"?: (boolean | "true" | "false") | undefined;
133
136
  "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
134
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
135
- "aria-owns"?: string | undefined;
136
- "aria-placeholder"?: string | undefined;
137
- "aria-posinset"?: number | undefined;
138
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
137
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
138
+ "aria-owns"?: string | undefined | undefined;
139
+ "aria-placeholder"?: string | undefined | undefined;
140
+ "aria-posinset"?: number | undefined | undefined;
141
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
139
142
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
140
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
143
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
141
144
  "aria-required"?: (boolean | "true" | "false") | undefined;
142
- "aria-roledescription"?: string | undefined;
143
- "aria-rowcount"?: number | undefined;
144
- "aria-rowindex"?: number | undefined;
145
- "aria-rowindextext"?: string | undefined;
146
- "aria-rowspan"?: number | undefined;
145
+ "aria-roledescription"?: string | undefined | undefined;
146
+ "aria-rowcount"?: number | undefined | undefined;
147
+ "aria-rowindex"?: number | undefined | undefined;
148
+ "aria-rowindextext"?: string | undefined | undefined;
149
+ "aria-rowspan"?: number | undefined | undefined;
147
150
  "aria-selected"?: (boolean | "true" | "false") | undefined;
148
- "aria-setsize"?: number | undefined;
149
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
150
- "aria-valuemax"?: number | undefined;
151
- "aria-valuemin"?: number | undefined;
152
- "aria-valuenow"?: number | undefined;
153
- "aria-valuetext"?: string | undefined;
151
+ "aria-setsize"?: number | undefined | undefined;
152
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
153
+ "aria-valuemax"?: number | undefined | undefined;
154
+ "aria-valuemin"?: number | undefined | undefined;
155
+ "aria-valuenow"?: number | undefined | undefined;
156
+ "aria-valuetext"?: string | undefined | undefined;
154
157
  dangerouslySetInnerHTML?: {
155
158
  __html: string | TrustedHTML;
156
- } | undefined;
159
+ } | undefined | undefined;
157
160
  onCopy?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
158
161
  onCopyCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
159
162
  onCut?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
@@ -0,0 +1,2 @@
1
+ declare const hasStableTurboConfig: boolean;
2
+ export default hasStableTurboConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-intl",
3
- "version": "4.0.1",
3
+ "version": "4.0.3",
4
4
  "sideEffects": false,
5
5
  "author": "Jan Amann <jan@amann.work>",
6
6
  "funding": [
@@ -112,7 +112,7 @@
112
112
  "dependencies": {
113
113
  "@formatjs/intl-localematcher": "^0.5.4",
114
114
  "negotiator": "^1.0.0",
115
- "use-intl": "^4.0.1"
115
+ "use-intl": "^4.0.3"
116
116
  },
117
117
  "peerDependencies": {
118
118
  "next": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0",
@@ -124,5 +124,5 @@
124
124
  "optional": true
125
125
  }
126
126
  },
127
- "gitHead": "33b050e457b76aad520a7f34525562089c85d716"
127
+ "gitHead": "19c27a23384fdf746fde30bf3919c2fd8c0fd568"
128
128
  }