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

// 옛 입력/선택 컴포넌트는 Phase D.3 (2026-05-12) 에서 폐기됨 — canonical `input` 으로 흡수.

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

// Phase 3 컴포넌트 (V2Media 는 Phase D.5 폐기 — canonical input 의 file 분기로 흡수)
export { V2Biz } from "./V2Biz";
export { V2Hierarchy } from "./V2Hierarchy";

// V2Text 는 canonical `input` (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,

  // (옛 입력/선택 타입은 Phase D.3 에서 제거됨 — canonical InputConfig 와 OptionFilter 로 이전)

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

  // V2Layout 타입
  V2LayoutType,
  V2LayoutConfig,
  V2LayoutProps,

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

  // V2Media 타입은 Phase D.5 에서 v2-components 에서 제거됨 (canonical input 으로 흡수)

  // V2Biz 타입
  V2BizType,
  V2BizConfig,
  V2BizProps,

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

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