/**
 * V2 Components 모듈 인덱스
 *
 * V2 통합 컴포넌트 시스템
 */

// Phase 1 컴포넌트
export { V2Input } from "./V2Input";
export { V2Select } from "./V2Select";
export { V2Date } from "./V2Date";

// Phase 2 컴포넌트
export { V2List } from "./V2List";
export { V2Layout } from "./V2Layout";
export { V2Group } from "./V2Group";

// Phase 3 컴포넌트
export { V2Media } from "./V2Media";
export { V2Biz } from "./V2Biz";
export { V2Hierarchy } from "./V2Hierarchy";

// V2Text는 V2Input의 textarea 모드로 대체 가능

// 렌더러
export { V2ComponentRenderer } from "./V2ComponentRenderer";

// 설정 패널
export { DynamicConfigPanel, COMMON_SCHEMAS } from "./DynamicConfigPanel";

// 데모 컴포넌트
export { V2ComponentsDemo } from "./V2ComponentsDemo";

// 폼 컨텍스트 및 액션
export {
  V2FormProvider,
  useV2Form,
  useV2FormOptional,
  useV2Field,
  useCascadingOptions,
  useFormActions,
  useRepeaterField,
} from "./V2FormContext";

// 설정 UI 패널
export { ConditionalConfigPanel } from "./ConditionalConfigPanel";

// 폼 관련 타입 re-export
export type {
  FormStatus,
  FieldError,
  FieldState,
  SubmitConfig,
  SubmitResult,
  ValidationResult,
  FieldMapping,
  ScreenDataTransferConfig,
  FormCompatibilityBridge,
} from "@/types/v2-form";

// 타입 re-export
export type {
  // 공통 타입
  V2ComponentType,
  V2BaseProps,
  ConditionalConfig,
  AutoFillConfig,
  CascadingConfig,
  MutualExclusionConfig,

  // V2Input 타입
  V2InputType,
  V2InputFormat,
  V2InputConfig,
  V2InputProps,

  // V2Select 타입
  V2SelectMode,
  V2SelectSource,
  SelectOption,
  V2SelectConfig,
  V2SelectProps,

  // V2Date 타입
  V2DateType,
  V2DateConfig,
  V2DateProps,

  // V2List 타입
  V2ListViewMode,
  ListColumn,
  V2ListConfig,
  V2ListProps,

  // V2Layout 타입
  V2LayoutType,
  V2LayoutConfig,
  V2LayoutProps,

  // V2Group 타입
  V2GroupType,
  TabItem,
  V2GroupConfig,
  V2GroupProps,

  // V2Media 타입
  V2MediaType,
  V2MediaConfig,
  V2MediaProps,

  // V2Biz 타입
  V2BizType,
  V2BizConfig,
  V2BizProps,

  // V2Hierarchy 타입
  V2HierarchyType,
  V2HierarchyViewMode,
  HierarchyNode,
  V2HierarchyConfig,
  V2HierarchyProps,

  // 통합 Props
  V2ComponentProps,
} from "@/types/v2-components";
