feat: sign interlude, window plate and a two-button control bay

The sign closes in over the road on a gantry truss, arcs into a wider
window and hands off to a flat 2D plate that mirrors its face; content
steps aside for the interlude and rises after. The bay keeps sound and
settings; volume and Pause motion move into the settings popover.
This commit is contained in:
2026-10-10 23:30:58 +03:00
parent 5757dd968f
commit bacc035c43
12 changed files with 823 additions and 287 deletions

View File

@@ -289,12 +289,13 @@ describe("DriveControls", () => {
});
expect(wrapper.get('[aria-label="Mute sound"]')).toBeTruthy();
expect(wrapper.get('[aria-label="Sound volume"]')).toBeTruthy();
expect(wrapper.get('[aria-label="Pause motion"]')).toBeTruthy();
const settings = wrapper.get('[aria-label="Drive settings"]');
await settings.trigger("click");
// Volume and Pause motion live in the settings panel (two-button bay).
const panel = wrapper.get('[role="dialog"][aria-label="Drive settings"]');
expect(panel.get('[aria-label="Sound volume level"]')).toBeTruthy();
expect(panel.get('[aria-label="Pause motion"]')).toBeTruthy();
expect(panel.text()).not.toContain("Motion: active");
expect(panel.find('[role="status"]').exists()).toBe(false);
expect(panel.get("select").attributes("aria-label")).toBe(