/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { FormComponentProps } from '@progress/kendo-vue-common'; import { NumberFormatOptions } from '@progress/kendo-vue-intl'; type NumericTextBoxInputType = 'tel' | 'text'; /** * Represents the props of the [KendoVue NumericTextBox component]({% slug overview_numerictextbox %}). */ export interface NumericTextBoxProps extends FormComponentProps { /** * Specifies the value of the NumericTextBox. */ value?: number | null; /** * Specifies the initial value. Leaves the subsequent updates uncontrolled. */ modelValue?: number | null; /** * Specifies the initial value. Leaves the subsequent updates uncontrolled. */ defaultValue?: number | null; /** * Specifies the value that is used to increment or decrement the value of the NumericTextBox ([see example]({% slug predefinedsteps_numerictextbox %})). */ step?: number; /** * Specifies the number format which is used for formatting the value ([see example]({% slug formats_numerictextbox %})). If set to `null` or `undefined`, the default format will be used. */ format?: string | NumberFormatOptions; /** * Sets the `tabIndex` property of the NumericTextBox. */ tabIndex?: number; /** * Configures the `size` of the NumericTextBox. * * The available options are: * - small * - medium * - large * * @default undefined */ size?: 'small' | 'medium' | 'large'; /** * Configures the `roundness` of the NumericTextBox. * * The available options are: * - none * - small * - medium * - large * - full * * @default undefined */ rounded?: 'none' | 'small' | 'medium' | 'large' | 'full'; /** * Configures the `fillMode` of the NumericTextBox. * * The available options are: * - solid * - outline * - flat * * @default undefined */ fillMode?: 'solid' | 'flat' | 'outline'; /** * Specifies the `accessKey` of the NumericTextBox. */ accessKey?: string; /** * Sets the title of the `input` element of the NumericTextBox. */ title?: string; /** * Specifies the input placeholder. */ placeholder?: string; /** * Specifies the smallest value that can be entered. */ min?: number; /** * Specifies the greatest value that can be entered. */ max?: number; /** * Specifies whether the **Up** and **Down** spin buttons will be rendered ([see example]({% slug spinbuttons_numerictextbox %})). */ spinners?: boolean; /** * Determines whether the NumericTextBox is disabled. */ disabled?: boolean; /** * Represents the `dir` HTML attribute. */ dir?: string; /** * Specifies the name of the `input` DOM element. */ name?: string; /** * Renders a floating label for the NumericTextBox. */ label?: string; /** * Sets the `id` of the `input` DOM element. */ id?: string; /** * Sets the `aria-label` of the `input` DOM element. */ ariaLabel?: string; /** * Sets the `type` of the `input` DOM element. * * The available options are: * - (Default) `tel` * - `text` * - `numeric` */ inputType?: NumericTextBoxInputType | string; /** * If set to `false`, no visual representation of the invalid state of the component will be applied. * * @default true */ validityStyles?: boolean; /** * Defines a string prop that controls the input icon. This property works only with the Kendo UI for Vue FontIcons. * Check the [Icons]({% slug icons %}) article for more information about how the Font Icon can be loaded to your project. */ iconName?: string; /** * Defines if the inputPrefix will be shown. Accepts a slot name, a `render` function, or a Vue component. */ inputPrefix?: string | Function | object | boolean; /** * Defines if the inputSuffix will be shown. Accepts a slot name, a `render` function, or a Vue component. */ inputSuffix?: string | Function | object | boolean; /** * Defines a boolean prop that controls whether to show the validation icon. Defaults to 'false'. */ showValidationIcon?: boolean; /** * Defines a boolean prop that controls whether to show the loading icon. Defaults to 'false'. */ showLoadingIcon?: boolean; /** * Defines a boolean prop that controls whether to show the clear icon. Defaults to 'false'. */ showClearButton?: boolean; /** * Defines additional class to the wrapper element. */ wrapperClass?: string; /** * Defines additional class to the input element. */ inputClass?: string; /** * Sets the built-in HTML attributes of the inner focusable input element. * Attributes which are essential for certain component functionalities cannot be changed. */ inputAttributes?: Object; /** * The event handler that will be fired when the changes the selected value. */ onChange?: (event: any) => void; /** * The event handler that will be fired when TextArea is focused. */ onFocus?: (event: any) => void; /** * The event handler that will be fired when TextArea is blurred. */ onBlur?: (event: any) => void; } export {};