docs(sw): AI rules, example E, tests and evidence for the popup / footer / header changes
AI documents (packages/sw/ai)
- SWPopupPropertyRow, SWSelect, SWSlider in the catalog, usage table,
composition patterns and design rules; SWViewerSlider noted as SWSlider panel.
- Rule: the SWHeader layer / color dropdowns are header-only; popup layer /
color / line style use SWPopupPropertyRow (property window pickers).
- Footer rules: gra-border-orange surfaces, Model / Layout text unchanged on
hover, side button hover, vacant surface limited to the slot row.
- Header rules: measured More growing behavior (hysteresis fix A).
- Example E (custom popup) uses SWPopupPropertyRow, SWSelect and SWSlider
instead of SWHeaderLayerMenu in the popup.
Tests (packages/sw/tests)
- New footer-popup-viewer-refinement.browser.mjs (47 checks: footer stories,
hover / gradient / tab text / pocket, popup pickers vs property window rows,
SWSlider, unit SWSelect parity, Popup B, header trace, viewer title art).
- integrated-popup / integrated-consumer: popup pickers and SWSelect instead of
the header dropdown and the HM UI Select (same overlay / callback / Escape
requirements).
- integrated-improvement: default sections skip the retired SW/Tool story
('tool' still runs by name); storybook-inventory / simplification record the
retired footer IDs; theme-inheritance widths use sw-footer--full-footer.
Docs (docs/sw)
- sw-footer-popup-viewer-refinement-2026-10-20.md: causes, decisions (the
first-pass "header dropdown in popup" change is marked withdrawn),
verification and baseline failures; evidence footer-popup-viewer-refinement-qa
(47/47). Footer mapping document updated for the removed sections.
Baseline failures (unchanged by this work): home-menu-integration 1,
storybook-unused-removal 5 (10-19 snapshot comparisons), range-cross-browser and
property-panel-comparison open stories retired on 2026-10-19.
This commit is contained in:
1 parent
126a35d60d
commit
454472d344
24 files changed
+1211
-52
No files matched your search
@@ -103,11 +103,15 @@ for (const mode of ["sw-first", "ui-first"]) {
|
||||
const name = e.getByLabel("이름")
|
||||
await name.click(); await name.fill("평면도-02"); await name.press("Enter")
|
||||
check(`${mode} E: row input commits`, await last() === "name:평면도-02", await last())
|
||||
await e.locator(".hm-sw-header__field--layer").click()
|
||||
const menu = e.locator(".hm-sw-header__layer-menu")
|
||||
check(`${mode} E: layer dropdown inside the popup is a fixed overlay`, await menu.evaluate(el => getComputedStyle(el).position) === "fixed")
|
||||
// 2026-10-20: popup layer = the property window picker (SWPopupPropertyRow); no SWHeader field dropdown in a popup.
|
||||
check(`${mode} E: no SWHeader field dropdown inside the popup`, await e.locator(".hm-sw-header__field").count() === 0)
|
||||
await e.locator('[data-property-id="layer"] .hm-sw-property__trigger').click()
|
||||
const menu = page.locator('.hm-sw-property__drop[data-picker="layer"]')
|
||||
check(`${mode} E: layer picker inside the popup is a fixed overlay`, await menu.evaluate(el => getComputedStyle(el).position) === "fixed")
|
||||
await menu.locator(".hm-sw-header__layer-item", { hasText: "DIM" }).click()
|
||||
check(`${mode} E: layer selection callback`, await last() === "layer:dim", await last())
|
||||
await e.getByLabel("단위").selectOption("cm")
|
||||
check(`${mode} E: SWSelect unit callback`, await last() === "unit:cm", await last())
|
||||
|
||||
// HM UI inside an SW popup.
|
||||
const ui = section("ui")
|
||||
|
||||
Reference in new issue
Block a user