Files
HMDesign/docs/sw/viewer-logo-document-menu-qa/viewer-logo-document-menu-results.json
T
shkim4 23d522c136 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.
2026-10-21 14:52:46 +09:00

691 lines
16 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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": []
}