Skip to content

Chore/cleanup save trim css ux#19

Merged
JLeshnick merged 4 commits into
mainfrom
chore/cleanup-save-trim-css-ux
Jul 24, 2026
Merged

Chore/cleanup save trim css ux#19
JLeshnick merged 4 commits into
mainfrom
chore/cleanup-save-trim-css-ux

Conversation

@JLeshnick

@JLeshnick JLeshnick commented Jul 24, 2026

Copy link
Copy Markdown
Owner

refactor: remove dead save-session concept and dead-code cleanup
a2e3240

  • Delete SaveSlot interface (types.ts) — was never imported or used
  • Remove Ctrl+S autosave-reminder handler (App.tsx) and its shortcut entry (SettingsDialog)
  • Fix stale SettingsDialog copy referencing non-existent '.json saved game files'
  • Correct docs (CLAUDE.md, CONTEXT.md, ARCHITECTURE.md) to remove labyrinth_saved_slots_list / named-slots claims; describe actual single-slot autosave
  • Remove unused _atlasUrl param from scanBoard() (boardScanner.ts) and update call site (BoardScanModal.tsx)
  • Replace undefined stone-850/stone-750 shades with valid stone-700/stone-800; drop inconsistent dark: variant prefixes (app uses [data-theme], not Tailwind dark:)

feat: UX improvements — Stats button, tablet toolbar, split timer, tu…
4f11c61
…rn-model guide

  • AppHeader: lower desktop action toolbar breakpoint from lg: to md: so tablets
    (iPad, small laptops) no longer lose undo/redo/rotate/mute controls
  • AppHeader: Stats is now reachable on desktop — adds a BarChart2 button in the
    game-mode toolbar wired to onToggleStats (was previously aliased unused _onToggleStats;
    the only working open path was the mobile compact panel Gauge button)
  • AppHeader: split timer control out of the overloaded Play/pause/resume step-nav
    button — Play Game now only starts/ends the game; timer shows as a separate pill
    with its own pause/resume toggle and Pause/Clock icon
  • AppHeader: activate showStats prop to highlight the Stats button when open
  • SetupPanel: swap RotateCw → RefreshCcw for Reset Layout to disambiguate from the
    Rotate Board button in the header (RotateCw now unambiguously means board rotation)
  • WelcomeGuide: add step 4 explaining the 2-phase slide→move turn model and how to
    set a custom target by tapping any board tile

feat: solver improvements — depth control, 1-move targets on by defau…
13634de
…lt, full sequence display

  • Default showOneMoveTargets to true so reachable-in-one-move targets are visible
    immediately without needing to toggle them on
  • Replace hardcoded SOLVER_MAX_TURNS=3 constant with state (solverDepth) initialized
    from localStorage (labyrinth_solver_depth); defaults to 3 and re-triggers the solver
    effect when changed so results update instantly
  • Add solver depth selector (1–5) in SettingsDialog Experimental section, wired through
    AppHeaderProps → AppHeader → SettingsDialog; shows (default)/(faster)/(slower) hint
  • Remove multi-card sequence truncation in SolverPanel: show full card order with → arrows
    instead of slicing at 3 with an ellipsis

fix: restore timer inside Game button, rename Play Game -> Game
4bcf0d3
Re-integrates the stopwatch display and pause/resume behavior back into
the step-nav button (matching the original design). Clicking the active
Game button toggles the timer; clicking when the game hasn't started
begins the game. Also renames the button label from "Play Game" to
"Game" for brevity.

Joshua Leshnick and others added 4 commits July 24, 2026 16:26
- Delete SaveSlot interface (types.ts) — was never imported or used
- Remove Ctrl+S autosave-reminder handler (App.tsx) and its shortcut entry (SettingsDialog)
- Fix stale SettingsDialog copy referencing non-existent '.json saved game files'
- Correct docs (CLAUDE.md, CONTEXT.md, ARCHITECTURE.md) to remove labyrinth_saved_slots_list / named-slots claims; describe actual single-slot autosave
- Remove unused _atlasUrl param from scanBoard() (boardScanner.ts) and update call site (BoardScanModal.tsx)
- Replace undefined stone-850/stone-750 shades with valid stone-700/stone-800; drop inconsistent dark: variant prefixes (app uses [data-theme], not Tailwind dark:)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rn-model guide

- AppHeader: lower desktop action toolbar breakpoint from lg: to md: so tablets
  (iPad, small laptops) no longer lose undo/redo/rotate/mute controls
- AppHeader: Stats is now reachable on desktop — adds a BarChart2 button in the
  game-mode toolbar wired to onToggleStats (was previously aliased unused _onToggleStats;
  the only working open path was the mobile compact panel Gauge button)
- AppHeader: split timer control out of the overloaded Play/pause/resume step-nav
  button — Play Game now only starts/ends the game; timer shows as a separate pill
  with its own pause/resume toggle and Pause/Clock icon
- AppHeader: activate showStats prop to highlight the Stats button when open
- SetupPanel: swap RotateCw → RefreshCcw for Reset Layout to disambiguate from the
  Rotate Board button in the header (RotateCw now unambiguously means board rotation)
- WelcomeGuide: add step 4 explaining the 2-phase slide→move turn model and how to
  set a custom target by tapping any board tile

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lt, full sequence display

- Default showOneMoveTargets to true so reachable-in-one-move targets are visible
  immediately without needing to toggle them on
- Replace hardcoded SOLVER_MAX_TURNS=3 constant with state (solverDepth) initialized
  from localStorage (labyrinth_solver_depth); defaults to 3 and re-triggers the solver
  effect when changed so results update instantly
- Add solver depth selector (1–5) in SettingsDialog Experimental section, wired through
  AppHeaderProps → AppHeader → SettingsDialog; shows (default)/(faster)/(slower) hint
- Remove multi-card sequence truncation in SolverPanel: show full card order with → arrows
  instead of slicing at 3 with an ellipsis

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Re-integrates the stopwatch display and pause/resume behavior back into
the step-nav button (matching the original design). Clicking the active
Game button toggles the timer; clicking when the game hasn't started
begins the game. Also renames the button label from "Play Game" to
"Game" for brevity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JLeshnick
JLeshnick merged commit fc16e22 into main Jul 24, 2026
1 check passed
@JLeshnick
JLeshnick deleted the chore/cleanup-save-trim-css-ux branch July 24, 2026 23:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant