"use client";

import { ComponentConfig } from "@/types/component";
import { AutoGenerationConfig } from "@/types/screen";

/**
 * TextInput 컴포넌트 설정 타입
 */
export interface TextInputConfig extends ComponentConfig {
  // 텍스트 관련 설정
  placeholder?: string;
  maxLength?: number;
  minLength?: number;

  // 공통 설정
  disabled?: boolean;
  required?: boolean;
  readonly?: boolean;
  placeholder?: string;
  helperText?: string;

  // 스타일 관련
  variant?: "default" | "outlined" | "filled";
  size?: "sm" | "md" | "lg";

  // 이벤트 관련
  onChange?: (value: any) => void;
  onFocus?: () => void;
  onBlur?: () => void;
  onClick?: () => void;

  // 새로운 기능들
  hidden?: boolean; // 숨김 기능 (편집기에서는 연하게, 실제 화면에서는 숨김)
  autoGeneration?: AutoGenerationConfig; // 자동생성 설정
}

/**
 * TextInput 컴포넌트 Props 타입
 */
export interface TextInputProps {
  id?: string;
  name?: string;
  value?: any;
  config?: TextInputConfig;
  className?: string;
  style?: React.CSSProperties;

  // 이벤트 핸들러
  onChange?: (value: any) => void;
  onFocus?: () => void;
  onBlur?: () => void;
  onClick?: () => void;
}
