@syncfusion/react-buttons
Version: 
Syncfusion React Buttons package is a feature-rich collection of UI components including Button, CheckBox, RadioButton, Switch, Chip, and more for building modern, interactive React applications.
143 lines (142 loc) • 4.05 kB
TypeScript
import { HTMLAttributes } from 'react';
import { ChipBaseProps } from '../chip/chip';
import * as React from 'react';
/**
 * Selection types for ChipList
 */
export type SelectionType = 'Single' | 'Multiple' | 'None';
/**
 * @ignore
 */
export interface ChipListProps {
    /**
     * This chips property helps to render ChipList component.
     * ```html
     * <ChipList chips={['Chip1', 'Chip2']} />
     * ```
     *
     * @default []
     */
    chips?: string[] | ChipItemProps[];
    /**
     * Specifies a value that indicates whether the ChipList component is disabled or not.
     *
     * @default false
     */
    disabled?: boolean;
    /**
     * Specifies the selected chip items in the ChipList.
     * ```html
     * <ChipList selectedChips={[0, 1]} />
     * ```
     *
     * @default []
     */
    selectedChips?: number[];
    /**
     * Defines the selection type of the ChipList. The available types are single, multiple, and none.
     *
     * @default 'None'
     */
    selection?: SelectionType;
    /**
     * Enables or disables the delete functionality of a ChipList.
     *
     * @default false
     */
    removable?: boolean;
    /**
     * Triggers when the chip item is removed.
     *
     * @event onDelete
     */
    onDelete?: (event: ChipListDeleteEvent) => void;
    /**
     * Triggers when the selected chips in the ChipList change.
     *
     * @event onSelect
     */
    onSelect?: (event: ChipListSelectEvent) => void;
}
/**
 * Represents the properties of a Chip component.
 */
export interface ChipItemProps extends ChipBaseProps {
    /**
     * Specifies the custom classes to be added to the chip element.
     *
     * @default -
     */
    className?: string;
    /**
     * Specifies the additional HTML attributes in a key-value pair format.
     *
     * @default -
     */
    htmlAttributes?: React.HTMLAttributes<HTMLDivElement>;
    /**
     * Specifies the children to be rendered for the chip item.
     * This can be a React node, a function that returns a React node, or a string.
     *
     * @default -
     */
    children?: React.ReactNode;
}
/**
 * Represents the arguments for the chip selection event.
 */
export interface ChipListSelectEvent {
    /**
     * Specifies the indexes of the chips that are currently selected.
     */
    selectedChipIndexes: number[];
    /**
     * Specifies the event that triggered the select action.
     */
    event: React.MouseEvent | React.KeyboardEvent;
}
/**
 * Represents the arguments for the chip deletion event.
 */
export interface ChipListDeleteEvent {
    /**
     * Specifies the remaining chips after deletion.
     */
    chips: string[] | ChipItemProps[];
    /**
     * Specifies the event that triggered the delete action.
     */
    event: React.MouseEvent | React.KeyboardEvent;
}
/**
 * Represents the main properties and methods of the ChipList component.
 */
export interface IChipList extends ChipListProps {
    /**
     * Specifies the ChipList component element.
     *
     * @private
     */
    element: HTMLDivElement | null;
    /**
     * Gets the selected chips from the ChipList.
     *
     * @public
     * @returns {string[] | ChipItemProps[]}
     */
    getSelectedChips(): string[] | ChipItemProps[];
}
type ChipListComponentProps = ChipListProps & Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'>;
/**
 * The ChipList component displays a collection of chips that can be used to represent multiple items in a compact form.
 * It supports various selection modes, chip deletion, and customization options.
 *
 * ```typescript
 * import { ChipList } from "@syncfusion/react-buttons";
 *
 * <ChipList chips={['Apple', 'Banana', 'Cherry']} selection='Multiple' removable={true} />
 * ```
 */
export declare const ChipList: React.ForwardRefExoticComponent<ChipListComponentProps & React.RefAttributes<IChipList>>;
declare const _default: React.NamedExoticComponent<ChipListProps & Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> & React.RefAttributes<IChipList>>;
export default _default;