Refine critical curation table workflows

This commit is contained in:
2026-03-18 00:45:51 +01:00
parent 45873cd60c
commit d6c4ac653c
4 changed files with 646 additions and 122 deletions

View File

@@ -32,15 +32,6 @@
<span> · Variant <strong>@Model.GroupLabel</strong></span>
}
</p>
<div class="critical-editor-status-row">
<span class="critical-editor-curation-badge @(Model.IsCurated ? "is-curated" : "needs-curation")">
@(Model.IsCurated ? "Curated" : "Needs Curation")
</span>
@if (Model.SourcePageNumber is not null)
{
<span class="chip">Source page @Model.SourcePageNumber</span>
}
</div>
}
else
{
@@ -76,47 +67,6 @@
<p class="error-text critical-editor-error">@SaveErrorMessage</p>
}
<section class="critical-editor-source-grid">
<div class="critical-editor-card critical-editor-status-card">
<div class="critical-editor-section-header">
<div>
<h4>Curation State</h4>
<p class="muted">Curated cells are protected from importer content overwrites until you unmark them.</p>
</div>
</div>
<label class="critical-editor-curation-toggle">
<InputCheckbox @bind-Value="Model.IsCurated" />
<span>Mark this result curated</span>
</label>
<p class="muted critical-editor-inline-copy">
@(Model.IsCurated
? "This result will keep its current text, branches, and effects on later imports."
: "This result will be refreshed from the importer on later imports.")
</p>
</div>
<div class="critical-editor-card critical-editor-source-card">
<div class="critical-editor-section-header">
<div>
<h4>Source Cell</h4>
<p class="muted">Use the importer crop as a visual reference while curating the result.</p>
</div>
</div>
@if (!string.IsNullOrWhiteSpace(Model.SourceImageUrl))
{
<img
class="critical-editor-source-image"
src="@Model.SourceImageUrl"
alt="@BuildSourceImageAltText(Model)" />
}
else
{
<p class="muted critical-editor-inline-copy">No source image is available for this cell yet.</p>
}
</div>
</section>
<section class="critical-editor-section">
<div class="critical-editor-section-header">
<div>
@@ -133,12 +83,38 @@
@(IsReparsing ? "Generating..." : "Generate From Quick Input")
</button>
</div>
<div class="field-shell">
<label>Quick Parse Input</label>
<textarea
class="input-shell critical-editor-textarea tall"
value="@Model.QuickParseInput"
@oninput="HandleQuickParseInputChanged"></textarea>
<div class="critical-editor-quick-parse-grid">
<div class="field-shell">
<label>Quick Parse Input</label>
<textarea
class="input-shell critical-editor-textarea tall"
value="@Model.QuickParseInput"
@oninput="HandleQuickParseInputChanged"></textarea>
</div>
<div class="critical-editor-quick-parse-source">
<div class="critical-editor-quick-parse-source-header">
<label>Source Cell</label>
@if (Model.SourcePageNumber is not null)
{
<span class="chip">Page @Model.SourcePageNumber</span>
}
</div>
<div class="critical-editor-quick-parse-source-frame">
@if (!string.IsNullOrWhiteSpace(Model.SourceImageUrl))
{
<img
class="critical-editor-source-image is-inline"
src="@Model.SourceImageUrl"
alt="@BuildSourceImageAltText(Model)" />
}
else
{
<p class="muted critical-editor-inline-copy">No source image is available for this cell yet.</p>
}
</div>
</div>
</div>
<p class="muted critical-editor-advanced-hint">Example: <code>Foe brings his guard up, frightened by your display.</code> then <code>+5, 1mp</code> or <code>w/o shield: glancing blow, +15, 3s, 3np</code>.</p>
<div class="critical-editor-quick-legend">