@ebay/ebayui-core
Version:
Collection of core eBay components; considered to be the building blocks for all composite structures, pages & apps.
33 lines (32 loc) • 1.15 kB
TypeScript
import type { WithNormalizedProps } from "../../global";
import type { ToggleButtonEvent, Input as ToggleButtonInput } from "../ebay-toggle-button/component";
export interface ToggleButtonGroupEvent {
originalEvent: MouseEvent;
pressed: number[];
}
interface ToggleButtonGroupInput extends Omit<Marko.HTML.Span, `on${string}`> {
button?: Marko.AttrTag<Omit<ToggleButtonInput, `on${string}`>>;
variant?: "checkbox" | "radio" | "radio-toggle";
"a11y-text"?: string;
"a11y-label-id"?: string;
columnsMin?: number;
columnsXS?: number;
columnsSM?: number;
columnsMD?: number;
columnsXL?: number;
layoutType?: ToggleButtonInput["layoutType"];
"on-change"?: (event: ToggleButtonGroupEvent) => void;
}
export interface Input extends WithNormalizedProps<ToggleButtonGroupInput> {
}
interface State {
pressed: {
[]: boolean;
};
}
declare class ToggleButtonGroup extends Marko.Component<Input, State> {
onCreate(): void;
onInput(input: Input): void;
handleToggle(index: number, { originalEvent, pressed }: ToggleButtonEvent): void;
}
export default ToggleButtonGroup;