Capture · Roots: roots drop w_full; hosts give the width

145 component roots drop w_full, the early returns included. Three
field rows keep it, Input, InputGroup and TagInput: stretched without
a width, taffy 0.9 laid the field's flex_1 share at no width in the
template picker at 280px, and the placeholder drew nothing. Container
keeps it, since mx_auto needs a width to fill.

Hosts that relied on a root's width now give it: MessageList boxes
each row at the list's width, the splash gives its bar the column's,
and test stages that mount a component as the window's root sit in a
size_full box. Tests hold a narrow row across the list and the splash
bar across its column; each goes red without its fix.

The gallery gains --narrow <px>, which lays each page in a padded
card at that width and shoots it without its script. The page
header wraps: the title takes the room and the theme switcher drops
below, where a long summary used to push it past the edge. A file
panel step waits for the panel to become key instead of a fixed
pause, which lost a race in a capture.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-28 13:07:22 -04:00
1 parent 3be809a660
commit 81e73b79c1
126 files changed
+275 -276

No files matched your search

-2
View File
@@ -119,7 +119,6 @@ impl RenderOnce for FileChangeCard {
let theme = cx.theme();
let colors = theme.colors.clone();
div()
.w_full()
.rounded(theme.radius(Radius::Md))
.border_1()
.border_color(colors.border)
@@ -270,7 +269,6 @@ impl RenderOnce for MultiFileDiffReview {
)
});
div()
.w_full()
.flex()
.flex_col()
.gap_2()
-2
View File
@@ -88,7 +88,6 @@ impl RenderOnce for HumanInputRequest {
let theme = cx.theme();
let colors = theme.colors.clone();
div()
.w_full()
.flex()
.flex_col()
.gap_3()
@@ -177,7 +176,6 @@ impl RenderOnce for CostBreakdown {
)
});
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -117,7 +117,6 @@ impl RenderOnce for SandboxStatus {
let live = matches!(self.state, SandboxState::Starting | SandboxState::Busy);
let color = self.state.color(&colors);
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -84,7 +84,6 @@ impl RenderOnce for MemoryPanel {
)
});
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -137,7 +137,6 @@ impl RenderOnce for PermissionPrompt {
})
};
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-2
View File
@@ -118,7 +118,6 @@ impl RenderOnce for AgentPlan {
.filter(|(_, state)| *state == StepState::Done)
.count();
div()
.w_full()
.flex()
.flex_col()
.gap_2()
@@ -284,7 +283,6 @@ impl RenderOnce for AgentProgress {
let theme = cx.theme();
let colors = theme.colors.clone();
div()
.w_full()
.flex()
.flex_col()
.gap_2()
-1
View File
@@ -112,7 +112,6 @@ impl RenderOnce for ToolRegistry {
let groups = grouped(&self.tools, &found(&self.tools, &self.query));
let empty = groups.is_empty();
div()
.w_full()
.flex()
.flex_col()
.gap_4()
-2
View File
@@ -109,7 +109,6 @@ impl RenderOnce for ToolCallCard {
.child(text)
};
div()
.w_full()
.rounded(theme.radius(Radius::Md))
.border_1()
.border_color(colors.border)
@@ -217,7 +216,6 @@ impl RenderOnce for ToolCallGroup {
let theme = cx.theme();
let colors = theme.colors.clone();
div()
.w_full()
.flex()
.flex_col()
.gap_2()