import { EventEmitter } from '@stencil/core'; import { RadioOption } from './radio-option.interface'; import { HintExpander } from '../ontario-hint-expander/hint-expander.interface'; import { Base, Hint } from '../../utils/common/common.interface'; import { Caption } from '../../utils/common/input-caption/caption.interface'; import { Language } from '../../utils/common/language-types'; import { RadioAndCheckboxChangeEvent, InputFocusBlurEvent } from '../../utils/events/event-handler.interface'; export interface RadioButtons extends Base { /** * The text to display for the radio button legend. * * @example * * */ hintExpander?: HintExpander | string; /** * This is used to determine whether the radio button is required or not. * This prop also gets passed to the InputCaption utility to display either an optional or required flag in the label. * If no prop is set, it will default to false (optional). */ required?: boolean; /** * The currently selected radio option value. * * The component keeps the host `value` in sync as users interact with the radio group. * If `value` is provided, it takes precedence over any `checked` flags passed through `options`. */ value?: string; /** * The options for the radio button group. * * Each property will be passed in through an object in the options array. * This can either be passed in as an object directly (if using react), or as a string in HTML. * If there are multiple radio buttons in a fieldset, each radio button will be displayed as an option. * * In the example below, the options are being passed in as a string and there are two radio buttons to be displayed in the fieldset. * * @example * * */ options: string | RadioOption[]; /** * Used to add a custom function to the radio input onChange event. */ customOnChange?: (event: globalThis.Event) => void; /** * Used to add a custom function to the radio input onBlur event. */ customOnBlur?: (event: globalThis.Event) => void; /** * Used to add a custom function to the radio input onFocus event. */ customOnFocus?: (event: globalThis.Event) => void; /** * Emitted when a keyboard input or mouse event occurs when a radio option has been changed. */ radioOnChange: EventEmitter; /** * Emitted when a keyboard input event occurs when a radio option has lost focus. */ radioOnBlur: EventEmitter; /** * Emitted when a keyboard input event occurs when a radio option has gained focus. */ radioOnFocus: EventEmitter; }