exiting fullscreen
Added package-lock file so running code does not contain any
vulnerabilities anymore
Snake game also dynamically changes sized when fullscreen just like the
other games do
Invert glow effect colour on Snake as it had broken logic
- Lock mobile body scroll when swipe controls are enabled
- Enhance Tetris fullscreen sizing to fill viewport and adjust 2P label glow
- Invert 2P glow styling for Tetris 2P label with secondary color glow
X-Lovable-Edit-ID: edt-c94fddac-d6de-42a5-b52b-a7c31abb2519
- Made arcade fullscreen use portal approach and render MatrixCursor inside fullscreen
- Added Pac-Man fruit bonuses spawning at center after certain dot counts
- Slowed Breakout ball speed for classic feel
- Adjusted 2P theming: swap secondary color with theme and ensure correct coloring on 2P UI
X-Lovable-Edit-ID: edt-2a44cfa1-a1f4-40ad-98df-f3491c2c6dc0
Add 3-second invulnerability for respawns in 2P Pac-Man, introduce per-player invulnerability state, timers, and visual blinking cues; fix 2P continue logic to handle post-loss respawns correctly. Also wire invulnerability into collision checks and render to reflect blinking.
X-Lovable-Edit-ID: edt-67c3618b-84a3-4349-8052-99157bfd2d9d
- Adjusted MatrixCursor detection to rely on coarse pointer input
- Restored desktop Breakout mouse controls and added mouse move handler
- Fixed Breakout 2P board mouse support and added cursor interactions
- Reworked Tetris 2P to avoid old closure issues and updated next-piece placement visuals
- Cleaned up Games page to remove 2P logos/badges
- Reworked Breakout P1/P2 rendering layout for 2P optionality and updated boards
- Updated 2P board rendering to place next pieces adjacent to players for Tetris/Snake Breakout interactions
X-Lovable-Edit-ID: edt-feec3603-55f5-4501-8f73-f89563fc0668
Made AIChat fullscreen render via a portal to document.body to avoid layout clipping, added createPortal import, and enforced body overflow hidden while fullscreen. Adjusted classNames to ensure fullscreen container covers viewport and button remains accessible.
X-Lovable-Edit-ID: edt-2d864842-2771-4813-9005-44ed92dda583
Updated UI to support a mobile control mode toggle (swipe vs buttons), added mobile control mode state, and wired all games to respect the setting. Expanded Breakout with basic power-ups (wide paddle, multi-ball, slow ball, extra life) and power-up visuals. Integrated new SettingsPanel controls and SettingsContext types to manage MobileControlMode. Adjusted several game components to conditionally render swipe or button controls accordingly.
X-Lovable-Edit-ID: edt-93ab6ad1-da63-4f9e-b089-246f5ade2e57
Enable 2-player Breakout with separate paddles and scores, adjust canvas sizing for two players, and mark Breakout as multiplayer in Games list. Includes wiring for P1/P2 controls, and updates to fullscreen behavior and UI to support 2P mode.
X-Lovable-Edit-ID: edt-2dbc8c87-6c90-4337-b064-8b1523000e1c
Update Pacman P2 controls to use Arrow keys, add back button for Snake game over overlay, remove purple styling from Snake and Tetris 2P visuals, and enable Breakout 2P mode flag cleanups. Also adjust various UI colors to non-purple and ensure mobile/swipe controls work consistently across games.
X-Lovable-Edit-ID: edt-28842f84-0d54-455c-8fba-dc9782e6394a
- Add document-level swipe handling for mobile controls and expose a reusable hook
- Update Games list to reflect 2P capabilities and remove purple styling
- Prepare groundwork for Pacman P2 arrow-key controls and 2P modes
- Align 2P visuals and remove purple accents in Tetris and Snake screens
- Enable 2P Breakout planning (structure groundwork) and unify input handling across games
X-Lovable-Edit-ID: edt-48020a37-4a06-47e7-86a2-31e8335c1811
- Implement a unified swipe controls system
- Replace on-screen D-pad with swipe zones for Tetris, Snake, Pacman
- Integrate useSwipeControls hook across all mobile game UIs
- Ensure fullscreen/mobility adjustments remain compatible
X-Lovable-Edit-ID: edt-661bbf76-b184-474d-891d-e62744dcad91
- Integrate browser fullscreen in AIChat
- Sync Escape handling with exitFullscreen
- Update UI layout for mobile readability
- Adjust fullscreen toggle to use useBrowserFullscreen
- Minor UI tweaks to memory indicator and controls
X-Lovable-Edit-ID: edt-6e746bae-41a5-43a4-b628-c56d2a857b0e
Restore and unify fullscreen across games by reintroducing useBrowserFullscreen in Tetris and aligning fullscreen behavior with other games. Ensure mobile auto-fullscreen and Escape handling work, and fix related imports and toggle logic.
X-Lovable-Edit-ID: edt-ab4b55a8-5fc4-4eb0-a4d8-1e13abc55f69
Improve Tetris UI on mobile by resizing board area, swapping pause and hard drop positions to center, and ensuring full screen visibility. Reworked D-pad layout to place hard drop in center and pause on the right, and tweaked getCellSize to reduce reserved height for better screen fit.
X-Lovable-Edit-ID: edt-baa5a5b2-2105-47a9-aa68-be9321c1ee16
Align Tetris mobile controls with Snake/Pacman by adopting a 3x3 D-pad grid, update spacing, and swap to compact padding for buttons. Replaces previous flat control row with grid-based layout and adds consistent mobile control spacing.
X-Lovable-Edit-ID: edt-91632e52-833e-44a5-b01b-9a0704bb93a2
Expose matrixEnabled in SettingsContext and SettingsPanel, persist to localStorage, and conditionally render MatrixRain across UI, mirroring CRT toggle behavior. Also adapt Index and Index-related pages to respect new setting.
X-Lovable-Edit-ID: edt-b0f8ec37-ee25-4b74-bdeb-5bed8ace73da
Restore in-app fullscreen usage for all games by removing broken portal usage, re-centering Tetris UI, and ensuring AIChat fullscreen now uses standard in-app fullscreen. Also revert Tetris file to valid non-corrupted state and reapply proper rendering for 1P/2P layouts.
X-Lovable-Edit-ID: edt-3fac9b3c-0a70-4aaf-9bfe-c412c7951e42
- Update MainLayout animation from scale to consistent fade
- Adjust AI Chat fullscreen to use in-app portal and ensure full coverage
- Align Tetris 2P layout and fullscreen behavior with 1P
- Minor UI tweaks to remove extra margins on fullscreen states
X-Lovable-Edit-ID: edt-5158d755-452c-4cfe-a3e7-c5332b2c2dc9
- Rewire AIChat fullscreen to use browser API via useBrowserFullscreen
- Sync Enter/Exit fullscreen with isFullscreen state, add Escape handling to exit
- Ensure UI truly fills viewport when fullscreen is active
- Preserve audio/visual behavior while fullscreen toggles
X-Lovable-Edit-ID: edt-be129ed3-9a30-4285-94f2-529128fbc0e4
Fix: wire AIChat to Browser fullscreen API, aligning its behavior with game pages. Import and use useBrowserFullscreen, store fullscreen state, ensure Escape exits fullscreen, and toggle via a consistent fullscreen handler (removing non-functional placeholder). This brings true fullscreen for AI chat along with consistent UX with games.
X-Lovable-Edit-ID: edt-2cec4af2-d3d6-49ef-93f8-6cb09b300ed6
Disable opening the terminal with the "/" shortcut while on game pages, by using useLocation to detect /games paths and adding isOnGamePage guard to the keydown handler. Also added location-based check to avoid triggering when navigating in-game.
X-Lovable-Edit-ID: edt-ac92b015-c278-4c1a-81eb-778385ddc5aa
Adjust Tetris layout to reduce empty space and align 2P preview with 1P, ensuring consistent game screen sizing across modes. Update container flex behavior to tighten layout and remove extra gap.
X-Lovable-Edit-ID: edt-28f420ea-db1f-429f-84e8-d26dac05573d
Align 2P Next Piece previews to match 1P styling in Tetris.tsx by restoring consistent layout, sizing, and borders for both P1 and P2 preview blocks. Updated P1 and P2 Next Piece sections to use identical structure, padding, and typography for a unified desktop UI.
X-Lovable-Edit-ID: edt-ee763eca-490c-4169-af1e-2c648707e7bf
- Increase and unify 2P preview and desktop screen sizes across games
- Adjust Tetris 2P previews and main grid cell sizes for larger visuals
- Expand Next piece previews and adjust related sizing in Tetris
- Apply responsive size tweaks to Breakout, Snake, Pacman cell sizing
- Enhance mobile/desktop balance to better utilize screen space
X-Lovable-Edit-ID: edt-a04b5a0f-5801-4bc9-8dd5-2f224df555fb