Files
digital-garbageandClaude Sonnet 5.5 aa31b95ea5 Timeline header on one line; kit literals into tokens; Composer fits; running-state viewport test; remove Auto Montage
- Header: view toggles (Assets/Preview/Properties/Auto-hide) move to the top bar; progress, the prompt warning and scene actions (rate, upscale, interpolate) move to the row under the toolbar; the timeline head never wraps from 1000px up and never clips its controls. The top bar grows a line instead of spilling when it wraps.
- Kit: every literal pixel size in element CSS is a token (the ratchet test is now zero); Composer's text box follows the viewport; the catalogue shows the component sizes.
- test:viewport adds a fake ComfyUI queue and socket for the render-running state and asserts the header is one row.
- Auto Montage removed (button, window, code, README/docs, tests). Saved projects holding pieces it made still load: the reused flag is kept.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 14:28:45 +02:00

19 lines
696 B
JavaScript

// The three dock buttons beside the timeline: each shows or hides its zone.
import { composer as c } from "../../composer/composer.js";
const ZONES = [["assets", "Assets"], ["preview", "Preview"], ["properties", "Properties"]];
export default {
id: "dock",
mount: "menubar.right",
needs: ["dock"],
setup({ host, app }) {
const tabs = ZONES.map(([zone, label]) => {
const tab = c.button.sm({ label, tone: "neutral", pressed: app.dock.shown(zone), onClick: () => app.dock.toggle(zone) });
host.append(tab.node);
return [zone, tab];
});
return app.dock.on(() => tabs.forEach(([zone, tab]) => tab.setPressed && tab.setPressed(app.dock.shown(zone))));
},
};