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.
691 lines
16 KiB
JSON
691 lines
16 KiB
JSON
{
|
||
"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": []
|
||
} |