import type { PropertyValues } from 'lit'; import { WebAwesomeFormAssociatedElement } from '../../internal/webawesome-form-associated-element.js'; import '../icon/icon.js'; /** * @summary Radios represent a single option within a mutually exclusive set. Use them inside a radio group when users * must pick exactly one choice from a small list. * @documentation https://webawesome.com/docs/components/radio * @status stable * @since 2.0 * * @dependency wa-icon * * @slot - The radio's label. * * @event blur - Emitted when the control loses focus. * @event focus - Emitted when the control gains focus. * * @csspart control - The circular container that wraps the radio's checked state. * @csspart checked-icon - The checked icon. * @csspart label - The container that wraps the radio's label. * * @cssproperty --checked-icon-color - The color of the checked icon. * @cssproperty --checked-icon-scale - The size of the checked icon relative to the radio. * * @cssstate checked - Applied when the control is checked. * @cssstate disabled - Applied when the control is disabled. */ export default class WaRadio extends WebAwesomeFormAssociatedElement { static css: import("lit").CSSResult[]; checked: boolean; /** @internal Used by radio group to force disable radios while preserving their original disabled state. */ forceDisabled: boolean; /** The radio's value. When selected, the radio group will receive this value. */ value: string; /** The radio's visual appearance. */ appearance: 'default' | 'button'; /** * The radio's size. When used inside a radio group, the size will be determined by the radio group's size, which will * override this attribute. */ size: 'xs' | 's' | 'm' | 'l' | 'xl' | 'small' | 'medium' | 'large'; handleSizeChange(): void; /** Disables the radio. */ disabled: boolean; constructor(); connectedCallback(): void; private setInitialAttributes; updated(changedProperties: PropertyValues): void; /** * @override */ setValue(): void; private handleClick; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'wa-radio': WaRadio; } }