@awsui/components-react
Version:
AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A
70 lines (69 loc) • 2.66 kB
TypeScript
import React from 'react';
import { BaseComponentProps } from '../internal/base-component';
import { CancelableEventHandler, NonCancelableEventHandler } from '../internal/events';
import { ButtonProps } from '../button';
export interface ButtonDropdownProps extends BaseComponentProps {
items: ReadonlyArray<ButtonDropdownProps.Item | ButtonDropdownProps.ItemGroup>;
disabled?: boolean;
loading?: boolean;
variant?: ButtonDropdownProps.Variant;
expandableGroups?: boolean;
children?: React.ReactNode;
onItemClick?: NonCancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
}
export declare namespace ButtonDropdownProps {
type Variant = 'normal' | 'primary';
interface Item {
id: string;
text: string;
disabled?: boolean;
description?: string;
}
interface ItemGroup extends Omit<Item, 'id' | 'text'> {
id?: string;
text?: string;
items: Items;
}
type Items = ReadonlyArray<Item | ItemGroup>;
interface ItemClickDetails {
id: string;
}
interface Ref {
focus(): void;
}
}
export interface CategoryProps {
item: ButtonDropdownProps.ItemGroup;
onItemActivate: (item: ButtonDropdownProps.Item | ButtonDropdownProps.ItemGroup) => void;
highlightedItem?: ButtonDropdownProps.Item | ButtonDropdownProps.ItemGroup;
expandedItem?: ButtonDropdownProps.ItemGroup;
disabled: boolean;
onItemClick?: NonCancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
}
export interface ItemListProps {
items: ButtonDropdownProps.Items;
onItemActivate: (item: ButtonDropdownProps.Item | ButtonDropdownProps.ItemGroup) => void;
highlightedItem?: ButtonDropdownProps.Item | ButtonDropdownProps.ItemGroup;
expandedItem?: ButtonDropdownProps.ItemGroup;
categoryDisabled?: boolean;
hasExpandableGroups?: boolean;
hasCategoryHeader?: boolean;
onItemClick?: NonCancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
allowHref?: boolean;
}
export interface LinkItem extends ButtonDropdownProps.Item {
href: string;
}
export interface ItemProps {
item: ButtonDropdownProps.Item | LinkItem;
disabled: boolean;
highlighted: boolean;
onItemActivate: (item: ButtonDropdownProps.Item, event: Event) => void;
last: boolean;
hasCategoryHeader: boolean;
allowHref?: boolean;
}
export interface InternalButtonDropdownProps extends ButtonDropdownProps {
customTriggerBuilder?: (clickHandler: CancelableEventHandler<ButtonProps.ClickDetail>, ref: React.Ref<any>, isDisabled: boolean, isExpanded: boolean) => React.ReactNode;
allowHref?: boolean;
}