import * as _angular_core from '@angular/core'; import { SdFormControl } from '@sdcorejs/angular/forms/models'; /** Visual / `data-state` of the inline input. `'auto'` derives from focus + value. */ type SdInlineTextState = 'auto' | 'pending' | 'active' | 'focus' | 'error'; /** `'standalone'` draws its own affordance (hover bg + focus ring); `'seamless'` defers all chrome to the host. */ type SdInlineTextChrome = 'standalone' | 'seamless'; /** * Borderless, content-hugging text input — the seamless primitive shared by * `sd-input` / `sd-input-number` (`viewed='inline'`) and the query-bar / query-builder chips. * * why: a native `` inside `mat-form-field` cannot hug its content, so inline-edit * looked like a full-width input rather than text. This primitive renders a raw `` * sized via the native `size` attribute (clamped) so the click/hover target tracks the value. * * It is intentionally unopinionated about commit/parse/format: it forwards the raw DOM events * (focus / blur / keydown / paste / composition / Enter / Escape) so each consumer keeps its own * logic (e.g. sd-input-number's vi-VN formatting). Two binding modes: * - **uncontrolled** via `[(value)]` — used by the chips' signal drafts; * - **controlled** via `[control]` (an external `SdFormControl`) — used by the form controls. */ declare class SdInlineText { /** Uncontrolled value (two-way). Ignored when `[control]` is provided. */ readonly value: _angular_core.ModelSignal; /** Optional external FormControl (controlled mode) — used by sd-input / sd-input-number. */ readonly control: _angular_core.InputSignal; readonly placeholder: _angular_core.InputSignal; readonly disabled: _angular_core.InputSignalWithTransform; /** Show a hover/value-gated clear-× (default `true`). */ readonly clearable: _angular_core.InputSignalWithTransform; /** `'auto'` derives state from focus + value; pass an explicit value (e.g. `'error'`) to override. */ readonly state: _angular_core.InputSignal; readonly chrome: _angular_core.InputSignal; readonly autoId: _angular_core.InputSignal; readonly autofocus: _angular_core.InputSignalWithTransform; /** Lower bound (chars) so short/empty values keep a clickable target. */ readonly minSize: _angular_core.InputSignal; readonly cleared: _angular_core.OutputEmitterRef; readonly keyupEnter: _angular_core.OutputEmitterRef; readonly keydownEscape: _angular_core.OutputEmitterRef; readonly sdFocus: _angular_core.OutputEmitterRef; readonly sdBlur: _angular_core.OutputEmitterRef; readonly sdKeydown: _angular_core.OutputEmitterRef; readonly sdPaste: _angular_core.OutputEmitterRef; readonly sdCompositionStart: _angular_core.OutputEmitterRef; readonly sdCompositionEnd: _angular_core.OutputEmitterRef; private readonly inputRef; /** Bumped on input/blur/composition + bound-control changes so size/state methods re-eval under OnPush. */ protected readonly tick: _angular_core.WritableSignal; protected readonly focused: _angular_core.WritableSignal; constructor(); /** * Current text — from the bound control in controlled mode, else the value model. * why: `tick` is a tracked dependency so the computed re-runs when a bound control's * value changes programmatically (control.value itself is not a signal). */ protected readonly currentText: _angular_core.Signal; protected readonly hasValue: _angular_core.Signal; protected readonly sizeOf: _angular_core.Signal; protected readonly showClear: _angular_core.Signal; protected readonly effectiveState: _angular_core.Signal; protected onInput(ev: Event): void; protected onFocus(ev: FocusEvent): void; protected onBlur(ev: FocusEvent): void; protected onKeyup(ev: KeyboardEvent): void; protected onKeydown(ev: KeyboardEvent): void; protected onPaste(ev: ClipboardEvent): void; protected onCompositionStart(ev: CompositionEvent): void; protected onCompositionEnd(ev: CompositionEvent): void; protected clear(ev: Event): void; /** Focus the native input. */ focus(): void; /** Blur the native input. */ blur(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { SdInlineText }; export type { SdInlineTextChrome, SdInlineTextState };