import { LitElement } from 'lit'; import '../button/ws-button.js'; export type WsTimePickerSize = 'small' | 'medium' | 'large'; /** * Workshop form-associated time picker for selecting a time of day. * * Values use canonical 24-hour `HH:mm` strings for predictable forms and APIs. * * @fires input - Dispatched when the time changes while editing. * @fires change - Dispatched when the selected time is committed. * @csspart label - The visible field label. * @csspart control - The time-picker container. * @csspart input - The editable time input. * @csspart clear-button - The optional clear action. * @csspart picker-button - The clock action. * @csspart picker - The time-selection surface. * @csspart preview - The selected-time preview inside the picker. * @csspart hour-list - The hour choices. * @csspart minute-list - The minute choices. * @csspart time-option - An hour or minute choice. * @csspart actions - The picker action row. * @csspart supporting-text - Helper or error text. */ export declare class WsTimePicker extends LitElement { static styles: import("lit").CSSResult; static formAssociated: boolean; /** Selected time in 24-hour HH:mm format. */ value: string; /** Name used when the picker participates in form submission. */ name: string; /** Control height and density. */ size: WsTimePickerSize; /** Visible label displayed above the control. */ label: string; /** Supporting guidance shown while the picker is valid. */ helperText: string; /** Supporting message shown while the picker is invalid. */ errorText: string; /** Earliest selectable time in HH:mm format. */ min?: string; /** Latest selectable time in HH:mm format. */ max?: string; /** Minute interval offered by the picker and used for step validation. */ minuteStep: number; /** Whether selecting a time 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 picker contains a value. */ clearable: boolean; /** Accessible name used when no visible label is provided. */ accessibleLabel?: string; /** Accessible name for the clock action and picker surface. */ pickerLabel: string; /** Accessible name for the clear action. */ clearLabel: string; private touched; private formDisabled; private pickerOpen; private draftHour; private draftMinute; private readonly internals; private readonly fieldId; private readonly pickerId; private readonly helperId; private readonly errorId; private defaultValue; private capturedDefaultValue; private customValidationMessage; private static nextId; connectedCallback(): void; disconnectedCallback(): void; protected firstUpdated(): void; protected updated(): void; render(): import("lit-html").TemplateResult<1>; /** Associated form, when the picker 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 picker participates in constraint validation. */ get willValidate(): boolean; focus(options?: FocusOptions): void; /** Opens the Workshop time-selection surface. */ showPicker(): 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 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 isEffectivelyDisabled(); private get isVisuallyInvalid(); private get effectiveMinuteStep(); private get draftValue(); private get isDraftAllowed(); private renderClearButton; private renderPicker; private handleBeforeInput; private handleInput; private handleChange; private handleBlur; private handlePickerClick; private handleKeydown; private selectHour; private selectMinute; private commitDraft; private cancelPicker; private clearValue; private handleDocumentPointerDown; private syncDraftFromValue; private snapMinute; private scrollSelectedOptionsIntoView; private parseTime; private formatTime; private syncFormAndValidity; } declare global { interface HTMLElementTagNameMap { 'ws-time-picker': WsTimePicker; } } //# sourceMappingURL=ws-time-picker.d.ts.map