fix(calendar-lab): rewrite zoom as GSAP flying-rect with proper async sequencing

- Replace panzoom + timeline approach with clean async/await GSAP tweens
- Flying rect morphs from cell position to full viewport (aspect ratio change)
- Fix zoomOut race condition: nested gsap.to inside tl.call fired outside timeline
- Fix opacity conflict: GSAP controls all opacity, CSS class only for pointer-events
- Fix gridLayerRef losing reference on :key remount during resize
- Make viewport dimensions reactive via ResizeObserver (vpWidth/vpHeight refs)
- Wait for fade-in completion before unlocking isAnimating

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ruslan Bakiev
2026-02-24 09:47:45 +07:00
parent b316b024be
commit 3e711a5533
3 changed files with 386 additions and 369 deletions

View File

@@ -42,6 +42,7 @@
"daisyui": "^5.5.18",
"graphql": "^16.12.0",
"graphql-tag": "^2.12.6",
"gsap": "^3.14.2",
"ioredis": "^5.7.0",
"langfuse": "^3.38.6",
"langsmith": "^0.5.4",