@authon/js 0.4.2 → 0.5.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.
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ var AuthonMfaRequiredError = class extends Error {
8
8
  }
9
9
  };
10
10
 
11
- // ../shared/dist/index.js
11
+ // ../../node_modules/.pnpm/@authon+shared@0.3.0/node_modules/@authon/shared/dist/index.js
12
12
  var PROVIDER_DISPLAY_NAMES = {
13
13
  google: "Google",
14
14
  apple: "Apple",
@@ -71,6 +71,394 @@ function getProviderButtonConfig(provider) {
71
71
  };
72
72
  }
73
73
 
74
+ // src/i18n.ts
75
+ var translations = {
76
+ en: {
77
+ welcomeBack: "Welcome back",
78
+ createAccount: "Create your account",
79
+ alreadyHaveAccount: "Already have an account?",
80
+ dontHaveAccount: "Don't have an account?",
81
+ signIn: "Sign in",
82
+ signUp: "Sign up",
83
+ or: "or",
84
+ emailAddress: "Email address",
85
+ password: "Password",
86
+ passwordHint: "Must contain uppercase, lowercase, and a number (min 8 chars)",
87
+ continueWith: "Continue with",
88
+ connectWallet: "Connect Wallet",
89
+ magicLink: "Continue with Magic Link",
90
+ passkey: "Sign in with Passkey",
91
+ securedBy: "Secured by",
92
+ backToSignIn: "Back to sign in"
93
+ },
94
+ ko: {
95
+ welcomeBack: "\uB2E4\uC2DC \uC624\uC2E0 \uAC78 \uD658\uC601\uD569\uB2C8\uB2E4",
96
+ createAccount: "\uACC4\uC815 \uB9CC\uB4E4\uAE30",
97
+ alreadyHaveAccount: "\uC774\uBBF8 \uACC4\uC815\uC774 \uC788\uC73C\uC2E0\uAC00\uC694?",
98
+ dontHaveAccount: "\uACC4\uC815\uC774 \uC5C6\uC73C\uC2E0\uAC00\uC694?",
99
+ signIn: "\uB85C\uADF8\uC778",
100
+ signUp: "\uD68C\uC6D0\uAC00\uC785",
101
+ or: "\uB610\uB294",
102
+ emailAddress: "\uC774\uBA54\uC77C \uC8FC\uC18C",
103
+ password: "\uBE44\uBC00\uBC88\uD638",
104
+ passwordHint: "\uB300\uBB38\uC790, \uC18C\uBB38\uC790, \uC22B\uC790 \uD3EC\uD568 (\uCD5C\uC18C 8\uC790)",
105
+ continueWith: "(\uC73C)\uB85C \uACC4\uC18D\uD558\uAE30",
106
+ connectWallet: "\uC9C0\uAC11 \uC5F0\uACB0",
107
+ magicLink: "\uB9E4\uC9C1 \uB9C1\uD06C\uB85C \uACC4\uC18D\uD558\uAE30",
108
+ passkey: "\uD328\uC2A4\uD0A4\uB85C \uB85C\uADF8\uC778",
109
+ securedBy: "\uBCF4\uC548 \uC81C\uACF5",
110
+ backToSignIn: "\uB85C\uADF8\uC778\uC73C\uB85C \uB3CC\uC544\uAC00\uAE30"
111
+ },
112
+ ja: {
113
+ welcomeBack: "\u304A\u304B\u3048\u308A\u306A\u3055\u3044",
114
+ createAccount: "\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F5C\u6210",
115
+ alreadyHaveAccount: "\u3059\u3067\u306B\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u304A\u6301\u3061\u3067\u3059\u304B\uFF1F",
116
+ dontHaveAccount: "\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u304A\u6301\u3061\u3067\u306A\u3044\u3067\u3059\u304B\uFF1F",
117
+ signIn: "\u30ED\u30B0\u30A4\u30F3",
118
+ signUp: "\u65B0\u898F\u767B\u9332",
119
+ or: "\u307E\u305F\u306F",
120
+ emailAddress: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",
121
+ password: "\u30D1\u30B9\u30EF\u30FC\u30C9",
122
+ passwordHint: "\u5927\u6587\u5B57\u3001\u5C0F\u6587\u5B57\u3001\u6570\u5B57\u3092\u542B\u3080\uFF088\u6587\u5B57\u4EE5\u4E0A\uFF09",
123
+ continueWith: "\u3067\u7D9A\u884C",
124
+ connectWallet: "\u30A6\u30A9\u30EC\u30C3\u30C8\u63A5\u7D9A",
125
+ magicLink: "\u30DE\u30B8\u30C3\u30AF\u30EA\u30F3\u30AF\u3067\u7D9A\u884C",
126
+ passkey: "\u30D1\u30B9\u30AD\u30FC\u3067\u30ED\u30B0\u30A4\u30F3",
127
+ securedBy: "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u63D0\u4F9B",
128
+ backToSignIn: "\u30ED\u30B0\u30A4\u30F3\u306B\u623B\u308B"
129
+ },
130
+ "zh-CN": {
131
+ welcomeBack: "\u6B22\u8FCE\u56DE\u6765",
132
+ createAccount: "\u521B\u5EFA\u8D26\u6237",
133
+ alreadyHaveAccount: "\u5DF2\u6709\u8D26\u6237\uFF1F",
134
+ dontHaveAccount: "\u6CA1\u6709\u8D26\u6237\uFF1F",
135
+ signIn: "\u767B\u5F55",
136
+ signUp: "\u6CE8\u518C",
137
+ or: "\u6216",
138
+ emailAddress: "\u90AE\u7BB1\u5730\u5740",
139
+ password: "\u5BC6\u7801",
140
+ passwordHint: "\u9700\u5305\u542B\u5927\u5199\u3001\u5C0F\u5199\u5B57\u6BCD\u548C\u6570\u5B57\uFF08\u81F3\u5C118\u4F4D\uFF09",
141
+ continueWith: "\u7EE7\u7EED\u4F7F\u7528",
142
+ connectWallet: "\u8FDE\u63A5\u94B1\u5305",
143
+ magicLink: "\u4F7F\u7528\u9B54\u6CD5\u94FE\u63A5\u7EE7\u7EED",
144
+ passkey: "\u4F7F\u7528\u901A\u884C\u5BC6\u94A5\u767B\u5F55",
145
+ securedBy: "\u5B89\u5168\u4FDD\u969C",
146
+ backToSignIn: "\u8FD4\u56DE\u767B\u5F55"
147
+ },
148
+ "zh-TW": {
149
+ welcomeBack: "\u6B61\u8FCE\u56DE\u4F86",
150
+ createAccount: "\u5EFA\u7ACB\u5E33\u6236",
151
+ alreadyHaveAccount: "\u5DF2\u6709\u5E33\u6236\uFF1F",
152
+ dontHaveAccount: "\u6C92\u6709\u5E33\u6236\uFF1F",
153
+ signIn: "\u767B\u5165",
154
+ signUp: "\u8A3B\u518A",
155
+ or: "\u6216",
156
+ emailAddress: "\u96FB\u5B50\u90F5\u4EF6",
157
+ password: "\u5BC6\u78BC",
158
+ passwordHint: "\u9700\u5305\u542B\u5927\u5BEB\u3001\u5C0F\u5BEB\u5B57\u6BCD\u548C\u6578\u5B57\uFF08\u81F3\u5C118\u4F4D\uFF09",
159
+ continueWith: "\u7E7C\u7E8C\u4F7F\u7528",
160
+ connectWallet: "\u9023\u63A5\u9322\u5305",
161
+ magicLink: "\u4F7F\u7528\u9B54\u6CD5\u9023\u7D50\u7E7C\u7E8C",
162
+ passkey: "\u4F7F\u7528\u901A\u884C\u91D1\u9470\u767B\u5165",
163
+ securedBy: "\u5B89\u5168\u4FDD\u969C",
164
+ backToSignIn: "\u8FD4\u56DE\u767B\u5165"
165
+ },
166
+ "pt-BR": {
167
+ welcomeBack: "Bem-vindo de volta",
168
+ createAccount: "Crie sua conta",
169
+ alreadyHaveAccount: "Ja tem uma conta?",
170
+ dontHaveAccount: "Nao tem uma conta?",
171
+ signIn: "Entrar",
172
+ signUp: "Cadastrar",
173
+ or: "ou",
174
+ emailAddress: "Endereco de e-mail",
175
+ password: "Senha",
176
+ passwordHint: "Deve conter maiusculas, minusculas e numeros (min 8 caracteres)",
177
+ continueWith: "Continuar com",
178
+ connectWallet: "Conectar carteira",
179
+ magicLink: "Continuar com Magic Link",
180
+ passkey: "Entrar com Passkey",
181
+ securedBy: "Protegido por",
182
+ backToSignIn: "Voltar ao login"
183
+ },
184
+ es: {
185
+ welcomeBack: "Bienvenido de nuevo",
186
+ createAccount: "Crea tu cuenta",
187
+ alreadyHaveAccount: "Ya tienes una cuenta?",
188
+ dontHaveAccount: "No tienes una cuenta?",
189
+ signIn: "Iniciar sesion",
190
+ signUp: "Registrarse",
191
+ or: "o",
192
+ emailAddress: "Correo electronico",
193
+ password: "Contrasena",
194
+ passwordHint: "Debe contener mayusculas, minusculas y numeros (min 8 caracteres)",
195
+ continueWith: "Continuar con",
196
+ connectWallet: "Conectar billetera",
197
+ magicLink: "Continuar con Magic Link",
198
+ passkey: "Iniciar con Passkey",
199
+ securedBy: "Protegido por",
200
+ backToSignIn: "Volver al inicio de sesion"
201
+ },
202
+ de: {
203
+ welcomeBack: "Willkommen zuruck",
204
+ createAccount: "Konto erstellen",
205
+ alreadyHaveAccount: "Bereits ein Konto?",
206
+ dontHaveAccount: "Noch kein Konto?",
207
+ signIn: "Anmelden",
208
+ signUp: "Registrieren",
209
+ or: "oder",
210
+ emailAddress: "E-Mail-Adresse",
211
+ password: "Passwort",
212
+ passwordHint: "Gross-/Kleinbuchstaben und Zahl erforderlich (mind. 8 Zeichen)",
213
+ continueWith: "Weiter mit",
214
+ connectWallet: "Wallet verbinden",
215
+ magicLink: "Weiter mit Magic Link",
216
+ passkey: "Mit Passkey anmelden",
217
+ securedBy: "Gesichert durch",
218
+ backToSignIn: "Zuruck zur Anmeldung"
219
+ },
220
+ fr: {
221
+ welcomeBack: "Bon retour",
222
+ createAccount: "Creez votre compte",
223
+ alreadyHaveAccount: "Vous avez deja un compte ?",
224
+ dontHaveAccount: "Vous n'avez pas de compte ?",
225
+ signIn: "Se connecter",
226
+ signUp: "S'inscrire",
227
+ or: "ou",
228
+ emailAddress: "Adresse e-mail",
229
+ password: "Mot de passe",
230
+ passwordHint: "Doit contenir majuscules, minuscules et chiffres (min 8 caracteres)",
231
+ continueWith: "Continuer avec",
232
+ connectWallet: "Connecter le portefeuille",
233
+ magicLink: "Continuer avec Magic Link",
234
+ passkey: "Se connecter avec Passkey",
235
+ securedBy: "Securise par",
236
+ backToSignIn: "Retour a la connexion"
237
+ },
238
+ hi: {
239
+ welcomeBack: "\u0935\u093E\u092A\u0938\u0940 \u092A\u0930 \u0938\u094D\u0935\u093E\u0917\u0924 \u0939\u0948",
240
+ createAccount: "\u0905\u092A\u0928\u093E \u0916\u093E\u0924\u093E \u092C\u0928\u093E\u090F\u0902",
241
+ alreadyHaveAccount: "\u092A\u0939\u0932\u0947 \u0938\u0947 \u0916\u093E\u0924\u093E \u0939\u0948?",
242
+ dontHaveAccount: "\u0916\u093E\u0924\u093E \u0928\u0939\u0940\u0902 \u0939\u0948?",
243
+ signIn: "\u0938\u093E\u0907\u0928 \u0907\u0928",
244
+ signUp: "\u0938\u093E\u0907\u0928 \u0905\u092A",
245
+ or: "\u092F\u093E",
246
+ emailAddress: "\u0908\u092E\u0947\u0932 \u092A\u0924\u093E",
247
+ password: "\u092A\u093E\u0938\u0935\u0930\u094D\u0921",
248
+ passwordHint: "\u092C\u0921\u093C\u0947, \u091B\u094B\u091F\u0947 \u0905\u0915\u094D\u0937\u0930 \u0914\u0930 \u0938\u0902\u0916\u094D\u092F\u093E \u0906\u0935\u0936\u094D\u092F\u0915 (\u0915\u092E \u0938\u0947 \u0915\u092E 8 \u0905\u0915\u094D\u0937\u0930)",
249
+ continueWith: "\u0938\u0947 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902",
250
+ connectWallet: "\u0935\u0949\u0932\u0947\u091F \u0915\u0928\u0947\u0915\u094D\u091F \u0915\u0930\u0947\u0902",
251
+ magicLink: "\u092E\u0948\u091C\u093F\u0915 \u0932\u093F\u0902\u0915 \u0938\u0947 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902",
252
+ passkey: "\u092A\u093E\u0938\u0915\u0940 \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928",
253
+ securedBy: "\u0938\u0941\u0930\u0915\u094D\u0937\u093E \u092A\u094D\u0930\u0926\u093E\u0924\u093E",
254
+ backToSignIn: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u092A\u0930 \u0935\u093E\u092A\u0938 \u091C\u093E\u090F\u0902"
255
+ },
256
+ tr: {
257
+ welcomeBack: "Tekrar hos geldiniz",
258
+ createAccount: "Hesap olusturun",
259
+ alreadyHaveAccount: "Zaten bir hesabiniz var mi?",
260
+ dontHaveAccount: "Hesabiniz yok mu?",
261
+ signIn: "Giris yap",
262
+ signUp: "Kaydol",
263
+ or: "veya",
264
+ emailAddress: "E-posta adresi",
265
+ password: "Sifre",
266
+ passwordHint: "Buyuk, kucuk harf ve rakam icermeli (en az 8 karakter)",
267
+ continueWith: "ile devam et",
268
+ connectWallet: "Cuzdan bagla",
269
+ magicLink: "Magic Link ile devam et",
270
+ passkey: "Passkey ile giris yap",
271
+ securedBy: "Guvenlik saglayici",
272
+ backToSignIn: "Girise don"
273
+ },
274
+ id: {
275
+ welcomeBack: "Selamat datang kembali",
276
+ createAccount: "Buat akun Anda",
277
+ alreadyHaveAccount: "Sudah punya akun?",
278
+ dontHaveAccount: "Belum punya akun?",
279
+ signIn: "Masuk",
280
+ signUp: "Daftar",
281
+ or: "atau",
282
+ emailAddress: "Alamat email",
283
+ password: "Kata sandi",
284
+ passwordHint: "Harus mengandung huruf besar, kecil, dan angka (min 8 karakter)",
285
+ continueWith: "Lanjutkan dengan",
286
+ connectWallet: "Hubungkan dompet",
287
+ magicLink: "Lanjutkan dengan Magic Link",
288
+ passkey: "Masuk dengan Passkey",
289
+ securedBy: "Diamankan oleh",
290
+ backToSignIn: "Kembali ke login"
291
+ },
292
+ vi: {
293
+ welcomeBack: "Chao mung tro lai",
294
+ createAccount: "Tao tai khoan",
295
+ alreadyHaveAccount: "Da co tai khoan?",
296
+ dontHaveAccount: "Chua co tai khoan?",
297
+ signIn: "Dang nhap",
298
+ signUp: "Dang ky",
299
+ or: "hoac",
300
+ emailAddress: "Dia chi email",
301
+ password: "Mat khau",
302
+ passwordHint: "Can chu hoa, chu thuong va so (toi thieu 8 ky tu)",
303
+ continueWith: "Tiep tuc voi",
304
+ connectWallet: "Ket noi vi",
305
+ magicLink: "Tiep tuc voi Magic Link",
306
+ passkey: "Dang nhap voi Passkey",
307
+ securedBy: "Bao mat boi",
308
+ backToSignIn: "Quay lai dang nhap"
309
+ },
310
+ th: {
311
+ welcomeBack: "\u0E22\u0E34\u0E19\u0E14\u0E35\u0E15\u0E49\u0E2D\u0E19\u0E23\u0E31\u0E1A\u0E01\u0E25\u0E31\u0E1A",
312
+ createAccount: "\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E31\u0E0D\u0E0A\u0E35",
313
+ alreadyHaveAccount: "\u0E21\u0E35\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27?",
314
+ dontHaveAccount: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E1A\u0E31\u0E0D\u0E0A\u0E35?",
315
+ signIn: "\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
316
+ signUp: "\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01",
317
+ or: "\u0E2B\u0E23\u0E37\u0E2D",
318
+ emailAddress: "\u0E2D\u0E35\u0E40\u0E21\u0E25",
319
+ password: "\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19",
320
+ passwordHint: "\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E15\u0E31\u0E27\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E43\u0E2B\u0E0D\u0E48 \u0E15\u0E31\u0E27\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E40\u0E25\u0E47\u0E01 \u0E41\u0E25\u0E30\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22 8 \u0E15\u0E31\u0E27)",
321
+ continueWith: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22",
322
+ connectWallet: "\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E01\u0E23\u0E30\u0E40\u0E1B\u0E4B\u0E32",
323
+ magicLink: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 Magic Link",
324
+ passkey: "\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E14\u0E49\u0E27\u0E22 Passkey",
325
+ securedBy: "\u0E23\u0E31\u0E01\u0E29\u0E32\u0E04\u0E27\u0E32\u0E21\u0E1B\u0E25\u0E2D\u0E14\u0E20\u0E31\u0E22\u0E42\u0E14\u0E22",
326
+ backToSignIn: "\u0E01\u0E25\u0E31\u0E1A\u0E44\u0E1B\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A"
327
+ },
328
+ ru: {
329
+ welcomeBack: "\u0421 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0438\u0435\u043C",
330
+ createAccount: "\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0430\u043A\u043A\u0430\u0443\u043D\u0442",
331
+ alreadyHaveAccount: "\u0423\u0436\u0435 \u0435\u0441\u0442\u044C \u0430\u043A\u043A\u0430\u0443\u043D\u0442?",
332
+ dontHaveAccount: "\u041D\u0435\u0442 \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430?",
333
+ signIn: "\u0412\u043E\u0439\u0442\u0438",
334
+ signUp: "\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F",
335
+ or: "\u0438\u043B\u0438",
336
+ emailAddress: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430",
337
+ password: "\u041F\u0430\u0440\u043E\u043B\u044C",
338
+ passwordHint: "\u0417\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0435, \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u0431\u0443\u043A\u0432\u044B \u0438 \u0446\u0438\u0444\u0440\u044B (\u043C\u0438\u043D. 8 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)",
339
+ continueWith: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441",
340
+ connectWallet: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043A\u043E\u0448\u0435\u043B\u0435\u043A",
341
+ magicLink: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 Magic Link",
342
+ passkey: "\u0412\u043E\u0439\u0442\u0438 \u0441 Passkey",
343
+ securedBy: "\u0417\u0430\u0449\u0438\u0449\u0435\u043D\u043E",
344
+ backToSignIn: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0432\u0445\u043E\u0434\u0443"
345
+ },
346
+ it: {
347
+ welcomeBack: "Bentornato",
348
+ createAccount: "Crea il tuo account",
349
+ alreadyHaveAccount: "Hai gia un account?",
350
+ dontHaveAccount: "Non hai un account?",
351
+ signIn: "Accedi",
352
+ signUp: "Registrati",
353
+ or: "o",
354
+ emailAddress: "Indirizzo email",
355
+ password: "Password",
356
+ passwordHint: "Deve contenere maiuscole, minuscole e numeri (min 8 caratteri)",
357
+ continueWith: "Continua con",
358
+ connectWallet: "Connetti portafoglio",
359
+ magicLink: "Continua con Magic Link",
360
+ passkey: "Accedi con Passkey",
361
+ securedBy: "Protetto da",
362
+ backToSignIn: "Torna all'accesso"
363
+ },
364
+ pl: {
365
+ welcomeBack: "Witaj ponownie",
366
+ createAccount: "Utworz konto",
367
+ alreadyHaveAccount: "Masz juz konto?",
368
+ dontHaveAccount: "Nie masz konta?",
369
+ signIn: "Zaloguj sie",
370
+ signUp: "Zarejestruj sie",
371
+ or: "lub",
372
+ emailAddress: "Adres e-mail",
373
+ password: "Haslo",
374
+ passwordHint: "Wielkie, male litery i cyfry (min 8 znakow)",
375
+ continueWith: "Kontynuuj z",
376
+ connectWallet: "Polacz portfel",
377
+ magicLink: "Kontynuuj z Magic Link",
378
+ passkey: "Zaloguj sie z Passkey",
379
+ securedBy: "Zabezpieczone przez",
380
+ backToSignIn: "Powrot do logowania"
381
+ },
382
+ nl: {
383
+ welcomeBack: "Welkom terug",
384
+ createAccount: "Maak je account aan",
385
+ alreadyHaveAccount: "Heb je al een account?",
386
+ dontHaveAccount: "Nog geen account?",
387
+ signIn: "Inloggen",
388
+ signUp: "Registreren",
389
+ or: "of",
390
+ emailAddress: "E-mailadres",
391
+ password: "Wachtwoord",
392
+ passwordHint: "Hoofdletters, kleine letters en cijfers vereist (min 8 tekens)",
393
+ continueWith: "Doorgaan met",
394
+ connectWallet: "Portemonnee verbinden",
395
+ magicLink: "Doorgaan met Magic Link",
396
+ passkey: "Inloggen met Passkey",
397
+ securedBy: "Beveiligd door",
398
+ backToSignIn: "Terug naar inloggen"
399
+ },
400
+ ar: {
401
+ welcomeBack: "\u0645\u0631\u062D\u0628\u064B\u0627 \u0628\u0639\u0648\u062F\u062A\u0643",
402
+ createAccount: "\u0623\u0646\u0634\u0626 \u062D\u0633\u0627\u0628\u0643",
403
+ alreadyHaveAccount: "\u0644\u062F\u064A\u0643 \u062D\u0633\u0627\u0628 \u0628\u0627\u0644\u0641\u0639\u0644\u061F",
404
+ dontHaveAccount: "\u0644\u064A\u0633 \u0644\u062F\u064A\u0643 \u062D\u0633\u0627\u0628\u061F",
405
+ signIn: "\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
406
+ signUp: "\u0625\u0646\u0634\u0627\u0621 \u062D\u0633\u0627\u0628",
407
+ or: "\u0623\u0648",
408
+ emailAddress: "\u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",
409
+ password: "\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631",
410
+ passwordHint: "\u064A\u062C\u0628 \u0623\u0646 \u062A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0623\u062D\u0631\u0641 \u0643\u0628\u064A\u0631\u0629 \u0648\u0635\u063A\u064A\u0631\u0629 \u0648\u0623\u0631\u0642\u0627\u0645 (8 \u0623\u062D\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644)",
411
+ continueWith: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645",
412
+ connectWallet: "\u0631\u0628\u0637 \u0627\u0644\u0645\u062D\u0641\u0638\u0629",
413
+ magicLink: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 Magic Link",
414
+ passkey: "\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 Passkey",
415
+ securedBy: "\u0645\u062D\u0645\u064A \u0628\u0648\u0627\u0633\u0637\u0629",
416
+ backToSignIn: "\u0627\u0644\u0639\u0648\u062F\u0629 \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644"
417
+ },
418
+ sv: {
419
+ welcomeBack: "Valkommen tillbaka",
420
+ createAccount: "Skapa ditt konto",
421
+ alreadyHaveAccount: "Har du redan ett konto?",
422
+ dontHaveAccount: "Har du inget konto?",
423
+ signIn: "Logga in",
424
+ signUp: "Registrera dig",
425
+ or: "eller",
426
+ emailAddress: "E-postadress",
427
+ password: "Losenord",
428
+ passwordHint: "Stora, sma bokstaver och siffror kravs (minst 8 tecken)",
429
+ continueWith: "Fortsatt med",
430
+ connectWallet: "Anslut planbok",
431
+ magicLink: "Fortsatt med Magic Link",
432
+ passkey: "Logga in med Passkey",
433
+ securedBy: "Sakrad av",
434
+ backToSignIn: "Tillbaka till inloggning"
435
+ },
436
+ uk: {
437
+ welcomeBack: "\u0417 \u043F\u043E\u0432\u0435\u0440\u043D\u0435\u043D\u043D\u044F\u043C",
438
+ createAccount: "\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441",
439
+ alreadyHaveAccount: "\u0412\u0436\u0435 \u0454 \u043E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441?",
440
+ dontHaveAccount: "\u041D\u0435\u043C\u0430\u0454 \u043E\u0431\u043B\u0456\u043A\u043E\u0432\u043E\u0433\u043E \u0437\u0430\u043F\u0438\u0441\u0443?",
441
+ signIn: "\u0423\u0432\u0456\u0439\u0442\u0438",
442
+ signUp: "\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438\u0441\u044F",
443
+ or: "\u0430\u0431\u043E",
444
+ emailAddress: "\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430",
445
+ password: "\u041F\u0430\u0440\u043E\u043B\u044C",
446
+ passwordHint: "\u0412\u0435\u043B\u0438\u043A\u0456, \u043C\u0430\u043B\u0456 \u043B\u0456\u0442\u0435\u0440\u0438 \u0442\u0430 \u0446\u0438\u0444\u0440\u0438 (\u043C\u0456\u043D. 8 \u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432)",
447
+ continueWith: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437",
448
+ connectWallet: "\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u0433\u0430\u043C\u0430\u043D\u0435\u0446\u044C",
449
+ magicLink: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 Magic Link",
450
+ passkey: "\u0423\u0432\u0456\u0439\u0442\u0438 \u0437 Passkey",
451
+ securedBy: "\u0417\u0430\u0445\u0438\u0449\u0435\u043D\u043E",
452
+ backToSignIn: "\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438\u0441\u044F \u0434\u043E \u0432\u0445\u043E\u0434\u0443"
453
+ }
454
+ };
455
+ function getStrings(locale) {
456
+ if (locale in translations) return translations[locale];
457
+ const lang = locale.split("-")[0].split("_")[0];
458
+ if (lang in translations) return translations[lang];
459
+ return translations.en;
460
+ }
461
+
74
462
  // src/modal.ts
75
463
  function hexToRgba(hex, alpha) {
76
464
  const h = hex.replace("#", "");
@@ -126,6 +514,8 @@ var ModalRenderer = class {
126
514
  turnstileWidgetId = null;
127
515
  turnstileToken = "";
128
516
  turnstileWrapper = null;
517
+ // i18n
518
+ t;
129
519
  // Dev Teleport (test mode)
130
520
  isTestMode = false;
131
521
  onDevTeleport = null;
@@ -135,6 +525,7 @@ var ModalRenderer = class {
135
525
  this.branding = { ...DEFAULT_BRANDING, ...options.branding };
136
526
  this.captchaSiteKey = options.captchaSiteKey || "";
137
527
  this.isTestMode = options.isTestMode || false;
528
+ this.t = getStrings(options.locale || "en");
138
529
  this.onDevTeleport = options.onDevTeleport || null;
139
530
  this.onProviderClick = options.onProviderClick;
140
531
  this.onEmailSubmit = options.onEmailSubmit;
@@ -406,9 +797,9 @@ var ModalRenderer = class {
406
797
  buildInnerContent(view) {
407
798
  const b = this.branding;
408
799
  const isSignUp = view === "signUp";
409
- const title = isSignUp ? "Create your account" : "Welcome back";
410
- const subtitle = isSignUp ? "Already have an account?" : "Don't have an account?";
411
- const subtitleLink = isSignUp ? "Sign in" : "Sign up";
800
+ const title = isSignUp ? this.t.createAccount : this.t.welcomeBack;
801
+ const subtitle = isSignUp ? this.t.alreadyHaveAccount : this.t.dontHaveAccount;
802
+ const subtitleLink = isSignUp ? this.t.signIn : this.t.signUp;
412
803
  const dark = this.isDark();
413
804
  const showProviders = !isSignUp;
414
805
  const providerButtons = showProviders ? this.enabledProviders.filter((p) => !b.hiddenProviders?.includes(p)).map((p) => {
@@ -422,12 +813,12 @@ var ModalRenderer = class {
422
813
  </button>`;
423
814
  }).join("") : "";
424
815
  const hasVisibleProviders = showProviders && this.enabledProviders.filter((p) => !b.hiddenProviders?.includes(p)).length > 0;
425
- const divider = hasVisibleProviders && b.showDivider !== false && b.showEmailPassword !== false ? `<div class="divider"><span>or</span></div>` : "";
816
+ const divider = hasVisibleProviders && b.showDivider !== false && b.showEmailPassword !== false ? `<div class="divider"><span>${this.t.or}</span></div>` : "";
426
817
  const emailForm = b.showEmailPassword !== false ? `<form class="email-form" id="email-form">
427
- <input type="email" placeholder="Email address" name="email" required class="input" autocomplete="email" />
428
- <input type="password" placeholder="Password" name="password" required class="input" autocomplete="${isSignUp ? "new-password" : "current-password"}" />
429
- ${isSignUp ? '<p class="password-hint">Must contain uppercase, lowercase, and a number (min 8 chars)</p>' : ""}
430
- <button type="submit" class="submit-btn">${isSignUp ? "Sign up" : "Sign in"}</button>
818
+ <input type="email" placeholder="${this.t.emailAddress}" name="email" required class="input" autocomplete="email" />
819
+ <input type="password" placeholder="${this.t.password}" name="password" required class="input" autocomplete="${isSignUp ? "new-password" : "current-password"}" />
820
+ ${isSignUp ? `<p class="password-hint">${this.t.passwordHint}</p>` : ""}
821
+ <button type="submit" class="submit-btn">${isSignUp ? this.t.signUp : this.t.signIn}</button>
431
822
  </form>` : "";
432
823
  const hasMethodAbove = showProviders && this.enabledProviders.length > 0 || b.showEmailPassword !== false;
433
824
  const hasMethodBelow = b.showWeb3 || b.showPasswordless || b.showPasskey;
@@ -438,7 +829,7 @@ var ModalRenderer = class {
438
829
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
439
830
  <path d="M21 12V7H5a2 2 0 0 1 0-4h14v4"/><path d="M3 5v14a2 2 0 0 0 2 2h16v-5"/><path d="M18 12a2 2 0 0 0 0 4h4v-4h-4z"/>
440
831
  </svg>
441
- <span>Connect Wallet</span>
832
+ <span>${this.t.connectWallet}</span>
442
833
  </button>`);
443
834
  }
444
835
  if (b.showPasswordless) {
@@ -446,7 +837,7 @@ var ModalRenderer = class {
446
837
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
447
838
  <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>
448
839
  </svg>
449
- <span>Continue with Magic Link</span>
840
+ <span>${this.t.magicLink}</span>
450
841
  </button>`);
451
842
  }
452
843
  if (b.showPasskey) {
@@ -454,7 +845,7 @@ var ModalRenderer = class {
454
845
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
455
846
  <circle cx="10" cy="7" r="4"/><path d="M10.3 15H7a4 4 0 0 0-4 4v2"/><path d="M21.7 13.3 19 11"/><path d="m21 15-2.5-1.5"/><path d="m17 17 2.5-1.5"/><path d="M22 9v6a1 1 0 0 1-1 1h-.5"/><circle cx="18" cy="9" r="3"/>
456
847
  </svg>
457
- <span>Sign in with Passkey</span>
848
+ <span>${this.t.passkey}</span>
458
849
  </button>`);
459
850
  }
460
851
  const authMethods = methodButtons.length > 0 ? `<div class="auth-methods">${methodButtons.join("")}</div>` : "";
@@ -490,7 +881,7 @@ var ModalRenderer = class {
490
881
  <button type="button" id="dev-teleport-btn" class="dev-teleport-btn">Go</button>
491
882
  </div>
492
883
  </div>` : ""}
493
- ${b.showSecuredBy !== false ? `<div class="secured-by">Secured by <a href="https://authon.dev" target="_blank" rel="noopener noreferrer" class="secured-link">Authon</a></div>` : ""}
884
+ ${b.showSecuredBy !== false ? `<div class="secured-by">${this.t.securedBy} <a href="https://authon.dev" target="_blank" rel="noopener noreferrer" class="secured-link">Authon</a></div>` : ""}
494
885
  `;
495
886
  }
496
887
  renderTurnstile() {
@@ -2105,6 +2496,7 @@ var Authon = class {
2105
2496
  this.modal = new ModalRenderer({
2106
2497
  mode: this.config.mode,
2107
2498
  theme: this.config.theme,
2499
+ locale: this.config.locale,
2108
2500
  containerId: this.config.containerId,
2109
2501
  branding: this.branding || void 0,
2110
2502
  captchaSiteKey: this.captchaEnabled ? this.turnstileSiteKey : void 0,
@@ -2562,6 +2954,8 @@ export {
2562
2954
  Authon,
2563
2955
  AuthonMfaRequiredError,
2564
2956
  generateQrSvg,
2565
- getProviderButtonConfig
2957
+ getProviderButtonConfig,
2958
+ getStrings,
2959
+ translations
2566
2960
  };
2567
2961
  //# sourceMappingURL=index.js.map