Files
image-studio/input/read-model.ts
2026-07-11 12:31:06 +02:00

29 lines
931 B
TypeScript

import type { Rect, Size, Transform } from "@core/geometry";
export type InputLayerId = string;
export type InputArtboardId = string;
type InputBaseLayer = {
id: InputLayerId;
name?: string;
visible: boolean;
locked: boolean;
opacity?: number;
transform: Transform;
layerMask?: { maskLayerId: InputLayerId };
clippingMask?: { maskLayerId: InputLayerId };
};
export type InputLayer =
| (InputBaseLayer & { type: "group"; children: InputLayer[] })
| (InputBaseLayer & { type: "adjustment" })
| (InputBaseLayer & { type: "image" | "raster"; assetId: string });
export type InputDocument = {
id?: string;
name?: string;
version?: number;
assets: Array<{ id: string; name?: string; mimeType?: string; source?: string; intrinsicSize: Size }>;
artboards: Array<{ id: InputArtboardId; name?: string; backgroundColor?: string; visible: boolean; locked: boolean; bounds: Rect; layers: InputLayer[] }>;
};