/**
* @fileoverview InputOTP primitive — one-time password input with individual character slots.
* Built on the input-otp library. Part of the Saasflare base component layer.
* @module packages/ui/components/ui/input-otp
* @layer core
*
* @component
* @example
* import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@saasflare/ui';
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
import * as React from "react";
import { OTPInput } from "input-otp";
import { type SaasflareComponentProps } from "../../providers";
/**
* Props for {@link InputOTP}.
*
* Extends the `input-otp` OTPInput props with {@link SaasflareComponentProps}.
* `containerClassName` styles the outer flex wrapper; `className` styles the
* underlying input element.
*/
type InputOTPProps = React.ComponentProps & SaasflareComponentProps & {
containerClassName?: string;
};
/**
* Root one-time-password input. Owns focus management and the hidden input
* via the `input-otp` library; resolves the Saasflare contract axes and emits
* `data-surface`/`data-radius`/`data-animated` for downstream theming.
*/
declare function InputOTP({ className, containerClassName, surface, radius, animated, iconWeight, ...props }: InputOTPProps): import("react/jsx-runtime").JSX.Element;
/** Props for {@link InputOTPGroup}. */
interface InputOTPGroupProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps {
}
/**
* Visual grouping for a run of {@link InputOTPSlot}s. Resolves the contract
* axes and emits `data-surface`/`data-radius`/`data-animated` so the group
* stays consistent with the rest of the OTP family.
*/
declare function InputOTPGroup({ className, surface, radius, animated, iconWeight, ...props }: InputOTPGroupProps): import("react/jsx-runtime").JSX.Element;
/** Props for {@link InputOTPSlot}. */
interface InputOTPSlotProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps {
/** Zero-based position of this slot within the OTP value. */
index: number;
}
/**
* A single visible character box. Renders the bordered/rounded cell plus the
* blinking fake caret. Resolves the contract axes and emits
* `data-surface`/`data-radius`/`data-animated` so per-slot theming applies.
*/
declare function InputOTPSlot({ index, className, surface, radius, animated, iconWeight, ...props }: InputOTPSlotProps): import("react/jsx-runtime").JSX.Element;
/** Props for {@link InputOTPSeparator}. */
interface InputOTPSeparatorProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps {
}
/**
* Visual divider between OTP groups, rendering a Phosphor `MinusIcon` whose
* weight follows the resolved `iconWeight` axis.
*/
declare function InputOTPSeparator({ surface, radius, animated, iconWeight, ...props }: InputOTPSeparatorProps): import("react/jsx-runtime").JSX.Element;
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator, type InputOTPProps, type InputOTPGroupProps, type InputOTPSlotProps, type InputOTPSeparatorProps, };