orbit/js/ui
Brian Fertig 75767dc5a5 Add ship state machine and let movement break the mining sequence
- Introduce `Ship.state` ('normal' | 'mining') with `setState()` and an
  `onStateChange` callback so the scene can react to state exits.
- Any player-initiated movement (world click or compass autopilot) now
  drops the ship back to 'normal', which ends the mining sequence via the
  scene's handler; Mining.update() enforces the gate as a belt-and-braces.
- Rename `Mining.isLocked` to `isActive` and update GameScene click logic:
  clicks no longer hold during extension — they move the ship and abort the
  arm's reach.
- Tighten the popup-button swallow window from 300 ms to 20 ms and add a
  `containsScreen()` hit-test so only the exact button press is consumed,
  not subsequent deliberate clicks on the panel area.
- Expand the headless mining test to cover the new movement-abort contract:
  world click mid-extension breaks the arm, autopilot retracts the beam,
  and ship state transitions are asserted at every stage.
2026-09-04 18:06:33 -06:00
..
ActionBar.js
ConfirmOverlay.js Fix menu sub-bar, save panel, and confirm dialog input and z-order bugs 2026-09-04 14:31:34 -06:00
CyberShape.js
DiscoveryCompass.js
GlitchText.js
MenuButton.js Add save/load system with 10-slot localStorage bank and UI 2026-09-04 13:09:08 -06:00
MenuSubBar.js Fix menu sub-bar, save panel, and confirm dialog input and z-order bugs 2026-09-04 14:31:34 -06:00
MiningPopup.js Add ship state machine and let movement break the mining sequence 2026-09-04 18:06:33 -06:00
SavePanel.js Fix SavePanel button overflow, header decode freeze, and card lock state 2026-09-04 14:48:36 -06:00
SlotCard.js Add save/load system with 10-slot localStorage bank and UI 2026-09-04 13:09:08 -06:00
Toast.js Add save/load system with 10-slot localStorage bank and UI 2026-09-04 13:09:08 -06:00