From 3c5c48f502cc284617f811c7f2989ab30c44ffc8 Mon Sep 17 00:00:00 2001 From: amosblomqvist Date: Thu, 17 Sep 2026 09:41:43 +0300 Subject: [PATCH] Settings panel: gray out dependent controls when their parent is off MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dependency graying everywhere, consistent across sections (user 2026-09-17 — chose "gray out children" over hiding rows, so the layout stays stable and the required-by relationship stays visible): - Background colors off → Dilation, Blur, Edge alpha, Bitmap resolution dim (opacity-40) + lock (native disabled). It's a COMPUTE switch, so the whole region tune section follows it. - Cluster labels off → Cluster label size dims + locks. Decoupled from Background colors (labels follow their own toggle, by design 2026-09-16): label controls stay live while regions are off. - Depth anchor off → Depth strength + Depth spacing dim + lock. - Base ring radius is radial-only: dims + locks unless Depth anchor is Radial (vertical doesn't use a ring). SettingSlider gains an optional `disabled` prop (row opacity-40 + range input disabled); the two select rows dim + disable inline. Pure UI — no schema or renderer changes. --- components/graph-view.tsx | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/components/graph-view.tsx b/components/graph-view.tsx index 3c65f17..5112f98 100644 --- a/components/graph-view.tsx +++ b/components/graph-view.tsx @@ -166,6 +166,7 @@ function SettingSlider({ value, display, onChange, + disabled, }: { label: string; min: number; @@ -175,9 +176,12 @@ function SettingSlider({ /** Value display override (e.g. "1.5×" for zoom) — defaults to the raw number. */ display?: string; onChange: (v: number) => void; + /** Dependency graying (user 2026-09-17): children dim + lock when + * their parent toggle/mode is off — consistently across sections. */ + disabled?: boolean; }) { return ( -