fix(studio): remove motion tab from right panel (#1391)

The motion panel was behind a feature flag defaulting to false and never
shipped. Remove the tab button, MotionPanel component, feature flag,
and all associated wiring (EaseCurveEditor, SpringEaseEditor,
MotionPanelFields, MotionPathOverlay). The underlying motion data
infrastructure (studioMotion, studioMotionOps) remains intact for the
GSAP panel.

Co-authored-by: Miguel Ángel <miguelangelsisi098@gmail.com>
This commit is contained in:
Miguel Ángel
2026-06-12 16:37:05 -04:00
committed by GitHub
co-authored by Miguel Ángel
parent ad5229af83
commit d0a7f7d839
16 changed files with 9 additions and 1244 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ export interface AppToast {
tone: "error" | "info";
}
export type RightPanelTab = "layers" | "design" | "motion" | "renders" | "block-params";
export type RightPanelTab = "layers" | "design" | "renders" | "block-params";
export interface AgentModalAnchorPoint {
x: number;
@@ -159,7 +159,6 @@ describe("studio url state", () => {
it("normalizes url tabs against feature flags", () => {
expect(normalizeStudioUrlPanelTab("renders")).toBe("renders");
expect(normalizeStudioUrlPanelTab("layers", { inspectorPanelsEnabled: false })).toBe("renders");
expect(normalizeStudioUrlPanelTab("motion", { motionPanelEnabled: false })).toBe("design");
});
it("hydrates seek first, preserves the initial url state, then restores selection", async () => {
+2 -8
View File
@@ -1,9 +1,6 @@
import type { RightPanelTab } from "./studioHelpers";
import { buildProjectHash, parseProjectHashRoute } from "./projectRouting";
import {
STUDIO_INSPECTOR_PANELS_ENABLED,
STUDIO_MOTION_PANEL_ENABLED,
} from "../components/editor/manualEditingAvailability";
import { STUDIO_INSPECTOR_PANELS_ENABLED } from "../components/editor/manualEditingAvailability";
export interface StudioUrlSelectionState {
sourceFile?: string;
@@ -21,22 +18,19 @@ export interface StudioUrlState {
selection: StudioUrlSelectionState | null;
}
const VALID_TABS: RightPanelTab[] = ["layers", "design", "motion", "renders"];
const VALID_TABS: RightPanelTab[] = ["layers", "design", "renders"];
export function normalizeStudioUrlPanelTab(
tab: RightPanelTab | null,
options: {
inspectorPanelsEnabled?: boolean;
motionPanelEnabled?: boolean;
} = {},
): RightPanelTab | null {
if (!tab) return null;
if (!VALID_TABS.includes(tab)) return null;
const inspectorPanelsEnabled = options.inspectorPanelsEnabled ?? STUDIO_INSPECTOR_PANELS_ENABLED;
const motionPanelEnabled = options.motionPanelEnabled ?? STUDIO_MOTION_PANEL_ENABLED;
if (!inspectorPanelsEnabled && tab !== "renders") return "renders";
if (tab === "motion" && !motionPanelEnabled) return "design";
return tab;
}