feat(timeline): add pulse animation for in-flight drag mutations

Allocation bars that have active optimistic overrides (post-drag,
awaiting server confirmation) now pulse subtly via animate-pulse.
The pending set is derived from the existing optimisticAllocations
map keys, requiring no additional state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-09 13:28:46 +02:00
parent 7a5e98e2e9
commit 1df208dbcc
386 changed files with 657 additions and 81650 deletions
@@ -2,6 +2,7 @@
import { motion, AnimatePresence } from "framer-motion";
import { useEffect, useCallback, useRef, type ReactNode } from "react";
import { useFocusTrap } from "~/hooks/useFocusTrap.js";
interface AnimatedModalProps {
open: boolean;
@@ -24,6 +25,8 @@ export function AnimatedModal({
}: AnimatedModalProps) {
const panelRef = useRef<HTMLDivElement>(null);
useFocusTrap(panelRef, open);
const handleEscape = useCallback(
(e: KeyboardEvent) => {
if (e.key === "Escape") onClose();