@etsoo/materialui
Version:
TypeScript Material-UI Implementation
69 lines (68 loc) • 1.56 kB
TypeScript
import React from "react";
import { DataTypes, IdDefaultType, LabelDefaultType, ListType } from "@etsoo/shared";
/**
* Item list properties
*/
export interface ItemListProps<T extends object, D extends DataTypes.Keys<T>, L extends DataTypes.Keys<T, string>> {
/**
* Button label
*/
buttonLabel?: React.ReactNode;
/**
* Style class name
*/
className?: string;
/**
* Keep click for all items
*/
keepClick?: boolean;
/**
* Id field name
*/
idField?: D;
/**
* Label field name or callback
*/
labelField?: L | ((item: T) => string);
/**
* Minimum width
*/
minWidth?: number | string;
/**
* Button icon
*/
icon?: React.ReactNode;
/**
* Button color
*/
color?: "inherit" | "primary" | "secondary";
/**
* Close event
*/
onClose?(item: T | undefined, changed: boolean): void;
/**
* Current selected id
*/
selectedValue?: T[D];
/**
* Button size
*/
size?: "small" | "medium" | "large";
/**
* Title
*/
title?: string;
/**
* Items
*/
items: T[];
/**
* Button variant
*/
variant?: "text" | "outlined" | "contained";
}
/**
* Item list component
* @param props Properties
*/
export declare function ItemList<T extends object = ListType, D extends DataTypes.Keys<T> = IdDefaultType<T>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>>(props: ItemListProps<T, D, L>): import("react/jsx-runtime").JSX.Element;