- A: SWViewerIcon draws the SWHeader black outline as SVG stroke on a copy behind the icon (no CSS filter) - B: SWViewerPanel renders the common SWPopup frame (same DOM / CSS) and adds drag, corner resize, collapse, bounds and modal; SWPopup gains optional titleActions / footer; title art spans any width - C: shared Story canvas grid (--sw-story-canvas) behind the SW Header work area and dropdown room - D: SWViewerButton tone="green" for 전체 켜기 / 전체 끄기: default kept, hover = primary (확인) hover token, pressed = primary face - AI guide, verification scripts (76 checks, element regression) and evidence updated
632 lines
14 KiB
JSON
632 lines
14 KiB
JSON
{
|
|
"storybook": "http://127.0.0.1:6034",
|
|
"reference": "http://127.0.0.1:5182",
|
|
"comparison": {
|
|
"reference": {
|
|
"document": [
|
|
{
|
|
"x": 73,
|
|
"y": 1,
|
|
"w": 337,
|
|
"h": 50,
|
|
"text": "C0060202-001"
|
|
}
|
|
],
|
|
"object": [
|
|
{
|
|
"x": 412,
|
|
"y": 1,
|
|
"w": 1027,
|
|
"h": 50,
|
|
"text": "파일 열기샘플 Mode"
|
|
}
|
|
],
|
|
"field": [
|
|
{
|
|
"x": 622,
|
|
"y": 6,
|
|
"w": 197,
|
|
"h": 41,
|
|
"text": "Model17,377L"
|
|
},
|
|
{
|
|
"x": 823,
|
|
"y": 5,
|
|
"w": 249,
|
|
"h": 42,
|
|
"text": "전체 보기2.5D어두운"
|
|
}
|
|
],
|
|
"button": [
|
|
{
|
|
"x": 421,
|
|
"y": 9,
|
|
"w": 109,
|
|
"h": 34,
|
|
"text": "파일 열기"
|
|
},
|
|
{
|
|
"x": 534,
|
|
"y": 9,
|
|
"w": 80,
|
|
"h": 34,
|
|
"text": "샘플"
|
|
},
|
|
{
|
|
"x": 828,
|
|
"y": 9,
|
|
"w": 109,
|
|
"h": 34,
|
|
"text": "전체 보기"
|
|
},
|
|
{
|
|
"x": 1402,
|
|
"y": 6,
|
|
"w": 32,
|
|
"h": 40,
|
|
"text": ""
|
|
}
|
|
],
|
|
"toggle": [
|
|
{
|
|
"x": 1086,
|
|
"y": 6,
|
|
"w": 81,
|
|
"h": 40,
|
|
"text": "레이어"
|
|
},
|
|
{
|
|
"x": 1171,
|
|
"y": 6,
|
|
"w": 68,
|
|
"h": 40,
|
|
"text": "설정"
|
|
},
|
|
{
|
|
"x": 1243,
|
|
"y": 6,
|
|
"w": 68,
|
|
"h": 40,
|
|
"text": "속성"
|
|
}
|
|
],
|
|
"tab": [
|
|
{
|
|
"x": 627,
|
|
"y": 7,
|
|
"w": 97,
|
|
"h": 40,
|
|
"text": "Model17,377"
|
|
},
|
|
{
|
|
"x": 728,
|
|
"y": 7,
|
|
"w": 87,
|
|
"h": 40,
|
|
"text": "Layout237"
|
|
}
|
|
],
|
|
"switchField": [
|
|
{
|
|
"x": 942,
|
|
"y": 6,
|
|
"w": 52,
|
|
"h": 40,
|
|
"text": "2.5D"
|
|
},
|
|
{
|
|
"x": 998,
|
|
"y": 6,
|
|
"w": 70,
|
|
"h": 40,
|
|
"text": "어두운 배경"
|
|
}
|
|
]
|
|
},
|
|
"package": {
|
|
"document": [
|
|
{
|
|
"x": 25,
|
|
"y": 1,
|
|
"w": 360,
|
|
"h": 50,
|
|
"text": "C0060202-001"
|
|
}
|
|
],
|
|
"object": [
|
|
{
|
|
"x": 387,
|
|
"y": 1,
|
|
"w": 1053,
|
|
"h": 50,
|
|
"text": "파일 열기샘플Model"
|
|
}
|
|
],
|
|
"field": [
|
|
{
|
|
"x": 597,
|
|
"y": 5,
|
|
"w": 197,
|
|
"h": 42,
|
|
"text": "Model17,377L"
|
|
},
|
|
{
|
|
"x": 798,
|
|
"y": 5,
|
|
"w": 249,
|
|
"h": 42,
|
|
"text": "전체 보기2.5D어두운"
|
|
}
|
|
],
|
|
"button": [
|
|
{
|
|
"x": 396,
|
|
"y": 9,
|
|
"w": 109,
|
|
"h": 34,
|
|
"text": "파일 열기"
|
|
},
|
|
{
|
|
"x": 509,
|
|
"y": 9,
|
|
"w": 80,
|
|
"h": 34,
|
|
"text": "샘플"
|
|
},
|
|
{
|
|
"x": 803,
|
|
"y": 9,
|
|
"w": 109,
|
|
"h": 34,
|
|
"text": "전체 보기"
|
|
},
|
|
{
|
|
"x": 1402,
|
|
"y": 6,
|
|
"w": 32,
|
|
"h": 40,
|
|
"text": ""
|
|
}
|
|
],
|
|
"toggle": [
|
|
{
|
|
"x": 1086,
|
|
"y": 6,
|
|
"w": 81,
|
|
"h": 40,
|
|
"text": "레이어"
|
|
},
|
|
{
|
|
"x": 1171,
|
|
"y": 6,
|
|
"w": 68,
|
|
"h": 40,
|
|
"text": "설정"
|
|
},
|
|
{
|
|
"x": 1243,
|
|
"y": 6,
|
|
"w": 68,
|
|
"h": 40,
|
|
"text": "속성"
|
|
}
|
|
],
|
|
"tab": [
|
|
{
|
|
"x": 602,
|
|
"y": 6,
|
|
"w": 97,
|
|
"h": 40,
|
|
"text": "Model17,377"
|
|
},
|
|
{
|
|
"x": 702,
|
|
"y": 6,
|
|
"w": 87,
|
|
"h": 40,
|
|
"text": "Layout237"
|
|
}
|
|
],
|
|
"switchField": [
|
|
{
|
|
"x": 916,
|
|
"y": 6,
|
|
"w": 52,
|
|
"h": 40,
|
|
"text": "2.5D"
|
|
},
|
|
{
|
|
"x": 972,
|
|
"y": 6,
|
|
"w": 70,
|
|
"h": 40,
|
|
"text": "어두운 배경"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"results": [
|
|
{
|
|
"name": "geometry button sizes equal to reference",
|
|
"result": "PASS",
|
|
"detail": "reference 109x34 80x34 109x34 32x40 / package 109x34 80x34 109x34 32x40"
|
|
},
|
|
{
|
|
"name": "geometry toggle sizes equal to reference",
|
|
"result": "PASS",
|
|
"detail": "reference 81x40 68x40 68x40 / package 81x40 68x40 68x40"
|
|
},
|
|
{
|
|
"name": "geometry tab sizes equal to reference",
|
|
"result": "PASS",
|
|
"detail": "reference 97x40 87x40 / package 97x40 87x40"
|
|
},
|
|
{
|
|
"name": "geometry switchField sizes equal to reference",
|
|
"result": "PASS",
|
|
"detail": "reference 52x40 70x40 / package 52x40 70x40"
|
|
},
|
|
{
|
|
"name": "geometry field sizes equal to reference (±1px height, known)",
|
|
"result": "PASS",
|
|
"detail": "reference 197x41 249x42 / package 197x42 249x42"
|
|
},
|
|
{
|
|
"name": "geometry document well height / top (x: logo rule)",
|
|
"result": "PASS",
|
|
"detail": "reference x73 y1 h50 / package x25 y1 h50"
|
|
},
|
|
{
|
|
"name": "menu opens on click",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "menu has 3 entries",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "menu placed under its button",
|
|
"result": "PASS",
|
|
"detail": "menu 549,365 button 549,361"
|
|
},
|
|
{
|
|
"name": "trigger shows open state",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "ArrowDown moves focus in menu",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "Escape closes menu",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "Escape returns focus to trigger",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "Enter opens with first entry focused",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "Enter selects entry (document changes)",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "onCommand reports menu entry",
|
|
"result": "PASS",
|
|
"detail": "Command: samples/sample-dxf"
|
|
},
|
|
{
|
|
"name": "outside click closes menu",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "tabs ArrowRight selects Layout",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "header switch toggles",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "hover face #266651",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "toggle opens panel",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "toggle pressed state + #FFC600",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "panel focused on open",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "Escape closes panel",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "focus returns to toggle",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "corner resize changes size",
|
|
"result": "PASS",
|
|
"detail": "314x420 → 257x323"
|
|
},
|
|
{
|
|
"name": "drag moves panel",
|
|
"result": "PASS",
|
|
"detail": "dx -300 dy 30"
|
|
},
|
|
{
|
|
"name": "drag stays inside bounds (10px edge)",
|
|
"result": "PASS",
|
|
"detail": "right gap 10, bottom gap 10"
|
|
},
|
|
{
|
|
"name": "collapse hides body",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "title double click expands",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "전체 켜기: default kept, green hover / active, back after release",
|
|
"result": "PASS",
|
|
"detail": "rgb(255, 255, 255) rgb(18, 51, 40) | rgb(38, 102, 81) rgb(255, 255, 255) | rgb(18, 51, 40) rgb(255, 255, 255) | rgb(38, 102, 81) rgb(255, 255, 255) | rgb(255, 255, 255) rgb(18, 51, 40)"
|
|
},
|
|
{
|
|
"name": "panel content callback",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "close hover = SWPopup hover asset",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "close button closes",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "last touched panel on top",
|
|
"result": "PASS",
|
|
"detail": "layer z 47, options z 46"
|
|
},
|
|
{
|
|
"name": "전체 켜기 hover = 라이선스 확인 hover (same token)",
|
|
"result": "PASS",
|
|
"detail": "rgb(38, 102, 81) rgb(255, 255, 255) / rgb(38, 102, 81) rgb(255, 255, 255)"
|
|
},
|
|
{
|
|
"name": "modal popup opens with backdrop",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "modal focus stays inside",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "modal Escape closes",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "ArrowRight opens submenu with focus",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "submenu opens to the side",
|
|
"result": "PASS",
|
|
"detail": "parent right 596, sub left 596"
|
|
},
|
|
{
|
|
"name": "third level opens on hover",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "ArrowLeft closes one level",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "checkbox entry toggles via onCommand",
|
|
"result": "PASS",
|
|
"detail": "Command: file/lineweight=true"
|
|
},
|
|
{
|
|
"name": "checkbox state reflected",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "disabled entry does nothing",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "menuAlign end + menuWidth",
|
|
"result": "PASS",
|
|
"detail": "width 220"
|
|
},
|
|
{
|
|
"name": "context menu opens at pointer",
|
|
"result": "PASS",
|
|
"detail": "90,729"
|
|
},
|
|
{
|
|
"name": "context entry reported",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "menu stays inside the viewport",
|
|
"result": "PASS",
|
|
"detail": "left 4, right 224"
|
|
},
|
|
{
|
|
"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": "1440: no More",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "1100: More, samples/tabs/switches moved",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "860: panel toggles moved too",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "520: 파일 열기 / 전체 보기 icon only",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "More sections like the reference",
|
|
"result": "PASS",
|
|
"detail": "샘플 도면 | 기본 도면 · DWG | 평면 및 종단면도 · DWG | 기본 도형 · DXF | 도면 공간 | Model · 17,377개 | Layout · 237개 | 화면 보기 | 2.5D | 어두운 배경 | 패널 | 레이어 | 설정 | 속성"
|
|
},
|
|
{
|
|
"name": "More face beige 260px",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "More checkbox reports command",
|
|
"result": "PASS",
|
|
"detail": "Command: layers=true"
|
|
},
|
|
{
|
|
"name": "More radio selects tab value",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "mode switch shows viewer header",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "brand click returns to normal SWHeader",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "state kept across mode switch (layer panel still open)",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "logo none: no HM / text / icon",
|
|
"result": "PASS",
|
|
"detail": "{\"text\":\"\",\"img\":false,\"width\":24,\"docX\":25,\"height\":52,\"fileOpenY\":9}"
|
|
},
|
|
{
|
|
"name": "logo none: cap shrinks to its edge (no wide gap)",
|
|
"result": "PASS",
|
|
"detail": "{\"text\":\"\",\"img\":false,\"width\":24,\"docX\":25,\"height\":52,\"fileOpenY\":9}"
|
|
},
|
|
{
|
|
"name": "logoSrc shows the image (cap = 24 + logo + 25, min 72)",
|
|
"result": "PASS",
|
|
"detail": "{\"text\":\"\",\"img\":true,\"width\":94,\"docX\":95,\"height\":52,\"fileOpenY\":9,\"logoWidth\":45}"
|
|
},
|
|
{
|
|
"name": "logo element shown",
|
|
"result": "PASS",
|
|
"detail": "{\"text\":\"LOGO\",\"img\":true,\"width\":81,\"docX\":82,\"height\":52,\"fileOpenY\":9}"
|
|
},
|
|
{
|
|
"name": "header height and menu row unchanged with / without logo",
|
|
"result": "PASS",
|
|
"detail": "52/9 52/9 52/9"
|
|
},
|
|
{
|
|
"name": "text outline 1.3px black on 14px text (label / file name / tab)",
|
|
"result": "PASS",
|
|
"detail": "rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg"
|
|
},
|
|
{
|
|
"name": "label outline 1px black on 11px captions / counts",
|
|
"result": "PASS",
|
|
"detail": "rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg"
|
|
},
|
|
{
|
|
"name": "icon outline: SVG stroke copy, no CSS filter",
|
|
"result": "PASS",
|
|
"detail": "{\"filter\":\"none\",\"copyStroke\":\"rgb(0, 0, 0)\",\"copyWidth\":5,\"glyphStroke\":\"rgb(255, 255, 255)\",\"glyphWidth\":2}"
|
|
},
|
|
{
|
|
"name": "fill / size / weight / spacing kept",
|
|
"result": "PASS",
|
|
"detail": "rgb(255, 255, 255) 14px 500 normal"
|
|
},
|
|
{
|
|
"name": "hover changes fill only (outline kept)",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "disabled fades text + outline together",
|
|
"result": "PASS",
|
|
"detail": "[\"0.6\",true]"
|
|
},
|
|
{
|
|
"name": "SW/Tool removed from the sidebar",
|
|
"result": "PASS",
|
|
"detail": "SW/Header, SW/Viewer, SW/Popup"
|
|
},
|
|
{
|
|
"name": "SW/Popup, SW/Header and SW/Viewer remain",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
},
|
|
{
|
|
"name": "no page errors",
|
|
"result": "PASS",
|
|
"detail": ""
|
|
}
|
|
],
|
|
"errors": []
|
|
}
|