"use client"; import React from "react"; import { createComponentDefinition } from "../../utils/createComponentDefinition"; import { ComponentCategory } from "@/types/component"; import type { WebType } from "@/types/screen"; import { CardDisplayComponent } from "./CardDisplayComponent"; import { CardDisplayConfigPanel } from "./CardDisplayConfigPanel"; import { CardDisplayConfig } from "./types"; /** * CardDisplay 컴포넌트 정의 * 테이블 데이터를 카드 형태로 표시하는 컴포넌트 */ export const CardDisplayDefinition = createComponentDefinition({ id: "card-display", name: "카드 디스플레이", nameEng: "CardDisplay Component", description: "테이블 데이터를 카드 형태로 표시하는 컴포넌트", category: ComponentCategory.DISPLAY, webType: "text", component: CardDisplayComponent, defaultConfig: { cardsPerRow: 3, // 기본값 3 (한 행당 카드 수) cardSpacing: 16, cardStyle: { showTitle: true, showSubtitle: true, showDescription: true, showImage: false, showActions: true, maxDescriptionLength: 100, imagePosition: "top", imageSize: "medium", }, columnMapping: {}, dataSource: "table", staticData: [], }, defaultSize: { width: 800, height: 400 }, configPanel: CardDisplayConfigPanel, icon: "Grid3x3", tags: ["card", "display", "table", "grid"], version: "1.0.0", author: "개발팀", documentation: "테이블 데이터를 카드 형태로 표시하는 컴포넌트입니다. 레이아웃과 다르게 컴포넌트로서 재사용 가능하며, 다양한 설정이 가능합니다.", hidden: true, // v2-card-display 사용으로 패널에서 숨김 }); // 컴포넌트는 CardDisplayRenderer에서 자동 등록됩니다 // 타입 내보내기 export type { CardDisplayConfig } from "./types";