feat(abut): 교대 형상·입력 패널과 교각 받침·솔플레이트 개편

- 교대 형상(src/core/abut, 3D 장면, 목록·카메라·맞춤)과 교대 입력 패널 추가
- 교각 받침 기준 카드 제거, 솔플레이트 규칙을 교각별 입력으로 변경
- 받침 ELEVATION·솔플레이트 TABLE을 모델값으로 연결
- 교대 입력값 카드: 형식 행에 시점·종점 표시, 제목을 "A1 입력값 [입력]"으로 변경
- 테스트 614건 통과, 타입 검사 통과

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-11-03 14:51:34 +09:00
1 parent b1b2ad1ddb
commit 1d31d2f3a9
44 files changed
+2571 -120

No files matched your search

+22 -7
View File
@@ -212,17 +212,26 @@ select {
list-style: none;
padding: 0;
margin: 0;
max-height: 70vh;
overflow: auto;
max-height: 300px;
overflow-y: auto;
/* The side panel is a flex column; without this the list shrinks to 0 height and shows no rows. */
flex-shrink: 0;
}
/* Rows: name + badge (2 columns). Rows with a checkbox get a 28 px first column. */
.pier-items li {
display: grid;
grid-template-columns: 28px 1fr auto;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 6px;
gap: 8px;
border-bottom: 1px solid var(--line);
padding: 2px 0;
border-radius: 6px;
padding: 2px 6px 2px 0;
}
.pier-items li:has(> input[type='checkbox']) {
grid-template-columns: 28px minmax(0, 1fr) auto;
gap: 6px;
}
.pier-items input[type='checkbox'] {
@@ -630,7 +639,6 @@ body { background: #eef1f4; font-family: 'Noto Sans KR', system-ui, sans-serif;
.pier-tools { display: flex; align-items: center; gap: 8px; padding: 0 4px 8px; }
.pier-tools select { border: 1px solid #c3cbd4; border-radius: 6px; background: #ffffff; min-height: 36px; }
.phead { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 0 10px 6px; font-size: 12px; color: #55606e; border-bottom: 1px solid #d5dbe2; }
.pier-items li { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; border-radius: 6px; padding-right: 6px; }
.pier-items li:has(.pier-name[aria-pressed='true']) { background: #e3edf8; }
.pier-name { width: 100%; border: 0; background: transparent; color: #18212b; text-align: left; font-size: 13px; min-height: 44px; padding: 0 6px; }
.pier-name[aria-pressed='true'] { color: #123e70; font-weight: 700; }
@@ -673,7 +681,6 @@ body { background: #eef1f4; font-family: 'Noto Sans KR', system-ui, sans-serif;
.chip-opt { min-height: 36px; padding: 0 10px; border: 1px solid #c3cbd4; border-radius: 16px; background: #ffffff; color: #18212b; font-size: 13px; cursor: pointer; }
.chip-opt[aria-pressed='true'] { background: #1f5fa8; border-color: #1f5fa8; color: #ffffff; font-weight: 700; }
.chip-opt:disabled { color: #8a95a3; background: #f2f4f7; border-style: dashed; cursor: default; }
.pier-items { max-height: 300px; overflow-y: auto; }
/* 열별 본수 (C4) */
.pile-rows { margin-top: 10px; display: grid; gap: 6px; }
.pile-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
@@ -825,6 +832,14 @@ body { background: #eef1f4; font-family: 'Noto Sans KR', system-ui, sans-serif;
.footing-grid { grid-template-columns: 1fr; }
}
/* 교량받침 삽도: the plan on the left, the section on its right. Narrow screens stack both. */
.bearing-sketch { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(240px, 1fr); gap: 12px; align-items: start; margin-top: 12px; }
.bearing-sketch figure { margin: 0; }
.bearing-sketch svg { display: block; width: 100%; max-width: none !important; height: auto; background: #ffffff; border: 1px solid #d5dde6; border-radius: 6px; }
@media (max-width: 800px) {
.bearing-sketch { grid-template-columns: 1fr; }
}
/* 입력값: one row per pier; the table scrolls sideways in the narrow left panel. */
.pier-table-wrap { overflow-x: auto; margin-bottom: 8px; }
#inputs-all { font-size: 12px; width: 100%; }