import { PopupPlacement } from '../../../common/types'; import { GenericFormElement } from '../../../internal/mixin/genericFormElement'; /** * `dap-ds-radio-group` * @summary A radio group is a form element that allows the user to select one option from a set. * @element dap-ds-radio-group * @title - Radio group * @group radio-button * * @event dds-change - Fired when the radio group is checked. * @event dds-blur - Emitted when the radio group loses focus. * @event dds-focus - Emitted when the radio group gains focus. * * @property {string} name - The name of the radio group. * @property {string} value - The value of the radio group. * @property {boolean} disabled - Whether the radio group is disabled. * @property {boolean} required - Whether the radio group is required. * @property {string} label - The label of the radio group. * @property {string} description - The description of the radio group. * @property {string} tooltip - The tooltip of the radio group. * @property {'top' | 'right' | 'bottom' | 'left'} tooltipPlacement - The tooltip placement of the radio group. * @property {string} feedback - The feedback of the radio group. * @property {'negative' | 'positive' | 'warning'} feedbackType - The feedback type of the radio group. Can be `negative`, `positive`, or `warning`. * @property {boolean} optional - The optional state of the radio group. * @property {string} optionalLabel - Text of optional label. * @property {boolean} subtle - The weight of the label. Default is `false` * @property {'xs' | 'sm' | 'lg'} size - The size of the radio group. Default is `sm`. * @property {boolean} subtle - Font weight of the feedback label. Default is `false` which is bold. * * @slot - The content of the radio group. * @slot feedback-icon - The custom icon of the feedback. * * @csspart base - The main radio group container. * @csspart label - The label of the radio group. * @csspart tooltip - The tooltip of the radio group. * @csspart container - The container of the radio group items. */ export default class DapDSRadioGroup extends GenericFormElement { /** The placement of the tooltip. * @type { 'top' | 'right' | 'bottom' | 'left' } */ tooltipPlacement: PopupPlacement; hiddenInput: HTMLInputElement; optionalLabel: string; private _previousValue?; static readonly styles: import('lit').CSSResult; willUpdate(changedProperties: Map): void; updated(changedProperties: Map): void; attributeChangedCallback(name: string, _old: string | null, value: string | null): void; private _handleSlotChange; private getAllRadios; private updateRadioStates; private syncRadioElements; private handleRadioClick; private handleKeyDown; setValidity(): void; get validationMessage(): string; checkValidity(): boolean; get validity(): { valid: boolean; valueMissing: boolean; badInput: boolean; customError: boolean; patternMismatch: boolean; rangeOverflow: boolean; rangeUnderflow: boolean; stepMismatch: boolean; tooLong: boolean; tooShort: boolean; typeMismatch: boolean; }; reportValidity(): boolean; handleLabelClick(): void; handleInvalid(event: Event): void; render(): import('lit-html').TemplateResult; private _renderFeedback; }