UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

45 lines (44 loc) 2 kB
import React from 'react'; import type { ReactNode } from 'react'; import type { SemanticClassNamesType, SemanticStylesType } from '../_util/hooks'; export type CheckableTagOption<CheckableTagValue> = { value: CheckableTagValue; label: ReactNode; }; interface CheckableTagGroupSingleProps<CheckableTagValue> { multiple?: false; value?: CheckableTagValue | null; defaultValue?: CheckableTagValue | null; onChange?: (value: CheckableTagValue | null) => void; } interface CheckableTagGroupMultipleProps<CheckableTagValue> { multiple: true; value?: CheckableTagValue[]; defaultValue?: CheckableTagValue[]; onChange?: (value: CheckableTagValue[]) => void; } export type SemanticName = 'root' | 'item'; type CheckableTagGroupBaseProps<CheckableTagValue> = { prefixCls?: string; rootClassName?: string; options?: (CheckableTagOption<CheckableTagValue> | CheckableTagValue)[]; disabled?: boolean; } & (CheckableTagGroupSingleProps<CheckableTagValue> | CheckableTagGroupMultipleProps<CheckableTagValue>) & Pick<React.HTMLAttributes<HTMLDivElement>, 'className' | 'style' | 'id' | 'role'> & { [key: `data-${string}`]: any; [key: `aria-${string}`]: any; }; export type CheckableTagGroupClassNamesType = SemanticClassNamesType<CheckableTagGroupBaseProps<any>, SemanticName>; export type CheckableTagGroupStylesType = SemanticStylesType<CheckableTagGroupBaseProps<any>, SemanticName>; export type CheckableTagGroupProps<CheckableTagValue> = CheckableTagGroupBaseProps<CheckableTagValue> & { classNames?: CheckableTagGroupClassNamesType; styles?: CheckableTagGroupStylesType; }; export interface CheckableTagGroupRef { nativeElement: HTMLDivElement; } declare const ForwardCheckableTagGroup: (<CheckableTagValue extends string | number>(props: CheckableTagGroupProps<CheckableTagValue> & { ref?: React.Ref<CheckableTagGroupRef>; }) => React.ReactElement) & { displayName?: string; }; export default ForwardCheckableTagGroup;