/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { RadioButtonBlurEvent } from './RadioButtonBlurEvent'; import { RadioButtonChangeEvent } from './RadioButtonChangeEvent'; import { RadioButtonFocusEvent } from './RadioButtonFocusEvent'; /** * Represents the props of the [Kendo UI for Vue RadioButton component]({% slug overview_radiobutton %}). * Extends the [native input props](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement). */ export interface RadioButtonProps { /** * Identifies the element(s) which will describe the component, similar * to [HTML aria-describedby attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute). * For example these elements could contain error or hint message. */ ariaDescribedBy?: string; /** * Specifies if the Radio button is checked. */ checked?: boolean; /** * Specifies the class applied to the input element. */ className?: string; /** * Specifies if the Radio button is disabled. */ disabled?: boolean; /** * @hidden * Used in RadioGroup scenarios with a custom template to pass dataItem data to the template */ dataItem?: object; /** * Specifies the current index of the Radio button. */ index?: number; /** * Sets the `id` of the Radio button. */ id?: string; /** * Sets the label of the Radio button ([see example]({% slug labels_radiobutton %})). */ label?: string; /** * Sets the label render template of the Radio button component. * Accepts a slot name, a `render` function, or a Vue component. */ labelRender?: any; /** * Sets the item content template of the Radio button component. * Accepts a slot name, a `render` function, or a Vue component. */ content?: any; /** * Sets the item render template of the Radio button component. * Accepts a slot name, a `render` function, or a Vue component. */ item?: any; /** * Sets the label position of the Radio button ([see example]({% slug labels_radiobutton %})). * Accepts two options: `before` or `after`. Defaults to `after`. */ labelPlacement?: string; /** * Sets the `name` property of the Radio button. */ name?: string; /** * Sets the `tag` property of the Radio button wrapping element. */ tag?: string; /** * Configures the `size` of the RadioButton. * * The available options are: * - small * - medium * - large * * @default undefined */ size?: 'small' | 'medium' | 'large'; /** * Sets the `tabIndex` property of the Radio button. * Defaults to `0`. */ tabIndex?: number; /** * Overrides the validity state of the component. * If `valid` is set, the `required` property will be ignored. */ valid?: boolean; /** * Sets the value to be submitted. */ value?: any; /** * Represents the `role` HTML attribute. */ role?: string; /** * The event handler that will be fired when the changes the selected value. */ onChange?: (event: RadioButtonChangeEvent) => void; /** * The event handler that will be fired when RadioButton is focused. */ onFocus?: (event: RadioButtonFocusEvent) => void; /** * The event handler that will be fired when RadioButton is blurred. */ onBlur?: (event: RadioButtonBlurEvent) => void; }