From d63a9ac9e85a5f4be47f9a9dd63d9c3915705754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Wed, 21 Oct 2026 18:55:06 +0900 Subject: [PATCH] test(sw): approve the f26ec7c SW viewer header merge baseline Test-only approval commit after the f26ec7c main merge (sw-test-regression- baseline section 9); no protected path changes, no Story change. - approvedMainCommit 21fe7a2 -> f26ec7c. - public-api.approved.json kept: the public .d.ts files are byte-identical. - docs/sw/sw-viewer-header-strip-2026-10-21.md: changes and verification. --- docs/sw/sw-viewer-header-strip-2026-10-21.md | 31 ++++++++++++++++++++ packages/sw/tests/storybook-inventory.mjs | 5 +++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 docs/sw/sw-viewer-header-strip-2026-10-21.md diff --git a/docs/sw/sw-viewer-header-strip-2026-10-21.md b/docs/sw/sw-viewer-header-strip-2026-10-21.md new file mode 100644 index 0000000..e2d05ac --- /dev/null +++ b/docs/sw/sw-viewer-header-strip-2026-10-21.md @@ -0,0 +1,31 @@ +# SW Viewer Header — 레이어 눈 아이콘 지침 · Hover · 오른쪽 띠 · 파일명 폭 (2026-10-21) + +사용자 요청(여러 차례 정정 포함)으로 SW Viewer의 다음 항목을 반영했습니다. 새 Props·Export는 없고 공개 `.d.ts`는 그대로입니다. + +## 1. 변경 + +| 항목 | 값 | +|---|---| +| 작업 Commit | `caf4c32` (브랜치 `docs/sw-viewer-layer-eye`) | +| main 병합 | `32e46c3` → `f26ec7c` (no-ff) | +| 승인 기준 Commit | 이 보고서와 같은 테스트 전용 Commit (`approvedMainCommit` `21fe7a2` → `f26ec7c`) | + +1. **레이어 Popup 가시성:** 눈(`Eye`/`EyeOff`) 아이콘 버튼 필수, Toggle Switch 금지 — `VIEWER.md` §4.1, 카탈로그 §9, `DESIGN_RULES.md` §11, `COMPOSITION_PATTERNS.md` 7, `AI_GUIDE.md`(4개 패키지 동기화). 예제 H에 실제 레이어 목록(눈 버튼, 레이어별 독립 전환, `onEvent`), Storybook 눈 버튼 `cursor: pointer`. +2. **Viewer Header Hover:** 버튼·메뉴·토글·탭의 Hover 면 `#266651` 제거, 글자·아이콘만 `--hm-sw-viewer-accent`(#FFC600). 크기·위치 변화 없음. 상태(`SWViewerStatus`)는 Hover 없음. +3. **파일명 폭:** 실측 반응형 단계가 파일명 글자 폭 대신 Header 폭으로 정한 기본 폭(`clamp(140px, 25cqw, 360px)`)을 사용. 수정 전 1180px에서 짧은 파일명은 Open 130px · 파일명 243px, 긴 파일명은 Open 63px · 295px였고, 수정 후 같은 폭에서 동일합니다. SW 일반 Header는 이미 파일명 길이와 무관해 변경하지 않았습니다. +4. **오른쪽 띠:** `trailing`의 상태 · 아이콘 버튼(정보·라이선스) · `SWHeaderWindowControls`가 SWHeader 창 영역과 같은 면의 48px 칸으로 이어짐(여백 없음, 칸 앞 1px 구분선, 위·아래 경계는 객체 면 테두리 하나). 라이선스 버튼은 테두리·선 없음(앞뒤 구분선도 없음), 키보드 Focus 외곽선 유지. +5. **파일 열기 아이콘:** 다른 Viewer Header 아이콘과 같은 검정 외곽선(`SWViewerIcon`), 테두리·면 없음. + +## 2. 검증 (Node 22.23.2, 증거는 저장소 밖 임시 폴더) + +| 검사 | 결과 | +|---|---| +| Typecheck(sw) · Public API Guard | 오류 0 · 7/7 PASS | +| `check:ai-docs` · `ai-docs.check.mjs` · AI 예제 12개 타입 검사 | PASS · 46/46 · 오류 0 | +| Viewer Header(dev Storybook, 두 버전 × 1440/950/760): 높이 52 · 넘침 0 · 띠 순서·연속 · Hover 노랑·면 없음·크기 동일 · 상태 표시 전용 · 정보 Popup · 최소화/닫기 Callback · 파일명 짧은/긴 동일 | 42/42 PASS | +| 오른쪽 띠 실측 경계(`getBoundingClientRect`): 상태·라이선스·최소화/닫기 위·아래 = 객체 면 안쪽 경계, 가로 선만 | 두 버전 × 3폭 일치, Hover·Focus 전후 동일 | +| 라이선스 버튼 Border(기본·Hover·Active, 가상 요소 포함) · 32 × 48 · Focus · Popup | 12/12 PASS | +| 레이어 Popup 눈 버튼 | 10/10 PASS | +| `npm run build-storybook` 후 home-menu-integration · overview / overlays · Source Guard | 23/23 · 53/53, 20/20 · 94/94 PASS | + +알려진 기존 동작: Header를 760px로 줄였다가 1440px로 되돌리면 측정 단계가 처음과 다른 상태로 남습니다. 수정 전 빌드(`21fe7a2`)에서도 같아 이번 변경과 무관합니다. diff --git a/packages/sw/tests/storybook-inventory.mjs b/packages/sw/tests/storybook-inventory.mjs index b9afdde..de33355 100644 --- a/packages/sw/tests/storybook-inventory.mjs +++ b/packages/sw/tests/storybook-inventory.mjs @@ -64,7 +64,10 @@ export const integratedChangedFiles = [ // SWRecentFiles / home-menu types / viewer types for the preview and collapseBelow / iconOnlyBelow JSDoc). // -> 21fe7a2 (2026-10-21, Merge fix/sw-property-counts-hover: user-approved property popup count Hover only on the // object list, 17170d2; no Story change, public .d.ts unchanged so public-api.approved.json is kept). -export const approvedMainCommit = '21fe7a29c7c3350e0981ebf594ad6001c4f2bfd2' +// -> f26ec7c (2026-10-21, Merge docs/sw-viewer-layer-eye: user-approved viewer layer eye-icon rule, header hover, +// trailing strip, file-name width and open icon outline, caf4c32; no Story change, public .d.ts unchanged so +// public-api.approved.json is kept). +export const approvedMainCommit = 'f26ec7c696c596ad01dfa01f47fa8c6e207797bd' // 170a5c2: the SW/Header sidebar page of the home menu (the moved verification Stories are movedHomeMenuIds). export const homeMenuSidebarIds = ['sw-header--home-menu'] // 6cf8854 SW Footer (current IDs after retiredFooterIds), 7f42923 viewer mode, 41e963a theme inheritance.