feat(M02): 관리 화면 항목 나무 — 좌측 폴더 나무 · 표 ↔ 나무 고름 · 오른쪽 클릭 더하기 · 이름 바꾸기 · 옮기기 · 지우기 (PLAN 26-3a)

- 좌측 「구조물 집계 양식」 아래 「항목 나무」 카드(세 층 공용 · 깊이 자유 · 검색 · 키보드 위아래 · 펼침 · F2 · Delete)
- 항목 누름 → 표 그 열 고름 + 카드 넷 · 표에서 열 고름 → 나무 표시
- 나무 고침 POST /api/m02/layers/{층}/tree · 판 409 다시 읽고 알림 · 저장 안 한 표 고침은 저장/버림/취소 물음
- 읽기만 층은 메뉴 · 키 없음 · 나무 메뉴 자리는 sub5 의 ui_template_tree 그대로
- 시험 test_m02_treepanel 8 · test_m02_layer_screen 문구 맞춤

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D2nUMUMTsqm93PbQtipo6c
This commit is contained in:
2026-09-30 08:28:42 +09:00
co-authored by Claude Sonnet 5.5
parent 53d08087c9
commit 8f55366949
12 changed files with 882 additions and 5 deletions
@@ -0,0 +1,40 @@
/* 관리 화면 항목 나무 — 줄 모양은 공용 ui-tree · ui-sidebar-row */
.m02-tree {
padding-top: var(--spacing-8);
display: flex;
flex-direction: column;
gap: var(--spacing-8);
min-width: 0;
}
.m02-tree__body {
display: flex;
flex-direction: column;
gap: 2px;
max-height: 55vh;
min-height: 4rem;
overflow: auto;
outline: none;
}
.m02-tree__body .ui-tree__row {
min-width: 0;
overflow-wrap: anywhere;
}
.m02-tree__hint {
margin: 0;
padding: var(--spacing-8);
color: var(--color-text-muted);
font-size: var(--text-body-sm);
}
.m02-treedlg {
width: min(24rem, calc(100vw - 2 * var(--spacing-16)));
}
.m02-treedlg .ui-modal__body {
display: flex;
flex-direction: column;
gap: var(--spacing-12);
}