chore(release): 4.68.0 [skip ci]
## [4.68.0](https://github.com/antialias/soroban-abacus-flashcards/compare/v4.67.1...v4.68.0) (2025-11-23) ### Features * **3d-abacus:** change default columns from 13 to 4 ([cd15c70](cd15c70a25)) * **abacus-react:** add AbacusStatic for React Server Components ([3b8e864](3b8e864cfa)) * **abacus-react:** add automatic theme detection for numeral colors ([cbfd861](cbfd8618a9)) * **abacus-react:** add comprehensive Storybook stories for automatic theme detection ([8ef57cc](8ef57ccec5)) * **abacus-react:** add core utility functions for state management ([e65541c](e65541c100)) * **abacus-react:** add layout and educational props ([35bbcec](35bbcecb9e)) * **abacus-react:** add pre-defined theme presets ([cf1f950](cf1f950c7c)) * **abacus-react:** add React hooks for abacus calculations ([de038d2](de038d2afc)) * **abacus-react:** add separate /static export path for React Server Components ([ed69f6b](ed69f6b917)) * **abacus-react:** add shared dimension calculator for consistent sizing ([e5ba772](e5ba772fde)) * **abacus-react:** export new utilities, hooks, and themes ([ce4e44d](ce4e44d630)) * **abacus:** add nativeAbacusNumbers setting to schema and UI ([79f7347](79f7347d48)) * add 'auto' option for scaffolding to defer to mastery progression ([a945a62](a945a620c4)) * add 3D printing support for abacus models ([dafdfdd](dafdfdd233)) * add adaptive zoom magnifier for Know Your World map ([1e8846c](1e8846cdb1)) * add AI-powered worksheet grading with GPT-5 vision ([6e95732](6e9573288f)) * add API endpoint for live worksheet preview examples ([bef3a21](bef3a21442)) * add arrow from '1' in borrow hint pointing right ([b718994](b718994dab)) * add auto scaffolding mode with visual feedback and override notices ([b62db5a](b62db5a323)) * add client-side OpenSCAD WASM support for 3D preview ([eaaf17c](eaaf17cd4c)) * add close button and theme support to mobile menu ([ea41b32](ea41b323d0)) * add comprehensive error handling for arcade games ([e8c5256](e8c52561a2)) * add comprehensive metadata, SEO, and make AbacusReact SSR-compatible ([0922ea1](0922ea10b7)) * add comprehensive Storybook coverage and migration guide ([7a4a37e](7a4a37ec6d)) * add continent filtering to Know Your World game ([7bb03b8](7bb03b8409)) * add cropToActiveBeads prop to AbacusStatic and AbacusReact ([35b0824](35b0824fc4)) * add custom error boundaries with navigation ([73cc418](73cc4185c3)) * add database schema for custom skills and skill customizations ([906fa63](906fa63f24)) * add diagonal arrow from '1' to borrowed 10s box ([a9319c3](a9319c3bd8)) * add DisplayOptionsPreview component with debouncing ([6502da7](6502da7e37)) * add download and share buttons to shared worksheet viewer ([9b8947a](9b8947a198)) * add dynamic layout preview component for orientation selection ([8df62d6](8df62d6a45)) * add dynamic operator icon to tab navigation ([b6ff995](b6ff995a8c)) * add exponential zoom scaling for sub-pixel regions ([101213b](101213ba1c)) * add fancy QR codes with abacus logo throughout app ([ebcabf9](ebcabf9bb9)) * add function-based custom bead rendering and HTTP status code easter eggs ([fde5ae9](fde5ae9164)) * add game preview system with mock arcade environment ([25880cc](25880cc7e4)) * add infrastructure for borrowing hints toggle ([74c6756](74c67566d2)) * add interactive world map continent selector ([245005c](245005c8ec)) * add Know Your World geography quiz game ([25e24a7](25e24a7cbc)) * add mobile drawer and detailed summary for shared worksheets ([0a35e70](0a35e70e28)) * add ngrok tunnel to dev server for HTTPS testing ([ab2bfde](ab2bfde9c2)) * add per-country coloring and individual region clicks to continent selector ([2e9f409](2e9f409f26)) * add per-page worksheet generation API ([6398fbe](6398fbead9)) * add per-player stats tracking system ([613301c](613301cd13)) * add Pointer Lock API for precision mode to prevent edge issues ([4d5953d](4d5953d034)) * add precision controls for tiny regions in Know Your World ([3bf127f](3bf127f344)) * add prev/next navigation buttons to mixed mode mini skill panes ([498df2c](498df2ca5a)) * add problem space validation to warn about duplicate risk ([0b8c180](0b8c1803ff)) * add responsive mobile drawer with draggable settings button ([fc1d7fc](fc1d7fcbd6)) * add responsive page button layout with dynamic dropdown ([3f33cd1](3f33cd1924)) * add shared worksheet viewer with open-in-editor functionality ([4b8b3ee](4b8b3ee532)) * add single-page worksheet preview API endpoint ([10e97db](10e97db78a)) * add skill configuration system with interactive 2D difficulty plot ([7fbc743](7fbc743c4c)), closes [#9333](https://github.com/antialias/soroban-abacus-flashcards/issues/9333) [#10b981](https://github.com/antialias/soroban-abacus-flashcards/issues/10b981) * add smooth curved arrow for borrowing hints ([112745c](112745ce16)) * add smooth fade-in animation for 404 message text changes ([e88380a](e88380a48d)) * add split-action share button with copy shortcut ([085d200](085d200da4)) * add Strategy & Tactics section to Rithmomachia guide ([81ead65](81ead65680)) * add theme support to abacus style dropdown ([2e294ee](2e294ee820)) * add theme support to config panel components ([c868421](c8684213fa)) * add theme support to desktop hamburger menu ([ab9272b](ab9272bee6)) * add theme support to MyAbacus button ([702c1c9](702c1c9af2)) * add theme support to orientation and generate panels ([e38775b](e38775b991)) * add theme support to worksheet page container ([5c14925](5c14925d7d)) * add theme support to worksheet preview ([693b679](693b679965)) * add themed backgrounds and enhanced styling to 404 page ([dd14062](dd14062112)) * add unified trophy abacus with hero mode integration ([6620418](6620418a70)) * add visible grab tab to worksheet panel resize handle ([288e6ed](288e6ed878)) * add visual grab tab to resize handle with rounded corners ([6e55d5a](6e55d5add7)) * add visual warnings to page selector buttons ([5a87799](5a8779969c)) * add worksheet generation core logic and helpers ([163517d](163517db7d)) * add worksheet sharing infrastructure with database persistence ([7b4c7c3](7b4c7c3fb6)) * add worksheet studio with comprehensive features ([d5672bd](d5672bdddf)) * apply skill-specific scaffolding and fix mini card heights ([ee90182](ee90182ff2)) * **arcade:** add ability to deactivate remote players without kicking user ([3628426](3628426a56)) * **arcade:** add native abacus numbers support to pressure gauge ([1d525c7](1d525c7b53)) * **arcade:** add Rithmomachia (Battle of Numbers) game ([2fc0a05](2fc0a05f7f)) * **arcade:** add yjs-demo collaborative game and Yjs persistence layer ([d568955](d568955d6a)) * **arcade:** auto-create room when user has none ([ff88c3a](ff88c3a1b8)) * **blog:** add "The Calculator Won" post on abacus education history ([8e04867](8e0486765a)) * **blog:** add blog pages and API endpoints ([1886ea0](1886ea0e73)) * **blog:** add navigation bar to blog pages ([6b4ed5d](6b4ed5d9dc)) * **blog:** add subtraction and multi-digit worksheet blog posts ([dd9587f](dd9587f8cd)) * **blog:** generate worksheet examples showing scaffolding progression ([b628a34](b628a34605)) * calculate zoom based on region under cursor, target 15% area ([6736336](6736336317)) * **calendar:** add beautiful daily calendar with locale-based paper size detection ([bdca315](bdca3154f8)) * **calendar:** add i18n support and cropped abacus day numbers ([5242f89](5242f890f7)) * **card-sorting:** add activity feed notifications for collaborative mode ([1461414](1461414ef4)) * **card-sorting:** add auto-submit countdown for perfect sequences ([780a716](780a7161bc)) * **card-sorting:** add bezier curves to connecting arrows ([4d8e873](4d8e873358)) * **card-sorting:** add CardPosition type and position syncing ([656f5a7](656f5a7838)) * **card-sorting:** add collapsible stats sidebar for spectators ([6527c26](6527c26a81)) * **card-sorting:** add game mode selector UI to setup phase ([d25b888](d25b888ffb)) * **card-sorting:** add GameMode type system for multiplayer support ([fd76533](fd765335ef)) * **card-sorting:** add green border to correctly positioned cards ([16fca86](16fca86b76)), closes [#22c55](https://github.com/antialias/soroban-abacus-flashcards/issues/22c55) * **card-sorting:** add player emoji indicators on moving cards ([3a82099](3a82099757)) * **card-sorting:** add react-spring animations for real-time sync ([c367e0c](c367e0ceec)) * **card-sorting:** add smooth transition to drop shadow ([b0b93d0](b0b93d0175)) * **card-sorting:** add spectator mode UI enhancements ([ee7345d](ee7345d641)), closes [#6366f1](https://github.com/antialias/soroban-abacus-flashcards/issues/6366f1) [#8b5cf6](https://github.com/antialias/soroban-abacus-flashcards/issues/8b5cf6) * **card-sorting:** add team scoring UI for collaborative mode ([ed6f177](ed6f177914)), closes [#a78](https://github.com/antialias/soroban-abacus-flashcards/issues/a78) [#8b5cf6](https://github.com/antialias/soroban-abacus-flashcards/issues/8b5cf6) * **card-sorting:** add updateCardPositions action to Provider ([f6ed4a2](f6ed4a27a2)) * **card-sorting:** auto-arrange prefix/suffix cards in corners ([4ba7f24](4ba7f24717)) * **card-sorting:** fade correctly positioned cards to 50% opacity ([7028cfc](7028cfc511)) * **card-sorting:** gentler spring animation for locked cards ([47189cb](47189cb6e7)) * **card-sorting:** implement continuous bezier curve paths ([2d93024](2d9302410f)) * **card-sorting:** improve card distribution for natural scattered look ([0b0503f](0b0503f035)) * **card-sorting:** make player emoji fill entire card background ([2e7a02c](2e7a02c9e4)) * **card-sorting:** optimize results screen for mobile ([d188789](d188789069)) * **card-sorting:** redesign setup screen with modern UI ([73cf967](73cf967492)) * **card-sorting:** scale correctly positioned cards to 50% ([222dc55](222dc555fa)) * **card-sorting:** shrink/fade cards in correct suffix as well ([8f6feec](8f6feec4f2)) * **card-sorting:** smooth spring transition from game table to results grid ([c5f39d5](c5f39d51eb)) * **card-sorting:** wrap prefix/suffix cards to multiple rows ([e3184dd](e3184dd0d4)) * complete 3D enhancement integration for all three proposals ([5ac55cc](5ac55cc149)) * convert operator selection to checkboxes with required validation ([c997c4a](c997c4a7ba)) * create unified difficulty interface with 2-tab selector ([0b7382f](0b7382f1b6)) * **create-room:** replace hardcoded game grid with dynamic Radix Select dropdown ([83d0ba2](83d0ba26f5)) * **create:** add worksheet creator card to hub page ([c84d712](c84d7122f3)) * dynamic day-of-month favicon using subprocess pattern ([4d0795a](4d0795a9df)) * dynamically crop favicon to active beads for maximum size ([5670322](567032296a)) * enable 3D enhancement on hero/open MyAbacus modes ([37e330f](37e330f26e)) * enable production source maps for easier debugging ([d992e98](d992e98d77)) * enhance scaffolding tab with live preview and resolved display rules ([9a5a0d4](9a5a0d4e3c)) * **flashcards:** add live preview functionality ([b38bec8](b38bec814b)) * **games:** add autoplay and improve carousel layout ([9f51edf](9f51edfaa9)) * **games:** add horizontal scroll support to carousels ([a224abb](a224abb6f6)) * **games:** add rotating games hero carousel ([24231e6](24231e6b2e)) * handle cascading borrows in borrowing hints ([3e1b51b](3e1b51bd84)) * hide easter egg hint until first discovery ([c2c7153](c2c71531ae)) * **homepage:** responsive 2-column layout with data attributes ([ad33056](ad33056b12)) * **i18n:** add dynamic locale switching without page reload ([fe9bfea](fe9bfeabf9)) * **i18n:** add global language selector to navigation ([0506360](0506360117)) * **i18n:** add homepage translations for all supported languages ([8c9d35a](8c9d35a3b4)) * **i18n:** add internationalization for all create pages ([b080970](b080970d76)) * **i18n:** add Old High German (goh) language support ([b334a15](b334a15255)) * **i18n:** add translations for addition worksheet creator ([2bf645a](2bf645a30c)) * **i18n:** add worksheet translations for all languages ([6acd15a](6acd15aab8)) * **i18n:** complete Old High German translations for all locales ([0b06a1c](0b06a1ce00)) * **i18n:** internationalize games page and tutorial content ([4253964](4253964af1)) * **i18n:** internationalize homepage with English translations ([40cff14](40cff143c7)) * **i18n:** migrate from react-i18next to next-intl ([9016b76](9016b76024)) * **i18n:** update games page hero section copy ([6333c60](6333c60352)) * implement binary search for optimal zoom level ([1a54f09](1a54f09814)) * implement borrowing hints arrow visualization ([b2f875c](b2f875c5a5)) * implement borrowing hints visual guidance ([89b8f98](89b8f98662)) * implement full-screen mobile hamburger menu with portal ([615cd28](615cd28829)) * implement lazy loading for worksheet preview with cursor pagination ([8b3d019](8b3d019652)) * implement lazy loading for worksheet preview with cursor pagination ([2a7d67d](2a7d67db58)) * implement light/dark theme system with semantic tokens ([210a014](210a014699)) * implement two-column landscape layout with smart viewport-based flexbox ([b57458b](b57458b039)) * improve shared worksheet viewer UX and multi-page support ([1c10a82](1c10a82c78)) * improve tab navigation layout and add pages to layout button ([926a029](926a029ff8)) * improve worksheet preview placeholder with cartoonish grid layout ([57fb99a](57fb99af63)) * increase max super zoom to 120x for ultra-tiny regions ([9b782be](9b782beabf)) * increase max zoom to 1000x with detailed debug logging ([a6be05f](a6be05f8c1)) * install embla-carousel-autoplay for games carousel ([946e5d1](946e5d1910)) * install embla-carousel-react for player profile carousel ([642ae95](642ae95738)) * internationalize guide page with 6 languages ([e9c320b](e9c320bb10)) * internationalize tutorial player ([26d41cf](26d41cfd05)) * **know-your-world:** full-screen layout with squish-through pointer lock escape ([1729418](1729418dc5)) * make 404 page abacus hero-sized and responsive ([41de252](41de25238f)) * make mobile menu more responsive with larger touch targets ([3ad244f](3ad244f2d3)) * make resize handle grab tab fully draggable with rounded corners ([be40f70](be40f70bc6)) * make scaffolding and preview collapsible ([804fb1a](804fb1a2f6)) * make super zoom threshold configurable and increase to 3px ([d7ce474](d7ce474a51)) * make zoom transitions 4x slower for smoother experience ([ca752bd](ca752bd0aa)) * move difficulty parameters into Smart mode ([4b66758](4b667587f8)) * move layout controls to OrientationPanel with toggles ([995966f](995966ffbc)) * operator-specific scaffolding for mixed mastery mode ([4d7d000](4d7d000046)) * optimize card sorting for mobile displays ([b443ee9](b443ee9cdc)) * optimize problem generation and add duplicate warning system ([11c46c1](11c46c1b44)) * optimize ten-frame blog examples for dark theme ([904701d](904701da2b)) * persist seed and prngAlgorithm for exact problem reproducibility ([8cb2209](8cb2209d84)) * Redesign Rithmomachia setup page with dramatic medieval theme ([6ae4d13](6ae4d13dc7)) * redesign shared worksheet viewer with read-only studio and proper error handling ([23dccc0](23dccc0ef3)) * refactor borrow scaffolding into unified UI with column alignment ([41b5c05](41b5c057ed)) * remove all easter egg hints from 404 page ([1756182](17561829ef)) * remove redundant navigation buttons from 404 page ([e5262e5](e5262e5007)) * replace static examples with live preview in display options ([4361ad3](4361ad3005)) * **rithmomachia:** add 80% opacity to guide modal when not hovered ([4a78485](4a78485d2e)) * **rithmomachia:** add CaptureContext for capture dialog state management ([d7eb957](d7eb957a8d)) * **rithmomachia:** add ghost panel preview for guide docking ([c0d6526](c0d6526d30)) * **rithmomachia:** add guide docking with resizable panels ([f457f1a](f457f1a1c2)) * **rithmomachia:** add helper piece selection for mathematical captures ([cae3359](cae3359587)) * **rithmomachia:** add helpful error messages for failed captures ([b172440](b172440a41)) * **rithmomachia:** add initial board visual to guide Overview section ([d42bcff](d42bcff0d9)) * **rithmomachia:** Add interactive playing guide modal ([3121d82](3121d8240a)) * **rithmomachia:** add number bond visualization and helper placeholders ([82d8913](82d89131f0)) * **rithmomachia:** add ratio capture example to guide ([9150b0c](9150b0c678)) * **rithmomachia:** add standalone guide page route ([3fcc79f](3fcc79fe9e)) * **rithmomachia:** add useBoardLayout hook for centralized layout calculations ([27f1c98](27f1c989d5)) * **rithmomachia:** add usePieceSelection hook for selection state management ([275f401](275f401e3c)) * **rithmomachia:** add visual board examples to Capture section ([74bc3c0](74bc3c0dcf)) * **rithmomachia:** add visual board examples to Harmony section ([1d5f01c](1d5f01c966)) * **rithmomachia:** add visual winning example to Victory section ([b7fac78](b7fac78829)) * **rithmomachia:** auto-size tab labels with react-textfit ([9fd5406](9fd54067ce)) * **rithmomachia:** cycle through valid helpers with dynamic number tooltips ([4829e41](4829e41ea1)) * **rithmomachia:** enhance capture relation UI with smooth animations ([0a30801](0a308016e9)) * **rithmomachia:** enhance Harmony section with comprehensive content ([f555856](f5558563ea)) * **rithmomachia:** enhance Pieces section with visual examples and pyramid details ([55aff82](55aff829f4)) * **rithmomachia:** enhance Pyramid section with comprehensive details ([9fde1ef](9fde1ef9e7)) * **rithmomachia:** guide defaults to docked right on open ([11f674d](11f674d542)) * **rithmomachia:** improve guide pieces section layout ([a270bfc](a270bfc0cc)) * **rithmomachia:** improve guide UX and add persistence ([b314740](b314740697)) * **rithmomachia:** improve roster status notice UX ([e27df45](e27df45256)) * **rithmomachia:** integrate roster warning into game nav ([8a11594](8a11594203)) * **rithmomachia:** make guide modal ultra-responsive down to 150px width ([0474197](04741971b2)) * **rithmomachia:** recreate original guide modal header layout ([2489695](24896957d0)) * **rithmomachia:** show capture error on hover instead of click ([339b678](339b6780f6)) * **rithmomachia:** show pyramid face numbers on hover instead of selection ([b0c4523](b0c4523c0b)) * **rithmomachia:** show pyramid face numbers when selected ([5c186f3](5c186f3947)) * **rithmomachia:** show pyramid face numbers when selected with subtle animation ([5c2ddbe](5c2ddbef05)) * **rithmomachia:** show real preview layout when dragging guide to dock ([17d2460](17d2460a87)) * **rithmomachia:** simplify guide language for clarity ([85cb630](85cb630add)) * **rithmomachia:** skip helper selection UI and auto-select first valid helper ([be2a00e](be2a00e8b3)) * **rithmomachia:** Update harmony system to classical three-piece proportions ([08c9762](08c97620f5)) * **rithmomachia:** Update to traditional board setup with 25 pieces per side ([0769eaa](0769eaaa1d)) * **rithmomachia:** use actual piece SVGs in number bond with 2.5s rotation animation ([976a7de](976a7de949)) * **room-share:** add QR code button for easy mobile joining ([349290a](349290ac6a)) * show rithmomachia turn in nav ([7c89bfe](7c89bfef9c)) * show visual feedback for auto-resolved scaffolding values ([fbe776a](fbe776ac09)) * smooth cursor dampening transitions with react-spring ([66544dc](66544dc7dd)) * switch to royal color theme with transparent background ([944ad65](944ad6574e)), closes [#fbbf24](https://github.com/antialias/soroban-abacus-flashcards/issues/fbbf24) [#f59e0](https://github.com/antialias/soroban-abacus-flashcards/issues/f59e0) [#a855f7](https://github.com/antialias/soroban-abacus-flashcards/issues/a855f7) [#7e22](https://github.com/antialias/soroban-abacus-flashcards/issues/7e22) * **web:** add test page for AbacusStatic RSC compatibility ([903dea2](903dea2584)) * **web:** add test page for AbacusStatic Server Component ([3588d5a](3588d5acde)) * **web:** add Typst-based preview endpoint with React Suspense ([599a758](599a758471)) * **web:** add year abacus to calendar header and make grid bolder ([867c7ee](867c7ee172)), closes [#333](https://github.com/antialias/soroban-abacus-flashcards/issues/333) * **web:** improve calendar abacus preview styling ([8439727](8439727b15)) * **web:** optimize monthly calendar for single-page layout ([b277a89](b277a89415)) * **web:** redesign monthly calendar as single composite SVG ([8ce8038](8ce8038bae)) * **worksheets:** Add borrow notation scaffolding for subtraction ([ff161d4](ff161d4e30)) * **worksheets:** add color-coding to difficulty presets with interpolation ([b1201b8](b1201b83c0)) * **worksheets:** add customizable operands to preview ([21cda18](21cda181e4)) * **worksheets:** add diagonal-split pattern to carry boxes ([5b91809](5b9180916e)) * **worksheets:** add difficulty preset dropdown for Smart mode ([49f6c02](49f6c029f6)) * **worksheets:** add double-digit addition worksheet creator ([1a75213](1a75213df0)) * **worksheets:** add duplicate risk warnings to page selector UI ([1d8dceb](1d8dceb55b)) * **worksheets:** add foundational steps to progression path ([7e6f99b](7e6f99b78c)) * **worksheets:** add interactive 2D difficulty map with hover preview ([b92b702](b92b702223)) * **worksheets:** add ModeSelector component for Smart/Manual mode switching ([4ffd47a](4ffd47a6b6)) * **worksheets:** add operator selection and subtraction problem generation ([ab87c6e](ab87c6ebe7)) * **worksheets:** add regrouping frequency controls to Manual mode ([f060692](f06069241f)) * **worksheets:** add subtraction problem analysis and implementation plan ([a7b48a2](a7b48a2879)) * **worksheets:** add type-safe config persistence with schema versioning ([0406adc](0406adc9da)) * **worksheets:** add V3 config schema with Smart/Manual mode discrimination ([cd1b3ed](cd1b3edc15)) * **worksheets:** add visual mode badges to scaffolding summary ([eaeeae4](eaeeae4ce8)) * **worksheets:** display scaffolding attributes on separate lines with fixed button height ([cc9fff7](cc9fff7733)) * **worksheets:** enhance addition worksheets with ten-frames and refinements ([71ad300](71ad300c23)) * **worksheets:** filter operator-specific scaffolds from difficulty change descriptions ([cace1c7](cace1c75c6)) * **worksheets:** filter operator-specific scaffolds from preset summaries ([8407b07](8407b070f9)) * **worksheets:** generate discrete pages with precise sizing ([56c0227](56c0227e9f)) * **worksheets:** implement auto-save and load for worksheet settings ([186fa81](186fa81b08)) * **worksheets:** implement constrained 2D difficulty system with pedagogical zones ([c39b7f6](c39b7f6d3a)) * **worksheets:** implement true RGB color interpolation for custom difficulty ([952cffa](952cffa2d1)) * **worksheets:** implement unique place value colors for 1-6 digit problems ([65e272c](65e272c570)) * **worksheets:** improve difficulty controls and problem sizing ([aedeb45](aedeb456f1)) * **worksheets:** improve preset dropdown with descriptions and remove duplicate buttons ([852504a](852504a4fd)) * **worksheets:** improve preview error reporting ([d8b4951](d8b4951d63)) * **worksheets:** integrate subtraction scaffolding into smart difficulty mode ([15bded1](15bded1ab8)) * **worksheets:** make progressive difficulty available in both Smart and Manual modes ([54abd5d](54abd5de09)) * **worksheets:** Phase 10 - Add operator validation ([d93dfac](d93dfac461)) * **worksheets:** Phase 5 - Update typstGenerator for operator support ([b191bb9](b191bb9a82)) * **worksheets:** Phase 7 - Add operator to auto-save persistence ([01d0959](01d095942d)) * **worksheets:** Phase 8 - Update preview and example routes for operator ([0106068](010606848d)) * **worksheets:** Phase 9 - Update DisplayOptionsPreview for operator ([d5bbd78](d5bbd783b3)) * **worksheets:** pre-generate preview on server to eliminate loading flash ([02c9187](02c918713d)) * **worksheets:** redesign display options as toggle buttons ([ac3b749](ac3b749605)) * **worksheets:** reorganize orientation panel with Radix dropdown and compact layout ([f37960a](f37960aa94)) * **worksheets:** replace digit selector with Radix double-thumbed slider ([c0298cf](c0298cf65d)) * **worksheets:** restore mastery progression UI with 3-way mode selector ([26a0885](26a08859d7)) * **worksheets:** show enabled scaffolding aids instead of numeric level ([0b8b0d2](0b8b0d21c5)) * **worksheets:** show nearest presets for custom difficulty configurations ([0e3f0ae](0e3f0aed94)) * **worksheets:** simplify difficulty controls with collapsible regrouping pane ([bb363c0](bb363c0837)) * **worksheets:** update ConfigPanel with accurate page calculations ([2c0fbd9](2c0fbd9074)) * **worksheets:** update validation and generation for V3 mode-aware schema ([ada9600](ada96005f5)) * **worksheets:** use more vibrant and distinct difficulty colors ([984b75c](984b75cb94)) * **worksheets:** use scaffolding summary for all preset descriptions ([23f0f1d](23f0f1dc21)) ### Bug Fixes * **404:** reset easter egg config on page reload/close ([d6f1c13](d6f1c13317)) * **abacus-react:** add data-testid attributes back to beads for testing ([23ae1b0](23ae1b0c6f)) * **abacus-react:** correct column highlighting offset in AbacusStatic ([0641eb7](0641eb719e)) * **abacus-react:** fix animations by preventing component remounting ([be7d4c4](be7d4c4713)) * **abacus-react:** include space for numbers in viewBox calculation ([1da3358](1da3358db1)) * **abacus-react:** remove duplicate numeral rendering and fix dark mode colors ([fcbf0f5](fcbf0f5421)) * **abacus-react:** restore original AbacusReact measurements and positioning ([88c0baa](88c0baaad9)) * **abacus-react:** showNumbers prop was hardcoded to false, breaking numeral display ([de89dcd](de89dcddb3)) * add 'auto' to RuleMode type to prevent undefined display values ([a8636ca](a8636ca6a2)) * add comprehensive dark mode support to Smart Difficulty controls ([a65feb7](a65feb7344)) * add cooldown after quick-escape to prevent precision mode re-activation ([e885ae7](e885ae7ef4)) * add currentStepEstimate to required fields in JSON schema ([0d66c54](0d66c54991)) * add custom cursor when pointer lock is active ([5d6d6b4](5d6d6b4ddc)) * add light/dark mode support to tutorial tooltips and decomposition UI ([ea10249](ea10249e94)) * add missing blog dependencies to package.json ([ceefb2f](ceefb2f1bd)) * add missing color definitions to example route ([bc7ca12](bc7ca12158)) * add missing openDeploymentInfo prop to MinimalNav ([30879d8](30879d8959)) * add missing scaleX and scaleY number conversions ([ae6cc5e](ae6cc5e326)) * add missing selectedContinent to default config and fix ts-expect-error directives ([07e9224](07e92240e8)) * add mode descriptions and remove double borders ([6f2f6d4](6f2f6d444c)) * add seed and prngAlgorithm fields to all Zod schema versions (V1-V4) ([1782f42](1782f427f1)) * add shuffling to progressive difficulty mode & UI improvements ([38e9982](38e9982c3d)) * add xmlns to AbacusStatic for Typst SVG parsing ([98cd019](98cd019d4a)) * add zoom to selected continent and improve click detection ([6651979](6651979ea0)) * adjust hero abacus position to avoid covering subtitle ([f03d341](f03d341314)) * align share persistence with user session logic ([72c72fc](72c72fc218)) * **arcade:** add automatic retry for version conflict rejections ([fbcde25](fbcde2505f)) * **arcade:** allow deactivating players from users who left the room ([7c1c2d7](7c1c2d7beb)) * **arcade:** implement optimistic locking in session manager ([71fd66d](71fd66d96a)) * arrow direction - go RIGHT to borrowed 10s box, not left ([fab1fb1](fab1fb10b7)) * board rotation now properly fills height in portrait mode ([b5a96ea](b5a96eaeb1)) * calculate total problems correctly in preview API ([25dfb71](25dfb71b3e)) * **card-sorting:** add border radius to outer card container ([a922eba](a922eba73c)) * **card-sorting:** add debug logging for spring animations ([d42947e](d42947eb8d)) * **card-sorting:** add missing gameMode support after hard reset ([a832325](a832325deb)) * **card-sorting:** add missing useMemo import ([949d76d](949d76d844)) * **card-sorting:** add overflow hidden to clip rounded corners ([84c66fe](84c66feec6)) * **card-sorting:** adjust connecting paths for scaled cards ([829c741](829c741e55)) * **card-sorting:** adjust game board for spectator panels ([fc5cf12](fc5cf1216f)) * **card-sorting:** adjust viewport dimensions for spectator panels ([4dce16c](4dce16cca4)) * **card-sorting:** animate cards from game board to results grid ([17d45fe](17d45fe88c)) * **card-sorting:** correct suffix card detection in auto-arrange ([d02ab59](d02ab5922c)) * **card-sorting:** enable card scaling for spectators ([6b095c3](6b095c3383)) * **card-sorting:** enable New Game button during active gameplay ([f3f6eca](f3f6eca1db)) * **card-sorting:** end drag immediately when card becomes locked ([ae45298](ae45298ec4)) * **card-sorting:** filter local player from emoji overlays on dragged cards ([dc2d94a](dc2d94aaa5)) * **card-sorting:** fix results panel layout to not cover cards ([4b4fbfe](4b4fbfef32)) * **card-sorting:** hide activity notifications in spectator mode ([5cca279](5cca279687)) * **card-sorting:** keep arrow sequence numbers upright ([79c9469](79c94699fa)) * **card-sorting:** lock correctly positioned prefix/suffix cards ([170abed](170abed231)) * **card-sorting:** lock spring positions after initial animation completes ([275cc62](275cc62a52)) * **card-sorting:** New Game now restarts with same settings instantly ([f3687ed](f3687ed236)) * **card-sorting:** only shrink/fade cards in correct prefix ([51368c6](51368c6ec5)) * **card-sorting:** preserve card positions on pause/resume ([0d8af09](0d8af09517)) * **card-sorting:** preserve rotation when starting drag ([3364144](3364144fb6)) * **card-sorting:** prevent duplicate START_GAME moves on Play Again ([a0b14f8](a0b14f87e9)) * **card-sorting:** prevent ghost movements with proper optimistic updates ([bd014be](bd014bec4f)) * **card-sorting:** prevent infinite loop when all cards are correct ([34785f4](34785f466f)) * **card-sorting:** prevent infinite loop with tolerance-based position comparison ([627b873](627b873382)) * **card-sorting:** prevent position jump when clicking rotated cards ([564a00f](564a00f82b)) * **card-sorting:** prevent replaying own movements from server ([308168a](308168a7fb)) * **card-sorting:** prevent springs from reinitializing on window resize ([30953b8](30953b8c4a)) * **card-sorting:** prevent springs from resetting after animation ([8aff60c](8aff60ce3f)) * **card-sorting:** remove hasAnimatedRef logic causing backwards animation ([a44aa5a](a44aa5a4c2)) * **card-sorting:** remove remaining reveal numbers references ([15c53ea](15c53ea4eb)) * **card-sorting:** restore prefix/suffix card shrinking visual feedback ([f5fb4d7](f5fb4d7b76)) * **card-sorting:** show only active players in team members section ([fa9f1a5](fa9f1a568f)) * **card-sorting:** smooth scale animation while dragging cards ([0eefc33](0eefc332ac)) * **card-sorting:** stabilize inferred sequence for locked cards during drag ([b0cd194](b0cd194838)) * **card-sorting:** use empty deps array for useSprings to prevent recreation ([cee399e](cee399ed15)) * **card-sorting:** use ref to track initialized state and prevent re-animation ([f389afa](f389afa831)) * **card-sorting:** use same coordinate system for game board and results ([6972fdf](6972fdf110)) * center crosshairs and re-enable pointer lock after escape ([814bf94](814bf949f2)) * **complement-race:** prevent delivery move thrashing in steam sprint mode ([e1258ee](e1258ee041)) * configure favicon metadata and improve bead visibility ([e1369fa](e1369fa275)) * configure Next.js to transpile [@svg-maps](https://github.com/svg-maps) ES modules ([ebf2b66](ebf2b66910)) * consolidate worksheet validation constants and increase MAX_PAGES to 100 ([0f3ec36](0f3ec369bf)) * copy entire packages/core and packages/templates ([0ccada0](0ccada0ca7)) * correct GPT-5 API parameters and surface actual grading errors ([2d33f35](2d33f35c4d)) * correct hero abacus scroll direction to flow with page content ([4232746](423274657c)) * correct Typst template path in Dockerfile ([4c518de](4c518decb7)) * **db:** add statement-breakpoint to worksheet_settings migration ([42e1a71](42e1a71292)) * delete existing user sessions before creating new ones ([0cced47](0cced47a0f)) * disable place value colors in subtraction borrow boxes to fix arrow layering ([b4586ba](b4586bac8e)) * **docker:** add libfuse2 and APPIMAGE_EXTRACT_AND_RUN for OpenSCAD extraction ([12490a7](12490a7083)) * **docker:** add scripts, abacus-react, and tsx for production calendar generation ([33eb90e](33eb90e316)) * **docker:** upgrade OpenSCAD to 2024.11 to fix CGAL intersection bug ([e1bcd24](e1bcd24169)) * eagerly load map caches in browser and use Suspense pattern ([db6be73](db6be73a1c)) * eliminate cursor dampening lag when changing direction ([fc08b77](fc08b775db)) * enable page virtualization in worksheet creator ([b675f6c](b675f6c96e)) * enable vertical scrolling in layout controls ([a1b31f4](a1b31f454a)) * enable virtualization for worksheet preview by limiting SSR to 3 pages ([f409e3c](f409e3c2ed)) * export worksheet schema tables from index ([6a16674](6a1667404f)) * extract pure SVG content from AbacusReact renders ([b07f1c4](b07f1c4216)) * **games:** prevent horizontal page scroll from carousel overflow ([5a8c98f](5a8c98fc10)) * **games:** smooth scroll feel for carousel wheel navigation ([f80a73b](f80a73b35c)) * **games:** use specific transition properties for smooth carousel loop ([187271e](187271e515)) * **guide:** increase abacus sizes - they were too small ([1074624](1074624b2f)) * **guide:** make abacus sizes consistent and add nav spacing ([bea4842](bea4842a29)) * **guide:** remove inner containers and tighten margins ([7e54c6f](7e54c6f4fc)) * **i18n:** add nav bar to 3D abacus creator page ([827a949](827a949216)) * **i18n:** eliminate FOUC by loading messages server-side ([4d4d930](4d4d930bd3)) * **i18n:** use useMessages() for tutorial translations ([95b0105](95b0105ca3)) * implement manual click detection using precise cursor position ([156f63f](156f63faaf)) * improve dark mode contrast in OrientationPanel dropdown ([f9e2343](f9e2343ffb)) * improve dark mode for orientation and page buttons ([fe9b9f9](fe9b9f9ffa)) * improve draggable button constraints to avoid action button overlap ([00b0fb2](00b0fb297b)) * improve magnifier zoom calculation for multi-piece regions ([cb4114f](cb4114f344)) * improve socket server error messages for better debugging ([5d1ea7d](5d1ea7db2d)) * improve text contrast for selected dropdown items in dark mode ([8d03452](8d0345287f)) * include column posts in favicon bounding box ([0b2f481](0b2f48106a)) * increase server update debounce to 2000ms for low bandwidth ([633ff12](633ff12750)) * increase super zoom multiplier from 2.5x to 5.0x for Gibraltar ([138e6c0](138e6c071b)) * increase z-index of pointer lock prompt overlay ([5388441](5388441ebb)) * Integrate threshold input into Point Victory card ([b29bbee](b29bbeefca)) * **know-your-world:** fix pointer lock escape for all edges and add smooth release animation ([a7fa858](a7fa858a29)) * **know-your-world:** fix TypeScript build errors ([f622bfa](f622bfab54)) * **layout:** add systematic spacing for fixed nav bar ([4559fb1](4559fb121d)) * **layout:** remove wrapper, use utility class for nav spacing ([247c3d9](247c3d9874)) * lazy-load map data in know-your-world validator ([07c25a2](07c25a2296)) * lower quick-escape threshold to 15px/frame for easier triggering ([97b214d](97b214da12)) * make borrow notation destination boxes full height ([17307f7](17307f7e82)) * make placeholder pages match actual page dimensions ([4003c5c](4003c5ceb7)) * make useArcadeSocket work without ArcadeErrorProvider ([01740af](01740afcb7)) * mark dynamic routes as force-dynamic to prevent static generation errors ([d7b35d9](d7b35d9544)) * move pointer lock management to MapRenderer ([0ed4d13](0ed4d13db6)) * **nav:** restrict transparent hero styling to home page only ([fab227d](fab227d686)) * **nav:** show full navigation on /games page ([d3fe6ac](d3fe6acbb0)) * page indicator not tracking scroll when showing all pages ([3d157e3](3d157e32ed)) * page indicator stuck on page 1 due to stale closure ([952ebc7](952ebc7756)) * pass correct parameter for borrow boxes in subtraction ([00d892a](00d892a05c)) * PDF generation now respects operator and digitRange settings ([8b8dfee](8b8dfeefbd)) * position arrowhead at endpoint and increase size ([bdf28b2](bdf28b21b2)) * position shared worksheet banner below app nav ([fb3412c](fb3412c9a5)) * preserve saved seed on page reload ([64ce64b](64ce64bd35)) * preserve seed and prngAlgorithm in config migrations ([b18c412](b18c412736)) * preserve user's scaffolding settings when changing skills ([1eb04ce](1eb04ce0c4)) * prevent duplicate API calls in React StrictMode ([0d59676](0d59676b38)) * prevent modal closure when clicking tabs in AllSkillsModal ([4746e1f](4746e1f8fe)) * prevent regrouping problems in no-regrouping skills and enable progressive difficulty toggle ([59712e1](59712e1021)) * prevent skill name wrapping in mini cards with single-line ellipsis ([a463d08](a463d088d7)) * prevent undefined displayRules error in worksheet generator ([7c33d02](7c33d0246f)) * properly apply dark mode hover states in dropdown ([34553ce](34553cebf7)) * properly cycle through problem sets when exceeding unique problem space ([55d4920](55d4920167)) * properly zoom to selected continent in game phases ([e900e44](e900e4465b)) * **qr-button:** improve layout and z-index ([646a422](646a4228d0)) * **qr-button:** increase mini QR code size to 80px ([61ac737](61ac7378bd)) * **qr-button:** increase mini QR code to 84px ([3fae5ea](3fae5ea6fa)) * **qr-button:** make button square and increase QR size ([dc2d466](dc2d46663b)) * **qr-button:** match height of stacked buttons ([81f202d](81f202d215)) * reduce borrowing hint font size from 0.5x to 0.25x ([f5d3de2](f5d3de2309)) * reduce font size for mini skill card titles to prevent wrapping ([833b481](833b481ebb)) * reduce padding to minimize gap below last bead ([0e529be](0e529be789)) * refactor worksheet config persistence to blacklist approach + Storybook stories ([5b6db58](5b6db588a2)) * regenerate lockfile to remove big.js dependencies ([05fc5cf](05fc5cfe49)) * remove all scaffolding from final mastery skills ([d7bec42](d7bec423e0)) * remove distracting parallax and wobble 3D effects ([28a2d40](28a2d40996)) * remove duplicate containerRect declaration ([1a690e0](1a690e00b0)) * remove pages from visible set when they leave viewport ([9757449](9757449e21)) * remove redundant 'Teens minus singles' subtraction skill ([e156e87](e156e870df)) * remove unused velocity tracking and fix TypeScript errors ([0195a6d](0195a6dc6d)) * remove wobble physics and enhance wood grain visibility ([5d97673](5d97673406)) * replace deprecated path() with curve() in borrow arrows ([47d149c](47d149ca17)) * replace ES module imports with JSON data files ([fb735be](fb735be014)) * replace hardcoded colors with semantic tokens in HomeBlogSection ([e124096](e124096914)) * replace regex HTML parsing with deterministic bead position calculations in icon generation ([41a3707](41a3707841)) * resolve TypeScript errors blocking Docker build ([a195338](a195338ba1)) * resolve z-index layering and hero abacus visibility issues ([ed9a050](ed9a050d64)) * respect borrow boxes display setting regardless of actual borrowing ([1aef0f2](1aef0f292f)) * respect operator-specific scaffolding in mastery+mixed mode ([a6472a2](a6472a231b)) * respect user's layout options (problemNumbers/cellBorders) in mastery mode ([e708add](e708add9f2)) * responsive page indicator and settings summary improvements ([93ddc28](93ddc28a3a)) * rewrite 3D stories to use props instead of CSS wrappers ([26bdb11](26bdb11237)) * **rithmomachia:** add missing i18next dependencies ([91154d9](91154d9364)) * **rithmomachia:** add missing pyramid section keys to Japanese (ja.json) ([dae615e](dae615ee72)) * **rithmomachia:** adjust error dialog sizing to prevent text clipping ([cda1126](cda1126cb0)) * **rithmomachia:** adjust roster notice position to not overlap nav ([7093223](709322373a)) * **rithmomachia:** change undock icon to pop-out arrow ([2a91748](2a91748493)) * **rithmomachia:** correct board dimensions to 16x8 and restore original layout values ([cfac277](cfac277505)) * **rithmomachia:** Correct board setup to match reference image exactly ([618e563](618e56358d)) * **rithmomachia:** correct makeMove parameter types for capture handling ([aafb64f](aafb64f3e3)) * **rithmomachia:** fix guide modal resize drift by calculating from initial state ([1bcd99c](1bcd99c949)) * **rithmomachia:** fix harmony section translation structure for hi/ja/es ([14259a1](14259a19a9)) * **rithmomachia:** fix modal resizing zoom issue ([4fa20f4](4fa20f44cb)) * **rithmomachia:** Fix TypeScript errors in playing guide modal ([4834ece](4834ece98e)) * **rithmomachia:** handle pyramid pieces in hover error tooltip ([56f3164](56f3164155)) * **rithmomachia:** implement proper board cropping and highlighting in guide ([d0a8fcd](d0a8fcdea6)) * **rithmomachia:** improve guide modal tab navigation at narrow widths ([a673177](a673177bec)) * **rithmomachia:** reconnect player assignment UI and fix setup layout ([a1a0374](a1a0374fac)) * **rithmomachia:** render guide as docked in preview panel ([190f8cf](190f8cf302)) * **rithmomachia:** show actual values in tooltips for non-helper relations ([774c6b0](774c6b0ce7)) * **rithmomachia:** show guest-friendly message when they can't fix too many players ([54bfd2f](54bfd2fac8)) * **rithmomachia:** smooth guide dragging from docked state without jump ([8f4a79c](8f4a79c9b0)) * **rithmomachia:** validate move path before showing capture error on hover ([bd49964](bd49964186)) * **room-info:** hide Leave Room button when user is alone ([5927f61](5927f61c3c)) * scaffolding changes now apply in mastery+mixed mode ([510f052](510f052978)) * separate horizontal and vertical bounding box logic ([83090df](83090df4df)) * **server:** lazy-load game validators to avoid ES module errors ([a88bd58](a88bd5844c)) * stabilize mini skill card height and fix preview updates ([4a52943](4a5294353e)) * **syntax:** correct div nesting and indentation in abacus page ([3c9ecca](3c9eccab78)) * **syntax:** remove emoji variation selector causing build error ([00aabd8](00aabd8e6b)) * tolerate OpenSCAD CGAL warnings if output file is created ([88993f3](88993f3662)) * track both SVG units and screen pixels for zoom and dampening ([d72f309](d72f309bad)) * **tutorial:** correct column validation for bead highlights ([9ba1824](9ba1824226)) * **tutorial:** expose activeGroupTargetColumn state to context ([69f759a](69f759a178)) * **tutorial:** fix overlay rendering, arrow indicators, and bead visibility ([a804316](a80431608d)) * **ui:** add wrapper div to prevent content from appearing under nav ([99f4dd5](99f4dd51e3)) * update AbacusQRCode for qrcode.react v4 compatibility ([0f0c3c6](0f0c3c65e8)) * update operator-specific display rules in mastery+mixed mode ([4174b6d](4174b6d2e7)) * upgrade to Node.js 20 to resolve ES module import issues ([192de5c](192de5c6b5)) * use ± symbol for mixed operator icon consistently ([2695b50](2695b50abe)) * use absolute positioning for hero abacus to eliminate scroll lag ([096104b](096104b094)) * use ASCII characters for operator icons to support dark mode ([3bd5c00](3bd5c00d21)) * use correct Unicode minus sign (−) for subtraction operator checks ([0dd9e45](0dd9e45952)) * use curved Bezier path for borrow arrow ([9b4eb14](9b4eb14aaa)) * use dark gray for borrowing hints on colored backgrounds ([5cb346d](5cb346deee)) * use Debian base for deps stage to match runner for binary compatibility ([f8fe6e4](f8fe6e4a41)) * use default BOSL2 branch instead of non-existent v2.0.0 tag ([f4ffc5b](f4ffc5b027)) * use dynamic ES module imports for [@svg-maps](https://github.com/svg-maps) packages in know-your-world ([ab94fd3](ab94fd350f)) * use LAN IP instead of localhost for QR code camera uploads ([00b400a](00b400ae8a)) * use nested SVG viewBox for actual cropping, not just scaling ([440b492](440b492e85)) * use numeric cellSize for borrow box sizing in hints ([cc54176](cc54176cb1)) * use screen pixels for zoom, abandon SVG path parsing ([912dc38](912dc385b3)) * use semantic tokens for nav bar transparent mode on hero ([d05c6a8](d05c6a8664)) * use subtle gray highlights for dropdown in dark mode ([8d6170a](8d6170a8c7)) * use SVG viewBox units instead of screen pixels for zoom ([0dcaabb](0dcaabb8a5)) * use white text for selected dropdown items in dark mode ([e1a7375](e1a73758d6)) * various game improvements and UI enhancements ([b67cf61](b67cf610c5)) * **web,docker:** add --format flag for Typst and upgrade to v0.13.0 ([19b9d7a](19b9d7a74f)) * **web:** add dynamic export to rithmomachia page ([329e623](329e623212)) * **web:** fix Typst PDF generation path resolution ([7ce1287](7ce1287525)) * **web:** generate styled-system artifacts during build ([293390a](293390ae35)) * **web:** move react-dom/server import to API route to satisfy Next.js ([00a8bc3](00a8bc3e5e)) * **web:** move tsx to production dependencies for calendar generation ([ffae9c1](ffae9c1bdb)) * **web:** prevent abacus overlap in composite calendar ([448f93c](448f93c1e2)), closes [#f0f0f0](https://github.com/antialias/soroban-abacus-flashcards/issues/f0f0f0) * **web:** use AbacusStatic for calendar SVG generation ([08c6a41](08c6a419e2)) * **web:** use dynamic import for react-dom/server in API route ([4f93c7d](4f93c7d996)) * **web:** use nested SVG elements to prevent coordinate space conflicts ([f9cbee8](f9cbee8fcd)) * **worksheets:** actually fix dropdown button height by constraining description area ([aa9052a](aa9052a49e)) * **worksheets:** Add "Practice" difficulty profile for scaffolded regrouping mastery ([d23b606](d23b606642)) * **worksheets:** add backward compatibility for displayRules in SmartModeControls ([b956e2d](b956e2d605)) * **worksheets:** add borrowNotation and borrowingHints to DisplayRules interfaces ([3b908ac](3b908ac453)) * **worksheets:** add borrowNotation and borrowingHints to validation fallback ([3f700af](3f700af643)) * **worksheets:** add mastery mode to Zod schema validation ([003f1d1](003f1d11cc)) * **worksheets:** Add operator to preview query key and update UI labels ([97ddc7e](97ddc7ee67)) * **worksheets:** add V4 fields to preview query key for cache invalidation ([d9b54a7](d9b54a736c)) * **worksheets:** align makeEasier fallback with spec priorities ([3e56e1d](3e56e1d6b6)) * **worksheets:** align makeHarder fallback with spec priorities ([a170209](a170209b2f)) * **worksheets:** correct findNearestPreset direction logic ([878cf02](878cf02511)) * **worksheets:** correct scaffolding summary to include all conditional modes ([2797038](2797038502)) * **worksheets:** correct Typst array membership syntax for ten-frames rendering ([14b3594](14b359462f)) * **worksheets:** dynamically size grid based on actual problem digits ([130bbd4](130bbd49dd)) * **worksheets:** enable borrowNotation and borrowingHints in smart difficulty mode ([8020ee8](8020ee835e)) * **worksheets:** Fix subtraction regrouping frequency bug ([8d8e55d](8d8e55d5c4)) * **worksheets:** increase color visibility for difficulty presets ([a7412ad](a7412adbee)) * **worksheets:** increase dropdown button height to fit all content lines ([3a43149](3a43149995)) * **worksheets:** Make destination borrow box more visible ([a01fa81](a01fa818b4)) * **worksheets:** only show ten-frames row for problems that need regrouping ([8f92f5a](8f92f5a57b)) * **worksheets:** persist digitRange and manualPreset in auto-save ([c874995](c87499535a)) * **worksheets:** prevent wrong preset showing as active at custom positions ([88e929e](88e929ed63)) * **worksheets:** remove foreign key constraint to support guest users ([e6e9ec3](e6e9ec3e4f)) * **worksheets:** resolve SSR URL error and guest user foreign key constraint ([42ea8d5](42ea8d561e)) * **worksheets:** Set showBorrowNotation to false for smart mode ([e9d52ba](e9d52bab49)) * **worksheets:** show ten-frames in smart mode when rule is 'always' ([0bc8272](0bc8272830)) * **worksheets:** ten-frames not rendering in mastery mode ([b36df3a](b36df3a40c)) * **worksheets:** update display options preview to use new problem-stack signature ([258b9ac](258b9ac1b4)) * **worksheets:** use fixed height instead of min-height for dropdown button ([fe1ef8a](fe1ef8a7fc)) * **worksheets:** use imperative voice for difficulty adjustment button labels ([d991512](d99151239d)) * **worksheets:** use white text on colored backgrounds for readability ([2b7b8ec](2b7b8ecc87)) * **worksheets:** validation function was converting mastery mode to manual ([4ad687d](4ad687df73)) ### Performance Improvements * optimize Docker image size to reduce build failures ([9ca3106](9ca3106361)) * reduce retry limit from 3000 to 100 in problem generators ([08fef59](08fef59cc5)) ### Code Refactoring * begin modularizing typstHelpers.ts - extract shared components ([b42daf9](b42daf9a4b)) * **card-sorting:** remove reveal numbers feature ([ea5e3e8](ea5e3e838b)) * **card-sorting:** send complete card sequence instead of individual moves ([e4df843](e4df8432b9)) * change operator values from Unicode to alphanumeric strings ([f06a6f2](f06a6f2dcd)) * complete subtraction modularization - 793 lines → modular structure ([a769fe1](a769fe1e20)) * convert LanguageSelector to Radix UI with theme support ([515e4c4](515e4c4f98)) * convert mode selector to large tab-style interface ([8910f6a](8910f6a197)) * decouple virtualization from config source ([95f61c6](95f61c6e70)) * eliminate prop drilling with WorksheetConfigContext ([a2ab826](a2ab82620a)) * eliminate props drilling for openDeploymentInfo ([24302d8](24302d8fc5)) * expand query key to include display settings ([7e3d84b](7e3d84b127)) * extract DifficultyPresetDropdown and MakeEasierHarderButtons ([4d1c2c1](4d1c2c1e79)) * extract OverallDifficultySlider and integrate DifficultyPresetDropdown ([783f269](783f269a2f)) * extract shared Typst problem rendering function ([d150955](d150955815)) * **games:** implement carousel, fix victories bug, add conditional stats ([82c133f](82c133f742)) * **games:** move page title to nav bar ([712ee58](712ee58e59)) * **games:** remove redundant subtitle below nav ([ad5bb87](ad5bb87325)) * **games:** remove wheel scrolling, enable overflow visible carousel ([876513c](876513c9cc)) * **layout:** make nav height truly self-referential ([9886302](98863026b7)) * move 3D abacus creator feature to separate branch ([c8aa602](c8aa602e1c)) * move large page counts to dropdown menu ([4ea4ead](4ea4ead834)) * move progressive difficulty toggle below operator section ([0425033](0425033080)) * place 'n − 1 →' text inside borrow box at top ([232e1a2](232e1a2221)) * redesign tabs to look like traditional tabs ([8f1ddf4](8f1ddf4b34)) * remove debug console.log statements ([32f51ae](32f51ae739)) * remove debug logs for fixed issues ([5e42aab](5e42aabfa9)) * remove loadedPages and fetchingPages state ([90fb88b](90fb88b72a)) * reorganize Harmony and Victory guide sections ([fb629c4](fb629c44ea)) * replace two-query system with single all-pages query ([fbb035b](fbb035b12b)) * restructure /create page into hub with sub-pages ([b91b23d](b91b23d95f)) * **rithmomachia:** extract board and capture components (phase 2+3) ([a0a867b](a0a867b271)) * **rithmomachia:** extract CaptureErrorDialog component (Phase 2 partial) ([f0a066d](f0a066d8f0)) * **rithmomachia:** extract constants and coordinate utilities (Phase 1) ([eace0ed](eace0ed529)) * **rithmomachia:** extract guide sections into separate files ([765525d](765525dc45)) * **rithmomachia:** extract hooks (phase 5) ([324a659](324a65992f)) * **rithmomachia:** extract phase components (phase 4) ([11364f6](11364f6394)) * **rithmomachia:** extract reusable components from SetupPhase ([3abc325](3abc325ea2)) * **rithmomachia:** make setup phase UI more compact ([e55f848](e55f848a26)) * **rithmomachia:** redesign error notification with modern UI ([dfeeb0e](dfeeb0e0db)), closes [#1e293](https://github.com/antialias/soroban-abacus-flashcards/issues/1e293) [#0f172](https://github.com/antialias/soroban-abacus-flashcards/issues/0f172) [#f1f5f9](https://github.com/antialias/soroban-abacus-flashcards/issues/f1f5f9) * **rithmomachia:** simplify capture error dialog to one-liner ([82a5eb2](82a5eb2e4b)) * **rithmomachia:** Update board setup to authoritative CSV layout ([0471da5](0471da598d)) * **rithmomachia:** update capture components to use CaptureContext ([2ab6ab5](2ab6ab5799)) * **rithmomachia:** use useBoardLayout and usePieceSelection in BoardDisplay ([0ab7a1d](0ab7a1df32)) * simplify borrowed 10s box UI and add place value colors ([42c9c9d](42c9c9dd7e)) * simplify fetchWorksheetPreview to remove pagination ([200e394](200e394055)) * simplify pointer lock with movement delta multipliers ([749b16a](749b16ac27)) * start page dropdown at 4 and remove 'pages' suffix ([cf7eb57](cf7eb574d4)) * unify zoom modes into single adaptive zoom ([d1acdd9](d1acdd9e54)) * use AbacusReact for dynamic Open Graph image ([9c20f12](9c20f12bac)) * use existing Radix toast system for errors ([59901c5](59901c5533)) * use package-level cropToActiveBeads in generateDayIcon script ([b6c3d6b](b6c3d6bda4)) * use server-side loading for shared worksheets ([c9a9146](c9a9146820)) * **web:** import utility functions from abacus-react ([7228bbc](7228bbc2eb)) * **web:** move calendar generators to src/utils for proper compilation ([379698f](379698fea3)) * **web:** return calendar SVG preview with PDF generation ([14a5de0](14a5de0dfa)) * **web:** use ABACUS_THEMES instead of manual style definitions ([9f7f001](9f7f001d74)) * **web:** use client-side React rendering for live calendar preview ([f880cbe](f880cbe4bf)) * **web:** use compact prop for inline mini-abacus ([ff1d60a](ff1d60a233)) * **web:** use direct function imports instead of execSync for calendar generation ([9f1715f](9f1715f085)) * **web:** use stdin/stdout for Typst compilation ([06f68cc](06f68cc74c)) * **worksheets:** constrain display preview width ([507a39d](507a39da19)) * **worksheets:** extract client component and add debug logging ([f7e4c52](f7e4c5241e)) * **worksheets:** extract ConfigPanel helper components (Phase 1) ([3656800](3656800534)) * **worksheets:** extract shared ConfigPanel sections (Phase 2 complete) ([d27e2c0](d27e2c03bd)) * **worksheets:** extract Smart Mode controls (Phase 3 complete) ([76a6168](76a6168b00)) * **worksheets:** extract StudentNameInput component (Phase 2 - partial) ([cbe29d5](cbe29d5c54)) * **worksheets:** extract utility functions ([2e0f99f](2e0f99f98a)) * **worksheets:** Phase 4 - Extract Manual Mode controls ([4cf6fca](4cf6fcab15)) * **worksheets:** Phase 5 - Final ConfigPanel cleanup ([85db052](85db052f07)) * **worksheets:** simplify scaffolding summary with grouped frequency ([3541b79](3541b792d5)) * **worksheets:** use distance-guided discrete progression for difficulty ([bd6fadf](bd6fadf0db)) ### Documentation * **abacus-react:** add Storybook stories for AbacusStatic ([4f9dc46](4f9dc4666d)) * **abacus-react:** add Storybook stories for new features ([6a1cec0](6a1cec06a7)) * **abacus-react:** export AbacusStatic and update README ([74f2d97](74f2d97434)) * **abacus-react:** update documentation for new features ([35d8734](35d8734a3a)) * **abacus-react:** update README with /static import path for RSC ([72a4c2b](72a4c2b80c)) * add 3D enhancement documentation to README ([cc96802](cc96802df8)) * add code factoring guidelines to prevent copy-paste ([71a8ab5](71a8ab5c93)) * add comprehensive merge conflict resolution guide ([e4fc363](e4fc363a97)) * add comprehensive precision controls documentation for Know Your World ([8511998](8511998d0c)) * add critical section on never adding tsx to production dependencies ([770cfc3](770cfc3aca)) * add database migration guide and playing guide modal spec ([5a29af7](5a29af78e2)) * add deployment verification guidelines to prevent false positives ([3d8da23](3d8da2348b)) * add merge conflict resolution section to CLAUDE.md ([a82d80b](a82d80b02c)) * add operator-specific settings architecture & refactoring plan ([e06de8e](e06de8ea47)) * add Storybook stories demonstrating cropToActiveBeads feature ([104f3e6](104f3e65d4)) * **blog:** update difficulty post with scaffolding examples ([191231f](191231f8ff)) * **card-sorting:** add comprehensive multiplayer plan ([008ccea](008ccead0f)) * clarify dev server management in Claude Code instructions ([e08fdfd](e08fdfd676)) * comprehensive problem generation documentation ([5304e4d](5304e4da4e)) * document compose-updater detection issue ([b37a960](b37a960d35)) * link problem generation docs to README graph ([1a7e81c](1a7e81c4e2)) * **rithmomachia:** Add concise one-page playing guide ([e3c1f10](e3c1f10233)) * update workflow to require manual testing before commits ([0991796](0991796f1e)) * **worksheets:** add academic publication plan for 2D difficulty system ([ca8d774](ca8d774370)) * **worksheets:** add comprehensive refactoring plan for AdditionWorksheetClient ([f2e48bb](f2e48bb8ab)) * **worksheets:** add constrained 2D difficulty system specification ([7d72865](7d72865d4d)) * **worksheets:** add two-mode system planning docs and update API route ([369b7f2](369b7f263d)) ### Styles * **abacus:** fix indentation ([847c503](847c50346f)) * fix formatting and add approved bash commands ([0c4b0c2](0c4b0c2fac)) * **rithmomachia:** improve divider styling and make tabs responsive ([88ca35e](88ca35e044)), closes [#e5e7](https://github.com/antialias/soroban-abacus-flashcards/issues/e5e7) [#9ca3](https://github.com/antialias/soroban-abacus-flashcards/issues/9ca3) * **rithmomachia:** improve pyramid face numbers visibility and contrast ([94e5e6a](94e5e6a268)), closes [#fbbf24](https://github.com/antialias/soroban-abacus-flashcards/issues/fbbf24) [#b45309](https://github.com/antialias/soroban-abacus-flashcards/issues/b45309) * **rithmomachia:** increase pyramid face numbers size and boldness ([7bf2d73](7bf2d730d3)) ### Tests * trigger compose-updater deployment test ([2b06aae](2b06aae394)) * verify compose-updater automatic deployment cycle ([af0552c](af0552ccd9))
This commit is contained in:
parent
5d1ea7db2d
commit
404d5bb353
684
CHANGELOG.md
684
CHANGELOG.md
|
|
@ -392,6 +392,690 @@
|
|||
* 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 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))
|
||||
* include column posts in favicon bounding box ([0b2f481](https://github.com/antialias/soroban-abacus-flashcards/commit/0b2f48106a939307b728c86fe2ea1be1e0247ea8))
|
||||
* increase server update debounce to 2000ms for low bandwidth ([633ff12](https://github.com/antialias/soroban-abacus-flashcards/commit/633ff127500c893a215491afa0e6ff814ad553bf))
|
||||
* 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))
|
||||
* Integrate threshold input into Point Victory card ([b29bbee](https://github.com/antialias/soroban-abacus-flashcards/commit/b29bbeefcad92be42f7a3ca27ac126db4232ab26))
|
||||
* **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 TypeScript build errors ([f622bfa](https://github.com/antialias/soroban-abacus-flashcards/commit/f622bfab54ac40846a41a77f7f60715d2f0535b9))
|
||||
* **layout:** add systematic spacing for fixed nav bar ([4559fb1](https://github.com/antialias/soroban-abacus-flashcards/commit/4559fb121d0df954ebaf33616a5262c7ca633c6e))
|
||||
* **layout:** remove wrapper, use utility class for nav spacing ([247c3d9](https://github.com/antialias/soroban-abacus-flashcards/commit/247c3d9874303f83641e599724a485eea8d5604a))
|
||||
* 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 borrow notation destination boxes full height ([17307f7](https://github.com/antialias/soroban-abacus-flashcards/commit/17307f7e8269a20a2c8c0d20e88d7bed842ee644))
|
||||
* 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))
|
||||
* mark dynamic routes as force-dynamic to prevent static generation errors ([d7b35d9](https://github.com/antialias/soroban-abacus-flashcards/commit/d7b35d954421fd7577cd2c26247666e5953b647d))
|
||||
* move pointer lock management to MapRenderer ([0ed4d13](https://github.com/antialias/soroban-abacus-flashcards/commit/0ed4d13db61b01b12b5bbc10f8ae7aabc286fb72))
|
||||
* **nav:** restrict transparent hero styling to home page only ([fab227d](https://github.com/antialias/soroban-abacus-flashcards/commit/fab227d6862672e8250b1c169b302fbae23ce4d2))
|
||||
* **nav:** show full navigation on /games page ([d3fe6ac](https://github.com/antialias/soroban-abacus-flashcards/commit/d3fe6acbb0390e1df71869a4095e5ee6021e06b1))
|
||||
* 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))
|
||||
* PDF generation now respects operator and digitRange settings ([8b8dfee](https://github.com/antialias/soroban-abacus-flashcards/commit/8b8dfeefbdf2f75300b20ddf731677a627d50438))
|
||||
* position arrowhead at endpoint and increase size ([bdf28b2](https://github.com/antialias/soroban-abacus-flashcards/commit/bdf28b21b2fd5bfa53ad5a7977f092654e26a3cf))
|
||||
* position shared worksheet banner below app nav ([fb3412c](https://github.com/antialias/soroban-abacus-flashcards/commit/fb3412c9a54a00ee541a0060a45f027784faaeee))
|
||||
* 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 undefined displayRules error in worksheet generator ([7c33d02](https://github.com/antialias/soroban-abacus-flashcards/commit/7c33d0246f897527c0c48f68d89f2ed1fee0b263))
|
||||
* 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))
|
||||
* **qr-button:** improve layout and z-index ([646a422](https://github.com/antialias/soroban-abacus-flashcards/commit/646a4228d0573796b1a429e31bc037411024c0ff))
|
||||
* **qr-button:** increase mini QR code size to 80px ([61ac737](https://github.com/antialias/soroban-abacus-flashcards/commit/61ac7378bdb01132b26bfc265a057c095ea41606))
|
||||
* **qr-button:** increase mini QR code to 84px ([3fae5ea](https://github.com/antialias/soroban-abacus-flashcards/commit/3fae5ea6fa9ebd0f8fe8c9140a027be7f6a041aa))
|
||||
* **qr-button:** make button square and increase QR size ([dc2d466](https://github.com/antialias/soroban-abacus-flashcards/commit/dc2d46663b8e0ec94a1508a57c4f8c2d8ba03506))
|
||||
* **qr-button:** match height of stacked buttons ([81f202d](https://github.com/antialias/soroban-abacus-flashcards/commit/81f202d21556aa430402fda814519adbc8883831))
|
||||
* reduce borrowing hint font size from 0.5x to 0.25x ([f5d3de2](https://github.com/antialias/soroban-abacus-flashcards/commit/f5d3de230912243cf702b9975f4a19a94c214255))
|
||||
* reduce font size for mini skill card titles to prevent wrapping ([833b481](https://github.com/antialias/soroban-abacus-flashcards/commit/833b481ebbbece93b2e4f38b688dc37829c3c5a8))
|
||||
* reduce padding to minimize gap below last bead ([0e529be](https://github.com/antialias/soroban-abacus-flashcards/commit/0e529be789caf16e73f3e2ee77f52e243841aef4))
|
||||
* 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 distracting parallax and wobble 3D effects ([28a2d40](https://github.com/antialias/soroban-abacus-flashcards/commit/28a2d40996256700bf19cd80130b26e24441949f))
|
||||
* remove duplicate containerRect declaration ([1a690e0](https://github.com/antialias/soroban-abacus-flashcards/commit/1a690e00b04f2fe20dfd611449f4bf323f7b3d99))
|
||||
* 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 unused velocity tracking and fix TypeScript errors ([0195a6d](https://github.com/antialias/soroban-abacus-flashcards/commit/0195a6dc6d6796615d1a045d0c7a20e90e1b6e42))
|
||||
* remove wobble physics and enhance wood grain visibility ([5d97673](https://github.com/antialias/soroban-abacus-flashcards/commit/5d976734062eb3d943bfdfdd125473c56b533759))
|
||||
* 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))
|
||||
* replace hardcoded colors with semantic tokens in HomeBlogSection ([e124096](https://github.com/antialias/soroban-abacus-flashcards/commit/e1240969149150c5de9e6976dd0c19a19ab5efa7))
|
||||
* replace regex HTML parsing with deterministic bead position calculations in icon generation ([41a3707](https://github.com/antialias/soroban-abacus-flashcards/commit/41a3707841595a74de56c6adf6d271237f81ee0e))
|
||||
* resolve TypeScript errors blocking Docker build ([a195338](https://github.com/antialias/soroban-abacus-flashcards/commit/a195338ba1805d5aa30a86bd293e1ca84a9f78ca))
|
||||
* resolve z-index layering and hero abacus visibility issues ([ed9a050](https://github.com/antialias/soroban-abacus-flashcards/commit/ed9a050d64db905e1328008f25dc0014e9a81999))
|
||||
* 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))
|
||||
* rewrite 3D stories to use props instead of CSS wrappers ([26bdb11](https://github.com/antialias/soroban-abacus-flashcards/commit/26bdb112370cece08634e3d693d15336111fc70f))
|
||||
* **rithmomachia:** add missing i18next dependencies ([91154d9](https://github.com/antialias/soroban-abacus-flashcards/commit/91154d93647e59f7e5f96d1db5624a7ec9b1b9ff))
|
||||
* **rithmomachia:** add missing pyramid section keys to Japanese (ja.json) ([dae615e](https://github.com/antialias/soroban-abacus-flashcards/commit/dae615ee72a7ec7d0b235a22c61ebc4af0d8eadb))
|
||||
* **rithmomachia:** adjust error dialog sizing to prevent text clipping ([cda1126](https://github.com/antialias/soroban-abacus-flashcards/commit/cda1126cb0eab6840df89f3a8778d72410298093))
|
||||
* **rithmomachia:** adjust roster notice position to not overlap nav ([7093223](https://github.com/antialias/soroban-abacus-flashcards/commit/709322373a91c8174d21052d184fa84dd8bda326))
|
||||
* **rithmomachia:** change undock icon to pop-out arrow ([2a91748](https://github.com/antialias/soroban-abacus-flashcards/commit/2a917484938bc269cf16acb501d4d26584405e0f))
|
||||
* **rithmomachia:** correct board dimensions to 16x8 and restore original layout values ([cfac277](https://github.com/antialias/soroban-abacus-flashcards/commit/cfac27750526fb1f6a7e4314a96aab3b92e08e44))
|
||||
* **rithmomachia:** Correct board setup to match reference image exactly ([618e563](https://github.com/antialias/soroban-abacus-flashcards/commit/618e56358deb66cba968472f39b8d4e28b4dd211))
|
||||
* **rithmomachia:** correct makeMove parameter types for capture handling ([aafb64f](https://github.com/antialias/soroban-abacus-flashcards/commit/aafb64f3e337c6cf925766fe179b91f66c4a040b))
|
||||
* **rithmomachia:** fix guide modal resize drift by calculating from initial state ([1bcd99c](https://github.com/antialias/soroban-abacus-flashcards/commit/1bcd99c949e4d2b4fb1c0813debd50176fa58cb9))
|
||||
* **rithmomachia:** fix harmony section translation structure for hi/ja/es ([14259a1](https://github.com/antialias/soroban-abacus-flashcards/commit/14259a19a9817d0947467faa004d5f43118f8d8d))
|
||||
* **rithmomachia:** fix modal resizing zoom issue ([4fa20f4](https://github.com/antialias/soroban-abacus-flashcards/commit/4fa20f44cb9758f29d1f1512232be0fdc0b53b3d))
|
||||
* **rithmomachia:** Fix TypeScript errors in playing guide modal ([4834ece](https://github.com/antialias/soroban-abacus-flashcards/commit/4834ece98e86f2fb00511bb876a5c32c289df0e0))
|
||||
* **rithmomachia:** handle pyramid pieces in hover error tooltip ([56f3164](https://github.com/antialias/soroban-abacus-flashcards/commit/56f3164155beb94ceec2838bed9fc74fd75524db))
|
||||
* **rithmomachia:** implement proper board cropping and highlighting in guide ([d0a8fcd](https://github.com/antialias/soroban-abacus-flashcards/commit/d0a8fcdea6aa4fdacfee33e183c92923634ee2b7))
|
||||
* **rithmomachia:** improve guide modal tab navigation at narrow widths ([a673177](https://github.com/antialias/soroban-abacus-flashcards/commit/a673177bec1c709463ce0f266848f473a79f4ef0))
|
||||
* **rithmomachia:** reconnect player assignment UI and fix setup layout ([a1a0374](https://github.com/antialias/soroban-abacus-flashcards/commit/a1a0374fac5dce676df5890663b75531589ed93a))
|
||||
* **rithmomachia:** render guide as docked in preview panel ([190f8cf](https://github.com/antialias/soroban-abacus-flashcards/commit/190f8cf302aa966f029d05931811e217c67bfe39))
|
||||
* **rithmomachia:** show actual values in tooltips for non-helper relations ([774c6b0](https://github.com/antialias/soroban-abacus-flashcards/commit/774c6b0ce712b1a77bb684457da9831e6ec91138))
|
||||
* **rithmomachia:** show guest-friendly message when they can't fix too many players ([54bfd2f](https://github.com/antialias/soroban-abacus-flashcards/commit/54bfd2fac86be3597d40c67a1235e4c4ed8e2709))
|
||||
* **rithmomachia:** smooth guide dragging from docked state without jump ([8f4a79c](https://github.com/antialias/soroban-abacus-flashcards/commit/8f4a79c9b0cad55336584fdc8e67409015d3a8ae))
|
||||
* **rithmomachia:** validate move path before showing capture error on hover ([bd49964](https://github.com/antialias/soroban-abacus-flashcards/commit/bd49964186a0daa1639ae849b128a76081643daf))
|
||||
* **room-info:** hide Leave Room button when user is alone ([5927f61](https://github.com/antialias/soroban-abacus-flashcards/commit/5927f61c3c34ba583ee45c8cee48a116c1c03071))
|
||||
* scaffolding changes now apply in mastery+mixed mode ([510f052](https://github.com/antialias/soroban-abacus-flashcards/commit/510f0529780071435395fee0792b5a73685c20b1))
|
||||
* separate horizontal and vertical bounding box logic ([83090df](https://github.com/antialias/soroban-abacus-flashcards/commit/83090df4dfad1d1d5cfa6c278c241526cacc7972))
|
||||
* **server:** lazy-load game validators to avoid ES module errors ([a88bd58](https://github.com/antialias/soroban-abacus-flashcards/commit/a88bd5844cd9f52eb64501fb3e6d949f5dd4e84d))
|
||||
* stabilize mini skill card height and fix preview updates ([4a52943](https://github.com/antialias/soroban-abacus-flashcards/commit/4a5294353ebaf027d958c1886ba36d7b049c6c0a))
|
||||
* **syntax:** correct div nesting and indentation in abacus page ([3c9ecca](https://github.com/antialias/soroban-abacus-flashcards/commit/3c9eccab7840e04e876878bbd3ad4f01679bdca3))
|
||||
* **syntax:** remove emoji variation selector causing build error ([00aabd8](https://github.com/antialias/soroban-abacus-flashcards/commit/00aabd8e6b2fe87cf4ea5cddc978c0788140be07))
|
||||
* tolerate OpenSCAD CGAL warnings if output file is created ([88993f3](https://github.com/antialias/soroban-abacus-flashcards/commit/88993f36629206a7bdcf9aa9d5641f1580b64de5))
|
||||
* track both SVG units and screen pixels for zoom and dampening ([d72f309](https://github.com/antialias/soroban-abacus-flashcards/commit/d72f309badd72003d264fc06206f59d26d226a01))
|
||||
* **tutorial:** correct column validation for bead highlights ([9ba1824](https://github.com/antialias/soroban-abacus-flashcards/commit/9ba18242262cd63cc6c25361aaec3a4c0f66b161))
|
||||
* **tutorial:** expose activeGroupTargetColumn state to context ([69f759a](https://github.com/antialias/soroban-abacus-flashcards/commit/69f759a1787003adc1be51e25d5a6a8291b4591c))
|
||||
* **tutorial:** fix overlay rendering, arrow indicators, and bead visibility ([a804316](https://github.com/antialias/soroban-abacus-flashcards/commit/a80431608dbc4f54d8e4f1095936b95a258b4a72))
|
||||
* **ui:** add wrapper div to prevent content from appearing under nav ([99f4dd5](https://github.com/antialias/soroban-abacus-flashcards/commit/99f4dd51e3d4e28ea2eb4428d9c3aa12372ac592))
|
||||
* 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 absolute positioning for hero abacus to eliminate scroll lag ([096104b](https://github.com/antialias/soroban-abacus-flashcards/commit/096104b094b45aa584f2b9d47a440a8c14d82fc0))
|
||||
* 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 curved Bezier path for borrow arrow ([9b4eb14](https://github.com/antialias/soroban-abacus-flashcards/commit/9b4eb14aaa344fe47ea9bccc9a3df1d7f613bb9d))
|
||||
* use dark gray for borrowing hints on colored backgrounds ([5cb346d](https://github.com/antialias/soroban-abacus-flashcards/commit/5cb346deee53d4c23a827f641947632614bc0400))
|
||||
* use Debian base for deps stage to match runner for binary compatibility ([f8fe6e4](https://github.com/antialias/soroban-abacus-flashcards/commit/f8fe6e4a415f8655626af567129d0cda61b82e15))
|
||||
* use default BOSL2 branch instead of non-existent v2.0.0 tag ([f4ffc5b](https://github.com/antialias/soroban-abacus-flashcards/commit/f4ffc5b0277535358bea7588309a1a4afd1983a1))
|
||||
* 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 nested SVG viewBox for actual cropping, not just scaling ([440b492](https://github.com/antialias/soroban-abacus-flashcards/commit/440b492e85beff1612697346b6c5cfc8461e83da))
|
||||
* use numeric cellSize for borrow box sizing in hints ([cc54176](https://github.com/antialias/soroban-abacus-flashcards/commit/cc54176cb13c49147c6904db5c0627b2777232f8))
|
||||
* use screen pixels for zoom, abandon SVG path parsing ([912dc38](https://github.com/antialias/soroban-abacus-flashcards/commit/912dc385b394712e7caea46d5ced328a06ee90bb))
|
||||
* use semantic tokens for nav bar transparent mode on hero ([d05c6a8](https://github.com/antialias/soroban-abacus-flashcards/commit/d05c6a8664450b26b0feae813b16b54f43f32cff))
|
||||
* 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))
|
||||
* various game improvements and UI enhancements ([b67cf61](https://github.com/antialias/soroban-abacus-flashcards/commit/b67cf610c570d54744553cd8f6694243fa50bee1))
|
||||
* **web,docker:** add --format flag for Typst and upgrade to v0.13.0 ([19b9d7a](https://github.com/antialias/soroban-abacus-flashcards/commit/19b9d7a74f549c7e93c9564e4a903e1bcd5a4bbc))
|
||||
* **web:** add dynamic export to rithmomachia page ([329e623](https://github.com/antialias/soroban-abacus-flashcards/commit/329e62321245ef62726c986c917f19a909a5b65e))
|
||||
* **web:** fix Typst PDF generation path resolution ([7ce1287](https://github.com/antialias/soroban-abacus-flashcards/commit/7ce12875254a31d8acdb35ef5de7d36d215ccd92))
|
||||
* **web:** generate styled-system artifacts during build ([293390a](https://github.com/antialias/soroban-abacus-flashcards/commit/293390ae350a6c6aa467410f68c735512104d9dd))
|
||||
* **web:** move react-dom/server import to API route to satisfy Next.js ([00a8bc3](https://github.com/antialias/soroban-abacus-flashcards/commit/00a8bc3e5e8f044df280c4356d3605a852f82e84))
|
||||
* **web:** move tsx to production dependencies for calendar generation ([ffae9c1](https://github.com/antialias/soroban-abacus-flashcards/commit/ffae9c1bdbccc5edb2e747a09d1fcad3b29e4eac))
|
||||
* **web:** prevent abacus overlap in composite calendar ([448f93c](https://github.com/antialias/soroban-abacus-flashcards/commit/448f93c1e2a7f86bc48e678d4599ca968c6d81d2)), closes [#f0f0f0](https://github.com/antialias/soroban-abacus-flashcards/issues/f0f0f0)
|
||||
* **web:** use AbacusStatic for calendar SVG generation ([08c6a41](https://github.com/antialias/soroban-abacus-flashcards/commit/08c6a419e25d220560eba13d6db437145e6e61b8))
|
||||
* **web:** use dynamic import for react-dom/server in API route ([4f93c7d](https://github.com/antialias/soroban-abacus-flashcards/commit/4f93c7d996732de4bc19e7acf2d4ce803cba88b6))
|
||||
* **web:** use nested SVG elements to prevent coordinate space conflicts ([f9cbee8](https://github.com/antialias/soroban-abacus-flashcards/commit/f9cbee8fcdf80641f3b82a65fad6b8a3575525fc))
|
||||
* **worksheets:** actually fix dropdown button height by constraining description area ([aa9052a](https://github.com/antialias/soroban-abacus-flashcards/commit/aa9052a49ecab8a260dcf10c38145d28df234c2b))
|
||||
* **worksheets:** Add "Practice" difficulty profile for scaffolded regrouping mastery ([d23b606](https://github.com/antialias/soroban-abacus-flashcards/commit/d23b606642d0f72890d5449a4451c7bb3d44d7dd))
|
||||
* **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:** Add operator to preview query key and update UI labels ([97ddc7e](https://github.com/antialias/soroban-abacus-flashcards/commit/97ddc7ee67d5886045b3b304d16e34fbcb305b17))
|
||||
* **worksheets:** add V4 fields to preview query key for cache invalidation ([d9b54a7](https://github.com/antialias/soroban-abacus-flashcards/commit/d9b54a736c389d0ee2bc55808c55456ebad91c76))
|
||||
* **worksheets:** align makeEasier fallback with spec priorities ([3e56e1d](https://github.com/antialias/soroban-abacus-flashcards/commit/3e56e1d6b60cb35235ffbe7410e21d81fda0bf68))
|
||||
* **worksheets:** align makeHarder fallback with spec priorities ([a170209](https://github.com/antialias/soroban-abacus-flashcards/commit/a170209b2f7f626bd6913bf05bd994ce23eb4484))
|
||||
* **worksheets:** correct findNearestPreset direction logic ([878cf02](https://github.com/antialias/soroban-abacus-flashcards/commit/878cf025114ef4dbf5a0b756245bca8f94ffa544))
|
||||
* **worksheets:** correct scaffolding summary to include all conditional modes ([2797038](https://github.com/antialias/soroban-abacus-flashcards/commit/2797038502ed1cb335ba693a4cd1d227c29a4f55))
|
||||
* **worksheets:** correct Typst array membership syntax for ten-frames rendering ([14b3594](https://github.com/antialias/soroban-abacus-flashcards/commit/14b359462f1455cc4a6ddf1c191f4ca0ace167d4))
|
||||
* **worksheets:** dynamically size grid based on actual problem digits ([130bbd4](https://github.com/antialias/soroban-abacus-flashcards/commit/130bbd49dd02654ee7be3aa9b9ebd82f14da54e9))
|
||||
* **worksheets:** enable borrowNotation and borrowingHints in smart difficulty mode ([8020ee8](https://github.com/antialias/soroban-abacus-flashcards/commit/8020ee835e2f7e7e6d1b8709c4ef1ce2b8ff9255))
|
||||
* **worksheets:** Fix subtraction regrouping frequency bug ([8d8e55d](https://github.com/antialias/soroban-abacus-flashcards/commit/8d8e55d5c4e3daa5bf489fca7d89546aa289d1a3))
|
||||
* **worksheets:** increase color visibility for difficulty presets ([a7412ad](https://github.com/antialias/soroban-abacus-flashcards/commit/a7412adbee8d606206968e98c5ff171cf5b39eb1))
|
||||
* **worksheets:** increase dropdown button height to fit all content lines ([3a43149](https://github.com/antialias/soroban-abacus-flashcards/commit/3a43149995c99aa4866d36e154813bfb37421d65))
|
||||
* **worksheets:** Make destination borrow box more visible ([a01fa81](https://github.com/antialias/soroban-abacus-flashcards/commit/a01fa818b464b71dc4d7ea920d78404b6bc1b9d4))
|
||||
* **worksheets:** only show ten-frames row for problems that need regrouping ([8f92f5a](https://github.com/antialias/soroban-abacus-flashcards/commit/8f92f5a57b633ca7464b0d7bef7db3c54f9e3e62))
|
||||
* **worksheets:** persist digitRange and manualPreset in auto-save ([c874995](https://github.com/antialias/soroban-abacus-flashcards/commit/c87499535a145613fb6add8a1d546c094007f67f))
|
||||
* **worksheets:** prevent wrong preset showing as active at custom positions ([88e929e](https://github.com/antialias/soroban-abacus-flashcards/commit/88e929ed6374f954c64a720f84e166a3ce94f386))
|
||||
* **worksheets:** remove foreign key constraint to support guest users ([e6e9ec3](https://github.com/antialias/soroban-abacus-flashcards/commit/e6e9ec3e4fdb6b533a550e55738d47007f6e7aa3))
|
||||
* **worksheets:** resolve SSR URL error and guest user foreign key constraint ([42ea8d5](https://github.com/antialias/soroban-abacus-flashcards/commit/42ea8d561e400ba213825bb4f9fc2a3f4249c09d))
|
||||
* **worksheets:** Set showBorrowNotation to false for smart mode ([e9d52ba](https://github.com/antialias/soroban-abacus-flashcards/commit/e9d52bab493baf0b4b0280c3eda38bfd0e4ddd05))
|
||||
* **worksheets:** show ten-frames in smart mode when rule is 'always' ([0bc8272](https://github.com/antialias/soroban-abacus-flashcards/commit/0bc827283088af33f25e66c1f0b57b5040e4649b))
|
||||
* **worksheets:** ten-frames not rendering in mastery mode ([b36df3a](https://github.com/antialias/soroban-abacus-flashcards/commit/b36df3a40cbc57866095d686fa2c0fc9ec30add2))
|
||||
* **worksheets:** update display options preview to use new problem-stack signature ([258b9ac](https://github.com/antialias/soroban-abacus-flashcards/commit/258b9ac1b4e9a64a145318e4c965b149986eea25))
|
||||
* **worksheets:** use fixed height instead of min-height for dropdown button ([fe1ef8a](https://github.com/antialias/soroban-abacus-flashcards/commit/fe1ef8a7fc536507e33b7c6cf8c444214fef6ad5))
|
||||
* **worksheets:** use imperative voice for difficulty adjustment button labels ([d991512](https://github.com/antialias/soroban-abacus-flashcards/commit/d99151239dfad9f3de6284e8aa31d9eae2ac7bda))
|
||||
* **worksheets:** use white text on colored backgrounds for readability ([2b7b8ec](https://github.com/antialias/soroban-abacus-flashcards/commit/2b7b8ecc87b920333531ae5039ba1f24a2400094))
|
||||
* **worksheets:** validation function was converting mastery mode to manual ([4ad687d](https://github.com/antialias/soroban-abacus-flashcards/commit/4ad687df73365b084115477774e0aada9d102c28))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* optimize Docker image size to reduce build failures ([9ca3106](https://github.com/antialias/soroban-abacus-flashcards/commit/9ca310636183f4970db925ce8fa368e23645eb02))
|
||||
* reduce retry limit from 3000 to 100 in problem generators ([08fef59](https://github.com/antialias/soroban-abacus-flashcards/commit/08fef59cc5d5af788495a96d30580c6ff8f13ee9))
|
||||
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
* begin modularizing typstHelpers.ts - extract shared components ([b42daf9](https://github.com/antialias/soroban-abacus-flashcards/commit/b42daf9a4b0b8f77914af8f5a89e2d19ee48badf))
|
||||
* **card-sorting:** remove reveal numbers feature ([ea5e3e8](https://github.com/antialias/soroban-abacus-flashcards/commit/ea5e3e838bd6a5b8b38469a70aa92a0e9baba769))
|
||||
* **card-sorting:** send complete card sequence instead of individual moves ([e4df843](https://github.com/antialias/soroban-abacus-flashcards/commit/e4df8432b9c4a2055d47833d56b6e9fcf325ca94))
|
||||
* change operator values from Unicode to alphanumeric strings ([f06a6f2](https://github.com/antialias/soroban-abacus-flashcards/commit/f06a6f2dcd4070fd9c20fec8c0692b65c4a18c69))
|
||||
* complete subtraction modularization - 793 lines → modular structure ([a769fe1](https://github.com/antialias/soroban-abacus-flashcards/commit/a769fe1e2022cc25b9d15fa63c3fe0a2e149eb3a))
|
||||
* convert LanguageSelector to Radix UI with theme support ([515e4c4](https://github.com/antialias/soroban-abacus-flashcards/commit/515e4c4f98b62c6fbfa4e0b585ad7ec599779940))
|
||||
* convert mode selector to large tab-style interface ([8910f6a](https://github.com/antialias/soroban-abacus-flashcards/commit/8910f6a1977048d5f47509549e52287fcca1afce))
|
||||
* decouple virtualization from config source ([95f61c6](https://github.com/antialias/soroban-abacus-flashcards/commit/95f61c6e701373763c9a02b8f634ea22c3fc0767))
|
||||
* eliminate prop drilling with WorksheetConfigContext ([a2ab826](https://github.com/antialias/soroban-abacus-flashcards/commit/a2ab82620af853e3894c8ab9d43ba9220355fbae))
|
||||
* eliminate props drilling for openDeploymentInfo ([24302d8](https://github.com/antialias/soroban-abacus-flashcards/commit/24302d8fc5029853158e40b68a01d59461825dd4))
|
||||
* expand query key to include display settings ([7e3d84b](https://github.com/antialias/soroban-abacus-flashcards/commit/7e3d84b127640643d93ec99a0c7c414d263ca4c3))
|
||||
* extract DifficultyPresetDropdown and MakeEasierHarderButtons ([4d1c2c1](https://github.com/antialias/soroban-abacus-flashcards/commit/4d1c2c1e793a8436ddff1942ccce826c909e7a53))
|
||||
* extract OverallDifficultySlider and integrate DifficultyPresetDropdown ([783f269](https://github.com/antialias/soroban-abacus-flashcards/commit/783f269a2f78ed7d61512cda3466098622def506))
|
||||
* extract shared Typst problem rendering function ([d150955](https://github.com/antialias/soroban-abacus-flashcards/commit/d1509558157b08433d1730f815f55bfa95327562))
|
||||
* **games:** implement carousel, fix victories bug, add conditional stats ([82c133f](https://github.com/antialias/soroban-abacus-flashcards/commit/82c133f742f3f5c40b723c18d1997b518f25b320))
|
||||
* **games:** move page title to nav bar ([712ee58](https://github.com/antialias/soroban-abacus-flashcards/commit/712ee58e5956e5bbdb13d5a5fb367020c87c8c9a))
|
||||
* **games:** remove redundant subtitle below nav ([ad5bb87](https://github.com/antialias/soroban-abacus-flashcards/commit/ad5bb87325a44825f0cd85b38eb0e5f0eea7a695))
|
||||
* **games:** remove wheel scrolling, enable overflow visible carousel ([876513c](https://github.com/antialias/soroban-abacus-flashcards/commit/876513c9cc6323c20845ae8f1a3a5478d449f9e4))
|
||||
* **layout:** make nav height truly self-referential ([9886302](https://github.com/antialias/soroban-abacus-flashcards/commit/98863026b789d09eecb0bc3e013d112889a5d038))
|
||||
* move 3D abacus creator feature to separate branch ([c8aa602](https://github.com/antialias/soroban-abacus-flashcards/commit/c8aa602e1c9b6f42bc9f7bf69278511a15f98616))
|
||||
* move large page counts to dropdown menu ([4ea4ead](https://github.com/antialias/soroban-abacus-flashcards/commit/4ea4ead834dec096dab94d6a29c7c780803b8a5e))
|
||||
* move progressive difficulty toggle below operator section ([0425033](https://github.com/antialias/soroban-abacus-flashcards/commit/0425033080625dd0744f034579eaf156580eac20))
|
||||
* place 'n − 1 →' text inside borrow box at top ([232e1a2](https://github.com/antialias/soroban-abacus-flashcards/commit/232e1a2221d7de0f40d2490a675494452a532566))
|
||||
* redesign tabs to look like traditional tabs ([8f1ddf4](https://github.com/antialias/soroban-abacus-flashcards/commit/8f1ddf4b34fc3b690ed248c7bc40d56f8b3ef05a))
|
||||
* remove debug console.log statements ([32f51ae](https://github.com/antialias/soroban-abacus-flashcards/commit/32f51ae739679789585182ba659ec5f1168d652d))
|
||||
* remove debug logs for fixed issues ([5e42aab](https://github.com/antialias/soroban-abacus-flashcards/commit/5e42aabfa9fd64bb6b00d579972ca16ec3812045))
|
||||
* remove loadedPages and fetchingPages state ([90fb88b](https://github.com/antialias/soroban-abacus-flashcards/commit/90fb88b72acf172119e0e3dd863c6f4b4fe59f71))
|
||||
* reorganize Harmony and Victory guide sections ([fb629c4](https://github.com/antialias/soroban-abacus-flashcards/commit/fb629c44ea37a7b296561919a4980c10d14efed8))
|
||||
* replace two-query system with single all-pages query ([fbb035b](https://github.com/antialias/soroban-abacus-flashcards/commit/fbb035b12baed975fd5611ef8033a689366013cf))
|
||||
* restructure /create page into hub with sub-pages ([b91b23d](https://github.com/antialias/soroban-abacus-flashcards/commit/b91b23d95ffaeeaa30dbc8579f4c30bae8829ee7))
|
||||
* **rithmomachia:** extract board and capture components (phase 2+3) ([a0a867b](https://github.com/antialias/soroban-abacus-flashcards/commit/a0a867b27166a838ca7e0dcbd8f89fe1be812a80))
|
||||
* **rithmomachia:** extract CaptureErrorDialog component (Phase 2 partial) ([f0a066d](https://github.com/antialias/soroban-abacus-flashcards/commit/f0a066d8f0a51d35e18f87a8436c0d05153c03b5))
|
||||
* **rithmomachia:** extract constants and coordinate utilities (Phase 1) ([eace0ed](https://github.com/antialias/soroban-abacus-flashcards/commit/eace0ed52979b71870f77ee68f8568558f2aaecb))
|
||||
* **rithmomachia:** extract guide sections into separate files ([765525d](https://github.com/antialias/soroban-abacus-flashcards/commit/765525dc451897f561f017e444aae892dc27177f))
|
||||
* **rithmomachia:** extract hooks (phase 5) ([324a659](https://github.com/antialias/soroban-abacus-flashcards/commit/324a65992f97c295ea3968aaf54d266373f4c035))
|
||||
* **rithmomachia:** extract phase components (phase 4) ([11364f6](https://github.com/antialias/soroban-abacus-flashcards/commit/11364f6394c15e49850e5cad2cbd32e1ea08a178))
|
||||
* **rithmomachia:** extract reusable components from SetupPhase ([3abc325](https://github.com/antialias/soroban-abacus-flashcards/commit/3abc325ea27feee5c4cc59f02296ff218f342a81))
|
||||
* **rithmomachia:** make setup phase UI more compact ([e55f848](https://github.com/antialias/soroban-abacus-flashcards/commit/e55f848a26092a2b4a5b09c3c255544ea9666f1b))
|
||||
* **rithmomachia:** redesign error notification with modern UI ([dfeeb0e](https://github.com/antialias/soroban-abacus-flashcards/commit/dfeeb0e0db8b2c4a38198cf71cd918439d6c211b)), closes [#1e293](https://github.com/antialias/soroban-abacus-flashcards/issues/1e293) [#0f172](https://github.com/antialias/soroban-abacus-flashcards/issues/0f172) [#f1f5f9](https://github.com/antialias/soroban-abacus-flashcards/issues/f1f5f9)
|
||||
* **rithmomachia:** simplify capture error dialog to one-liner ([82a5eb2](https://github.com/antialias/soroban-abacus-flashcards/commit/82a5eb2e4bf74f42a183a15f1129e5ec84cc5231))
|
||||
* **rithmomachia:** Update board setup to authoritative CSV layout ([0471da5](https://github.com/antialias/soroban-abacus-flashcards/commit/0471da598d8d591b3f9d63f467cb35f999924c13))
|
||||
* **rithmomachia:** update capture components to use CaptureContext ([2ab6ab5](https://github.com/antialias/soroban-abacus-flashcards/commit/2ab6ab57995a6d7d9c66b9fba8de945507209661))
|
||||
* **rithmomachia:** use useBoardLayout and usePieceSelection in BoardDisplay ([0ab7a1d](https://github.com/antialias/soroban-abacus-flashcards/commit/0ab7a1df327d7258228af9851762555583a20d61))
|
||||
* simplify borrowed 10s box UI and add place value colors ([42c9c9d](https://github.com/antialias/soroban-abacus-flashcards/commit/42c9c9dd7eb377a8fc19cef0d6fc5ba6aa68c478))
|
||||
* simplify fetchWorksheetPreview to remove pagination ([200e394](https://github.com/antialias/soroban-abacus-flashcards/commit/200e3940556bd96c32988d11d8f22061e5fc7b9f))
|
||||
* simplify pointer lock with movement delta multipliers ([749b16a](https://github.com/antialias/soroban-abacus-flashcards/commit/749b16ac271decc1f1730aba9ebd208347e39ae1))
|
||||
* start page dropdown at 4 and remove 'pages' suffix ([cf7eb57](https://github.com/antialias/soroban-abacus-flashcards/commit/cf7eb574d407a908cccbc6b9237b2b1b5122a4af))
|
||||
* unify zoom modes into single adaptive zoom ([d1acdd9](https://github.com/antialias/soroban-abacus-flashcards/commit/d1acdd9e5492a212a736180afed41e4546895453))
|
||||
* use AbacusReact for dynamic Open Graph image ([9c20f12](https://github.com/antialias/soroban-abacus-flashcards/commit/9c20f12bacff4fe7f8bd7a87032afbed9711e94b))
|
||||
* use existing Radix toast system for errors ([59901c5](https://github.com/antialias/soroban-abacus-flashcards/commit/59901c5533adfc502c3f97652f1c7a5e8c63db87))
|
||||
* use package-level cropToActiveBeads in generateDayIcon script ([b6c3d6b](https://github.com/antialias/soroban-abacus-flashcards/commit/b6c3d6bda4eef56bd2b3f4772e9a4236ba3ff5c7))
|
||||
* use server-side loading for shared worksheets ([c9a9146](https://github.com/antialias/soroban-abacus-flashcards/commit/c9a9146820d0a183467a81053e2f9985df4f909e))
|
||||
* **web:** import utility functions from abacus-react ([7228bbc](https://github.com/antialias/soroban-abacus-flashcards/commit/7228bbc2eb8b9b2b861d32b760b14895a1a7ee8a))
|
||||
* **web:** move calendar generators to src/utils for proper compilation ([379698f](https://github.com/antialias/soroban-abacus-flashcards/commit/379698fea3fc8f04d716d35347749182d5c53b5c))
|
||||
* **web:** return calendar SVG preview with PDF generation ([14a5de0](https://github.com/antialias/soroban-abacus-flashcards/commit/14a5de0dfadf423c646f4748b0de94f2483b18a1))
|
||||
* **web:** use ABACUS_THEMES instead of manual style definitions ([9f7f001](https://github.com/antialias/soroban-abacus-flashcards/commit/9f7f001d747402b1578116e45c1a137519714314))
|
||||
* **web:** use client-side React rendering for live calendar preview ([f880cbe](https://github.com/antialias/soroban-abacus-flashcards/commit/f880cbe4bffc898ae95d36d68615cf317d94012a))
|
||||
* **web:** use compact prop for inline mini-abacus ([ff1d60a](https://github.com/antialias/soroban-abacus-flashcards/commit/ff1d60a23387d22e7ed44185dc3a8c895b7c0d12))
|
||||
* **web:** use direct function imports instead of execSync for calendar generation ([9f1715f](https://github.com/antialias/soroban-abacus-flashcards/commit/9f1715f0856bcd125a79014c0c8c854c1c7b3f4d))
|
||||
* **web:** use stdin/stdout for Typst compilation ([06f68cc](https://github.com/antialias/soroban-abacus-flashcards/commit/06f68cc74c31b54284808beadf67f4db08d03420))
|
||||
* **worksheets:** constrain display preview width ([507a39d](https://github.com/antialias/soroban-abacus-flashcards/commit/507a39da19d389cef8e29f2cc261d24315d3b445))
|
||||
* **worksheets:** extract client component and add debug logging ([f7e4c52](https://github.com/antialias/soroban-abacus-flashcards/commit/f7e4c5241e32aa1f834243fefb2929196376c334))
|
||||
* **worksheets:** extract ConfigPanel helper components (Phase 1) ([3656800](https://github.com/antialias/soroban-abacus-flashcards/commit/3656800534e45336f05303a64db60980dcfe4db0))
|
||||
* **worksheets:** extract shared ConfigPanel sections (Phase 2 complete) ([d27e2c0](https://github.com/antialias/soroban-abacus-flashcards/commit/d27e2c03bd7779b5072d13f0272759d6e81b0836))
|
||||
* **worksheets:** extract Smart Mode controls (Phase 3 complete) ([76a6168](https://github.com/antialias/soroban-abacus-flashcards/commit/76a6168b0061f340eaaad30a4bbafe75630a3634))
|
||||
* **worksheets:** extract StudentNameInput component (Phase 2 - partial) ([cbe29d5](https://github.com/antialias/soroban-abacus-flashcards/commit/cbe29d5c54aa8dc58f6b82fcf0f8961f472e8132))
|
||||
* **worksheets:** extract utility functions ([2e0f99f](https://github.com/antialias/soroban-abacus-flashcards/commit/2e0f99f98a871db63922fe1a068489c7b071b194))
|
||||
* **worksheets:** Phase 4 - Extract Manual Mode controls ([4cf6fca](https://github.com/antialias/soroban-abacus-flashcards/commit/4cf6fcab15e5f8994ddbd652b94e873d332f436a))
|
||||
* **worksheets:** Phase 5 - Final ConfigPanel cleanup ([85db052](https://github.com/antialias/soroban-abacus-flashcards/commit/85db052f07be22a81cd709264eff27f7bc6583ad))
|
||||
* **worksheets:** simplify scaffolding summary with grouped frequency ([3541b79](https://github.com/antialias/soroban-abacus-flashcards/commit/3541b792d5c206b625a8496ad6c1ae32dc5c071f))
|
||||
* **worksheets:** use distance-guided discrete progression for difficulty ([bd6fadf](https://github.com/antialias/soroban-abacus-flashcards/commit/bd6fadf0dbd7212c65ea02514b5c89fc55ff2455))
|
||||
|
||||
|
||||
### Documentation
|
||||
|
||||
* **abacus-react:** add Storybook stories for AbacusStatic ([4f9dc46](https://github.com/antialias/soroban-abacus-flashcards/commit/4f9dc4666d249c1c67c51a3901c4f657ff9723ef))
|
||||
* **abacus-react:** add Storybook stories for new features ([6a1cec0](https://github.com/antialias/soroban-abacus-flashcards/commit/6a1cec06a75575cb35ddca5ef573aaf13c2352f4))
|
||||
* **abacus-react:** export AbacusStatic and update README ([74f2d97](https://github.com/antialias/soroban-abacus-flashcards/commit/74f2d97434620cb8c7d49912bca3bf386408a16d))
|
||||
* **abacus-react:** update documentation for new features ([35d8734](https://github.com/antialias/soroban-abacus-flashcards/commit/35d8734a3a9124564957444d3642c9e7c4348fac))
|
||||
* **abacus-react:** update README with /static import path for RSC ([72a4c2b](https://github.com/antialias/soroban-abacus-flashcards/commit/72a4c2b80c1158a6eaf21abe4e807ff6e70373ac))
|
||||
* add 3D enhancement documentation to README ([cc96802](https://github.com/antialias/soroban-abacus-flashcards/commit/cc96802df87c805c946ee59af509663ba570e75b))
|
||||
* add code factoring guidelines to prevent copy-paste ([71a8ab5](https://github.com/antialias/soroban-abacus-flashcards/commit/71a8ab5c93e84e6b8cedc8cd3faef2f2c677ffce))
|
||||
* add comprehensive merge conflict resolution guide ([e4fc363](https://github.com/antialias/soroban-abacus-flashcards/commit/e4fc363a970acd00e700f64498bcecf1095c30d8))
|
||||
* add comprehensive precision controls documentation for Know Your World ([8511998](https://github.com/antialias/soroban-abacus-flashcards/commit/8511998d0cde710563d502b650d6678082165ba6))
|
||||
* add critical section on never adding tsx to production dependencies ([770cfc3](https://github.com/antialias/soroban-abacus-flashcards/commit/770cfc3aca296b4f52c822710a1072fe501a0f49))
|
||||
* add database migration guide and playing guide modal spec ([5a29af7](https://github.com/antialias/soroban-abacus-flashcards/commit/5a29af78e27e897ab35273611b79c4b669304f71))
|
||||
* add deployment verification guidelines to prevent false positives ([3d8da23](https://github.com/antialias/soroban-abacus-flashcards/commit/3d8da2348b4e8a227e963791d15dc6718eac5af1))
|
||||
* add merge conflict resolution section to CLAUDE.md ([a82d80b](https://github.com/antialias/soroban-abacus-flashcards/commit/a82d80b02c3f1421bd8874b4d1f26719a5f82704))
|
||||
* add operator-specific settings architecture & refactoring plan ([e06de8e](https://github.com/antialias/soroban-abacus-flashcards/commit/e06de8ea47a548139a542b3d7edfca1b56678f83))
|
||||
* add Storybook stories demonstrating cropToActiveBeads feature ([104f3e6](https://github.com/antialias/soroban-abacus-flashcards/commit/104f3e65d40a359b589136c7d3dedb8a9c31078b))
|
||||
* **blog:** update difficulty post with scaffolding examples ([191231f](https://github.com/antialias/soroban-abacus-flashcards/commit/191231f8ffc5f7b5c247ad0d114a4fd79464da82))
|
||||
* **card-sorting:** add comprehensive multiplayer plan ([008ccea](https://github.com/antialias/soroban-abacus-flashcards/commit/008ccead0f9c634fe52fd156e6f9a04d6cdd7744))
|
||||
* clarify dev server management in Claude Code instructions ([e08fdfd](https://github.com/antialias/soroban-abacus-flashcards/commit/e08fdfd676b51a9fed23bda336b13f5e1d40b96c))
|
||||
* comprehensive problem generation documentation ([5304e4d](https://github.com/antialias/soroban-abacus-flashcards/commit/5304e4da4e81777e3cee6aefb1f8ccdeb95230b6))
|
||||
* document compose-updater detection issue ([b37a960](https://github.com/antialias/soroban-abacus-flashcards/commit/b37a960d35ff35dab227d1f79ee51d0b27c8524b))
|
||||
* link problem generation docs to README graph ([1a7e81c](https://github.com/antialias/soroban-abacus-flashcards/commit/1a7e81c4e2b00fab590350d0f710bfab01c12b81))
|
||||
* **rithmomachia:** Add concise one-page playing guide ([e3c1f10](https://github.com/antialias/soroban-abacus-flashcards/commit/e3c1f10233cc0924ff96a643c7c4c1f1278de3e3))
|
||||
* update workflow to require manual testing before commits ([0991796](https://github.com/antialias/soroban-abacus-flashcards/commit/0991796f1eccef345f10205e675e4c33d1a62b17))
|
||||
* **worksheets:** add academic publication plan for 2D difficulty system ([ca8d774](https://github.com/antialias/soroban-abacus-flashcards/commit/ca8d774370941bf92c7676ec9679808a280a4817))
|
||||
* **worksheets:** add comprehensive refactoring plan for AdditionWorksheetClient ([f2e48bb](https://github.com/antialias/soroban-abacus-flashcards/commit/f2e48bb8ab9c30124e29abdb87e42faaf8243bb3))
|
||||
* **worksheets:** add constrained 2D difficulty system specification ([7d72865](https://github.com/antialias/soroban-abacus-flashcards/commit/7d72865d4da0d2d548be6639b28f3827f31d1a52))
|
||||
* **worksheets:** add two-mode system planning docs and update API route ([369b7f2](https://github.com/antialias/soroban-abacus-flashcards/commit/369b7f263de413bef16402b9a9a8857323dd5ba1))
|
||||
|
||||
|
||||
### Styles
|
||||
|
||||
* **abacus:** fix indentation ([847c503](https://github.com/antialias/soroban-abacus-flashcards/commit/847c50346f0accadf76f19207f0004157e14b085))
|
||||
* fix formatting and add approved bash commands ([0c4b0c2](https://github.com/antialias/soroban-abacus-flashcards/commit/0c4b0c2fac3da9b037456f94bf2bfdcab70224f3))
|
||||
* **rithmomachia:** improve divider styling and make tabs responsive ([88ca35e](https://github.com/antialias/soroban-abacus-flashcards/commit/88ca35e0440157ff9349e8d3d2d3cc844f18ffea)), closes [#e5e7](https://github.com/antialias/soroban-abacus-flashcards/issues/e5e7) [#9ca3](https://github.com/antialias/soroban-abacus-flashcards/issues/9ca3)
|
||||
* **rithmomachia:** improve pyramid face numbers visibility and contrast ([94e5e6a](https://github.com/antialias/soroban-abacus-flashcards/commit/94e5e6a268b387380b88b192737bd55578b98bc7)), closes [#fbbf24](https://github.com/antialias/soroban-abacus-flashcards/issues/fbbf24) [#b45309](https://github.com/antialias/soroban-abacus-flashcards/issues/b45309)
|
||||
* **rithmomachia:** increase pyramid face numbers size and boldness ([7bf2d73](https://github.com/antialias/soroban-abacus-flashcards/commit/7bf2d730d370e562486b229f4d209099ff8c4463))
|
||||
|
||||
|
||||
### Tests
|
||||
|
||||
* trigger compose-updater deployment test ([2b06aae](https://github.com/antialias/soroban-abacus-flashcards/commit/2b06aae39474cc80d501c47c9685fa99e7120c48))
|
||||
* verify compose-updater automatic deployment cycle ([af0552c](https://github.com/antialias/soroban-abacus-flashcards/commit/af0552ccd98f7b5a62d6e4074b7d87b3716af698))
|
||||
|
||||
## [4.68.0](https://github.com/antialias/soroban-abacus-flashcards/compare/v4.67.1...v4.68.0) (2025-11-23)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **3d-abacus:** change default columns from 13 to 4 ([cd15c70](https://github.com/antialias/soroban-abacus-flashcards/commit/cd15c70a25c597c17ee5d2f816b1c85ba8ce4ce9))
|
||||
* **abacus-react:** add AbacusStatic for React Server Components ([3b8e864](https://github.com/antialias/soroban-abacus-flashcards/commit/3b8e864cfa3af50b1912ce7ff55003d7f6b9c229))
|
||||
* **abacus-react:** add automatic theme detection for numeral colors ([cbfd861](https://github.com/antialias/soroban-abacus-flashcards/commit/cbfd8618a91d58dffb73dd3aefde11023ece4d5a))
|
||||
* **abacus-react:** add comprehensive Storybook stories for automatic theme detection ([8ef57cc](https://github.com/antialias/soroban-abacus-flashcards/commit/8ef57ccec5debaa0ffa1c0e36005bd478cde60f1))
|
||||
* **abacus-react:** add core utility functions for state management ([e65541c](https://github.com/antialias/soroban-abacus-flashcards/commit/e65541c100e590a51448750c6d5178ed4f3e8eeb))
|
||||
* **abacus-react:** add layout and educational props ([35bbcec](https://github.com/antialias/soroban-abacus-flashcards/commit/35bbcecb9e36f1ef5917a5a629f5e78f1f490e9c))
|
||||
* **abacus-react:** add pre-defined theme presets ([cf1f950](https://github.com/antialias/soroban-abacus-flashcards/commit/cf1f950c7c5fb9ee1f0de673235d6f037be3b9d6))
|
||||
* **abacus-react:** add React hooks for abacus calculations ([de038d2](https://github.com/antialias/soroban-abacus-flashcards/commit/de038d2afc26c36c1490d5ea45dace0ab812c5cc))
|
||||
* **abacus-react:** add separate /static export path for React Server Components ([ed69f6b](https://github.com/antialias/soroban-abacus-flashcards/commit/ed69f6b917c543bbcaa4621a0e63745bee70f5bf))
|
||||
* **abacus-react:** add shared dimension calculator for consistent sizing ([e5ba772](https://github.com/antialias/soroban-abacus-flashcards/commit/e5ba772fde9839c22daec92007f052ca125c7695))
|
||||
* **abacus-react:** export new utilities, hooks, and themes ([ce4e44d](https://github.com/antialias/soroban-abacus-flashcards/commit/ce4e44d6302746053ad40dc61bab57ef3a0a9f31))
|
||||
* **abacus:** add nativeAbacusNumbers setting to schema and UI ([79f7347](https://github.com/antialias/soroban-abacus-flashcards/commit/79f7347d4800646378470a7f9aca8e7f2fd5573c))
|
||||
* add 'auto' option for scaffolding to defer to mastery progression ([a945a62](https://github.com/antialias/soroban-abacus-flashcards/commit/a945a620c40661c3ff026fc3568f708744dc27b2))
|
||||
* add 3D printing support for abacus models ([dafdfdd](https://github.com/antialias/soroban-abacus-flashcards/commit/dafdfdd233b53464b9825a8a9b5f2e6206fc54cb))
|
||||
* 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 API endpoint for live worksheet preview examples ([bef3a21](https://github.com/antialias/soroban-abacus-flashcards/commit/bef3a2144249316c53b46a2748f099039a0b104c))
|
||||
* add arrow from '1' in borrow hint pointing right ([b718994](https://github.com/antialias/soroban-abacus-flashcards/commit/b718994dab894b2563d207c9c2a832e5911dd034))
|
||||
* add auto scaffolding mode with visual feedback and override notices ([b62db5a](https://github.com/antialias/soroban-abacus-flashcards/commit/b62db5a323f803da6b2ad26238735f5d51b4557e))
|
||||
* add client-side OpenSCAD WASM support for 3D preview ([eaaf17c](https://github.com/antialias/soroban-abacus-flashcards/commit/eaaf17cd4c675bfd40e0573b9c99f0c733d926aa))
|
||||
* add close button and theme support to mobile menu ([ea41b32](https://github.com/antialias/soroban-abacus-flashcards/commit/ea41b323d08f63ea81efa6d988ea3acf1a0b003a))
|
||||
* add comprehensive error handling for arcade games ([e8c5256](https://github.com/antialias/soroban-abacus-flashcards/commit/e8c52561a2b881cb6bece0d806720e06cd148c99))
|
||||
* add comprehensive metadata, SEO, and make AbacusReact SSR-compatible ([0922ea1](https://github.com/antialias/soroban-abacus-flashcards/commit/0922ea10b77e7d16b8c414c596d23cb11e20c1cc))
|
||||
* add comprehensive Storybook coverage and migration guide ([7a4a37e](https://github.com/antialias/soroban-abacus-flashcards/commit/7a4a37ec6d0171782778e18122da782f069e0556))
|
||||
* add continent filtering to Know Your World game ([7bb03b8](https://github.com/antialias/soroban-abacus-flashcards/commit/7bb03b84099a10cb48c5b1b4c0bf60ca2e527977))
|
||||
* add cropToActiveBeads prop to AbacusStatic and AbacusReact ([35b0824](https://github.com/antialias/soroban-abacus-flashcards/commit/35b0824fc4fb0b754e53b20a00541da1bf4b8434))
|
||||
* 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 diagonal arrow from '1' to borrowed 10s box ([a9319c3](https://github.com/antialias/soroban-abacus-flashcards/commit/a9319c3bd8dcc0fc201d865765b615800ca36807))
|
||||
* add DisplayOptionsPreview component with debouncing ([6502da7](https://github.com/antialias/soroban-abacus-flashcards/commit/6502da7e378acea468d48fc58a07fa2dfa91076d))
|
||||
* 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 function-based custom bead rendering and HTTP status code easter eggs ([fde5ae9](https://github.com/antialias/soroban-abacus-flashcards/commit/fde5ae916430c194de4b0d2aa5fd95f25b2f7a80))
|
||||
* add game preview system with mock arcade environment ([25880cc](https://github.com/antialias/soroban-abacus-flashcards/commit/25880cc7e463f98a5a23c812c1ffd43734d3fe1f))
|
||||
* add infrastructure for borrowing hints toggle ([74c6756](https://github.com/antialias/soroban-abacus-flashcards/commit/74c67566d2b913bad2155227cd19b7da1c732cba))
|
||||
* 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 per-player stats tracking system ([613301c](https://github.com/antialias/soroban-abacus-flashcards/commit/613301cd137ad6f712571a0be45c708ce391fc8f))
|
||||
* 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 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 curved arrow for borrowing hints ([112745c](https://github.com/antialias/soroban-abacus-flashcards/commit/112745ce16da776568a059a5b8ff4de730e57400))
|
||||
* 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 Strategy & Tactics section to Rithmomachia guide ([81ead65](https://github.com/antialias/soroban-abacus-flashcards/commit/81ead65680892efa4d0ab07e7f0ef77eb1bc1405))
|
||||
* add theme support to abacus style dropdown ([2e294ee](https://github.com/antialias/soroban-abacus-flashcards/commit/2e294ee820bdf01dde39c80cef85db39d5657d70))
|
||||
* add theme support to config panel components ([c868421](https://github.com/antialias/soroban-abacus-flashcards/commit/c8684213fa61a926cdf90fbdd1dc84c008bb6ea3))
|
||||
* add theme support to desktop hamburger menu ([ab9272b](https://github.com/antialias/soroban-abacus-flashcards/commit/ab9272bee61703af465264f3a8bb2dd6c270a9f3))
|
||||
* add theme support to MyAbacus button ([702c1c9](https://github.com/antialias/soroban-abacus-flashcards/commit/702c1c9af25e99960ee958d0ad5b631f48138488))
|
||||
* add theme support to orientation and generate panels ([e38775b](https://github.com/antialias/soroban-abacus-flashcards/commit/e38775b9910751c4cd1d7aed420324315f21537a))
|
||||
* add theme support to worksheet page container ([5c14925](https://github.com/antialias/soroban-abacus-flashcards/commit/5c14925d7dbfc6e30dc7b53d6824f6aa8c2f421e))
|
||||
* add theme support to worksheet preview ([693b679](https://github.com/antialias/soroban-abacus-flashcards/commit/693b67996599036f9eb20cc165f4200a4905a6dc))
|
||||
* add themed backgrounds and enhanced styling to 404 page ([dd14062](https://github.com/antialias/soroban-abacus-flashcards/commit/dd14062112d0b3e29fc03c873ff434b1fdf0ae88))
|
||||
* add unified trophy abacus with hero mode integration ([6620418](https://github.com/antialias/soroban-abacus-flashcards/commit/6620418a704dcca810b511a5f394084521104e6b))
|
||||
* add visible grab tab to worksheet panel resize handle ([288e6ed](https://github.com/antialias/soroban-abacus-flashcards/commit/288e6ed878541fe06bb28d7c00008e1830db19b6))
|
||||
* 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))
|
||||
* **arcade:** add ability to deactivate remote players without kicking user ([3628426](https://github.com/antialias/soroban-abacus-flashcards/commit/3628426a567d7e0273be75cce64632ae04b7d5eb))
|
||||
* **arcade:** add native abacus numbers support to pressure gauge ([1d525c7](https://github.com/antialias/soroban-abacus-flashcards/commit/1d525c7b5320984a1582b8ab7eae57895c728428))
|
||||
* **arcade:** add Rithmomachia (Battle of Numbers) game ([2fc0a05](https://github.com/antialias/soroban-abacus-flashcards/commit/2fc0a05f7f557cee55f7d31b585499dd04e68ff9))
|
||||
* **arcade:** add yjs-demo collaborative game and Yjs persistence layer ([d568955](https://github.com/antialias/soroban-abacus-flashcards/commit/d568955d6abf389e6ab7c6979e33122a65917a46))
|
||||
* **arcade:** auto-create room when user has none ([ff88c3a](https://github.com/antialias/soroban-abacus-flashcards/commit/ff88c3a1b81703a87a1d57eeb5cc139da7d9df04))
|
||||
* **blog:** add "The Calculator Won" post on abacus education history ([8e04867](https://github.com/antialias/soroban-abacus-flashcards/commit/8e0486765a263d0fa68967a9fbfe7c1dab2e6359))
|
||||
* **blog:** add blog pages and API endpoints ([1886ea0](https://github.com/antialias/soroban-abacus-flashcards/commit/1886ea0e7339f67b87780910698025af4ecc549c))
|
||||
* **blog:** add navigation bar to blog pages ([6b4ed5d](https://github.com/antialias/soroban-abacus-flashcards/commit/6b4ed5d9dc355bed853fc209151d3f4374b4363f))
|
||||
* **blog:** add subtraction and multi-digit worksheet blog posts ([dd9587f](https://github.com/antialias/soroban-abacus-flashcards/commit/dd9587f8cde6fbc129ddb315dde8a27564108514))
|
||||
* **blog:** generate worksheet examples showing scaffolding progression ([b628a34](https://github.com/antialias/soroban-abacus-flashcards/commit/b628a3460565ff6f8d5e73ae37d8563209f66498))
|
||||
* calculate zoom based on region under cursor, target 15% area ([6736336](https://github.com/antialias/soroban-abacus-flashcards/commit/6736336317b587214db5109cee5a3cc35ef78b29))
|
||||
* **calendar:** add beautiful daily calendar with locale-based paper size detection ([bdca315](https://github.com/antialias/soroban-abacus-flashcards/commit/bdca3154f8336e17a7031be8d2917f9cf05f274a))
|
||||
* **calendar:** add i18n support and cropped abacus day numbers ([5242f89](https://github.com/antialias/soroban-abacus-flashcards/commit/5242f890f725c872a74b6ee45cd611092628690a))
|
||||
* **card-sorting:** add activity feed notifications for collaborative mode ([1461414](https://github.com/antialias/soroban-abacus-flashcards/commit/1461414ef4d0b213af241213447c91eed1abe5fb))
|
||||
* **card-sorting:** add auto-submit countdown for perfect sequences ([780a716](https://github.com/antialias/soroban-abacus-flashcards/commit/780a7161bc05c2ca6597d7d8d89f01afd33d9f4d))
|
||||
* **card-sorting:** add bezier curves to connecting arrows ([4d8e873](https://github.com/antialias/soroban-abacus-flashcards/commit/4d8e873358271fe3fd50b228aea8277e20aa5966))
|
||||
* **card-sorting:** add CardPosition type and position syncing ([656f5a7](https://github.com/antialias/soroban-abacus-flashcards/commit/656f5a7838ed6003c214ec484d4c37072270fa8d))
|
||||
* **card-sorting:** add collapsible stats sidebar for spectators ([6527c26](https://github.com/antialias/soroban-abacus-flashcards/commit/6527c26a8166b23f074e85eb335a15800c1947a2))
|
||||
* **card-sorting:** add game mode selector UI to setup phase ([d25b888](https://github.com/antialias/soroban-abacus-flashcards/commit/d25b888ffb3915d2d482442ab708ba3e159af512))
|
||||
* **card-sorting:** add GameMode type system for multiplayer support ([fd76533](https://github.com/antialias/soroban-abacus-flashcards/commit/fd765335efbc91366c596c7789b92882cd3379d9))
|
||||
* **card-sorting:** add green border to correctly positioned cards ([16fca86](https://github.com/antialias/soroban-abacus-flashcards/commit/16fca86b7687115f1cf565c533a512e92946e3a8)), closes [#22c55](https://github.com/antialias/soroban-abacus-flashcards/issues/22c55)
|
||||
* **card-sorting:** add player emoji indicators on moving cards ([3a82099](https://github.com/antialias/soroban-abacus-flashcards/commit/3a8209975728cdcf914c43ba08339454a9e2457f))
|
||||
* **card-sorting:** add react-spring animations for real-time sync ([c367e0c](https://github.com/antialias/soroban-abacus-flashcards/commit/c367e0ceece41d8e7c2bc8aebe3239ff6053a115))
|
||||
* **card-sorting:** add smooth transition to drop shadow ([b0b93d0](https://github.com/antialias/soroban-abacus-flashcards/commit/b0b93d0175c8a1c8958d6ba346d969c234fdd6ff))
|
||||
* **card-sorting:** add spectator mode UI enhancements ([ee7345d](https://github.com/antialias/soroban-abacus-flashcards/commit/ee7345d641e0ee72915afb9cdbd6d284b7e238bd)), closes [#6366f1](https://github.com/antialias/soroban-abacus-flashcards/issues/6366f1) [#8b5cf6](https://github.com/antialias/soroban-abacus-flashcards/issues/8b5cf6)
|
||||
* **card-sorting:** add team scoring UI for collaborative mode ([ed6f177](https://github.com/antialias/soroban-abacus-flashcards/commit/ed6f1779141d0bc9dff2d532a3dfc638015936b5)), closes [#a78](https://github.com/antialias/soroban-abacus-flashcards/issues/a78) [#8b5cf6](https://github.com/antialias/soroban-abacus-flashcards/issues/8b5cf6)
|
||||
* **card-sorting:** add updateCardPositions action to Provider ([f6ed4a2](https://github.com/antialias/soroban-abacus-flashcards/commit/f6ed4a27a26d8bfa495ba5f580a446286b9674a0))
|
||||
* **card-sorting:** auto-arrange prefix/suffix cards in corners ([4ba7f24](https://github.com/antialias/soroban-abacus-flashcards/commit/4ba7f247175d93e4d339e2be7bbdb2e009992232))
|
||||
* **card-sorting:** fade correctly positioned cards to 50% opacity ([7028cfc](https://github.com/antialias/soroban-abacus-flashcards/commit/7028cfc51164e9219479e6040b03c29239aa7edb))
|
||||
* **card-sorting:** gentler spring animation for locked cards ([47189cb](https://github.com/antialias/soroban-abacus-flashcards/commit/47189cb6e79ed2915f5ddcc9cb3626540dfb07f3))
|
||||
* **card-sorting:** implement continuous bezier curve paths ([2d93024](https://github.com/antialias/soroban-abacus-flashcards/commit/2d9302410f5e98145a435b00df3ae5fcf3f4c0b5))
|
||||
* **card-sorting:** improve card distribution for natural scattered look ([0b0503f](https://github.com/antialias/soroban-abacus-flashcards/commit/0b0503f0354a4a82fe6b9bfe827729e8e5a9e329))
|
||||
* **card-sorting:** make player emoji fill entire card background ([2e7a02c](https://github.com/antialias/soroban-abacus-flashcards/commit/2e7a02c9e4ab84e821d58661d6e7a326f7882afb))
|
||||
* **card-sorting:** optimize results screen for mobile ([d188789](https://github.com/antialias/soroban-abacus-flashcards/commit/d188789069b4c350ce3cc0d221bd4a43dab528e0))
|
||||
* **card-sorting:** redesign setup screen with modern UI ([73cf967](https://github.com/antialias/soroban-abacus-flashcards/commit/73cf96749234c480482f62392245b38c1fd5f0a0))
|
||||
* **card-sorting:** scale correctly positioned cards to 50% ([222dc55](https://github.com/antialias/soroban-abacus-flashcards/commit/222dc555fa5068e2594dcc074e33f70320f5742c))
|
||||
* **card-sorting:** shrink/fade cards in correct suffix as well ([8f6feec](https://github.com/antialias/soroban-abacus-flashcards/commit/8f6feec4f21d0af0d1c98daf5017eddd91d3d578))
|
||||
* **card-sorting:** smooth spring transition from game table to results grid ([c5f39d5](https://github.com/antialias/soroban-abacus-flashcards/commit/c5f39d51eb45ec816f32151dc7f9d7c06360474b))
|
||||
* **card-sorting:** wrap prefix/suffix cards to multiple rows ([e3184dd](https://github.com/antialias/soroban-abacus-flashcards/commit/e3184dd0d444e5dc204731f5b396d5c553cf7d11))
|
||||
* complete 3D enhancement integration for all three proposals ([5ac55cc](https://github.com/antialias/soroban-abacus-flashcards/commit/5ac55cc14980b778f9be32f0833f8760aa16b631))
|
||||
* 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))
|
||||
* **create-room:** replace hardcoded game grid with dynamic Radix Select dropdown ([83d0ba2](https://github.com/antialias/soroban-abacus-flashcards/commit/83d0ba26f5eeec3e189d279710d5bbcf13e82f29))
|
||||
* **create:** add worksheet creator card to hub page ([c84d712](https://github.com/antialias/soroban-abacus-flashcards/commit/c84d7122f3c9636a80313df2438ff91fdedf0e30))
|
||||
* dynamic day-of-month favicon using subprocess pattern ([4d0795a](https://github.com/antialias/soroban-abacus-flashcards/commit/4d0795a9df74fcb085af821eafb923bdcb5f0b0c))
|
||||
* dynamically crop favicon to active beads for maximum size ([5670322](https://github.com/antialias/soroban-abacus-flashcards/commit/567032296aecaad13408bdc17d108ec7c57fb4a8))
|
||||
* enable 3D enhancement on hero/open MyAbacus modes ([37e330f](https://github.com/antialias/soroban-abacus-flashcards/commit/37e330f26e5398c2358599361cd417b4aeefac7d))
|
||||
* 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))
|
||||
* **flashcards:** add live preview functionality ([b38bec8](https://github.com/antialias/soroban-abacus-flashcards/commit/b38bec814b283a60d8f7cd39ae1b4af791af07dc))
|
||||
* **games:** add autoplay and improve carousel layout ([9f51edf](https://github.com/antialias/soroban-abacus-flashcards/commit/9f51edfaa95c14f55a30a6eceafb9099eeed437f))
|
||||
* **games:** add horizontal scroll support to carousels ([a224abb](https://github.com/antialias/soroban-abacus-flashcards/commit/a224abb6f660e1aa31ab04f5590b003fae072af9))
|
||||
* **games:** add rotating games hero carousel ([24231e6](https://github.com/antialias/soroban-abacus-flashcards/commit/24231e6b2ebbdcae066344df54e7e80e7d221128))
|
||||
* handle cascading borrows in borrowing hints ([3e1b51b](https://github.com/antialias/soroban-abacus-flashcards/commit/3e1b51bd84a5ecd75d414c7da9d3dfa1fd89f3e5))
|
||||
* hide easter egg hint until first discovery ([c2c7153](https://github.com/antialias/soroban-abacus-flashcards/commit/c2c71531ae4298b18df8f2c1347968af144f8e50))
|
||||
* **homepage:** responsive 2-column layout with data attributes ([ad33056](https://github.com/antialias/soroban-abacus-flashcards/commit/ad33056b12559355d0a8d1cec8a59783f3db59d4))
|
||||
* **i18n:** add dynamic locale switching without page reload ([fe9bfea](https://github.com/antialias/soroban-abacus-flashcards/commit/fe9bfeabf9ee66923501b18e1b69f2d666d0817d))
|
||||
* **i18n:** add global language selector to navigation ([0506360](https://github.com/antialias/soroban-abacus-flashcards/commit/0506360117807665e8f5a6fcd8f1178339f6e65c))
|
||||
* **i18n:** add homepage translations for all supported languages ([8c9d35a](https://github.com/antialias/soroban-abacus-flashcards/commit/8c9d35a3b43dd29664f5afb1bd96c4e584d9ec75))
|
||||
* **i18n:** add internationalization for all create pages ([b080970](https://github.com/antialias/soroban-abacus-flashcards/commit/b080970d7647c8286a713b05b772166c2d701c4c))
|
||||
* **i18n:** add Old High German (goh) language support ([b334a15](https://github.com/antialias/soroban-abacus-flashcards/commit/b334a15255ed9fa29beb43de66da0288691390c6))
|
||||
* **i18n:** add translations for addition worksheet creator ([2bf645a](https://github.com/antialias/soroban-abacus-flashcards/commit/2bf645a30c9c1ecdedbc7fc6b1a6013e88e90c5c))
|
||||
* **i18n:** add worksheet translations for all languages ([6acd15a](https://github.com/antialias/soroban-abacus-flashcards/commit/6acd15aab8a0ea1cab3f96e9d9023b2e78735a88))
|
||||
* **i18n:** complete Old High German translations for all locales ([0b06a1c](https://github.com/antialias/soroban-abacus-flashcards/commit/0b06a1ce005d92e7ae9c225aba40d240e965753d))
|
||||
* **i18n:** internationalize games page and tutorial content ([4253964](https://github.com/antialias/soroban-abacus-flashcards/commit/4253964af19f9aaa16f2394f41819223542fb519))
|
||||
* **i18n:** internationalize homepage with English translations ([40cff14](https://github.com/antialias/soroban-abacus-flashcards/commit/40cff143c72e9228d7cce607cab64c4a6d067017))
|
||||
* **i18n:** migrate from react-i18next to next-intl ([9016b76](https://github.com/antialias/soroban-abacus-flashcards/commit/9016b760247a20271255839e4dd7e5b9a8353b9f))
|
||||
* **i18n:** update games page hero section copy ([6333c60](https://github.com/antialias/soroban-abacus-flashcards/commit/6333c60352b920916afd81cc3b0229706a1519fa))
|
||||
* implement binary search for optimal zoom level ([1a54f09](https://github.com/antialias/soroban-abacus-flashcards/commit/1a54f0981446c6b81b0a572e0b64e6be03e2f9a3))
|
||||
* implement borrowing hints arrow visualization ([b2f875c](https://github.com/antialias/soroban-abacus-flashcards/commit/b2f875c5a5fe85639caea2762c73c6543da6a03f))
|
||||
* implement borrowing hints visual guidance ([89b8f98](https://github.com/antialias/soroban-abacus-flashcards/commit/89b8f98662b638f9a1e6cf64d87e74fc6b3e8f6b))
|
||||
* implement full-screen mobile hamburger menu with portal ([615cd28](https://github.com/antialias/soroban-abacus-flashcards/commit/615cd288292f1def1a7a86fb36fd430debe976cf))
|
||||
* 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))
|
||||
* implement light/dark theme system with semantic tokens ([210a014](https://github.com/antialias/soroban-abacus-flashcards/commit/210a014699e11546e51069378e7c45528b8e8461))
|
||||
* implement two-column landscape layout with smart viewport-based flexbox ([b57458b](https://github.com/antialias/soroban-abacus-flashcards/commit/b57458b039bb0826e264116fdde7237d0b7b0a75))
|
||||
* 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))
|
||||
* install embla-carousel-autoplay for games carousel ([946e5d1](https://github.com/antialias/soroban-abacus-flashcards/commit/946e5d19107020992be8945f8fe7c41e4bc2a0e2))
|
||||
* install embla-carousel-react for player profile carousel ([642ae95](https://github.com/antialias/soroban-abacus-flashcards/commit/642ae957383cfe1d6045f645bbe426fd80c56f35))
|
||||
* internationalize guide page with 6 languages ([e9c320b](https://github.com/antialias/soroban-abacus-flashcards/commit/e9c320bb1032e94c3852b9459236409da4669c09))
|
||||
* internationalize tutorial player ([26d41cf](https://github.com/antialias/soroban-abacus-flashcards/commit/26d41cfd058bfdf5b61ee6e20cfc61cbecb32f45))
|
||||
* **know-your-world:** full-screen layout with squish-through pointer lock escape ([1729418](https://github.com/antialias/soroban-abacus-flashcards/commit/1729418dc5673c01a8c77bd653d78f7aafda054f))
|
||||
* make 404 page abacus hero-sized and responsive ([41de252](https://github.com/antialias/soroban-abacus-flashcards/commit/41de25238f762b1ccb27500ca3b6a1f105ce7eaa))
|
||||
* make mobile menu more responsive with larger touch targets ([3ad244f](https://github.com/antialias/soroban-abacus-flashcards/commit/3ad244f2d3993a62e1a129eb2618e53b11cf0b0d))
|
||||
* 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 card sorting for mobile displays ([b443ee9](https://github.com/antialias/soroban-abacus-flashcards/commit/b443ee9cdcd9fcb7674845d8c92f7c338ad98dea))
|
||||
* optimize problem generation and add duplicate warning system ([11c46c1](https://github.com/antialias/soroban-abacus-flashcards/commit/11c46c1b44f369ff568414c84acec54540386622))
|
||||
* optimize ten-frame blog examples for dark theme ([904701d](https://github.com/antialias/soroban-abacus-flashcards/commit/904701da2badb037b9c9c88064126b652792767a))
|
||||
* persist seed and prngAlgorithm for exact problem reproducibility ([8cb2209](https://github.com/antialias/soroban-abacus-flashcards/commit/8cb2209d8406fc9a62298e4aef3f5e19f5a8ef2c))
|
||||
* Redesign Rithmomachia setup page with dramatic medieval theme ([6ae4d13](https://github.com/antialias/soroban-abacus-flashcards/commit/6ae4d13dc784a87f85206c6ff6d005e5b23b678c))
|
||||
* redesign shared worksheet viewer with read-only studio and proper error handling ([23dccc0](https://github.com/antialias/soroban-abacus-flashcards/commit/23dccc0ef3a81be2c2334c78b5bc9b5424e7332e))
|
||||
* refactor borrow scaffolding into unified UI with column alignment ([41b5c05](https://github.com/antialias/soroban-abacus-flashcards/commit/41b5c057ed53265faf8ffa91dca27ca6a43df886))
|
||||
* 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))
|
||||
* replace static examples with live preview in display options ([4361ad3](https://github.com/antialias/soroban-abacus-flashcards/commit/4361ad30051b11e5415f4828e9d199f940af205d))
|
||||
* **rithmomachia:** add 80% opacity to guide modal when not hovered ([4a78485](https://github.com/antialias/soroban-abacus-flashcards/commit/4a78485d2e20f2cbf36cc898a1beafa8eb48bfbf))
|
||||
* **rithmomachia:** add CaptureContext for capture dialog state management ([d7eb957](https://github.com/antialias/soroban-abacus-flashcards/commit/d7eb957a8dabbcac35e166a83dd679a628e19baa))
|
||||
* **rithmomachia:** add ghost panel preview for guide docking ([c0d6526](https://github.com/antialias/soroban-abacus-flashcards/commit/c0d6526d30aca8deaeda2b7c2e27eb37af8b577c))
|
||||
* **rithmomachia:** add guide docking with resizable panels ([f457f1a](https://github.com/antialias/soroban-abacus-flashcards/commit/f457f1a1c22b6cb7fff23a7701474322cf423dd9))
|
||||
* **rithmomachia:** add helper piece selection for mathematical captures ([cae3359](https://github.com/antialias/soroban-abacus-flashcards/commit/cae335958751c27684bfb10c8e2e526b460954ed))
|
||||
* **rithmomachia:** add helpful error messages for failed captures ([b172440](https://github.com/antialias/soroban-abacus-flashcards/commit/b172440a41e958ced98903bb8f4c2e4b423e1356))
|
||||
* **rithmomachia:** add initial board visual to guide Overview section ([d42bcff](https://github.com/antialias/soroban-abacus-flashcards/commit/d42bcff0d922895549c1c12f8e02a3ae6d53425a))
|
||||
* **rithmomachia:** Add interactive playing guide modal ([3121d82](https://github.com/antialias/soroban-abacus-flashcards/commit/3121d8240a567817f5f205a4ef4a788fcf451f71))
|
||||
* **rithmomachia:** add number bond visualization and helper placeholders ([82d8913](https://github.com/antialias/soroban-abacus-flashcards/commit/82d89131f00517f162ec496397cb390f9ecfc52e))
|
||||
* **rithmomachia:** add ratio capture example to guide ([9150b0c](https://github.com/antialias/soroban-abacus-flashcards/commit/9150b0c678ce7104fe984ee0fc93748b43a245f4))
|
||||
* **rithmomachia:** add standalone guide page route ([3fcc79f](https://github.com/antialias/soroban-abacus-flashcards/commit/3fcc79fe9eae11d4bd3a724c1b1f7d086e7cae81))
|
||||
* **rithmomachia:** add useBoardLayout hook for centralized layout calculations ([27f1c98](https://github.com/antialias/soroban-abacus-flashcards/commit/27f1c989d59a19844b90a5148ae27fb97161da2d))
|
||||
* **rithmomachia:** add usePieceSelection hook for selection state management ([275f401](https://github.com/antialias/soroban-abacus-flashcards/commit/275f401e3c25b75fec4700a8c2d4be6e33f0afe9))
|
||||
* **rithmomachia:** add visual board examples to Capture section ([74bc3c0](https://github.com/antialias/soroban-abacus-flashcards/commit/74bc3c0dcf8d1ee7084e88a04861a85f9b623809))
|
||||
* **rithmomachia:** add visual board examples to Harmony section ([1d5f01c](https://github.com/antialias/soroban-abacus-flashcards/commit/1d5f01c966cf1eec9a9c19ee37f1cad93c89df40))
|
||||
* **rithmomachia:** add visual winning example to Victory section ([b7fac78](https://github.com/antialias/soroban-abacus-flashcards/commit/b7fac788292e00c6060a47fdbcca89a7e7fee35c))
|
||||
* **rithmomachia:** auto-size tab labels with react-textfit ([9fd5406](https://github.com/antialias/soroban-abacus-flashcards/commit/9fd54067ce257e028b02f4784568ff3f2bbb32ca))
|
||||
* **rithmomachia:** cycle through valid helpers with dynamic number tooltips ([4829e41](https://github.com/antialias/soroban-abacus-flashcards/commit/4829e41ea13fae2edec10837e65e505929445782))
|
||||
* **rithmomachia:** enhance capture relation UI with smooth animations ([0a30801](https://github.com/antialias/soroban-abacus-flashcards/commit/0a308016e9d6a926c52dbfc5623b60b169d16d03))
|
||||
* **rithmomachia:** enhance Harmony section with comprehensive content ([f555856](https://github.com/antialias/soroban-abacus-flashcards/commit/f5558563ea93ef7428aa220c2e15e3f02711420f))
|
||||
* **rithmomachia:** enhance Pieces section with visual examples and pyramid details ([55aff82](https://github.com/antialias/soroban-abacus-flashcards/commit/55aff829f4c284e8cfe6d471c0821575928b93bc))
|
||||
* **rithmomachia:** enhance Pyramid section with comprehensive details ([9fde1ef](https://github.com/antialias/soroban-abacus-flashcards/commit/9fde1ef9e703e26b2450128155b53fdf2d2e1fe5))
|
||||
* **rithmomachia:** guide defaults to docked right on open ([11f674d](https://github.com/antialias/soroban-abacus-flashcards/commit/11f674d542ea5e4e88bd60ff1068451805d9766e))
|
||||
* **rithmomachia:** improve guide pieces section layout ([a270bfc](https://github.com/antialias/soroban-abacus-flashcards/commit/a270bfc0cc4a3b6b54ba43a5af14a227cc7d29f9))
|
||||
* **rithmomachia:** improve guide UX and add persistence ([b314740](https://github.com/antialias/soroban-abacus-flashcards/commit/b31474069734350a7059cd7c73255a7e11b78eb9))
|
||||
* **rithmomachia:** improve roster status notice UX ([e27df45](https://github.com/antialias/soroban-abacus-flashcards/commit/e27df45256147f958ca215f9dd1f4e133e8cf06c))
|
||||
* **rithmomachia:** integrate roster warning into game nav ([8a11594](https://github.com/antialias/soroban-abacus-flashcards/commit/8a11594203fb91faee6cbc4cb74367164ecd6d85))
|
||||
* **rithmomachia:** make guide modal ultra-responsive down to 150px width ([0474197](https://github.com/antialias/soroban-abacus-flashcards/commit/04741971b296976f4476ecd949e84066fc549010))
|
||||
* **rithmomachia:** recreate original guide modal header layout ([2489695](https://github.com/antialias/soroban-abacus-flashcards/commit/24896957d0817758c5f64c0e3473e6a0a343af67))
|
||||
* **rithmomachia:** show capture error on hover instead of click ([339b678](https://github.com/antialias/soroban-abacus-flashcards/commit/339b6780f657ace5bfe1611c4ef64bb0c2c31587))
|
||||
* **rithmomachia:** show pyramid face numbers on hover instead of selection ([b0c4523](https://github.com/antialias/soroban-abacus-flashcards/commit/b0c4523c0b4669c96a50b2812ba6cb2faa3f9a22))
|
||||
* **rithmomachia:** show pyramid face numbers when selected ([5c186f3](https://github.com/antialias/soroban-abacus-flashcards/commit/5c186f3947cc38f1f5db5de3e68e590b90c2d092))
|
||||
* **rithmomachia:** show pyramid face numbers when selected with subtle animation ([5c2ddbe](https://github.com/antialias/soroban-abacus-flashcards/commit/5c2ddbef05d7f4195d21b084cb1c0c4193ee3c9c))
|
||||
* **rithmomachia:** show real preview layout when dragging guide to dock ([17d2460](https://github.com/antialias/soroban-abacus-flashcards/commit/17d2460a8769a21d33fabc5f909cf5b939712d36))
|
||||
* **rithmomachia:** simplify guide language for clarity ([85cb630](https://github.com/antialias/soroban-abacus-flashcards/commit/85cb630add395a6693ecbbe9c8fc6aaf8c47be29))
|
||||
* **rithmomachia:** skip helper selection UI and auto-select first valid helper ([be2a00e](https://github.com/antialias/soroban-abacus-flashcards/commit/be2a00e8b366b5606525309b4c7813f5c35c7f7c))
|
||||
* **rithmomachia:** Update harmony system to classical three-piece proportions ([08c9762](https://github.com/antialias/soroban-abacus-flashcards/commit/08c97620f5e694b8526c448c44d265e6dd1fe1eb))
|
||||
* **rithmomachia:** Update to traditional board setup with 25 pieces per side ([0769eaa](https://github.com/antialias/soroban-abacus-flashcards/commit/0769eaaa1dc238b901e3a7cfe0486e6122d5eda9))
|
||||
* **rithmomachia:** use actual piece SVGs in number bond with 2.5s rotation animation ([976a7de](https://github.com/antialias/soroban-abacus-flashcards/commit/976a7de949c22842f4b6da3ced990f502a1c2733))
|
||||
* **room-share:** add QR code button for easy mobile joining ([349290a](https://github.com/antialias/soroban-abacus-flashcards/commit/349290ac6a411651686b64d2e6b540083d2df1d9))
|
||||
* show rithmomachia turn in nav ([7c89bfe](https://github.com/antialias/soroban-abacus-flashcards/commit/7c89bfef9c60db0e2c46e920500dcc1fbe90d3df))
|
||||
* 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))
|
||||
* switch to royal color theme with transparent background ([944ad65](https://github.com/antialias/soroban-abacus-flashcards/commit/944ad6574e01a67ce1fdbb1f2452fe632c78ce43)), closes [#fbbf24](https://github.com/antialias/soroban-abacus-flashcards/issues/fbbf24) [#f59e0](https://github.com/antialias/soroban-abacus-flashcards/issues/f59e0) [#a855f7](https://github.com/antialias/soroban-abacus-flashcards/issues/a855f7) [#7e22](https://github.com/antialias/soroban-abacus-flashcards/issues/7e22)
|
||||
* **web:** add test page for AbacusStatic RSC compatibility ([903dea2](https://github.com/antialias/soroban-abacus-flashcards/commit/903dea25844f1d2b3730fbcbd8478e7af1887663))
|
||||
* **web:** add test page for AbacusStatic Server Component ([3588d5a](https://github.com/antialias/soroban-abacus-flashcards/commit/3588d5acde25588ce4db3ee32adb04ace0e394d4))
|
||||
* **web:** add Typst-based preview endpoint with React Suspense ([599a758](https://github.com/antialias/soroban-abacus-flashcards/commit/599a758471c43ab0fc87301c5e7eeceed608062e))
|
||||
* **web:** add year abacus to calendar header and make grid bolder ([867c7ee](https://github.com/antialias/soroban-abacus-flashcards/commit/867c7ee17251b8df13665bee9c0391961975e681)), closes [#333](https://github.com/antialias/soroban-abacus-flashcards/issues/333)
|
||||
* **web:** improve calendar abacus preview styling ([8439727](https://github.com/antialias/soroban-abacus-flashcards/commit/8439727b152accf61f0c28158b92788510ca086e))
|
||||
* **web:** optimize monthly calendar for single-page layout ([b277a89](https://github.com/antialias/soroban-abacus-flashcards/commit/b277a89415d1823455376c3e0f641b52f3394e7c))
|
||||
* **web:** redesign monthly calendar as single composite SVG ([8ce8038](https://github.com/antialias/soroban-abacus-flashcards/commit/8ce8038baeea0b8b0fffe3215746958731bd9d6a))
|
||||
* **worksheets:** Add borrow notation scaffolding for subtraction ([ff161d4](https://github.com/antialias/soroban-abacus-flashcards/commit/ff161d4e30a42dc58d4a409bd2f948e61b6d495b))
|
||||
* **worksheets:** add color-coding to difficulty presets with interpolation ([b1201b8](https://github.com/antialias/soroban-abacus-flashcards/commit/b1201b83c02e85c15e7c581be58179a9a92c9893))
|
||||
* **worksheets:** add customizable operands to preview ([21cda18](https://github.com/antialias/soroban-abacus-flashcards/commit/21cda181e4102220c6524a4879dccf5b8e6d4b7f))
|
||||
* **worksheets:** add diagonal-split pattern to carry boxes ([5b91809](https://github.com/antialias/soroban-abacus-flashcards/commit/5b9180916ebd2c8ed3425b80ea25add2334da2ea))
|
||||
* **worksheets:** add difficulty preset dropdown for Smart mode ([49f6c02](https://github.com/antialias/soroban-abacus-flashcards/commit/49f6c029f6fee0e4a5d1cf5474bdea8fcbeffa4a))
|
||||
* **worksheets:** add double-digit addition worksheet creator ([1a75213](https://github.com/antialias/soroban-abacus-flashcards/commit/1a75213df0772d98a15efa6ca5bbb751904a98c3))
|
||||
* **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 interactive 2D difficulty map with hover preview ([b92b702](https://github.com/antialias/soroban-abacus-flashcards/commit/b92b702223d8a94a32b6ba53e6ff1214563b341e))
|
||||
* **worksheets:** add ModeSelector component for Smart/Manual mode switching ([4ffd47a](https://github.com/antialias/soroban-abacus-flashcards/commit/4ffd47a6b6abe05475d1b01ec007a1011c43358b))
|
||||
* **worksheets:** add operator selection and subtraction problem generation ([ab87c6e](https://github.com/antialias/soroban-abacus-flashcards/commit/ab87c6ebe73781127c6f52b501673ba9919c3dd9))
|
||||
* **worksheets:** add regrouping frequency controls to Manual mode ([f060692](https://github.com/antialias/soroban-abacus-flashcards/commit/f06069241ffc095e4fef8894d70b392f3ef1153d))
|
||||
* **worksheets:** add subtraction problem analysis and implementation plan ([a7b48a2](https://github.com/antialias/soroban-abacus-flashcards/commit/a7b48a287967f91448d2ba1fe4e83d99b4e8d733))
|
||||
* **worksheets:** add type-safe config persistence with schema versioning ([0406adc](https://github.com/antialias/soroban-abacus-flashcards/commit/0406adc9dab6346a1b4fab02d5b8a11fa149a8be))
|
||||
* **worksheets:** add V3 config schema with Smart/Manual mode discrimination ([cd1b3ed](https://github.com/antialias/soroban-abacus-flashcards/commit/cd1b3edc15495818655d7c2aaaf2777064fc8a2f))
|
||||
* **worksheets:** add visual mode badges to scaffolding summary ([eaeeae4](https://github.com/antialias/soroban-abacus-flashcards/commit/eaeeae4ce887811eda926aa6184ab9f5346134f5))
|
||||
* **worksheets:** display scaffolding attributes on separate lines with fixed button height ([cc9fff7](https://github.com/antialias/soroban-abacus-flashcards/commit/cc9fff7733e087af4baad483154ba8c3075b04d2))
|
||||
* **worksheets:** enhance addition worksheets with ten-frames and refinements ([71ad300](https://github.com/antialias/soroban-abacus-flashcards/commit/71ad300c23ffa8024c8dbeef32e06ff67bb25259))
|
||||
* **worksheets:** filter operator-specific scaffolds from difficulty change descriptions ([cace1c7](https://github.com/antialias/soroban-abacus-flashcards/commit/cace1c75c6730402e4a4206ff54d59f7a18bf1f7))
|
||||
* **worksheets:** filter operator-specific scaffolds from preset summaries ([8407b07](https://github.com/antialias/soroban-abacus-flashcards/commit/8407b070f9a0940d4f5321afc0b60e97b2334a2f))
|
||||
* **worksheets:** generate discrete pages with precise sizing ([56c0227](https://github.com/antialias/soroban-abacus-flashcards/commit/56c0227e9f27c39087ff9af7fa32128df6fc7311))
|
||||
* **worksheets:** implement auto-save and load for worksheet settings ([186fa81](https://github.com/antialias/soroban-abacus-flashcards/commit/186fa81b08bfadca33b87c34906235015ccf3146))
|
||||
* **worksheets:** implement constrained 2D difficulty system with pedagogical zones ([c39b7f6](https://github.com/antialias/soroban-abacus-flashcards/commit/c39b7f6d3ac845a6ec9601b7c260c173df39a49e))
|
||||
* **worksheets:** implement true RGB color interpolation for custom difficulty ([952cffa](https://github.com/antialias/soroban-abacus-flashcards/commit/952cffa2d1dc55edc4f0d2a5ac40e266b8866706))
|
||||
* **worksheets:** implement unique place value colors for 1-6 digit problems ([65e272c](https://github.com/antialias/soroban-abacus-flashcards/commit/65e272c5700bfa0a64bc6cb14818ae1c43ea2e06))
|
||||
* **worksheets:** improve difficulty controls and problem sizing ([aedeb45](https://github.com/antialias/soroban-abacus-flashcards/commit/aedeb456f16a731c18a49fc388b6d6e17f99f29d))
|
||||
* **worksheets:** improve preset dropdown with descriptions and remove duplicate buttons ([852504a](https://github.com/antialias/soroban-abacus-flashcards/commit/852504a4fddbd2949e4636dc420effdb35c04e75))
|
||||
* **worksheets:** improve preview error reporting ([d8b4951](https://github.com/antialias/soroban-abacus-flashcards/commit/d8b4951d6317e5255e739b76ce10eea34ca39095))
|
||||
* **worksheets:** integrate subtraction scaffolding into smart difficulty mode ([15bded1](https://github.com/antialias/soroban-abacus-flashcards/commit/15bded1ab852d405f74b6646688225720acdd843))
|
||||
* **worksheets:** make progressive difficulty available in both Smart and Manual modes ([54abd5d](https://github.com/antialias/soroban-abacus-flashcards/commit/54abd5de098026d988a6ccfde2c9ffde92e7f79b))
|
||||
* **worksheets:** Phase 10 - Add operator validation ([d93dfac](https://github.com/antialias/soroban-abacus-flashcards/commit/d93dfac46145064afed188a12843902106697d53))
|
||||
* **worksheets:** Phase 5 - Update typstGenerator for operator support ([b191bb9](https://github.com/antialias/soroban-abacus-flashcards/commit/b191bb9a828488504abc69f2ecb94f17592834a6))
|
||||
* **worksheets:** Phase 7 - Add operator to auto-save persistence ([01d0959](https://github.com/antialias/soroban-abacus-flashcards/commit/01d095942d476d14b8466ad30187e53b9bb89d9e))
|
||||
* **worksheets:** Phase 8 - Update preview and example routes for operator ([0106068](https://github.com/antialias/soroban-abacus-flashcards/commit/010606848dce4ead4ad79b94e0f87bcf070e7aae))
|
||||
* **worksheets:** Phase 9 - Update DisplayOptionsPreview for operator ([d5bbd78](https://github.com/antialias/soroban-abacus-flashcards/commit/d5bbd783b3b9f56f63d1217fdbde88d3455b6fe2))
|
||||
* **worksheets:** pre-generate preview on server to eliminate loading flash ([02c9187](https://github.com/antialias/soroban-abacus-flashcards/commit/02c918713d508ccd4f31b9c671c6d8cbe8f84036))
|
||||
* **worksheets:** redesign display options as toggle buttons ([ac3b749](https://github.com/antialias/soroban-abacus-flashcards/commit/ac3b74960506be3f7d9b03e558e6e60b8ce6af4a))
|
||||
* **worksheets:** reorganize orientation panel with Radix dropdown and compact layout ([f37960a](https://github.com/antialias/soroban-abacus-flashcards/commit/f37960aa949247c16da44d603d993ea885bd242f))
|
||||
* **worksheets:** replace digit selector with Radix double-thumbed slider ([c0298cf](https://github.com/antialias/soroban-abacus-flashcards/commit/c0298cf65d1017bb5b2258174f3a75f66698899a))
|
||||
* **worksheets:** restore mastery progression UI with 3-way mode selector ([26a0885](https://github.com/antialias/soroban-abacus-flashcards/commit/26a08859d795a4d7b3643756cb2a8d64a56bf6dc))
|
||||
* **worksheets:** show enabled scaffolding aids instead of numeric level ([0b8b0d2](https://github.com/antialias/soroban-abacus-flashcards/commit/0b8b0d21c52013910f57685d7c23a06a7173ad7b))
|
||||
* **worksheets:** show nearest presets for custom difficulty configurations ([0e3f0ae](https://github.com/antialias/soroban-abacus-flashcards/commit/0e3f0aed9473bda4b671503f19bf7d1e6f6be223))
|
||||
* **worksheets:** simplify difficulty controls with collapsible regrouping pane ([bb363c0](https://github.com/antialias/soroban-abacus-flashcards/commit/bb363c0837a064db98f1145cf599af74907f3d80))
|
||||
* **worksheets:** update ConfigPanel with accurate page calculations ([2c0fbd9](https://github.com/antialias/soroban-abacus-flashcards/commit/2c0fbd90740c9cfc6510208f46954dc503fc294d))
|
||||
* **worksheets:** update validation and generation for V3 mode-aware schema ([ada9600](https://github.com/antialias/soroban-abacus-flashcards/commit/ada96005f509664def0a1c463f791b8b9226734e))
|
||||
* **worksheets:** use more vibrant and distinct difficulty colors ([984b75c](https://github.com/antialias/soroban-abacus-flashcards/commit/984b75cb94e260d66d4e92b39edfab5a4adeeb25))
|
||||
* **worksheets:** use scaffolding summary for all preset descriptions ([23f0f1d](https://github.com/antialias/soroban-abacus-flashcards/commit/23f0f1dc21d0a2ae6d064a4630940ba72d048173))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **404:** reset easter egg config on page reload/close ([d6f1c13](https://github.com/antialias/soroban-abacus-flashcards/commit/d6f1c1331777c47db6963d56c29edbfa90fca903))
|
||||
* **abacus-react:** add data-testid attributes back to beads for testing ([23ae1b0](https://github.com/antialias/soroban-abacus-flashcards/commit/23ae1b0c6f878daf79a993992d43ad80a89fa790))
|
||||
* **abacus-react:** correct column highlighting offset in AbacusStatic ([0641eb7](https://github.com/antialias/soroban-abacus-flashcards/commit/0641eb719ef56c67de965296006df666f83e5b08))
|
||||
* **abacus-react:** fix animations by preventing component remounting ([be7d4c4](https://github.com/antialias/soroban-abacus-flashcards/commit/be7d4c471327534a95c4c75372680c629b5f12c2))
|
||||
* **abacus-react:** include space for numbers in viewBox calculation ([1da3358](https://github.com/antialias/soroban-abacus-flashcards/commit/1da3358db107abb8d36822337af9e29ff282adca))
|
||||
* **abacus-react:** remove duplicate numeral rendering and fix dark mode colors ([fcbf0f5](https://github.com/antialias/soroban-abacus-flashcards/commit/fcbf0f5421a790784dc7cc286f9082c6d46746ee))
|
||||
* **abacus-react:** restore original AbacusReact measurements and positioning ([88c0baa](https://github.com/antialias/soroban-abacus-flashcards/commit/88c0baaad9b83b60ab8cdcad92070cc049d61cc7))
|
||||
* **abacus-react:** showNumbers prop was hardcoded to false, breaking numeral display ([de89dcd](https://github.com/antialias/soroban-abacus-flashcards/commit/de89dcddb3e6b5021cc0f90c68c4109f8f6c8907))
|
||||
* 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 light/dark mode support to tutorial tooltips and decomposition UI ([ea10249](https://github.com/antialias/soroban-abacus-flashcards/commit/ea10249e949008e6b82ba79869f40990edd1e997))
|
||||
* add missing blog dependencies to package.json ([ceefb2f](https://github.com/antialias/soroban-abacus-flashcards/commit/ceefb2f1bd5979b3cf419b62ea595446196f37e2))
|
||||
* add missing color definitions to example route ([bc7ca12](https://github.com/antialias/soroban-abacus-flashcards/commit/bc7ca12158a03c3e0bfe87f34b1c8ad399e27007))
|
||||
* 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 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 xmlns to AbacusStatic for Typst SVG parsing ([98cd019](https://github.com/antialias/soroban-abacus-flashcards/commit/98cd019d4af91d7ca4e7a88f700194273476afb7))
|
||||
* add zoom to selected continent and improve click detection ([6651979](https://github.com/antialias/soroban-abacus-flashcards/commit/6651979ea0a712413b742b081e9ff667eea5ff2f))
|
||||
* adjust hero abacus position to avoid covering subtitle ([f03d341](https://github.com/antialias/soroban-abacus-flashcards/commit/f03d3413145cc7ddfba93728ecdec7eabea9ada6))
|
||||
* align share persistence with user session logic ([72c72fc](https://github.com/antialias/soroban-abacus-flashcards/commit/72c72fc2180637352da79c0c7ed9dbd9cf137af3))
|
||||
* **arcade:** add automatic retry for version conflict rejections ([fbcde25](https://github.com/antialias/soroban-abacus-flashcards/commit/fbcde2505f7ff2bf3426f3458e480c4548314ba4))
|
||||
* **arcade:** allow deactivating players from users who left the room ([7c1c2d7](https://github.com/antialias/soroban-abacus-flashcards/commit/7c1c2d7bebbb9a1acb274d17dd43b6ee5d196f44))
|
||||
* **arcade:** implement optimistic locking in session manager ([71fd66d](https://github.com/antialias/soroban-abacus-flashcards/commit/71fd66d96a3b03650c90f59f6e516aae7dddc345))
|
||||
* arrow direction - go RIGHT to borrowed 10s box, not left ([fab1fb1](https://github.com/antialias/soroban-abacus-flashcards/commit/fab1fb10b7c777e66265a001a3fc57ab3cec1b01))
|
||||
* board rotation now properly fills height in portrait mode ([b5a96ea](https://github.com/antialias/soroban-abacus-flashcards/commit/b5a96eaeb1e29c20304142a7a0adf62f1cef570f))
|
||||
* calculate total problems correctly in preview API ([25dfb71](https://github.com/antialias/soroban-abacus-flashcards/commit/25dfb71b3effc29ea97e2f1884c133e25834728b))
|
||||
* **card-sorting:** add border radius to outer card container ([a922eba](https://github.com/antialias/soroban-abacus-flashcards/commit/a922eba73c4656ee941ce4dfb1dc57a62f076570))
|
||||
* **card-sorting:** add debug logging for spring animations ([d42947e](https://github.com/antialias/soroban-abacus-flashcards/commit/d42947eb8d5d3d8298f5d3b3d1644891c268dbb6))
|
||||
* **card-sorting:** add missing gameMode support after hard reset ([a832325](https://github.com/antialias/soroban-abacus-flashcards/commit/a832325debde289d6928c5e6f9c24311c5e079ad))
|
||||
* **card-sorting:** add missing useMemo import ([949d76d](https://github.com/antialias/soroban-abacus-flashcards/commit/949d76d844c786ada8a6373e4abb7f498f6befb9))
|
||||
* **card-sorting:** add overflow hidden to clip rounded corners ([84c66fe](https://github.com/antialias/soroban-abacus-flashcards/commit/84c66feec6b4112b015e1afd95bf33b24b5f6a4f))
|
||||
* **card-sorting:** adjust connecting paths for scaled cards ([829c741](https://github.com/antialias/soroban-abacus-flashcards/commit/829c741e554d1490dd7a5bbc17f2a32f7195dc07))
|
||||
* **card-sorting:** adjust game board for spectator panels ([fc5cf12](https://github.com/antialias/soroban-abacus-flashcards/commit/fc5cf1216fe03edfb7e44afda01192f4b97b4f4e))
|
||||
* **card-sorting:** adjust viewport dimensions for spectator panels ([4dce16c](https://github.com/antialias/soroban-abacus-flashcards/commit/4dce16cca46c965199b7e09f8b34bfa221efac33))
|
||||
* **card-sorting:** animate cards from game board to results grid ([17d45fe](https://github.com/antialias/soroban-abacus-flashcards/commit/17d45fe88cd9773f5e550f6ee5a7f0c82cca2023))
|
||||
* **card-sorting:** correct suffix card detection in auto-arrange ([d02ab59](https://github.com/antialias/soroban-abacus-flashcards/commit/d02ab5922c416042d525f54097a6975ae1541586))
|
||||
* **card-sorting:** enable card scaling for spectators ([6b095c3](https://github.com/antialias/soroban-abacus-flashcards/commit/6b095c33830341c46139bc847ddaab3db632265e))
|
||||
* **card-sorting:** enable New Game button during active gameplay ([f3f6eca](https://github.com/antialias/soroban-abacus-flashcards/commit/f3f6eca1db30df9e1e34cc4e77a069a6a3954f3d))
|
||||
* **card-sorting:** end drag immediately when card becomes locked ([ae45298](https://github.com/antialias/soroban-abacus-flashcards/commit/ae45298ec48efb29587c0a1c1a7986a72821f3ef))
|
||||
* **card-sorting:** filter local player from emoji overlays on dragged cards ([dc2d94a](https://github.com/antialias/soroban-abacus-flashcards/commit/dc2d94aaa58531ed4f9047e2ca92724d9264643d))
|
||||
* **card-sorting:** fix results panel layout to not cover cards ([4b4fbfe](https://github.com/antialias/soroban-abacus-flashcards/commit/4b4fbfef322ecda06020ad52d4b1788267112460))
|
||||
* **card-sorting:** hide activity notifications in spectator mode ([5cca279](https://github.com/antialias/soroban-abacus-flashcards/commit/5cca279687d8973d25bd9a411a55b632d1c82f63))
|
||||
* **card-sorting:** keep arrow sequence numbers upright ([79c9469](https://github.com/antialias/soroban-abacus-flashcards/commit/79c94699fa1cc2a2886e3ab1addc5fcd975602f5))
|
||||
* **card-sorting:** lock correctly positioned prefix/suffix cards ([170abed](https://github.com/antialias/soroban-abacus-flashcards/commit/170abed2318432f309de40692f6092bb4c4a1a45))
|
||||
* **card-sorting:** lock spring positions after initial animation completes ([275cc62](https://github.com/antialias/soroban-abacus-flashcards/commit/275cc62a523d9e849f2162001141b6d75ae0925e))
|
||||
* **card-sorting:** New Game now restarts with same settings instantly ([f3687ed](https://github.com/antialias/soroban-abacus-flashcards/commit/f3687ed236eff4ebe61699ec02909024c7086fb5))
|
||||
* **card-sorting:** only shrink/fade cards in correct prefix ([51368c6](https://github.com/antialias/soroban-abacus-flashcards/commit/51368c6ec59d5447ce2875c5e1181dec97fd509d))
|
||||
* **card-sorting:** preserve card positions on pause/resume ([0d8af09](https://github.com/antialias/soroban-abacus-flashcards/commit/0d8af09517534f1e1cf1f57160391d465a279d76))
|
||||
* **card-sorting:** preserve rotation when starting drag ([3364144](https://github.com/antialias/soroban-abacus-flashcards/commit/3364144fb6212934b6ad6d63ac6e7b78b436b258))
|
||||
* **card-sorting:** prevent duplicate START_GAME moves on Play Again ([a0b14f8](https://github.com/antialias/soroban-abacus-flashcards/commit/a0b14f87e9c5b32fcbb685da4e70c563f70ed91a))
|
||||
* **card-sorting:** prevent ghost movements with proper optimistic updates ([bd014be](https://github.com/antialias/soroban-abacus-flashcards/commit/bd014bec4ffa12bcd8f4a4e84ff51203c90c1f1d))
|
||||
* **card-sorting:** prevent infinite loop when all cards are correct ([34785f4](https://github.com/antialias/soroban-abacus-flashcards/commit/34785f466faaa6b9f2958df786af88561fa80b06))
|
||||
* **card-sorting:** prevent infinite loop with tolerance-based position comparison ([627b873](https://github.com/antialias/soroban-abacus-flashcards/commit/627b873382eaa76ad16477280d10451cf2951e1a))
|
||||
* **card-sorting:** prevent position jump when clicking rotated cards ([564a00f](https://github.com/antialias/soroban-abacus-flashcards/commit/564a00f82b6ca6aa8a2c0586ca49fc42d44991a8))
|
||||
* **card-sorting:** prevent replaying own movements from server ([308168a](https://github.com/antialias/soroban-abacus-flashcards/commit/308168a7fb51013b0851e98b161ba1a1a3e39fbb))
|
||||
* **card-sorting:** prevent springs from reinitializing on window resize ([30953b8](https://github.com/antialias/soroban-abacus-flashcards/commit/30953b8c4a3cf147f980455818f9ce8eea07837c))
|
||||
* **card-sorting:** prevent springs from resetting after animation ([8aff60c](https://github.com/antialias/soroban-abacus-flashcards/commit/8aff60ce3f8d302ce5c1bde7cb773e63064c36b7))
|
||||
* **card-sorting:** remove hasAnimatedRef logic causing backwards animation ([a44aa5a](https://github.com/antialias/soroban-abacus-flashcards/commit/a44aa5a4c2d84cab7cf0bbf87485bb61548fdeb2))
|
||||
* **card-sorting:** remove remaining reveal numbers references ([15c53ea](https://github.com/antialias/soroban-abacus-flashcards/commit/15c53ea4eb4abb824eb0360fb645b1f3e455578e))
|
||||
* **card-sorting:** restore prefix/suffix card shrinking visual feedback ([f5fb4d7](https://github.com/antialias/soroban-abacus-flashcards/commit/f5fb4d7b76e25286bcdecd017894ff2d78b31963))
|
||||
* **card-sorting:** show only active players in team members section ([fa9f1a5](https://github.com/antialias/soroban-abacus-flashcards/commit/fa9f1a568f3dff2f4e5e7d3e8841b951ef1b7d04))
|
||||
* **card-sorting:** smooth scale animation while dragging cards ([0eefc33](https://github.com/antialias/soroban-abacus-flashcards/commit/0eefc332ac2724c54b477301a269915e895db94f))
|
||||
* **card-sorting:** stabilize inferred sequence for locked cards during drag ([b0cd194](https://github.com/antialias/soroban-abacus-flashcards/commit/b0cd194838705bb7bbf21ac9e318eaba491097b2))
|
||||
* **card-sorting:** use empty deps array for useSprings to prevent recreation ([cee399e](https://github.com/antialias/soroban-abacus-flashcards/commit/cee399ed1513d32d0fff51a6f63898aa861605e1))
|
||||
* **card-sorting:** use ref to track initialized state and prevent re-animation ([f389afa](https://github.com/antialias/soroban-abacus-flashcards/commit/f389afa831935e896a626f526cfee378e340a64b))
|
||||
* **card-sorting:** use same coordinate system for game board and results ([6972fdf](https://github.com/antialias/soroban-abacus-flashcards/commit/6972fdf1105b6e854494efe1c4c587e6b6ff32a9))
|
||||
* center crosshairs and re-enable pointer lock after escape ([814bf94](https://github.com/antialias/soroban-abacus-flashcards/commit/814bf949f2bc4c1ed023770c6cdff5f69d706903))
|
||||
* **complement-race:** prevent delivery move thrashing in steam sprint mode ([e1258ee](https://github.com/antialias/soroban-abacus-flashcards/commit/e1258ee0416010909774694c0b25306b6f30329c))
|
||||
* configure favicon metadata and improve bead visibility ([e1369fa](https://github.com/antialias/soroban-abacus-flashcards/commit/e1369fa2754cd61745a2950e6cb767d6b08db38f))
|
||||
* 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))
|
||||
* copy entire packages/core and packages/templates ([0ccada0](https://github.com/antialias/soroban-abacus-flashcards/commit/0ccada0ca783e635f9ae08f33a69c392018ee342))
|
||||
* correct GPT-5 API parameters and surface actual grading errors ([2d33f35](https://github.com/antialias/soroban-abacus-flashcards/commit/2d33f35c4d908fb743e4a29974f867fa673970e2))
|
||||
* correct hero abacus scroll direction to flow with page content ([4232746](https://github.com/antialias/soroban-abacus-flashcards/commit/423274657c9698bba28f7246fbf48d8508d97ef9))
|
||||
* correct Typst template path in Dockerfile ([4c518de](https://github.com/antialias/soroban-abacus-flashcards/commit/4c518decb7fcc0b519d07680cbfd01c94c23dd41))
|
||||
* **db:** add statement-breakpoint to worksheet_settings migration ([42e1a71](https://github.com/antialias/soroban-abacus-flashcards/commit/42e1a71292f4f660d5b6b69a28c54ba7e29805f5))
|
||||
* delete existing user sessions before creating new ones ([0cced47](https://github.com/antialias/soroban-abacus-flashcards/commit/0cced47a0f414a04371bdb253fc5a43e4d9557be))
|
||||
* disable place value colors in subtraction borrow boxes to fix arrow layering ([b4586ba](https://github.com/antialias/soroban-abacus-flashcards/commit/b4586bac8ebc329a6c4c44866a3cf82343e54b60))
|
||||
* **docker:** add libfuse2 and APPIMAGE_EXTRACT_AND_RUN for OpenSCAD extraction ([12490a7](https://github.com/antialias/soroban-abacus-flashcards/commit/12490a7083dd127ec95e5a2e15d604e97a81d00c))
|
||||
* **docker:** add scripts, abacus-react, and tsx for production calendar generation ([33eb90e](https://github.com/antialias/soroban-abacus-flashcards/commit/33eb90e316f84650ae619f8c6c02c9e77c663d1b))
|
||||
* **docker:** upgrade OpenSCAD to 2024.11 to fix CGAL intersection bug ([e1bcd24](https://github.com/antialias/soroban-abacus-flashcards/commit/e1bcd241691050fa05cd49e14c288b4b070a7d17))
|
||||
* 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))
|
||||
* export worksheet schema tables from index ([6a16674](https://github.com/antialias/soroban-abacus-flashcards/commit/6a1667404f56e75bf68abfa75ae5402ec459df90))
|
||||
* extract pure SVG content from AbacusReact renders ([b07f1c4](https://github.com/antialias/soroban-abacus-flashcards/commit/b07f1c421616bcfd1f949f9a42ce1b03df418945))
|
||||
* **games:** prevent horizontal page scroll from carousel overflow ([5a8c98f](https://github.com/antialias/soroban-abacus-flashcards/commit/5a8c98fc10704e459690308a84dc7ee2bfa0ef6c))
|
||||
* **games:** smooth scroll feel for carousel wheel navigation ([f80a73b](https://github.com/antialias/soroban-abacus-flashcards/commit/f80a73b35c324959bfd7141ebf086cb47d3c0ebc))
|
||||
* **games:** use specific transition properties for smooth carousel loop ([187271e](https://github.com/antialias/soroban-abacus-flashcards/commit/187271e51527ee0129f71d77be1bd24072b963c4))
|
||||
* **guide:** increase abacus sizes - they were too small ([1074624](https://github.com/antialias/soroban-abacus-flashcards/commit/1074624b2fbce1d1d887dbd6326cf22eeb31dcec))
|
||||
* **guide:** make abacus sizes consistent and add nav spacing ([bea4842](https://github.com/antialias/soroban-abacus-flashcards/commit/bea4842a29aa86ca4261b4ddd6150bacc8babc46))
|
||||
* **guide:** remove inner containers and tighten margins ([7e54c6f](https://github.com/antialias/soroban-abacus-flashcards/commit/7e54c6f4fc5bc4daa6088eb3381d860a495776f2))
|
||||
* **i18n:** add nav bar to 3D abacus creator page ([827a949](https://github.com/antialias/soroban-abacus-flashcards/commit/827a949216709d9f6a7ea5446acb36b6d83bf861))
|
||||
* **i18n:** eliminate FOUC by loading messages server-side ([4d4d930](https://github.com/antialias/soroban-abacus-flashcards/commit/4d4d930bd307ce5a405fc5751af6682a9f221f1f))
|
||||
* **i18n:** use useMessages() for tutorial translations ([95b0105](https://github.com/antialias/soroban-abacus-flashcards/commit/95b0105ca3b28c5adfa843e8d77a8b27d9e7ade4))
|
||||
* 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 text contrast for selected dropdown items in dark mode ([8d03452](https://github.com/antialias/soroban-abacus-flashcards/commit/8d0345287f87ec49dad2dc38724395f47e04f62f))
|
||||
* include column posts in favicon bounding box ([0b2f481](https://github.com/antialias/soroban-abacus-flashcards/commit/0b2f48106a939307b728c86fe2ea1be1e0247ea8))
|
||||
* increase server update debounce to 2000ms for low bandwidth ([633ff12](https://github.com/antialias/soroban-abacus-flashcards/commit/633ff127500c893a215491afa0e6ff814ad553bf))
|
||||
|
|
|
|||
Loading…
Reference in New Issue