import { type CSSProperties } from 'react'; import { type SFieldSize, type SFieldStatus } from '../SField'; import { type SIconName } from '../SIcon'; import { type SColor } from '../../lib/color'; import { type Rule } from '../../lib/form'; import { type STooltipProps } from '../STooltip'; export type SChipInputSize = SFieldSize; export type SChipInputMetaPlacement = 'end' | 'inline'; /** ref로 노출되는 UX 메서드 (sd-chip-input @Method sdFocus 대응) */ export interface SChipInputHandle { /** 입력 필드에 포커스를 이동합니다. */ focus: () => void; } export interface SChipInputProps { /** 칩 값 목록 */ values?: string[]; /** 값 변경 (sdUpdate) — 전체 배열 */ onValueChange?: (values: string[]) => void; /** 입력 중 문자열 변경 (sdInput) */ onInput?: (value: string) => void; onFocus?: () => void; onBlur?: () => void; /** 칩별 에러 (배열 또는 판별 함수) */ errors?: boolean[] | ((value: string) => boolean); /** 칩별 비활성 (배열 또는 판별 함수) */ disabledChips?: boolean[] | ((value: string) => boolean); size?: SChipInputSize; disabled?: boolean; placeholder?: string; name?: string; rules?: Rule[]; error?: boolean; /** 입력 초기화 버튼 표시 */ useReset?: boolean; /** 최대 칩 개수 */ maxCount?: number; /** 최대 개수·초기화 meta 위치 */ metaPlacement?: SChipInputMetaPlacement; /** 중복 에러 메시지 항목명 */ duplicateLabel?: string; /** 자동완성 후보 */ suggestions?: string[]; loadingSuggestions?: boolean; /** 추천 항목 (입력값 없을 때) */ recommendedItems?: string[]; loadingRecommendedItems?: boolean; /** 드롭다운 최소 너비 (숫자=px) */ dropdownMinWidth?: number | string; label?: string; labelWidth?: number | string; hint?: string; errorMessage?: string; width?: number | string; status?: SFieldStatus; icon?: SIconName; iconColor?: SColor; labelTooltip?: string; labelTooltipProps?: Partial; className?: string; style?: CSSProperties; } /** SChipInput — sd-chip-input 포팅. 칩 목록 + 입력 + 자동완성/추천 드롭다운 + 초기화. */ export declare const SChipInput: import("react").ForwardRefExoticComponent>;