"use client"; import type { Block, ButtonBlockProps, FormBlockProps, ListBlockProps, SectionBlockProps, TextBlockProps, VideoBlockProps } from "@/features/editor/state/editorStore"; import { ButtonPropertiesPanel } from "./ButtonPropertiesPanel"; import { TextPropertiesPanel } from "./TextPropertiesPanel"; import { ListPropertiesPanel } from "./ListPropertiesPanel"; import { DividerPropertiesPanel } from "./DividerPropertiesPanel"; import { ImagePropertiesPanel } from "./ImagePropertiesPanel"; import { SectionPropertiesPanel } from "./SectionPropertiesPanel"; import { VideoPropertiesPanel } from "./VideoPropertiesPanel"; import { FormInputPropertiesPanel } from "../forms/FormInputPropertiesPanel"; import { FormSelectPropertiesPanel } from "../forms/FormSelectPropertiesPanel"; import { FormCheckboxPropertiesPanel } from "../forms/FormCheckboxPropertiesPanel"; import { FormRadioPropertiesPanel } from "../forms/FormRadioPropertiesPanel"; import { FormControllerPanel } from "../forms/FormControllerPanel"; import { ProjectPropertiesPanel } from "./ProjectPropertiesPanel"; interface PropertiesSidebarProps { blocks: Block[]; selectedBlockId: string | null; selectedListItemId: string | null; updateBlock: (id: string, partial: any) => void; removeBlock: (id: string) => void; duplicateBlock: (id: string) => void; // 텍스트 속성 패널에서 사용하는 인라인 편집 상태를 그대로 전달한다. editingBlockId: string | null; setEditingText: (value: string) => void; onMoveSelectedItemUp: (blockId: string) => void; onMoveSelectedItemDown: (blockId: string) => void; onIndentSelectedItem: (blockId: string) => void; onOutdentSelectedItem: (blockId: string) => void; } // 우측 속성 패널을 분리한 컴포넌트 export function PropertiesSidebar(props: PropertiesSidebarProps) { const { blocks, selectedBlockId, selectedListItemId, updateBlock, removeBlock, duplicateBlock, editingBlockId, setEditingText, onMoveSelectedItemUp, onMoveSelectedItemDown, onIndentSelectedItem, onOutdentSelectedItem, } = props; return ( ); }