Spaces:
Running
Running
| @* Partial/EmptyState.razor - Reusable empty state for table bodies *@ | |
| <tr> | |
| <td colspan="@ColSpan" class="px-6 py-12 text-center"> | |
| <div class="mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-full bg-slate-100 text-slate-400"> | |
| <i data-lucide="@Icon" class="h-6 w-6"></i> | |
| </div> | |
| <p class="text-sm font-semibold text-slate-700">@Title</p> | |
| <p class="mx-auto mt-1 max-w-sm text-xs leading-5 text-slate-500">@Subtitle</p> | |
| </td> | |
| </tr> | |
| @code { | |
| /// <summary>Number of columns to span.</summary> | |
| [] public int ColSpan { get; set; } = 1; | |
| /// <summary>Lucide icon name to display.</summary> | |
| [] public string Icon { get; set; } = "inbox"; | |
| /// <summary>Primary empty-state message.</summary> | |
| [] public string Title { get; set; } = AppLocalization.Text("common.noDataYet", "No data yet"); | |
| /// <summary>Secondary hint text.</summary> | |
| [] public string Subtitle { get; set; } = AppLocalization.Text("common.createFirstEntry", "Create your first entry to get started."); | |
| } | |