feat(ui): shell-style review prompt line in WorkConsole

This commit is contained in:
Mika Kuns
2026-06-23 15:33:47 +02:00
parent 167d2fec6a
commit 0a119f1450

View File

@@ -61,6 +61,28 @@
<Style Selector="Button.prompt-action.accent:pointerover /template/ ContentPresenter"> <Style Selector="Button.prompt-action.accent:pointerover /template/ ContentPresenter">
<Setter Property="TextElement.Foreground" Value="{StaticResource MossBrightBrush}" /> <Setter Property="TextElement.Foreground" Value="{StaticResource MossBrightBrush}" />
</Style> </Style>
<!-- Review prompt input: blends into the terminal — no border/fill highlight in any state -->
<Style Selector="TextBox.review-prompt">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Padding" Value="0" />
</Style>
<Style Selector="TextBox.review-prompt /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="BoxShadow" Value="none" />
</Style>
<Style Selector="TextBox.review-prompt:pointerover /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
<Style Selector="TextBox.review-prompt:focus /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BoxShadow" Value="none" />
</Style>
</UserControl.Styles> </UserControl.Styles>
<!-- Outer terminal card — Padding="0" so header/strip span edge-to-edge; <!-- Outer terminal card — Padding="0" so header/strip span edge-to-edge;
@@ -212,27 +234,34 @@
</StackPanel> </StackPanel>
</Border> </Border>
<!-- Review footer: feedback + Resume session, shown while awaiting review. <!-- Review prompt — sits directly on the terminal, like a shell input line;
Lives here (with the live log) rather than the Git tab. --> only while awaiting review. No border/fill so it reads as part of the log. -->
<Border DockPanel.Dock="Bottom" <Grid DockPanel.Dock="Bottom"
IsVisible="{Binding IsWaitingForReview}" IsVisible="{Binding IsWaitingForReview}"
Margin="12,6,12,2"> ColumnDefinitions="Auto,*,Auto"
<StackPanel Spacing="8"> Margin="12,2,12,8">
<TextBox Name="ReviewInput" <TextBlock Grid.Column="0" Text="&#x276F;"
KeyDown="OnReviewInputKeyDown"
Text="{Binding ReviewFeedback, Mode=TwoWay}"
AcceptsReturn="True"
TextWrapping="Wrap"
MaxHeight="120"
PlaceholderText="Feedback for a re-run…"
FontFamily="{StaticResource MonoFont}" FontFamily="{StaticResource MonoFont}"
FontSize="{StaticResource FontSizeMono}" /> FontSize="{StaticResource FontSizeMono}"
<Button Classes="btn" Content="Resume session" Foreground="{DynamicResource AccentBrush}"
HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,8,0" />
ToolTip.Tip="{loc:Tr session.reviewContinueTip}" <TextBox Grid.Column="1"
Command="{Binding RejectReviewCommand}" /> Name="ReviewInput"
</StackPanel> Classes="review-prompt"
</Border> KeyDown="OnReviewInputKeyDown"
Text="{Binding ReviewFeedback, Mode=TwoWay}"
AcceptsReturn="True"
TextWrapping="Wrap"
MaxHeight="160"
PlaceholderText="Feedback for the next run…"
VerticalContentAlignment="Center"
FontFamily="{StaticResource MonoFont}"
FontSize="{StaticResource FontSizeMono}" />
<Button Grid.Column="2" Classes="prompt-action accent" Content="[Resume]"
VerticalAlignment="Center" Margin="12,0,0,0"
ToolTip.Tip="{loc:Tr session.reviewContinueTip}"
Command="{Binding RejectReviewCommand}" />
</Grid>
<ScrollViewer Name="LogScroll" <ScrollViewer Name="LogScroll"
VerticalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"