From 8808e8825b4877ced73b66714fcb425ad99cc486 Mon Sep 17 00:00:00 2001 From: YaelAnaya Date: Mon, 24 Aug 2026 12:18:42 -0700 Subject: [PATCH 1/3] fix(ui-core): the schema and gallery action rows wrap instead of widening the page Both rows put Nova buttons in a row that could not give. The schema's note field is 224px and its two controls another 220 with the gaps, which comes to 460 and stops fitting somewhere around 500px; the gallery's batch actions did the same a little later. Measured against the running stack, the schema overflowed the document by 204px at 320, 149 at 375 and 44 at 480, and the gallery by 118 and 63 - the residual width both surfaces were carrying into this phase. A button that shrinks is a button whose label truncates, so `shrink-0` on the primitive is right and the row is the thing that had to change. Both now wrap, and the schema's note takes the full width while it is wrapped and its own 224 once the row fits again. The gallery's state filter needed the other answer. It is one joined pill of five segments, 324px wide, so it is wider than the narrowest viewport on its own and wrapping inside the pill would break the control rather than fit it. It scrolls within its own row, which is what the project navigation does with the same shape at the same width. --- frontend/ui-core/src/screens/GalleryScreen.tsx | 13 ++++++++++++- frontend/ui-core/src/screens/SchemaEditor.tsx | 8 ++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/frontend/ui-core/src/screens/GalleryScreen.tsx b/frontend/ui-core/src/screens/GalleryScreen.tsx index ae416f6f..7eab3c71 100644 --- a/frontend/ui-core/src/screens/GalleryScreen.tsx +++ b/frontend/ui-core/src/screens/GalleryScreen.tsx @@ -708,7 +708,10 @@ function BatchHeader({ /> -
+ {/* Wraps rather than widening the page. Every control here is one a + batch's state offers, so none may be dropped at a narrow width; they + take a second line instead. */} +
{/* Draft only, and it opens the dialog rather than sending anything: approval carries a partition, pins the schema and cuts the jobs, and @@ -997,6 +1000,13 @@ function Toolbar({ > {showSegments && ( <> + {/* The row above already wraps, but the control is one joined pill and + is wider than the narrowest viewport on its own. It scrolls within + its own row rather than widening the page — the project navigation's + answer to the same shape — because squashing five state filters + costs more than a scroll does. The padding pair keeps the focus ring + off the scroller's clip. */} +
))}
+