1
0
Fork 0
Commit graph

67 commits

Author SHA1 Message Date
25c088aebf feat: add operations dashboard with mission briefing and stats
- Redesign homepage as authenticated operations dashboard
- Add ProfileSummary, MissionBriefing, RecentEvents, QuickStats components
- Add UpcomingMissions and ActiveCampaigns sidebar widgets
- Redirect /dashboard to / (homepage is now the dashboard)
- Show welcome screen with login link for unauthenticated users
2026-07-31 20:01:50 -04:00
98e171d088 feat: add XP level system with resolveLevel utility
- Add resolveLevel utility to compute level name, progress, and XP thresholds
- Add seedExperience script for populating experience levels
- Update XPDisplay to show level name, progress bar, and percentage to next level
- Update layout to fetch experience levels and pass resolved XP data to sidebar
2026-07-31 20:01:23 -04:00
dfbe0cb6c5 feat: add EventLedger UI component with live updates and filtering
- Client-side EventLedger component that queries game-event-logs REST API
  for a given structureId and renders a scrollable feed
- Actor name prefix with 'You' substitution for the current user, messages
  lowercased to fit sentence syntax
- Multi-select dropdown filter (shadcn DropdownMenuCheckboxItem) for event
  types with PascalCase formatting
- Narrative/GM events (system: false) styled with amber accent + book icon
- Smart refresh: smooth re-fetch without clearing existing entries, 30s
  polling interval, and instant refreshKey trigger from parent actions
2026-07-28 16:08:13 -04:00
59769076ff feat: add GameEventLogs collection and event emission infrastructure
- New game-event-logs collection with timestamp, type, message, actor,
  structure, targetCollection/targetId, and data (JSON) fields
- EventTypes constants registry for modular event category management
- emitGameEvent() utility for emitting events from server actions and hooks
- Register collection in Payload config
- Document event log system architecture in AGENTS.md
2026-07-28 16:08:04 -04:00
d88fe04b56 fix(grid): prevent split collision by including source in overlap check
Server action: remove 'other.id === entryId' exclusion from the
split overlap scan so the source item's own footprint is treated
as occupied, forcing the split to find a different position.

UI: disable the split button via findEmptySpot check when no room
exists for the split stack, preventing a failed action.
2026-07-28 14:51:56 -04:00
256e5bd68a fix: use arbitrary box-shadow for hover inset effect 2026-07-28 14:47:47 -04:00
f1871ec889 feat(ui): add hover scale and shadow to structure cards 2026-07-28 14:37:24 -04:00
a456c8a246 refactor(nav): replace Storage page with Structures list at /logistics
- Move storage overview from /logistics/storage to /logistics root
- Rename page heading and sidebar label from Storage to Structures
- Update back link on structure detail page
- Remove old /logistics/storage route
2026-07-28 14:23:04 -04:00
01ac20f44f fix(ui): add router.refresh after storage mutations, pluralize labels
ManageStorageDialog now calls router.refresh() after deposit,
withdraw, and transfer so the grid view reflects changes.
Await fetchData() before refreshing.

Resource labels now use pluralize() for correct unit display
(e.g. "1 liter" vs "3 liters").
2026-07-28 14:03:43 -04:00
9175b103c2 feat(grid): add drag-and-drop grid UI components
GridCell — droppable cell with hover/valid/invalid state
GridItem — draggable item with grip icon, visual feedback
GridToolbar — view toggle, auto-arrange, selected-item actions
InventoryGrid — DndContext wiring, R-key rotation, ResizeObserver
  cell sizing, drag overlay
StructureStorageView — client wrapper with grid/list mode toggle,
  action handlers, resource-to-GridItem mapping
2026-07-28 14:03:34 -04:00
866a470750 feat: cap Amount input max to stored amount and remaining capacity
- Withdraw/Transfer tabs: max = currently stored amount of selected resource
- Deposit tab: max = remaining capacity divided by resource massPerUnit
- Amount auto-clamps when resource selection changes
- Show 'Max: X' hint below each amount input
2026-07-27 19:34:47 -04:00
b719f25ff2 feat: use resource unitOfMeasure instead of hardcoded kg, add capacity preview to manage dialog
- Replace hardcoded 'kg' labels with resource.unitOfMeasure in ResourceList
- Rename 'Max Mass' to 'Max Capacity' on structure detail page
- Add dynamic capacity preview bar to ManageStorageDialog deposit/withdraw/transfer tabs
- Add baseline capacity display above tabs in manage dialog
- Clean up unused imports across storage components
2026-07-27 19:27:53 -04:00
12d276d44d feat: implement storage system with capacity tracking and resource management
- Rebuild /logistics/storage overview with capacity bars, filters, and structure cards
- Add /logistics/structures/[id] detail page with resource list, storage rules, upkeep
- Add server actions for deposit, withdraw, and transfer of resources
- Add ManageStorageDialog with deposit/withdraw/transfer tabs
- Add capacity bar component with color-coded utilization
- Add StorageGrid, StructureCard, StorageFilters, ResourceList, StorageRules components
- Add logistics utility functions for mass calculations
- Install shadcn dialog, select, tabs, label components
2026-07-27 19:19:48 -04:00
2f00722f30 chore: clean up unused imports in AppSidebar 2026-01-09 01:26:58 -05:00
d04630ca65 feat: add XP display component and experience collection, integrate user XP in layout 2026-01-09 01:26:40 -05:00
def59ee1fb fix: move Dashboard to frontend, pin dependencies in bun.lock to specific versions for stability 2025-12-17 15:15:07 -05:00
dd6bcd30dc feat: switch to Bun, add fonts and styling, update components and UI, add basic front-end
- Added Google Fonts import for `Geist` and `Geist Mono` to `styles.css`.
- Aligned, cleaned styling variables and properties consistently.
- Updated `seedUsers.ts` to include a developer role.
- Introduced `bun.lock` file for dependency management.
2025-12-16 23:26:52 -05:00