import { type IInvalidable } from '../../../Behaviors/Invalidable'; import { PinMode } from '../../../Types/PinMode'; import { InputBaseElement } from '../Abstracts/InputBase'; import type { IPinBoxElementProps } from './IPinBoxElementProps'; declare const PinBoxElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array) => IInvalidable & import("../../../Behaviors/Invalidable").IInvalidableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Valueable").IValueableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & typeof InputBaseElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Pin Box - A secure multi-field input control for entering PIN codes and verification numbers. * * @description * The Pin Box component provides a specialized interface for entering personal identification numbers (PINs), * verification codes, and other secure numeric sequences. It displays a series of individual input fields, * each accepting a single character, creating a familiar PIN entry experience. Features include automatic * cursor advancement between fields, backspace navigation, support for both visible and masked input modes, * keyboard navigation with arrow keys, paste support for quick entry, configurable field count, validation * support, and comprehensive accessibility features. The component ensures secure input handling and provides * visual feedback for each character position. Ideal for authentication flows, two-factor authentication, * security verification, and any scenario requiring secure code entry. * * @name Pin Box * @element mosaik-pinbox * @category Inputs * * @csspart root - The root container for all PIN input fields. * @csspart focusRing - The focus ring indicator for each input field. * @csspart input - Individual PIN digit input fields. * * @cssprop {Color} --pin-box-background-color - The background color. * @cssprop {Color} --pin-box-border-color - The border color. * @cssprop {String} --pin-box-border-radius - The border radius. * @cssprop {String} --pin-box-border-style - The border style. * @cssprop {String} --pin-box-border-width - The border width. * @cssprop {String} --pin-box-font-family - The font family. * @cssprop {String} --pin-box-font-size - The font size. * @cssprop {String} --pin-box-font-weight - The font weight. * @cssprop {Color} --pin-box-foreground-color - The foreground color. * @cssprop {String} --pin-box-gap - The gap between input fields. * @cssprop {String} --pin-box-height - The height. * @cssprop {String} --pin-box-padding-bottom - The padding bottom. * @cssprop {String} --pin-box-padding-left - The padding left. * @cssprop {String} --pin-box-padding-right - The padding right. * @cssprop {String} --pin-box-padding-top - The padding top. * @cssprop {String} --pin-box-shadow - The shadow. * @cssprop {String} --pin-box-transition-duration - The transition duration. * @cssprop {String} --pin-box-width - The width. * * @dependency mosaik-focus-ring - Used for focus indication on each input field. * * @keyhandle Backspace - Deletes the character to the left of the cursor. * @keyhandle LeftArrow - Moves the cursor to the left. * @keyhandle RightArrow - Moves the cursor to the right. * * @example * ```html * * * ``` * * @example * ```html * * * ``` * * @public */ export declare class PinBoxElement extends PinBoxElement_base implements IPinBoxElementProps, IInvalidable { private readonly _keyboardController; private _inputElement; private _value; private _readonly; private _required; private _autofocus; private _name; private _pattern; private _placeholder; private _autocomplete; private _length; private _focusedIndex; private _mode; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `value` property. * * @public * @override */ get value(): string; set value(value: string); /** * Gets or sets the `readonly` property. * * @public * @attr */ get readonly(): boolean; set readonly(value: boolean); /** * Gets or sets the `required` property. * * @public * @attr */ get required(): boolean; set required(value: boolean); /** * Gets or sets the `autofocus` property. * * @public * @override */ get autofocus(): boolean; set autofocus(value: boolean); /** * Gets or sets the `name` property. * * @public * @attr */ get name(): string; set name(value: string); /** * Gets or sets the `pattern` property. * * @public * @attr */ get pattern(): string; set pattern(value: string); /** * Gets or sets the `placeholder` property. * * @public * @attr */ get placeholder(): string; set placeholder(value: string); /** * Gets or sets the `autocomplete` property. * * @public * @attr */ get autocomplete(): boolean; set autocomplete(value: boolean); /** * Gets or sets the `length` property. * * @public * @attr */ get length(): number; set length(value: number); /** * Gets or sets the `mode` property. * * @public * @attr */ get mode(): PinMode; set mode(value: PinMode); /** * @public * @override */ connectedCallback(): void; /** * @public * @override */ focus(): void; /** * @public * @override */ blur(): void; /** * @public */ clear(): void; /** * Resets the value, all kinds of validation and errors. * * @public * @override */ reset(): void; /** * Checks the validity of the element and returns `true` if it is valid; otherwise, `false`. * * @public * @override */ checkValidity(): boolean; /** * @protected * @template */ onChange(event: Event): void; /** * @protected * @override * @template */ onInput(event: InputEvent): void; /** * @protected * @override * @template */ onFocus(event: FocusEvent): void; /** * @protected * @override */ onBlur(event: FocusEvent): void; /** * @protected * @override */ onApplyTemplate(): void; /** * @private */ private getInputValues; /** * @private */ private getInputs; /** * @private */ private replaceAt; /** * @private */ private setValue; } /** * @public */ export declare namespace PinBoxElement { type Props = IPinBoxElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-pinbox': PinBoxElement; } } export {}; //# sourceMappingURL=PinBoxElement.d.ts.map