Selkie.git | xt/snapshots/ | 31-cardlist-min-height-default-renders-sliver.raku
use lib 'lib';
use Selkie::Test::Snapshot;
use Selkie::Widget::CardList;
use Selkie::Widget::Border;
use Selkie::Widget::Text;
use Selkie::Sizing;
# Backwards-compatibility regression guard: a CardList consumer that
# does NOT pass min-display-height (default = 1) keeps the historic
# behaviour of rendering whatever sliver fits. Same geometry as the
# leading-park scenario, but without min-display-height the leading
# card top-clips to a 4-row sliver — Border draws side bars + content
# + bottom border, which is exactly the "merge" symptom the new
# feature exists to suppress when callers opt in.
my $cards = Selkie::Widget::CardList.new(sizing => Sizing.flex);
for <alpha beta gamma> Z 8, 10, 5 -> ($label, $h) {
my $text = Selkie::Widget::Text.new(text => $label, sizing => Sizing.flex);
my $border = Selkie::Widget::Border.new(sizing => Sizing.flex);
$border.set-content($text);
$cards.add-item($text, root => $border, height => $h, :$border);
}
$cards.select-index(1);
print render-to-string($cards, rows => 14, cols => 20);