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
@@ -206,7 +206,6 @@ impl RenderOnce for VoiceCallBar {
.then(|| AvatarGroup::new(self.people).max(3).size(AvatarSize::Xs));
div()
.debug_selector(|| "voice-call-bar".into())
.w_full()
.flex()
.flex_wrap()
.items_center()
+6 -9
View File
@@ -272,14 +272,11 @@ impl RenderOnce for ChannelList {
sections.section(title, rows)
},
);
div()
.debug_selector(|| "channel-list".into())
.w_full()
.child(
sections
.selected(self.open)
.on_select(open.clone())
.on_activate(open),
)
div().debug_selector(|| "channel-list".into()).child(
sections
.selected(self.open)
.on_select(open.clone())
.on_activate(open),
)
}
}
-1
View File
@@ -295,7 +295,6 @@ impl RenderOnce for GifPicker {
.then(|| Masonry::new((self.id.clone(), "gifs"), 2, gap).children(tiles));
div()
.debug_selector(|| "gif-picker".into())
.w_full()
.flex()
.flex_col()
.gap_2()
-1
View File
@@ -104,7 +104,6 @@ impl RenderOnce for ChannelHeader {
};
div()
.debug_selector(|| "channel-header".into())
.w_full()
.flex()
.flex_wrap()
.items_center()
-1
View File
@@ -193,7 +193,6 @@ impl RenderOnce for MemberList {
});
div()
.debug_selector(|| "member-list".into())
.w_full()
.children(empty)
.when(!self.members.is_empty(), |list| {
list.child(
-2
View File
@@ -141,7 +141,6 @@ impl RenderOnce for ChatMessage {
.id(self.id.clone())
.debug_selector(move || format!("message {}", self.id))
.group(group)
.w_full()
.flex()
.gap_3()
.px_3()
@@ -192,7 +191,6 @@ impl RenderOnce for UnreadDivider {
let theme = cx.theme();
let danger = theme.colors.danger;
div()
.w_full()
.flex()
.items_center()
.gap_2()
-1
View File
@@ -176,7 +176,6 @@ impl RenderOnce for UserProfileCard {
});
div()
.debug_selector(|| "profile-card".into())
.w_full()
.flex()
.flex_col()
.gap_3()
-1
View File
@@ -152,7 +152,6 @@ impl RenderOnce for PinnedMessages {
});
div()
.debug_selector(|| "pinned-messages".into())
.w_full()
.flex()
.flex_col()
.gap_1()
-1
View File
@@ -300,7 +300,6 @@ impl RenderOnce for StatusSetter {
});
div()
.debug_selector(|| "status-setter".into())
.w_full()
.flex()
.flex_col()
.gap_4()
-1
View File
@@ -68,7 +68,6 @@ impl RenderOnce for MessageThread {
div()
.id(self.id)
.debug_selector(|| "message-thread".into())
.w_full()
.flex()
.items_center()
.gap_2()
-2
View File
@@ -191,7 +191,6 @@ impl RenderOnce for VideoCallGrid {
div()
.debug_selector(|| "video-call-grid".into())
.relative()
.w_full()
.flex()
.flex_col()
.children(rows)
@@ -321,7 +320,6 @@ impl RenderOnce for ScreenShareView {
});
div()
.debug_selector(|| "screen-share".into())
.w_full()
.flex()
.flex_col()
.gap_2()