import { LuxenElement } from '../../shared/luxen-element.js'; /** * @summary Groups a text input with leading or trailing adornments — icons, units, buttons — inside one bordered field. * * Layout is pure CSS: children render in DOM order, so an `` placed * before the `` is a leading adornment and a `` after it is a * trailing one. JavaScript only layers behavior on top: `password-toggle` * injects a show/hide button at upgrade time (without JS the field stays a * plain password input — no dead button), and clicking the group's empty area * focuses the input. * * @example * ```html * * * * ``` * * @cssClass .l-input-group-toggle - The injected show/hide password button. * * @cssproperty [--height=var(--l-form-control-height)] - Control height. * @cssproperty [--border-radius=var(--l-form-control-border-radius)] - Corner radius. * * @customElement l-input-group */ export declare class InputGroup extends LuxenElement { private _localize; createRenderRoot(): this; /** Inject a show/hide toggle button after the inner `input[type="password"]`. */ passwordToggle: boolean; /** Control size — maps the height to the shared `--l-size-control-*` scale (default `md`). */ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; private _input; private _toggleBtn; private _toggleIcon; private _revealed; private _setupTimer; private _observer; connectedCallback(): void; disconnectedCallback(): void; /** @returns true when setup ran or was already done; false to schedule a retry. */ private _trySetup; updated(changed: Map): void; /** Create or remove the toggle button to match `password-toggle` + the input type. */ private _syncToggle; private _createToggleButton; private _teardownToggle; private _syncDisabled; private _onToggle; /** The border + padding belong to the group, so clicks there should focus the input, like clicking a native input's own padding. */ private _onGroupClick; } //# sourceMappingURL=input-group.d.ts.map