diff --git a/apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx b/apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx index 98bcacf10..5af9ced18 100644 --- a/apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx @@ -18,7 +18,7 @@ import { FormLabel, FormMessage, } from '@documenso/ui/primitives/form/form'; -import { Input } from '@documenso/ui/primitives/input'; +import { PinInput, PinInputGroup, PinInputSlot } from '@documenso/ui/primitives/pin-input'; import { EnableAuthenticatorAppDialog } from '~/components/forms/2fa/enable-authenticator-app-dialog'; @@ -138,7 +138,15 @@ export const DocumentActionAuth2FA = ({ 2FA token - + + {Array(6) + .fill(null) + .map((_, i) => ( + + + + ))} + diff --git a/apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx b/apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx index c5745a499..5949d14bb 100644 --- a/apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx +++ b/apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx @@ -28,7 +28,7 @@ import { FormItem, FormMessage, } from '@documenso/ui/primitives/form/form'; -import { Input } from '@documenso/ui/primitives/input'; +import { PinInput, PinInputGroup, PinInputSlot } from '@documenso/ui/primitives/pin-input'; import { useToast } from '@documenso/ui/primitives/use-toast'; export const ZDisable2FAForm = z.object({ @@ -107,7 +107,15 @@ export const DisableAuthenticatorAppDialog = () => { render={({ field }) => ( - + + {Array(6) + .fill(null) + .map((_, i) => ( + + + + ))} + diff --git a/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx b/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx index ce0b66ba4..96cbf6d1f 100644 --- a/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx +++ b/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx @@ -30,7 +30,7 @@ import { FormLabel, FormMessage, } from '@documenso/ui/primitives/form/form'; -import { Input } from '@documenso/ui/primitives/input'; +import { PinInput, PinInputGroup, PinInputSlot } from '@documenso/ui/primitives/pin-input'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { RecoveryCodeList } from './recovery-code-list'; @@ -212,7 +212,15 @@ export const EnableAuthenticatorAppDialog = ({ onSuccess }: EnableAuthenticatorA Token - + + {Array(6) + .fill(null) + .map((_, i) => ( + + + + ))} + diff --git a/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx b/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx index 8a6177b5b..3c5c4e5ca 100644 --- a/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx +++ b/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx @@ -30,7 +30,7 @@ import { FormItem, FormMessage, } from '@documenso/ui/primitives/form/form'; -import { Input } from '@documenso/ui/primitives/input'; +import { PinInput, PinInputGroup, PinInputSlot } from '@documenso/ui/primitives/pin-input'; import { RecoveryCodeList } from './recovery-code-list'; @@ -115,7 +115,15 @@ export const ViewRecoveryCodesDialog = () => { render={({ field }) => ( - + + {Array(6) + .fill(null) + .map((_, i) => ( + + + + ))} + diff --git a/apps/web/src/components/forms/signin.tsx b/apps/web/src/components/forms/signin.tsx index 8d4dd7cd0..59b8af6c7 100644 --- a/apps/web/src/components/forms/signin.tsx +++ b/apps/web/src/components/forms/signin.tsx @@ -38,6 +38,7 @@ import { } from '@documenso/ui/primitives/form/form'; import { Input } from '@documenso/ui/primitives/input'; import { PasswordInput } from '@documenso/ui/primitives/password-input'; +import { PinInput, PinInputGroup, PinInputSlot } from '@documenso/ui/primitives/pin-input'; import { useToast } from '@documenso/ui/primitives/use-toast'; const ERROR_MESSAGES: Partial> = { @@ -372,9 +373,17 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign name="totpCode" render={({ field }) => ( - Authentication Token + Token - + + {Array(6) + .fill(null) + .map((_, i) => ( + + + + ))} + diff --git a/packages/ui/primitives/pin-input.tsx b/packages/ui/primitives/pin-input.tsx index 3c51a49c6..1d80dd3ad 100644 --- a/packages/ui/primitives/pin-input.tsx +++ b/packages/ui/primitives/pin-input.tsx @@ -2,9 +2,10 @@ import * as React from 'react'; -import { cn } from '@/lib/utils'; -import { DashIcon } from '@radix-ui/react-icons'; import { OTPInput, OTPInputContext } from 'input-otp'; +import { Minus } from 'lucide-react'; + +import { cn } from '../lib/utils'; const PinInput = React.forwardRef< React.ElementRef, @@ -43,7 +44,7 @@ const PinInputSlot = React.forwardRef< >(({ ...props }, ref) => ( - + ));