input-otp
draco-china-github/input-otpFreeComponent
shadcn/ui publishes no description for this item.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/draco-china/shadcn-pro/main/apps/docs/public/r/styles/radix-sera/input-otp.jsonSource
1"use client"23import * as React from "react"4import { OTPInput, OTPInputContext } from "input-otp"56import { cn } from "@/registry/radix-sera/lib/utils"7import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"89function InputOTP({10 className,11 containerClassName,12 ...props13}: React.ComponentProps<typeof OTPInput> & {14 containerClassName?: string15}) {16 return (17 <OTPInput18 data-slot="input-otp"19 containerClassName={cn(20 "cn-input-otp flex items-center has-disabled:opacity-50",21 containerClassName22 )}23 spellCheck={false}24 className={cn("disabled:cursor-not-allowed", className)}25 {...props}26 />27 )28}2930function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">) {31 return (32 <div33 data-slot="input-otp-group"34 className={cn(35 "flex items-center gap-1 rounded-none has-aria-invalid:border-b-destructive dark:has-aria-invalid:border-b-destructive/50",36 className37 )}38 {...props}39 />40 )41}4243function InputOTPSlot({44 index,45 className,46 ...props47}: React.ComponentProps<"div"> & {48 index: number49}) {50 const inputOTPContext = React.useContext(OTPInputContext)51 const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}5253 return (54 <div55 data-slot="input-otp-slot"56 data-active={isActive}57 className={cn(58 "relative flex size-10 items-center justify-center border border-transparent border-b-input bg-transparent text-sm transition-[color,border-color] outline-none first:rounded-none last:rounded-none aria-invalid:border-b-destructive data-[active=true]:z-10 data-[active=true]:border-b-ring dark:aria-invalid:border-b-destructive/50",59 className60 )}61 {...props}62 >63 {char}64 {hasFakeCaret && (65 <div className="pointer-events-none absolute inset-0 flex items-center justify-center">66 <div className="h-4 w-px animate-caret-blink bg-foreground duration-1000" />67 </div>68 )}69 </div>70 )71}7273function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) {74 return (75 <div76 data-slot="input-otp-separator"77 className="flex items-center [&_svg:not([class*='size-'])]:size-3.5"78 role="separator"79 {...props}80 >81 <IconPlaceholder82 lucide="MinusIcon"83 tabler="IconMinus"84 hugeicons="MinusSignIcon"85 phosphor="MinusIcon"86 remixicon="RiSubtractLine"87 />88 </div>89 )90}9192// … truncated
What it pulls in
npm packages
Files it writes
More from shadcn/ui
All 201 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | shadcn/ui | Components | Free | no deps | |
| alertalert | shadcn/ui | Components | Free | no deps | |
| alert-dialogalert-dialog | shadcn/ui | Components | Free | no deps | |
| aspect-ratioaspect-ratio | shadcn/ui | Components | Free | no deps | |
| avataravatar | shadcn/ui | Components | Free | no deps | |
| badgebadge | shadcn/ui | Components | Free | no deps | |
| breadcrumbbreadcrumb | shadcn/ui | Components | Free | no deps | |
| buttonbutton | shadcn/ui | Components | Free | no deps |
