- 집수정 조정값(BasinAdjust: 내공 폭·높이, 좌우 lateralM, 상하 slopeM) 신설. 측점별 세션 보관 + 백엔드 design.basin_adjust 저장 경로(Schema·Router) 연동 - 조정창에 집수정 조정 항목 추가, I형 관 시작점을 벽 안쪽 변과 원지반의 교차점으로 산출(이분법), 집수정 성토(되메움)선 5° → 성토 비탈 1:1.2로 통일 - 설계선 트림 수정: 배수관 레이아웃이 사면 폴리라인을 준 쪽은 그 시작점(노견)에서 설계선을 끊는다 — 종전에는 트림 경계에서 끝점 표고를 벽 상단으로 강제 스냅해 집수정을 좌우로 옮기면 마지막 구간이 수직으로 튀는 선이 남았다(사용자 지적) - basinApproachPoints의 길이 0 중복 꼭짓점 제거 검증: 4+4.3(집수정 I형 좌우 2.9m 이동)·13+15.7·5+0.0·2+0.0에서 급경사 세그먼트 0건 · tsc --noEmit 통과 · ruff check 통과 · prettier 적용 · pytest tmp/tests/ 148 passed, 7 skipped · B06_Section 700줄 초과 0건. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
185 lines
3.9 KiB
CSS
185 lines
3.9 KiB
CSS
/* 구조물 위치 조정 오버레이 창. */
|
|
.b06-structure-panel {
|
|
position: absolute;
|
|
bottom: var(--spacing-8);
|
|
left: var(--spacing-8);
|
|
z-index: 3;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
padding: var(--spacing-8);
|
|
border: 1px solid var(--color-danger);
|
|
border-radius: var(--radius-inputs);
|
|
background: color-mix(in srgb, var(--color-surface-raised) 94%, transparent);
|
|
}
|
|
|
|
.b06-structure-panel.is-hidden,
|
|
.b06-structure-panel__value span.is-hidden,
|
|
.b06-structure-panel__btn.is-hidden,
|
|
.b06-structure-panel__buttons.is-hidden,
|
|
.b06-structure-panel__struct.is-hidden {
|
|
display: none;
|
|
}
|
|
|
|
.b06-structure-panel__head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-8);
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.b06-structure-panel__title {
|
|
color: var(--color-danger);
|
|
font-size: var(--text-caption);
|
|
font-weight: var(--font-weight-medium);
|
|
}
|
|
|
|
.b06-structure-panel__value {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1px;
|
|
color: var(--color-text-secondary);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.b06-structure-panel__controls.b06-structure-panel__buttons {
|
|
display: grid;
|
|
grid-template-areas: ". up ." "left reset right" ". down equal";
|
|
justify-content: center;
|
|
gap: 2px;
|
|
}
|
|
|
|
.b06-structure-panel__btn--up {
|
|
grid-area: up;
|
|
}
|
|
.b06-structure-panel__btn--down {
|
|
grid-area: down;
|
|
}
|
|
.b06-structure-panel__btn--left {
|
|
grid-area: left;
|
|
}
|
|
.b06-structure-panel__btn--right {
|
|
grid-area: right;
|
|
}
|
|
.b06-structure-panel__btn--reset {
|
|
grid-area: reset;
|
|
}
|
|
.b06-structure-panel__btn--equal {
|
|
grid-area: equal;
|
|
}
|
|
|
|
.b06-structure-panel__controls .b06-structure-panel__btn {
|
|
box-sizing: border-box;
|
|
width: 26px;
|
|
height: 22px;
|
|
padding: 0;
|
|
text-align: center;
|
|
line-height: 1;
|
|
}
|
|
|
|
.b06-structure-panel__hval {
|
|
box-sizing: border-box;
|
|
width: 3.5em;
|
|
text-align: center;
|
|
color: var(--color-text-body);
|
|
font-size: var(--text-caption);
|
|
align-self: center;
|
|
}
|
|
|
|
.b06-structure-panel__struct {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: 2px;
|
|
color: var(--color-text-secondary);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.b06-structure-panel__label {
|
|
color: var(--color-text-muted);
|
|
font-size: var(--text-caption);
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.b06-structure-panel__controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
}
|
|
|
|
.b06-structure-panel__basin-buttons {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, max-content);
|
|
gap: 2px;
|
|
}
|
|
|
|
.b06-structure-panel__basin-reset {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.b06-structure-panel__select {
|
|
flex: 1;
|
|
padding: 1px var(--spacing-4);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-inputs);
|
|
background: var(--color-surface);
|
|
color: var(--color-text);
|
|
font-size: var(--text-caption);
|
|
}
|
|
|
|
.b06-structure-panel__btn {
|
|
padding: 0 var(--spacing-8);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-inputs);
|
|
background: var(--color-surface);
|
|
color: var(--color-text-secondary);
|
|
cursor: pointer;
|
|
font-size: var(--text-caption);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.b06-structure-panel__btn:hover {
|
|
border-color: var(--color-danger);
|
|
color: var(--color-danger);
|
|
}
|
|
|
|
.b06-structure-panel__close {
|
|
padding: 0 4px;
|
|
border-color: transparent;
|
|
background: transparent;
|
|
}
|
|
|
|
.b06-cross-card__zoom {
|
|
position: absolute;
|
|
top: var(--spacing-4);
|
|
right: var(--spacing-4);
|
|
z-index: 2;
|
|
display: flex;
|
|
overflow: hidden;
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-inputs);
|
|
background: color-mix(in srgb, var(--color-surface-raised) 88%, transparent);
|
|
}
|
|
|
|
.b06-cross-card__zoom-btn {
|
|
width: 22px;
|
|
height: 22px;
|
|
padding: 0;
|
|
border: none;
|
|
border-left: 1px solid var(--color-border);
|
|
background: none;
|
|
color: var(--color-text-secondary);
|
|
font-size: 0.8rem;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.b06-cross-card__zoom-btn:first-child {
|
|
border-left: none;
|
|
}
|
|
|
|
.b06-cross-card__zoom-btn:hover {
|
|
color: var(--color-text);
|
|
background: var(--color-surface);
|
|
}
|