import { IconComponent } from '../../Icons/types'; import { InputProps } from '../Input/types'; import { ChipProps } from '../Chips/Chip'; export interface RenderItemProps { item: string; index: number; isEditing: boolean; disabled: boolean; onEdit: () => void; onDelete: () => void; itemIcon?: IconComponent; itemClassName?: string; } export interface InputMultipleProps extends Omit { value: string[]; onChange: (value: string[]) => void; name: string; valueSeparator?: "," | ";"; icon?: React.ReactNode; itemClassName?: string; itemIcon?: IconComponent; onValueDelete?: (value: string, index: number) => void; renderItem?: (props: RenderItemProps) => React.ReactNode; /** "wrap" (default) permite salto de línea; "scroll" mantiene una sola línea con drag horizontal. */ overflow?: "wrap" | "scroll"; /** Cuando es true, permite valores repetidos. Por defecto false. */ allowDuplicates?: boolean; chipProps?: Partial; } export interface LegacyInputMultipleProps { /** @deprecated Use 'state' instead */ variant?: "default" | "error" | "success" | "warning"; /** @deprecated Use 'supportingText' + 'state' instead */ helperText?: string | React.ReactNode; /** @deprecated Use 'supportingText' + state="error" instead */ errorText?: string | React.ReactNode; /** @deprecated Use 'readOnly' instead */ readonly?: boolean; } /** @internal — allows legacy props during migration period */ export type InputMultiplePropsWithLegacy = InputMultipleProps & Partial;