"use client";

import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import { ButtonPrimaryWrapper } from "./ButtonPrimaryComponent";
import { V2ButtonConfigPanel } from "@/components/v2/config-panels/V2ButtonConfigPanel";

/**
 * ButtonPrimary 컴포넌트 정의
 * button-primary 컴포넌트입니다
 */
export const V2ButtonPrimaryDefinition = createComponentDefinition({
  id: "v2-button-primary",
  name: "기본 버튼",
  nameEng: "ButtonPrimary Component",
  description: "일반적인 액션을 위한 기본 버튼 컴포넌트",
  category: ComponentCategory.ACTION,
  webType: "button",
  component: ButtonPrimaryWrapper,
  defaultConfig: {
    text: "저장",
    actionType: "button",
    variant: "primary",
    action: {
      type: "save",
      successMessage: "저장되었습니다.",
      errorMessage: "저장 중 오류가 발생했습니다.",
    },
    displayMode: "icon-text",
    icon: {
      name: "Check",
      type: "lucide",
      size: "보통",
    },
    iconTextPosition: "right",
    iconGap: 6,
    style: {
      borderRadius: "8px",
      labelColor: "#FFFFFF",
      fontSize: "12px",
      fontWeight: "normal",
      labelTextAlign: "left",
      backgroundColor: "#3B83F6",
    },
  },
  defaultSize: { width: 100, height: 40 },
  configPanel: V2ButtonConfigPanel,
  icon: "MousePointer",
  tags: ["버튼", "액션", "클릭"],
  version: "1.0.0",
  author: "개발팀",
  documentation: "https://docs.example.com/components/button-primary",
});

// 컴포넌트는 ButtonPrimaryRenderer에서 자동 등록됩니다

// 타입 내보내기
export type { ButtonPrimaryConfig } from "./types";

// 컴포넌트 내보내기
export { ButtonPrimaryComponent } from "./ButtonPrimaryComponent";
export { ButtonPrimaryRenderer } from "./ButtonPrimaryRenderer";
