refactor(M02): 좌측 패널을 시스템 양식 목록만으로 — 층 · 프로젝트 · 프로젝트 단추 다섯 뺌 · 제목 줄 headerSlot 연결

작도 영역 칸은 제목 줄 가운데로. 그림 칸 위쪽 246px.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PxvYb5ufV1kWdBvZbpDfu6
This commit is contained in:
2026-09-25 17:55:38 +09:00
co-authored by Claude Sonnet 5
parent 5b6cf0103e
commit 39c79f05d0
7 changed files with 42 additions and 304 deletions
@@ -62,12 +62,13 @@ export function createMain(isAdmin: boolean, onSaved?: () => void): MainHandle {
const title = el("h2", { className: "m02-main__title", text: L("M02_PickTemplate") });
const reload = createButton({ label: L("M02_Reload"), variant: "ghost" });
const save = createButton({ label: L("M02_Save"), variant: "filled" });
const slot = el("div", { className: "m02-main__slot" }); // 도면 양식의 작도 영역 칸이 들어옴
const notice = el("div", { className: "m02-main__notice", attrs: { hidden: "" } });
const host = el("div", { className: "m02-main__host" });
const root = el("div", {
className: "m02-main",
children: [
el("div", { className: "m02-main__head", children: [title, reload, save] }),
el("div", { className: "m02-main__head", children: [title, slot, reload, save] }),
notice,
host,
],
@@ -110,6 +111,7 @@ export function createMain(isAdmin: boolean, onSaved?: () => void): MainHandle {
const drop = (): void => {
editor?.destroy();
editor = null;
slot.replaceChildren();
};
async function mount(doc: unknown, at: Selection): Promise<void> {
@@ -141,6 +143,7 @@ export function createMain(isAdmin: boolean, onSaved?: () => void): MainHandle {
layer: at.layer,
projectId: at.projectId,
onChanged: (d: boolean) => (dirty = d && !readOnly),
headerSlot: slot,
});
return;
}