Commit Graph
20 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5 a552bfd444 fix(ui): 아주 좁은 폭에서는 좌패널을 줄이지 말고 접은 채로 시작
⚠ 앞 커밋의 「본문에 320 을 남긴다」가 폭 500 에서 패널을 **180px 로 눌러** 목록
이름이 잘렸음(랩탑 보조 실측: 잘린 이름 2건). 폭을 반씩 나누면 **둘 다 못 쓰는
화면**이 됨.

- CSS ≤560 — 패널을 **안 줄임**(280px 유지). 본문 밀기는 이미 ≤860 에서 꺼져 있어
  패널이 **본문 위에 겹쳐** 뜨고, 읽을 때는 손잡이로 접음. 폭 500 에서 잘린 글자 0.
- TS — 정한 적이 없고 화면이 아주 좁으면(≤560) **접은 채로 시작**함. 펼친 채로 열면
  본문이 가려진 화면부터 보게 되기 때문임.
- ⚠ **사용자가 정한 적이 있으면 그 뜻이 이김** — 저장값이 있으면 그대로 따름.
- ⚠ **처음 앉힐 때는 저장하지 않음** — 좁아서 접은 것을 「사용자가 접었다」로 적으면
  넓은 화면으로 돌아와도 접힌 채로 남음.

실측
  정한 적 없음 + 500  → 접힘 true · 저장값 null (기록 안 남김)
  정한 적 없음 + 1400 → 접힘 false · 저장값 null
  「펼침」 정해 둠 + 500 → 접힘 false (사용자 뜻이 이김)
  잘린 글자 860·620·560·500 전부 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 18:34:29 +09:00
eomsangdonandClaude Opus 5 4a47b9048d fix(ui): 좁은 폭에서는 끌어 둔 패널 자리를 잠시 물림 — 저장값은 그대로
⚠ 인라인 좌표는 미디어 규칙보다 세다. 넓은 화면에서 끌어 둔 자리가 좁은 화면에도
그대로 남아 본문을 덮었음(앞 커밋으로 폭은 줄였으나 자리는 그대로였음).

- 좁아지면 인라인 좌표를 **떼어** CSS 자리로 보냄. ⚠ **저장값은 안 지움** —
  지우면 사용자가 맞춰 둔 자리가 사라져 더 나쁨.
- 넓어지면 **끌어 둔 자리를 되찾음.**
- ⚠ 좁은 폭에서 사용자가 직접 끌면 **그 뜻이 이김** — 규칙이 다시 덮지 않음.
  그 자리는 **저장하지 않아** 넓은 화면 자리를 밀어내지도 않음.

실측(진행단계 패널, 저장값 {left:420, top:300} 을 심어 두고)
  1400  420/300 (끌어 둔 자리)        저장값 유지
   760  물러남 · 본문 남음 288px      저장값 유지
   500  물러남 · 본문 남음 194px      저장값 유지
   620 에서 직접 끌기 → 410/309 로 붙고, 폭을 600 으로 바꿔도 그 자리 유지
  다시 1400 → 420/300 되찾음 · 저장값 안 바뀜

곁들여 — 좁은 폭 진행단계 규칙에서 `top: auto; bottom: …` 을 뺌. 위·아래가 함께
잡혀 패널이 화면 높이만큼 늘어났음(실측 717px). 폭만 줄이고 자리는 그대로 둠.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 18:29:26 +09:00
eomsangdonandClaude Opus 5 ef4cdb667a fix(ui): 좁은 폭에서 두 오버레이가 본문을 덮던 것 — 본문에 남길 최소 폭을 정함
⚠ 「넘침은 0 인데 못 읽는」 자리였음. 표가 자기 스크롤 안에서 잘려 넘침 수치로는
안 잡히고, 실제로는 좌측 패널(320 고정)과 진행단계 패널(fixed)이 화면을 덮고 있었음.

실측(B08, 본문에 남는 폭)
  860px  348 → 388     760px  248 → 288
  620px  108 → 175     500px    4 → 194
  1400·1000 은 그대로 (넓은 화면 배치 안 건드림)

방법 — 패널을 비율(vw)로 줄이면 좁아질수록 본문도 같이 줄어 결국 못 읽음.
그래서 **본문에 남길 폭**(--wf-min-content-width: 320px)을 정하고 패널이 그만큼
물러나게 함. 좁은 폭 전용 패널 폭(--wf-left-panel-narrow-width: 280px)도 따로 둠.
진행단계 패널은 폭을 줄이고 아래로 내려 본문 윗부분(탭·표 머리)을 안 가리게 함.

확인 — B03·B05·B06·B07·B08·B09 를 1400·760 두 폭에서 훑음. 문서 넘침 전부 0,
넓은 폭 배치 변화 없음(좌측 320 유지).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 18:22:27 +09:00
eomsangdonandClaude Opus 5 cc15a83f67 feat(B03~B08): 제목 줄 프로젝트 이름 + 계획노선 CSV 문구 정리
- 워크플로 상태 응답에 project_name 추가. 좌측 제목 패널 같은 행 오른쪽 끝에
  프로젝트 이름 표기(길면 말줄임, 전체는 툴팁). 이름표를 오버레이 쪽에 두어
  레이아웃을 직접 조립하는 B03 까지 여섯 화면이 한 곳으로 반영됨.
- fetchProjectWorkflowState 가 {status, workflow_state} 껍데기를 벗기도록 수정.
- 계획노선을 「업로드한 CSV」로 적은 주석을 「계획노선(정본)」으로 정리.
  업로드 판정이 .csv 개수만 세어 shapefile 을 막던 것도 .shp 포함으로 맞춤.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 18:26:17 +09:00
eomsangdonandClaude Opus 5 af85dea714 feat(ui_template): 진행단계 패널 끌어 옮기기·열림 방향 자동 전환
- 헤더를 잡아 끌어 자리 이동, 이동 범위는 상단 헤더 아래 화면 안으로 clamp
- 아래 공간 부족 시 `is-flip-up` 으로 헤더 위로 펼침(바닥 기준 정렬)
- 자리는 sessionStorage 세션 캐시에만 보관, 접힘/펴짐 뒤 방향 재판정
- threshold 4px 초과 시에만 포인터 캡처 — pointerdown 캡처는 click 대상을
  제목에서 헤더로 바꿔 접기/펴기 토글을 죽임(실측)
- 이동은 window 에서 청취 — B07 CAD iframe 위로 커서가 나가도 안 끊김

검증: 공용 브라우저 B03·B05·B07 실측(이동 오차 1px 이내, clamp·뒤집힘·토글 정상),
tsc --noEmit 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-04 06:37:57 +09:00
eomsangdonandClaude Opus 5 a3382212ea fix(ui): 사이드 액션 줄 분리가 동작하지 않던 선택자 수정
splitSidebarActions가 body 직계자식(:scope >)에서만 .ui-sidebar-actions를
찾았지만, 실제 액션 줄은 페이지 패널 루트(b05-route__panel 등) 안에 있어 분리가
아예 일어나지 않았다 — 직전 커밋에서 sticky까지 걷어낸 상태라 액션 줄이 내용을
따라 끌려 올라갔다(2026-08-18 사용자 보고).

- 깊이 무관하게 찾고, 액션 줄의 실제 부모를 기준으로 [스크롤 래퍼][액션 줄]로 쪼갠다.
- body와 그 부모 사이 중간 요소에 ui-sidebar-fill을 붙여 높이 체인(플렉스 세로
  확장 + min-height:0)을 이어준다. B08 목록의 자체 overflow도 이 규칙이 덮어
  스크롤이 래퍼로 옮겨간다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 17:24:34 +09:00
eomsangdonandClaude Opus 5 a794252e2e refactor(ui): 사이드 패널을 [스크롤 영역][고정 액션 영역]으로 분리
sticky + margin-top:auto 조합은 본문 높이가 패널 높이를 넘나들 때마다 액션 줄이
붙었다 떨어졌다 했다(2026-08-18 사용자 보고). 액션 줄을 스크롤 대상에서 아예 빼는
구조로 바꾼다.

- overlay.ts: 사이드 패널 생성 시 본문의 `.ui-sidebar-actions` 앞 형제들을
  마진·패딩 없는 `.ui-sidebar-scroll` 래퍼로 옮기고 body에 `ui-sidebar-split`을
  붙인다. 페이지 코드는 지금처럼 본문 끝에 액션 줄을 붙이기만 하면 된다.
- overlay.css: split body = 세로 플렉스 + overflow hidden + padding-bottom 0,
  스크롤 래퍼 = flex:1/min-height:0/overflow-y:scroll + gap:inherit(그룹 간격 유지),
  액션 줄 = flex:none(sticky·margin-top 제거).
- B08: 전용 sticky 규칙을 버리고 공용 ui-sidebar-actions로 통합 — B04~B08이 한 규칙.

스크롤바 자리 상시 예약(2026-08-17)은 래퍼가 이어받아 내용 폭은 그대로다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 17:21:40 +09:00
eomsangdonandClaude Opus 5 74b1cd2143 fix(ui): 사이드 패널 액션 줄을 내용이 짧아도 최하단에 고정
지금까지는 sticky만 걸려 있어 내용이 패널보다 짧으면 버튼 줄이 내용 바로 아래에
떠 있었다. 공용 .ui-sidebar-actions에 margin-top:auto를 주고, 액션 줄을 담은
사이드 body를 세로 플렉스로 만들어(:has) 남는 세로 공간을 액션 줄 위 여백이
전부 먹게 했다. B04·B05·B06·B07 공통 적용(B08은 .b08-drawing-actions가 이미
같은 방식).

- B05: 액션 dock 위 구분선·구조물 목록도 함께 최하단에 붙는다.
- B05 .b05-route__panel의 padding-bottom(24px) 제거 — dock이 바닥에 붙은 뒤로는
  버튼 아래 빈 띠로만 남는다. 공용 body 패딩 16px는 dock의 sticky bottom:-16px가 덮는다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 17:12:24 +09:00
eomsangdon 3e9be53e7c auto: 2026-08-17 17:09 (ESD_LAPTOP) 2026-08-17 17:09:05 +09:00
eomsangdonandClaude Fable 5 2a248ff742 refactor(B07,B08): 도면 코드 B08_DesignDetail 이동 + 수량 슬롯 B07_Quantity 확보
- B07_wf4_DesignDetail(8파일+openwebcad) -> B08_DesignDetail로 git mv (이력 보존)
- B08_wf5_Quantity -> B07_Quantity (구 수량 백업 zip 보관 폴더)
- 파생 문자열 일괄 전환: /b07-cad -> /b08-cad 정적 서빙, CAD 레이어 b07-* -> b08-*,
  postMessage aislo:b07:* -> aislo:b08:*, 패키지명 aislo-b08-cad, CSS .b08-*,
  라우트 키/슬러그(B08_DESIGN_DETAIL/b08-design-detail, B07_QUANTITY/b07-quantity)
- 상세설계 워크플로우 stage 4 -> 5 (확정/무효화 전이 3곳), 확정 완료 시 B09로 이동
- WORKFLOW_STEP_ROUTES 순서 재배열: index4=수량(B07), index5=상세설계(B08)
- [임시] B08 이동 테스트 버튼 제거, openwebcad dist 재빌드
- 주석 의미 정렬: 수량 인계 주석 B08->B07, 도면 참조 B07->B08

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 10:10:10 +09:00
eomsangdonandClaude Fable 5 673487ceaa feat(ui): 3D 측점 라벨 라운드 + 사이드 컨테이너 외곽선 강화·B07 적용
2026-08-06 사용자 지시 2건:
- 3D 측점 라벨 배경을 fillRect → roundRect(반경 10)로 — 둥근 판
- 사이드 컨테이너 외곽선: 어제 45% 혼합이 아직 흐리다는 재보고로 보조색
  비중 75%로 상향. 공통 클래스(ui-sidebar-section)가 테두리 두께·형태까지
  소유하도록 강화 — 자체 테두리 없는 컨테이너도 클래스만 붙이면 동일 외곽선.
  테마 변수 혼합이라 라이트/다크 자동 대응
- B04~B06만 적용돼 있던 것을 B07 설계 도면 그룹에도 적용(+라운드·패딩)

실측: 3D 라벨 라운드, B05·B07 외곽선 라이트/다크 모두 선명, 콘솔 에러 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 18:22:56 +09:00
eomsangdonandClaude Fable 5 81825413ef fix(ui): 유토곡선 상단 여유·사이드 컨테이너 외곽선·패널 리사이즈 부드럽게
- 유토곡선 SVG 상단 여백 padTop 옵션 신설(공용 렌더러), B05는 40px —
  범례·기준 버튼 오버레이(top 34px)와 커브 겹침 해소. B06은 기존 10px 유지
- 사이드 패널 컨테이너 공통 클래스(ui-sidebar-section): 외곽선을 본문 보조색
  45% 혼합으로 진하게 — 두 테마 모두 흐려 안 보이던 문제. B04/B05/B06 적용
- 하단 패널 리사이즈 끊김 해소: 끌리는 동안 프레임당 경량 높이 동기화
  (캐스케이드 계산 + 캔버스/차트 높이만), 무거운 차트·테이블 재구성은
  손 뗀 뒤 120ms 디바운스로 1회. 추가 리소스 없음 — 프레임당 비용 감소

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 19:51:10 +09:00
eomsangdonandClaude Fable 5 69aed9d26c feat(ui): 구조물 폼 빈칸 상태·사이드 액션 고정·하단 패널 높이 캐스케이드
- 구조물 종류 드롭다운에 빈칸 항목 — 초기·리셋 상태는 빈칸이고 하위 옵션 전체
  숨김, 미선택이면 추가 불가(2026-08-05 사용자 지시)
- 사이드 패널 최하단 고정 액션 줄 공용 클래스(ui-sidebar-actions): 계산·확정
  버튼이 스크롤에서 제외되고 불투명 배경이 지나가는 내용을 가림.
  B04(확정·초기화)/B05(계산·확정)/B06(재계산·저장·확정) 적용, B07은 기존
  자체 sticky 유지
- 하단 패널 높이 캐스케이드: 아래로 끌면 종단 먼저 최소(100px)까지 →
  테이블·유토곡선이 같이 비례 축소(각자 최소 140/160px, 인라인 임시 축소라
  다시 키우면 원래 높이 복귀) → 셋 다 최소면 리사이저 동적 하한이 차단.
  공용 리사이저 min을 함수 지원으로 확장. 반대로 서브패널 펼침으로 부족하면
  메인 패널을 키움(기존 로직 유지)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 19:44:16 +09:00
eomsangdonandClaude Opus 5 8c95f8e7f2 fix(ui): 사이드 손잡이를 패널 테두리에 1px 겹쳐 외곽선 관통 이음새 제거
강조색 패널 테두리(24번)가 side 손잡이의 라운드 모서리 틈으로 비쳐 외곽선이
어긋나 보였다(2026-08-04 사용자 보고). 손잡이를 1px 안쪽으로 겹쳐 선을 덮는다.
배수유역(왼쪽 부착) 손잡이는 이상 없음 확인돼 그대로 둔다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 19:40:42 +09:00
eomsangdonandClaude Opus 5 05887b6a7e feat(B05/ui): 유토곡선 스크롤바·구분선·선택 토글·패널 시인성(21~25)
- 21: 유토곡선 높이를 스크롤러 clientHeight 기준으로 — 스크롤바가 Y축 라벨을 덮던
  문제 해소, overflow-x scroll 고정으로 높이 안정화
- 22: 절토·성토 요약 줄을 종단 열 안으로 — 배수유역도 좌측 구분선 25px 끊김 해소
- 23: 선택 토글 해제 — 종단·유토곡선 측점 재클릭/빈 곳 클릭, 사이드바 구조물 재클릭
  시 해제(null 전파로 3D·그래프·목록·유역 강조 동기 해제)
- 24: 좌측 제목 패널(B04~B07 공용) 우측 가장자리 강조색 라인
- 25: 접힌 손잡이 강조색 배경 틴트 — 닫힌 패널이 있음을 상시 표시

Playwright: 재클릭 1→0, 빈곳 클릭 0, 스크롤러 226=곡선 226, 구분선 간극 1px,
접힘 틴트 확인, 콘솔 오류 0. typecheck 통과.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 19:34:38 +09:00
eomsangdonandClaude Opus 5 344d1fbbb9 fix(B06/ui): 손잡이 폭 글자 맞춤·화살표 크기 고정, 리사이저 표시선 경계 정착
- 이름표 손잡이: 화살표·이름표 flex 압축 제외 — 글자를 줄이지 않고 폭이 내용에 맞춰
  늘어난다(B06 '종단/유토곡선' 104px, 화살표 7px 유지)
- B06 토글 아래 테두리를 좌우와 같은 강조색으로 — 외곽선 색 섞임 해소
- B06 리사이저 상시 표시선: 히트 영역 가운데(경계 4px 위) 대신 패널 아래 경계에 정착

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 19:15:41 +09:00
eomsangdonandClaude Opus 5 d4fc73c012 feat(B05/B06/ui): 패널 손잡이·리사이저·편집 버튼 시인성 정리(16·18~20)
- 16: 편집 버튼 전체(▲▼·↺·⬆⬇) 21×17 통일, 겹침 간격 23px, X축 라벨 상향 19px
- 18: 유토곡선 손잡이가 오버레이 위 경계를 따라 이동(펼침 시 테이블 영역 침범 허용)
- 19: 손잡이 테두리 강조색 --panel-handle-border(라이트 파랑 #2563eb / 다크 노랑
  #e0b64a) + 이름표 옵션 — B05 '종단'·'유토곡선'·세로 '배수유역', B06 '종단/유토곡선'
- 20: 공용 리사이저 상시 표시선(1px, 같은 강조색) — hover/드래그 시 3px

Playwright: 버튼 3종 21×17, 라벨·테두리색·세로 writing-mode, 리사이저 1px/0.75,
손잡이 bottom=오버레이 top 일치, 콘솔 오류 0. typecheck 통과.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 19:06:02 +09:00
eomsangdon 3881dc8509 2606720_5 2026-07-20 17:57:05 +09:00
eomsangdon 3250c3bb65 260719_1 2026-07-19 09:36:59 +09:00
eomsangdon cf459f97a6 260717_0 2026-07-17 15:11:31 +09:00