Tags: lnorton89/golc
Tags
feat(13-13): add IconButton soft-disabled mode Adds an opt-in disabledBehavior?: "native" | "soft" prop (default "native", fully backward compatible -- every existing IconButton call site across FixturePatch/ProjectFixtures/SceneList/LookBrowser/ ScenesLooksWorkspace passes unchanged, 54 tests green). Desk.tsx's fader-clear/universe-release/fixture-release buttons and FixtureStyleModal's reset buttons all use aria-disabled rather than the native `disabled` attribute specifically because a native-disabled button stops receiving hover/focus events in Chromium/WebView2, which silently swallows the title tooltip explaining why the action is unavailable -- a deliberate, already-documented fix in the current Desk code. "soft" mode preserves that behavior (button stays hoverable/focusable/tabbable, aria-disabled and the dimmed visual still apply) so these can move onto the shared primitive without regressing it; the caller keeps making its own onClick a no-op while disabled, same as it already must in "native" mode.
v1.0 Core Lighting Console (Club/DJ) Delivered: The deterministic lighting-console core -- offline-safe configuration and Linear traceability, modular semantic fixtures with reviewed pool/deployment changes, tempo-aware deterministic show programming and playback, real Art-Net output verified against hardware, durable SQLite-backed show storage with recovery, a full Wails desktop authoring/operator surface with generic MIDI control and independent safety overrides, a versioned audited external API, and isolated capability-limited TypeScript scripting with a real debugger. Key accomplishments: - Offline-first configuration and credential-free Linear traceability (Phase 1) - Modular semantic fixture catalog with reviewed impact analysis (Phase 2) - Deterministic tempo-aware show programming and playback engine (Phase 3) - Real, hardware-verified Art-Net output (Phase 4) - Durable SQLite-backed show storage with recovery (Phase 5) - Full Wails authoring/operator UI with MIDI and safety overrides (Phase 6) - Versioned, audited external HTTP API (Phase 7) - Isolated, sandboxed TypeScript scripting with a real debugger (Phase 8) Scope note: LLM autonomy, Windows qualification, and telemetry (originally part of the unified v1 requirements set) carry forward into a later milestone. See .planning/MILESTONES.md for full details.