<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:ClaudeDo.Ui.ViewModels.Modals"
        x:Class="ClaudeDo.Ui.Views.Modals.MergeModalView"
        x:DataType="vm:MergeModalViewModel"
        Title="Merge worktree"
        Width="560" Height="460"
        CanResize="False"
        WindowDecorations="None"
        ExtendClientAreaToDecorationsHint="True"
        WindowStartupLocation="CenterOwner"
        Background="{DynamicResource SurfaceBrush}">

  <Window.KeyBindings>
    <KeyBinding Gesture="Escape" Command="{Binding CancelCommand}"/>
  </Window.KeyBindings>

  <Window.Styles>
    <Style Selector="TextBlock.field-label">
      <Setter Property="FontSize" Value="11"/>
      <Setter Property="Foreground" Value="{DynamicResource TextDimBrush}"/>
      <Setter Property="Margin" Value="0,0,0,4"/>
    </Style>
    <Style Selector="Button.primary">
      <Setter Property="Background" Value="{DynamicResource AccentBrush}"/>
      <Setter Property="Foreground" Value="{DynamicResource DeepBrush}"/>
      <Setter Property="FontWeight" Value="SemiBold"/>
    </Style>
  </Window.Styles>

  <Border Background="{DynamicResource SurfaceBrush}"
          BorderBrush="{DynamicResource LineBrush}"
          BorderThickness="1">
    <Grid RowDefinitions="36,*,52">

      <!-- Title bar -->
      <Border Grid.Row="0"
              x:Name="TitleBar"
              Background="{DynamicResource DeepBrush}"
              BorderBrush="{DynamicResource LineBrush}"
              BorderThickness="0,0,0,1"
              PointerPressed="TitleBar_PointerPressed">
        <Grid ColumnDefinitions="*,Auto" Margin="14,0">
          <TextBlock Text="MERGE WORKTREE"
                     FontFamily="{DynamicResource MonoFont}"
                     FontSize="11"
                     LetterSpacing="1.4"
                     Foreground="{DynamicResource TextBrush}"
                     VerticalAlignment="Center"/>
          <Button Grid.Column="1"
                  Classes="icon-btn"
                  Content="✕"
                  FontSize="12"
                  Command="{Binding CancelCommand}"
                  VerticalAlignment="Center"/>
        </Grid>
      </Border>

      <!-- Body -->
      <ScrollViewer Grid.Row="1" Padding="20,16">
        <StackPanel Spacing="12">

          <TextBlock Text="{Binding TaskTitle, StringFormat='Merging: {0}'}"
                     FontWeight="SemiBold"
                     Foreground="{DynamicResource TextBrush}" />

          <StackPanel Spacing="4">
            <TextBlock Classes="field-label" Text="Target branch"/>
            <ComboBox ItemsSource="{Binding Branches}"
                      SelectedItem="{Binding SelectedBranch}"
                      HorizontalAlignment="Stretch"
                      IsEnabled="{Binding !IsBusy}" />
          </StackPanel>

          <CheckBox Content="Remove worktree after merge"
                    IsChecked="{Binding RemoveWorktree}"
                    IsEnabled="{Binding !IsBusy}" />

          <StackPanel Spacing="4">
            <TextBlock Classes="field-label" Text="Commit message"/>
            <TextBox Text="{Binding CommitMessage}"
                     AcceptsReturn="True"
                     TextWrapping="Wrap"
                     Height="70"
                     IsEnabled="{Binding !IsBusy}" />
          </StackPanel>

          <TextBlock Text="{Binding ErrorMessage}"
                     Foreground="{DynamicResource BloodBrush}"
                     TextWrapping="Wrap"
                     IsVisible="{Binding ErrorMessage, Converter={x:Static ObjectConverters.IsNotNull}}" />

          <Border BorderBrush="{DynamicResource BloodBrush}"
                  BorderThickness="1"
                  CornerRadius="6"
                  Padding="12,10"
                  IsVisible="{Binding HasConflict}">
            <StackPanel Spacing="4">
              <TextBlock Text="Conflicted files:"
                         FontWeight="SemiBold"
                         Foreground="{DynamicResource TextBrush}" />
              <ItemsControl ItemsSource="{Binding ConflictFiles}">
                <ItemsControl.ItemTemplate>
                  <DataTemplate>
                    <TextBlock Text="{Binding}"
                               FontFamily="{DynamicResource MonoFont}"
                               FontSize="11"
                               Foreground="{DynamicResource TextDimBrush}" />
                  </DataTemplate>
                </ItemsControl.ItemTemplate>
              </ItemsControl>
            </StackPanel>
          </Border>

          <TextBlock Text="{Binding SuccessMessage}"
                     Foreground="{DynamicResource MossBrightBrush}"
                     IsVisible="{Binding SuccessMessage, Converter={x:Static ObjectConverters.IsNotNull}}" />
        </StackPanel>
      </ScrollViewer>

      <!-- Footer -->
      <Border Grid.Row="2"
              Background="{DynamicResource DeepBrush}"
              BorderBrush="{DynamicResource LineBrush}"
              BorderThickness="0,1,0,0">
        <StackPanel Orientation="Horizontal" Spacing="8"
                    HorizontalAlignment="Right" VerticalAlignment="Center"
                    Margin="16,0">
          <Button Content="Cancel" Command="{Binding CancelCommand}" MinWidth="90"/>
          <Button Content="Merge" Classes="primary"
                  Command="{Binding SubmitCommand}"
                  IsDefault="True" MinWidth="90"/>
        </StackPanel>
      </Border>

    </Grid>
  </Border>
</Window>
