@3mo/field
Version:
A set of field web components.
54 lines • 2.35 kB
TypeScript
import { Component, type HTMLTemplateResult, type PropertyValues } from '@a11d/lit';
import { SlotController } from '@3mo/slot-controller';
import { FocusController, type FocusMethod } from '@3mo/focus-controller';
/**
* @attr value - The field's value
* @attr label - The field's label
* @attr readonly - Whether the field is readonly
* @attr disabled - Whether the field is disabled
* @attr required - Whether the field is required
*
* @slot - The field's content
* @slot start - Content to be placed at the start of the field
* @slot end - Content to be placed at the end of the field
*
* @csspart container - Field's container
*
* @fires change
* @fires input
* @fires validityChange
*/
export declare abstract class FieldComponent<T> extends Component {
readonly change: EventDispatcher<T | undefined>;
readonly input: EventDispatcher<T | undefined>;
readonly validityChange: EventDispatcher<boolean>;
abstract value?: T | undefined;
label: string;
readonly: boolean;
disabled: boolean;
required: boolean;
protected invalid: boolean;
private focused;
protected inputValue?: T;
protected readonly slotController: SlotController;
protected readonly focusController: FocusController;
protected update(changedProperties: PropertyValues<this>): void;
protected valueUpdated(): void;
protected handleFocus(bubbled: boolean, method: FocusMethod): void;
protected handleBlur(bubbled: boolean, method: FocusMethod): void;
protected handleInput(value: T | undefined, e?: Event): void;
protected handleChange(value: T | undefined, e?: Event): void;
protected get isPopulated(): boolean;
protected get isActive(): boolean;
protected get isDense(): boolean;
static get styles(): import("@a11d/lit").CSSResult;
protected get template(): HTMLTemplateResult;
protected get startSlotTemplate(): HTMLTemplateResult;
protected abstract get inputTemplate(): HTMLTemplateResult;
protected get endSlotTemplate(): HTMLTemplateResult;
protected validate(): Promise<void>;
abstract setCustomValidity(...args: Parameters<HTMLInputElement['setCustomValidity']>): ReturnType<HTMLInputElement['setCustomValidity']>;
abstract checkValidity(): Promise<boolean>;
abstract reportValidity(): void;
}
//# sourceMappingURL=FieldComponent.d.ts.map