ui/phase-21: sciences CRUD list, designer, and production-picker integration
Lights up the player-defined sciences feature: a table view with sort and filter, a designer with four percent inputs and a strict sum-equals-100 gate, and a Research-sub-row integration so the planet production picker lists the user's sciences alongside the four tech buttons. Phase 21 decisions are baked back into ui/PLAN.md (no UpdateScience on the wire — write-once via createScience + removeScience; percentages instead of fractions; sciences live under the existing Research segment). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ import { afterEach, beforeEach, describe, expect, test } from "vitest";
|
||||
import { i18n } from "../src/lib/i18n/index.svelte";
|
||||
import type {
|
||||
ReportPlanet,
|
||||
ScienceSummary,
|
||||
ShipClassSummary,
|
||||
} from "../src/api/game-state";
|
||||
import Production from "../src/lib/inspectors/planet/production.svelte";
|
||||
@@ -94,12 +95,13 @@ function shipClass(
|
||||
function mountProduction(
|
||||
planet: ReportPlanet,
|
||||
localShipClass: ShipClassSummary[] = [],
|
||||
localScience: ScienceSummary[] = [],
|
||||
) {
|
||||
const context = new Map<unknown, unknown>([
|
||||
[ORDER_DRAFT_CONTEXT_KEY, draft],
|
||||
]);
|
||||
return render(Production, {
|
||||
props: { planet, localShipClass },
|
||||
props: { planet, localShipClass, localScience },
|
||||
context,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user