UNPKG

@wikimedia/codex

Version:

Codex Design System for Wikimedia

195 lines (194 loc) 7.45 kB
import { PropType } from 'vue'; import { ButtonGroupItem } from '../../types'; import { getButtonLabel } from '../../utils/buttonHelpers'; /** * A group of ToggleButtons. May be configured to allow for * either single-select or multi-select behavior. */ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ /** * Buttons to display. See the ButtonGroupItem type. */ buttons: { type: PropType<ButtonGroupItem[]>; required: true; validator: (value: unknown) => boolean; }; /** * Selected value, or array of selected values. * * If this is a string or number, the button whose value equals that string or number is * selected, and only a single selection is allowed. If this is an array, the buttons whose * values equal any of the values in the array are selected, and multiple selections are * allowed. To select none of the buttons initially, set this to `null` * (for single-selection groups) or to `[]` (for multi-selection groups). * * Must be bound with `v-model`. */ modelValue: { type: PropType<string | number | null | (string | number)[]>; required: true; }; /** * Whether the entire group is disabled. * * If this is set to true, all buttons in the group are disabled. Buttons can also be * disabled individually by setting their `disabled` property to true. */ disabled: { type: BooleanConstructor; default: boolean; }; }>, { rootElement: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>; assignTemplateRef: (templateRef: import("vue").ComponentPublicInstance | Element | null, index: number) => void; onFocus: (index: number) => void; onBlur: () => void; onKeydown: (e: KeyboardEvent) => void; getButtonLabel: typeof getButtonLabel; isSelected: (button: ButtonGroupItem) => boolean; onUpdate: (button: ButtonGroupItem, nowSelected: boolean) => void; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ /** * Buttons to display. See the ButtonGroupItem type. */ buttons: { type: PropType<ButtonGroupItem[]>; required: true; validator: (value: unknown) => boolean; }; /** * Selected value, or array of selected values. * * If this is a string or number, the button whose value equals that string or number is * selected, and only a single selection is allowed. If this is an array, the buttons whose * values equal any of the values in the array are selected, and multiple selections are * allowed. To select none of the buttons initially, set this to `null` * (for single-selection groups) or to `[]` (for multi-selection groups). * * Must be bound with `v-model`. */ modelValue: { type: PropType<string | number | null | (string | number)[]>; required: true; }; /** * Whether the entire group is disabled. * * If this is set to true, all buttons in the group are disabled. Buttons can also be * disabled individually by setting their `disabled` property to true. */ disabled: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; }>, { disabled: boolean; }, {}, { CdxIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>, { rootElement: import("vue").Ref<HTMLSpanElement | undefined, HTMLSpanElement | undefined>; rootClasses: import("vue").ComputedRef<{ [x: string]: boolean; 'cdx-icon--flipped': boolean; }>; iconSvg: import("vue").ComputedRef<string>; iconPath: import("vue").ComputedRef<string>; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ icon: { type: PropType<import("@wikimedia/codex-icons").Icon>; required: true; }; iconLabel: { type: StringConstructor; default: string; }; lang: { type: PropType<string | null>; default: null; }; dir: { type: PropType<import("../../types").HTMLDirection | null>; default: null; }; size: { type: PropType<import("../../types").IconSize>; default: string; validator: import("../../types").StringTypeValidator<"medium" | "small" | "x-small">; }; }>> & Readonly<{}>, { lang: string | null; iconLabel: string; dir: import("../../types").HTMLDirection | null; size: "medium" | "small" | "x-small"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; CdxToggleButton: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ modelValue: { type: BooleanConstructor; default: boolean; }; disabled: { type: BooleanConstructor; default: boolean; }; quiet: { type: BooleanConstructor; default: boolean; }; }>, { rootClasses: import("vue").ComputedRef<{ 'cdx-toggle-button--quiet': boolean; 'cdx-toggle-button--framed': boolean; 'cdx-toggle-button--toggled-on': boolean; 'cdx-toggle-button--toggled-off': boolean; 'cdx-toggle-button--icon-only': boolean; 'cdx-toggle-button--is-active': boolean; }>; onClick: () => void; onKeyDown: () => void; onKeyUp: () => void; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: BooleanConstructor; default: boolean; }; disabled: { type: BooleanConstructor; default: boolean; }; quiet: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; }>, { quiet: boolean; modelValue: boolean; disabled: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default _default;