feat(M01): 왼쪽 패널을 공용 접기 컨테이너 여덟 개로 · 하위 거름 · 참조 칸에 키 옆 이름

- 인력 · 재료 · 기계 · 소요량 · 계수 · 환율 · 요율 · 일위대가 로직 컨테이너(환율·요율은 눌러 바로 표)
- 인력 조사별 · 기계 세부분류별 거름 · 줄 더하기는 고른 조사·세부분류를 채움
- 준용 · 조달 연결 · 가격 연결 칸에 키와 이름을 같이 보임

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
This commit is contained in:
2026-09-20 02:25:03 +09:00
co-authored by Claude Sonnet 5
parent d1e2132109
commit c26f15718d
10 changed files with 313 additions and 151 deletions
+35 -21
View File
@@ -4,33 +4,53 @@
}
.m01-master__side {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
padding-top: var(--spacing-8);
}
.m01-master__tabs {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: var(--spacing-4);
/* 왼쪽 패널 — 공용 접기 컨테이너 여덟 */
.m01-side {
display: flex;
flex-direction: column;
gap: var(--spacing-8);
}
.m01-master__files {
.m01-side__group {
padding: calc(var(--spacing-8) + var(--spacing-4));
border-radius: var(--radius-cards);
background: var(--color-surface-raised);
}
.m01-side__group > h3 {
margin: 0;
color: var(--color-text);
font-size: var(--text-body-sm);
}
.m01-side__leaf > h3::after {
display: none;
}
.m01-side__leaf.is-active > h3 {
color: var(--color-accent);
}
.m01-side__items {
display: flex;
flex-direction: column;
gap: 2px;
max-height: 50vh;
margin-top: var(--spacing-8);
overflow: auto;
}
.m01-master__tab,
.m01-master__file {
.m01-side__item {
display: flex;
justify-content: space-between;
gap: var(--spacing-8);
padding: var(--spacing-4) var(--spacing-8);
border: 1px solid var(--color-border);
border: 0;
border-radius: var(--radius-buttons);
background: var(--color-surface);
background: transparent;
color: var(--color-text-body);
font: inherit;
font-size: var(--text-body-sm);
@@ -38,22 +58,16 @@
cursor: pointer;
}
.m01-master__file {
border-color: transparent;
background: transparent;
}
.m01-master__tab:hover,
.m01-master__file:hover {
.m01-side__item:hover {
background: var(--color-paper);
}
.m01-master__tab.is-active,
.m01-master__file.is-active {
.m01-side__item.is-active {
background: var(--color-mist-violet);
color: var(--color-accent);
}
.m01-side__muted,
.m01-master__muted {
color: var(--color-text-muted);
font-size: var(--text-caption);