import { LitElement } from 'lit'; export type WsTextFieldType = 'text' | 'email' | 'password' | 'number' | 'url' | 'tel' | 'search' | 'textarea'; export type WsTextFieldSize = 'small' | 'medium' | 'large'; export type WsTextFieldShape = 'default' | 'circle'; /** * Workshop form-associated text field. * * Use `type="textarea"` for multiline values. Search fields use the circular * shape unless `shape="default"` is set. * * @fires input - Dispatched when the value changes while editing. * @fires change - Dispatched when the edited value is committed. * @slot leading-icon - Optional icon rendered before the input. * @slot trailing-icon - Optional icon rendered after the input. * @csspart label - The visible field label. * @csspart control - The field container. * @csspart input - The native input or textarea element. * @csspart supporting-text - Helper or error text. * @csspart clear-button - The optional clear action. */ export declare class WsTextField extends LitElement { static styles: import("lit").CSSResult; static formAssociated: boolean; /** Input value submitted with the enclosing form. */ value: string; /** Name used when the field participates in form submission. */ name: string; /** Native control type. Use `textarea` for multiline text. */ type: WsTextFieldType; /** Number of visible text rows when `type="textarea"`. */ rows: number; /** Control height and density. */ size: WsTextFieldSize; /** * Shape override. Without an override, search fields are circular and all * other field types use the default shape. */ shape?: WsTextFieldShape; /** Visible label displayed above the control. */ label: string; /** Placeholder forwarded to the native control. */ placeholder: string; /** Supporting guidance shown while the field is valid. */ helperText: string; /** Supporting message shown while the field is invalid. */ errorText: string; /** Whether a non-empty value is required. */ required: boolean; /** Disables interaction and excludes the value from form submission. */ disabled: boolean; /** Prevents editing while preserving focus and form submission. */ readOnly: boolean; /** Applies an externally controlled invalid state. */ invalid: boolean; /** Shows a clear action while the field contains a value. */ clearable: boolean; /** Browser autofill hint. */ autocomplete: HTMLInputElement['autocomplete']; /** Virtual keyboard hint. */ inputMode: string; /** Minimum accepted text length. */ minLength?: number; /** Maximum accepted text length. */ maxLength?: number; /** Minimum numeric value. */ min?: string; /** Maximum numeric value. */ max?: string; /** Numeric increment. */ step?: string; /** Validation pattern forwarded to the native input. */ pattern?: string; /** Accessible name used when no visible label is provided. */ accessibleLabel?: string; private hasLeadingIcon; private hasTrailingIcon; private touched; private formDisabled; private readonly internals; private readonly fieldId; private readonly helperId; private readonly errorId; private defaultValue; private capturedDefaultValue; private customValidationMessage; private readonly contentObserver; connectedCallback(): void; disconnectedCallback(): void; protected firstUpdated(): void; protected updated(): void; render(): import("lit-html").TemplateResult<1>; /** Associated form, when the field is inside one. */ get form(): HTMLFormElement | null; /** Labels associated with the custom element. */ get labels(): NodeList; /** Current validity state. */ get validity(): ValidityState; /** Current validation message. */ get validationMessage(): string; /** Whether the field participates in constraint validation. */ get willValidate(): boolean; focus(options?: FocusOptions): void; /** Selects the complete field value. */ select(): void; /** Applies a custom validity message. Pass an empty string to clear it. */ setCustomValidity(message: string): void; /** Runs constraint validation without displaying browser UI. */ checkValidity(): boolean; /** Runs constraint validation and makes the invalid state visible. */ reportValidity(): boolean; formDisabledCallback(disabled: boolean): void; formResetCallback(): void; formStateRestoreCallback(state: string | File | FormData | null): void; private get inputElement(); private get effectiveShape(); private get isEffectivelyDisabled(); private get isVisuallyInvalid(); private renderNativeControl; private renderClearButton; private handleInput; private handleChange; private handleBlur; private handleInvalid; private clearValue; private syncSlottedState; private syncFormAndValidity; private syncNativeInput; private syncOptionalInputAttribute; private toValidityFlags; } declare global { interface HTMLElementTagNameMap { 'ws-text-field': WsTextField; } } //# sourceMappingURL=ws-text-field.d.ts.map