diff --git a/packages/abacus-react/CHANGELOG.md b/packages/abacus-react/CHANGELOG.md index a1cbf565..67655216 100644 --- a/packages/abacus-react/CHANGELOG.md +++ b/packages/abacus-react/CHANGELOG.md @@ -1,3 +1,362 @@ +# [2.15.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v2.14.0...abacus-react-v2.15.0) (2025-12-08) + + +### Bug Fixes + +* **404:** reset easter egg config on page reload/close ([d6f1c13](https://github.com/antialias/soroban-abacus-flashcards/commit/d6f1c1331777c47db6963d56c29edbfa90fca903)) +* account for SVG preserveAspectRatio in coordinate transforms ([e4e0925](https://github.com/antialias/soroban-abacus-flashcards/commit/e4e09256c2ad6dd72ca620af017a5d893671264e)) +* add 'auto' to RuleMode type to prevent undefined display values ([a8636ca](https://github.com/antialias/soroban-abacus-flashcards/commit/a8636ca6a2d06d31780d71ec67e35176b3dd3259)) +* add comprehensive dark mode support to Smart Difficulty controls ([a65feb7](https://github.com/antialias/soroban-abacus-flashcards/commit/a65feb734407b7f991a28e391dc1b4a06150eaea)) +* add cooldown after quick-escape to prevent precision mode re-activation ([e885ae7](https://github.com/antialias/soroban-abacus-flashcards/commit/e885ae7ef45430b2c3511c22ad0e418a09a178c5)) +* add currentStepEstimate to required fields in JSON schema ([0d66c54](https://github.com/antialias/soroban-abacus-flashcards/commit/0d66c549914de496d80256e3df497abae5d29a45)) +* add custom cursor when pointer lock is active ([5d6d6b4](https://github.com/antialias/soroban-abacus-flashcards/commit/5d6d6b4ddc5bc66c05ec433cd6daadb2692286f0)) +* add missing openDeploymentInfo prop to MinimalNav ([30879d8](https://github.com/antialias/soroban-abacus-flashcards/commit/30879d8959d9055578b4e64691987cb96064a7d8)) +* add missing scaleX and scaleY number conversions ([ae6cc5e](https://github.com/antialias/soroban-abacus-flashcards/commit/ae6cc5e3268654ff1d44f340413c7deea5c939c4)) +* add missing selectedContinent to default config and fix ts-expect-error directives ([07e9224](https://github.com/antialias/soroban-abacus-flashcards/commit/07e92240e8eb1c9c2bcda5f9b7ba0e13f523b412)) +* add mode descriptions and remove double borders ([6f2f6d4](https://github.com/antialias/soroban-abacus-flashcards/commit/6f2f6d444cc5043dc530ba9454e632d414b9c343)) +* add quotes around unquoted keys when parsing customCrops.ts ([0add49c](https://github.com/antialias/soroban-abacus-flashcards/commit/0add49c5999d51ffb27ef5b18a3418a94bae8c40)) +* add seed and prngAlgorithm fields to all Zod schema versions (V1-V4) ([1782f42](https://github.com/antialias/soroban-abacus-flashcards/commit/1782f427f17822ccf9d0f14bdc3661abe8259d14)) +* add shuffling to progressive difficulty mode & UI improvements ([38e9982](https://github.com/antialias/soroban-abacus-flashcards/commit/38e9982c3dc65f6b7054b563c97e481ba5aa77d2)) +* add zoom to selected continent and improve click detection ([6651979](https://github.com/antialias/soroban-abacus-flashcards/commit/6651979ea0a712413b742b081e9ff667eea5ff2f)) +* align share persistence with user session logic ([72c72fc](https://github.com/antialias/soroban-abacus-flashcards/commit/72c72fc2180637352da79c0c7ed9dbd9cf137af3)) +* calculate total problems correctly in preview API ([25dfb71](https://github.com/antialias/soroban-abacus-flashcards/commit/25dfb71b3effc29ea97e2f1884c133e25834728b)) +* cancel previous give-up animation when new give-up starts ([c01cb7f](https://github.com/antialias/soroban-abacus-flashcards/commit/c01cb7f3840d4a70e607aeb9a74d6dd7db9804cb)) +* cap zoom when releasing pointer lock (escape key) ([2331f10](https://github.com/antialias/soroban-abacus-flashcards/commit/2331f1038c094fadc5fb1994b0ff8e7a6303d351)) +* center crosshairs and re-enable pointer lock after escape ([814bf94](https://github.com/antialias/soroban-abacus-flashcards/commit/814bf949f2bc4c1ed023770c6cdff5f69d706903)) +* change zoom capping to create pause effect instead of slow easing ([f2ca9d1](https://github.com/antialias/soroban-abacus-flashcards/commit/f2ca9d1ebe418007bcc5bc9953c502e5dc053139)) +* combine fast easing with smooth precision mode transition ([cab1fbf](https://github.com/antialias/soroban-abacus-flashcards/commit/cab1fbff955ceb41df1482d96b94a42acd979d1a)) +* configure Next.js to transpile [@svg-maps](https://github.com/svg-maps) ES modules ([ebf2b66](https://github.com/antialias/soroban-abacus-flashcards/commit/ebf2b66910b9265976763e7cf211de383850c84f)) +* consolidate worksheet validation constants and increase MAX_PAGES to 100 ([0f3ec36](https://github.com/antialias/soroban-abacus-flashcards/commit/0f3ec369bfdecde0b1a3fa79564856424a2adcef)) +* correct GPT-5 API parameters and surface actual grading errors ([2d33f35](https://github.com/antialias/soroban-abacus-flashcards/commit/2d33f35c4d908fb743e4a29974f867fa673970e2)) +* **create:** use inline styles for dynamic gradient backgrounds ([ed25b32](https://github.com/antialias/soroban-abacus-flashcards/commit/ed25b323e8925ef4864a0a716f464cd3488dd9ae)) +* DevCropTool key quoting and magnifier label positioning ([2e4f22a](https://github.com/antialias/soroban-abacus-flashcards/commit/2e4f22a522c3b50ef4246c0a09640a07b8e849db)) +* don't show labels for excluded/filtered regions ([a83fbb1](https://github.com/antialias/soroban-abacus-flashcards/commit/a83fbb10702640c56add16ce745c598f0bf81960)) +* eagerly load map caches in browser and use Suspense pattern ([db6be73](https://github.com/antialias/soroban-abacus-flashcards/commit/db6be73a1cdc4eb1bbf0fea11ad3a02ed8e678e8)) +* eliminate cursor dampening lag when changing direction ([fc08b77](https://github.com/antialias/soroban-abacus-flashcards/commit/fc08b775db72f5cd8ed360e7707a62505c94074b)) +* enable page virtualization in worksheet creator ([b675f6c](https://github.com/antialias/soroban-abacus-flashcards/commit/b675f6c96edac6ce156ec6626001438f5e3a865c)) +* enable vertical scrolling in layout controls ([a1b31f4](https://github.com/antialias/soroban-abacus-flashcards/commit/a1b31f454a698b6ab4a43f985f6df4d36d92ecf1)) +* enable virtualization for worksheet preview by limiting SSR to 3 pages ([f409e3c](https://github.com/antialias/soroban-abacus-flashcards/commit/f409e3c2ed82f813b33fadb6b53115ab31bd11d7)) +* ensure entire region path is clickable with pointerEvents: all ([eb94191](https://github.com/antialias/soroban-abacus-flashcards/commit/eb94191b2e436081872a9f5998bdfc9d0d4695fe)) +* export worksheet schema tables from index ([6a16674](https://github.com/antialias/soroban-abacus-flashcards/commit/6a1667404f56e75bf68abfa75ae5402ec459df90)) +* hide abacus on /arcade and /arcade-rooms routes ([77033f0](https://github.com/antialias/soroban-abacus-flashcards/commit/77033f0b22692180ce806c2f6777f4f493ad240c)) +* implement manual click detection using precise cursor position ([156f63f](https://github.com/antialias/soroban-abacus-flashcards/commit/156f63faaf86e26bb2fd6c7b5bc8df66769742ba)) +* improve dark mode contrast in OrientationPanel dropdown ([f9e2343](https://github.com/antialias/soroban-abacus-flashcards/commit/f9e2343ffbf5694c0b9e2f2f108d86a40f2a756f)) +* improve dark mode for orientation and page buttons ([fe9b9f9](https://github.com/antialias/soroban-abacus-flashcards/commit/fe9b9f9ffacc992ee654364fdf63eebbba0e9aa7)) +* improve draggable button constraints to avoid action button overlap ([00b0fb2](https://github.com/antialias/soroban-abacus-flashcards/commit/00b0fb297bf7bc72648ee672f6ce6f0c4cadd28f)) +* improve magnifier zoom calculation for multi-piece regions ([cb4114f](https://github.com/antialias/soroban-abacus-flashcards/commit/cb4114f34458d53c090f59dc0da4aa63a9368610)) +* improve magnifier zoom smoothness and debug panel ([639e662](https://github.com/antialias/soroban-abacus-flashcards/commit/639e662d762120f27b07a0c6c68b72d2709f3282)) +* improve socket server error messages for better debugging ([5d1ea7d](https://github.com/antialias/soroban-abacus-flashcards/commit/5d1ea7db2d66b5330ca83bf9a67b480088b3b672)) +* improve text contrast for selected dropdown items in dark mode ([8d03452](https://github.com/antialias/soroban-abacus-flashcards/commit/8d0345287f87ec49dad2dc38724395f47e04f62f)) +* improve zoom easing to threshold by deferring capping ([b355a3f](https://github.com/antialias/soroban-abacus-flashcards/commit/b355a3fc8fda1d396352566139e9335b35c8a4e8)) +* increase sampling density for tiny region detection and show all detected regions ([2c9f760](https://github.com/antialias/soroban-abacus-flashcards/commit/2c9f760ae9a16b6dc9ebc4ec3b62a5f0a40702e3)) +* increase super zoom multiplier from 2.5x to 5.0x for Gibraltar ([138e6c0](https://github.com/antialias/soroban-abacus-flashcards/commit/138e6c071be6d544470cb075de5f825d881db341)) +* increase z-index of pointer lock prompt overlay ([5388441](https://github.com/antialias/soroban-abacus-flashcards/commit/5388441ebb95634663d3f3f1afc10f9d72cb9e03)) +* **know-your-world:** actually change magnifier element dimensions to 1/3 ([31a06d6](https://github.com/antialias/soroban-abacus-flashcards/commit/31a06d6fef0612fa462906630fd731d24e7bdb0b)) +* **know-your-world:** allow space in name confirmation input ([285b128](https://github.com/antialias/soroban-abacus-flashcards/commit/285b128bb8ffc0aedfb8450948befd9688e0521a)) +* **know-your-world:** center setup settings panel horizontally ([5f69fab](https://github.com/antialias/soroban-abacus-flashcards/commit/5f69fab8595e06943fde2ebfb4ae03871fceee10)) +* **know-your-world:** correctly identify local player for cursor sharing ([7aafe8c](https://github.com/antialias/soroban-abacus-flashcards/commit/7aafe8c92e0b73bd72d43a42a6596b91934c92c2)) +* **know-your-world:** enable hot/cold only for current player in turn mode ([f5ce53e](https://github.com/antialias/soroban-abacus-flashcards/commit/f5ce53efc057fcc2bed09a39b264c54170f651b8)) +* **know-your-world:** fix celebration timer restart and mobile magnifier dismissal bugs ([0558132](https://github.com/antialias/soroban-abacus-flashcards/commit/055813205a680e4204329861589637ea28160d23)) +* **know-your-world:** fix hot/cold visual feedback delay ([a6352ec](https://github.com/antialias/soroban-abacus-flashcards/commit/a6352ec6240abfe7bfb975ef5c28ab5cb805e837)) +* **know-your-world:** fix pointer lock escape for all edges and add smooth release animation ([a7fa858](https://github.com/antialias/soroban-abacus-flashcards/commit/a7fa858a29faf3d5f7e7d8a6d18ea96c6b7908ec)) +* **know-your-world:** fix server/client filter mismatch for USA map ([98e74ba](https://github.com/antialias/soroban-abacus-flashcards/commit/98e74bae3a0eccd8be81e547b030c3ce739f7b82)) +* **know-your-world:** fix TypeScript build errors ([f622bfa](https://github.com/antialias/soroban-abacus-flashcards/commit/f622bfab54ac40846a41a77f7f60715d2f0535b9)) +* **know-your-world:** guard against undefined state during session init ([ea8965b](https://github.com/antialias/soroban-abacus-flashcards/commit/ea8965bc95379d005b4e2dc1b9ae3716dd24b065)) +* **know-your-world:** improve crosshair UX and fix mobile Select button ([0584863](https://github.com/antialias/soroban-abacus-flashcards/commit/0584863bdd4b17316c264e46ca4309b2dd74546e)) +* **know-your-world:** improve mobile layout for setup screen ([81b44a6](https://github.com/antialias/soroban-abacus-flashcards/commit/81b44a6422848d949ff8c3b082cff12c373b12cb)) +* **know-your-world:** improve mobile magnifier positioning and sizing ([9a254e2](https://github.com/antialias/soroban-abacus-flashcards/commit/9a254e29331dadc990f31cdc182482b5b5da8141)) +* **know-your-world:** improve mobile magnifier touch controls ([aee5f21](https://github.com/antialias/soroban-abacus-flashcards/commit/aee5f21ecc8982115e0012c59011dd8b342d5ca1)) +* **know-your-world:** make game settings visible in right panel ([11d2d56](https://github.com/antialias/soroban-abacus-flashcards/commit/11d2d5693c8e72d07750ea54b1e33158431912b5)) +* **know-your-world:** move Start button to top-right settings panel ([cc51de3](https://github.com/antialias/soroban-abacus-flashcards/commit/cc51de35e397641f5c0f4a054ea350cd5d255cd7)) +* **know-your-world:** normalize accented letters for keyboard input ([b27856e](https://github.com/antialias/soroban-abacus-flashcards/commit/b27856e9fc4f339f50c148b6f0adbdb3c0b93140)) +* **know-your-world:** prevent hint bubble closing when toggling settings ([a67c11a](https://github.com/antialias/soroban-abacus-flashcards/commit/a67c11ae045bcbf17861d9475dc824cb97652f8d)) +* **know-your-world:** raise auto-zoom thresholds for tiny regions ([17c113e](https://github.com/antialias/soroban-abacus-flashcards/commit/17c113e68b26d41d0bdd025e64dcbfcee0836f3e)) +* **know-your-world:** reduce magnifier size to 1/3 of pane dimensions ([61a438d](https://github.com/antialias/soroban-abacus-flashcards/commit/61a438dd31161313aeeb99573084ff8372cc875b)) +* **know-your-world:** remove confidence gate from hot/cold visual emoji ([7f6b9dd](https://github.com/antialias/soroban-abacus-flashcards/commit/7f6b9dd558902e7c19c9b4ce4c0590be4ecfe4e4)) +* **know-your-world:** remove hovered region label from setup screen ([5bb2288](https://github.com/antialias/soroban-abacus-flashcards/commit/5bb228883d5c05e23c11762c35ad6bdad45d1d46)) +* **know-your-world:** Remove redundant preventDefault calls in touch handlers ([021a75f](https://github.com/antialias/soroban-abacus-flashcards/commit/021a75f583c779861323f51a1a3f5bb2933cbf62)) +* **know-your-world:** remove tips section from setup screen ([c9e9190](https://github.com/antialias/soroban-abacus-flashcards/commit/c9e91909378756954aa0000b963da8dbe1eb29cd)) +* **know-your-world:** replace react-spring with CSS animation for crosshair rotation ([af5e7b5](https://github.com/antialias/soroban-abacus-flashcards/commit/af5e7b59dcc6a7469968f0be51badb7e3753fbc0)) +* **know-your-world:** restore no-music celebration sounds ([f6d1295](https://github.com/antialias/soroban-abacus-flashcards/commit/f6d1295c6f903933e40b15c75b4373049a8a0421)) +* **know-your-world:** restore Start button character ([7013a7b](https://github.com/antialias/soroban-abacus-flashcards/commit/7013a7b0683d9187f12a07814534a89aca176363)) +* **know-your-world:** stabilize mobile magnifier 1:1 touch tracking ([ab30add](https://github.com/antialias/soroban-abacus-flashcards/commit/ab30adda25a0f129ee93071c8df5af7ce8efa5cf)) +* **know-your-world:** suppress hot/cold hints during takeover and give-up ([9f6b425](https://github.com/antialias/soroban-abacus-flashcards/commit/9f6b425daf47b6c62c9c6fed8dc87d95943dc0af)) +* **know-your-world:** use getBBox() for consistent takeover positioning ([f8acc4a](https://github.com/antialias/soroban-abacus-flashcards/commit/f8acc4aa6aeac44d7c0e99db257e49484d87e633)) +* **know-your-world:** use localPlayerId for cursor updates in all modes ([5e8c37b](https://github.com/antialias/soroban-abacus-flashcards/commit/5e8c37b68ed6031f030b1429f76b6b456df4bd88)) +* **know-your-world:** use shared MAX_ZOOM constant for mobile magnifier ([e4c35e9](https://github.com/antialias/soroban-abacus-flashcards/commit/e4c35e94250067ead48dc97405355fcbacaa7838)) +* **know-your-world:** use spring-for-speed pattern for smooth crosshair rotation ([b7fe2af](https://github.com/antialias/soroban-abacus-flashcards/commit/b7fe2af3696c052c55f712b3d19777903a061c58)) +* **know-your-world:** use viewport-based maxHeight for right panel ([a4f9db6](https://github.com/antialias/soroban-abacus-flashcards/commit/a4f9db6d3f62d8ebb808eced8b0ea3a8ba1fa342)) +* lazy-load map data in know-your-world validator ([07c25a2](https://github.com/antialias/soroban-abacus-flashcards/commit/07c25a2296dde620bb73e5f37c500f72625eb9f9)) +* lower quick-escape threshold to 15px/frame for easier triggering ([97b214d](https://github.com/antialias/soroban-abacus-flashcards/commit/97b214da12bdb782a56bbb388d6f31c0e97e9c82)) +* make map-renderer fill parent container for fit-crop-with-fill ([18b1476](https://github.com/antialias/soroban-abacus-flashcards/commit/18b14766b23071016c7e3c5629621e378237756c)) +* make placeholder pages match actual page dimensions ([4003c5c](https://github.com/antialias/soroban-abacus-flashcards/commit/4003c5ceb76e74ec79a93b77322e203b7dc3bcc5)) +* make useArcadeSocket work without ArcadeErrorProvider ([01740af](https://github.com/antialias/soroban-abacus-flashcards/commit/01740afcb7c426c721544f8034ad821558609a79)) +* merge duplicate style attributes on magnifier SVG ([3eda493](https://github.com/antialias/soroban-abacus-flashcards/commit/3eda493051965772056bcfc2bc8c14176d4efd3b)) +* move pointer lock management to MapRenderer ([0ed4d13](https://github.com/antialias/soroban-abacus-flashcards/commit/0ed4d13db61b01b12b5bbc10f8ae7aabc286fb72)) +* page indicator not tracking scroll when showing all pages ([3d157e3](https://github.com/antialias/soroban-abacus-flashcards/commit/3d157e32edae1a5655a14d943a02d8752935aaa8)) +* page indicator stuck on page 1 due to stale closure ([952ebc7](https://github.com/antialias/soroban-abacus-flashcards/commit/952ebc7756273900c60d714f0ef1da07af99e7d1)) +* pass correct parameter for borrow boxes in subtraction ([00d892a](https://github.com/antialias/soroban-abacus-flashcards/commit/00d892a05c6644d2f00eb54a88ab9b01d2d05c6f)) +* position debug panel opposite from magnifier ([aa80a73](https://github.com/antialias/soroban-abacus-flashcards/commit/aa80a7366499ea1e3e954368fd335d0f9a5a6919)) +* position shared worksheet banner below app nav ([fb3412c](https://github.com/antialias/soroban-abacus-flashcards/commit/fb3412c9a54a00ee541a0060a45f027784faaeee)) +* **practice:** add 80px top padding to account for app nav height ([a50b268](https://github.com/antialias/soroban-abacus-flashcards/commit/a50b268d354cf5e0778736c67e28fa2c4be05fce)) +* **practice:** allow vertical overflow for help overlays ([1ddf9fc](https://github.com/antialias/soroban-abacus-flashcards/commit/1ddf9fc94f9b45f0791b2e987f39db6abd8c82a8)) +* **practice:** prevent decomposition math from wrapping ([52ea3f1](https://github.com/antialias/soroban-abacus-flashcards/commit/52ea3f10fa9140daa8b46196feeab51628a4f010)) +* **practice:** remove overflow clipping to allow help overlays ([e9b123a](https://github.com/antialias/soroban-abacus-flashcards/commit/e9b123a7b3df66655e86f76734621c0f99a6e9b3)) +* **practice:** remove redundant 'already at target' message ([e9ccfb9](https://github.com/antialias/soroban-abacus-flashcards/commit/e9ccfb918618f5ad2b7bad9254390d02c48c36c3)) +* **practice:** use explicit padding to prevent shorthand override ([4c00d92](https://github.com/antialias/soroban-abacus-flashcards/commit/4c00d92ccb6cd73d1572810f4ea990e08d66addd)) +* preserve saved seed on page reload ([64ce64b](https://github.com/antialias/soroban-abacus-flashcards/commit/64ce64bd3547c6df7b926bf6275be761a0704548)) +* preserve seed and prngAlgorithm in config migrations ([b18c412](https://github.com/antialias/soroban-abacus-flashcards/commit/b18c4127361339893b2b700668c135ceeb53e4d2)) +* preserve user's scaffolding settings when changing skills ([1eb04ce](https://github.com/antialias/soroban-abacus-flashcards/commit/1eb04ce0c46e7ec745b8cc8c8580b3ff731916a1)) +* prevent duplicate API calls in React StrictMode ([0d59676](https://github.com/antialias/soroban-abacus-flashcards/commit/0d59676b38511038d12521a2c3658f3253238501)) +* prevent modal closure when clicking tabs in AllSkillsModal ([4746e1f](https://github.com/antialias/soroban-abacus-flashcards/commit/4746e1f8fe41d4766d0bcb453c26e1395e593b27)) +* prevent regrouping problems in no-regrouping skills and enable progressive difficulty toggle ([59712e1](https://github.com/antialias/soroban-abacus-flashcards/commit/59712e1021c41826f940fe506c7781679b46b6a1)) +* prevent skill name wrapping in mini cards with single-line ellipsis ([a463d08](https://github.com/antialias/soroban-abacus-flashcards/commit/a463d088d763ffc9708e8a7d2a94369b1cc6d414)) +* prevent zoom jump on precision mode activation by resetting spring target ([33d9f15](https://github.com/antialias/soroban-abacus-flashcards/commit/33d9f15897cdc75e2fa2001430d75c23c6b282a4)) +* prevent zoom jump when activating precision mode ([9cb3c89](https://github.com/antialias/soroban-abacus-flashcards/commit/9cb3c898ec3493c9a59b9beb6893daa359dd63cd)) +* properly apply dark mode hover states in dropdown ([34553ce](https://github.com/antialias/soroban-abacus-flashcards/commit/34553cebf7f9c232a37b2bef6bf4d8f1aad99748)) +* properly cycle through problem sets when exceeding unique problem space ([55d4920](https://github.com/antialias/soroban-abacus-flashcards/commit/55d49201678fa8ad7f8e7530b13461e5984838c6)) +* properly zoom to selected continent in game phases ([e900e44](https://github.com/antialias/soroban-abacus-flashcards/commit/e900e4465bbde8d8b0787581d6e8603fdf36975f)) +* reduce font size for mini skill card titles to prevent wrapping ([833b481](https://github.com/antialias/soroban-abacus-flashcards/commit/833b481ebbbece93b2e4f38b688dc37829c3c5a8)) +* refactor worksheet config persistence to blacklist approach + Storybook stories ([5b6db58](https://github.com/antialias/soroban-abacus-flashcards/commit/5b6db588a288d23058589c48f4ccf7f9d694eb28)) +* regenerate lockfile to remove big.js dependencies ([05fc5cf](https://github.com/antialias/soroban-abacus-flashcards/commit/05fc5cfe4952115307930eff2d9ceac14c35fb6f)) +* remove all scaffolding from final mastery skills ([d7bec42](https://github.com/antialias/soroban-abacus-flashcards/commit/d7bec423e0d43ac7df6123d85001c4dbcc936740)) +* remove background rect from main map SVG ([7d3c5c3](https://github.com/antialias/soroban-abacus-flashcards/commit/7d3c5c304b61f3fbc64d626b0712c74e895af9c9)) +* remove duplicate containerRect declaration ([1a690e0](https://github.com/antialias/soroban-abacus-flashcards/commit/1a690e00b04f2fe20dfd611449f4bf323f7b3d99)) +* remove magnifierSpring.zoom from effect dependencies ([5eb2eed](https://github.com/antialias/soroban-abacus-flashcards/commit/5eb2eeda32ff95ccc45707acfbc329e2214ed3e1)) +* remove mispositioned background rect from magnifier SVG ([5815cbe](https://github.com/antialias/soroban-abacus-flashcards/commit/5815cbee15bc1207eba0ad30d93db9dbc4735b6b)) +* remove pages from visible set when they leave viewport ([9757449](https://github.com/antialias/soroban-abacus-flashcards/commit/9757449e21d31b4ce17baa5305b09506f4a54cf4)) +* remove redundant 'Teens minus singles' subtraction skill ([e156e87](https://github.com/antialias/soroban-abacus-flashcards/commit/e156e870df86344f3b87e209840f23ba1c29ea75)) +* remove regex lookbehind for Safari compatibility ([4d77f1f](https://github.com/antialias/soroban-abacus-flashcards/commit/4d77f1ffd3c54ba76d95618f5fe4444e0972c4d5)) +* remove unused velocity tracking and fix TypeScript errors ([0195a6d](https://github.com/antialias/soroban-abacus-flashcards/commit/0195a6dc6d6796615d1a045d0c7a20e90e1b6e42)) +* replace deprecated path() with curve() in borrow arrows ([47d149c](https://github.com/antialias/soroban-abacus-flashcards/commit/47d149ca17d9ff7e3ad034fad9ce5eb1cd341fc7)) +* replace ES module imports with JSON data files ([fb735be](https://github.com/antialias/soroban-abacus-flashcards/commit/fb735be014d8fa625fd07d8afdffd0f561acb50d)) +* resolve auto zoom freeze and stuck zoom issues ([0aee60d](https://github.com/antialias/soroban-abacus-flashcards/commit/0aee60d8d11b750f78926e54d8b5d06e51df34ff)) +* respect borrow boxes display setting regardless of actual borrowing ([1aef0f2](https://github.com/antialias/soroban-abacus-flashcards/commit/1aef0f292fd20bbef0a7d284d1ab0060947626e2)) +* respect operator-specific scaffolding in mastery+mixed mode ([a6472a2](https://github.com/antialias/soroban-abacus-flashcards/commit/a6472a231be65e9e3e27e5d05a2323ae8451b044)) +* respect user's layout options (problemNumbers/cellBorders) in mastery mode ([e708add](https://github.com/antialias/soroban-abacus-flashcards/commit/e708add9f2960055fdebf24e1af49c917e18d75a)) +* responsive page indicator and settings summary improvements ([93ddc28](https://github.com/antialias/soroban-abacus-flashcards/commit/93ddc28a3af4d66a6b8412b86472cfd4d04912c2)) +* resume zoom animation immediately when precision mode activates ([7ba7e03](https://github.com/antialias/soroban-abacus-flashcards/commit/7ba7e036613876d776eaf4822317a8bad2788495)) +* resume zoom animation immediately when precision mode activates ([7c1f2e5](https://github.com/antialias/soroban-abacus-flashcards/commit/7c1f2e54c9331b55b14e22edbf11897deb8780b8)) +* resume zoom animation when target drops below threshold ([e73b59d](https://github.com/antialias/soroban-abacus-flashcards/commit/e73b59d510863338181338a3d2439a414a2ec15a)) +* scaffolding changes now apply in mastery+mixed mode ([510f052](https://github.com/antialias/soroban-abacus-flashcards/commit/510f0529780071435395fee0792b5a73685c20b1)) +* **server:** lazy-load game validators to avoid ES module errors ([a88bd58](https://github.com/antialias/soroban-abacus-flashcards/commit/a88bd5844cd9f52eb64501fb3e6d949f5dd4e84d)) +* show hot/cold button on iPad with mouse attached ([1333818](https://github.com/antialias/soroban-abacus-flashcards/commit/1333818baea76360788b3c30993ab1b54e437e97)) +* skip pointer lock request on unsupported devices (iPad) ([d6eb997](https://github.com/antialias/soroban-abacus-flashcards/commit/d6eb9974459efd9d72694a65803d7f8253a48012)) +* stabilize mini skill card height and fix preview updates ([4a52943](https://github.com/antialias/soroban-abacus-flashcards/commit/4a5294353ebaf027d958c1886ba36d7b049c6c0a)) +* take all measurements inside animation callback for label sync ([2191e07](https://github.com/antialias/soroban-abacus-flashcards/commit/2191e0732bee6f8b6be6b21de34a5a33ea9878d7)) +* track both SVG units and screen pixels for zoom and dampening ([d72f309](https://github.com/antialias/soroban-abacus-flashcards/commit/d72f309badd72003d264fc06206f59d26d226a01)) +* transform screen coordinates to SVG space for isPointInFill() ([4c933be](https://github.com/antialias/soroban-abacus-flashcards/commit/4c933be48a9a92d479aa86afeea0d1ff761aba88)) +* transmit hovered region ID with network cursor to avoid hit-testing discrepancies ([6c3f860](https://github.com/antialias/soroban-abacus-flashcards/commit/6c3f860efc503977a53088cd038ec284727463b7)) +* **tutorial:** expose activeGroupTargetColumn state to context ([69f759a](https://github.com/antialias/soroban-abacus-flashcards/commit/69f759a1787003adc1be51e25d5a6a8291b4591c)) +* update AbacusQRCode for qrcode.react v4 compatibility ([0f0c3c6](https://github.com/antialias/soroban-abacus-flashcards/commit/0f0c3c65e8c15fdca4511da3d13493768e69cba8)) +* update operator-specific display rules in mastery+mixed mode ([4174b6d](https://github.com/antialias/soroban-abacus-flashcards/commit/4174b6d2e7ad00cfd3cdc887345551047fb7f114)) +* upgrade to Node.js 20 to resolve ES module import issues ([192de5c](https://github.com/antialias/soroban-abacus-flashcards/commit/192de5c6b54e5eb694b2b3aba0cf61f64a68f55b)) +* use ± symbol for mixed operator icon consistently ([2695b50](https://github.com/antialias/soroban-abacus-flashcards/commit/2695b50abea8eea47fa9e94308ea79bc57cc8477)) +* use actual SVG path geometry for region detection instead of bounding boxes ([e255ce2](https://github.com/antialias/soroban-abacus-flashcards/commit/e255ce2c6f697e01bd133f5b20309a620a3bfd9b)) +* use animated spring for magnifier label positioning ([94d1cdf](https://github.com/antialias/soroban-abacus-flashcards/commit/94d1cdfcb5469c58ba196fc11ae6226f0e2d0147)) +* use ASCII characters for operator icons to support dark mode ([3bd5c00](https://github.com/antialias/soroban-abacus-flashcards/commit/3bd5c00d212e838abb709e2359ff103dbce97552)) +* use correct Unicode minus sign (−) for subtraction operator checks ([0dd9e45](https://github.com/antialias/soroban-abacus-flashcards/commit/0dd9e459526d784e83e50a0f8668d809bb01fa57)) +* use dynamic ES module imports for [@svg-maps](https://github.com/svg-maps) packages in know-your-world ([ab94fd3](https://github.com/antialias/soroban-abacus-flashcards/commit/ab94fd350fd5b9f6a231f629975d99eedc00d11a)) +* use LAN IP instead of localhost for QR code camera uploads ([00b400a](https://github.com/antialias/soroban-abacus-flashcards/commit/00b400ae8a0792ab4bb337f38c97080901981abf)) +* use screen pixels for zoom, abandon SVG path parsing ([912dc38](https://github.com/antialias/soroban-abacus-flashcards/commit/912dc385b394712e7caea46d5ced328a06ee90bb)) +* use subtle gray highlights for dropdown in dark mode ([8d6170a](https://github.com/antialias/soroban-abacus-flashcards/commit/8d6170a8c7042351aa1cbea9a26ed2bd58216e3d)) +* use SVG viewBox units instead of screen pixels for zoom ([0dcaabb](https://github.com/antialias/soroban-abacus-flashcards/commit/0dcaabb8a5a7175e511affc2f15196784aeec05a)) +* use white text for selected dropdown items in dark mode ([e1a7375](https://github.com/antialias/soroban-abacus-flashcards/commit/e1a73758d698d57383f2ed8a2b317a6670f4cba6)) +* **worksheets:** add backward compatibility for displayRules in SmartModeControls ([b956e2d](https://github.com/antialias/soroban-abacus-flashcards/commit/b956e2d6057d0a6427624f7b690e4a29218ac3f6)) +* **worksheets:** add borrowNotation and borrowingHints to DisplayRules interfaces ([3b908ac](https://github.com/antialias/soroban-abacus-flashcards/commit/3b908ac453df885f5dc7decd134bb603fcb0444e)) +* **worksheets:** add borrowNotation and borrowingHints to validation fallback ([3f700af](https://github.com/antialias/soroban-abacus-flashcards/commit/3f700af6432735aaab4387aabcc2fc302921869d)) +* **worksheets:** add mastery mode to Zod schema validation ([003f1d1](https://github.com/antialias/soroban-abacus-flashcards/commit/003f1d11cc0a6e6dc77c7f9b5ab36936f842778e)) +* **worksheets:** correct Typst array membership syntax for ten-frames rendering ([14b3594](https://github.com/antialias/soroban-abacus-flashcards/commit/14b359462f1455cc4a6ddf1c191f4ca0ace167d4)) +* **worksheets:** enable borrowNotation and borrowingHints in smart difficulty mode ([8020ee8](https://github.com/antialias/soroban-abacus-flashcards/commit/8020ee835e2f7e7e6d1b8709c4ef1ce2b8ff9255)) +* **worksheets:** prevent infinite loop when problem space is empty ([02463df](https://github.com/antialias/soroban-abacus-flashcards/commit/02463df8e505a2cd14d96f6a9301df80356c6818)) +* **worksheets:** render operators last for proper layering ([cdd0de7](https://github.com/antialias/soroban-abacus-flashcards/commit/cdd0de797f9d712e10f54a314671ce5277c957ad)) +* **worksheets:** sync preview and download problem generation ([822ef78](https://github.com/antialias/soroban-abacus-flashcards/commit/822ef78e5880de93e2b82952a39630539609e306)) +* **worksheets:** ten-frames not rendering in mastery mode ([b36df3a](https://github.com/antialias/soroban-abacus-flashcards/commit/b36df3a40cbc57866095d686fa2c0fc9ec30add2)) +* **worksheets:** validation function was converting mastery mode to manual ([4ad687d](https://github.com/antialias/soroban-abacus-flashcards/commit/4ad687df73365b084115477774e0aada9d102c28)) + + +### Features + +* **abacus-react:** add defaultValue prop for uncontrolled mode ([3ce12c5](https://github.com/antialias/soroban-abacus-flashcards/commit/3ce12c59fc3f8306bb21b19876e6a820e6ddedda)) +* add 'auto' option for scaffolding to defer to mastery progression ([a945a62](https://github.com/antialias/soroban-abacus-flashcards/commit/a945a620c40661c3ff026fc3568f708744dc27b2)) +* add adaptive zoom magnifier for Know Your World map ([1e8846c](https://github.com/antialias/soroban-abacus-flashcards/commit/1e8846cdb1de8e557f2ef53eff6014995911f3ce)) +* add AI-powered worksheet grading with GPT-5 vision ([6e95732](https://github.com/antialias/soroban-abacus-flashcards/commit/6e9573288fdabd12d93589fd0734b000c9462df4)) +* add auto scaffolding mode with visual feedback and override notices ([b62db5a](https://github.com/antialias/soroban-abacus-flashcards/commit/b62db5a323f803da6b2ad26238735f5d51b4557e)) +* add auto-submit on correct answer + Newton poem blog post ([2f7cb03](https://github.com/antialias/soroban-abacus-flashcards/commit/2f7cb03c3f463d9c350c9d55200b34fd737bc5b0)) +* add comprehensive error handling for arcade games ([e8c5256](https://github.com/antialias/soroban-abacus-flashcards/commit/e8c52561a2b881cb6bece0d806720e06cd148c99)) +* add continent filtering to Know Your World game ([7bb03b8](https://github.com/antialias/soroban-abacus-flashcards/commit/7bb03b84099a10cb48c5b1b4c0bf60ca2e527977)) +* add custom error boundaries with navigation ([73cc418](https://github.com/antialias/soroban-abacus-flashcards/commit/73cc4185c3fb9fd43fe51f6a47ac7d056590eeb4)) +* add database schema for custom skills and skill customizations ([906fa63](https://github.com/antialias/soroban-abacus-flashcards/commit/906fa63f24dd0de429c71d9c0220e4901286a2e0)) +* add debug bounding boxes to magnifier view ([9c7d2fa](https://github.com/antialias/soroban-abacus-flashcards/commit/9c7d2fab5f04a11dc97f6f5db63b91c153aec98d)) +* add debug indicator for custom crop region (dev only) ([9c89aad](https://github.com/antialias/soroban-abacus-flashcards/commit/9c89aadb17516fb540304813da73a649d5dfb96c)) +* add detailed zoom decision debug panel ([cb57f15](https://github.com/antialias/soroban-abacus-flashcards/commit/cb57f1585a91ad5379b61af29d2fa788c072bc2a)) +* add dev-only crop tool for custom map region cropping ([855e5df](https://github.com/antialias/soroban-abacus-flashcards/commit/855e5df2c0dfadc1542b4be25987af4cfe30c735)) +* add download and share buttons to shared worksheet viewer ([9b8947a](https://github.com/antialias/soroban-abacus-flashcards/commit/9b8947a198671655c0db5c9c43bd7abc86119c64)) +* add dynamic layout preview component for orientation selection ([8df62d6](https://github.com/antialias/soroban-abacus-flashcards/commit/8df62d6a45b0dc556702b867522e8710307ff733)) +* add dynamic operator icon to tab navigation ([b6ff995](https://github.com/antialias/soroban-abacus-flashcards/commit/b6ff995a8c73122afb065c1e2a64f59f63722715)) +* add exponential zoom scaling for sub-pixel regions ([101213b](https://github.com/antialias/soroban-abacus-flashcards/commit/101213ba1c2b378aa63e828f40cdefd698934c1a)) +* add fancy QR codes with abacus logo throughout app ([ebcabf9](https://github.com/antialias/soroban-abacus-flashcards/commit/ebcabf9bb917f9fd39cb85b5a2c73c696172cbc3)) +* add give up with zoom animation for Know Your World ([94cff43](https://github.com/antialias/soroban-abacus-flashcards/commit/94cff4374f4b9060339dbb1067fed58009e2dcf9)) +* add gold scrim overlay and improve precision mode messaging ([4b20d07](https://github.com/antialias/soroban-abacus-flashcards/commit/4b20d0753f887382d42da33987cad2c0ee27103c)) +* add interactive world map continent selector ([245005c](https://github.com/antialias/soroban-abacus-flashcards/commit/245005c8ece0626136769e5e9fd1961a0db45709)) +* add Know Your World geography quiz game ([25e24a7](https://github.com/antialias/soroban-abacus-flashcards/commit/25e24a7cbc0b1803d464e987400d0aad1d3ef8cd)) +* add mobile drawer and detailed summary for shared worksheets ([0a35e70](https://github.com/antialias/soroban-abacus-flashcards/commit/0a35e70e2828c43d57d8d95b592d38a48e1fbf08)) +* add ngrok tunnel to dev server for HTTPS testing ([ab2bfde](https://github.com/antialias/soroban-abacus-flashcards/commit/ab2bfde9c28fe874d289e21678cf06da61dfa298)) +* add per-country coloring and individual region clicks to continent selector ([2e9f409](https://github.com/antialias/soroban-abacus-flashcards/commit/2e9f409f26e12f833301954ec39fe7db39715e26)) +* add per-page worksheet generation API ([6398fbe](https://github.com/antialias/soroban-abacus-flashcards/commit/6398fbead950bc41ad71105866afc677b1ec674a)) +* add Pointer Lock API for precision mode to prevent edge issues ([4d5953d](https://github.com/antialias/soroban-abacus-flashcards/commit/4d5953d03403adcb8bc964437ba5b819dbaa7696)) +* add precision controls for tiny regions in Know Your World ([3bf127f](https://github.com/antialias/soroban-abacus-flashcards/commit/3bf127f344c631f5bed3504228b140407a734c06)) +* add precision mode system with pixel grid visualization ([53e9041](https://github.com/antialias/soroban-abacus-flashcards/commit/53e90414a34f3f719502bc8c8ca2bb7358f8469c)) +* add prev/next navigation buttons to mixed mode mini skill panes ([498df2c](https://github.com/antialias/soroban-abacus-flashcards/commit/498df2ca5ab04fac8338ddc4d819a212f1a122a5)) +* add problem space validation to warn about duplicate risk ([0b8c180](https://github.com/antialias/soroban-abacus-flashcards/commit/0b8c1803ffe0392f71d10cddb945ae24a39022e0)) +* add responsive mobile drawer with draggable settings button ([fc1d7fc](https://github.com/antialias/soroban-abacus-flashcards/commit/fc1d7fcbd60b22f25f817dd7d24a5ad0c33eb63a)) +* add responsive page button layout with dynamic dropdown ([3f33cd1](https://github.com/antialias/soroban-abacus-flashcards/commit/3f33cd1924deffee0f215e6a463016e76784f77c)) +* add shared worksheet viewer with open-in-editor functionality ([4b8b3ee](https://github.com/antialias/soroban-abacus-flashcards/commit/4b8b3ee5328d3c6e1d6b4fe4624ea553e5505ab7)) +* add single-page worksheet preview API endpoint ([10e97db](https://github.com/antialias/soroban-abacus-flashcards/commit/10e97db78a25c83f1bda46abaae6ad45cff712f1)) +* add skill configuration system with interactive 2D difficulty plot ([7fbc743](https://github.com/antialias/soroban-abacus-flashcards/commit/7fbc743c4c213866a36e758eaf9b49200ea79f13)), closes [#9333](https://github.com/antialias/soroban-abacus-flashcards/issues/9333) [#10b981](https://github.com/antialias/soroban-abacus-flashcards/issues/10b981) +* add smooth fade-in animation for 404 message text changes ([e88380a](https://github.com/antialias/soroban-abacus-flashcards/commit/e88380a48df4c4ee132482d3c45612b336508cab)) +* add split-action share button with copy shortcut ([085d200](https://github.com/antialias/soroban-abacus-flashcards/commit/085d200da4d726148a027181b10707d77e88af7a)) +* add themed backgrounds and enhanced styling to 404 page ([dd14062](https://github.com/antialias/soroban-abacus-flashcards/commit/dd14062112d0b3e29fc03c873ff434b1fdf0ae88)) +* add visible grab tab to worksheet panel resize handle ([288e6ed](https://github.com/antialias/soroban-abacus-flashcards/commit/288e6ed878541fe06bb28d7c00008e1830db19b6)) +* add visual debugging for zoom importance scoring ([e60a2c0](https://github.com/antialias/soroban-abacus-flashcards/commit/e60a2c09c0e843af9a5a82433493ccf499660981)) +* add visual grab tab to resize handle with rounded corners ([6e55d5a](https://github.com/antialias/soroban-abacus-flashcards/commit/6e55d5add7cc916e5caaeb49927ecef38ef5bbf9)) +* add visual warnings to page selector buttons ([5a87799](https://github.com/antialias/soroban-abacus-flashcards/commit/5a8779969c17c948a822cc1ecb636f770bb6d9e3)) +* add worksheet generation core logic and helpers ([163517d](https://github.com/antialias/soroban-abacus-flashcards/commit/163517db7d9f0818c0034d6c20908d3fac5ab815)) +* add worksheet sharing infrastructure with database persistence ([7b4c7c3](https://github.com/antialias/soroban-abacus-flashcards/commit/7b4c7c3fb62310e892792220f76c750bcee3cf05)) +* add worksheet studio with comprehensive features ([d5672bd](https://github.com/antialias/soroban-abacus-flashcards/commit/d5672bdddf9ad557eaa76ad8d7e9e1ce1cb7ee30)) +* apply skill-specific scaffolding and fix mini card heights ([ee90182](https://github.com/antialias/soroban-abacus-flashcards/commit/ee90182ff2b2e9247a38ad464fc25e646e9b8cf0)) +* **blog:** add subtraction and multi-digit worksheet blog posts ([dd9587f](https://github.com/antialias/soroban-abacus-flashcards/commit/dd9587f8cde6fbc129ddb315dde8a27564108514)) +* calculate zoom based on region under cursor, target 15% area ([6736336](https://github.com/antialias/soroban-abacus-flashcards/commit/6736336317b587214db5109cee5a3cc35ef78b29)) +* convert operator selection to checkboxes with required validation ([c997c4a](https://github.com/antialias/soroban-abacus-flashcards/commit/c997c4a7ba81faf5c8970963b692f4e31bacfa7e)) +* create unified difficulty interface with 2-tab selector ([0b7382f](https://github.com/antialias/soroban-abacus-flashcards/commit/0b7382f1b652a01ac9edb851029c4f98005d0071)) +* enable production source maps for easier debugging ([d992e98](https://github.com/antialias/soroban-abacus-flashcards/commit/d992e98d77d453a70f60ac8d2801af6f29b0ab3d)) +* enhance scaffolding tab with live preview and resolved display rules ([9a5a0d4](https://github.com/antialias/soroban-abacus-flashcards/commit/9a5a0d4e3c3b9f209f83856b62283df04859833a)) +* **help-system:** add focus areas for skills needing reinforcement ([871390d](https://github.com/antialias/soroban-abacus-flashcards/commit/871390d8e1b55ab78e7cc537e9127a336ee5f462)) +* **help-system:** add schema for progressive help and feedback loop ([41c4603](https://github.com/antialias/soroban-abacus-flashcards/commit/41c46038d8c1b69254206b14d76d420f41f4d248)) +* **help-system:** add usePracticeHelp hook and skill extraction ([0b1ad1f](https://github.com/antialias/soroban-abacus-flashcards/commit/0b1ad1f896e81357fa1cccec4b2d5a606d777321)) +* **help-system:** integrate PracticeHelpPanel into ActiveSession ([373ec34](https://github.com/antialias/soroban-abacus-flashcards/commit/373ec34e4649130c368c4ce193c8066c56be9744)) +* hide easter egg hint until first discovery ([c2c7153](https://github.com/antialias/soroban-abacus-flashcards/commit/c2c71531ae4298b18df8f2c1347968af144f8e50)) +* implement binary search for optimal zoom level ([1a54f09](https://github.com/antialias/soroban-abacus-flashcards/commit/1a54f0981446c6b81b0a572e0b64e6be03e2f9a3)) +* implement fit-crop-with-fill for custom map crops ([b6569ed](https://github.com/antialias/soroban-abacus-flashcards/commit/b6569ed4e125265facd5ba940fc5d184babb0ae1)) +* implement lazy loading for worksheet preview with cursor pagination ([8b3d019](https://github.com/antialias/soroban-abacus-flashcards/commit/8b3d0196523ec9fdf2b9a6bbee8c54c8493a49db)) +* implement lazy loading for worksheet preview with cursor pagination ([2a7d67d](https://github.com/antialias/soroban-abacus-flashcards/commit/2a7d67db5889f742ef4f16e790ab7892d13c014c)) +* improve shared worksheet viewer UX and multi-page support ([1c10a82](https://github.com/antialias/soroban-abacus-flashcards/commit/1c10a82c7885962f05e06822b5b99a09fcf1e15d)) +* improve tab navigation layout and add pages to layout button ([926a029](https://github.com/antialias/soroban-abacus-flashcards/commit/926a029ff82503179912e1cec17bf6458396f127)) +* improve worksheet preview placeholder with cartoonish grid layout ([57fb99a](https://github.com/antialias/soroban-abacus-flashcards/commit/57fb99af635687c459b2298e89f4826185d356f1)) +* increase max super zoom to 120x for ultra-tiny regions ([9b782be](https://github.com/antialias/soroban-abacus-flashcards/commit/9b782beabf2a9fc34b55c396164ab410930890db)) +* increase max zoom to 1000x with detailed debug logging ([a6be05f](https://github.com/antialias/soroban-abacus-flashcards/commit/a6be05f8c1167d1175ef7d7b1d0e239afaebbf9b)) +* **know-your-world:** add 'H' keyboard shortcut for hint ([cdc9451](https://github.com/antialias/soroban-abacus-flashcards/commit/cdc94514d9f6eb1865bd0b64c17f5e57affb0a5b)) +* **know-your-world:** add adaptive hint cycling for struggling users ([5440250](https://github.com/antialias/soroban-abacus-flashcards/commit/54402501e594f802b27bbccd724e5f5262bdebd1)) +* **know-your-world:** add celebration animations for found regions ([3b9d6b0](https://github.com/antialias/soroban-abacus-flashcards/commit/3b9d6b0fdf17518cfe6325105bdd9f7996185344)) +* **know-your-world:** add device capability hooks and improve mobile support ([c502a4f](https://github.com/antialias/soroban-abacus-flashcards/commit/c502a4fa926b92d2a16d8e31e7e55243752d80d8)) +* **know-your-world:** add drill-down map selector and improve setup UI ([a6f8dbe](https://github.com/antialias/soroban-abacus-flashcards/commit/a6f8dbe474fd909a48183905cafc9ccb8f1ccfa7)) +* **know-your-world:** add filter tabs for size, importance, and population ([6c3c0ac](https://github.com/antialias/soroban-abacus-flashcards/commit/6c3c0ac70e58fa4fa678508d1ea37a163a2d875d)) +* **know-your-world:** add fire tracer animation for learning mode takeover ([1e6153e](https://github.com/antialias/soroban-abacus-flashcards/commit/1e6153ee8bb53469aec515a20e2cf14450e9d67a)) +* **know-your-world:** add hint system, pointer lock buttons, and mobile magnifier support ([55e480c](https://github.com/antialias/soroban-abacus-flashcards/commit/55e480c03b710a9c244ef5c6b3372b9adb78637c)) +* **know-your-world:** add hints for Europe and Africa regions ([46e5c6b](https://github.com/antialias/soroban-abacus-flashcards/commit/46e5c6b99bce5a07ddf050aed56cf470f8610e89)) +* **know-your-world:** add hot/cold audio feedback for cursor proximity ([69813e9](https://github.com/antialias/soroban-abacus-flashcards/commit/69813e92a256f3c78920929eab419accfc4abcd3)) +* **know-your-world:** add hot/cold debug panel and production debug mode ([493313a](https://github.com/antialias/soroban-abacus-flashcards/commit/493313a3bb47d145ad437143834d71ea6dcf6341)) +* **know-your-world:** add hot/cold feedback for mobile magnifier ([824325b](https://github.com/antialias/soroban-abacus-flashcards/commit/824325b843c7356b3b7d14ee105fe66edd04cd1f)) +* **know-your-world:** add interaction state machine foundation ([e4d6748](https://github.com/antialias/soroban-abacus-flashcards/commit/e4d6748d70c9d6c6cf705f95183713611f57e871)) +* **know-your-world:** add Learning mode and fix hints before name unlock ([fc87808](https://github.com/antialias/soroban-abacus-flashcards/commit/fc87808b40578054f0196a5d68ab35f56d375585)) +* **know-your-world:** add learning mode takeover animation and fix give-up sequence ([3fd8472](https://github.com/antialias/soroban-abacus-flashcards/commit/3fd8472e6832fa16dd83b9ae1ed7b8b92baa5f04)) +* **know-your-world:** add map zoom preview, remove study time feature ([57dd61b](https://github.com/antialias/soroban-abacus-flashcards/commit/57dd61b99461ff36983231faa9e105f4b22215ec)) +* **know-your-world:** add missing island hints and revise all hints ([8b13b5a](https://github.com/antialias/soroban-abacus-flashcards/commit/8b13b5a455cee09dcf6938e04facab7f674f2cb8)) +* **know-your-world:** add mobile cursor sharing and fix multi-device coop mode ([2ce5e18](https://github.com/antialias/soroban-abacus-flashcards/commit/2ce5e180b763434efa495af252f39e47d9723ebf)) +* **know-your-world:** add mobile virtual keyboard and space-skipping ([5318d0d](https://github.com/antialias/soroban-abacus-flashcards/commit/5318d0dd8903b2fad9d9c315a79a39c13acc7573)) +* **know-your-world:** add multiplayer cursor sharing and fix map viewport ([c3b94be](https://github.com/antialias/soroban-abacus-flashcards/commit/c3b94bea3d43dfdd022d27974c679f055ec39043)) +* **know-your-world:** add puzzle piece fly-to-map animation for learning mode ([7c49652](https://github.com/antialias/soroban-abacus-flashcards/commit/7c496525e91299ead391eccfe0e83f886e120aaa)) +* **know-your-world:** add range thermometer for region size selection ([c7c4e7c](https://github.com/antialias/soroban-abacus-flashcards/commit/c7c4e7cef3ddb8af54826992f4a94b97b63e4698)) +* **know-your-world:** add region shape silhouette to learning takeover ([ebe07e3](https://github.com/antialias/soroban-abacus-flashcards/commit/ebe07e358f9f5642f662d7918e3c1893f48303ee)) +* **know-your-world:** add session-based give-up voting and fix cursor emojis ([bb2d6fc](https://github.com/antialias/soroban-abacus-flashcards/commit/bb2d6fc7d80632ad960dad2ea70a6ee792d0882e)) +* **know-your-world:** add speech announcements and compass-style crosshairs ([e0b762e](https://github.com/antialias/soroban-abacus-flashcards/commit/e0b762e3ee88771009ede39622a6722b4e366ce2)) +* **know-your-world:** add speech synthesis for hints with auto-hint/auto-speak ([cd841ff](https://github.com/antialias/soroban-abacus-flashcards/commit/cd841ff7dc3e04eb68b39b712ad8e80d73b27c8d)) +* **know-your-world:** add Strudel-based music system ([7dab07b](https://github.com/antialias/soroban-abacus-flashcards/commit/7dab07b3a73817e2900f74e928452d9685ad6a20)) +* **know-your-world:** add SVG path geometry helpers for future use ([ea141f0](https://github.com/antialias/soroban-abacus-flashcards/commit/ea141f04f6bf5286369f8e67391ad9812fa05448)) +* **know-your-world:** add turn-based restrictions for letter typing ([45730bb](https://github.com/antialias/soroban-abacus-flashcards/commit/45730bb4db3f3c83f02188ab5906f80b1abe3467)) +* **know-your-world:** align guidance UI with assistance levels ([7e7a8dc](https://github.com/antialias/soroban-abacus-flashcards/commit/7e7a8dc1e8577ffabee9d7853200b4aad1926d82)) +* **know-your-world:** auto-enable hot/cold for learning mode ([dcc32c2](https://github.com/antialias/soroban-abacus-flashcards/commit/dcc32c288fe63317e57a4783afa5e93f73dc4f19)) +* **know-your-world:** enhance hint audio and region name display ([e6f58bf](https://github.com/antialias/soroban-abacus-flashcards/commit/e6f58bfd93a849fea3642d81a770f615fd88bc1f)) +* **know-your-world:** fix magnifier outline aspect ratio and add visual debug toggle ([ac915f2](https://github.com/antialias/soroban-abacus-flashcards/commit/ac915f2065736b37c97f5847e977bc5152c8a7ca)) +* **know-your-world:** full-screen layout with squish-through pointer lock escape ([1729418](https://github.com/antialias/soroban-abacus-flashcards/commit/1729418dc5673c01a8c77bd653d78f7aafda054f)) +* **know-your-world:** implement empirical scale measurement for 1:1 magnifier tracking ([39886e8](https://github.com/antialias/soroban-abacus-flashcards/commit/39886e859ca64967ca073e8172c4c8c8873b6102)) +* **know-your-world:** improve magnifier UX and hide abacus on games ([fa1514d](https://github.com/antialias/soroban-abacus-flashcards/commit/fa1514d351d90010a91e73f5c18fb23115154162)) +* **know-your-world:** improve mobile magnifier controls and animations ([4449fb1](https://github.com/antialias/soroban-abacus-flashcards/commit/4449fb19b4b66d18167bf9f10eb1364471d63535)) +* **know-your-world:** improve mobile magnifier with adaptive zoom and select button ([60cf98e](https://github.com/antialias/soroban-abacus-flashcards/commit/60cf98e77a901c42210833c7b59350d28501eb52)) +* **know-your-world:** improve region size filter layout ([558d369](https://github.com/antialias/soroban-abacus-flashcards/commit/558d369ba05f5822165d314c61d6c4eaff68f8f6)) +* **know-your-world:** improve setup screen UX ([dc4d621](https://github.com/antialias/soroban-abacus-flashcards/commit/dc4d62195b52fce1b584f6cc9c404ba6ceec2a27)) +* **know-your-world:** improve takeover UI and fix celebration sound bug ([a8c6b84](https://github.com/antialias/soroban-abacus-flashcards/commit/a8c6b848551e9d2751c702525072c193e8bbd69f)) +* **know-your-world:** live crop updates and safe zone improvements ([3f4691e](https://github.com/antialias/soroban-abacus-flashcards/commit/3f4691e8a3401058014d3e729827ec46dfcd08fd)) +* **know-your-world:** make magnifier lazy - only move when cursor obscured ([ac82564](https://github.com/antialias/soroban-abacus-flashcards/commit/ac82564eacec8d3ea4686d4ca3c6132ed7be0342)) +* **know-your-world:** make magnifier size responsive to aspect ratio ([5920cb4](https://github.com/antialias/soroban-abacus-flashcards/commit/5920cb4dc3c2e0aa611d3d770ea5d0220e3413ae)) +* **know-your-world:** match setup phase map positioning with gameplay ([b030558](https://github.com/antialias/soroban-abacus-flashcards/commit/b0305581f90c8c6751b2ac84b02d5e1b05386c6e)) +* **know-your-world:** move region size filters inside map preview ([81301ab](https://github.com/antialias/soroban-abacus-flashcards/commit/81301ab1484247e905f05faba81862d63256b5bd)) +* **know-your-world:** move start button below settings controls ([a05c4ca](https://github.com/antialias/soroban-abacus-flashcards/commit/a05c4ca5bf52ad5a0b807a7b8702cd5ce0b3a6ef)) +* **know-your-world:** Phase 2 - integrate useMagnifierZoom hook ([8ce878d](https://github.com/antialias/soroban-abacus-flashcards/commit/8ce878d03ef9cc543dc0c14185c75008ea0d7d1a)) +* **know-your-world:** responsive setup + travel-themed start button ([02762fa](https://github.com/antialias/soroban-abacus-flashcards/commit/02762fad81dcc71ece14f9cc463812f85c1cc275)) +* **know-your-world:** separate region filtering from assistance level ([9499e4e](https://github.com/antialias/soroban-abacus-flashcards/commit/9499e4e8b51ea48aac067473e36d469f62e2b9b1)) +* **know-your-world:** show magnifier on mobile drag gesture ([a02a710](https://github.com/antialias/soroban-abacus-flashcards/commit/a02a7108e9825bb7de5f72ae426d1c995ef66422)) +* **know-your-world:** speak country names in user's locale ([426a1e6](https://github.com/antialias/soroban-abacus-flashcards/commit/426a1e68687da1f4bbf84aa855004571892f60f8)) +* **know-your-world:** sync letter confirmation across multiplayer sessions ([655660f](https://github.com/antialias/soroban-abacus-flashcards/commit/655660f7cfd61d3d464176d06e08267c7afb9c80)) +* **know-your-world:** unified region selector with inline list on desktop ([d329d80](https://github.com/antialias/soroban-abacus-flashcards/commit/d329d803997bb25e73b833e692306d34f77bc0b1)) +* **know-your-world:** unify setup and gameplay UI positions ([141a506](https://github.com/antialias/soroban-abacus-flashcards/commit/141a50673941b4a85471626b1a01ea85fffa9d2e)) +* **know-your-world:** unify setup UI positions with gameplay ([c1a0485](https://github.com/antialias/soroban-abacus-flashcards/commit/c1a0485b1d5421c09afec480664261e033bc22fa)) +* **know-your-world:** wire interaction state machine to MapRenderer ([7e55953](https://github.com/antialias/soroban-abacus-flashcards/commit/7e55953eeec79be431e3f8f643e589322946de0c)) +* make 404 page abacus hero-sized and responsive ([41de252](https://github.com/antialias/soroban-abacus-flashcards/commit/41de25238f762b1ccb27500ca3b6a1f105ce7eaa)) +* make resize handle grab tab fully draggable with rounded corners ([be40f70](https://github.com/antialias/soroban-abacus-flashcards/commit/be40f70bc6dba40ee0a1e6cdfb75c1833943bccb)) +* make scaffolding and preview collapsible ([804fb1a](https://github.com/antialias/soroban-abacus-flashcards/commit/804fb1a2f65e647919e2c6eb0bd0d83763b65f0e)) +* make super zoom threshold configurable and increase to 3px ([d7ce474](https://github.com/antialias/soroban-abacus-flashcards/commit/d7ce474a517c3690f92a077999377b59c314e7f8)) +* make zoom transitions 4x slower for smoother experience ([ca752bd](https://github.com/antialias/soroban-abacus-flashcards/commit/ca752bd0aa073927b5c4d85d379002cb049a505f)) +* move difficulty parameters into Smart mode ([4b66758](https://github.com/antialias/soroban-abacus-flashcards/commit/4b667587f826ae68d81da7d7708d67b6362bfc51)) +* move layout controls to OrientationPanel with toggles ([995966f](https://github.com/antialias/soroban-abacus-flashcards/commit/995966ffbc5c745a938fff0f7e1420fd6ff5c471)) +* operator-specific scaffolding for mixed mastery mode ([4d7d000](https://github.com/antialias/soroban-abacus-flashcards/commit/4d7d0000468661cfb66d6030e96cb77d23907b0e)) +* optimize problem generation and add duplicate warning system ([11c46c1](https://github.com/antialias/soroban-abacus-flashcards/commit/11c46c1b44f369ff568414c84acec54540386622)) +* pause zoom animation at precision mode threshold ([c4989b3](https://github.com/antialias/soroban-abacus-flashcards/commit/c4989b3ab0058a77b3c0cf9c54bfe9dde7935a9c)) +* pause/resume zoom animation at precision mode threshold ([bdf59e5](https://github.com/antialias/soroban-abacus-flashcards/commit/bdf59e571d4fe515c3a4990bcdc4ed2f6ee70d19)) +* pause/resume zoom animation at precision mode threshold ([4687820](https://github.com/antialias/soroban-abacus-flashcards/commit/4687820d8a7088c6ee4e2a21188db5d6e991e4dc)) +* persist seed and prngAlgorithm for exact problem reproducibility ([8cb2209](https://github.com/antialias/soroban-abacus-flashcards/commit/8cb2209d8406fc9a62298e4aef3f5e19f5a8ef2c)) +* **practice:** add dark mode support and fix doubled answer digits ([026993c](https://github.com/antialias/soroban-abacus-flashcards/commit/026993cb05e74ee7f580c972ae7e92db74ce1c54)) +* **practice:** add progressive help overlay with proper positioning ([9a4ab82](https://github.com/antialias/soroban-abacus-flashcards/commit/9a4ab8296ed5d28dc4e9cb2fbd1be4c50eb251f7)) +* **practice:** add session HUD with tape-deck controls and PageWithNav ([b19c6d0](https://github.com/antialias/soroban-abacus-flashcards/commit/b19c6d0eca8331983990f070e704cd9249824265)) +* **practice:** add smooth problem transition animation ([b12112e](https://github.com/antialias/soroban-abacus-flashcards/commit/b12112e8da30d2e335cefef9f3c26eab77ae919b)) +* **practice:** add student onboarding and offline sync features ([b52f054](https://github.com/antialias/soroban-abacus-flashcards/commit/b52f0547afaf72104b893496cac4a0092cb07ec6)) +* **practice:** add three-part daily practice session system ([5855438](https://github.com/antialias/soroban-abacus-flashcards/commit/585543809afe7b84f01a7ff644a30f35c2b6c1c4)) +* **practice:** improve help UX with coach hints and simplified UI ([19169ad](https://github.com/antialias/soroban-abacus-flashcards/commit/19169ad9feff297a08c59077d3c2fc3b0c8fdf99)) +* **practice:** integrate progressive help with decomposition display ([804d937](https://github.com/antialias/soroban-abacus-flashcards/commit/804d937dd989a2feb9a26330b2d7ded96765b106)) +* redesign shared worksheet viewer with read-only studio and proper error handling ([23dccc0](https://github.com/antialias/soroban-abacus-flashcards/commit/23dccc0ef3a81be2c2334c78b5bc9b5424e7332e)) +* remove all easter egg hints from 404 page ([1756182](https://github.com/antialias/soroban-abacus-flashcards/commit/17561829efa4831077cd927a64bc2b62fc025c55)) +* remove redundant navigation buttons from 404 page ([e5262e5](https://github.com/antialias/soroban-abacus-flashcards/commit/e5262e50071a6c003160f1f77adcfbbea75e8598)) +* show magnifier only when current target region needs magnification ([996c973](https://github.com/antialias/soroban-abacus-flashcards/commit/996c973774286768952454c369dff2b37d875833)) +* show magnifier only when target region needs it ([c6997ac](https://github.com/antialias/soroban-abacus-flashcards/commit/c6997ac9a7122f415c85eef388a543e7c44337f6)) +* show visual feedback for auto-resolved scaffolding values ([fbe776a](https://github.com/antialias/soroban-abacus-flashcards/commit/fbe776ac0978639af79ab256989252b58472f682)) +* smooth cursor dampening transitions with react-spring ([66544dc](https://github.com/antialias/soroban-abacus-flashcards/commit/66544dc7dd0d573151a0c924c8a671939868a971)) +* **thermometer:** add "only" buttons to quickly select single category ([623f882](https://github.com/antialias/soroban-abacus-flashcards/commit/623f882075f03d4dfa7cd823974f9c3f773d3b0b)) +* **worksheets:** add 3x scale effect to thrown dice ([920a855](https://github.com/antialias/soroban-abacus-flashcards/commit/920a855eb5f5b4415d7d8acdc5669c0d31a927d0)) +* **worksheets:** add draggable dice easter egg with physics ([b8e66df](https://github.com/antialias/soroban-abacus-flashcards/commit/b8e66dfc17c359066b9e1bde656d2edc32420294)) +* **worksheets:** add duplicate risk warnings to page selector UI ([1d8dceb](https://github.com/antialias/soroban-abacus-flashcards/commit/1d8dceb55b10d00127f7cf624fd279acd1f00e1d)) +* **worksheets:** add foundational steps to progression path ([7e6f99b](https://github.com/antialias/soroban-abacus-flashcards/commit/7e6f99b78c9162e5004402dadd00e7cdc6fc684c)) +* **worksheets:** add QR codes with share codes for easy worksheet sharing ([a0e73d9](https://github.com/antialias/soroban-abacus-flashcards/commit/a0e73d971bb1a6994d300ddf9b7717d53076b05f)) +* **worksheets:** add shuffle button with animated dice icon ([f97efb5](https://github.com/antialias/soroban-abacus-flashcards/commit/f97efb5c94ca00bf7b9fbaa48d65981f2d1766a1)) +* **worksheets:** add viewport edge ricochet to dice physics ([c6db7dc](https://github.com/antialias/soroban-abacus-flashcards/commit/c6db7dcfa2a6f718201b65c3ace6aa5bb85fbb05)) +* **worksheets:** enhance dice throw physics for natural feel ([047a960](https://github.com/antialias/soroban-abacus-flashcards/commit/047a96056734418f0c205098eba4a64490927557)) +* **worksheets:** restore mastery progression UI with 3-way mode selector ([26a0885](https://github.com/antialias/soroban-abacus-flashcards/commit/26a08859d795a4d7b3643756cb2a8d64a56bf6dc)) +* **worksheets:** smooth dice rotation settle to final face ([d00c707](https://github.com/antialias/soroban-abacus-flashcards/commit/d00c70750e4b9b01abb97dc7d668f782503a9dbd)) +* **worksheets:** upgrade to 3D dice with random rotation animation ([3cd5e49](https://github.com/antialias/soroban-abacus-flashcards/commit/3cd5e4992bed87ecf5f87dd30973811b71b8e99d)) + + +### Performance Improvements + +* add spatial filtering to skip distant regions ([8cb4c88](https://github.com/antialias/soroban-abacus-flashcards/commit/8cb4c88bef6688dd9fe7364545878b5b181f7257)) +* cache polygon conversions to fix performance regression ([348ce8f](https://github.com/antialias/soroban-abacus-flashcards/commit/348ce8f3146c2728c6f8a0bb19d85743de34ba10)) +* **know-your-world:** memoize state machine return value and remove debug logging ([d85b976](https://github.com/antialias/soroban-abacus-flashcards/commit/d85b976f8b3d6a26e2e0b2d1b6cdb23ccda93445)) +* reduce retry limit from 3000 to 100 in problem generators ([08fef59](https://github.com/antialias/soroban-abacus-flashcards/commit/08fef59cc5d5af788495a96d30580c6ff8f13ee9)) + + +### Reverts + +* **know-your-world:** undo premature extractions, restore working state ([f0bf205](https://github.com/antialias/soroban-abacus-flashcards/commit/f0bf2050d3500de38ac776e026179b7e31fc28c8)) +* remove ngrok and LAN IP detection ([0040b57](https://github.com/antialias/soroban-abacus-flashcards/commit/0040b578296b061d5795df220162970d37edd156)) + # [2.14.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v2.13.2...abacus-react-v2.14.0) (2025-11-08) ### Bug Fixes