From 6e8b40229609b8104e2b3f8097af89c823476c0d Mon Sep 17 00:00:00 2001 From: Wassim SAMAD Date: Wed, 12 Aug 2026 16:01:04 +0200 Subject: [PATCH] feat(editor): raise room-envelope height caps from 6m to 20m MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Level height, wall custom height, ceiling custom height, and column height were all UI-capped at 6m, which rules out tall single-space builds (climbing gyms, warehouses, halls). 20m covers the tallest realistic single-storey uses — lead-climbing walls top out around 15-18m — while keeping the sliders usable in the common 2-4m band. The caps were never enforced in core schemas; only the controls change. Co-Authored-By: Claude Fable 5 --- packages/editor/src/components/ui/floating-level-selector.tsx | 2 +- packages/nodes/src/ceiling/panel.tsx | 2 +- packages/nodes/src/ceiling/parametrics.ts | 2 +- packages/nodes/src/column/panel.tsx | 2 +- packages/nodes/src/column/parametrics.ts | 2 +- packages/nodes/src/wall/panel.tsx | 4 ++-- packages/nodes/src/wall/parametrics.ts | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/editor/src/components/ui/floating-level-selector.tsx b/packages/editor/src/components/ui/floating-level-selector.tsx index b5300752dc..dc12e538bd 100644 --- a/packages/editor/src/components/ui/floating-level-selector.tsx +++ b/packages/editor/src/components/ui/floating-level-selector.tsx @@ -235,7 +235,7 @@ function LevelRow({ > updateNode(level.id, { height: v })} precision={3} diff --git a/packages/nodes/src/ceiling/panel.tsx b/packages/nodes/src/ceiling/panel.tsx index f0d2360b55..210976f8c3 100644 --- a/packages/nodes/src/ceiling/panel.tsx +++ b/packages/nodes/src/ceiling/panel.tsx @@ -260,7 +260,7 @@ export function CeilingPanel() { ) : ( = { groups: [ { label: 'Dimensions', - fields: [{ key: 'height', kind: 'number', unit: 'm', min: 1.5, max: 6, step: 0.05 }], + fields: [{ key: 'height', kind: 'number', unit: 'm', min: 1.5, max: 20, step: 0.05 }], }, ], customPanel: () => import('./panel'), diff --git a/packages/nodes/src/column/panel.tsx b/packages/nodes/src/column/panel.tsx index b8329b8d68..8e3b13873c 100644 --- a/packages/nodes/src/column/panel.tsx +++ b/packages/nodes/src/column/panel.tsx @@ -546,7 +546,7 @@ export default function ColumnPanel() { )} handleUpdate({ height: value })} precision={2} diff --git a/packages/nodes/src/column/parametrics.ts b/packages/nodes/src/column/parametrics.ts index 30ac0aaada..340c58f6f9 100644 --- a/packages/nodes/src/column/parametrics.ts +++ b/packages/nodes/src/column/parametrics.ts @@ -14,7 +14,7 @@ export const columnParametrics: ParametricDescriptor = { { label: 'Dimensions', fields: [ - { key: 'height', kind: 'number', unit: 'm', min: 0.5, max: 6, step: 0.05 }, + { key: 'height', kind: 'number', unit: 'm', min: 0.5, max: 20, step: 0.05 }, { key: 'width', kind: 'number', unit: 'm', min: 0.1, max: 2, step: 0.01 }, { key: 'depth', kind: 'number', unit: 'm', min: 0.1, max: 2, step: 0.01 }, ], diff --git a/packages/nodes/src/wall/panel.tsx b/packages/nodes/src/wall/panel.tsx index f0cf09de4f..0d2dc398e6 100644 --- a/packages/nodes/src/wall/panel.tsx +++ b/packages/nodes/src/wall/panel.tsx @@ -287,11 +287,11 @@ export default function WallPanel() { ) : ( handleUpdate({ - height: linearControlValueToMeters(v, unit, { maxMeters: 6, minMeters: 0.1 }), + height: linearControlValueToMeters(v, unit, { maxMeters: 20, minMeters: 0.1 }), }) } precision={2} diff --git a/packages/nodes/src/wall/parametrics.ts b/packages/nodes/src/wall/parametrics.ts index 1056b0da1c..4c721ac3b0 100644 --- a/packages/nodes/src/wall/parametrics.ts +++ b/packages/nodes/src/wall/parametrics.ts @@ -21,7 +21,7 @@ export const wallParametrics: ParametricDescriptor = { { key: 'thickness', kind: 'number', unit: 'm', min: 0.05, max: 0.6, step: 0.01 }, // `height` may be absent (plane-bound top); the custom panel owns the // Follows storey / Custom height mode switch, so this is metadata only. - { key: 'height', kind: 'number', unit: 'm', min: 1.5, max: 6, step: 0.05 }, + { key: 'height', kind: 'number', unit: 'm', min: 1.5, max: 20, step: 0.05 }, { key: 'curveOffset', kind: 'number', unit: 'm', min: -3, max: 3, step: 0.05 }, ], },