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

-1
View File
@@ -152,7 +152,6 @@ impl RenderOnce for AudioGenerationPlayer {
}
};
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -80,7 +80,6 @@ impl RenderOnce for MaskBrush {
})
};
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -168,7 +168,6 @@ impl RenderOnce for ABCompareView {
.collect(),
};
div()
.w_full()
.flex()
.flex_col()
.gap_3()
+1 -1
View File
@@ -256,7 +256,7 @@ impl RenderOnce for ModelDownloadManager {
)
.children(bar)
});
div().w_full().flex().flex_col().children(rows)
div().flex().flex_col().children(rows)
}
}
+1 -7
View File
@@ -313,12 +313,6 @@ impl RenderOnce for EmbeddingVisualizer {
cx.notify();
})
});
div()
.w_full()
.flex()
.flex_col()
.gap_3()
.child(legend)
.child(area)
div().flex().flex_col().gap_3().child(legend).child(area)
}
}
+1 -1
View File
@@ -207,6 +207,6 @@ impl RenderOnce for GenerationGrid {
.children((0..short).map(|_| div().flex_1())),
);
}
div().w_full().flex().flex_col().gap_2().children(rows)
div().flex().flex_col().gap_2().children(rows)
}
}
+6 -4
View File
@@ -45,8 +45,11 @@ impl HardwareMonitor {
impl RenderOnce for HardwareMonitor {
fn render(self, _: &mut Window, cx: &mut App) -> impl IntoElement {
let spark = cx.theme().spark_size();
div().w_full().flex().flex_col().gap_3().children(
self.readings.into_iter().enumerate().map(|(ix, reading)| {
div()
.flex()
.flex_col()
.gap_3()
.children(self.readings.into_iter().enumerate().map(|(ix, reading)| {
div()
.flex()
.items_end()
@@ -71,7 +74,6 @@ impl RenderOnce for HardwareMonitor {
.child(Sparkline::new(reading.history).area()),
)
})
}),
)
}))
}
}
-2
View File
@@ -95,7 +95,6 @@ impl RenderOnce for ModelCard {
})
});
div()
.w_full()
.flex()
.flex_col()
.gap_3()
@@ -260,7 +259,6 @@ impl RenderOnce for ModelStatus {
_ => None,
};
div()
.w_full()
.flex()
.flex_col()
.gap_2()
-1
View File
@@ -154,7 +154,6 @@ impl RenderOnce for PromptPlayground {
)
});
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -199,7 +199,6 @@ impl RenderOnce for PromptEnhancer {
),
);
div()
.w_full()
.flex()
.flex_col()
.child(Input::new(&self.field))
-1
View File
@@ -76,7 +76,6 @@ impl RenderOnce for AspectRatioPicker {
let colors = theme.colors.clone();
let glyph = theme.icon_size(IconSize::Md);
div()
.w_full()
.flex()
.flex_wrap()
.gap_2()
-1
View File
@@ -75,7 +75,6 @@ impl RenderOnce for StylePresetPicker {
let colors = theme.colors.clone();
let side = theme.generative().preset;
div()
.w_full()
.flex()
.flex_wrap()
.gap_3()
-1
View File
@@ -185,7 +185,6 @@ impl RenderOnce for FineTuneJobCard {
.h(theme.generative().loss)
});
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -120,7 +120,6 @@ impl RenderOnce for VariationPicker {
})
};
div()
.w_full()
.flex()
.flex_col()
.gap_3()
-2
View File
@@ -84,7 +84,6 @@ impl RenderOnce for PromptDiff {
Some((range, style))
});
div()
.w_full()
.text_size(theme.text_size(TextSize::Sm))
.text_color(colors.fg)
.child(StyledText::new(text).with_highlights(styles))
@@ -251,7 +250,6 @@ impl RenderOnce for PromptVersionHistory {
},
);
div()
.w_full()
.flex()
.flex_wrap()
.items_start()
-1
View File
@@ -287,7 +287,6 @@ impl RenderOnce for VideoGenerationTimeline {
})
});
div()
.w_full()
.flex()
.flex_col()
.gap_2()
+1 -1
View File
@@ -224,6 +224,6 @@ impl RenderOnce for TTSVoicePicker {
.children(voice.tags.into_iter().map(Badge::new)),
)
});
div().w_full().flex().flex_col().gap_0p5().children(rows)
div().flex().flex_col().gap_0p5().children(rows)
}
}