From b7455c04706b0f17d5f7c07e4e4578ec78b3aa7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Padez?=
Date: Sat, 5 Sep 2026 14:25:48 +0100
Subject: [PATCH] contain the pickers and let their lists scroll
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The carousel list ran off the bottom of the window with no way to reach the end
of it. There are twenty-odd carousels now — three sections' worth — where there
were six when the dialog was written.
`max-h-[80svh]` on the dialog and `min-h-0 overflow-y-auto` on the list. Both are
needed and the second is the one that is easy to miss: a flex child will not
shrink below its content without `min-h-0`, so the list pushes the dialog past
the screen and the overflow never engages. A max-height alone would have looked
like it did nothing.
`svh` rather than `vh`, because on a phone `vh` is the viewport with the browser
chrome hidden — a dialog sized in it is taller than what you can see.
AddComponentDialog gets the same treatment. Its list is a dozen kinds now and was
the same failure waiting for a shorter screen.
Co-Authored-By: Claude Opus 5 (1M context)
---
web/CarouselPicker.tsx | 16 ++++++++++++++--
web/sections/AddComponentDialog.tsx | 7 +++++--
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/web/CarouselPicker.tsx b/web/CarouselPicker.tsx
index e5881d0..aca0075 100644
--- a/web/CarouselPicker.tsx
+++ b/web/CarouselPicker.tsx
@@ -70,7 +70,19 @@ export const CarouselPicker = ({
return (
)}
-
+
{carousels?.map((carousel) => {
const count = Array.isArray(carousel.items) ? carousel.items.length : 0;
const current = carousel.id === selected;
diff --git a/web/sections/AddComponentDialog.tsx b/web/sections/AddComponentDialog.tsx
index 893c1e2..e2ae16a 100644
--- a/web/sections/AddComponentDialog.tsx
+++ b/web/sections/AddComponentDialog.tsx
@@ -132,12 +132,15 @@ export const AddComponentDialog = ({
template?: boolean;
}) => (