feat: ship templates, crew fields, and read/edit dashboard

- Add crew_req, hardpoints, cargo fields (DB migration + server + types)
- Add 10 ship templates from Appendix A (Caravel, Galleon, Sloop, etc.)
- Enhanced CreateShipModal with template picker that auto-fills all stats
- Dashboard defaults to compact read-only view; Edit button toggles to
  editable steppers/dropdowns
- New CrewSection showing crew required, hardpoints, and cargo
- Two-column form layout in create modal for better use of space
- Fix .gitignore data/ pattern to only match root-level data directory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Bas van Rossem
2026-02-19 17:16:44 +01:00
parent cbda07d793
commit 642f1f70e8
12 changed files with 524 additions and 112 deletions

View File

@@ -234,6 +234,12 @@ a:hover {
color: var(--color-text-muted);
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--spacing-sm);
}
/* Ship List */
.ship-list-header {
margin-bottom: var(--spacing-md);
@@ -315,12 +321,42 @@ button:disabled {
padding-bottom: var(--spacing-xs);
}
.dashboard-toolbar {
display: flex;
justify-content: flex-end;
margin-bottom: var(--spacing-md);
}
.stat-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--spacing-sm);
}
.stat-grid-readonly {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--spacing-xs) var(--spacing-md);
}
.stat-ro {
display: flex;
justify-content: space-between;
align-items: baseline;
padding: var(--spacing-xs) 0;
}
.stat-ro-label {
font-size: 0.85rem;
color: var(--color-text-muted);
}
.stat-ro-value {
font-size: 1rem;
font-weight: 600;
color: var(--color-text);
}
/* Stepper */
.stepper {
display: flex;