"use client";

import React from "react";
import { createComponentDefinition } from "../../utils/createComponentDefinition";
import { ComponentCategory } from "@/types/component";
import type { WebType } from "@/types/screen";
import { ButtonPrimaryWrapper } from "./ButtonPrimaryComponent";
import { ButtonPrimaryConfig } from "./types";

/**
 * ButtonPrimary 컴포넌트 정의
 * button-primary 컴포넌트입니다
 */
export const ButtonPrimaryDefinition = createComponentDefinition({
  id: "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: "저장 중 오류가 발생했습니다.",
    },
  },
  defaultSize: { width: 120, height: 40 },
  configPanel: undefined, // 상세 설정 패널(ButtonConfigPanel)이 대신 사용됨
  icon: "MousePointer",
  tags: ["버튼", "액션", "클릭"],
  version: "1.0.0",
  author: "개발팀",
  documentation: "https://docs.example.com/components/button-primary",
  hidden: true, // v2-button-primary 사용으로 패널에서 숨김
});

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

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

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