PASS 28 -> 24 SW Stories, exactly four approved Dropdown retirements PASS Dropdown is one Story directly under Header with original ID, no Dropdown folder PASS menu correction keeps all 24 IDs; only composed Story name/title change PASS all non-SW index entries identical PASS all retained declarations identical outside imports, meta and ComposedDemo PASS runtime, API, AI template, Overview, existing CSS/assets and Storybook configuration untouched PASS render sw-header--composed-controls PASS render sw-header--detail-buttons PASS render sw-header--overview PASS render sw-header--interactive-states PASS render sw-header--window-move-motion PASS render sw-header--logo-slot PASS render sw-header--document-dropdown PASS render sw-header--responsive-more PASS render sw-header--layer-detail-input PASS render sw-header--property-panel PASS render sw-header--property-panel-variants PASS render sw-header--k-guide PASS render sw-header--additional-hover PASS render sw-header--property-bar PASS render sw-header--dynamic-controls PASS render sw-header--colorize PASS render sw-header--composition PASS render sw-header--property-panel-none PASS render sw-header--property-panel-all PASS render sw-header--property-panel-circle PASS render sw-header--property-panel-expanded PASS render sw-header--property-panel-compare PASS render sw-header--property-shape-slot PASS render sw-header--property-fields PASS Dropdown page contains the Composed Controls group PASS one copy of five Dropdown fields and the details group PASS composition wraps without page overflow or scaling at 390 PASS 레이어 Hover does not open at 390 PASS 레이어 overlay in viewport, not clipped or covered at 390 PASS 레이어 selected and expanded at 390 PASS 레이어 Escape closes and restores focus at 390 PASS 레이어 trigger toggles closed at 390 PASS 레이어 outside click closes at 390 PASS 색상 Hover does not open at 390 PASS 색상 overlay in viewport, not clipped or covered at 390 PASS 색상 selected and expanded at 390 PASS 색상 Escape closes and restores focus at 390 PASS 색상 trigger toggles closed at 390 PASS 색상 outside click closes at 390 PASS 선스타일 Hover does not open at 390 PASS 선스타일 overlay in viewport, not clipped or covered at 390 PASS 선스타일 selected and expanded at 390 PASS 선스타일 Escape closes and restores focus at 390 PASS 선스타일 trigger toggles closed at 390 PASS 선스타일 outside click closes at 390 PASS 문자스타일 Hover does not open at 390 PASS 문자스타일 overlay in viewport, not clipped or covered at 390 PASS 문자스타일 selected and expanded at 390 PASS 문자스타일 Escape closes and restores focus at 390 PASS 문자스타일 trigger toggles closed at 390 PASS 문자스타일 outside click closes at 390 PASS 치수스타일 Hover does not open at 390 PASS 치수스타일 overlay in viewport, not clipped or covered at 390 PASS 치수스타일 selected and expanded at 390 PASS 치수스타일 Escape closes and restores focus at 390 PASS 치수스타일 trigger toggles closed at 390 PASS 치수스타일 outside click closes at 390 PASS composition wraps without page overflow or scaling at 768 PASS 레이어 Hover does not open at 768 PASS 레이어 overlay in viewport, not clipped or covered at 768 PASS 레이어 selected and expanded at 768 PASS 레이어 Escape closes and restores focus at 768 PASS 레이어 trigger toggles closed at 768 PASS 레이어 outside click closes at 768 PASS 색상 Hover does not open at 768 PASS 색상 overlay in viewport, not clipped or covered at 768 PASS 색상 selected and expanded at 768 PASS 색상 Escape closes and restores focus at 768 PASS 색상 trigger toggles closed at 768 PASS 색상 outside click closes at 768 PASS 선스타일 Hover does not open at 768 PASS 선스타일 overlay in viewport, not clipped or covered at 768 PASS 선스타일 selected and expanded at 768 PASS 선스타일 Escape closes and restores focus at 768 PASS 선스타일 trigger toggles closed at 768 PASS 선스타일 outside click closes at 768 PASS 문자스타일 Hover does not open at 768 PASS 문자스타일 overlay in viewport, not clipped or covered at 768 PASS 문자스타일 selected and expanded at 768 PASS 문자스타일 Escape closes and restores focus at 768 PASS 문자스타일 trigger toggles closed at 768 PASS 문자스타일 outside click closes at 768 PASS 치수스타일 Hover does not open at 768 PASS 치수스타일 overlay in viewport, not clipped or covered at 768 PASS 치수스타일 selected and expanded at 768 PASS 치수스타일 Escape closes and restores focus at 768 PASS 치수스타일 trigger toggles closed at 768 PASS 치수스타일 outside click closes at 768 PASS composition wraps without page overflow or scaling at 1280 PASS 레이어 Hover does not open at 1280 PASS 레이어 overlay in viewport, not clipped or covered at 1280 PASS 레이어 selected and expanded at 1280 PASS 레이어 Escape closes and restores focus at 1280 PASS 레이어 trigger toggles closed at 1280 PASS 레이어 outside click closes at 1280 PASS 색상 Hover does not open at 1280 PASS 색상 overlay in viewport, not clipped or covered at 1280 PASS 색상 selected and expanded at 1280 PASS 색상 Escape closes and restores focus at 1280 PASS 색상 trigger toggles closed at 1280 PASS 색상 outside click closes at 1280 PASS 선스타일 Hover does not open at 1280 PASS 선스타일 overlay in viewport, not clipped or covered at 1280 PASS 선스타일 selected and expanded at 1280 PASS 선스타일 Escape closes and restores focus at 1280 PASS 선스타일 trigger toggles closed at 1280 PASS 선스타일 outside click closes at 1280 PASS 문자스타일 Hover does not open at 1280 PASS 문자스타일 overlay in viewport, not clipped or covered at 1280 PASS 문자스타일 selected and expanded at 1280 PASS 문자스타일 Escape closes and restores focus at 1280 PASS 문자스타일 trigger toggles closed at 1280 PASS 문자스타일 outside click closes at 1280 PASS 치수스타일 Hover does not open at 1280 PASS 치수스타일 overlay in viewport, not clipped or covered at 1280 PASS 치수스타일 selected and expanded at 1280 PASS 치수스타일 Escape closes and restores focus at 1280 PASS 치수스타일 trigger toggles closed at 1280 PASS 치수스타일 outside click closes at 1280 PASS composition wraps without page overflow or scaling at 1440 PASS 레이어 Hover does not open at 1440 PASS 레이어 overlay in viewport, not clipped or covered at 1440 PASS 레이어 selected and expanded at 1440 PASS 레이어 Escape closes and restores focus at 1440 PASS 레이어 trigger toggles closed at 1440 PASS 레이어 outside click closes at 1440 PASS 색상 Hover does not open at 1440 PASS 색상 overlay in viewport, not clipped or covered at 1440 PASS 색상 selected and expanded at 1440 PASS 색상 Escape closes and restores focus at 1440 PASS 색상 trigger toggles closed at 1440 PASS 색상 outside click closes at 1440 PASS 선스타일 Hover does not open at 1440 PASS 선스타일 overlay in viewport, not clipped or covered at 1440 PASS 선스타일 selected and expanded at 1440 PASS 선스타일 Escape closes and restores focus at 1440 PASS 선스타일 trigger toggles closed at 1440 PASS 선스타일 outside click closes at 1440 PASS 문자스타일 Hover does not open at 1440 PASS 문자스타일 overlay in viewport, not clipped or covered at 1440 PASS 문자스타일 selected and expanded at 1440 PASS 문자스타일 Escape closes and restores focus at 1440 PASS 문자스타일 trigger toggles closed at 1440 PASS 문자스타일 outside click closes at 1440 PASS 치수스타일 Hover does not open at 1440 PASS 치수스타일 overlay in viewport, not clipped or covered at 1440 PASS 치수스타일 selected and expanded at 1440 PASS 치수스타일 Escape closes and restores focus at 1440 PASS 치수스타일 trigger toggles closed at 1440 PASS 치수스타일 outside click closes at 1440 PASS keyboard opens layer menu and focuses current row PASS keyboard moves to next layer row PASS onLayerSelect callback exactly once PASS layer selection appears, closes and restores focus PASS selected layer retains original row Hover background PASS onLayerVisibilityChange callback exactly once PASS onLayerVisibilityChange toggles only its own state, menu remains open PASS onLayerFreezeChange callback exactly once PASS onLayerFreezeChange toggles only its own state, menu remains open PASS onLayerLockChange callback exactly once PASS onLayerLockChange toggles only its own state, menu remains open PASS disabled layer selection and toggles blocked PASS full color menu: seven palette chips, two user colors, modes, RGB and pick PASS onColorSelect callback exactly once PASS color palette updates displayed RGB and leaves menu open PASS onColorModeChange callback exactly once PASS ByBlock On and displayed mode PASS onColorInput callback exactly once PASS RGB commit clears mode and updates chip PASS invalid RGB restores without callback PASS onColorPick callback exactly once PASS color pick closes and restores focus PASS color changes leave layer, line, text and dimension values intact PASS all original line rows and weights retained PASS onLineTypeSelect callback exactly once PASS selected line retains original row Hover and preview PASS onLineWeightSelect callback exactly once PASS onLineWeightValueChange callback exactly once PASS onLineScaleChange callback exactly once PASS line type, editable weight and scale update independently; menu stays open PASS invalid scale restores, no callback PASS 문자스타일 full two-item list retained PASS onTextStyleSelect callback exactly once PASS 문자스타일 selection displayed, closes, focus returns PASS 치수스타일 full two-item list retained PASS onDimensionStyleSelect callback exactly once PASS 치수스타일 selection displayed, closes, focus returns PASS 레이어 detail Hover uses existing text opacity PASS onLayerDetail callback exactly once PASS 레이어 detail closes, focus returns, no fabricated popup PASS 색상 detail Hover uses existing text opacity PASS onColorDetail callback exactly once PASS 색상 detail closes, focus returns, no fabricated popup PASS 선스타일 detail Hover uses existing text opacity PASS onLineStyleDetail callback exactly once PASS 선스타일 detail closes, focus returns, no fabricated popup PASS 문자스타일 detail Hover uses existing text opacity PASS onTextStyleDetail callback exactly once PASS 문자스타일 detail closes, focus returns, no fabricated popup PASS 치수스타일 detail Hover uses existing text opacity PASS onDimensionStyleDetail callback exactly once PASS 치수스타일 detail closes, focus returns, no fabricated popup PASS opening another control leaves exactly one menu and preserves selection PASS keyboard Tab enters the open color controls PASS details opens existing 28px property Bar PASS details opens existing 314px property panel with focus PASS property Bar and panel share edited state PASS property panel weight edit appears in composed line field PASS property panel close returns focus PASS property panel Escape returns focus PASS narrow details panel keeps natural width and fits viewport PASS all seven actionable controls Disabled PASS Disabled controls block callbacks and overlays PASS callback-free layer icons become readonly status images PASS missing detail callback keeps safe no-op and menu open PASS retained long layer scenario PASS long layer name preserved with full title PASS retained many layer scenario PASS long layer list scrolls internally PASS all 40 user colors accessible with palette scroll PASS retained empty layer scenario PASS Overview keeps one Header at 49px and 16:9 Stage PASS Window Move Motion retains only nine 3x steps PASS manager shows a single Dropdown link directly under Header, no Composed Controls submenu PASS retired Dropdown links absent in manager PASS no browser console or page errors {"status":"PASS","checks":232,"errors":[]}