{ "$schema": "https://blode.co/ui/schema/registry-item.json", "name": "input-otp", "title": "Input OTP", "author": "Matthew Blode", "description": "A one-time password input with individual character fields.", "dependencies": ["input-otp"], "files": [ { "path": "ui/input-otp.tsx", "content": "\"use client\";\n\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport type * as React from \"react\";\nimport { useContext } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst InputOTP = ({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps & {\n containerClassName?: string;\n}) => (\n \n);\n\nconst InputOTPGroup = ({ className, ...props }: React.ComponentProps<\"div\">) => (\n
\n);\n\nconst InputOTPSlot = ({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) => {\n const inputOTPContext = useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n \n {char}\n {hasFakeCaret && (\n
\n
\n
\n )}\n {isActive && (\n
\n )}\n
\n );\n};\n\nconst InputOTPSeparator = ({ className, ...props }: React.ComponentProps<\"hr\">) => (\n \n);\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n", "type": "registry:ui", "target": "" } ], "type": "registry:ui" }