"use client"; import { createLayoutDefinition } from "../../utils/createLayoutDefinition"; import { FlexboxLayout } from "./FlexboxLayout"; import { FlexboxLayoutRenderer } from "./FlexboxLayoutRenderer"; import { LayoutRendererProps } from "../BaseLayoutRenderer"; import React from "react"; /** * 플렉스박스 레이아웃 래퍼 컴포넌트 (DynamicLayoutRenderer용) */ const FlexboxLayoutWrapper: React.FC = (props) => { const renderer = new FlexboxLayoutRenderer(props); return renderer.render(); }; /** * flexbox 레이아웃 정의 */ export const FlexboxLayoutDefinition = createLayoutDefinition({ id: "flexbox", name: "플렉스박스 레이아웃", nameEng: "Flexbox Layout", description: "유연한 박스 모델을 사용하는 레이아웃입니다.", category: "basic", icon: "flex", component: FlexboxLayoutWrapper, defaultConfig: { flexbox: { direction: "row", justify: "flex-start", align: "stretch", wrap: "nowrap", gap: 16, }, }, defaultZones: [ { id: "left", name: "좌측 영역", position: {}, size: { width: "50%", height: "100%" }, }, { id: "right", name: "우측 영역", position: {}, size: { width: "50%", height: "100%" }, }, ], tags: ["flexbox", "flex", "layout", "basic"], version: "1.0.0", author: "Screen Management System", documentation: "유연한 박스 모델을 사용하는 레이아웃입니다. 수평/수직 방향과 정렬 방식을 설정할 수 있습니다.", }); // 자동 등록을 위한 export export { FlexboxLayout } from "./FlexboxLayout"; export { FlexboxLayoutRenderer } from "./FlexboxLayoutRenderer";