feat(sw): viewer header logo menu and file list; simplify SW Storybook

SW Viewer Header (approved optional props, public export names unchanged at 170):
- SWViewerHeader: logoMenu, documents, activeDocumentId, onDocumentSelect,
  onDocumentOpen, documentOpenLabel; measured responsive toggles (full ->
  icons -> More) with the SWHeader More / file-list styling.
- SW AI guides, ExampleH, viewer/text-weight/theme-inheritance tests and the
  logo-document-menu tests with their QA record.

SW Storybook cleanup (Story IDs and test fixtures kept):
- Sidebar: Overview -> "SW Header" (first), 전체 Footer -> "SW Footer",
  Footer/Viewer responsive pages -> "Responsive More", Viewer content-variants
  -> "Settings Popup" (merges the settings popup page).
- Hidden by the verification tag (direct URL kept): Header Dropdown,
  Document Open, Interactive States, Document Dropdown, Hidden Sub Controls,
  Home Menu standalone; Footer tool groups / custom content / parts;
  SW/Theme; Viewer menu groups / item states / variable size / settings
  panel / Header + Dropdown.
- Removed demo UI: Overview size and callback output (demo data and
  selection only with &verification), Home Menu Figma node table and width
  demo, Header Responsive More reduced to 1440 / 768 / 390, Popup reopen
  button, property-panel comparison captions, Viewer context-menu demo
  (&verification only).
- Tests: storybook-inventory records the hidden and renamed Stories;
  overview / range-cross-browser / viewer open the demo controls with
  &verification; integrated-popup reloads the Story instead of the reopen
  button; dropdown-consolidation asserts Dropdown is hidden from the sidebar
  and still opens by its direct URL.
This commit is contained in:
shkim4 committed 2026-10-21 14:52:46 +09:00
1 parent 46119eacb5
commit 23d522c136
57 files changed
+2623 -333

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,450 @@
{
"base": "http://127.0.0.1:6040",
"checks": [
{
"n": "SWHeader ... menu opens (reference colors)",
"ok": true,
"d": {
"colors": {
"background": "rgb(14, 61, 47)",
"border": "rgb(19, 86, 67)",
"shadow": "rgba(0, 0, 0, 0.5) 0px 4px 12px 0px",
"item": "rgb(246, 244, 242)"
},
"metrics": {
"border": "1px solid",
"radius": "3px",
"padding": "4px 4px",
"minWidth": "200px",
"font": "14px/normal 400",
"itemHeight": 32,
"itemInset": 5,
"itemPadding": "10px 10px",
"itemGap": "12px",
"itemRadius": "2px",
"itemFont": "Noto Sans KR 14px/normal 400"
}
}
},
{
"n": "SWHeader ... menu Escape closes, focus back on ...",
"ok": true
},
{
"n": "SWViewerMenu reference opens (36px rows, 4px padding)",
"ok": true,
"d": {
"border": "1px solid",
"radius": "4px",
"padding": "4px 4px",
"minWidth": "160px",
"font": "14px/20px 400",
"itemHeight": 36,
"itemInset": 5,
"itemPadding": "12px 12px",
"itemGap": "8px",
"itemRadius": "2px",
"itemFont": "Noto Sans KR 14px/20px 400"
}
},
{
"n": "logo opens no dropdown",
"ok": true,
"d": {
"menu": false,
"list": false,
"nameExpanded": "false",
"name": "C0060202-001-평면및종단면도.dwg",
"focus": "Name\n Description\n Default\n Control \n \n \n \n \n propertyName*\n \n This is a short description\n \n summary\n \n \n \n defaultValue\n \n Set string\n \n \n propertyName*\n \n This is a short description\n \n summary\n \n \n \n defaultValue\n \n Set string\n \n \n propertyName*\n \n This is a short description\n \n summary\n \n \n \n defaultValue\n \n Set string\n \n \n \n\n\n\n \n No Preview\n Sorry, but you either have no stories or none are selected somehow.\n \n Please check the Storybook config.\n Try reloading the page.\n \n \n If the problem persists, check the browser console, or the terminal you've run Storybook from.\n \n \n\n\n\n \n \n \n The component failed to render properly, likely due to a configuration issue in Storybook.\n Here are some common causes and how you can address them:\n \n \n \n Missing Context/Providers: You can use decorators to supply specific\n contexts or providers, which are sometimes necessary for components to render correctly. For\n detailed instructions on using decorators, please visit the\n Decorators documentation.\n \n \n Misconfigured Webpack or Vite: Verify that Storybook picks up all necessary\n settings for loaders, plugins, and other relevant parameters. You can find step-by-step\n guides for configuring\n Webpack or\n Vite\n with Storybook.\n \n \n Missing Environment Variables: Your Storybook may require specific\n environment variables to function as intended. You can set up custom environment variables\n as outlined in the\n Environment Variables documentation.\n \n \n \n \n\n\n HM DESIGN SYSTEM / SWSW Viewer — SWViewerHeader참고 DWG/DXF 뷰어의 상단 메뉴를 패키지 컴포넌트로 옮긴 뷰어 모드 전용 Header입니다. 로고 면 → 파일명 면 → 객체 수정 면(메뉴 그룹) → 오른쪽 패널·상태·정보 영역이며, 메뉴는 groups 데이터로 구성합니다. 레이어·설정·속성 토글은 팝업을 열고, 정보 버튼은 모달 팝업을 엽니다.기본형 (1440px, 도면 열림)로고 오른쪽 파일 열기 버튼(공간이 부족하면 테두리 아이콘만)으로 파일을 열고, 파일명을 누르면 샘플 도면 목록이 열립니다. Model/Layout 탭, 2.5D·어두운 배경 스위치, 패널 토글을 직접 눌러 보세요. Command 줄에 onCommand 결과가 표시됩니다.Command: 없음파일 열기C0060202-001-평면및종단면도.dwgModel17,377Layout237전체 보기2.5D어두운 배경레이어설정속성도면 열림: C0060202-001-평면및종단면도.dwg 열림\n \n \n function __onViteAppLoadingError(event) {\n const hostname = globalThis.location.hostname;\n if (hostname !== 'localhost' && globalThis.CONFIG_TYPE === 'DEVELOPMENT') {\n const message = `Failed to load the Storybook preview file 'vite-app.js':\n\n It looks like you're visiting the Storybook development server on another hostname than localhost: '${hostname}', but you haven't configured the necessary security features to support this.\n Please re-run your Storybook development server with the '--host ${hostname}' flag, or manually configure your Vite allowedHosts configuration with viteFinal.\n\n See:`;\n const docs = [\n 'https://storybook.js.org/docs/api/cli-options#dev',\n 'https://storybook.js.org/docs/api/main-config/main-config-vite-final',\n 'https://vite.dev/config/server-options.html#server-allowedhosts',\n ];\n console.error(`${message}\\n${docs.map((doc) => `- ${doc}`).join('\\n')}`);\n\n document.getElementById('storybook-root').innerHTML =\n `<p style=\"color: red; max-width: 70ch\">${message.replaceAll(\n '\\n',\n '<br/>'\n )}<ul>${docs.map((doc) => `<li><a href='${doc}' target='_blank'>${doc}</a></li>`).join('')}</ul></p>`;\n return;\n }\n }\n \n \n\n\n #storybook-highlights-menu {\n position: absolute;\n z-index: 2147483647;\n width: 300px;\n padding: 0px;\n margin: 15px 0 0 0;\n transform: translateX(-50%);\n font-family: \"Nunito Sans\", -apple-system, \".SFNSText-Regular\", \"San Francisco\", BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 12px;\n background: white;\n border: none;\n Line truncated
"log": "Command: 없음"
}
},
{
"n": "file open button after the logo: SWHeader document surface, icon + 파일 열기",
"ok": true,
"d": {
"surface": true,
"afterLogo": true,
"label": "파일 열기",
"icon": 1
}
},
{
"n": "file open icon: no border, transparent, no shadow",
"ok": true,
"d": "0px | none | rgb(240, 247, 245) | 0px | rgba(0, 0, 0, 0) | none"
},
{
"n": "file open button runs the existing file open",
"ok": true,
"d": {
"menu": false,
"list": false,
"nameExpanded": "false",
"name": "C0060202-001-평면및종단면도.dwg",
"focus": "파일 열기",
"log": "Command: 파일 선택창 (미연결) → document/open"
}
},
{
"n": "open list never covers the logo cap (pixels identical)",
"ok": true
},
{
"n": "file name click opens the 3 samples only (no Open / + New), SWHeader face",
"ok": true,
"d": {
"rows": [
"BasicSample.dwg",
"C0060202-001-평면및종단면도.dwg",
"simple.dxf"
],
"actions": 0,
"active": "C0060202-001-평면및종단면도.dwg",
"width": 361.5,
"button": 359.5,
"left": -2,
"right": 0,
"row": 32,
"gap": 0,
"background": "rgb(16, 49, 39)"
}
},
{
"n": "document list >= file-name button (outer) and >= 312px, covers it",
"ok": true,
"d": {
"rows": [
"BasicSample.dwg",
"C0060202-001-평면및종단면도.dwg",
"simple.dxf"
],
"actions": 0,
"active": "C0060202-001-평면및종단면도.dwg",
"width": 361.5,
"button": 359.5,
"left": -2,
"right": 0,
"row": 32,
"gap": 0,
"background": "rgb(16, 49, 39)"
}
},
{
"n": "list painted on top (not cut)",
"ok": true
},
{
"n": "sample select loads it, renames, closes, focus on the file name",
"ok": true,
"d": {
"menu": false,
"list": false,
"nameExpanded": "false",
"name": "simple.dxf",
"focus": "name",
"log": "Command: 파일 선택창 (미연결) → document/open → samples/sample-dxf"
}
},
{
"n": "ArrowDown opens the list on its first row",
"ok": true,
"d": {
"menu": false,
"list": true,
"nameExpanded": "true",
"name": "simple.dxf",
"focus": "BasicSample.dwg",
"log": "Command: 파일 선택창 (미연결) → document/open → samples/sample-dxf"
}
},
{
"n": "Escape closes the list and refocuses the file name",
"ok": true,
"d": {
"menu": false,
"list": false,
"nameExpanded": "false",
"name": "simple.dxf",
"focus": "name",
"log": "Command: 파일 선택창 (미연결) → document/open → samples/sample-dxf"
}
},
{
"n": "document list above an open SWViewerPanel",
"ok": true
},
{
"n": "no horizontal overflow at 1440 / 1100 / 860 / 520",
"ok": true,
"d": [
[
1440,
0,
0
],
[
1100,
0,
0
],
[
860,
0,
0
],
[
520,
0,
0
]
]
},
{
"n": "layer / settings / properties always in the header with tooltips",
"ok": true,
"d": [
[
1440,
[
[
"레이어",
true,
true
],
[
"설정",
true,
true
],
[
"속성",
true,
true
]
]
],
[
1100,
[
[
"레이어",
false,
true
],
[
"설정",
false,
true
],
[
"속성",
false,
true
]
]
],
[
860,
[
[
"레이어",
false,
true
],
[
"설정",
false,
true
],
[
"속성",
false,
true
]
]
],
[
520,
[
[
"레이어",
false,
true
],
[
"설정",
false,
true
],
[
"속성",
false,
true
]
]
]
]
},
{
"n": "1440 full (파일 열기 + 전체 보기 labels, no More); 1100 icons only, no More; 860 / 520 icons + More",
"ok": true,
"d": [
[
1440,
true,
false,
[
true,
"",
34
],
[
true,
true,
true
]
],
[
1100,
true,
false,
[
false,
"파일 열기",
34
],
[
false,
false,
false
]
],
[
860,
true,
true,
[
false,
"파일 열기",
34
],
[
false,
false,
false
]
],
[
520,
false,
true,
[
false,
"파일 열기",
34
],
[
false,
false,
false
]
]
]
},
{
"n": "logo, file open, file name and toolbar never overlap",
"ok": true,
"d": [
[
1440,
[
65,
65,
203.61666870117188,
205.61666870117188,
565.1166687011719,
567.11669921875
]
],
[
1100,
[
65,
65,
136,
138,
412.5,
414.5
]
],
[
860,
[
65,
65,
136,
138,
352.5,
354.5
]
],
[
520,
[
65,
65,
136,
138,
278,
280
]
]
]
},
{
"n": "520: document list shown inside the header width",
"ok": true
},
{
"n": "520: icon-only file open runs the file open",
"ok": true
},
{
"n": "narrow header (771px): icon toggles open / close panels, pressed #FFC600, tooltip",
"ok": true,
"d": [
{
"name": "레이어",
"pressed": "true",
"color": "rgb(255, 198, 0)",
"title": "레이어 패널 열기 / 닫기",
"open": true,
"closed": true
},
{
"name": "설정",
"pressed": "true",
"color": "rgb(255, 198, 0)",
"title": "옵션 패널 열기 / 닫기",
"open": true,
"closed": true
},
{
"name": "속성",
"pressed": "true",
"color": "rgb(255, 198, 0)",
"title": "속성 패널 열기 / 닫기",
"open": true,
"closed": true
}
]
},
{
"n": "no console errors",
"ok": true,
"d": []
}
],
"errors": []
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@@ -0,0 +1,691 @@
{
"storybook": "http://127.0.0.1:6040",
"results": [
{
"name": "reference SWViewerMenu: 36px rows, 4px padding / radius, 14px 400, 4px under its trigger",
"result": "PASS",
"detail": {
"colors": {
"background": "rgb(14, 61, 47)",
"border": "rgb(19, 86, 67)",
"shadow": "rgba(0, 0, 0, 0.5) 0px 4px 12px 0px",
"item": "rgb(246, 244, 242)",
"label": "rgb(246, 244, 242)"
},
"metrics": {
"border": "1px solid",
"radius": "4px",
"padding": "4px",
"minWidth": "160px",
"font": "14px/20px 400",
"itemHeight": 36,
"itemInset": 5,
"itemPadding": "12px 12px",
"itemGap": "8px",
"itemRadius": "2px",
"itemFont": "\"Noto Sans KR\" 14px/20px 400",
"itemOutline": "none",
"label": "6px 12px 12px/18px 500",
"separator": "1px 4px -4px",
"icon": "16x16 @12",
"textLeft": 36
},
"place": {
"dy": 4,
"dx": 0
}
}
},
{
"name": "More (520px) colors = SWHeader ... menu (face, border, shadow, text); caption = text color",
"result": "PASS",
"detail": {
"more": {
"background": "rgb(14, 61, 47)",
"border": "rgb(19, 86, 67)",
"shadow": "rgba(0, 0, 0, 0.5) 0px 4px 12px 0px",
"item": "rgb(246, 244, 242)",
"label": "rgb(246, 244, 242)"
},
"hover": "rgba(255, 255, 255, 0.08) / rgb(246, 244, 242)",
"swHeader": {
"background": "rgb(14, 61, 47)",
"border": "rgb(19, 86, 67)",
"shadow": "rgba(0, 0, 0, 0.5) 0px 4px 12px 0px",
"item": "rgb(246, 244, 242)",
"label": null
}
}
},
{
"name": "header dropdown (상단 메뉴 + Dropdown) = More face and colors",
"result": "PASS",
"detail": {
"dropdown": {
"background": "rgb(14, 61, 47)",
"border": "rgb(19, 86, 67)",
"shadow": "rgba(0, 0, 0, 0.5) 0px 4px 12px 0px",
"item": "rgb(246, 244, 242)",
"label": "rgb(246, 244, 242)"
},
"more": {
"background": "rgb(14, 61, 47)",
"border": "rgb(19, 86, 67)",
"shadow": "rgba(0, 0, 0, 0.5) 0px 4px 12px 0px",
"item": "rgb(246, 244, 242)",
"label": "rgb(246, 244, 242)"
}
}
},
{
"name": "SWHeader ... menu still right-aligned under its trigger (no title, no divider)",
"result": "PASS",
"detail": ""
},
{
"name": "SWHeader ... menu Escape closes and refocuses ...",
"result": "PASS",
"detail": ""
},
{
"name": "logo opens no dropdown (no menu trigger)",
"result": "PASS",
"detail": ""
},
{
"name": "file open button after the logo: SWHeader document surface, icon + 파일 열기",
"result": "PASS",
"detail": {
"surface": true,
"afterLogo": true,
"beforeName": true,
"label": "파일 열기",
"icons": 1
}
},
{
"name": "file open icon: no border, transparent, no shadow; 34px slot",
"result": "PASS",
"detail": {
"style": "0px none rgb(240, 247, 245) | 0px | rgba(0, 0, 0, 0) | none",
"size": [
34,
34
]
}
},
{
"name": "file name area: no left padding, right after the file open button",
"result": "PASS",
"detail": [
"0px",
2
]
},
{
"name": "no 샘플 header button, no + New",
"result": "PASS",
"detail": ""
},
{
"name": "file open button runs the existing file open (onDocumentOpen + onCommand open/document)",
"result": "PASS",
"detail": "Command: 파일 선택창 (미연결) → document/open"
},
{
"name": "file name is the SWHeader document button",
"result": "PASS",
"detail": ""
},
{
"name": "open list never covers the logo cap (pixels identical)",
"result": "PASS",
"detail": ""
},
{
"name": "file name click opens the sample list",
"result": "PASS",
"detail": [
"BasicSample.dwg",
"C0060202-001-평면및종단면도.dwg",
"simple.dxf"
]
},
{
"name": "no Open and no + New below the samples",
"result": "PASS",
"detail": ""
},
{
"name": "current sample marked active",
"result": "PASS",
"detail": ""
},
{
"name": "SWHeader list face (32px rows, #103127, at least the SWHeader 312px)",
"result": "PASS",
"detail": {
"background": "rgb(16, 49, 39)",
"width": 362,
"row": 32
}
},
{
"name": "list opens directly below the file name",
"result": "PASS",
"detail": {
"list": {
"x": 202.90625,
"y": 368.5,
"width": 361.5,
"height": 98
},
"name": {
"x": 204.90625,
"y": 318.5,
"width": 359.5,
"height": 50
}
}
},
{
"name": "sample select loads it and renames the file",
"result": "PASS",
"detail": "Command: 파일 선택창 (미연결) → document/open → samples/sample-dxf"
},
{
"name": "list closes after select, focus on the file name",
"result": "PASS",
"detail": ""
},
{
"name": "ArrowDown opens the list on its first row",
"result": "PASS",
"detail": ""
},
{
"name": "Escape closes the list and refocuses the file name",
"result": "PASS",
"detail": ""
},
{
"name": "outside click closes the list",
"result": "PASS",
"detail": ""
},
{
"name": "1440: icon + 파일 열기; narrower: icon only (tooltip / name 파일 열기, 34px icon slot kept)",
"result": "PASS",
"detail": {
"first": {
"width": 1440,
"label": true,
"aria": null,
"title": "",
"icon": [
34,
34
],
"overflow": 0
},
"firstIcon": {
"width": 1080,
"label": false,
"aria": "파일 열기",
"title": "파일 열기",
"icon": [
34,
34
],
"overflow": 0
}
}
},
{
"name": "label comes back at the same widths when the header grows; no overflow",
"result": "PASS",
"detail": ""
},
{
"name": "file open never moves into More",
"result": "PASS",
"detail": [
"Model · 17,377개",
"Layout · 237개",
"전체 보기",
"2.5D",
"어두운 배경"
]
},
{
"name": "icon-only button runs the same file open",
"result": "PASS",
"detail": "Command: 파일 선택창 (미연결) → document/open → samples/sample-dxf → 파일 선택창 (미연결) → document/open"
},
{
"name": "document list above an open SWViewerPanel",
"result": "PASS",
"detail": "60"
},
{
"name": "closed list drops back (no raised layer at rest), cap over the open button and file name",
"result": "PASS",
"detail": ""
},
{
"name": "no horizontal overflow at 1440 / 1100 / 860 / 520",
"result": "PASS",
"detail": [
[
1440,
0,
0
],
[
1100,
0,
0
],
[
860,
0,
0
],
[
520,
0,
0
]
]
},
{
"name": "layer / settings / properties always in the header",
"result": "PASS",
"detail": [
[
"레이어",
"설정",
"속성"
],
[
"레이어",
"설정",
"속성"
],
[
"레이어",
"설정",
"속성"
],
[
"레이어",
"설정",
"속성"
]
]
},
{
"name": "1440: full items with labels (전체 보기 shown), no More; 1100: icons only, no More",
"result": "PASS",
"detail": [
[
1440,
true,
false
],
[
1100,
true,
false
],
[
860,
true,
true
],
[
520,
false,
true
]
]
},
{
"name": "860: icons only (tooltips kept) + More",
"result": "PASS",
"detail": {
"width": 860,
"overflow": 0,
"objectOverflow": 0,
"toggles": [
{
"name": "레이어",
"label": false,
"title": "레이어 패널 열기 / 닫기"
},
{
"name": "설정",
"label": false,
"title": "옵션 패널 열기 / 닫기"
},
{
"name": "속성",
"label": false,
"title": "속성 패널 열기 / 닫기"
}
],
"fitShown": true,
"more": true,
"logoRight": 65,
"docLeft": 138,
"docRight": 352.5,
"objectLeft": 354.5
}
},
{
"name": "520: icons only, then More for what still does not fit",
"result": "PASS",
"detail": {
"width": 520,
"overflow": 0,
"objectOverflow": 0,
"toggles": [
{
"name": "레이어",
"label": false,
"title": "레이어 패널 열기 / 닫기"
},
{
"name": "설정",
"label": false,
"title": "옵션 패널 열기 / 닫기"
},
{
"name": "속성",
"label": false,
"title": "속성 패널 열기 / 닫기"
}
],
"fitShown": false,
"more": true,
"logoRight": 65,
"docLeft": 138,
"docRight": 278,
"objectLeft": 280
}
},
{
"name": "logo, file name and toolbar never overlap",
"result": "PASS",
"detail": [
[
1440,
65,
204.90625,
564.40625,
566.40625
],
[
1100,
65,
138,
412.5,
414.5
],
[
860,
65,
138,
352.5,
354.5
],
[
520,
65,
138,
278,
280
]
]
},
{
"name": "520: header + More hold every item exactly once (panel toggles never in More)",
"result": "PASS",
"detail": {
"inHeader": [
"레이어",
"설정",
"속성",
"정보 및 라이선스"
],
"moreItems": [
"Model",
"Layout",
"전체 보기",
"2.5D",
"어두운 배경"
]
}
},
{
"name": "icon toggle pressed + command at 520",
"result": "PASS",
"detail": "Command: layers=true"
},
{
"name": "520: document list shown, inside the header width",
"result": "PASS",
"detail": {
"list": {
"x": 136,
"y": 1171.5,
"width": 312,
"height": 98
},
"header": {
"x": 40,
"y": 1120.5,
"width": 520,
"height": 52
}
}
},
{
"name": "narrow header (771px): icon toggles with tooltip, hover, pressed #FFC600, panel open / close",
"result": "PASS",
"detail": [
{
"name": "레이어",
"iconOnly": true,
"title": "레이어 패널 열기 / 닫기",
"hover": "rgb(38, 102, 81)",
"open": true,
"pressed": "true",
"color": "rgb(255, 198, 0)",
"closed": true
},
{
"name": "설정",
"iconOnly": true,
"title": "옵션 패널 열기 / 닫기",
"hover": "rgb(38, 102, 81)",
"open": true,
"pressed": "true",
"color": "rgb(255, 198, 0)",
"closed": true
},
{
"name": "속성",
"iconOnly": true,
"title": "속성 패널 열기 / 닫기",
"hover": "rgb(38, 102, 81)",
"open": true,
"pressed": "true",
"color": "rgb(255, 198, 0)",
"closed": true
}
]
},
{
"name": "document list >= file-name button (outer), covers it, >= 312px, no row cut — long / short name, 1440–400, resize while open",
"result": "PASS",
"detail": {
"bad": [],
"cases": [
{
"label": "long@1440",
"button": 359.5,
"list": 361.5,
"left": -2,
"right": 0,
"cut": []
},
{
"label": "long@1100",
"button": 274.5,
"list": 312,
"left": -2,
"right": 35.5,
"cut": []
},
{
"label": "long@860",
"button": 214.5,
"list": 312,
"left": -2,
"right": 95.5,
"cut": []
},
{
"label": "long@520",
"button": 140,
"list": 312,
"left": -2,
"right": 170,
"cut": []
},
{
"label": "long@400",
"button": 91,
"list": 312,
"left": -2,
"right": 219,
"cut": []
},
{
"label": "short@1440",
"button": 359.5,
"list": 361.5,
"left": -2,
"right": 0,
"cut": []
},
{
"label": "short@1100",
"button": 155.2,
"list": 312,
"left": -2,
"right": 154.8,
"cut": []
},
{
"label": "short@860",
"button": 171.8,
"list": 312,
"left": -2,
"right": 138.3,
"cut": []
},
{
"label": "short@520",
"button": 140,
"list": 312,
"left": -2,
"right": 170,
"cut": []
},
{
"label": "short@400",
"button": 91,
"list": 312,
"left": -2,
"right": 219,
"cut": []
},
{
"label": "open-resize@1200",
"button": 207.2,
"list": 312,
"left": -2,
"right": 102.8,
"cut": []
},
{
"label": "open-resize@900",
"button": 211.8,
"list": 312,
"left": -2,
"right": 98.3,
"cut": []
},
{
"label": "open-resize@600",
"button": 149.5,
"list": 312,
"left": -2,
"right": 160.5,
"cut": []
}
]
}
},
{
"name": "sweep: no overflow at any width (400–1440)",
"result": "PASS",
"detail": []
},
{
"name": "sweep: icons switch together and always before More",
"result": "PASS",
"detail": ""
},
{
"name": "sweep: narrower never shows more (monotonic: full → icons → More, fewer items)",
"result": "PASS",
"detail": ""
},
{
"name": "sweep: growing back gives the same state at every width (reverse order, no stuck item)",
"result": "PASS",
"detail": ""
},
{
"name": "sweep: 1440 full; each stage reached by measured room only",
"result": "PASS",
"detail": {
"icons": 1300,
"more": 910
}
},
{
"name": "sweep: shorter file name moves the steps to narrower widths",
"result": "PASS",
"detail": {
"long": {
"icons": 1300,
"more": 910
},
"short": {
"icons": 1080,
"more": 830
}
}
},
{
"name": "no page errors",
"result": "PASS",
"detail": ""
}
],
"errors": []
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB