import React from "react"; /** * Numeric PIN entry pad with a filled-dots indicator. Theme-driven (uses * the active palette via NativeWind classes). Self-manages the entered * digits and fires `onComplete` when `length` is reached; pass a changing * `resetKey` to clear it (e.g. after a wrong PIN). * * # Sizing * * The pad fills the width it is given instead of sitting at a fixed 288px. On a * modern phone a fixed pad reads as a small control marooned in the middle of a * large screen — and this is the primary way into the app for a device-only * vault, so it should feel like the screen's purpose rather than a widget on it. * Keys grow with the available width and stop at `MAX_KEY` so a tablet does not * get comedy-sized buttons. * * The width comes from the pad's own `onLayout`, not from the viewport. It is * usually inside a card inside a padded screen, and every one of those layers * takes width the window knows nothing about — sizing off the window overflowed * the card it sat in. * * # How the keys read * * A hairline ring at rest and nothing else: no fill, mono digits, the same * quiet treatment the rest of the product uses. The ring is what makes a target * a target — an earlier pass filled the keys as well, and that was too heavy * beside everything around it. * * The press is where the weight goes instead: the ring brightens, a fill fades * in under it, and the key dips in scale. Three layered responses because the * resting state is deliberately understated, and "did that register?" is the * entire question somebody entering a PIN is asking. */ export interface PinPadProps { length?: number; onComplete: (pin: string) => void; onChange?: (pin: string) => void; /** Show a biometric key (bottom-left); omit to leave that slot blank. */ onBiometric?: () => void; /** Bump to clear the entered digits. */ resetKey?: string | number; error?: boolean; /** * Haptic feedback on each key. On by default, and a no-op on web and on any * device without a haptic engine. Pass `false` where a press already triggers * feedback of its own. */ haptics?: boolean; } export declare function PinPad({ length, onComplete, onChange, onBiometric, resetKey, error, haptics, }: PinPadProps): React.JSX.Element; export default PinPad; //# sourceMappingURL=pin-pad.d.ts.map