diff --git a/packages/sw/tests/integrated-popup.checks.mjs b/packages/sw/tests/integrated-popup.checks.mjs index e2e20e9..c43cafb 100644 --- a/packages/sw/tests/integrated-popup.checks.mjs +++ b/packages/sw/tests/integrated-popup.checks.mjs @@ -21,10 +21,12 @@ export async function popupChecks({ page, goto, check, log, rect, out, report }) // 2026-10-20: the unit select is SWSelect (the Viewer 축척 지정 select), no longer the HM UI Select. await settings.locator('[data-sw-select="unit"]').selectOption('cm') check('popup content: SWSelect (unit) works inside', (await log()).includes('unit=cm') && await settings.getByLabel('단위').inputValue() === 'cm') - await settings.locator('[data-ui-slider] [role="slider"]').focus() + // 2026-10-20: the popup gauge is SWSlider (native range; keyboard steps commit through onValueCommit). + await settings.locator('[data-popup-slider]').focus() await page.keyboard.press('ArrowRight') await page.waitForTimeout(100) - check('popup content: HM UI Slider works inside', /opacity=70/.test(await log()), await log()) + check('popup content: SWSlider works inside', /opacity=70/.test(await log()) && await settings.locator('[data-popup-slider]').evaluate(e => e.classList.contains('hm-sw-slider') && e.dataset.appearance === 'panel' && e.value === '70'), await log()) + check('popup content: no HM UI Slider left inside the popups', await page.locator('[data-popups] [data-slot="slider"]').count() === 0) await settings.locator('[data-ui-apply]').click() check('popup content: HM UI Button works inside', (await log()).includes('apply')) // 2026-10-20: popup layer / color are the property window pickers (SWPopupPropertyRow); SWHeader field dropdowns are diff --git a/src/sw/sw-popup.stories.tsx b/src/sw/sw-popup.stories.tsx index a6cdc77..e39fb33 100644 --- a/src/sw/sw-popup.stories.tsx +++ b/src/sw/sw-popup.stories.tsx @@ -5,7 +5,7 @@ import { type SWHeaderColorOption, type SWHeaderLayer, type SWHeaderProperty, type SWSliderAppearance, } from "@hm-design/sw" import "@hm-design/sw/styles.css" -import { Button, Slider, Switch } from "@hm-design/ui" +import { Button, Switch } from "@hm-design/ui" import { StoryPage, StoryPageHeader, StorySection } from "@/components/story-page" import "./sw-stories.css" import "./sw-integrated-stories.css" @@ -49,7 +49,7 @@ function SettingsPopup({ record }: { record: (line: string) => void }) { const [layerId, setLayerId] = useState("wall") const [color, setColor] = useState("255,0,0") const [snap, setSnap] = useState(true) - const [opacity, setOpacity] = useState([60]) + const [opacity, setOpacity] = useState(60) const [unit, setUnit] = useState("mm") return ( record("settings.onClose")} data-popup="settings"> @@ -72,12 +72,13 @@ function SettingsPopup({ record }: { record: (line: string) => void }) { { setColor(value); record(`color=${value}`) }} /> - + {/* 2026-10-20: the gauge is the SW gauge (SWSlider). SW has no normal-mode switch, so 스냅 stays the HM UI Switch. */} + { setSnap(next); record(`snap=${next}`) }} data-ui-switch="" /> - record(`opacity=${next[0]}`)} aria-label="투명도" data-ui-slider="" /> + record(`opacity=${next}`)} aria-label="투명도" data-popup-slider="" />
@@ -161,7 +162,7 @@ function PopupPage() { {log} - +