...cleanup

This commit is contained in:
2026-06-17 23:51:28 -04:00
parent c6b5f8b205
commit ee204dde46
27 changed files with 65978 additions and 45921 deletions
+3 -2
View File
@@ -1,5 +1,4 @@
@page "/agents"
@using Chrono.Model
<PageTitle>Agents</PageTitle>
@@ -29,7 +28,8 @@
<GridColumn Field="@nameof(CardData.Name)" Title="Card" Width="220px">
<Template>
<div class="agent-name-cell">
<img src="@(((CardData)context).ImagePath)" alt="@(((CardData)context).Name)" class="agent-thumb"/>
<img src="@(((CardData)context).ImagePath)" alt="@(((CardData)context).Name)"
class="agent-thumb"/>
<span>@(((CardData)context).Name)</span>
</div>
</Template>
@@ -55,4 +55,5 @@
.ThenBy(c => c.Name)
.ToList();
}
}
+44 -15
View File
@@ -1,5 +1,4 @@
@page "/cards"
@using Chrono.Model
<PageTitle>Card Gallery</PageTitle>
@@ -27,7 +26,8 @@
<div class="filter-bar">
<div class="search-wrapper">
<i class="bi bi-search search-icon"></i>
<input @bind="search" @bind:event="oninput" class="form-control search-input" placeholder="Search cards by name or description..." />
<input @bind="search" @bind:event="oninput" class="form-control search-input"
placeholder="Search cards by name or description..."/>
@if (search.Length > 0)
{
<button class="search-clear" @onclick="ClearSearch"><i class="bi bi-x-lg"></i></button>
@@ -42,7 +42,7 @@
</select>
<select @bind="costFilter" class="form-select filter-select">
<option value="">All Costs</option>
@for (int i = 0; i <= 12; i++)
@for (var i = 0; i <= 12; i++)
{
<option value="@i">@i</option>
}
@@ -89,7 +89,7 @@
@if (filteredCards.Any())
{
<div class="card-grid">
@{ int idx = 0; }
@{ var idx = 0; }
@foreach (var card in filteredCards)
{
<div class="card-cell @(selectedCard == card ? "selected" : "")"
@@ -98,14 +98,15 @@
<div class="card-image-wrapper">
<div class="card-shimmer"></div>
<img src="@card.ImagePath" alt="@card.Name" loading="lazy"
onerror="this.src='data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22200%22 height=%22280%22><rect fill=%22%23222244%22 width=%22200%22 height=%22280%22/><text fill=%22%23686888%22 font-size=%2214%22 x=%22100%22 y=%22140%22 text-anchor=%22middle%22 dominant-baseline=%22middle%22>No Image</text></svg>'" />
onerror="this.src='data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22200%22 height=%22280%22><rect fill=%22%23222244%22 width=%22200%22 height=%22280%22/><text fill=%22%23686888%22 font-size=%2214%22 x=%22100%22 y=%22140%22 text-anchor=%22middle%22 dominant-baseline=%22middle%22>No Image</text></svg>'"/>
@if (card.Cost.HasValue)
{
<div class="card-cost-badge">@card.Cost</div>
}
@if (card.HasImmortalize)
{
<div class="card-immortalize-badge" title="Immortalizes"><i class="bi bi-star-fill"></i></div>
<div class="card-immortalize-badge" title="Immortalizes"><i class="bi bi-star-fill"></i>
</div>
}
</div>
<div class="card-label">
@@ -134,13 +135,14 @@
<button class="detail-close" @onclick="CloseDetail"><i class="bi bi-x-lg"></i></button>
<div class="detail-layout">
<div class="detail-image">
<img src="@selectedCard.ImagePath" alt="@selectedCard.Name" />
<img src="@selectedCard.ImagePath" alt="@selectedCard.Name"/>
</div>
<div class="detail-info">
<div class="detail-header">
<h2>@selectedCard.Name</h2>
<div class="detail-meta">
<span class="meta-badge category @selectedCard.Category?.ToLowerInvariant()">@selectedCard.Category</span>
<span
class="meta-badge category @selectedCard.Category?.ToLowerInvariant()">@selectedCard.Category</span>
@if (selectedCard.Cost.HasValue)
{
<span class="meta-badge cost"><i class="bi bi-lightning-fill"></i> @selectedCard.Cost</span>
@@ -249,14 +251,40 @@
);
}
private void SetCategory(string cat) => categoryFilter = categoryFilter == cat ? "" : cat;
private void ClearCategoryFilter() => categoryFilter = "";
private void ClearFactionFilter() => factionFilter = "";
private void ClearCostFilter() => costFilter = "";
private void ClearSearch() => search = "";
private void SetCategory(string cat)
{
categoryFilter = categoryFilter == cat ? "" : cat;
}
private void SelectCard(CardData card) => selectedCard = card;
private void CloseDetail() => selectedCard = null;
private void ClearCategoryFilter()
{
categoryFilter = "";
}
private void ClearFactionFilter()
{
factionFilter = "";
}
private void ClearCostFilter()
{
costFilter = "";
}
private void ClearSearch()
{
search = "";
}
private void SelectCard(CardData card)
{
selectedCard = card;
}
private void CloseDetail()
{
selectedCard = null;
}
private void ClearFilters()
{
@@ -265,4 +293,5 @@
factionFilter = "";
costFilter = "";
}
}
+14 -5
View File
@@ -269,8 +269,12 @@
}
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
.card-image-wrapper img {
@@ -404,8 +408,12 @@
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.card-detail {
@@ -511,7 +519,8 @@
border: 1px solid var(--border);
}
.meta-badge.category { }
.meta-badge.category {
}
.meta-badge.category.agent {
background: rgba(79, 195, 247, 0.15);