feat(B06): 269-2 좌측 컨테이너(횡단 보기 설정 · 표준 횡단면 설정) = 공용 양식
- createSectionFrame 횡단 칸 틀에 .ui-panel-form · 칸 · 라벨 · 단추 = 「구조물 배치」 기준 - B06 덧칠(칸 글자 · 색 · 오류 칸 접기) 걷음 · 줄 배치만 남김 - 시험 test_269_panel_form B06 항목 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QND7Co43B24zK2P937rdxt
This commit is contained in:
@@ -90,7 +90,8 @@ export function createSectionFrame(
|
||||
root.append(heading, body);
|
||||
return { root, body };
|
||||
}
|
||||
root.className = `b06-profile__group ui-collapsible ui-sidebar-section${collapsed ? " is-collapsed" : ""}`;
|
||||
// ui-panel-form: 좌측 패널 컨테이너 공용 양식(269 · 「구조물 배치」 기준 칸 · 라벨 · 단추).
|
||||
root.className = `b06-profile__group ui-collapsible ui-sidebar-section ui-panel-form${collapsed ? " is-collapsed" : ""}`;
|
||||
heading.className = "b06-profile__group-legend ui-collapsible__title";
|
||||
root.append(heading);
|
||||
return { root, body: root };
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
문제 제거(2026-08-06 사용자 보고). */
|
||||
border-radius: var(--radius-cards);
|
||||
background-color: var(--color-surface-raised);
|
||||
color: var(--color-text-body);
|
||||
font-size: var(--text-caption);
|
||||
}
|
||||
|
||||
.b06-profile__group-legend {
|
||||
@@ -64,7 +62,7 @@
|
||||
|
||||
/* 라벨·입력·버튼을 **한 줄**로 세운다(횡단 보기 설정, 2026-08-23 사용자 지시).
|
||||
ui-field는 기본이 세로(라벨 위·입력 아래·그 아래 오류 슬롯)라 그대로 두면 버튼이
|
||||
오류 슬롯 높이만큼 밀려 수평이 안 맞는다 — 이 줄에서만 가로로 눕히고 오류 슬롯을 접는다. */
|
||||
오류 슬롯 높이만큼 밀려 수평이 안 맞는다 — 이 줄에서만 가로로 눕힘(오류 슬롯 접기 = 공용 양식 `.ui-panel-form`). */
|
||||
.b06-profile__field-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -91,10 +89,6 @@
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.b06-profile__field-row .ui-field__error {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 창이 좁아 좌측 패널이 237px 까지 물러난 자리 — 라벨이 안 줄어 2px 이 새어 나왔다.
|
||||
그 폭에서만 라벨을 윗줄로 접는다. 넓은 폭 배치는 손대지 않는다(2026-09-08 실측).
|
||||
⚠ 폭 제한 없이 `flex-wrap` 을 주면 넓은 폭에서도 라벨이 윗줄로 올라간다 — 재 보고 되돌렸다. */
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
- 공용 양식 = ui_template 한 곳(`.ui-panel-form` · `.ui-panel-btn` · 카드 `createPanelCard`) ·
|
||||
칸 높이 · 라벨 틈 토큰 = theme 한 곳 · 「구조물 배치」도 같은 토큰.
|
||||
- B07 컨테이너 = 공용 카드 · 도면 단추 = `.ui-panel-btn` · 페이지 덧칠(크기 · 글자 · 바탕) 없음.
|
||||
- B06 컨테이너(횡단 보기 설정 · 표준 횡단면 설정) = 칸 틀 `createSectionFrame` 이 공용 양식을 붙임 ·
|
||||
단추 · 입력칸 = 공용 함수(createButton · createInputField · createSelectField) · B06 덧칠 없음.
|
||||
"""
|
||||
|
||||
import re
|
||||
@@ -24,6 +26,10 @@ B05_STRUCT_CSS = _read("B05_Profile/B05_Profile_UI_Style_Structures.css")
|
||||
B07_CSS = _read("B07_DesignDetail/B07_DesignDetail_UI_Style.css")
|
||||
B07_PANELS = _read("B07_DesignDetail/B07_DesignDetail_UI_Panels.ts")
|
||||
B07_PLAN = _read("B07_DesignDetail/B07_DesignDetail_UI_PlanKinds.ts")
|
||||
DESIGN_PANEL = _read("A00_Common/design/design_panel.ts")
|
||||
B06_CSS = _read("B06_Section/B06_Section_UI_Style.css")
|
||||
B06_PANEL = _read("B06_Section/B06_Section_UI_Page_Panel.ts")
|
||||
B06_STD = _read("B06_Section/B06_Section_UI_Standard_Panel.ts")
|
||||
|
||||
|
||||
def _block(css: str, selector: str) -> str:
|
||||
@@ -94,3 +100,25 @@ def test_B07_페이지_덧칠_없음():
|
||||
assert "font-size" not in _block(B07_CSS, ".b07-drawing-button__name")
|
||||
assert ".b07-cross-layout .ui-btn" not in B07_CSS
|
||||
assert ".b07-cross-layout .ui-field__error" not in B07_CSS
|
||||
|
||||
|
||||
def test_B06_컨테이너_공용_양식():
|
||||
frame = DESIGN_PANEL[DESIGN_PANEL.index("export function createSectionFrame(") :]
|
||||
frame = frame[: frame.index("\n}\n")]
|
||||
cross = frame[frame.index("b06-profile__group ui-collapsible") :]
|
||||
assert "ui-panel-form" in cross.splitlines()[0]
|
||||
for src in (B06_PANEL, B06_STD):
|
||||
assert "createSectionFrame(" in src or "createButton(" in src
|
||||
assert "<button" not in src and 'createElement("button")' not in src
|
||||
assert 'createElement("input")' not in src and 'createElement("select")' not in src
|
||||
assert "createInputField(" in B06_PANEL and "createButton(" in B06_PANEL
|
||||
# 덧칠 없음 — 칸 글자 · 오류 칸 접기는 공용 양식 몫
|
||||
group = _block(B06_CSS, ".b06-profile__group")
|
||||
assert "font-size" not in group and not re.search(r"(?:^|\s)color\s*:", group)
|
||||
assert ".b06-profile__field-row .ui-field__error" not in B06_CSS
|
||||
for sel in (".ui-btn {", ".ui-input {", ".ui-select {"):
|
||||
for line in B06_CSS.splitlines():
|
||||
if line.endswith(sel) and line.startswith(".b06-profile"):
|
||||
rule = _block(B06_CSS, line[:-2])
|
||||
for prop in ("height", "padding", "font-size"):
|
||||
assert not re.search(r"(?:^|\s)" + prop + r"\s*:", rule), (line, prop)
|
||||
|
||||
Reference in New Issue
Block a user