feat: masks, properties refactor, shaders, storage migrations, and more

This commit is contained in:
Maze Winther
2026-03-29 15:48:22 +02:00
parent 39ea298a9c
commit 8db3bead13
690 changed files with 35618 additions and 7337 deletions
+53
View File
@@ -0,0 +1,53 @@
import type { TScene } from "@/lib/timeline/types";
export type TBackground =
| {
type: "color";
color: string;
}
| {
type: "blur";
blurIntensity: number;
};
export interface TCanvasSize {
width: number;
height: number;
}
export interface TProjectMetadata {
id: string;
name: string;
thumbnail?: string;
duration: number;
createdAt: Date;
updatedAt: Date;
}
export interface TProjectSettings {
fps: number;
canvasSize: TCanvasSize;
canvasSizeMode?: "preset" | "custom";
lastCustomCanvasSize?: TCanvasSize | null;
originalCanvasSize?: TCanvasSize | null;
background: TBackground;
}
export interface TTimelineViewState {
zoomLevel: number;
scrollLeft: number;
playheadTime: number;
}
export interface TProject {
metadata: TProjectMetadata;
scenes: TScene[];
currentSceneId: string;
settings: TProjectSettings;
version: number;
timelineViewState?: TTimelineViewState;
}
export type TProjectSortKey = "createdAt" | "updatedAt" | "name" | "duration";
export type TSortOrder = "asc" | "desc";
export type TProjectSortOption = `${TProjectSortKey}-${TSortOrder}`;