@progress/kendo-vue-buttons
Version:
68 lines (67 loc) • 2.98 kB
TypeScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { PropType } from 'vue';
import { SegmentedControlState, SegmentedItemProps } from './interfaces';
/**
* Represents the Kendo UI for Vue SegmentedControl component.
*
* The SegmentedControl displays a horizontal set of mutually exclusive button segments,
* allowing the user to select one option at a time.
* @hidden
*/
declare const SegmentedControl: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
items: {
type: PropType<SegmentedItemProps[]>;
default: () => any[];
};
size: PropType<"small" | "medium" | "xs" | "large">;
layoutMode: {
type: PropType<"stretch" | "compact">;
default: string;
};
value: PropType<string>;
defaultValue: PropType<string>;
itemTemplate: PropType<string | ((itemData: SegmentedItemProps) => any)>;
}>, {}, {
interactionState: SegmentedControlState;
}, {
selectedItemValue(): string | undefined;
sizeClass(): string | undefined;
buttonClass(): (itemValue: string, disabled: boolean | undefined, isSelected: boolean) => string;
iconClass(): (iconClassName: string | undefined, isSelected: boolean) => string;
}, {
updateThumbPosition(): void;
updateState(state: Partial<SegmentedControlState>): void;
handleButtonClick(itemData: SegmentedItemProps, e: MouseEvent): void;
handleMouseEnter(itemValue: string, disabled: boolean | undefined, onMouseEnter: (e: MouseEvent) => void, e: MouseEvent): void;
handleMouseLeave(onMouseLeave: (e: MouseEvent) => void, e: MouseEvent): void;
handleFocus(itemValue: string, onFocus: (e: FocusEvent) => void, e: FocusEvent): void;
handleBlur(onBlur: (e: FocusEvent) => void, e: FocusEvent): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
change: (value: string) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
items: {
type: PropType<SegmentedItemProps[]>;
default: () => any[];
};
size: PropType<"small" | "medium" | "xs" | "large">;
layoutMode: {
type: PropType<"stretch" | "compact">;
default: string;
};
value: PropType<string>;
defaultValue: PropType<string>;
itemTemplate: PropType<string | ((itemData: SegmentedItemProps) => any)>;
}>> & Readonly<{
onChange?: (value: string) => any;
}>, {
items: SegmentedItemProps[];
layoutMode: "stretch" | "compact";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { SegmentedControl };
export type { SegmentedControlProps, SegmentedItemProps } from './interfaces';