@zoreal/oauth2-react 0.2.14 → 0.2.15

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.cjs CHANGED
@@ -23,6 +23,7 @@ var index_exports = {};
23
23
  __export(index_exports, {
24
24
  DEFAULT_PAIRING_TIMEOUT_MS: () => DEFAULT_PAIRING_TIMEOUT_MS,
25
25
  PairingModal: () => PairingModal,
26
+ ZorealBusyRing: () => ZorealBusyRing,
26
27
  ZorealLogin: () => ZorealLogin,
27
28
  ZorealOAuthProvider: () => ZorealOAuthProvider,
28
29
  hasGrantedAllScopesZoreal: () => hasGrantedAllScopesZoreal,
@@ -40,7 +41,7 @@ var import_react2 = require("react");
40
41
 
41
42
  // src/wire.ts
42
43
  var WIRE_VERSION = 1;
43
- var SDK_VERSION = "0.2.14";
44
+ var SDK_VERSION = "0.2.15";
44
45
  var DEFAULT_ISSUER = "https://id.zoreal.com";
45
46
  var POLL_INTERVAL_MS = 2e3;
46
47
  var POLL_INTERVAL_ENROLLING_MS = 5e3;
@@ -124,7 +125,6 @@ var en = {
124
125
  titlePresence: "Scan to prove you are a real human",
125
126
  titleApprove: "Approve on your phone",
126
127
  bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
127
- bodyLink: "Approve this sign-in in the ZOREAL ID app on this phone.",
128
128
  bodyApprove: "Approve the login in your ZOREAL ID app.",
129
129
  bodyEnrolling: "Finish setting up ZOREAL ID on your phone, then approve the login.",
130
130
  waiting: "Waiting for scan",
@@ -136,8 +136,7 @@ var en = {
136
136
  cancel: "Cancel",
137
137
  close: "Close",
138
138
  qrAlt: "QR code to sign in with ZOREAL",
139
- buttonContinue: "Continue with ZOREAL",
140
- openApp: "Open ZOREAL ID"
139
+ buttonContinue: "Continue with ZOREAL"
141
140
  };
142
141
  var TRANSLATIONS = {
143
142
  en,
@@ -147,7 +146,6 @@ var TRANSLATIONS = {
147
146
  titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
148
147
  titleApprove: "Godk\xE4nn p\xE5 telefonen",
149
148
  bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
150
- bodyLink: "Godk\xE4nn inloggningen i ZOREAL ID-appen p\xE5 den h\xE4r telefonen.",
151
149
  bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
152
150
  bodyEnrolling: "Slutf\xF6r konfigurationen av ZOREAL ID p\xE5 telefonen och godk\xE4nn sedan inloggningen.",
153
151
  waiting: "V\xE4ntar p\xE5 skanning",
@@ -159,8 +157,7 @@ var TRANSLATIONS = {
159
157
  cancel: "Avbryt",
160
158
  close: "St\xE4ng",
161
159
  qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
162
- buttonContinue: "Forts\xE4tt med ZOREAL",
163
- openApp: "\xD6ppna ZOREAL ID"
160
+ buttonContinue: "Forts\xE4tt med ZOREAL"
164
161
  },
165
162
  es: {
166
163
  title: "Escanea para iniciar sesi\xF3n",
@@ -168,7 +165,6 @@ var TRANSLATIONS = {
168
165
  titlePresence: "Escanea para demostrar que eres una persona real",
169
166
  titleApprove: "Apru\xE9balo en tu tel\xE9fono",
170
167
  bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
171
- bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
172
168
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
173
169
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu tel\xE9fono y luego aprueba el inicio de sesi\xF3n.",
174
170
  waiting: "Esperando el escaneo",
@@ -180,8 +176,7 @@ var TRANSLATIONS = {
180
176
  cancel: "Cancelar",
181
177
  close: "Cerrar",
182
178
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
183
- buttonContinue: "Continuar con ZOREAL",
184
- openApp: "Abrir ZOREAL ID"
179
+ buttonContinue: "Continuar con ZOREAL"
185
180
  },
186
181
  pt: {
187
182
  title: "Digitalize para entrar",
@@ -189,7 +184,6 @@ var TRANSLATIONS = {
189
184
  titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
190
185
  titleApprove: "Aprove no seu telefone",
191
186
  bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
192
- bodyLink: "Aprove este in\xEDcio de sess\xE3o na app ZOREAL ID neste telem\xF3vel.",
193
187
  bodyApprove: "Aprove o login no app ZOREAL ID.",
194
188
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu telefone e depois aprove o login.",
195
189
  waiting: "Aguardando digitaliza\xE7\xE3o",
@@ -201,8 +195,7 @@ var TRANSLATIONS = {
201
195
  cancel: "Cancelar",
202
196
  close: "Fechar",
203
197
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
204
- buttonContinue: "Continuar com ZOREAL",
205
- openApp: "Abrir ZOREAL ID"
198
+ buttonContinue: "Continuar com ZOREAL"
206
199
  },
207
200
  fr: {
208
201
  title: "Scannez pour vous connecter",
@@ -210,7 +203,6 @@ var TRANSLATIONS = {
210
203
  titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
211
204
  titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
212
205
  bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
213
- bodyLink: "Approuvez cette connexion dans l'app ZOREAL ID sur ce t\xE9l\xE9phone.",
214
206
  bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
215
207
  bodyEnrolling: "Terminez la configuration de ZOREAL ID sur votre t\xE9l\xE9phone, puis approuvez la connexion.",
216
208
  waiting: "En attente du scan",
@@ -222,8 +214,7 @@ var TRANSLATIONS = {
222
214
  cancel: "Annuler",
223
215
  close: "Fermer",
224
216
  qrAlt: "Code QR pour se connecter avec ZOREAL",
225
- buttonContinue: "Continuer avec ZOREAL",
226
- openApp: "Ouvrir ZOREAL ID"
217
+ buttonContinue: "Continuer avec ZOREAL"
227
218
  },
228
219
  de: {
229
220
  title: "Zum Anmelden scannen",
@@ -231,7 +222,6 @@ var TRANSLATIONS = {
231
222
  titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
232
223
  titleApprove: "Auf dem Handy best\xE4tigen",
233
224
  bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
234
- bodyLink: "Best\xE4tigen Sie diese Anmeldung in der ZOREAL ID-App auf diesem Telefon.",
235
225
  bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
236
226
  bodyEnrolling: "ZOREAL ID auf dem Handy fertig einrichten und dann die Anmeldung best\xE4tigen.",
237
227
  waiting: "Warten auf Scan",
@@ -243,8 +233,7 @@ var TRANSLATIONS = {
243
233
  cancel: "Abbrechen",
244
234
  close: "Schlie\xDFen",
245
235
  qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
246
- buttonContinue: "Weiter mit ZOREAL",
247
- openApp: "ZOREAL ID \xF6ffnen"
236
+ buttonContinue: "Weiter mit ZOREAL"
248
237
  },
249
238
  ru: {
250
239
  title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
@@ -252,7 +241,6 @@ var TRANSLATIONS = {
252
241
  titlePresence: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u044C, \u0447\u0442\u043E \u0432\u044B \u0440\u0435\u0430\u043B\u044C\u043D\u044B\u0439 \u0447\u0435\u043B\u043E\u0432\u0435\u043A",
253
242
  titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
254
243
  bodyScan: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u0439 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0447\u0435\u0440\u0435\u0437 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 ZOREAL ID.",
255
- bodyLink: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 ZOREAL ID \u043D\u0430 \u044D\u0442\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435.",
256
244
  bodyApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 ZOREAL ID.",
257
245
  bodyEnrolling: "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0443 ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435, \u0437\u0430\u0442\u0435\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0432\u0445\u043E\u0434.",
258
246
  waiting: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
@@ -264,8 +252,7 @@ var TRANSLATIONS = {
264
252
  cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
265
253
  close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
266
254
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
267
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL",
268
- openApp: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C ZOREAL ID"
255
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL"
269
256
  },
270
257
  ja: {
271
258
  title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
@@ -273,7 +260,6 @@ var TRANSLATIONS = {
273
260
  titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
274
261
  titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
275
262
  bodyScan: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u306E\u30AB\u30E1\u30E9\u307E\u305F\u306FZOREAL ID\u30A2\u30D7\u30EA\u3067\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
276
- bodyLink: "\u3053\u306E\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u306EZOREAL ID\u30A2\u30D7\u30EA\u3067\u3053\u306E\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
277
263
  bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
278
264
  bodyEnrolling: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067ZOREAL ID\u306E\u8A2D\u5B9A\u3092\u5B8C\u4E86\u3057\u3001\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
279
265
  waiting: "\u30B9\u30AD\u30E3\u30F3\u5F85\u3061",
@@ -285,8 +271,7 @@ var TRANSLATIONS = {
285
271
  cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
286
272
  close: "\u9589\u3058\u308B",
287
273
  qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
288
- buttonContinue: "ZOREAL\u3067\u7D9A\u884C",
289
- openApp: "ZOREAL ID\u3092\u958B\u304F"
274
+ buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
290
275
  },
291
276
  hi: {
292
277
  title: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902",
@@ -294,7 +279,6 @@ var TRANSLATIONS = {
294
279
  titlePresence: "\u092F\u0939 \u0938\u093E\u092C\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A \u090F\u0915 \u0935\u093E\u0938\u094D\u0924\u0935\u093F\u0915 \u0907\u0902\u0938\u093E\u0928 \u0939\u0948\u0902",
295
280
  titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
296
281
  bodyScan: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u0915\u0947 \u0915\u0948\u092E\u0930\u0947 \u092F\u093E ZOREAL ID \u0910\u092A \u0938\u0947 \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902\u0964",
297
- bodyLink: "\u0907\u0938 \u092B\u093C\u094B\u0928 \u092A\u0930 ZOREAL ID \u0910\u092A \u092E\u0947\u0902 \u0907\u0938 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u094B \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
298
282
  bodyApprove: "\u0905\u092A\u0928\u0947 ZOREAL ID \u0910\u092A \u092E\u0947\u0902 \u0932\u0949\u0917\u093F\u0928 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
299
283
  bodyEnrolling: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 ZOREAL ID \u0938\u0947\u091F\u0905\u092A \u092A\u0942\u0930\u093E \u0915\u0930\u0947\u0902, \u092B\u093F\u0930 \u0932\u0949\u0917\u093F\u0928 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
300
284
  waiting: "\u0938\u094D\u0915\u0948\u0928 \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
@@ -306,8 +290,7 @@ var TRANSLATIONS = {
306
290
  cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
307
291
  close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
308
292
  qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921",
309
- buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902",
310
- openApp: "ZOREAL ID \u0916\u094B\u0932\u0947\u0902"
293
+ buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902"
311
294
  },
312
295
  zhs: {
313
296
  title: "\u626B\u7801\u767B\u5F55",
@@ -315,7 +298,6 @@ var TRANSLATIONS = {
315
298
  titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
316
299
  titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
317
300
  bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
318
- bodyLink: "\u8BF7\u5728\u672C\u624B\u673A\u7684 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u6B64\u6B21\u767B\u5F55\u3002",
319
301
  bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
320
302
  bodyEnrolling: "\u8BF7\u5728\u624B\u673A\u4E0A\u5B8C\u6210 ZOREAL ID \u8BBE\u7F6E\uFF0C\u7136\u540E\u6279\u51C6\u767B\u5F55\u3002",
321
303
  waiting: "\u7B49\u5F85\u626B\u63CF",
@@ -327,8 +309,7 @@ var TRANSLATIONS = {
327
309
  cancel: "\u53D6\u6D88",
328
310
  close: "\u5173\u95ED",
329
311
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
330
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED",
331
- openApp: "\u6253\u5F00 ZOREAL ID"
312
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
332
313
  },
333
314
  zht: {
334
315
  title: "\u6383\u78BC\u767B\u5165",
@@ -336,7 +317,6 @@ var TRANSLATIONS = {
336
317
  titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
337
318
  titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
338
319
  bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
339
- bodyLink: "\u8ACB\u5728\u672C\u624B\u6A5F\u7684 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u6B64\u6B21\u767B\u5165\u3002",
340
320
  bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
341
321
  bodyEnrolling: "\u8ACB\u5728\u624B\u6A5F\u4E0A\u5B8C\u6210 ZOREAL ID \u8A2D\u5B9A\uFF0C\u7136\u5F8C\u6838\u51C6\u767B\u5165\u3002",
342
322
  waiting: "\u7B49\u5F85\u6383\u63CF",
@@ -348,8 +328,7 @@ var TRANSLATIONS = {
348
328
  cancel: "\u53D6\u6D88",
349
329
  close: "\u95DC\u9589",
350
330
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
351
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C",
352
- openApp: "\u958B\u555F ZOREAL ID"
331
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
353
332
  },
354
333
  ar: {
355
334
  title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
@@ -357,7 +336,6 @@ var TRANSLATIONS = {
357
336
  titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
358
337
  titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
359
338
  bodyScan: "\u0627\u0645\u0633\u062D \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0643\u0627\u0645\u064A\u0631\u0627 \u0647\u0627\u062A\u0641\u0643 \u0623\u0648 \u062A\u0637\u0628\u064A\u0642 ZOREAL ID.",
360
- bodyLink: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0647\u0630\u0627 \u0641\u064A \u062A\u0637\u0628\u064A\u0642 ZOREAL ID \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0647\u0627\u062A\u0641.",
361
339
  bodyApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0641\u064A \u062A\u0637\u0628\u064A\u0642 ZOREAL ID.",
362
340
  bodyEnrolling: "\u0623\u0643\u0645\u0644 \u0625\u0639\u062F\u0627\u062F ZOREAL ID \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643\u060C \u062B\u0645 \u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644.",
363
341
  waiting: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0633\u062D",
@@ -369,8 +347,7 @@ var TRANSLATIONS = {
369
347
  cancel: "\u0625\u0644\u063A\u0627\u0621",
370
348
  close: "\u0625\u063A\u0644\u0627\u0642",
371
349
  qrAlt: "\u0631\u0645\u0632 QR \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
372
- buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
373
- openApp: "\u0641\u062A\u062D ZOREAL ID"
350
+ buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL"
374
351
  },
375
352
  ko: {
376
353
  title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
@@ -378,7 +355,6 @@ var TRANSLATIONS = {
378
355
  titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
379
356
  titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
380
357
  bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
381
- bodyLink: "\uC774 \uD734\uB300\uD3F0\uC758 ZOREAL ID \uC571\uC5D0\uC11C \uC774 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
382
358
  bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
383
359
  bodyEnrolling: "\uD734\uB300\uD3F0\uC5D0\uC11C ZOREAL ID \uC124\uC815\uC744 \uC644\uB8CC\uD55C \uD6C4 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
384
360
  waiting: "\uC2A4\uCE94 \uB300\uAE30 \uC911",
@@ -390,8 +366,7 @@ var TRANSLATIONS = {
390
366
  cancel: "\uCDE8\uC18C",
391
367
  close: "\uB2EB\uAE30",
392
368
  qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
393
- buttonContinue: "ZOREAL\uB85C \uACC4\uC18D",
394
- openApp: "ZOREAL ID \uC5F4\uAE30"
369
+ buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
395
370
  },
396
371
  // Български
397
372
  bg: {
@@ -400,7 +375,6 @@ var TRANSLATIONS = {
400
375
  titlePresence: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435, \u0437\u0430 \u0434\u0430 \u0434\u043E\u043A\u0430\u0436\u0435\u0442\u0435, \u0447\u0435 \u0441\u0442\u0435 \u0438\u0441\u0442\u0438\u043D\u0441\u043A\u0438 \u0447\u043E\u0432\u0435\u043A",
401
376
  titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
402
377
  bodyScan: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0441 \u043A\u0430\u043C\u0435\u0440\u0430\u0442\u0430 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0441 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID.",
403
- bodyLink: "\u041E\u0434\u043E\u0431\u0440\u0435\u0442\u0435 \u0442\u043E\u0437\u0438 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID \u043D\u0430 \u0442\u043E\u0437\u0438 \u0442\u0435\u043B\u0435\u0444\u043E\u043D.",
404
378
  bodyApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u0432\u0445\u043E\u0434\u0430 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID.",
405
379
  bodyEnrolling: "\u0414\u043E\u0432\u044A\u0440\u0448\u0435\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0442\u0430 \u043D\u0430 ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438, \u0441\u043B\u0435\u0434 \u043A\u043E\u0435\u0442\u043E \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u0432\u0445\u043E\u0434\u0430.",
406
380
  waiting: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435",
@@ -412,8 +386,7 @@ var TRANSLATIONS = {
412
386
  cancel: "\u041E\u0442\u043A\u0430\u0437",
413
387
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
414
388
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL",
415
- buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL",
416
- openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
389
+ buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL"
417
390
  },
418
391
  // বাংলা
419
392
  bn: {
@@ -422,7 +395,6 @@ var TRANSLATIONS = {
422
395
  titlePresence: "\u0986\u09AA\u09A8\u09BF \u098F\u0995\u099C\u09A8 \u09AA\u09CD\u09B0\u0995\u09C3\u09A4 \u09AE\u09BE\u09A8\u09C1\u09B7 \u09A4\u09BE \u09AA\u09CD\u09B0\u09AE\u09BE\u09A3 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
423
396
  titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
424
397
  bodyScan: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7\u09B0 \u0995\u09CD\u09AF\u09BE\u09AE\u09C7\u09B0\u09BE \u09AC\u09BE ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
425
- bodyLink: "\u098F\u0987 \u09AB\u09CB\u09A8\u09C7\u09B0 ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA\u09C7 \u098F\u0987 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
426
398
  bodyApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA\u09C7 \u09B2\u0997\u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
427
399
  bodyEnrolling: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 ZOREAL ID \u09B8\u09C7\u099F\u0986\u09AA \u09B8\u09AE\u09CD\u09AA\u09C2\u09B0\u09CD\u09A3 \u0995\u09B0\u09C1\u09A8, \u09A4\u09BE\u09B0\u09AA\u09B0 \u09B2\u0997\u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
428
400
  waiting: "\u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
@@ -434,8 +406,7 @@ var TRANSLATIONS = {
434
406
  cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
435
407
  close: "\u09AC\u09A8\u09CD\u09A7",
436
408
  qrAlt: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09BE\u09B0 \u099C\u09A8\u09CD\u09AF QR \u0995\u09CB\u09A1",
437
- buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8",
438
- openApp: "ZOREAL ID \u0996\u09C1\u09B2\u09C1\u09A8"
409
+ buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8"
439
410
  },
440
411
  // Bosanski
441
412
  bs: {
@@ -444,7 +415,6 @@ var TRANSLATIONS = {
444
415
  titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
445
416
  titleApprove: "Odobrite na svom telefonu",
446
417
  bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
447
- bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
448
418
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
449
419
  bodyEnrolling: "Zavr\u0161ite pode\u0161avanje ZOREAL ID-a na svom telefonu, a zatim odobrite prijavu.",
450
420
  waiting: "\u010Ceka se skeniranje",
@@ -456,8 +426,7 @@ var TRANSLATIONS = {
456
426
  cancel: "Otka\u017Ei",
457
427
  close: "Zatvori",
458
428
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
459
- buttonContinue: "Nastavi sa ZOREAL-om",
460
- openApp: "Otvori ZOREAL ID"
429
+ buttonContinue: "Nastavi sa ZOREAL-om"
461
430
  },
462
431
  // Čeština
463
432
  cs: {
@@ -466,7 +435,6 @@ var TRANSLATIONS = {
466
435
  titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
467
436
  titleApprove: "Potvr\u010Fte v telefonu",
468
437
  bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
469
- bodyLink: "Schvalte toto p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID na tomto telefonu.",
470
438
  bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
471
439
  bodyEnrolling: "Dokon\u010Dete nastaven\xED ZOREAL ID v telefonu a pot\xE9 potvr\u010Fte p\u0159ihl\xE1\u0161en\xED.",
472
440
  waiting: "\u010Cek\xE1n\xED na naskenov\xE1n\xED",
@@ -478,8 +446,7 @@ var TRANSLATIONS = {
478
446
  cancel: "Zru\u0161it",
479
447
  close: "Zav\u0159\xEDt",
480
448
  qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
481
- buttonContinue: "Pokra\u010Dovat se ZOREAL",
482
- openApp: "Otev\u0159\xEDt ZOREAL ID"
449
+ buttonContinue: "Pokra\u010Dovat se ZOREAL"
483
450
  },
484
451
  // Dansk
485
452
  da: {
@@ -488,7 +455,6 @@ var TRANSLATIONS = {
488
455
  titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
489
456
  titleApprove: "Godkend p\xE5 din telefon",
490
457
  bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
491
- bodyLink: "Godkend dette login i ZOREAL ID-appen p\xE5 denne telefon.",
492
458
  bodyApprove: "Godkend login i din ZOREAL ID-app.",
493
459
  bodyEnrolling: "F\xE6rdigg\xF8r ops\xE6tningen af ZOREAL ID p\xE5 din telefon, og godkend derefter login.",
494
460
  waiting: "Venter p\xE5 scanning",
@@ -500,8 +466,7 @@ var TRANSLATIONS = {
500
466
  cancel: "Annuller",
501
467
  close: "Luk",
502
468
  qrAlt: "QR-kode til at logge ind med ZOREAL",
503
- buttonContinue: "Forts\xE6t med ZOREAL",
504
- openApp: "\xC5bn ZOREAL ID"
469
+ buttonContinue: "Forts\xE6t med ZOREAL"
505
470
  },
506
471
  // Ελληνικά
507
472
  el: {
@@ -510,7 +475,6 @@ var TRANSLATIONS = {
510
475
  titlePresence: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03B4\u03B5\u03AF\u03BE\u03B5\u03C4\u03B5 \u03CC\u03C4\u03B9 \u03B5\u03AF\u03C3\u03C4\u03B5 \u03C0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC\u03C2 \u03AC\u03BD\u03B8\u03C1\u03C9\u03C0\u03BF\u03C2",
511
476
  titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
512
477
  bodyScan: "\u03A3\u03B1\u03C1\u03CE\u03C3\u03C4\u03B5 \u03BC\u03B5 \u03C4\u03B7\u03BD \u03BA\u03AC\u03BC\u03B5\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BA\u03B9\u03BD\u03B7\u03C4\u03BF\u03CD \u03C3\u03B1\u03C2 \u03AE \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID.",
513
- bodyLink: "\u0395\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03C4\u03B7\u03BB\u03AD\u03C6\u03C9\u03BD\u03BF.",
514
478
  bodyApprove: "\u0395\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID.",
515
479
  bodyEnrolling: "\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03B7 \u03C1\u03CD\u03B8\u03BC\u03B9\u03C3\u03B7 \u03C4\u03BF\u03C5 ZOREAL ID \u03C3\u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2 \u03BA\u03B1\u03B9 \u03AD\u03C0\u03B5\u03B9\u03C4\u03B1 \u03B5\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7.",
516
480
  waiting: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03C3\u03AC\u03C1\u03C9\u03C3\u03B7\u03C2",
@@ -522,8 +486,7 @@ var TRANSLATIONS = {
522
486
  cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
523
487
  close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
524
488
  qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL",
525
- buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL",
526
- openApp: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 ZOREAL ID"
489
+ buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL"
527
490
  },
528
491
  // Español (LA)
529
492
  "es-419": {
@@ -532,7 +495,6 @@ var TRANSLATIONS = {
532
495
  titlePresence: "Escanea para demostrar que eres una persona real",
533
496
  titleApprove: "Aprueba desde tu celular",
534
497
  bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
535
- bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
536
498
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
537
499
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu celular y luego aprueba el inicio de sesi\xF3n.",
538
500
  waiting: "Esperando escaneo",
@@ -544,8 +506,7 @@ var TRANSLATIONS = {
544
506
  cancel: "Cancelar",
545
507
  close: "Cerrar",
546
508
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
547
- buttonContinue: "Continuar con ZOREAL",
548
- openApp: "Abrir ZOREAL ID"
509
+ buttonContinue: "Continuar con ZOREAL"
549
510
  },
550
511
  // Suomi
551
512
  fi: {
@@ -554,7 +515,6 @@ var TRANSLATIONS = {
554
515
  titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
555
516
  titleApprove: "Hyv\xE4ksy puhelimessasi",
556
517
  bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
557
- bodyLink: "Hyv\xE4ksy t\xE4m\xE4 kirjautuminen ZOREAL ID -sovelluksessa t\xE4ll\xE4 puhelimella.",
558
518
  bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
559
519
  bodyEnrolling: "Viimeistele ZOREAL ID -sovelluksen k\xE4ytt\xF6\xF6notto puhelimellasi ja hyv\xE4ksy sitten kirjautuminen.",
560
520
  waiting: "Odotetaan skannausta",
@@ -566,8 +526,7 @@ var TRANSLATIONS = {
566
526
  cancel: "Peruuta",
567
527
  close: "Sulje",
568
528
  qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
569
- buttonContinue: "Jatka ZOREALilla",
570
- openApp: "Avaa ZOREAL ID"
529
+ buttonContinue: "Jatka ZOREALilla"
571
530
  },
572
531
  // עברית
573
532
  he: {
@@ -576,7 +535,6 @@ var TRANSLATIONS = {
576
535
  titlePresence: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05DB\u05D9\u05D7 \u05E9\u05D0\u05EA\u05D4 \u05D0\u05D3\u05DD \u05D0\u05DE\u05D9\u05EA\u05D9",
577
536
  titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
578
537
  bodyScan: "\u05E1\u05E8\u05D5\u05E7 \u05D1\u05D0\u05DE\u05E6\u05E2\u05D5\u05EA \u05DE\u05E6\u05DC\u05DE\u05EA \u05D4\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA \u05D0\u05D5 \u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID.",
579
- bodyLink: "\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D4\u05D6\u05D5 \u05D1\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05D4\u05D6\u05D4.",
580
538
  bodyApprove: "\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D1\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID \u05E9\u05DC\u05DA.",
581
539
  bodyEnrolling: "\u05E1\u05D9\u05D9\u05DD \u05DC\u05D4\u05D2\u05D3\u05D9\u05E8 \u05D0\u05EA ZOREAL ID \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA, \u05D5\u05D0\u05D6 \u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA.",
582
540
  waiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E1\u05E8\u05D9\u05E7\u05D4",
@@ -588,8 +546,7 @@ var TRANSLATIONS = {
588
546
  cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
589
547
  close: "\u05E1\u05D2\u05D5\u05E8",
590
548
  qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL",
591
- buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL",
592
- openApp: "\u05E4\u05EA\u05D7 \u05D0\u05EA ZOREAL ID"
549
+ buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL"
593
550
  },
594
551
  // Hrvatski
595
552
  hr: {
@@ -598,7 +555,6 @@ var TRANSLATIONS = {
598
555
  titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
599
556
  titleApprove: "Odobrite na svom mobitelu",
600
557
  bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
601
- bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
602
558
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
603
559
  bodyEnrolling: "Dovr\u0161ite postavljanje ZOREAL ID-a na svom mobitelu, a zatim odobrite prijavu.",
604
560
  waiting: "\u010Ceka se skeniranje",
@@ -610,8 +566,7 @@ var TRANSLATIONS = {
610
566
  cancel: "Odustani",
611
567
  close: "Zatvori",
612
568
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
613
- buttonContinue: "Nastavi sa ZOREAL-om",
614
- openApp: "Otvori ZOREAL ID"
569
+ buttonContinue: "Nastavi sa ZOREAL-om"
615
570
  },
616
571
  // Magyar
617
572
  hu: {
@@ -620,7 +575,6 @@ var TRANSLATIONS = {
620
575
  titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
621
576
  titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
622
577
  bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
623
- bodyLink: "Hagyja j\xF3v\xE1 ezt a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban ezen a telefonon.",
624
578
  bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
625
579
  bodyEnrolling: "Fejezze be a ZOREAL ID be\xE1ll\xEDt\xE1s\xE1t a telefonj\xE1n, majd hagyja j\xF3v\xE1 a bejelentkez\xE9st.",
626
580
  waiting: "V\xE1rakoz\xE1s beolvas\xE1sra",
@@ -632,8 +586,7 @@ var TRANSLATIONS = {
632
586
  cancel: "M\xE9gse",
633
587
  close: "Bez\xE1r\xE1s",
634
588
  qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
635
- buttonContinue: "Folytat\xE1s a ZOREAL-lal",
636
- openApp: "ZOREAL ID megnyit\xE1sa"
589
+ buttonContinue: "Folytat\xE1s a ZOREAL-lal"
637
590
  },
638
591
  // Bahasa Indonesia
639
592
  id: {
@@ -642,7 +595,6 @@ var TRANSLATIONS = {
642
595
  titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
643
596
  titleApprove: "Setujui di ponsel Anda",
644
597
  bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
645
- bodyLink: "Setujui masuk ini di aplikasi ZOREAL ID pada ponsel ini.",
646
598
  bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
647
599
  bodyEnrolling: "Selesaikan pengaturan ZOREAL ID di ponsel Anda, lalu setujui proses masuk.",
648
600
  waiting: "Menunggu pemindaian",
@@ -654,8 +606,7 @@ var TRANSLATIONS = {
654
606
  cancel: "Batal",
655
607
  close: "Tutup",
656
608
  qrAlt: "Kode QR untuk masuk dengan ZOREAL",
657
- buttonContinue: "Lanjutkan dengan ZOREAL",
658
- openApp: "Buka ZOREAL ID"
609
+ buttonContinue: "Lanjutkan dengan ZOREAL"
659
610
  },
660
611
  // Italiano
661
612
  it: {
@@ -664,7 +615,6 @@ var TRANSLATIONS = {
664
615
  titlePresence: "Scansiona per dimostrare di essere una persona reale",
665
616
  titleApprove: "Approva sul tuo telefono",
666
617
  bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
667
- bodyLink: "Approva questo accesso nell'app ZOREAL ID su questo telefono.",
668
618
  bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
669
619
  bodyEnrolling: "Completa la configurazione di ZOREAL ID sul telefono, poi approva l'accesso.",
670
620
  waiting: "In attesa della scansione",
@@ -676,8 +626,7 @@ var TRANSLATIONS = {
676
626
  cancel: "Annulla",
677
627
  close: "Chiudi",
678
628
  qrAlt: "Codice QR per accedere con ZOREAL",
679
- buttonContinue: "Continua con ZOREAL",
680
- openApp: "Apri ZOREAL ID"
629
+ buttonContinue: "Continua con ZOREAL"
681
630
  },
682
631
  // Bahasa Melayu
683
632
  ms: {
@@ -686,7 +635,6 @@ var TRANSLATIONS = {
686
635
  titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
687
636
  titleApprove: "Luluskan di telefon anda",
688
637
  bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
689
- bodyLink: "Luluskan log masuk ini dalam aplikasi ZOREAL ID pada telefon ini.",
690
638
  bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
691
639
  bodyEnrolling: "Selesaikan persediaan ZOREAL ID di telefon anda, kemudian luluskan log masuk.",
692
640
  waiting: "Menunggu imbasan",
@@ -698,8 +646,7 @@ var TRANSLATIONS = {
698
646
  cancel: "Batal",
699
647
  close: "Tutup",
700
648
  qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
701
- buttonContinue: "Teruskan dengan ZOREAL",
702
- openApp: "Buka ZOREAL ID"
649
+ buttonContinue: "Teruskan dengan ZOREAL"
703
650
  },
704
651
  // Nederlands
705
652
  nl: {
@@ -708,7 +655,6 @@ var TRANSLATIONS = {
708
655
  titlePresence: "Scan om te bewijzen dat je een echt mens bent",
709
656
  titleApprove: "Keur goed op je telefoon",
710
657
  bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
711
- bodyLink: "Keur deze aanmelding goed in de ZOREAL ID-app op deze telefoon.",
712
658
  bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
713
659
  bodyEnrolling: "Rond het instellen van ZOREAL ID op je telefoon af en keur daarna de aanmelding goed.",
714
660
  waiting: "Wachten op scan",
@@ -720,8 +666,7 @@ var TRANSLATIONS = {
720
666
  cancel: "Annuleren",
721
667
  close: "Sluiten",
722
668
  qrAlt: "QR-code om in te loggen met ZOREAL",
723
- buttonContinue: "Doorgaan met ZOREAL",
724
- openApp: "ZOREAL ID openen"
669
+ buttonContinue: "Doorgaan met ZOREAL"
725
670
  },
726
671
  // Norsk
727
672
  no: {
@@ -730,7 +675,6 @@ var TRANSLATIONS = {
730
675
  titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
731
676
  titleApprove: "Godkjenn p\xE5 telefonen din",
732
677
  bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
733
- bodyLink: "Godkjenn denne innloggingen i ZOREAL ID-appen p\xE5 denne telefonen.",
734
678
  bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
735
679
  bodyEnrolling: "Fullf\xF8r oppsettet av ZOREAL ID p\xE5 telefonen din, og godkjenn deretter innloggingen.",
736
680
  waiting: "Venter p\xE5 skanning",
@@ -742,8 +686,7 @@ var TRANSLATIONS = {
742
686
  cancel: "Avbryt",
743
687
  close: "Lukk",
744
688
  qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
745
- buttonContinue: "Fortsett med ZOREAL",
746
- openApp: "\xC5pne ZOREAL ID"
689
+ buttonContinue: "Fortsett med ZOREAL"
747
690
  },
748
691
  // Polski
749
692
  pl: {
@@ -752,7 +695,6 @@ var TRANSLATIONS = {
752
695
  titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
753
696
  titleApprove: "Zatwierd\u017A w telefonie",
754
697
  bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
755
- bodyLink: "Zatwierd\u017A to logowanie w aplikacji ZOREAL ID na tym telefonie.",
756
698
  bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
757
699
  bodyEnrolling: "Doko\u0144cz konfiguracj\u0119 ZOREAL ID w telefonie, a nast\u0119pnie zatwierd\u017A logowanie.",
758
700
  waiting: "Czekanie na skan",
@@ -764,8 +706,7 @@ var TRANSLATIONS = {
764
706
  cancel: "Anuluj",
765
707
  close: "Zamknij",
766
708
  qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
767
- buttonContinue: "Kontynuuj z ZOREAL",
768
- openApp: "Otw\xF3rz ZOREAL ID"
709
+ buttonContinue: "Kontynuuj z ZOREAL"
769
710
  },
770
711
  // Português (BR)
771
712
  "pt-br": {
@@ -774,7 +715,6 @@ var TRANSLATIONS = {
774
715
  titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
775
716
  titleApprove: "Aprove no seu celular",
776
717
  bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
777
- bodyLink: "Aprove este login no app ZOREAL ID neste celular.",
778
718
  bodyApprove: "Aprove o login no app ZOREAL ID.",
779
719
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu celular e depois aprove o login.",
780
720
  waiting: "Aguardando escaneamento",
@@ -786,8 +726,7 @@ var TRANSLATIONS = {
786
726
  cancel: "Cancelar",
787
727
  close: "Fechar",
788
728
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
789
- buttonContinue: "Continuar com ZOREAL",
790
- openApp: "Abrir ZOREAL ID"
729
+ buttonContinue: "Continuar com ZOREAL"
791
730
  },
792
731
  // Română
793
732
  ro: {
@@ -796,7 +735,6 @@ var TRANSLATIONS = {
796
735
  titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
797
736
  titleApprove: "Aproba\u021Bi de pe telefon",
798
737
  bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
799
- bodyLink: "Aproba\u021Bi aceast\u0103 conectare \xEEn aplica\u021Bia ZOREAL ID de pe acest telefon.",
800
738
  bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
801
739
  bodyEnrolling: "Finaliza\u021Bi configurarea ZOREAL ID pe telefon, apoi aproba\u021Bi conectarea.",
802
740
  waiting: "Se a\u0219teapt\u0103 scanarea",
@@ -808,8 +746,7 @@ var TRANSLATIONS = {
808
746
  cancel: "Anuleaz\u0103",
809
747
  close: "\xCEnchide",
810
748
  qrAlt: "Cod QR pentru conectare cu ZOREAL",
811
- buttonContinue: "Continua\u021Bi cu ZOREAL",
812
- openApp: "Deschide\u021Bi ZOREAL ID"
749
+ buttonContinue: "Continua\u021Bi cu ZOREAL"
813
750
  },
814
751
  // Српски
815
752
  sr: {
@@ -818,7 +755,6 @@ var TRANSLATIONS = {
818
755
  titlePresence: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0434\u0430 \u0434\u043E\u043A\u0430\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0442\u0435 \u043F\u0440\u0430\u0432\u0430 \u043E\u0441\u043E\u0431\u0430",
819
756
  titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
820
757
  bodyScan: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u043C \u0441\u0432\u043E\u0433 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u043E\u043C ZOREAL ID.",
821
- bodyLink: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043E\u0432\u0443 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u0443 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0438 ZOREAL ID \u043D\u0430 \u043E\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443.",
822
758
  bodyApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u0443 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0438 ZOREAL ID.",
823
759
  bodyEnrolling: "\u0414\u043E\u0432\u0440\u0448\u0438\u0442\u0435 \u043F\u043E\u0434\u0435\u0448\u0430\u0432\u0430\u045A\u0435 ZOREAL ID-\u0430 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443, \u043F\u0430 \u043E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043F\u0440\u0438\u0458\u0430\u0432\u0443.",
824
760
  waiting: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u0441\u043A\u0435\u043D\u0438\u0440\u0430\u045A\u0435",
@@ -830,8 +766,7 @@ var TRANSLATIONS = {
830
766
  cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
831
767
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
832
768
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430",
833
- buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C",
834
- openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
769
+ buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C"
835
770
  },
836
771
  // ไทย
837
772
  th: {
@@ -840,7 +775,6 @@ var TRANSLATIONS = {
840
775
  titlePresence: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E1E\u0E34\u0E2A\u0E39\u0E08\u0E19\u0E4C\u0E27\u0E48\u0E32\u0E04\u0E38\u0E13\u0E40\u0E1B\u0E47\u0E19\u0E21\u0E19\u0E38\u0E29\u0E22\u0E4C\u0E08\u0E23\u0E34\u0E07",
841
776
  titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
842
777
  bodyScan: "\u0E2A\u0E41\u0E01\u0E19\u0E14\u0E49\u0E27\u0E22\u0E01\u0E25\u0E49\u0E2D\u0E07\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E2B\u0E23\u0E37\u0E2D\u0E41\u0E2D\u0E1B ZOREAL ID",
843
- bodyLink: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E19\u0E35\u0E49\u0E43\u0E19\u0E41\u0E2D\u0E1B ZOREAL ID \u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49",
844
778
  bodyApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E43\u0E19\u0E41\u0E2D\u0E1B ZOREAL ID \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
845
779
  bodyEnrolling: "\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 ZOREAL ID \u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E43\u0E2B\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 \u0E41\u0E25\u0E49\u0E27\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
846
780
  waiting: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2A\u0E41\u0E01\u0E19",
@@ -852,8 +786,7 @@ var TRANSLATIONS = {
852
786
  cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
853
787
  close: "\u0E1B\u0E34\u0E14",
854
788
  qrAlt: "\u0E04\u0E34\u0E27\u0E2D\u0E32\u0E23\u0E4C\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E14\u0E49\u0E27\u0E22 ZOREAL",
855
- buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL",
856
- openApp: "\u0E40\u0E1B\u0E34\u0E14 ZOREAL ID"
789
+ buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL"
857
790
  },
858
791
  // Tagalog
859
792
  tl: {
@@ -862,7 +795,6 @@ var TRANSLATIONS = {
862
795
  titlePresence: "I-scan para patunayang tunay kang tao",
863
796
  titleApprove: "I-approve sa iyong telepono",
864
797
  bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
865
- bodyLink: "Aprubahan ang pag-sign in na ito sa ZOREAL ID app sa teleponong ito.",
866
798
  bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
867
799
  bodyEnrolling: "Tapusin muna ang pag-set up ng ZOREAL ID sa iyong telepono, pagkatapos ay i-approve ang login.",
868
800
  waiting: "Naghihintay ng scan",
@@ -874,8 +806,7 @@ var TRANSLATIONS = {
874
806
  cancel: "Kanselahin",
875
807
  close: "Isara",
876
808
  qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
877
- buttonContinue: "Magpatuloy gamit ang ZOREAL",
878
- openApp: "Buksan ang ZOREAL ID"
809
+ buttonContinue: "Magpatuloy gamit ang ZOREAL"
879
810
  },
880
811
  // Türkçe
881
812
  tr: {
@@ -884,7 +815,6 @@ var TRANSLATIONS = {
884
815
  titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
885
816
  titleApprove: "Telefonunuzdan onaylay\u0131n",
886
817
  bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
887
- bodyLink: "Bu giri\u015Fi bu telefondaki ZOREAL ID uygulamas\u0131nda onaylay\u0131n.",
888
818
  bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
889
819
  bodyEnrolling: "Telefonunuzda ZOREAL ID kurulumunu tamamlay\u0131n, ard\u0131ndan giri\u015Fi onaylay\u0131n.",
890
820
  waiting: "Tarama bekleniyor",
@@ -896,8 +826,7 @@ var TRANSLATIONS = {
896
826
  cancel: "\u0130ptal",
897
827
  close: "Kapat",
898
828
  qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
899
- buttonContinue: "ZOREAL ile devam et",
900
- openApp: "ZOREAL ID'yi a\xE7"
829
+ buttonContinue: "ZOREAL ile devam et"
901
830
  },
902
831
  // Українська
903
832
  uk: {
@@ -906,7 +835,6 @@ var TRANSLATIONS = {
906
835
  titlePresence: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435, \u0449\u043E\u0431 \u0434\u043E\u0432\u0435\u0441\u0442\u0438, \u0449\u043E \u0432\u0438 \u0441\u043F\u0440\u0430\u0432\u0436\u043D\u044F \u043B\u044E\u0434\u0438\u043D\u0430",
907
836
  titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
908
837
  bodyScan: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u044E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443 \u0430\u0431\u043E \u0434\u043E\u0434\u0430\u0442\u043A\u043E\u043C ZOREAL ID.",
909
- bodyLink: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0446\u0435\u0439 \u0432\u0445\u0456\u0434 \u0443 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0443 ZOREAL ID \u043D\u0430 \u0446\u044C\u043E\u043C\u0443 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456.",
910
838
  bodyApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0432\u0445\u0456\u0434 \u0443 \u0434\u043E\u0434\u0430\u0442\u043A\u0443 ZOREAL ID.",
911
839
  bodyEnrolling: "\u0417\u0430\u0432\u0435\u0440\u0448\u0456\u0442\u044C \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456, \u0430 \u043F\u043E\u0442\u0456\u043C \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0432\u0445\u0456\u0434.",
912
840
  waiting: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u043A\u0430\u043D\u0443\u0432\u0430\u043D\u043D\u044F",
@@ -918,8 +846,7 @@ var TRANSLATIONS = {
918
846
  cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
919
847
  close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
920
848
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
921
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL",
922
- openApp: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 ZOREAL ID"
849
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL"
923
850
  },
924
851
  // اردو
925
852
  ur: {
@@ -928,7 +855,6 @@ var TRANSLATIONS = {
928
855
  titlePresence: "\u06CC\u06C1 \u062B\u0627\u0628\u062A \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA \u06A9\u06C1 \u0622\u067E \u0627\u06CC\u06A9 \u062D\u0642\u06CC\u0642\u06CC \u0627\u0646\u0633\u0627\u0646 \u06C1\u06CC\u06BA",
929
856
  titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
930
857
  bodyScan: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u06A9\u06D2 \u06A9\u06CC\u0645\u0631\u06D2 \u06CC\u0627 ZOREAL ID \u0627\u06CC\u067E \u0633\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA\u06D4",
931
- bodyLink: "\u0627\u0633 \u0641\u0648\u0646 \u067E\u0631 ZOREAL ID \u0627\u06CC\u067E \u0645\u06CC\u06BA \u0627\u0633 \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
932
858
  bodyApprove: "\u0627\u067E\u0646\u06CC ZOREAL ID \u0627\u06CC\u067E \u0645\u06CC\u06BA \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
933
859
  bodyEnrolling: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 ZOREAL ID \u06A9\u06CC \u0633\u06CC\u0679 \u0627\u067E \u0645\u06A9\u0645\u0644 \u06A9\u0631\u06CC\u06BA\u060C \u067E\u06BE\u0631 \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
934
860
  waiting: "\u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
@@ -940,8 +866,7 @@ var TRANSLATIONS = {
940
866
  cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
941
867
  close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
942
868
  qrAlt: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 QR \u06A9\u0648\u0688",
943
- buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA",
944
- openApp: "ZOREAL ID \u06A9\u06BE\u0648\u0644\u06CC\u06BA"
869
+ buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA"
945
870
  },
946
871
  // Tiếng Việt
947
872
  vi: {
@@ -950,7 +875,6 @@ var TRANSLATIONS = {
950
875
  titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
951
876
  titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
952
877
  bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
953
- bodyLink: "Ph\xEA duy\u1EC7t l\u1EA7n \u0111\u0103ng nh\u1EADp n\xE0y trong \u1EE9ng d\u1EE5ng ZOREAL ID tr\xEAn \u0111i\u1EC7n tho\u1EA1i n\xE0y.",
954
878
  bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
955
879
  bodyEnrolling: "Ho\xE0n t\u1EA5t thi\u1EBFt l\u1EADp ZOREAL ID tr\xEAn \u0111i\u1EC7n tho\u1EA1i, sau \u0111\xF3 ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp.",
956
880
  waiting: "\u0110ang ch\u1EDD qu\xE9t m\xE3",
@@ -962,8 +886,7 @@ var TRANSLATIONS = {
962
886
  cancel: "H\u1EE7y",
963
887
  close: "\u0110\xF3ng",
964
888
  qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
965
- buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL",
966
- openApp: "M\u1EDF ZOREAL ID"
889
+ buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
967
890
  }
968
891
  };
969
892
  var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
@@ -1284,58 +1207,12 @@ var CSS = `
1284
1207
  dim glow. Paused rather than removed, so it does not jump back to its start
1285
1208
  on the way out. */
1286
1209
  .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::after,
1287
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after,
1288
- .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::after,
1289
- .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::after {
1210
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after {
1290
1211
  animation-play-state: paused;
1291
1212
  opacity: 0;
1292
1213
  }
1293
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before,
1294
- .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1295
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before,
1296
- .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1297
-
1298
- /* Same device: no code to scan. A round well with the mark carries the same
1299
- light while the sign-in is being created, and settles once the link below
1300
- it is ready to tap. A circle keeps the sweep even all the way round. */
1301
- .${PREFIX}-link-well {
1302
- position: relative;
1303
- display: grid;
1304
- place-items: center;
1305
- box-sizing: border-box;
1306
- width: 112px;
1307
- height: 112px;
1308
- margin: 20px auto 0;
1309
- border: 1px solid var(--zrl-line);
1310
- border-radius: 999px;
1311
- background: var(--zrl-surface-sunken);
1312
- --zrl-radius: 56px;
1313
- --zrl-beam-time: 4s;
1314
- }
1315
- .${PREFIX}-link-well svg { position: relative; }
1316
-
1317
- /* The control that opens the app: a real link, because a browser hands a
1318
- link to an app only from a tap. It has no address until the sign-in
1319
- exists, and reads as disabled until then. */
1320
- .${PREFIX}-open {
1321
- display: block;
1322
- box-sizing: border-box;
1323
- width: 100%;
1324
- margin: 20px 0 0;
1325
- padding: 12px 16px;
1326
- border-radius: 12px;
1327
- background: var(--zrl-accent);
1328
- color: #ffffff;
1329
- font: inherit;
1330
- font-size: 15px;
1331
- font-weight: 600;
1332
- text-align: center;
1333
- text-decoration: none;
1334
- cursor: pointer;
1335
- transition: opacity 200ms ease-out, transform 150ms ease-out;
1336
- }
1337
- .${PREFIX}-open:active { transform: scale(0.99); }
1338
- .${PREFIX}-open[aria-disabled="true"] { opacity: 0.45; cursor: default; pointer-events: none; }
1214
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1215
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1339
1216
 
1340
1217
  .${PREFIX}-qr {
1341
1218
  display: block;
@@ -1486,6 +1363,65 @@ var CSS = `
1486
1363
  }
1487
1364
 
1488
1365
  @keyframes ${PREFIX}-orbit { to { transform: rotate(360deg) } }
1366
+ /* THE BUSY RING. The light of the QR well, around any control that is
1367
+ waiting on the provider: the button on a phone between the tap and the
1368
+ hand-over to the app. The well's sweep is a cone from the centre, which is
1369
+ even on a square and useless on a wide button: it crawls along the long
1370
+ sides and lights two edges at once near the ends. So here the light is a
1371
+ dash on an SVG outline, which moves at one speed the whole way round
1372
+ whatever the shape, drawn with the well's tokens: its colour and head
1373
+ tint, its line width, its halo, its four second lap. pathLength makes the
1374
+ outline 100 units long, so every dash and offset is a percentage of the
1375
+ way round; the three layers share one head at 30 and differ in length
1376
+ and brightness, which is the comet's tail. Shown only while busy. */
1377
+ .${PREFIX}-ring {
1378
+ position: relative;
1379
+ display: inline-flex;
1380
+ vertical-align: middle;
1381
+ --zrl-beam-time: 4s;
1382
+ }
1383
+ .${PREFIX}-ring-svg {
1384
+ position: absolute;
1385
+ inset: -4px;
1386
+ width: calc(100% + 8px);
1387
+ height: calc(100% + 8px);
1388
+ overflow: visible;
1389
+ pointer-events: none;
1390
+ opacity: 0;
1391
+ transition: opacity 200ms ease-out;
1392
+ }
1393
+ .${PREFIX}-ring[data-busy="true"] > .${PREFIX}-ring-svg { opacity: 1; }
1394
+ .${PREFIX}-ring-svg rect {
1395
+ x: 2px;
1396
+ y: 2px;
1397
+ width: calc(100% - 4px);
1398
+ height: calc(100% - 4px);
1399
+ fill: none;
1400
+ stroke: var(--zrl-beam);
1401
+ stroke-width: var(--zrl-beam-line);
1402
+ stroke-linecap: round;
1403
+ animation: ${PREFIX}-dash var(--zrl-beam-time) linear infinite;
1404
+ }
1405
+ .${PREFIX}-ring-tail { stroke-dasharray: 30 70; stroke-dashoffset: 0; opacity: 0.35; }
1406
+ .${PREFIX}-ring-body { stroke-dasharray: 16 84; stroke-dashoffset: -14; opacity: 0.8; }
1407
+ .${PREFIX}-ring-head { stroke-dasharray: 5 95; stroke-dashoffset: -25; stroke: var(--zrl-beam-head); }
1408
+ .${PREFIX}-ring-halo {
1409
+ stroke-dasharray: 30 70;
1410
+ stroke-dashoffset: 0;
1411
+ stroke-width: calc(var(--zrl-glow-core) * 2 + var(--zrl-beam-line));
1412
+ opacity: calc(var(--zrl-glow-opacity) * 0.5);
1413
+ filter: blur(var(--zrl-glow-blur));
1414
+ }
1415
+ @keyframes ${PREFIX}-dash {
1416
+ to { stroke-dashoffset: calc(var(--zrl-dash-start, 0) - 100); }
1417
+ }
1418
+ .${PREFIX}-ring-body { --zrl-dash-start: -14; }
1419
+ .${PREFIX}-ring-head { --zrl-dash-start: -25; }
1420
+ @media (prefers-reduced-motion: reduce) {
1421
+ .${PREFIX}-ring-svg rect { animation: none; stroke-dasharray: none; opacity: 0.45; }
1422
+ .${PREFIX}-ring-halo, .${PREFIX}-ring-head { display: none; }
1423
+ }
1424
+
1489
1425
 
1490
1426
  @media (prefers-reduced-motion: reduce) {
1491
1427
  .${PREFIX}-scrim,
@@ -1545,11 +1481,9 @@ function PairingModal({
1545
1481
  const deadlineRef = (0, import_react.useRef)(0);
1546
1482
  const [remaining, setRemaining] = (0, import_react.useState)(Math.round(timeoutMs / 1e3));
1547
1483
  const settled = state.status === "claimed" || state.status === "enrolling";
1548
- const linkMode = state.appLink === true;
1549
- const ready = linkMode && Boolean(state.pairUrl);
1550
1484
  const [frameUrl, setFrameUrl] = (0, import_react.useState)(qrUrl);
1551
1485
  (0, import_react.useEffect)(() => {
1552
- if (linkMode || settled || frameUrl === qrUrl) return;
1486
+ if (settled || frameUrl === qrUrl) return;
1553
1487
  let abandoned = false;
1554
1488
  const next = new Image();
1555
1489
  next.onload = () => {
@@ -1563,7 +1497,7 @@ function PairingModal({
1563
1497
  next.onload = null;
1564
1498
  next.onerror = null;
1565
1499
  };
1566
- }, [qrUrl, settled, frameUrl, linkMode]);
1500
+ }, [qrUrl, settled, frameUrl]);
1567
1501
  const onCancelRef = (0, import_react.useRef)(onCancel);
1568
1502
  onCancelRef.current = onCancel;
1569
1503
  (0, import_react.useEffect)(() => {
@@ -1597,7 +1531,7 @@ function PairingModal({
1597
1531
  };
1598
1532
  }, []);
1599
1533
  if (typeof document === "undefined") return null;
1600
- const body = state.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : linkMode ? t.bodyLink : t.bodyScan;
1534
+ const body = state.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : t.bodyScan;
1601
1535
  return (0, import_react_dom.createPortal)(
1602
1536
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${cx("root")} ${cx("scrim")}`, "data-theme": theme, onClick: onCancel, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
1603
1537
  "div",
@@ -1614,30 +1548,13 @@ function PairingModal({
1614
1548
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ZorealLockup, { height: 44, className: cx("lockup") }),
1615
1549
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { id: titleId, className: cx("title"), children: settled ? t.titleApprove : titleFor(t, intent) }),
1616
1550
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("body-text"), children: body }),
1617
- linkMode ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
1618
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("link-well"), "data-ready": ready, children: [
1619
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow"), "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow-band") }) }),
1620
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam"), "aria-hidden": true }),
1621
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ZorealMark, { size: 48 })
1622
- ] }),
1623
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1624
- "a",
1625
- {
1626
- className: cx("open"),
1627
- href: ready ? state.pairUrl : void 0,
1628
- target: "_blank",
1629
- rel: "noopener",
1630
- "aria-disabled": ready ? void 0 : true,
1631
- children: t.openApp
1632
- }
1633
- )
1634
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("qr-well"), "data-spent": settled, children: [
1551
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("qr-well"), "data-spent": settled, children: [
1635
1552
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow"), "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow-band") }) }),
1636
1553
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam"), "aria-hidden": true }),
1637
1554
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("img", { className: cx("qr"), "data-spent": settled, src: frameUrl, alt: t.qrAlt, width: 180, height: 180 }),
1638
1555
  settled && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-overlay"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-badge"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(IconPhone, {}) }) })
1639
1556
  ] }),
1640
- (!linkMode || settled) && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("status"), children: [
1557
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("status"), children: [
1641
1558
  /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: cx("dot"), children: [
1642
1559
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", {}),
1643
1560
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", {})
@@ -1646,7 +1563,7 @@ function PairingModal({
1646
1563
  ] }),
1647
1564
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("timer"), "data-urgent": remaining <= URGENT_SECONDS, children: interpolate(t.expiresIn, mmss(remaining)) })
1648
1565
  ] }),
1649
- !linkMode && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("help"), children: [
1566
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("help"), children: [
1650
1567
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("help-title"), children: t.noIdTitle }),
1651
1568
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("help-body"), children: t.noIdBody })
1652
1569
  ] }),
@@ -1713,7 +1630,7 @@ function useZorealOAuth() {
1713
1630
  }
1714
1631
 
1715
1632
  // src/ZorealLogin.tsx
1716
- var import_react4 = require("react");
1633
+ var import_react5 = require("react");
1717
1634
 
1718
1635
  // src/useZorealLogin.ts
1719
1636
  var import_react3 = require("react");
@@ -1947,18 +1864,6 @@ function useZorealFlow(options) {
1947
1864
  const useAppLink = display === "link";
1948
1865
  const intent = resolveIntent(opts.intent, opts.scope, opts.acr_values);
1949
1866
  try {
1950
- if (useAppLink) {
1951
- const cancel = () => {
1952
- controller.abort();
1953
- publishRef.current?.(null);
1954
- };
1955
- publishRef.current?.({
1956
- state: { status: "pending", appLink: true, intent, cancel },
1957
- qrUrl: "",
1958
- intent,
1959
- cancel
1960
- });
1961
- }
1962
1867
  const started = await startPairing(issuer, {
1963
1868
  client_id: clientId,
1964
1869
  scope: opts.scope ?? "openid",
@@ -2003,8 +1908,13 @@ function useZorealFlow(options) {
2003
1908
  cancel
2004
1909
  };
2005
1910
  setPairing(active);
2006
- publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
1911
+ if (!useAppLink) {
1912
+ publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
1913
+ }
2007
1914
  opts.onPairingStateChange?.(active.state);
1915
+ if (useAppLink) {
1916
+ window.location.assign(started.pair_url);
1917
+ }
2008
1918
  code = await pollUntilApproved(
2009
1919
  issuer,
2010
1920
  started.request_id,
@@ -2014,7 +1924,9 @@ function useZorealFlow(options) {
2014
1924
  setPairing(
2015
1925
  (p) => p && p.requestId === started.request_id ? { ...p, qrUrl, state: enriched } : p
2016
1926
  );
2017
- publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
1927
+ if (!useAppLink) {
1928
+ publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
1929
+ }
2018
1930
  opts.onPairingStateChange?.(enriched);
2019
1931
  },
2020
1932
  controller.signal,
@@ -2085,8 +1997,45 @@ function useZorealLogin(options) {
2085
1997
  }).login;
2086
1998
  }
2087
1999
 
2088
- // src/ZorealLogin.tsx
2000
+ // src/ring.tsx
2001
+ var import_react4 = require("react");
2089
2002
  var import_jsx_runtime5 = require("react/jsx-runtime");
2003
+ function ZorealBusyRing({
2004
+ busy,
2005
+ radius = 8,
2006
+ theme = "auto",
2007
+ block = false,
2008
+ className,
2009
+ style,
2010
+ children
2011
+ }) {
2012
+ (0, import_react4.useEffect)(() => {
2013
+ ensureStyles();
2014
+ }, []);
2015
+ const rx = radius + 2;
2016
+ const layer = (name) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("rect", { className: cx(name), rx, ry: rx, pathLength: 100 });
2017
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
2018
+ "span",
2019
+ {
2020
+ className: className ? `${cx("root")} ${cx("ring")} ${className}` : `${cx("root")} ${cx("ring")}`,
2021
+ "data-theme": theme,
2022
+ "data-busy": busy,
2023
+ style: block ? { display: "flex", ...style } : style,
2024
+ children: [
2025
+ children,
2026
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { className: cx("ring-svg"), "aria-hidden": "true", children: [
2027
+ layer("ring-halo"),
2028
+ layer("ring-tail"),
2029
+ layer("ring-body"),
2030
+ layer("ring-head")
2031
+ ] })
2032
+ ]
2033
+ }
2034
+ );
2035
+ }
2036
+
2037
+ // src/ZorealLogin.tsx
2038
+ var import_jsx_runtime6 = require("react/jsx-runtime");
2090
2039
  var TEXTS = {
2091
2040
  continue_with: null,
2092
2041
  signin_with: "Sign in with ZOREAL",
@@ -2095,9 +2044,9 @@ var TEXTS = {
2095
2044
  verify_with: "Verify with ZOREAL ID"
2096
2045
  };
2097
2046
  var SIZES = {
2098
- large: { height: 44, font: 15, pad: 20 },
2099
- medium: { height: 38, font: 14, pad: 16 },
2100
- small: { height: 32, font: 12, pad: 12 }
2047
+ large: { height: 50, font: 14, pad: 20, mark: 22, gap: 12, radius: 12 },
2048
+ medium: { height: 42, font: 14, pad: 16, mark: 20, gap: 10, radius: 10 },
2049
+ small: { height: 34, font: 12, pad: 12, mark: 16, gap: 8, radius: 8 }
2101
2050
  };
2102
2051
  function ZorealLogin(props) {
2103
2052
  const {
@@ -2105,11 +2054,11 @@ function ZorealLogin(props) {
2105
2054
  onError,
2106
2055
  containerProps,
2107
2056
  type = "standard",
2108
- theme = "filled",
2057
+ theme = "outline",
2109
2058
  size = "large",
2110
2059
  text = "continue_with",
2111
2060
  shape = "rectangular",
2112
- logo_alignment = "left",
2061
+ logo_alignment = "center",
2113
2062
  width,
2114
2063
  click_listener,
2115
2064
  flow = "browser-direct",
@@ -2117,21 +2066,36 @@ function ZorealLogin(props) {
2117
2066
  } = props;
2118
2067
  const { locale } = useZorealOAuth();
2119
2068
  const label = TEXTS[text] ?? strings(locale).buttonContinue;
2069
+ const [busy, setBusy] = (0, import_react5.useState)(false);
2120
2070
  const { login } = useZorealFlow({
2121
2071
  ...request,
2122
2072
  flow,
2123
- onCredential: flow === "browser-direct" ? onSuccess : void 0,
2124
- onCode: flow === "auth-code" ? onSuccess : void 0,
2125
- onError: (e) => onError?.({ type: "unknown", description: e.description ?? e.error }),
2126
- onNonOAuthError: (e) => onError?.(e)
2073
+ onCredential: flow === "browser-direct" ? (r) => {
2074
+ setBusy(false);
2075
+ onSuccess(r);
2076
+ } : void 0,
2077
+ onCode: flow === "auth-code" ? (r) => {
2078
+ setBusy(false);
2079
+ onSuccess(r);
2080
+ } : void 0,
2081
+ onError: (e) => {
2082
+ setBusy(false);
2083
+ onError?.({ type: "unknown", description: e.description ?? e.error });
2084
+ },
2085
+ onNonOAuthError: (e) => {
2086
+ setBusy(false);
2087
+ onError?.(e);
2088
+ }
2127
2089
  });
2128
2090
  const s = SIZES[size];
2129
- const style = (0, import_react4.useMemo)(
2091
+ const radius = shape === "pill" ? s.height / 2 : shape === "square" ? 4 : s.radius;
2092
+ const brandMark = theme !== "filled";
2093
+ const style = (0, import_react5.useMemo)(
2130
2094
  () => ({
2131
2095
  display: "inline-flex",
2132
2096
  alignItems: "center",
2133
2097
  justifyContent: logo_alignment === "center" ? "center" : "flex-start",
2134
- gap: 10,
2098
+ gap: s.gap,
2135
2099
  height: s.height,
2136
2100
  padding: `0 ${s.pad}px`,
2137
2101
  width,
@@ -2139,30 +2103,34 @@ function ZorealLogin(props) {
2139
2103
  fontFamily: "inherit",
2140
2104
  fontWeight: 500,
2141
2105
  cursor: "pointer",
2142
- borderRadius: shape === "pill" ? s.height / 2 : shape === "square" ? 4 : 8,
2143
- ...theme === "outline" ? { background: "transparent", color: "inherit", border: "1px solid rgba(128,128,128,0.5)" } : theme === "filled_black" ? { background: "#111", color: "#fff", border: "1px solid #111" } : { background: "#00b4d9", color: "#fff", border: "1px solid #00b4d9" }
2106
+ borderRadius: radius,
2107
+ ...theme === "outline" ? { background: "#ffffff", color: "#16181c", border: "1px solid #e2e4de" } : theme === "filled_black" ? { background: "#111", color: "#fff", border: "1px solid #111" } : { background: "#00b4d9", color: "#fff", border: "1px solid #00b4d9" }
2144
2108
  }),
2145
- [logo_alignment, s, shape, theme, width]
2109
+ [logo_alignment, s, radius, theme, width]
2146
2110
  );
2147
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { ...containerProps, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
2111
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { ...containerProps, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ZorealBusyRing, { busy, radius, theme: theme === "outline" ? "auto" : "light", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
2148
2112
  "button",
2149
2113
  {
2150
2114
  type: "button",
2151
- style,
2115
+ style: busy ? { ...style, cursor: "progress" } : style,
2116
+ disabled: busy,
2117
+ "aria-busy": busy,
2152
2118
  onClick: () => {
2119
+ if (busy) return;
2153
2120
  click_listener?.();
2121
+ setBusy(true);
2154
2122
  login();
2155
2123
  },
2156
2124
  children: [
2157
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ZorealMark, { size: Math.round(s.font * 1.25) }),
2125
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ZorealMark, { size: s.mark, brand: brandMark }),
2158
2126
  type === "standard" && label
2159
2127
  ]
2160
2128
  }
2161
- ) });
2129
+ ) }) });
2162
2130
  }
2163
2131
 
2164
2132
  // src/useZorealAutoLogin.ts
2165
- var import_react5 = require("react");
2133
+ var import_react6 = require("react");
2166
2134
  function useZorealAutoLogin(options) {
2167
2135
  const { login } = useZorealFlow({
2168
2136
  flow: "browser-direct",
@@ -2179,8 +2147,8 @@ function useZorealAutoLogin(options) {
2179
2147
  },
2180
2148
  onNonOAuthError: (e) => options.onError?.(e)
2181
2149
  });
2182
- const fired = (0, import_react5.useRef)(false);
2183
- (0, import_react5.useEffect)(() => {
2150
+ const fired = (0, import_react6.useRef)(false);
2151
+ (0, import_react6.useEffect)(() => {
2184
2152
  if (options.disabled || fired.current) return;
2185
2153
  fired.current = true;
2186
2154
  login();
@@ -2204,6 +2172,7 @@ function hasGrantedAnyScopeZoreal(response, firstScope, ...restScopes) {
2204
2172
  0 && (module.exports = {
2205
2173
  DEFAULT_PAIRING_TIMEOUT_MS,
2206
2174
  PairingModal,
2175
+ ZorealBusyRing,
2207
2176
  ZorealLogin,
2208
2177
  ZorealOAuthProvider,
2209
2178
  hasGrantedAllScopesZoreal,