UNPKG

xlibs-components

Version:

Modern React component library with Aceternity, MagicUI, and ShadCN components for building beautiful web applications

16 lines (15 loc) 1.58 kB
"use client"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import * as React from "react"; import { DashIcon } from "@radix-ui/react-icons"; import { OTPInput } from "input-otp"; import { cn } from '../../lib/utils.js'; const InputOTP = React.forwardRef(({ className, ...props }, ref) => (_jsx(OTPInput, { ref: ref, containerClassName: cn("flex items-center gap-2", className), ...props }))); InputOTP.displayName = "InputOTP"; const InputOTPGroup = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex items-center gap-2", className), ...props }))); InputOTPGroup.displayName = "InputOTPGroup"; const InputOTPSlot = React.forwardRef(({ char, hasFakeCaret, isActive, className, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn("relative flex h-10 w-10 items-center justify-center border-y border-r border-l text-sm transition-all first:rounded-l-md last:rounded-r-md", isActive && "z-10 ring-2 ring-ring ring-offset-background", className), ...props, children: [char, hasFakeCaret && (_jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center animate-caret-blink", children: _jsx("div", { className: "h-4 w-px bg-foreground duration-150" }) }))] }))); InputOTPSlot.displayName = "InputOTPSlot"; const InputOTPSeparator = React.forwardRef(({ ...props }, ref) => (_jsx("div", { ref: ref, role: "separator", ...props, children: _jsx(DashIcon, {}) }))); InputOTPSeparator.displayName = "InputOTPSeparator"; export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };