/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { MinusSignIcon } from '@hugeicons/core-free-icons' import { HugeiconsIcon } from '@hugeicons/react' import { OTPInput, OTPInputContext } from 'input-otp' import * as React from 'react' import { cn } from '@/lib/utils' function InputOTP({ className, containerClassName, ...props }: React.ComponentProps & { containerClassName?: string }) { return ( ) } function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) { return (
) } function InputOTPSlot({ index, className, ...props }: React.ComponentProps<'div'> & { index: number }) { const inputOTPContext = React.useContext(OTPInputContext) const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {} return (
{char} {hasFakeCaret && (
)}
) } function InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) { return (
) } export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }