From cfe4d8b26d28d3cc95a2efb757cc44b14c793563 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Thu, 8 Oct 2026 13:04:31 +0900 Subject: [PATCH] =?UTF-8?q?fix(B05):=20=ED=99=95=ED=8F=AD=20=EA=B5=AC?= =?UTF-8?q?=EA=B0=84=20=EB=8B=A8=EC=B6=94=20=EC=BC=AC=20=ED=91=9C=EC=8B=9D?= =?UTF-8?q?=20=C2=B7=20[=EC=B6=94=EA=B0=80]=20=EB=8B=A8=EC=B6=94=EC=99=80?= =?UTF-8?q?=20=EA=B2=B9=EC=B9=98=EC=A7=80=20=EC=95=8A=EA=B2=8C=20=C2=B7=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=8B=9C=ED=97=98=20=EB=A7=9E=EC=B6=A4(87?= =?UTF-8?q?-3=20=C2=B7=2087-4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 켬 단추 class is-primary 대신 is-on(시험 · [추가] 찾기와 겹침) · 켬 표식 ✓ · 단추 높이 자동 - ui_checks 52-10 · 53-1 노면공 = 시작 · 종료만 · 길이 출력 · 카드 23+0 기준으로 맞춤 Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ --- .../B05_Profile_UI_Structures_Widening.ts | 6 ++++-- B05_Profile/B05_Profile_UI_Style_Structures.css | 16 +++++++++++++++- resources/tester/ui_checks/52-10_노면공_기타.js | 2 +- resources/tester/ui_checks/53-1_횡단_고르기.js | 10 ++++++---- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/B05_Profile/B05_Profile_UI_Structures_Widening.ts b/B05_Profile/B05_Profile_UI_Structures_Widening.ts index 252ce54f9..b649eb18f 100644 --- a/B05_Profile/B05_Profile_UI_Structures_Widening.ts +++ b/B05_Profile/B05_Profile_UI_Structures_Widening.ts @@ -62,10 +62,12 @@ export function createWideningBox(hooks: { const on = !isRunOff(run, off); const button = document.createElement("button"); button.type = "button"; - button.className = `b05-route__irregular-btn${on ? " is-primary" : ""}`; + button.className = `b05-route__irregular-btn${on ? " is-on" : ""}`; button.setAttribute("aria-pressed", String(on)); button.dataset.wideningRun = `${run.start_m}-${run.end_m}`; - button.textContent = `${stationLabel(run.start_m, step)} ~ ${stationLabel(run.end_m, step)} · 확폭 ${Number(run.widening_m.toFixed(2))} m`; + const from = stationLabel(run.start_m, step); + const to = stationLabel(run.end_m, step); + button.textContent = `${from === to ? from : `${from} ~ ${to}`} · 확폭 ${Number(run.widening_m.toFixed(2))} m`; button.title = on ? "확폭 포함 — 누르면 규격 폭만" : "규격 폭만 — 누르면 확폭 포함"; button.addEventListener("click", () => { off = toggleRun(list, off, run); diff --git a/B05_Profile/B05_Profile_UI_Style_Structures.css b/B05_Profile/B05_Profile_UI_Style_Structures.css index 9a1311990..bb0919662 100644 --- a/B05_Profile/B05_Profile_UI_Style_Structures.css +++ b/B05_Profile/B05_Profile_UI_Style_Structures.css @@ -582,8 +582,12 @@ gap: 4px; } -.b05-structure__widening .b05-structure__group-body button { +.b05-structure__widening .b05-structure__group-body button:not(.b05-structure__step) { align-self: stretch; + height: auto; + min-height: var(--b05-control-h); + padding-block: 3px; + line-height: 1.3; text-align: left; white-space: normal; } @@ -592,3 +596,13 @@ color: var(--text-muted, inherit); font-size: var(--text-caption); } + +/* 켬 = 확폭 포함 — 테두리색 + 표식(`.is-primary` 는 [추가] 단추 몫이라 안 씀) */ +.b05-structure__widening .b05-route__irregular-btn.is-on { + border-color: color-mix(in srgb, var(--color-royal-amethyst, rgb(109 40 217)) 55%, transparent); + color: var(--color-text); +} + +.b05-structure__widening [data-widening-run][aria-pressed="true"]::before { + content: "✓ "; +} diff --git a/resources/tester/ui_checks/52-10_노면공_기타.js b/resources/tester/ui_checks/52-10_노면공_기타.js index efce4d6ff..7bc7c221f 100644 --- a/resources/tester/ui_checks/52-10_노면공_기타.js +++ b/resources/tester/ui_checks/52-10_노면공_기타.js @@ -262,7 +262,7 @@ !etc.missing && etc.name === NAME && JSON.stringify(etc.containers) === '["detail"]' && - JSON.stringify(etc.legend) === '["상세 내용 1"]' && + JSON.stringify(etc.legend) === '["상세 내용"]' && JSON.stringify(etc.notes) === '["52-14 비고"]' && JSON.stringify(etc.containerLinks) === "[true]" && (etc.phase !== "edit" || diff --git a/resources/tester/ui_checks/53-1_횡단_고르기.js b/resources/tester/ui_checks/53-1_횡단_고르기.js index c6025557e..1e56458ec 100644 --- a/resources/tester/ui_checks/53-1_횡단_고르기.js +++ b/resources/tester/ui_checks/53-1_횡단_고르기.js @@ -132,7 +132,7 @@ }; /** 세션에만 넣는 종류(표 01~08) — 이미 있으면 건너뜀. [군, 종류, 측점, +m, 길이(구간형)] */ const ADD = [ - ["G", "pavement_concrete", 22, 0, 10], + ["G", "pavement_concrete", 23, 0, 10], // 노면공 = 시작 · 종료만(87-1) — 23+0 ~ 23+10 · 카드 23+0 에 다른 구조물 없음 ["A", "cross_underdrain", 22, 0], ["E", "mirror", 22, 0], ["A", "ford_pavement", 3, 0], @@ -181,10 +181,12 @@ if (!labels[1].hidden) { const [s0, s1] = labels[1].querySelectorAll("input"); const [e0, e1] = labels[3].querySelectorAll("input"); - fire(s0, String(no - 1)); - fire(s1, "10"); + // 기준 칸 없는 종류(노면공 87-1)는 시작 = 누른 측점 · 종료 = +10 m(알약 = 시점) + const rangeOnly = labels[2].hidden; + fire(s0, String(rangeOnly ? no : no - 1)); + fire(s1, rangeOnly ? String(plus) : "10"); fire(e0, String(no)); - fire(e1, "10"); + fire(e1, rangeOnly ? String(plus + 10) : "10"); } await w(300); } else if (!labels[1].hidden) {