import { TemplateResult, PropertyValueMap } from 'lit'; import { OmniElement } from '../core/OmniElement.js'; import '../label/Label.js'; /** * Control to group radio components for single selection * * @import * ```js * import '@capitec/omni-components/radio'; * ``` * * @example * ```html * * * * * ``` * * @element omni-radio-group * * @slot - Content to manage in the radio group, typically <input type="radio" /> and/or <omni-radio></omni-radio>. * * @fires {CustomEvent} radio-change - Dispatched when a radio selection is changed. * * @csspart radios - Container element for slotted radio elements * * @cssprop --omni-radio-group-label-font-size - Label font size. * @cssprop --omni-radio-group-label-font-weight - Label font weight. * @cssprop --omni-radio-group-label-margin-bottom - Label bottom margin. * @cssprop --omni-radio-group-vertical-margin - Margin in between radio elements when arranged vertically. * @cssprop --omni-radio-group-horizontal-margin - Margin in between radio elements when arranged horizontally. * */ export declare class RadioGroup extends OmniElement { /** * Text label. * @attr */ label?: string; /** * Allow deselection of radio elements. * @attr [allow-deselect] */ allowDeselect?: boolean; /** * Arrange radio elements horizontally. * @attr */ horizontal?: boolean; /** * Data associated with the component. * @attr */ data?: object; private _selected; private radios; /** * Selected index of radio elements * @no_attribute * @ignore */ set selected(idx: number); /** * Selected index of radio elements * @no_attribute * @ignore */ get selected(): number; private _uncheckElement; private _checkElement; connectedCallback(): void; protected firstUpdated(_changedProperties: PropertyValueMap | Map): void; _loadRadios(): void; _handleClick(e: MouseEvent): void; static get styles(): import("lit").CSSResultGroup[]; render(): TemplateResult; } export type CheckableElement = HTMLElement & { checked: boolean | undefined; }; export type RadioChangeEventDetail = { current?: CheckableElement; previous?: CheckableElement; }; declare global { interface HTMLElementTagNameMap { 'omni-radio-group': RadioGroup; } } //# sourceMappingURL=RadioGroup.d.ts.map