soroban-abacus-flashcards/apps/web
Thomas Hallock b6569ed4e1 feat: implement fit-crop-with-fill for custom map crops
Instead of strict cropping that causes letterboxing, custom crops now:
1. Guarantee the crop region is fully visible and centered
2. Fill remaining viewport space with more of the map
3. Stay within original map bounds

Implementation:
- Add originalViewBox and customCrop fields to MapData type
- Add parseViewBox() and calculateFitCropViewBox() utility functions
- Calculate displayViewBox dynamically in MapRenderer based on container aspect ratio
- Update all coordinate calculations to use displayViewBox

Example: Europe in a wide container will show parts of Africa and Middle East
alongside the centered Europe region, instead of wasted letterbox space.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 05:53:43 -06:00
..
.claude feat: add visual debugging for zoom importance scoring 2025-11-24 18:52:11 -06:00
.storybook fix: refactor worksheet config persistence to blacklist approach + Storybook stories 2025-11-13 11:26:36 -06:00
__tests__
content/blog
data
docs
drizzle feat: add skill configuration system with interactive 2D difficulty plot 2025-11-11 15:04:28 -06:00
e2e feat: add precision mode system with pixel grid visualization 2025-11-23 14:00:43 -06:00
public
scripts
src feat: implement fit-crop-with-fill for custom map crops 2025-11-26 05:53:43 -06:00
.dockerignore.test
.gitignore
CARD_SORTING_PORT_PLAN.md
COMPLEMENT_RACE_PORT_PLAN.md
DEVELOPMENT_STANDARDS.md
LINTING.md
README.md
biome.jsonc
drizzle.config.ts
eslint.config.js
next-env.d.ts
next.config.js fix: configure Next.js to transpile @svg-maps ES modules 2025-11-20 09:15:53 -06:00
package.json refactor: use flatten-js for precise geometric intersection detection 2025-11-25 07:05:57 -06:00
panda.config.ts fix: refactor worksheet config persistence to blacklist approach + Storybook stories 2025-11-13 11:26:36 -06:00
playwright.config.ts
pnpm-lock.yaml
server.js debug: add error handling for socket-server require to see actual failure 2025-11-20 05:51:24 -06:00
svg-processing-test.js
test-arcade-api.sh
test-flashcards-final.pdf
test-flashcards.pdf
test-simplified.pdf
test_fullscreen_persistence.html
test_panda_simple.html
tsconfig.json
tsconfig.server.json fix: use dynamic ES module imports for @svg-maps packages in know-your-world 2025-11-22 12:16:54 -06:00
vitest.config.ts feat(know-your-world): full-screen layout with squish-through pointer lock escape 2025-11-22 21:50:13 -06:00

README.md

Test deployment - Mon Nov 3 16:31:57 CST 2025