Commit Graph

143 Commits

Author SHA1 Message Date
semantic-release-bot
93f4cb0b11 chore(abacus-react): release v1.7.0 [skip ci]
# [1.7.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.6.0...abacus-react-v1.7.0) (2025-10-01)

### Bug Fixes

* **abacus-react:** apply global columnPosts styling and fix reckoning bar width ([bb9959f](bb9959f7fb))
* **complement-race:** improve abacus display in equations ([491b299](491b299e28))

### Features

* **complement-race:** add abacus displays to pressure gauge ([c5ebc63](c5ebc635af))
2025-10-01 22:44:24 +00:00
Thomas Hallock
bb9959f7fb fix(abacus-react): apply global columnPosts styling and fix reckoning bar width
- Apply global columnPosts property as fallback when rendering column rods
- Fix reckoning bar to span only across actual columns instead of full SVG width
- Column-specific columnPost styling still takes precedence over global

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:43:54 -05:00
semantic-release-bot
88ac0b9bcb chore(abacus-react): release v1.6.0 [skip ci]
# [1.6.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.5.1...abacus-react-v1.6.0) (2025-10-01)

### Bug Fixes

* align all bottom UI elements to same 20px baseline ([076c97a](076c97abac))
* align bottom-positioned UI elements ([227cfab](227cfabf11))
* change pressure gauge to fixed positioning to stay above terrain ([1b11031](1b11031598))
* change question display to fixed positioning with higher z-index ([4ac8758](4ac8758957))
* correct emoji category group IDs to match Unicode CLDR ([b2a21b7](b2a21b79ad))
* defer URL update until game starts ([12c54b2](12c54b27b7))
* delay passenger display update until train resets ([e06a750](e06a750454))
* eliminate rail jaggies on sharp curves by increasing sampling density ([46d4af2](46d4af2bda))
* ensure passengers only travel forward on train route ([8ad3144](8ad3144d2d))
* increase question display zIndex to stay above terrain ([8c8b8e0](8c8b8e08b4))
* move fontWeight to style object for station names ([05a3ddb](05a3ddb086))
* only show configuration gear icon for players 1 and 2 ([d0a3bc7](d0a3bc7dc1))
* passengers now board/disembark based on their car position, not locomotive ([96782b0](96782b0e7a))
* position tunnels at absolute viewBox edges ([1a5fa28](1a5fa2873b))
* prevent layout shift when selecting Steam Sprint mode ([73a5974](73a59745a5))
* prevent multiple passengers from boarding same car in single frame ([63b0b55](63b0b552a8))
* prevent premature passenger display during route transitions ([fe9ea67](fe9ea67f56))
* prevent random passenger repopulation during route transitions ([db56ce8](db56ce89ee))
* prevent route celebration from immediately reappearing ([1a80934](1a8093416e))
* reduce landmark size from 4.0x to 2.0x multiplier ([c928e90](c928e90785))
* remove double PageWithNav wrapper on matching page ([b58bcd9](b58bcd92ee))
* remove duplicate CAR_SPACING and MAX_CARS declarations ([e704a28](e704a28524))
* remove duplicate previousPassengersRef declaration ([fad8636](fad8636763))
* remove hard-coded car count from game loop ([6c90a68](6c90a68c49))
* remove unnecessary zIndex from question display ([db52e14](db52e14dfe))
* reset momentum and pressure when starting new route ([3ea88d7](3ea88d7a5a))
* smooth rail curves and deterministic track generation ([4f79c08](4f79c08d73))
* stabilize route completion threshold to prevent stuck trains ([b7233f9](b7233f9e4a))
* use displayPassengers for station rendering in RailroadTrackPath ([a9e0d19](a9e0d19734))
* use style fontSize instead of attribute for landmarks ([ebc6894](ebc6894746))
* wrap animated pressure value in animated.span to prevent React error ([5c5954b](5c5954be74))

### Features

* add category browsing and scrolling to emoji picker ([616a50e](616a50e234))
* add complement display options and unify equation display ([2ed7b2c](2ed7b2cbf8))
* add Complement Race game with three unique game modes ([582bce4](582bce411f))
* add configuration access to active player emojis in prominent nav ([6049a7f](6049a7f6b7))
* add configuration access to fullscreen player selection ([b85968b](b85968bcb6))
* add CSS animations and visual feedback system ([80e33e2](80e33e25b3))
* add direct URL routes for each game mode ([a08f053](a08f0535bf))
* add initialStyle prop to ComplementRaceProvider ([f3bc2f6](f3bc2f6d92))
* add interactive remove buttons for players in mini nav ([fa1cf96](fa1cf96789))
* add magnifying glass preview on emoji hover ([2c88b6b](2c88b6b5f3))
* add mini app nav to arcade page ([a854fe3](a854fe3dc9))
* add passenger boarding system with station-based pickup ([23a9016](23a9016245))
* add prominent game context display to mini nav with smooth transitions ([8792393](8792393956))
* add realistic mountains with peaks and ground terrain ([99cdfa8](99cdfa8a0b))
* add smooth spring animations to pressure gauge ([863a2e1](863a2e1319))
* add train car system with smooth boarding/disembarking animations ([1613912](1613912740))
* add Web Audio API sound effects system with 16 sound types ([90ba866](90ba86640c))
* create mode selection landing page for Complement Race ([1ff9695](1ff9695f69))
* create PlayerConfigDialog component for player customization ([4f2a661](4f2a661494))
* display passengers visually on train and at stations ([1599904](159990489f))
* dynamically calculate train cars based on max concurrent passengers ([9ea1553](9ea15535d1))
* enable prominent nav and fix layout on arcade page ([5c8c18c](5c8c18cbb8))
* enhance emoji picker with super powered magnifying glass and hide empty categories ([d8b4e42](d8b4e425bf))
* enhance passenger card UI with boarding status indicators ([4bbdabc](4bbdabc3b5))
* extend ground terrain to cover entire track area ([ee48417](ee48417abf))
* extend player customization to support all 4 players ([72f8dee](72f8dee183))
* extend railroad track to viewport edges ([eadd7da](eadd7da6db))
* extend track and tunnels to absolute viewport edges ([f7419bc](f7419bc6a0))
* implement smooth train exit with fade-out through right tunnel ([0176694](01766944f0))
* improve game availability logic and messaging ([9a3fa93](9a3fa93e53))
* increase landmark emoji size for better visibility ([0bcd7a3](0bcd7a30d4))
* integrate remaining game sound effects ([600bc35](600bc35bc3))
* integrate sound effects into game flow (countdown, answers, performance) ([8c3a855](8c3a855239))
* make Steam Sprint infinite mode ([32c3a35](32c3a35eab))
* make SVG span full viewport width for sprint mode ([7488bb3](7488bb3803))
* preserve track and passengers during route transitions ([f2e7165](f2e71657dc))
* redesign passenger cards with vintage train station aesthetic ([651bc21](651bc21583))
* skip countdown for train mode (sprint) ([65dafc9](65dafc9215))
* skip intro screen and start directly at game setup ([4b6888a](4b6888af05))
* sync URL with selected game mode ([3920bba](3920bbad33))
* UI polish for Sprint mode (viewport, backgrounds, data attributes) ([90ad789](90ad789ff1))
* use CSS transitions for smooth fullscreen player selection collapse ([3189832](31898328a3))
* wire player configuration through nav component hierarchy ([edfdd81](edfdd81227))

### Performance Improvements

* optimize React rendering with memoization and consolidated effects ([93cb070](93cb070ca5))
2025-10-01 22:14:42 +00:00
Thomas Hallock
2ed7b2cbf8 feat: add complement display options and unify equation display
- Add complement display modes (number/abacus/random) in game setup
- Create AbacusTarget component for inline abacus display in equations
- Unify equation display across practice, survival, and sprint modes
- Fix abacus vertical centering using inline-flex alignment
- Add Storybook examples demonstrating invisible column posts
- Fix passenger boarding bug using proper car occupancy tracking
- Redesign game setup UI with compact pill-based controls

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:13:54 -05:00
semantic-release-bot
6c0bf7b0f7 chore(abacus-react): release v1.5.1 [skip ci]
## [1.5.1](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.5.0...abacus-react-v1.5.1) (2025-09-29)

### Bug Fixes

* resolve JSX parsing error with emoji in guide page ([bf046c9](bf046c999b))
* resolve TypeScript errors in PlayerStatusBar component ([a935e5a](a935e5aed8))
* restore navigation to all pages using PageWithNav ([183706d](183706dade))
* update workflow to support Personal Access Token for GitHub Packages publishing auth ([ae4b71b](ae4b71b986))
2025-09-29 18:23:50 +00:00
semantic-release-bot
dd9f688a32 chore(abacus-react): release v1.5.0 [skip ci]
# [1.5.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.4.0...abacus-react-v1.5.0) (2025-09-29)

### Bug Fixes

* remove frozen lockfile flag from publishing workflow to resolve dependency installation issues ([18af973](18af9730ff))
* resolve mini navigation game name persistence across all routes ([3fa314a](3fa314aaa5))
* update pnpm version to 8.15.6 to resolve ERR_INVALID_THIS error in workflow ([0b9bfed](0b9bfed12d))
* update tutorial tests to use consolidated AbacusDisplayProvider ([899fc69](899fc6975f))

### Features

* **abacus-react:** update description to mention GitHub Packages support ([af77256](af7725622e))
* add comprehensive E2E testing with Playwright ([d58053f](d58053fad3))
* add comprehensive Storybook stories for PlayerStatusBar ([8973241](8973241297))
* add consecutive match tracking system for escalating celebrations ([111c0ce](111c0ced71))
* add PlayerStatusBar with escalating celebration animations ([7f8c90a](7f8c90acea))
* add sound settings support to AbacusReact component ([90b9ffa](90b9ffa0d8))
* implement cozy sound effects for abacus with variable intensity ([c95be1d](c95be1df6d))
* integrate user profiles with PlayerStatusBar and game results ([beff646](beff64652c))
2025-09-29 15:58:53 +00:00
Thomas Hallock
af7725622e feat(abacus-react): update description to mention GitHub Packages support 2025-09-29 10:55:49 -05:00
Thomas Hallock
90b9ffa0d8 feat: add sound settings support to AbacusReact component
- Add soundEnabled and soundVolume props to AbacusConfig interface
- Allow direct prop overrides for sound settings in component
- Maintain backward compatibility with context-based configuration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 09:42:57 -05:00
semantic-release-bot
0c46f3a7ba chore(abacus-react): release v1.4.0 [skip ci]
# [1.4.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.3.0...abacus-react-v1.4.0) (2025-09-29)

### Bug Fixes

* export missing hooks and types from @soroban/abacus-react package ([423ba55](423ba55350))
* migrate viewport from metadata to separate viewport export ([1fe12c4](1fe12c4837))

### Features

* add middleware for pathname header support in [@nav](https://github.com/nav) fallback ([b7e7c4b](b7e7c4beff))
* implement [@nav](https://github.com/nav) parallel routes for game name display in mini navigation ([885fc72](885fc725dc))
2025-09-29 13:54:44 +00:00
Thomas Hallock
423ba55350 fix: export missing hooks and types from @soroban/abacus-react package
- Export useAbacusConfig and useAbacusDisplay hooks from AbacusContext
- Export getDefaultAbacusConfig function and AbacusDisplayProvider component
- Export ColorScheme, BeadShape, ColorPalette, AbacusDisplayConfig, and AbacusDisplayContextType types

Resolves import errors in web components that were trying to import these
hooks but they weren't being exported from the package's main index file.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 08:54:01 -05:00
semantic-release-bot
0311b0fe03 chore(abacus-react): release v1.3.0 [skip ci]
# [1.3.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.2.0...abacus-react-v1.3.0) (2025-09-29)

### Bug Fixes

* ensure game names persist in navigation on page reload ([9191b12](9191b12493))
* implement route-based theme detection for page reload persistence ([3dcff2f](3dcff2ff88))
* improve navigation chrome background color extraction from gradients ([00bfcbc](00bfcbcdee))
* resolve SSR/client hydration mismatch for themed navigation ([301e65d](301e65dfa6))

### Features

* complete themed navigation system with game-specific chrome ([0a4bf17](0a4bf1765c))
* implement cozy sound effects for abacus with variable intensity ([cea5fad](cea5fadbe4))
2025-09-29 11:31:33 +00:00
Thomas Hallock
cea5fadbe4 feat: implement cozy sound effects for abacus with variable intensity
- Add realistic bead click sounds using Web Audio API synthesis
- Support variable intensity based on number of beads moved (1-5)
- Include app-wide sound controls in Style dropdown (enable/disable + volume)
- Settings persist in localStorage with existing style preferences
- SSR-safe implementation with graceful fallback
- Performance optimized with proper audio node cleanup

Sound characteristics:
- Dual-oscillator design (warm thock + sharp click)
- Sub-harmonic richness for multi-bead movements
- Exponential decay envelope for natural sound
- Lower frequencies and longer duration for heavier movements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 06:30:49 -05:00
semantic-release-bot
618f5d2cb0 chore(abacus-react): release v1.2.0 [skip ci]
# [1.2.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.1.3...abacus-react-v1.2.0) (2025-09-28)

### Bug Fixes

* **abacus-react:** add debugging and explicit authentication for npm publish ([b82e9bb](b82e9bb9d6))
* **abacus-react:** add packages: write permission for GitHub Packages publishing ([8e16487](8e1648737d))
* add missing GameThemeContext file for themed navigation ([d4fbdd1](d4fbdd1463))

### Features

* implement game theming system with context-based navigation chrome ([3fa11c4](3fa11c4fbc))
2025-09-28 17:02:36 +00:00
semantic-release-bot
342bff739a chore(abacus-react): release v1.1.3 [skip ci]
## [1.1.3](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.1.2...abacus-react-v1.1.3) (2025-09-28)

### Bug Fixes

* **abacus-react:** force npm to use GitHub Packages registry ([5e6c901](5e6c901f73))
2025-09-28 16:58:37 +00:00
semantic-release-bot
127cebab69 chore(abacus-react): release v1.1.2 [skip ci]
## [1.1.2](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.1.1...abacus-react-v1.1.2) (2025-09-28)

### Bug Fixes

* **abacus-react:** improve workspace dependency cleanup and add validation ([11fd6f9](11fd6f9b3d))
2025-09-28 16:56:35 +00:00
semantic-release-bot
de4c03e6b2 chore(abacus-react): release v1.1.1 [skip ci]
## [1.1.1](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.1.0...abacus-react-v1.1.1) (2025-09-28)

### Bug Fixes

* **abacus-react:** resolve workspace dependencies before npm publish ([834b062](834b062b2d))
2025-09-28 16:54:15 +00:00
semantic-release-bot
5799cc599d chore(abacus-react): release v1.1.0 [skip ci]
# [1.1.0](https://github.com/antialias/soroban-abacus-flashcards/compare/abacus-react-v1.0.0...abacus-react-v1.1.0) (2025-09-28)

### Bug Fixes

* **abacus-react:** improve publishing workflow with better version sync ([7a4ecd2](7a4ecd2b59))
* add testing mode for on-screen keyboard and fix toggle functionality ([904074c](904074ca82))
* redesign matching game setup page for StandardGameLayout ([cc1f27f](cc1f27f0f8))
* update memory pairs game to use StandardGameLayout ([8df76c0](8df76c08fd))
* update memory quiz to use StandardGameLayout ([3f86163](3f86163c14))

### Features

* create StandardGameLayout for perfect viewport sizing ([728a920](728a92076a))
* implement innovative dynamic two-panel layout for on-screen keyboard ([4bb8f6d](4bb8f6daf1))
* implement simple fixed bottom keyboard bar ([9ef72d7](9ef72d7e88))
2025-09-28 16:51:32 +00:00
semantic-release-bot
b5c6df8fa4 chore(abacus-react): release v1.0.0 [skip ci]
# 1.0.0 (2025-09-28)

### Bug Fixes

* **abacus-react:** simplify semantic-release config to resolve dependency issues ([88cab38](88cab380ef))
* **abacus-react:** temporarily allow test failures during setup phase ([e3db7f4](e3db7f4daf))
* add cssgen step to generate styles.css for Storybook ([26077de](26077de78b))
* add explicit type annotation for examples array in LivePreview ([6c49e03](6c49e0335e))
* add missing color-palette parameter to generate-flashcards function ([18583d0](18583d011a))
* add navigation to games from character selection modal ([b64fb1c](b64fb1c769))
* add onConfigurePlayer prop to ChampionArena ([6e1050c](6e1050c76d))
* add optional chaining to prevent TypeScript error ([d42dca2](d42dca2b4e))
* add robust fallback system for term highlighting in guidance ([decd8a3](decd8a36ca))
* add tooltip targeting logic to only show on beads with arrows ([4425627](44256277a1))
* add xmlns attributes to SVG examples for GitHub compatibility ([c2f33ce](c2f33ceff2))
* adjust tutorial editor page height to account for app navigation ([9777bef](9777befbc5))
* allow semantic release to proceed despite build failures ([73a6904](73a690405a))
* apply CSS scaling to abacus components in memory quiz ([599fbfb](599fbfb802))
* clean up component interfaces and settings ([ce6c2a1](ce6c2a1116))
* convert foreignObject to native SVG text elements ([3ccc753](3ccc753a82))
* correct column indexing and add boundary checks for interactive abacus ([bbfb361](bbfb3614a2))
* correct diamond bead column alignment to match Typst positioning ([97690d6](97690d6b59))
* correct heaven bead positioning to match earth bead gap consistency ([0c4eea5](0c4eea5a04))
* correct highlightBeads format in AbacusTest.stories.tsx ([7122ad7](7122ad7fb4))
* correct mathematical inconsistency in cascading complement test ([56cb69c](56cb69cb3e))
* correct pedagogical algorithm specification and tests ([9e87d3a](9e87d3ac37))
* correct segment expression formatting and rule detection ([e60f438](e60f4384c3))
* correct static file paths in Docker for Next.js standalone mode ([91223b6](91223b6f5d))
* correct styled-system import paths in games page ([82aa73e](82aa73eb0e))
* correct styled-system import paths in memory quiz page ([a967838](a967838c43))
* correct SVG text positioning to match React component alignment ([8024d0a](8024d0a25c))
* correct Tab navigation direction in numeral input system ([d4658c6](d4658c63b4))
* correct TanStack Form state selectors in create page ([178f0ff](178f0fff59))
* correct term position calculation for complement segments ([7189090](718909015c))
* correct tutorial bead highlighting to use rightmost column (ones place) ([b6b1111](b6b1111594))
* correct tutorial highlighting placeValue to columnIndex conversion ([35257b8](35257b8873))
* correct tutorial step "7 + 4" to highlight all required beads ([9c05bee](9c05bee73c))
* correct workspace configuration and remove non-existent packages ([39526eb](39526eb496))
* crop interactive abacus SVG whitespace with simple CSS scaling ([bb3d463](bb3d4636cd))
* disable pointer events on direction indicator arrows ([944d922](944d922f52))
* disable pointer events on overlay content div ([b5db935](b5db93562b))
* display actual numbers in SVG examples ([3308e22](3308e22fd2))
* downgrade Docker action versions to available ones ([57d1460](57d146027a))
* enable individual term hover events within complement groups ([0655968](0655968653))
* enable multi-bead highlighting in tutorial system ([ab99053](ab99053d74))
* enhance collision detection to include all active beads ([3d9d69c](3d9d69c6fb))
* ensure abacus visibility in memory quiz display phase ([fea7826](fea7826bd8))
* ensure celebration tooltip shows when steps complete ([5082378](5082378ec3))
* ensure consistent r×c grid layout for memory matching game ([f1a0633](f1a0633596))
* exclude test files from TypeScript build ([0e097da](0e097daf8f))
* expand heaven-earth-gap to 30pt to accommodate equal 19pt gaps for both heaven and earth inactive beads ([a048e11](a048e11f44))
* extract clean SVG content from component output ([f57b071](f57b07166b))
* gallery now loads actual Typst-generated SVGs instead of fake placeholders ([87eb51d](87eb51d399))
* generate Panda CSS styled-system before building in Docker ([c7a45e9](c7a45e9c41))
* handle both direct and module execution for web format ([a1fd4c8](a1fd4c84d3))
* hide celebration tooltip when user moves away from target value ([f9e42f6](f9e42f6e92))
* implement bead highlighting by modifying getBeadColor function ([7ac5c29](7ac5c29e9d)), closes [#FFD700](https://github.com/antialias/soroban-abacus-flashcards/issues/FFD700)
* implement consistent single-card preview generation ([83da1eb](83da1eb086))
* implement focus handling for numeral input in place-value system ([415759c](415759c43b))
* implement gap-filling logic for sorting challenge boundary issues ([df41f2e](df41f2eee3))
* implement mathematical SVG bounds calculation for precise viewBox positioning ([1b0a642](1b0a6423f9))
* implement prefix-conflict detection for speed memory quiz ([01b00b5](01b00b5a40))
* implement proper bi-directional drag and drop with useDroppable ([53fc41c](53fc41c58f))
* implement proper React controlled input pattern for AbacusReact ([c18919e](c18919e2a9))
* implement proper SVG cropping and fix abacus positioning ([793ffd3](793ffd3c1f))
* implement ref-based fullscreen element tracking for proper persistence ([7b947f2](7b947f2617))
* implement smooth cross-zone drag animations without scaling issues ([7219a41](7219a4131e))
* improve abacus sizing across all components with CSS transforms ([cd6165e](cd6165ee3e))
* improve error handling in ServerSorobanSVG component ([ec51105](ec5110544b))
* improve game mode selection UX by removing redundancy ([9fe7068](9fe7068ded))
* improve pedagogical correctness and cascade carry handling ([85ed254](85ed25471f))
* improve pedagogical segment detection and instruction quality ([0ac51ae](0ac51aefa7))
* improve race mechanics and fix display issues ([511eb2e](511eb2e8a9))
* improve sorting game UI with larger abacus and better slot design ([d5e2fda](d5e2fdadd6))
* improve visual balance of inactive heaven bead positioning ([a789087](a7890873ed))
* keep tooltip visible when step completed to show celebration ([b5d7512](b5d75120fd))
* make inactive heaven bead gaps truly equal to earth bead gaps ([209ea0f](209ea0f13b))
* make lightbulb emoji inline with help text ([43e046a](43e046ae6c))
* make sorting game action buttons visible during gameplay ([0c1f44b](0c1f44b8c9))
* match React component font sizing for SVG numbers ([dedc0e7](dedc0e7873))
* maximize inactive heaven bead gap from reckoning bar ([8f88eeb](8f88eeb071))
* move inactive heaven beads HIGHER for larger gap from reckoning bar ([2a82902](2a82902375))
* move inactive heaven beads to 2pt from top for 18pt gap from reckoning bar ([708cc91](708cc91bcc))
* perfect crop mark detection and SVG dimension consistency ([79f38c1](79f38c13e7))
* position inactive heaven beads above reckoning bar, not below ([2d7d4ef](2d7d4efacc))
* position inactive heaven beads relative to reckoning bar with same 19pt gap as earth beads ([3424ca1](3424ca1d34))
* position inactive heaven beads with maximum gap using available space ([421ec11](421ec11efc))
* position success toast near abacus instead of app nav ([ec40a8d](ec40a8d3cb))
* preserve fullscreen mode when navigating from arcade to memory matching game ([2505335](25053352fe))
* prevent premature step completion for multi-step problems ([41dde87](41dde87778))
* prevent race end modal from breaking endless route progression ([e06be9d](e06be9d121))
* regenerate example SVGs with actual soroban renderings ([d94baa1](d94baa1a80))
* remove broken display switching and add train emoji flip ([3227cd5](3227cd550e))
* remove controlled tooltip state to enable proper HoverCard timing ([e6e3aa9](e6e3aa9487))
* remove explicit conventionalcommits preset config to fix semantic-release ([15a9986](15a9986c76))
* remove failing tests from GitHub Actions workflow to enable deployment ([2eaeac6](2eaeac6862))
* remove ordering mismatch warning and implement correct expected state calculation ([9de48c6](9de48c63d8))
* remove Panda CSS generated files from source control ([18b685b](18b685b92d))
* remove redundant mode selection and revert game naming ([03f5056](03f5056902))
* remove TypeScript type check from GitHub Actions workflow ([18e2aa9](18e2aa9b59))
* replace all window.location.href with Next.js router for proper navigation ([2a84687](2a84687fec))
* replace invalid CSS 'space' property with 'gap' in guide page ([5841f3a](5841f3a52d))
* reposition on-screen keyboard to avoid covering abacus tiles ([6e5b4ec](6e5b4ec7bf))
* resolve abacus sizing and prefix matching issues in memory quiz ([b1db028](b1db02851c))
* resolve arrow disappearing and incorrect bead targeting in 3+14=17 story ([b253a21](b253a21c6c))
* resolve async/await issues in download API routes ([9afaf6e](9afaf6e12a))
* resolve auto-incrementing counter in InteractiveWithNumbers story ([1838d7e](1838d7e72f))
* resolve circular dependency errors in memory quiz on-screen keyboard ([d25e2c4](d25e2c4c00))
* resolve critical bugs in automatic instruction generator found by stress testing ([e783776](e783776754))
* resolve critical ordering mismatch between multiStepInstructions and stepBeadHighlights ([2c395f3](2c395f38c3))
* resolve display switching bug causing game content to disappear ([4736768](4736768ba6))
* resolve dnd-kit ref extension error in enhanced arena ([fac3202](fac320282b))
* resolve final TypeScript errors in place-value migration ([9a24dc8](9a24dc8f9d))
* resolve infinite render loop when clicking Next in tutorial player ([4ef6ac5](4ef6ac5f16))
* resolve nested border radius visual artifacts on match cards ([c69f6a4](c69f6a451a))
* resolve Python FileNotFoundError and improve error handling ([69bda9f](69bda9fb36))
* resolve ReferenceError by moving ref declarations before usage ([fa153c6](fa153c6908))
* resolve runtime error - calculateOptimalGrid not defined ([fbc84fe](fbc84febda))
* resolve SorobanGeneratorBridge path issues for SVG generation ([845a4ff](845a4ffc48))
* resolve stepIndex mismatch preventing arrows in multi-step sequences ([96fda6b](96fda6b919))
* resolve style dropdown click-outside and infinite re-render issues ([6394218](6394218667))
* resolve temporal dead zone error with goToNextStep ([3d503dd](3d503dda5d))
* resolve test failures and improve test robustness ([3c0affc](3c0affca00))
* resolve TypeScript compilation errors ([db3784e](db3784e7d0))
* resolve TypeScript compilation errors blocking GitHub Actions build ([83ba792](83ba79241f))
* resolve TypeScript errors across the codebase ([5946183](59461831e5))
* resolve zero-state interaction bug in AbacusReact component ([f18018d](f18018d9af))
* restore click functionality alongside directional gestures ([3c28c69](3c28c694fc))
* restore interactive abacus display with TypstSoroban fallback ([b794187](b794187392))
* restore missing typst dependencies for WASM loading ([96aa790](96aa790693))
* restore single-click player card functionality for arena toggle ([1ba2a11](1ba2a11b3a))
* restore workspace dependencies and fix TypeScript errors ([31df87d](31df87d3fc))
* show numbers in educational abacus examples ([2b5f143](2b5f14310c))
* simplify collision detection to resolve iterable error ([0b3e8fd](0b3e8fd3d6))
* simplify inactive heaven bead positioning for better gap matching ([22c4bd3](22c4bd3112))
* simplify semantic-release config to use default conventional commits ([e207659](e20765953b))
* single digit values now correctly position in rightmost column ([689bfd5](689bfd5df1))
* stabilize smart help detection with timer-based state ([9cc3a0e](9cc3a0ea9b))
* update bridge generator interface to support SVG format ([a022852](a02285289a))
* update GitHub Actions to use latest action versions ([b674946](b674946d8d))
* update GitHub Actions to use latest action versions for Storybook deployment ([f0bb411](f0bb411573))
* update GitHub Pages actions to v4 for better deployment reliability ([be76c23](be76c2355f))
* update gitignore to follow Panda CSS best practices ([ccd0aa7](ccd0aa7552))
* update pnpm lockfile to sync with semantic-release dependencies ([9d23e82](9d23e82b5a))
* update relative import in generate.py for module compatibility ([b633578](b633578ac5))
* update unified gallery to use correct crop examples ([826e86d](826e86d73c))
* upgrade Node.js to version 20 for Storybook compatibility ([4c33872](4c338726c1))
* use actual AbacusReact component for README examples via SSR ([a630aa4](a630aa4f2c))
* use aggressive NumberFlow mock for SVG text rendering ([1364b11](1364b11ed1))
* use correct test command in GitHub Actions workflow ([6483e28](6483e285d4))

### Features

* **abacus-react:** add dual publishing to npm and GitHub Packages ([242ee52](242ee523ed))
* **abacus-react:** comprehensive README overhaul with current capabilities ([0ce351e](0ce351e572))
* **abacus-react:** configure GitHub Packages-only publishing workflow ([5eeedd9](5eeedd9a59))
* **abacus-react:** enable dual publishing to npm and GitHub Packages ([176a196](176a1961d0))
* **abacus-react:** enhance package description with semantic versioning details ([af037b5](af037b5e0a))
* **abacus-react:** implement GitHub Packages-only publishing workflow ([b194599](b194599f60))
* **abacus-react:** implement GitHub-only semantic release with manual package publishing ([33b0567](33b0567698))
* **abacus-react:** simplify to GitHub Packages-only publishing ([acc126b](acc126bd5a))
* **abacus-react:** use environment variables to override npm registry ([ad444e1](ad444e108f))
* add 292 comprehensive snapshot tests for pedagogical algorithm ([3b8f803](3b8f803ca8))
* add AbacusContext for global display configuration ([6460089](6460089ab9))
* add ArithmeticOperationsGuide component to learning guide ([902fa56](902fa56d23))
* add automated semantic release system with conventional commits ([46c8839](46c88392d1))
* add backgroundGlow support for column highlighting ([b1866ce](b1866ce7fb))
* add bead annotation support to SVG generation ([ab244ea](ab244ea191))
* add browser fullscreen API context ([8e1a948](8e1a948ffd))
* add browser-free example generation using react-dom/server ([a100a6e](a100a6e498))
* add browser-side bead annotation processing ([914e145](914e145d44))
* add CI-friendly example generation and verification ([1adbd1a](1adbd1a5ff))
* add click-to-dismiss functionality for success popup ([3066826](306682632e))
* add colored numerals feature to match bead colors ([e4aaaea](e4aaaeab13))
* add complete NAS deployment system for apps/web ([eb8ed8b](eb8ed8b22c))
* add comprehensive .gitignore for monorepo ([9eccd34](9eccd34e58))
* add comprehensive soroban learning guide with server-generated SVGs ([38d8959](38d89592c9))
* add comprehensive Storybook demos for problem generation system ([c01f968](c01f968ff7))
* add comprehensive Storybook examples for documentation ([8289241](828924129e))
* add comprehensive test suite and documentation ([bb869a0](bb869a0b11))
* add comprehensive test suite with visual regression testing ([7a2eb30](7a2eb309a8))
* add comprehensive tests for celebration tooltip behavior ([a23ddf5](a23ddf5b9a))
* add comprehensive tutorial system with editor and player ([579caf1](579caf1a26))
* add comprehensive unit test suite for memory quiz functionality ([a557362](a557362c9e))
* add comprehensive welcome page as default landing experience ([556a830](556a830540))
* add concurrent Panda CSS watch to dev script ([e8aed80](e8aed8034a))
* add config presets for colored numerals and skip counting ([a8a01a8](a8a01a8db3))
* add cosmic fullscreen mode to abacus style dropdown ([afec22a](afec22ac3f))
* add deprecation markers to legacy column-based API ([22f1869](22f1869557))
* add development tooling and comprehensive setup ([7ca65bf](7ca65bfd59))
* add extracted TutorialDebugPanel and TutorialNavigation components ([bc5446a](bc5446a29f))
* add fox tunnel digging system for Lightning Sprint mode ([b7fac3a](b7fac3a601))
* add full-viewport abacus test page ([861f0e0](861f0e0a0f))
* add fullscreen arcade page with Champion Arena ([3edf35f](3edf35f6a1))
* add fullscreen game layout wrapper component ([a25e611](a25e6117bb))
* add fullscreen parameter handling to GameCard ([337aa56](337aa5609a))
* add fullscreen support to Memory Quiz game ([763fc95](763fc95025))
* add Games navigation to main app header ([b87ed01](b87ed01520))
* add GitHub Pages Storybook deployment with dual documentation sites ([439707b](439707b118))
* add guided addition tutorial with five complements ([8ca9dd7](8ca9dd7a19))
* add input-based flashcard template with parameter parsing ([b375a10](b375a104a5))
* add intelligent on-screen number pad for devices without keyboards ([d4740ff](d4740ff997))
* add interactive abacus display to guide reading section ([6d68cc2](6d68cc2a06))
* add interactive bead clicking to soroban abacus ([697552e](697552ecd9))
* add interactive test story for column highlighting with bead interaction ([ee20473](ee20473a36))
* add interactive tutorial system with step validation ([c5c2542](c5c2542849))
* add invisible crop marks for consistent SVG viewBox boundaries ([7731f70](7731f70b99))
* add Node.js/TypeScript integration with clean function interface ([fb1b047](fb1b0470cf))
* add PDF print integration with modal interface ([09b0fad](09b0fad633))
* add pedagogical segments for contextual learning ([0053510](0053510783))
* add practice page system to guided addition tutorial ([9adc3db](9adc3db966))
* add precise term position tracking to unified step generator ([52323ae](52323aeba8))
* add production-ready defensive programming for pedagogical segments ([704a8a8](704a8a8228))
* add proper step initialization and multi-step navigation to TutorialContext ([153649c](153649c17d))
* add Python bridge and optional FastAPI server ([98263a7](98263a79a0))
* add Radix tooltip dependency for better tooltip accessibility ([6c02ea0](6c02ea06e7))
* add real-time bead movement feedback to tutorial UI ([4807bc2](4807bc2fd9))
* add reusable GameSelector and GameCard components ([c5a654a](c5a654aef1))
* add self-contained Storybook-like gallery for template visualization ([efc5cc4](efc5cc408d))
* add setGameModeWithPlayers method to GameModeContext ([c3a4d76](c3a4d76d16))
* add single card template for PNG/SVG output ([3315310](33153108a2))
* add smooth cross-zone reordering animations and tone down scaling ([b7335f0](b7335f0e67))
* add soroban games section with Speed Memory Quiz ([331a789](331a78937e))
* add static site generator for gallery with embedded SVGs ([505ff66](505ff66bd5))
* add step parameter for skip counting ([c94fa5c](c94fa5c74e))
* add Storybook stories for debugging zero-state interaction bug ([f293e5e](f293e5ecf7))
* add stunning hero section with colorful soroban showcase ([d65ac54](d65ac546aa))
* add SVG post-processing to convert bead annotations to data attributes ([8de3259](8de32593b0))
* add SVG post-processor to package exports ([59f4022](59f4022afb))
* add testing framework dependencies ([11306df](11306dfb2e))
* add TouchSensor for mobile drag and drop compatibility ([4fbf4d8](4fbf4d8bb2))
* add TypeScript client libraries for browser integration ([f21b5e5](f21b5e5592))
* add TypeScript configuration for core package ([43b3296](43b3296e26))
* add typography improvements and subtle dev warning styling ([12a8837](12a88375ab))
* add unified step generator for consistent pedagogical decomposition ([93d2d07](93d2d07626))
* add UserProfileProvider to app layout for character support ([21c430b](21c430b9f0))
* add WASM preloading strategy with template deduplication ([91e65c8](91e65c8a61))
* add web development test files and public assets ([0809858](0809858302))
* add web output format with interactive hover flashcards ([0a4e849](0a4e849c35))
* attempted floating math display following train ([2d50eb8](2d50eb8e97))
* automatic abacus instruction generator for user-created tutorial steps ([5c46470](5c4647077b))
* BREAKTHROUGH - eliminate effectiveColumns threading nightmare! ([8fd9e57](8fd9e57292))
* complete deployment documentation and infrastructure ([26f9285](26f928586e))
* COMPLETE place-value migration - eliminate all backward compatibility ([67be974](67be974a8b))
* complete steam train sound system and smooth time-of-day transitions ([6c60f94](6c60f94a56))
* completely rewrite SorobanQuiz memory game with advanced features ([c3fdbfc](c3fdbfc199))
* connect TutorialPlayer to universal AbacusDisplayContext ([ff12bab](ff12bab8ab))
* convert SorobanQuiz memory game styling to Panda CSS ([bed97e6](bed97e62ad))
* create @soroban/templates package with dual Node.js/Python interface ([7da0123](7da0123a84))
* create comprehensive interactive soroban tutorial with stunning UI ([d78f19e](d78f19e4bc))
* create interactive gallery replicating original Typst design ([1bcfd22](1bcfd22f17))
* create Next.js web application with beautiful UI ([1b7e71c](1b7e71cc0d))
* create sequential practice problem player with step-by-step guidance ([8811106](88111063a5))
* create shared EditorComponents library for tutorial UI consistency ([4991a91](4991a91c7d))
* create unified skill configuration interface with intuitive modes ([fc79540](fc79540f78))
* disable NumberFlow animations for keyboard input to prevent jarring transitions ([fe38bfc](fe38bfc8ad))
* display pedagogical terms inline with current tutorial step ([408eb58](408eb58792))
* enable automatic live preview updates and improve abacus sizing ([f680987](f680987ed6))
* enhance ChampionArena with integrated GameSelector and improved UX ([aba3f68](aba3f685bc))
* enhance column mapping for two-level highlighting ([007d088](007d0889eb))
* enhance crop marks with edge-based positioning and comprehensive tests ([8c7a5b1](8c7a5b1291))
* enhance GameCard with epic character celebration animations ([b05189e](b05189e9eb))
* enhance instruction generator with step bead highlighting and multi-step support ([8518d90](8518d90e85))
* enhance memory quiz input phase for better learning experience ([7c5556b](7c5556bf51))
* enhance memory quiz with dynamic columns and adaptive transitions ([aa1f674](aa1f674553))
* enhance navigation touch targets for mobile ([6e09f21](6e09f21a70))
* enhance pedagogical reasoning tooltips with comprehensive context ([bb38c7c](bb38c7c87c))
* enhance steam train coal shoveling visual feedback ([f26fce4](f26fce4994))
* enhance test page with lazy loading demo ([5a8bb2f](5a8bb2f859))
* enhance tooltips with combined provenance and pedagogical content ([0c7ad5e](0c7ad5e4e7))
* enhance tutorial system with multi-step progression support ([3a63950](3a6395097d))
* enhance two-player matching game with multiple UX improvements ([f35dcdc](f35dcdc3d5))
* export bridge generator from core package ([90a5c06](90a5c06f7c))
* export SVG processing functions from main module ([bee866a](bee866ab5c))
* extend provenance system for multi-column term tracking ([013e8d5](013e8d5237))
* hide Next Action when at expected starting state for current step ([aafee3a](aafee3a25a))
* hide Next Action when current state matches step target ([ed3d896](ed3d89667e))
* hide redundant pedagogical expansions for simple problems ([9d0e8c7](9d0e8c7086))
* hide timer bar for train variant only ([84334f9](84334f9d5a))
* implement 90s arcade sound system and tunnel digging mechanics ([a43ab92](a43ab9237e))
* implement actual abacus SVG generation for README examples ([6e02102](6e0210243a))
* implement authentic adjacent bead spacing for realistic abacus appearance ([f28256d](f28256dc60))
* implement clean background glow for term-to-column highlighting ([ec030f0](ec030f00fd))
* implement colorblind-friendly color palettes with mnemonic support ([faf578c](faf578c360))
* implement complete smart number entry system for quiz ([150c195](150c195c33))
* implement comprehensive bead diff tooltips with pedagogical decomposition ([2e3223d](2e3223da90))
* implement comprehensive character integration for /games arcade ([26bf399](26bf3990b0))
* implement comprehensive customization API for AbacusReact ([48f6e77](48f6e7704c))
* implement comprehensive pedagogical algorithm improvements ([72d9362](72d9362cc4))
* implement comprehensive pedagogical expansion tests for abacus operations ([5d39bdc](5d39bdc84e))
* implement context-aware English instruction generation ([bd3f144](bd3f1440a3))
* implement CSS-based hidden inactive beads with smooth opacity transitions ([ff42bcf](ff42bcf653))
* implement dynamic bead diff algorithm for state transitions ([c43090a](c43090aa7d))
* implement dynamic train orientation following curved path direction ([e6065e8](e6065e8ef2))
* implement elegant between-step hover-based add functionality ([89a0239](89a023971f))
* implement endless route progression system ([a2b3e97](a2b3e97eba))
* implement enhanced tactile drag and drop arena with dnd-kit ([4b840e9](4b840e9c04))
* implement fair scoring algorithm for card sorting challenge ([ee7a5e4](ee7a5e4a0b))
* implement global abacus display configuration and remove client-side SVG generation ([5c3231c](5c3231c170))
* implement HoverCard-based tooltip with enhanced UX and accessibility ([7fef932](7fef932134))
* implement interactive pedagogical reasoning with compact tooltips ([2c09516](2c095162e8))
* implement interactive place value editing with NumberFlow animations ([684e624](684e62463d))
* implement intuitive directional gesture system for abacus beads ([7c104f3](7c104f37b5))
* implement learner-friendly pedagogical tooltips with plain language ([01ed22c](01ed22c051))
* implement mobile-first responsive design for speed memory quiz ([13efc4d](13efc4d070))
* implement modal dialogs with fullscreen support for challenges ([9b6cabb](9b6cabb111))
* implement native place-value architecture for AbacusReact ([3055f32](3055f32e5b))
* implement physical abacus logic and fix numeral coloring regression ([5e3d799](5e3d799096))
* implement precise inline highlighting of pedagogical terms ([538d356](538d356f03))
* implement progressive enhancement with minimal loading states ([7e1ce8d](7e1ce8d34d))
* implement progressive multi-step instruction system in AbacusReact ([9195b9b](9195b9b6b1))
* implement proper SVG transform accumulation for crop mark viewBox calculation ([03230a2](03230a2eab))
* implement provenance system for pedagogical term tracking ([37b5ae8](37b5ae8623))
* implement React abacus component with independent heaven/earth beads ([528cac5](528cac50a8))
* implement real SVG generation from Python bridge in preview API ([4b90d12](4b90d12f39))
* implement realistic abacus drag mechanics ([86cbbc8](86cbbc8c18))
* implement revolutionary drag-and-drop champion arena interface ([dbf61c4](dbf61c4b2d))
* implement semantic summarizer for pedagogical tooltips ([d1f1bd6](d1f1bd6d69))
* implement sequential addition problem generation with skill-aware logic ([205badb](205badbe70))
* implement skill-based practice step editor system ([9a3afb1](9a3afb17ba))
* implement smart help detection for Next Action display ([933b948](933b94856d))
* implement smart tooltip positioning to avoid covering active beads ([e104033](e104033371))
* implement toggleable on-screen keyboard to prevent UI overlap ([701d23c](701d23c369))
* implement two-level column highlighting in tutorial player ([bada299](bada2996e2))
* implement type-safe place-value API for bead highlighting ([9b6991e](9b6991ecff))
* implement unified step positioning for tutorial editor ([6aac8f2](6aac8f204a))
* improve bead interaction handlers for place-value system ([34b9517](34b9517e4a))
* improve celebration tooltip positioning to last moved bead ([91c5e58](91c5e58029))
* improve pedagogical decomposition to break down by place value ([4c75211](4c75211d86))
* improve preview number selection for better variety demonstration ([3eb053f](3eb053f825))
* improve sorting game UX with visual cues and auto-selection ([a943ceb](a943ceb795))
* improve visual appearance with dynamic rod bounds and better spacing ([6c95538](6c9553825a))
* initialize CHANGELOG.md for semantic release tracking ([5dcee6b](5dcee6b198))
* integrate bead diff algorithm with tutorial editor ([472bdf8](472bdf8e74))
* integrate guided addition tutorial into guide page ([b82a8f1](b82a8f1308))
* integrate memory pairs game with arena champions and N-player support ([d9f07d7](d9f07d7a4d))
* integrate MemoryPairs game with global GameModeContext ([022dca6](022dca6518))
* integrate NumberFlow for smooth animated number display ([e330d35](e330d3539d))
* integrate pytest testing with make targets ([8c15d06](8c15d06593))
* integrate typst.ts for browser-native SVG generation ([c703a3e](c703a3e027))
* integrate unified skill configuration interface into practice step editor ([9305f11](9305f11a01))
* integrate unified step generator into tutorial editor UI ([88059b2](88059b2176))
* make success notification prominent but non-blocking ([7278590](7278590a54))
* migrate all app abaci to browser-side generation ([9be52ac](9be52ac689))
* move progressive test stories to web app with real instruction generator integration ([9d568e3](9d568e34f4))
* optimize games page for mobile devices ([eb7202d](eb7202ddc6))
* optimize memory quiz layout for better viewport usage ([2f0c0fe](2f0c0fe57e))
* optimize mobile viewport configuration ([476f0fb](476f0fb882))
* optimize Next.js webpack configuration for WASM ([39b6e5a](39b6e5a20f))
* optimize showNumbers layout with three modes and visual improvements ([77dc470](77dc4702d4))
* polish interactive abacus with column-based digit display ([ad11e3d](ad11e3dc90))
* redesign memory game with invisible input and penalty scoring ([b92a867](b92a867677))
* regenerate Panda CSS styles for memory quiz and other components ([b8361ee](b8361eea50))
* remove normalizeBeadHighlight conversion layer ([6200204](62002040b7))
* reorganize main page into navigable sectioned layout ([4d179b5](4d179b5588))
* replace Champion Arena with Enter Arcade button ([2b98382](2b98382b5a))
* replace inline success message with stunning floating overlay ([43f02eb](43f02eb539))
* replace legacy abacus components with new AbacusReact ([2a6a010](2a6a0104fd))
* replace manual dropdown with Radix UI for proper state management ([bf050fa](bf050fa98e))
* replace single-column results with persistent card grid layout ([30ae6e1](30ae6e1153))
* replace tutorial player arrows with dynamic bead diff algorithm ([e8fe467](e8fe467c6c))
* restore steam train journey enhancements ([045dc9f](045dc9fb32))
* revolutionary single-element editable NumberFlow with live abacus updates ([4bccd65](4bccd65305))
* set up automated npm publishing for @soroban/abacus-react package ([dd80d29](dd80d29c97))
* set up monorepo structure with pnpm workspaces and Turborepo ([62e941e](62e941e1c0))
* streamline practice step editor by removing redundant preview section ([beaf3f0](beaf3f0443))
* switch tooltip system from Tooltip to HoverCard for better interactivity ([861904f](861904fb1f))
* transform tooltip into celebration when step completed ([057f71e](057f71e795))
* trigger storybook deployment after enabling GitHub Pages ([64dc94e](64dc94e91e))
* update ReasonTooltip UI to prioritize semantic summaries ([6fb0384](6fb03845f2))

### Performance Improvements

* debounce value change events during rapid gesture interactions ([82e15a1](82e15a1cd9))
* eliminate loading flash with delayed loading state ([c70a390](c70a390dc6))
* optimize tutorial abacus highlighting calculation ([3490f39](3490f39a91))
* optimize TutorialEditor TutorialPlayer prop calculations ([8e81d25](8e81d25f06))
* speed up bead animations for fast abacus calculations ([1303c93](1303c930f2))

### BREAKING CHANGES

* abacus-react package now has independent versioning from monorepo
2025-09-28 15:37:30 +00:00
Thomas Hallock
33b0567698 feat(abacus-react): implement GitHub-only semantic release with manual package publishing
- Remove npm plugin from semantic-release to avoid workspace dependency issues
- Use semantic-release only for versioning, tagging, and GitHub releases
- Add manual npm publish step that syncs version from git tags
- This enables GitHub Packages publishing without npm account dependency
- Package versioning and releases are fully automated via semantic-release

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 10:36:44 -05:00
Thomas Hallock
88cab380ef fix(abacus-react): simplify semantic-release config to resolve dependency issues
- Remove conventionalcommits preset from commit analyzer to avoid missing dependency
- Use default semantic-release parser with custom release rules
- Simplify release notes generator configuration
- This should resolve the MODULE_NOT_FOUND error for conventional-changelog-conventionalcommits

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 10:32:34 -05:00
Thomas Hallock
b194599f60 feat(abacus-react): implement GitHub Packages-only publishing workflow
- Disable npm publishing in semantic-release to avoid npm token requirement
- Use semantic-release for versioning, tagging, and GitHub releases only
- Add separate step to publish to GitHub Packages after version is created
- Configure npm registry specifically for GitHub Packages publishing
- This bypasses semantic-release npm plugin limitations while maintaining automation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 10:30:47 -05:00
Thomas Hallock
ad444e108f feat(abacus-react): use environment variables to override npm registry
- Set NPM_CONFIG_REGISTRY and NPM_REGISTRY environment variables to force GitHub Packages
- Remove registry setting from semantic-release config to rely on environment variables
- This should force npm authentication to use GitHub Packages registry instead of npm

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 09:32:39 -05:00
Thomas Hallock
acc126bd5a feat(abacus-react): simplify to GitHub Packages-only publishing
- Remove npm registry plugin to eliminate NPM_TOKEN requirement completely
- Configure single npm plugin targeting only GitHub Packages registry
- This should allow successful publishing to GitHub Packages with GITHUB_TOKEN
- npm publishing can be re-enabled later by adding NPM_TOKEN secret

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 09:30:44 -05:00
Thomas Hallock
5eeedd9a59 feat(abacus-react): configure GitHub Packages-only publishing workflow
- Disable npm registry publishing in semantic-release config to avoid NPM_TOKEN requirement
- Enable GitHub Packages publishing with GITHUB_TOKEN authentication
- Update workflow to configure only GitHub Packages registry authentication
- Allow package publishing to GitHub Packages without npm credentials
- This enables automatic publishing to GitHub Packages while npm setup is pending

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 09:28:27 -05:00
Thomas Hallock
0ce351e572 feat(abacus-react): comprehensive README overhaul with current capabilities
- Complete documentation of interactive features and tutorial system
- Detailed examples for all major use cases and APIs
- Place-value based targeting system documentation
- Progressive tutorial steps and directional gesture guides
- Granular styling customization examples
- Educational use case implementations
- Full TypeScript interface documentation
- Accessibility and color scheme information
- Live Storybook documentation links

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 09:16:10 -05:00
Thomas Hallock
242ee523ed feat(abacus-react): add dual publishing to npm and GitHub Packages
- Configure semantic-release for simultaneous publishing to both registries
- Update GitHub Actions workflow with dual authentication setup
- Add npm configuration for both registry.npmjs.org and npm.pkg.github.com
- Update package.json with correct repository URL and registry config
- Enhance documentation across README, CONTRIBUTING.md, and .claude/ files
- GitHub Packages uses GITHUB_TOKEN, npm requires NPM_TOKEN secret

This provides redundancy and choice for package consumers while maintaining
the same automatic semantic versioning workflow.
2025-09-28 08:55:05 -05:00
Thomas Hallock
af037b5e0a feat(abacus-react): enhance package description with semantic versioning details
- Update package description to mention automated semantic versioning
- This commit should trigger the first automated release of @soroban/abacus-react
2025-09-28 08:39:50 -05:00
Thomas Hallock
dd80d29c97 feat: set up automated npm publishing for @soroban/abacus-react package
- Add semantic-release configuration for abacus-react package with scope-based versioning
- Create GitHub Actions workflow for automated publishing to npm
- Configure package-specific semantic versioning with conventional commits
- Add release scripts and update README with publishing documentation
- Update root release config to exclude abacus-react scope from monorepo releases
- Package releases are triggered by commits with scope 'abacus-react'

BREAKING CHANGE: abacus-react package now has independent versioning from monorepo
2025-09-28 08:39:15 -05:00
Thomas Hallock
439707b118 feat: add GitHub Pages Storybook deployment with dual documentation sites
- Add comprehensive GitHub Actions workflow for automated Storybook deployments
- Deploy apps/web Storybook to gh-pages/web subdirectory
- Deploy packages/abacus-react Storybook to gh-pages/abacus-react subdirectory
- Create beautiful landing page with navigation to both Storybooks
- Add Component Documentation section to README with direct links
- Support both PR previews and main branch deployments
- Optimize build process with proper dependency management
2025-09-28 08:10:06 -05:00
Thomas Hallock
31df87d3fc fix: restore workspace dependencies and fix TypeScript errors
- Restore @soroban/core and @soroban/client dependencies in apps/web
- Correct workspace configuration to include all existing packages
- Disable problematic example-server.ts to fix TypeScript build
- Update Dockerfile to copy all required package.json files

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 09:08:46 -05:00
Thomas Hallock
eb8ed8b22c feat: add complete NAS deployment system for apps/web
- Add Dockerfile with multi-stage build for monorepo
- Add GitHub Actions workflow for automated CI/CD
- Add NAS deployment configuration for abaci.one
- Configure Porkbun DDNS integration
- Add Watchtower for auto-updates
- Fix Next.js standalone output configuration
- Add missing dependencies for package builds

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 08:42:41 -05:00
Thomas Hallock
fa82738b36 docs: enhance storybook column customization examples and documentation
Improve column customization stories with comprehensive examples including two-level highlighting, background glow effects, and interactive controls. Add detailed documentation guide for all customization options.

- Add two-level highlighting demo story with group and individual effects
- Enhance interactive column customization controls
- Fix missing useMemo import in stories
- Add comprehensive COLUMN_CUSTOMIZATION_GUIDE.md documentation
- Update main stories with cleaner organization

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 11:51:33 -05:00
Thomas Hallock
ee20473a36 feat: add interactive test story for column highlighting with bead interaction
- Create InteractiveWithHighlighting story to test both features together
- Showcase backgroundGlow API with clean, subtle styling
- Provide debugging interface for testing column highlighting conflicts
- Demonstrate proper separation of concerns between highlighting and interaction

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 11:04:24 -05:00
Thomas Hallock
b1866ce7fb feat: add backgroundGlow support for column highlighting
- Add BackgroundGlowStyle interface with fill, blur, spread, opacity
- Implement background glow rendering behind all SVG elements
- Add backgroundGlow to column customization API
- Fix pointer events to only capture when column callbacks exist

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 11:04:13 -05:00
Thomas Hallock
570eac17f1 chore: update Claude Code permissions for pedagogical tests
Add permissions for running core pedagogical tests to support
the new segment validation testing workflow.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 11:04:33 -05:00
Thomas Hallock
016acfd320 refactor: remove obsolete pedagogical algorithm tests and apply surgical improvements
- Remove pedagogicalAlgorithmTests.test.ts with outdated bead-movement-first expectations
- Add comprehensive micro-invariant tests for critical behaviors
- Remove dead parenthesized term parser code (never used)
- Add extra places validation in state consistency checks
- Clean up unused variables and improve code hygiene
- Update testing documentation to reflect current approach

The algorithm now has focused, fast validation (43 tests in 11ms) with
explicit invariant checking that catches bugs immediately rather than
relying on brittle snapshot comparisons.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 09:13:45 -05:00
Thomas Hallock
c11162cab2 refactor: remove multi-place gating from five-complement pedagogy
- Always show five-complement pedagogy as separate steps regardless of operation complexity
- Update test expectations to match new pedagogical behavior
- Multi-place operations like 34→78 now show (50-10)+(5-1) instead of direct addition
- Ensures pedagogical consistency across all operation types

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 07:17:35 -05:00
Thomas Hallock
b5db93562b fix: disable pointer events on overlay content div
- Change pointerEvents from 'auto' to 'none' on overlay inner div
- Prevents tooltip overlays from intercepting bead clicks
- foreignObject has pointer-events:none but inner div was overriding it
- Now clicks properly pass through overlays to underlying beads

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 10:46:17 -05:00
Thomas Hallock
944d922f52 fix: disable pointer events on direction indicator arrows
- Add style={{ pointerEvents: 'none' }} to direction-indicator group
- Prevents arrows from intercepting clicks meant for the beads
- Allows clicks to pass through to the underlying bead elements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 10:42:11 -05:00
Thomas Hallock
7ac5c29e9d fix: implement bead highlighting by modifying getBeadColor function
- Add isHighlighted parameter to getBeadColor function
- Return gold highlight color (#FFD700) when bead should be highlighted
- Apply highlighting before inactive color check to highlight inactive beads
- Move highlighting calculation before color computation in render loop
- Remove debug console logs from highlighting investigation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 10:30:58 -05:00
Thomas Hallock
1126e3be15 test: add comprehensive test suite for tutorial system regression prevention
Created extensive test coverage to prevent regressions in the tutorial system fixes:

## AbacusReact Controlled Input Tests
- Controlled value prop initialization and updates
- User interaction vs programmatic change detection
- Feedback loop prevention
- Rapid value change handling

## TutorialContext State Management Tests
- Step initialization with correct startValue
- Navigation between steps and value reset
- Multi-step progression (advance, previous, reset)
- Value change handling and step completion
- Error handling for edge cases

## TutorialPlayer Integration Tests
- AbacusReact integration and value synchronization
- Multi-step instruction display and progression
- Context state consistency across components
- Feedback loop prevention between components
- Performance and error recovery testing

## End-to-End Workflow Tests
- Complete tutorial workflow from user perspective
- Cross-browser compatibility and responsive behavior
- User interaction patterns (bead clicks, navigation)
- Success feedback and completion handling
- Keyboard accessibility testing

Includes test utilities, setup files, and comprehensive test runner for CI/CD integration.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 09:37:01 -05:00
Thomas Hallock
c18919e2a9 fix: implement proper React controlled input pattern for AbacusReact
- Make useAbacusPlaceStates hook responsive to external value changes
- Add proper controlled input behavior to prevent feedback loops
- Track external vs user-initiated changes to avoid calling onValueChange for programmatic updates
- Allows parent components to control the abacus value while still permitting user interaction

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 09:29:42 -05:00
Thomas Hallock
2e3223da90 feat: implement comprehensive bead diff tooltips with pedagogical decomposition
- Add PedagogicalDecompositionDisplay component with tooltip and guidance variants
- Create Radix tooltip overlay system targeting specific beads with direction arrows
- Show pedagogical decomposition with current term highlighted in both tooltip and guidance pane
- Position tooltip to left of abacus with 60px left margin to prevent clipping
- Add hover opacity effects (85% default, 100% on hover) for subtle tooltip presence
- Include lightbulb emoji and action summary in tooltip for clear guidance

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 08:04:09 -05:00
Thomas Hallock
b5d4864950 refactor: update Storybook stories and TutorialPlayer to use consistent auto-generation
Updates TutorialPlayer to use the same auto-generation algorithm as Storybook stories,
removing hard-coded special cases and ensuring consistent pedagogical ordering.

Enhances Storybook stories with expected states calculation demonstration to showcase
the corrected step-by-step progression that matches tutorial editor functionality.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 17:44:01 -05:00
Thomas Hallock
13888334d6 chore: remove Claude local settings from version control
- Remove .claude/settings.local.json from git tracking
- This file is already in .gitignore and should remain local-only
- Contains user-specific Claude Code configurations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 14:57:47 -05:00
Thomas Hallock
ba1a92230f docs: add comprehensive documentation and debug tools for progressive instruction system
PROGRESSIVE_INSTRUCTION_PLAN.md:
- Complete implementation plan with 4 phases and success criteria
- Technical architecture documentation
- Data structure specifications and implementation approach

Storybook Debug Stories:
- AbacusReact.debug-arrows.stories.tsx: Simple arrow positioning debugging
- AbacusReact.direction-arrows.stories.tsx: Comprehensive direction indicator showcase
- Stories for testing single beads, multiple arrows, and raw SVG validation

Step Advancement Test:
- step-advancement.test.tsx: Isolated unit tests for step progression logic
- Test component implementing full step advancement workflow
- Validates expected step generation and auto-advancement behavior

These tools enabled debugging and validation of the complete progressive instruction system.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 14:56:34 -05:00
Thomas Hallock
9195b9b6b1 feat: implement progressive multi-step instruction system in AbacusReact
- Add StepBeadHighlight interface for step-based bead highlighting
- Implement direction indicators with SVG arrows showing bead movement direction
- Add comprehensive color scheme integration for arrows (place-value, monochrome, etc.)
- Implement pulsing animations for direction indicators to show urgency
- Add getBeadStepHighlight function for progressive step revelation
- Support both activate/deactivate directions with proper visual feedback
- Ensure arrows are centered on beads with proper SVG transforms
- Add showDirectionIndicators prop to control arrow display

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 14:55:03 -05:00
Thomas Hallock
7fe9cce679 chore: ignore generated CSS and build files
- Add Panda CSS generated files to .gitignore (styles.css, chunks/, etc.)
- Add Turbo build logs to .gitignore
- Remove previously tracked generated files from repository

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 14:54:10 -05:00
Thomas Hallock
b253a21c6c fix: resolve arrow disappearing and incorrect bead targeting in 3+14=17 story
- Fix arrow disappearing issue by ensuring stepIndex matches currentStep for proper display
- Fix earth bead position for 18→17 subtraction to target correct bead (position 2 instead of 0)
- When value is 18 (heaven + 3 earth beads), subtracting 1 should deactivate the highest positioned earth bead

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 14:50:30 -05:00
Thomas Hallock
5d39bdc84e feat: implement comprehensive pedagogical expansion tests for abacus operations
- Add proper pedagogical breakdown: 3 + 14 = 3 + 10 + (5 - 1)
- Ensure each step corresponds to exactly one bead movement concept
- Create comprehensive test suite covering all major abacus techniques:
  * Simple direct addition (1 + 2 = 3)
  * Five complement addition (2 + 3 = 2 + (5 - 2))
  * Ten complement addition (3 + 14 = 3 + 10 + (5 - 1))
  * Simple subtraction (7 - 2 = 5)
  * Heaven bead addition (3 + 5 = 8)
  * Tens addition (5 + 10 = 15)
- Implement automated test validation with pass/fail indicators
- Verify pedagogical principles: no compound operations, single-bead movements
- Add detailed console logging and visual test results dashboard
- Support individual step verification and overall pedagogical correctness

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 14:28:45 -05:00