Vibe Google Analytics

This commit is contained in:
2026-06-25 18:55:04 -04:00
parent fdf8e754f5
commit 73ae3eac53
86 changed files with 53925 additions and 46039 deletions
+2 -1
View File
@@ -4,7 +4,8 @@
<PageTitle>Chrono CCG - Agents</PageTitle>
<HeadContent>
<meta name="description" content="View and compare all Chrono CCG agents. Analyze stats, factions, and efficiency to build the perfect deck." />
<meta name="description"
content="View and compare all Chrono CCG agents. Analyze stats, factions, and efficiency to build the perfect deck."/>
</HeadContent>
<div class="agents-page">
+14 -11
View File
@@ -5,7 +5,8 @@
<PageTitle>Chrono CCG - @(deck?.Name ?? "Deck Details")</PageTitle>
<HeadContent>
<meta name="description" content="@(deck != null ? $"View details for the {deck.Name} deck. {deck.Cards.Count} cards, {deck.Factions.Count} factions." : "Deck details and card list.")" />
<meta name="description"
content="@(deck != null ? $"View details for the {deck.Name} deck. {deck.Cards.Count} cards, {deck.Factions.Count} factions." : "Deck details and card list.")"/>
</HeadContent>
<div class="deck-detail-page">
@@ -23,7 +24,8 @@
<article class="deck-article">
<header class="deck-header">
<h1>@deck.Name</h1>
<b>Deck Code:</b> <pre>@deck.DeckCode</pre>
<b>Deck Code:</b>
<pre>@deck.DeckCode</pre>
@if (deck.Factions.Count > 0)
{
<div class="deck-factions">
@@ -44,14 +46,14 @@
}
</div>
<ManaCurve Distribution="GetManaDistribution()" MaxCostLabel="10" />
<ManaCurve Distribution="GetManaDistribution()" MaxCostLabel="10"/>
</header>
@if (deck.Keycards.Count > 0)
{
<section class="deck-section">
<h2><i class="bi bi-star-fill" style="color: var(--gold);"></i> Keycards</h2>
<CardGrid Cards="deck.Keycards" OnSelectCard="SelectCard" />
<CardGrid Cards="deck.Keycards" OnSelectCard="SelectCard"/>
</section>
}
@@ -59,13 +61,13 @@
{
<section class="deck-section">
<h2><i class="bi bi-shuffle"></i> Divers</h2>
<CardGrid Cards="deck.Divers" OnSelectCard="SelectCard" />
<CardGrid Cards="deck.Divers" OnSelectCard="SelectCard"/>
</section>
}
<section class="deck-section">
<h2><i class="bi bi-collection-fill"></i> Cards</h2>
<CardGrid Cards="deck.Cards" OnSelectCard="SelectCard" />
<CardGrid Cards="deck.Cards" OnSelectCard="SelectCard"/>
</section>
@if (deck.Description != null)
@@ -81,10 +83,10 @@
}
</div>
<CardDetailModal Card="selectedCard"
OnClose="CloseDetail"
OnSelectCard="SelectCard"
DescriptionRenderer="@(desc => CardRenderer.RenderDescription(desc, SelectCard))" />
<CardDetailModal Card="selectedCard"
OnClose="CloseDetail"
OnSelectCard="SelectCard"
DescriptionRenderer="@(desc => CardRenderer.RenderDescription(desc, SelectCard))"/>
@code {
[Parameter] public string Name { get; set; } = "";
@@ -124,7 +126,7 @@
{
if (deck == null) return [];
var counts = new Dictionary<int, int>();
for (int i = 0; i <= 10; i++) counts[i] = 0;
for (var i = 0; i <= 10; i++) counts[i] = 0;
foreach (var cardName in deck.Cards)
{
@@ -139,4 +141,5 @@
return counts.OrderBy(x => x.Key).Select(x => (x.Key, x.Value)).ToList();
}
}
+11 -9
View File
@@ -4,7 +4,8 @@
<PageTitle>Chrono CCG - Decks</PageTitle>
<HeadContent>
<meta name="description" content="Explore community and official Chrono CCG decks. Find the best strategies and card combinations." />
<meta name="description"
content="Explore community and official Chrono CCG decks. Find the best strategies and card combinations."/>
</HeadContent>
<div class="decks-page">
@@ -13,7 +14,8 @@
<div class="decks-header-row">
<p class="text-secondary">@decks.Count deck@(decks.Count != 1 ? "s" : "")</p>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="showPrecons" @bind="showPrecons" @bind:after="RefreshDecks">
<input class="form-check-input" type="checkbox" id="showPrecons" @bind="showPrecons"
@bind:after="RefreshDecks">
<label class="form-check-label" for="showPrecons">Show Precons</label>
</div>
</div>
@@ -34,11 +36,11 @@
}
</div>
}
<div class="deck-card-factions">
<span class="faction-badge">@deck.DeckType</span>
</div>
<div class="deck-card-meta">
<span>@deck.Cards.Distinct().Count() unique, @deck.Cards.Count total</span>
@if (deck.Keycards.Count > 0)
@@ -70,7 +72,7 @@
@code {
private List<DeckData> decks = [];
private bool showPrecons = false;
private bool showPrecons;
protected override void OnInitialized()
{
@@ -81,10 +83,10 @@
{
decks = DeckDatabase.Decks
.Where(d => d.IsVisible)
.Where(d =>
showPrecons
? d.DeckType is "precon" or "store" :
d.DeckType is "custom")
.Where(d =>
showPrecons
? d.DeckType is "precon" or "store"
: d.DeckType is "custom")
.ToList();
}
+24 -18
View File
@@ -13,17 +13,19 @@
<aside class="docs-sidebar">
<div class="search-box">
<i class="bi bi-search"></i>
<input type="text" placeholder="Search docs..." @bind="searchQuery" @bind:event="oninput" />
<input type="text" placeholder="Search docs..." @bind="searchQuery" @bind:event="oninput"/>
</div>
<div class="category-list">
<div class="category-item @(selectedCategory == null ? "active" : "")" @onclick="() => SelectCategory(null)">
<div class="category-item @(selectedCategory == null ? "active" : "")"
@onclick="() => SelectCategory(null)">
All Pages
</div>
@foreach (var category in categories)
{
var cat = category;
<div class="category-item @(selectedCategory == cat ? "active" : "")" @onclick="() => SelectCategory(cat)">
<div class="category-item @(selectedCategory == cat ? "active" : "")"
@onclick="() => SelectCategory(cat)">
@cat
</div>
}
@@ -134,20 +136,24 @@
return doc.Frontmatter.TryGetValue(key, out var val) && !string.IsNullOrWhiteSpace(val) ? val : null;
}
private static string GetLabel(string key) => key switch
private static string GetLabel(string key)
{
"category" => "Category",
"description" => "Description",
"essencePrice" => "Essence Price",
"crytalPrice" => "Crystal Price",
"coreChargesPrice" => "Core Charges Price",
"pricePerPack" => "Price per Pack",
"codeCharges" => "Code Charges",
"coreCharges" => "Core Charges",
"currency" => "Currency",
"faction" => "Faction",
"exp" => "EXP Reward",
"see" => "See Also",
_ => string.Concat(key.Select((c, i) => i > 0 && char.IsUpper(c) ? " " + c : c.ToString())),
};
return key switch
{
"category" => "Category",
"description" => "Description",
"essencePrice" => "Essence Price",
"crytalPrice" => "Crystal Price",
"coreChargesPrice" => "Core Charges Price",
"pricePerPack" => "Price per Pack",
"codeCharges" => "Code Charges",
"coreCharges" => "Core Charges",
"currency" => "Currency",
"faction" => "Faction",
"exp" => "EXP Reward",
"see" => "See Also",
_ => string.Concat(key.Select((c, i) => i > 0 && char.IsUpper(c) ? " " + c : c.ToString()))
};
}
}