15
15
<div class =" p-10 w-full max-w-md max-h-full custom-auth-wrapper" >
16
16
<div class =" m-3" >{{$t('Scan this QR code with your authenticator app or open by')}} <a class =" text-blue-600" :href =" totpUri" >{{$t('click')}}</a ></div >
17
17
<div class =" flex justify-center m-3" >
18
- <img :src =" totpQrCode" class =" min-w-[200px], min-h-[200px]" alt =" QR code" />
18
+ <img :src =" totpQrCode" class =" min-w-[200px] min-h-[200px]" alt =" QR code" />
19
19
</div >
20
- <div class =" m-3 " >
21
- <div class =" m-1" >{{$t('Or copy this code to app manually:')}}</div >
22
- <div class =" w-full" >
23
- <div class =" relative" >
24
- <label for =" npm-install-copy-text" class =" sr-only" >{{$t('Label')}}</label >
25
- <input id =" npm-install-copy-text" type =" text" class =" col-span-10 bg-gray-50 border border-gray-300 text-gray-500 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full px-2.5 py-4 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-400 dark:focus:ring-blue-500 dark:focus:border-blue-500 pr-12" :value =" totp.newSecret" readonly >
26
- <button @click =" onCopyClick" data-copy-to-clipboard-target =" npm-install-copy-text" class =" absolute end-2.5 top-1/2 -translate-y-1/2 text-gray-900 dark:text-gray-400 hover:bg-gray-100 dark:bg-gray-800 dark:border-gray-600 dark:hover:bg-gray-700 rounded-lg py-2 px-2.5 inline-flex items-center justify-center bg-white border-gray-200 border" >
27
- <span id =" default-message" class =" inline-flex items-center" >
28
- <svg class =" w-3 h-4" aria-hidden =" true" xmlns =" http://www.w3.org/2000/svg" fill =" currentColor" viewBox =" 0 0 18 20" >
29
- <path d =" M16 1h-3.278A1.992 1.992 0 0 0 11 0H7a1.993 1.993 0 0 0-1.722 1H2a2 2 0 0 0-2 2v15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2Zm-3 14H5a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2Zm0-4H5a1 1 0 0 1 0-2h8a1 1 0 1 1 0 2Zm0-5H5a1 1 0 0 1 0-2h2V2h4v2h2a1 1 0 1 1 0 2Z" />
30
- </svg >
31
- </span >
32
- </button >
33
- </div >
34
- </div >
35
- </div >
36
- <div class =" my-4 w-full flex justify-center p-2" ref =" otpRoot" >
20
+ <div class =" m-1" >{{$t('Or copy this code to app manually:')}}</div >
21
+ <div class =" w-full" >
22
+ <div class =" relative" >
23
+ <label for =" npm-install-copy-text" class =" sr-only" >{{$t('Label')}}</label >
24
+ <input id =" npm-install-copy-text" type =" text" class =" col-span-10 bg-gray-50 border border-gray-300 text-gray-500 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full px-2.5 py-4 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-400 dark:focus:ring-blue-500 dark:focus:border-blue-500 pr-12" :value =" totp.newSecret" readonly >
25
+ <button @click =" onCopyClick" data-copy-to-clipboard-target =" npm-install-copy-text" class =" absolute end-2.5 top-1/2 -translate-y-1/2 text-gray-900 dark:text-gray-400 hover:bg-gray-100 dark:bg-gray-800 dark:border-gray-600 dark:hover:bg-gray-700 rounded-lg py-2 px-2.5 inline-flex items-center justify-center bg-white border-gray-200 border" >
26
+ <span id =" default-message" class =" inline-flex items-center" >
27
+ <svg class =" w-3 h-4" aria-hidden =" true" xmlns =" http://www.w3.org/2000/svg" fill =" currentColor" viewBox =" 0 0 18 20" >
28
+ <path d =" M16 1h-3.278A1.992 1.992 0 0 0 11 0H7a1.993 1.993 0 0 0-1.722 1H2a2 2 0 0 0-2 2v15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2Zm-3 14H5a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2Zm0-4H5a1 1 0 0 1 0-2h8a1 1 0 1 1 0 2Zm0-5H5a1 1 0 0 1 0-2h2V2h4v2h2a1 1 0 1 1 0 2Z" />
29
+ </svg >
30
+ </span >
31
+ </button >
32
+ </div >
33
+ </div >
34
+ <div class =" my-4 w-full flex justify-center" ref =" otpRoot" >
37
35
<v-otp-input
38
36
ref =" code"
39
37
container-class =" grid grid-cols-6 gap-3 w-full"
40
- input-classes =" otp-input bg-gray-50 text-center border leading-none border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block h-[43.33px ] w-full dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
38
+ input-classes =" otp-input bg-gray-50 text-center border leading-none border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block h-[46px ] w-full dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
41
39
:num-inputs =" 6"
42
40
inputType =" number"
43
41
inputmode =" numeric"
48
46
/>
49
47
</div >
50
48
<!-- <Vue2FACodeInput v-model="code" autofocus /> -->
51
- <div class =" flex flex-row gap-2.5 px-3 h-12" >
49
+ <div class =" flex flex-row gap-2.5 h-12" >
52
50
<LinkButton to =" /login" class =" w-full" >
53
51
{{$t('Back to login')}}
54
52
</LinkButton >
@@ -220,8 +218,9 @@ const handleSkip = async () => {
220
218
}
221
219
}
222
220
</script >
223
- <style >
224
- .otp-input {
225
- margin : 0 5px ;
226
- }
221
+ <style scoped>
222
+ :deep(.otp-input-container ) {
223
+ display : flex ;
224
+ gap : 0.75rem ;
225
+ }
227
226
</style >
0 commit comments