@* EN: Reusable auth card wrapper — centered form container with icon, title, subtitle. VI: Card xác thực tái sử dụng — container form giữa trang với icon, tiêu đề, mô tả. *@
@if (BackLink != null) { @BackLinkText } @if (ShowHeader) {
@if (Icon != null) {
} @if (RoleBadge != null) { @RoleBadge } @if (Title != null) {

@Title

} @if (Subtitle != null) {

@Subtitle

} @if (SecurityHint != null) {
@SecurityHint
}
} @ChildContent @if (FooterContent != null) { }
@code { /// /// EN: Card title text. /// VI: Tiêu đề card. /// [Parameter] public string? Title { get; set; } /// /// EN: Subtitle/description text shown below the title. /// VI: Mô tả hiển thị dưới tiêu đề. /// [Parameter] public string? Subtitle { get; set; } /// /// EN: Lucide icon name shown above the title. /// VI: Tên icon Lucide hiển thị trên tiêu đề. /// [Parameter] public string? Icon { get; set; } /// /// EN: CSS class for the icon (e.g., auth-icon--blue, auth-icon--orange). /// VI: CSS class cho icon (VD: auth-icon--blue, auth-icon--orange). /// [Parameter] public string IconClass { get; set; } = "auth-icon--blue"; /// /// EN: Role badge text (e.g., "QUẢN TRỊ", "NHÂN VIÊN"). /// VI: Text badge vai trò (VD: "QUẢN TRỊ", "NHÂN VIÊN"). /// [Parameter] public string? RoleBadge { get; set; } /// /// EN: CSS class for the role badge. /// VI: CSS class cho role badge. /// [Parameter] public string RoleBadgeClass { get; set; } = "auth-role-badge--blue"; /// /// EN: Security hint message (e.g., "Khu vực bảo mật cao"). /// VI: Thông báo bảo mật. /// [Parameter] public string? SecurityHint { get; set; } /// /// EN: Icon for the security hint. /// VI: Icon cho thông báo bảo mật. /// [Parameter] public string SecurityHintIcon { get; set; } = "shield-alert"; /// /// EN: CSS class for the security hint. /// VI: CSS class cho thông báo bảo mật. /// [Parameter] public string SecurityHintClass { get; set; } = "auth-security-hint--warning"; /// /// EN: Whether to show the header section. /// VI: Có hiển thị phần header không. /// [Parameter] public bool ShowHeader { get; set; } = true; /// /// EN: Use compact gap (28px vs 32px). /// VI: Dùng gap nhỏ hơn (28px thay vì 32px). /// [Parameter] public bool Compact { get; set; } /// /// EN: Transparent background (used inside split panels). /// VI: Nền trong suốt (dùng trong split panel). /// [Parameter] public bool Transparent { get; set; } /// /// EN: Back link URL. /// VI: URL link quay lại. /// [Parameter] public string? BackLink { get; set; } /// /// EN: Back link text. /// VI: Text link quay lại. /// [Parameter] public string BackLinkText { get; set; } = "Quay lại đăng nhập"; /// /// EN: Additional CSS classes. /// VI: CSS class bổ sung. /// [Parameter] public string? CssClass { get; set; } /// /// EN: Main content slot. /// VI: Slot nội dung chính. /// [Parameter] public RenderFragment? ChildContent { get; set; } /// /// EN: Footer content slot. /// VI: Slot nội dung footer. /// [Parameter] public RenderFragment? FooterContent { get; set; } }