"use client";

import { ButtonPrimaryConfig } from "./types";

/**
 * ButtonPrimary 컴포넌트 기본 설정
 */
export const ButtonPrimaryDefaultConfig: ButtonPrimaryConfig = {
  text: "저장",
  actionType: "button",
  variant: "default",
  size: "md",
  disabled: false,
  required: false,
  readonly: false,
  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",
  },
};

/**
 * ButtonPrimary 컴포넌트 설정 스키마
 * 유효성 검사 및 타입 체크에 사용
 */
export const ButtonPrimaryConfigSchema = {
    text: { type: "string", default: "버튼" },
  actionType: { 
    type: "enum", 
    values: ["button", "submit", "reset"], 
    default: "button" 
  },
  variant: { 
    type: "enum", 
    values: ["primary", "secondary", "danger"], 
    default: "primary" 
  },
  
  // 공통 스키마
  disabled: { type: "boolean", default: false },
  required: { type: "boolean", default: false },
  readonly: { type: "boolean", default: false },
  variant: { 
    type: "enum", 
    values: ["default", "outlined", "filled"], 
    default: "default" 
  },
  size: { 
    type: "enum", 
    values: ["sm", "md", "lg"], 
    default: "md" 
  },
};
