feat: add PdfPageObject type to scene format

This commit is contained in:
Hiren Kangad
2026-03-14 11:19:04 +05:30
parent 247145f545
commit 3511c54658
2 changed files with 15 additions and 3 deletions
+1 -1
View File
@@ -58,7 +58,7 @@ function isGifAsset(asset: string): boolean {
export interface SceneItem { export interface SceneItem {
id: string; id: string;
type: 'image' | 'video' | 'text' | 'drawing' | 'group' | 'sticky' | 'markdown'; type: 'image' | 'video' | 'text' | 'drawing' | 'group' | 'sticky' | 'markdown' | 'pdf-page';
displayObject: Container; displayObject: Container;
data: AnySceneObject; data: AnySceneObject;
} }
+14 -2
View File
@@ -4,7 +4,7 @@
export interface SceneObject { export interface SceneObject {
id: string; id: string;
type: 'image' | 'video' | 'text' | 'group' | 'drawing' | 'sticky' | 'markdown'; type: 'image' | 'video' | 'text' | 'group' | 'drawing' | 'sticky' | 'markdown' | 'pdf-page';
x: number; x: number;
y: number; y: number;
w: number; w: number;
@@ -94,7 +94,19 @@ export interface MarkdownObject extends SceneObject {
cornerRadius: number; // border radius, default 10 cornerRadius: number; // border radius, default 10
} }
export type AnySceneObject = ImageObject | VideoObject | TextObject | DrawingObject | GroupObject | StickyObject | MarkdownObject; export interface PdfPageObject extends SceneObject {
type: 'pdf-page';
asset: string | null; // high-res asset key — null until pdf-hires job completes
thumb: string | null; // thumbnail asset key — null until pdf-thumbnail job completes
pdfImageId: string; // source PDF's image ID
pdfName: string; // original filename
pageNumber: number; // 1-indexed
pageCount: number; // total pages in source PDF
nativeW: number; // pixel dimensions at 200 DPI
nativeH: number;
}
export type AnySceneObject = ImageObject | VideoObject | TextObject | DrawingObject | GroupObject | StickyObject | MarkdownObject | PdfPageObject;
export interface SceneData { export interface SceneData {
v: 2; v: 2;