"""The Window dropdown toggles panels and dots the ones currently shown. Every row is a real toggle (click = show/hide), the menu stays open while clicking, and a dot marks the panels/dialog/workspace that are active. The dot state is computed by the composer (galleryEditor.js) and handed to wire-extra-menus as `syncWindowChecks` + `togglePanel`, so that file owns no state. """ import pathlib import re ROOT = pathlib.Path(__file__).resolve().parents[1] TOPBAR = (ROOT / "static/js/editor/build/topbar.js").read_text(encoding="utf-8") WIRE = (ROOT / "static/js/editor/wire-extra-menus.js").read_text(encoding="utf-8") HISTORY = (ROOT / "static/js/editor/history-panel.js").read_text(encoding="utf-8") GALLERY = (ROOT / "static/js/galleryEditor.js").read_text(encoding="utf-8") STYLE = (ROOT / "static/css/13-image-editor.css").read_text(encoding="utf-8") SW = (ROOT / "static/sw.js").read_text(encoding="utf-8") WINDOW_ACTIONS = { "options", "layers", "properties", "character", "adjustments", "swatches", "gradients", "channels", "paths", "patterns", "histogram", "info", "navigator", "history", "actions", "workspace-essentials", "workspace-photography", "workspace-painting", "workspace-graphic", "shortcuts", } def test_window_menu_rows_carry_dot_glyph_and_checkbox_role(): rows = re.findall(r'