+ {showTiming && (
+
+ )}
+ {showEffects && (
+ <>
+ {multipleTimelines && (
+
+ This file has multiple GSAP timelines. Animation editing is disabled to prevent data
+ loss — consolidate into a single timeline to enable editing.
+
+ )}
+ {unsupportedTimelinePattern && (
+
+ This timeline uses a computed key the editor can't resolve statically.
+
+ )}
+ {!multipleTimelines && !unsupportedTimelinePattern && (
+
+ {animations.map((anim, index) => (
+
+ ))}
+
+ {addMenuOpen ? (
+
+ {ADD_METHODS.map((method) => (
+ {
+ onAddAnimation(method);
+ setAddMenuOpen(false);
+ }}
+ className="rounded-lg border border-panel-border-input bg-panel-input px-2.5 py-1.5 text-[11px] font-medium text-panel-text-2 transition-colors hover:border-panel-text-4 hover:text-panel-text-0"
+ >
+ {ADD_METHOD_LABELS[method] ?? method}
+
+ ))}
+ setAddMenuOpen(false)}
+ className="px-1.5 text-[11px] text-panel-text-3 hover:text-panel-text-1"
+ >
+ Cancel
+
+
+ ) : (
+
setAddMenuOpen(true)}
+ className="text-[11px] font-medium text-panel-text-3 transition-colors hover:text-panel-text-1"
+ title="Add a new animation effect to this element"
+ >
+ + Add effect
+
+ )}
+
+
+ )}
+ >
+ )}
+
+ );
+}