- ChatWindow 권한 팝업 섹션 헤더/본문 간격과 폰트를 축소해 카드 밀도를 정돈 - 권한 요약/예외/최근 거부 카드 및 빠른 액션 버튼의 패딩·폰트·마진을 압축 - 핵심 권한 모드 행(아이콘/제목/설명/체크) 크기를 줄여 slash 팝업과 시각 리듬 통일 - README.md, docs/DEVELOPMENT.md에 2026-04-04 14:16(KST) 기준 이력 반영 - 검증: dotnet build 0경고/0오류, 관련 필터 테스트 82건 통과
This commit is contained in:
@@ -1610,7 +1610,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
var body = new Border
|
||||
{
|
||||
Margin = new Thickness(0, 6, 0, 0),
|
||||
Margin = new Thickness(0, 5, 0, 0),
|
||||
Visibility = expanded ? Visibility.Visible : Visibility.Collapsed,
|
||||
Child = content,
|
||||
};
|
||||
@@ -1618,7 +1618,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = expanded ? "\uE70D" : "\uE76C",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 11,
|
||||
FontSize = 10.5,
|
||||
Foreground = secondaryText,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
};
|
||||
@@ -1631,7 +1631,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = icon,
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 11,
|
||||
FontSize = 10.5,
|
||||
Foreground = BrushFromHex(accentHex),
|
||||
Margin = new Thickness(0, 0, 6, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -1639,7 +1639,7 @@ public partial class ChatWindow : Window
|
||||
var titleBlock = new TextBlock
|
||||
{
|
||||
Text = title,
|
||||
FontSize = 10,
|
||||
FontSize = 9.5,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = primaryText,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -1653,7 +1653,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Background = Brushes.Transparent,
|
||||
CornerRadius = new CornerRadius(6),
|
||||
Padding = new Thickness(8, 5, 8, 5),
|
||||
Padding = new Thickness(7, 4, 7, 4),
|
||||
Cursor = Cursors.Hand,
|
||||
Focusable = true,
|
||||
Child = headerGrid,
|
||||
@@ -1685,7 +1685,7 @@ public partial class ChatWindow : Window
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(8),
|
||||
Padding = new Thickness(2),
|
||||
Margin = new Thickness(0, 0, 0, 6),
|
||||
Margin = new Thickness(0, 0, 0, 5),
|
||||
Child = new StackPanel
|
||||
{
|
||||
Children =
|
||||
@@ -1711,8 +1711,8 @@ public partial class ChatWindow : Window
|
||||
: BrushFromHex("#C7D2FE"),
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(8),
|
||||
Padding = new Thickness(11, 9, 11, 9),
|
||||
Margin = new Thickness(0, 0, 0, 6),
|
||||
Padding = new Thickness(9, 7, 9, 7),
|
||||
Margin = new Thickness(0, 0, 0, 5),
|
||||
Child = new StackPanel
|
||||
{
|
||||
Children =
|
||||
@@ -1720,7 +1720,7 @@ public partial class ChatWindow : Window
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"현재 권한 모드 · {PermissionModeCatalog.ToDisplayLabel(summary.EffectiveMode)}",
|
||||
FontSize = 12,
|
||||
FontSize = 11.5,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = string.Equals(summary.RiskLevel, "high", StringComparison.OrdinalIgnoreCase)
|
||||
? BrushFromHex("#C2410C")
|
||||
@@ -1731,11 +1731,11 @@ public partial class ChatWindow : Window
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"{summary.Description} 기본값 {PermissionModeCatalog.ToDisplayLabel(summary.DefaultMode)} · 예외 {summary.OverrideCount}개",
|
||||
FontSize = 10,
|
||||
Margin = new Thickness(0, 4, 0, 0),
|
||||
FontSize = 9.5,
|
||||
Margin = new Thickness(0, 3, 0, 0),
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
LineHeight = 15,
|
||||
LineHeight = 14,
|
||||
MaxWidth = 250,
|
||||
}
|
||||
}
|
||||
@@ -1747,7 +1747,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
var overrideWrap = new WrapPanel
|
||||
{
|
||||
Margin = new Thickness(0, 0, 0, 6),
|
||||
Margin = new Thickness(0, 0, 0, 5),
|
||||
};
|
||||
|
||||
foreach (var overrideEntry in summary.TopOverrides)
|
||||
@@ -1758,8 +1758,8 @@ public partial class ChatWindow : Window
|
||||
BorderBrush = BrushFromHex("#E2E8F0"),
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(12),
|
||||
Padding = new Thickness(8, 3, 8, 3),
|
||||
Margin = new Thickness(0, 0, 5, 5),
|
||||
Padding = new Thickness(7, 2.5, 7, 2.5),
|
||||
Margin = new Thickness(0, 0, 4, 4),
|
||||
Child = new StackPanel
|
||||
{
|
||||
Orientation = Orientation.Horizontal,
|
||||
@@ -1769,7 +1769,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = "\uE72E",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 10,
|
||||
FontSize = 9.5,
|
||||
Foreground = BrushFromHex("#2563EB"),
|
||||
Margin = new Thickness(0, 0, 4, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -1777,7 +1777,7 @@ public partial class ChatWindow : Window
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"{overrideEntry.Key} · {PermissionModeCatalog.ToDisplayLabel(overrideEntry.Value)}",
|
||||
FontSize = 10,
|
||||
FontSize = 9.5,
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.DimGray,
|
||||
}
|
||||
}
|
||||
@@ -1793,7 +1793,7 @@ public partial class ChatWindow : Window
|
||||
new TextBlock
|
||||
{
|
||||
Text = "도구별 예외",
|
||||
FontSize = 10.5,
|
||||
FontSize = 10,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray,
|
||||
Margin = new Thickness(2, 0, 0, 3),
|
||||
@@ -1818,7 +1818,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = "\uEA39",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 11,
|
||||
FontSize = 10.5,
|
||||
Foreground = BrushFromHex("#991B1B"),
|
||||
Margin = new Thickness(0, 0, 6, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -1826,7 +1826,7 @@ public partial class ChatWindow : Window
|
||||
new TextBlock
|
||||
{
|
||||
Text = "최근 권한 거부",
|
||||
FontSize = 11,
|
||||
FontSize = 10.5,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = BrushFromHex("#991B1B"),
|
||||
}
|
||||
@@ -1835,11 +1835,11 @@ public partial class ChatWindow : Window
|
||||
deniedStack.Children.Add(new TextBlock
|
||||
{
|
||||
Text = _appState.FormatPermissionEventLine(latestDenied),
|
||||
FontSize = 10.5,
|
||||
FontSize = 10,
|
||||
Foreground = BrushFromHex("#991B1B"),
|
||||
Margin = new Thickness(0, 0, 0, 0),
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
LineHeight = 14.5,
|
||||
LineHeight = 14,
|
||||
MaxWidth = 250,
|
||||
});
|
||||
|
||||
@@ -1848,14 +1848,14 @@ public partial class ChatWindow : Window
|
||||
deniedStack.Children.Add(new TextBlock
|
||||
{
|
||||
Text = $"도구 {latestDenied.ToolName}에 바로 적용",
|
||||
FontSize = 10,
|
||||
Margin = new Thickness(0, 5, 0, 0),
|
||||
FontSize = 9.5,
|
||||
Margin = new Thickness(0, 4, 0, 0),
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray,
|
||||
});
|
||||
|
||||
var actionRow = new WrapPanel
|
||||
{
|
||||
Margin = new Thickness(0, 8, 0, 0),
|
||||
Margin = new Thickness(0, 6, 0, 0),
|
||||
};
|
||||
|
||||
Button CreateActionButton(string text, string backgroundHex, string foregroundHex, Action onClick)
|
||||
@@ -1867,11 +1867,11 @@ public partial class ChatWindow : Window
|
||||
Foreground = BrushFromHex(foregroundHex),
|
||||
BorderBrush = BrushFromHex(backgroundHex),
|
||||
BorderThickness = new Thickness(1),
|
||||
Padding = new Thickness(9, 4, 9, 4),
|
||||
Margin = new Thickness(0, 0, 5, 5),
|
||||
FontSize = 10,
|
||||
Padding = new Thickness(8, 3, 8, 3),
|
||||
Margin = new Thickness(0, 0, 4, 4),
|
||||
FontSize = 9.5,
|
||||
Cursor = Cursors.Hand,
|
||||
MinWidth = 58,
|
||||
MinWidth = 54,
|
||||
};
|
||||
ApplyHoverScaleAnimation(button, 1.02);
|
||||
button.Click += (_, _) =>
|
||||
@@ -1895,8 +1895,8 @@ public partial class ChatWindow : Window
|
||||
BorderBrush = BrushFromHex("#FECACA"),
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(8),
|
||||
Padding = new Thickness(11, 8, 11, 8),
|
||||
Margin = new Thickness(0, 0, 0, 7),
|
||||
Padding = new Thickness(9, 7, 9, 7),
|
||||
Margin = new Thickness(0, 0, 0, 5),
|
||||
Child = deniedStack,
|
||||
};
|
||||
}
|
||||
@@ -1926,8 +1926,8 @@ public partial class ChatWindow : Window
|
||||
BorderBrush = isActive ? BrushFromHex("#C7D2FE") : Brushes.Transparent,
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(8),
|
||||
Padding = new Thickness(10, 6, 10, 6),
|
||||
Margin = new Thickness(0, 2, 0, 2),
|
||||
Padding = new Thickness(9, 5, 9, 5),
|
||||
Margin = new Thickness(0, 1.5, 0, 1.5),
|
||||
Cursor = Cursors.Hand,
|
||||
Focusable = true,
|
||||
};
|
||||
@@ -1942,7 +1942,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = item.Icon,
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 13.5,
|
||||
FontSize = 13,
|
||||
Foreground = BrushFromHex(item.ColorHex),
|
||||
Margin = new Thickness(2, 0, 9, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -1952,18 +1952,18 @@ public partial class ChatWindow : Window
|
||||
textStack.Children.Add(new TextBlock
|
||||
{
|
||||
Text = item.Title,
|
||||
FontSize = 11.5,
|
||||
FontSize = 11,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = TryFindResource("PrimaryText") as Brush ?? Brushes.White,
|
||||
});
|
||||
textStack.Children.Add(new TextBlock
|
||||
{
|
||||
Text = item.Description,
|
||||
FontSize = 10,
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
FontSize = 9.5,
|
||||
Margin = new Thickness(0, 1.5, 0, 0),
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
LineHeight = 14,
|
||||
LineHeight = 13.5,
|
||||
MaxWidth = 230,
|
||||
});
|
||||
Grid.SetColumn(textStack, 1);
|
||||
@@ -1973,7 +1973,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = isActive ? "\uE73E" : "",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 12,
|
||||
FontSize = 11.5,
|
||||
FontWeight = FontWeights.Bold,
|
||||
Foreground = BrushFromHex("#2563EB"),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -2022,7 +2022,7 @@ public partial class ChatWindow : Window
|
||||
PermissionItems.Children.Add(new TextBlock
|
||||
{
|
||||
Text = "핵심 권한 모드",
|
||||
FontSize = 10.5,
|
||||
FontSize = 10,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = secondaryText,
|
||||
Margin = new Thickness(2, 0, 0, 4),
|
||||
|
||||
Reference in New Issue
Block a user