feat(sticky): add StickyObject to scene format schema

This commit is contained in:
Hiren Kangad
2026-03-12 22:09:12 +05:30
parent 69fcab717c
commit 6ee6060600
2 changed files with 15 additions and 3 deletions
+2 -1
View File
@@ -24,6 +24,7 @@ import type {
TextObject, TextObject,
DrawingObject, DrawingObject,
GroupObject, GroupObject,
StickyObject,
SceneObject, SceneObject,
} from './scene-format'; } from './scene-format';
@@ -45,7 +46,7 @@ function isGifAsset(asset: string): boolean {
export interface SceneItem { export interface SceneItem {
id: string; id: string;
type: 'image' | 'video' | 'text' | 'drawing' | 'group'; type: 'image' | 'video' | 'text' | 'drawing' | 'group' | 'sticky';
displayObject: Container; displayObject: Container;
data: AnySceneObject; data: AnySceneObject;
} }
+13 -2
View File
@@ -4,7 +4,7 @@
export interface SceneObject { export interface SceneObject {
id: string; id: string;
type: 'image' | 'video' | 'text' | 'group' | 'drawing'; type: 'image' | 'video' | 'text' | 'group' | 'drawing' | 'sticky';
x: number; x: number;
y: number; y: number;
w: number; w: number;
@@ -73,7 +73,18 @@ export interface GroupObject extends SceneObject {
padding?: number; // inner padding around children (default 12) padding?: number; // inner padding around children (default 12)
} }
export type AnySceneObject = ImageObject | VideoObject | TextObject | DrawingObject | GroupObject; export interface StickyObject extends SceneObject {
type: 'sticky';
text: string;
fontSize: number;
fontFamily: string;
fill: string; // background/card color (e.g. '#ffd43b')
textColor: string; // text color (e.g. '#1a1a1a')
padding: number; // inner padding (default 16)
cornerRadius: number; // border radius (default 8)
}
export type AnySceneObject = ImageObject | VideoObject | TextObject | DrawingObject | GroupObject | StickyObject;
export interface SceneData { export interface SceneData {
v: 2; v: 2;