feat(B05,B06): 구조물 배치를 실시간 반영으로 바꾸고 이식 행·강조를 정리한다
2026-08-29 사용자 지시 3건: 1. 유입구·유출구로 옮겨 온 단 수·옵션 행을 폼 양식(라벨+한 덩어리 컨트롤)으로 맞추고 2열 격자로 세운다. 2. 이미 고른 항목은 값이 바뀔 때마다 곧바로 반영한다([수정] 버튼 불필요). 버튼은 visibility만 꺼 자리를 남겨 삭제·리셋의 위치·크기가 흔들리지 않게 했다. 정본 주입이 되먹임으로 돌아와도 편집 중인 폼은 닫지 않는다. 3. 도면에서 구조물을 고르면 그쪽 그룹(유입구/유출구)을 붉은 계열로 강조한다. 카드만 고른 경우는 강조하지 않는다 — 대표 벽은 조용히 딸려 오고, 그 벽을 다시 눌러 선택을 풀면 강조만 꺼지고 행은 남는다. 검증: 슬롯 grid 2열, 카드 선택 시 강조 없음·행 2개, 다른 벽 클릭 시 유입구 그룹 붉은 테두리(rgb(192,57,43)), 재클릭 시 강조 해제·행 복귀. 길이 + 즉시 캐시 반영(11) 후 - 원복(10), 폼 유지. typecheck 통과.
This commit is contained in:
@@ -303,3 +303,87 @@
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
/* 유입구·유출구 그룹으로 옮겨 온 행(단 수·옵션) — 폼의 다른 항목과 같은 표기로
|
||||
* 맞추고 2열로 세운다(2026-08-29 사용자 지시 1). 조정창 안에서 쓰던 어두운 행
|
||||
* 양식은 여기서 벗는다. */
|
||||
.b05-structure__adjust-slot {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.b05-structure__adjust-slot .b06-structure-panel__struct {
|
||||
display: flex;
|
||||
min-width: 0;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.b05-structure__adjust-slot .b06-structure-panel__label {
|
||||
color: var(--color-text-body);
|
||||
font-size: var(--text-caption);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 단 수 [-][값][+]도 폼의 숫자 조정칸과 같은 한 덩어리로 보이게 한다. */
|
||||
.b05-structure__adjust-slot .b06-structure-panel__controls {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
min-width: 0;
|
||||
align-items: stretch;
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: var(--radius-inputs);
|
||||
background: var(--color-surface);
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
.b05-structure__adjust-slot .b06-structure-panel__controls .b06-structure-panel__btn {
|
||||
width: 28px;
|
||||
height: auto;
|
||||
min-height: 24px;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
color: var(--color-text-body);
|
||||
}
|
||||
|
||||
.b05-structure__adjust-slot .b06-structure-panel__hval {
|
||||
display: flex;
|
||||
min-width: 0;
|
||||
flex: 1 1 auto;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-right: 1px solid var(--color-border);
|
||||
border-left: 1px solid var(--color-border);
|
||||
color: var(--color-text);
|
||||
font-size: var(--text-caption);
|
||||
}
|
||||
|
||||
/* 옵션 토글 둘은 한 덩어리 안에서 반씩 나눠 쓴다. */
|
||||
.b05-structure__adjust-slot
|
||||
.b06-structure-panel__controls.b06-structure-panel__toggles
|
||||
.b06-structure-panel__toggle {
|
||||
width: auto;
|
||||
flex: 1 1 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.b05-structure__adjust-slot
|
||||
.b06-structure-panel__controls.b06-structure-panel__toggles
|
||||
.b06-structure-panel__toggle
|
||||
+ .b06-structure-panel__toggle {
|
||||
border-left: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* 도면에서 고른 구조물 쪽 그룹 강조(2026-08-29 사용자 지시) — 조정창 테두리와 같은
|
||||
붉은 계열로 맞춰 "지금 만지는 구조물"이 한 색으로 읽히게 한다. */
|
||||
.b05-structure__group.is-active {
|
||||
border-color: var(--color-danger);
|
||||
background: color-mix(in srgb, var(--color-danger) 8%, transparent);
|
||||
}
|
||||
|
||||
.b05-structure__group.is-active > legend {
|
||||
color: var(--color-danger);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user