@carbon/ibm-products
Version:
Carbon for IBM Products
69 lines • 2.2 kB
TypeScript
/**
* Copyright IBM Corp. 2026
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
import React, { ReactNode, FC } from 'react';
import { AddSelectBodyProps } from './AddSelectBody';
import { AddSelectContentProps } from './AddSelectContent';
import { AddSelectColumnProps } from './AddSelectColumn';
import { AddSelectRowProps } from './AddSelectRow';
import { AddSelectSelectionSummaryProps } from './AddSelectSelectionSummary';
import { AddSelectSelectionSummaryItemProps } from './AddSelectSelectionSummaryItem';
import { AddSelectItemPanelProps } from './AddSelectItemPanel';
/**
* ----------
* AddSelect
* ----------
*/
export interface AddSelectProps {
children?: ReactNode;
/**
* Optional class name
*/
className?: string;
/**
* Callback when an item is selected/deselected
*/
onItemSelect?: (itemId: string, selected: boolean, value: string) => void;
/**
* Set of selected item IDs
*/
selectedItems?: Set<string>;
}
export type AddSelectComponentType = React.ForwardRefExoticComponent<AddSelectProps & React.RefAttributes<HTMLDivElement>> & {
Body: FC<AddSelectBodyProps>;
Content: FC<AddSelectContentProps>;
Column: FC<AddSelectColumnProps>;
Row: FC<AddSelectRowProps>;
SelectionSummary: FC<AddSelectSelectionSummaryProps>;
SelectionSummaryItem: FC<AddSelectSelectionSummaryItemProps>;
ItemPanel: FC<AddSelectItemPanelProps>;
};
/**
* AddSelect - Composable component for adding/selecting items
* @example
* ```jsx
* <AddSelect onItemSelect={handleSelect}>
* <AddSelect.Body
* itemsLabel="Items"
* globalSearchLabel="Search"
* itemCount={items.length}
* >
* <AddSelect.Column multi={true} title="Categories">
* {items.map(item => (
* <AddSelect.Row
* key={item.id}
* itemId={item.id}
* title={item.title}
* value={item.value}
* />
* ))}
* </AddSelect.Column>
* </AddSelect.Body>
* </AddSelect>
* ```
*/
export declare const AddSelect: AddSelectComponentType;
//# sourceMappingURL=AddSelect.d.ts.map