codeboard-studio 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +23 -0
  3. package/README.md +54 -0
  4. package/dist/src/animation/camera-plane.d.ts +8 -0
  5. package/dist/src/animation/camera-plane.d.ts.map +1 -0
  6. package/dist/src/animation/camera-plane.js +16 -0
  7. package/dist/src/animation/camera-plane.js.map +1 -0
  8. package/dist/src/animation/drawing-neighbors.d.ts +4 -0
  9. package/dist/src/animation/drawing-neighbors.d.ts.map +1 -0
  10. package/dist/src/animation/drawing-neighbors.js +38 -0
  11. package/dist/src/animation/drawing-neighbors.js.map +1 -0
  12. package/dist/src/animation/evaluate.d.ts +17 -0
  13. package/dist/src/animation/evaluate.d.ts.map +1 -0
  14. package/dist/src/animation/evaluate.js +70 -0
  15. package/dist/src/animation/evaluate.js.map +1 -0
  16. package/dist/src/animation/frame.d.ts +8 -0
  17. package/dist/src/animation/frame.d.ts.map +1 -0
  18. package/dist/src/animation/frame.js +16 -0
  19. package/dist/src/animation/frame.js.map +1 -0
  20. package/dist/src/animation/ik.d.ts +26 -0
  21. package/dist/src/animation/ik.d.ts.map +1 -0
  22. package/dist/src/animation/ik.js +47 -0
  23. package/dist/src/animation/ik.js.map +1 -0
  24. package/dist/src/animation/retime.d.ts +4 -0
  25. package/dist/src/animation/retime.d.ts.map +1 -0
  26. package/dist/src/animation/retime.js +116 -0
  27. package/dist/src/animation/retime.js.map +1 -0
  28. package/dist/src/audio/wav.d.ts +11 -0
  29. package/dist/src/audio/wav.d.ts.map +1 -0
  30. package/dist/src/audio/wav.js +58 -0
  31. package/dist/src/audio/wav.js.map +1 -0
  32. package/dist/src/authoring-runner.d.ts +2 -0
  33. package/dist/src/authoring-runner.d.ts.map +1 -0
  34. package/dist/src/authoring-runner.js +24 -0
  35. package/dist/src/authoring-runner.js.map +1 -0
  36. package/dist/src/cli.d.ts +3 -0
  37. package/dist/src/cli.d.ts.map +1 -0
  38. package/dist/src/cli.js +127 -0
  39. package/dist/src/cli.js.map +1 -0
  40. package/dist/src/core/coordinates.d.ts +16 -0
  41. package/dist/src/core/coordinates.d.ts.map +1 -0
  42. package/dist/src/core/coordinates.js +48 -0
  43. package/dist/src/core/coordinates.js.map +1 -0
  44. package/dist/src/core/handles.d.ts +93 -0
  45. package/dist/src/core/handles.d.ts.map +1 -0
  46. package/dist/src/core/handles.js +190 -0
  47. package/dist/src/core/handles.js.map +1 -0
  48. package/dist/src/core/history.d.ts +14 -0
  49. package/dist/src/core/history.d.ts.map +1 -0
  50. package/dist/src/core/history.js +80 -0
  51. package/dist/src/core/history.js.map +1 -0
  52. package/dist/src/core/inspection.d.ts +51 -0
  53. package/dist/src/core/inspection.d.ts.map +1 -0
  54. package/dist/src/core/inspection.js +72 -0
  55. package/dist/src/core/inspection.js.map +1 -0
  56. package/dist/src/core/production.d.ts +208 -0
  57. package/dist/src/core/production.d.ts.map +1 -0
  58. package/dist/src/core/production.js +894 -0
  59. package/dist/src/core/production.js.map +1 -0
  60. package/dist/src/core/project.d.ts +146 -0
  61. package/dist/src/core/project.d.ts.map +1 -0
  62. package/dist/src/core/project.js +700 -0
  63. package/dist/src/core/project.js.map +1 -0
  64. package/dist/src/drawing/brush-authoring.d.ts +6 -0
  65. package/dist/src/drawing/brush-authoring.d.ts.map +1 -0
  66. package/dist/src/drawing/brush-authoring.js +12 -0
  67. package/dist/src/drawing/brush-authoring.js.map +1 -0
  68. package/dist/src/drawing/brushes.d.ts +157 -0
  69. package/dist/src/drawing/brushes.d.ts.map +1 -0
  70. package/dist/src/drawing/brushes.js +50 -0
  71. package/dist/src/drawing/brushes.js.map +1 -0
  72. package/dist/src/drawing/color.d.ts +5 -0
  73. package/dist/src/drawing/color.d.ts.map +1 -0
  74. package/dist/src/drawing/color.js +63 -0
  75. package/dist/src/drawing/color.js.map +1 -0
  76. package/dist/src/drawing/curves.d.ts +27 -0
  77. package/dist/src/drawing/curves.d.ts.map +1 -0
  78. package/dist/src/drawing/curves.js +170 -0
  79. package/dist/src/drawing/curves.js.map +1 -0
  80. package/dist/src/drawing/math.d.ts +10 -0
  81. package/dist/src/drawing/math.d.ts.map +1 -0
  82. package/dist/src/drawing/math.js +40 -0
  83. package/dist/src/drawing/math.js.map +1 -0
  84. package/dist/src/drawing/path-geometry.d.ts +18 -0
  85. package/dist/src/drawing/path-geometry.d.ts.map +1 -0
  86. package/dist/src/drawing/path-geometry.js +115 -0
  87. package/dist/src/drawing/path-geometry.js.map +1 -0
  88. package/dist/src/drawing/path-sampling.d.ts +10 -0
  89. package/dist/src/drawing/path-sampling.d.ts.map +1 -0
  90. package/dist/src/drawing/path-sampling.js +64 -0
  91. package/dist/src/drawing/path-sampling.js.map +1 -0
  92. package/dist/src/drawing/path.d.ts +4 -0
  93. package/dist/src/drawing/path.d.ts.map +1 -0
  94. package/dist/src/drawing/path.js +27 -0
  95. package/dist/src/drawing/path.js.map +1 -0
  96. package/dist/src/drawing/pen-input.d.ts +5 -0
  97. package/dist/src/drawing/pen-input.d.ts.map +1 -0
  98. package/dist/src/drawing/pen-input.js +30 -0
  99. package/dist/src/drawing/pen-input.js.map +1 -0
  100. package/dist/src/drawing/pixel-selection.d.ts +23 -0
  101. package/dist/src/drawing/pixel-selection.d.ts.map +1 -0
  102. package/dist/src/drawing/pixel-selection.js +142 -0
  103. package/dist/src/drawing/pixel-selection.js.map +1 -0
  104. package/dist/src/drawing/pixels.d.ts +22 -0
  105. package/dist/src/drawing/pixels.d.ts.map +1 -0
  106. package/dist/src/drawing/pixels.js +79 -0
  107. package/dist/src/drawing/pixels.js.map +1 -0
  108. package/dist/src/drawing/resource-binary.d.ts +23 -0
  109. package/dist/src/drawing/resource-binary.d.ts.map +1 -0
  110. package/dist/src/drawing/resource-binary.js +135 -0
  111. package/dist/src/drawing/resource-binary.js.map +1 -0
  112. package/dist/src/drawing/resources.d.ts +51 -0
  113. package/dist/src/drawing/resources.d.ts.map +1 -0
  114. package/dist/src/drawing/resources.js +239 -0
  115. package/dist/src/drawing/resources.js.map +1 -0
  116. package/dist/src/drawing/stroke-outline.d.ts +5 -0
  117. package/dist/src/drawing/stroke-outline.d.ts.map +1 -0
  118. package/dist/src/drawing/stroke-outline.js +53 -0
  119. package/dist/src/drawing/stroke-outline.js.map +1 -0
  120. package/dist/src/drawing/swatch.d.ts +6 -0
  121. package/dist/src/drawing/swatch.d.ts.map +1 -0
  122. package/dist/src/drawing/swatch.js +15 -0
  123. package/dist/src/drawing/swatch.js.map +1 -0
  124. package/dist/src/export/animatic-export.d.ts +11 -0
  125. package/dist/src/export/animatic-export.d.ts.map +1 -0
  126. package/dist/src/export/animatic-export.js +52 -0
  127. package/dist/src/export/animatic-export.js.map +1 -0
  128. package/dist/src/export/movie-export.d.ts +16 -0
  129. package/dist/src/export/movie-export.d.ts.map +1 -0
  130. package/dist/src/export/movie-export.js +108 -0
  131. package/dist/src/export/movie-export.js.map +1 -0
  132. package/dist/src/export/sheet-layout.d.ts +27 -0
  133. package/dist/src/export/sheet-layout.d.ts.map +1 -0
  134. package/dist/src/export/sheet-layout.js +72 -0
  135. package/dist/src/export/sheet-layout.js.map +1 -0
  136. package/dist/src/export/storyboard-export.d.ts +8 -0
  137. package/dist/src/export/storyboard-export.d.ts.map +1 -0
  138. package/dist/src/export/storyboard-export.js +76 -0
  139. package/dist/src/export/storyboard-export.js.map +1 -0
  140. package/dist/src/index.d.ts +36 -0
  141. package/dist/src/index.d.ts.map +1 -0
  142. package/dist/src/index.js +27 -0
  143. package/dist/src/index.js.map +1 -0
  144. package/dist/src/model/query.d.ts +6 -0
  145. package/dist/src/model/query.d.ts.map +1 -0
  146. package/dist/src/model/query.js +7 -0
  147. package/dist/src/model/query.js.map +1 -0
  148. package/dist/src/model/schema.d.ts +754 -0
  149. package/dist/src/model/schema.d.ts.map +1 -0
  150. package/dist/src/model/schema.js +205 -0
  151. package/dist/src/model/schema.js.map +1 -0
  152. package/dist/src/model/types.d.ts +537 -0
  153. package/dist/src/model/types.d.ts.map +1 -0
  154. package/dist/src/model/types.js +8 -0
  155. package/dist/src/model/types.js.map +1 -0
  156. package/dist/src/model/validate.d.ts +12 -0
  157. package/dist/src/model/validate.d.ts.map +1 -0
  158. package/dist/src/model/validate.js +183 -0
  159. package/dist/src/model/validate.js.map +1 -0
  160. package/dist/src/preview/server.d.ts +6 -0
  161. package/dist/src/preview/server.d.ts.map +1 -0
  162. package/dist/src/preview/server.js +71 -0
  163. package/dist/src/preview/server.js.map +1 -0
  164. package/dist/src/render/annotations.d.ts +4 -0
  165. package/dist/src/render/annotations.d.ts.map +1 -0
  166. package/dist/src/render/annotations.js +27 -0
  167. package/dist/src/render/annotations.js.map +1 -0
  168. package/dist/src/render/brush-engine.d.ts +14 -0
  169. package/dist/src/render/brush-engine.d.ts.map +1 -0
  170. package/dist/src/render/brush-engine.js +230 -0
  171. package/dist/src/render/brush-engine.js.map +1 -0
  172. package/dist/src/render/layer-compositor.d.ts +33 -0
  173. package/dist/src/render/layer-compositor.d.ts.map +1 -0
  174. package/dist/src/render/layer-compositor.js +296 -0
  175. package/dist/src/render/layer-compositor.js.map +1 -0
  176. package/dist/src/render/panel-renderer.d.ts +33 -0
  177. package/dist/src/render/panel-renderer.d.ts.map +1 -0
  178. package/dist/src/render/panel-renderer.js +118 -0
  179. package/dist/src/render/panel-renderer.js.map +1 -0
  180. package/dist/src/render/png.d.ts +4 -0
  181. package/dist/src/render/png.d.ts.map +1 -0
  182. package/dist/src/render/png.js +10 -0
  183. package/dist/src/render/png.js.map +1 -0
  184. package/dist/src/render/review.d.ts +42 -0
  185. package/dist/src/render/review.d.ts.map +1 -0
  186. package/dist/src/render/review.js +192 -0
  187. package/dist/src/render/review.js.map +1 -0
  188. package/dist/src/render/vector-renderer.d.ts +5 -0
  189. package/dist/src/render/vector-renderer.d.ts.map +1 -0
  190. package/dist/src/render/vector-renderer.js +98 -0
  191. package/dist/src/render/vector-renderer.js.map +1 -0
  192. package/dist/src/starter.d.ts +2 -0
  193. package/dist/src/starter.d.ts.map +1 -0
  194. package/dist/src/starter.js +23 -0
  195. package/dist/src/starter.js.map +1 -0
  196. package/dist/src/storage/codec.d.ts +20 -0
  197. package/dist/src/storage/codec.d.ts.map +1 -0
  198. package/dist/src/storage/codec.js +203 -0
  199. package/dist/src/storage/codec.js.map +1 -0
  200. package/dist/src/storage/store.d.ts +89 -0
  201. package/dist/src/storage/store.d.ts.map +1 -0
  202. package/dist/src/storage/store.js +392 -0
  203. package/dist/src/storage/store.js.map +1 -0
  204. package/dist/src/updates.d.ts +10 -0
  205. package/dist/src/updates.d.ts.map +1 -0
  206. package/dist/src/updates.js +134 -0
  207. package/dist/src/updates.js.map +1 -0
  208. package/package.json +84 -0
@@ -0,0 +1,537 @@
1
+ export type Id = string;
2
+ export interface PageOptions {
3
+ limit?: number;
4
+ offset?: number;
5
+ }
6
+ export interface ObjectQuery extends PageOptions {
7
+ name?: string;
8
+ kind?: string;
9
+ panelId?: Id;
10
+ }
11
+ export interface ObjectSummary {
12
+ id: Id;
13
+ kind: string;
14
+ name: string;
15
+ panelId?: Id;
16
+ parentId?: Id;
17
+ }
18
+ export type AffineMatrix = [number, number, number, number, number, number];
19
+ interface ElementPlacement {
20
+ matrix?: AffineMatrix;
21
+ }
22
+ export interface Point {
23
+ x: number;
24
+ y: number;
25
+ pressure?: number;
26
+ time?: number;
27
+ tiltX?: number;
28
+ tiltY?: number;
29
+ rotation?: number;
30
+ }
31
+ export interface Transform {
32
+ x: number;
33
+ y: number;
34
+ scaleX: number;
35
+ scaleY: number;
36
+ rotation: number;
37
+ }
38
+ export interface Pivot {
39
+ x: number;
40
+ y: number;
41
+ }
42
+ export type BlendMode = "source-over" | "multiply" | "screen" | "overlay" | "darken" | "lighten";
43
+ export type TextureKind = "none" | "graphite" | "charcoal" | "dry-brush";
44
+ export interface BrushDynamics {
45
+ pressureSize: number;
46
+ pressureOpacity: number;
47
+ speedSize: number;
48
+ speedOpacity: number;
49
+ tiltShape: number;
50
+ pressureSpacing: number;
51
+ pressureHardness: number;
52
+ rotationJitter: number;
53
+ }
54
+ export type BrushTip = {
55
+ kind: "round" | "ellipse" | "chisel" | "rake";
56
+ aspect: number;
57
+ angle: number;
58
+ rotationMode: "fixed" | "stroke" | "stylus";
59
+ } | {
60
+ kind: "bitmap";
61
+ width: number;
62
+ height: number;
63
+ alpha: number[];
64
+ angle: number;
65
+ rotationMode: "fixed" | "stroke" | "stylus";
66
+ sourceAssetId?: Id;
67
+ };
68
+ export interface BrushPreset {
69
+ provenance?: {
70
+ source: string;
71
+ author?: string;
72
+ license: string;
73
+ redistribution: "allowed" | "unknown" | "forbidden";
74
+ resourceChecksum: string;
75
+ };
76
+ paperTexture?: {
77
+ width: number;
78
+ height: number;
79
+ alpha: number[];
80
+ scale: number;
81
+ strength: number;
82
+ };
83
+ id: Id;
84
+ name: string;
85
+ version: number;
86
+ tip: BrushTip;
87
+ size: number;
88
+ opacity: number;
89
+ flow: number;
90
+ hardness: number;
91
+ spacing: number;
92
+ taperStart: number;
93
+ taperEnd: number;
94
+ texture: TextureKind;
95
+ textureStrength: number;
96
+ dynamics: BrushDynamics;
97
+ }
98
+ export interface RasterStroke extends ElementPlacement {
99
+ /** Global timeline frames: blank at startFrame, complete at endFrame. */
100
+ reveal?: {
101
+ startFrame: number;
102
+ endFrame: number;
103
+ };
104
+ kind: "raster-stroke";
105
+ id: Id;
106
+ name?: string;
107
+ points: Point[];
108
+ brush: BrushPreset;
109
+ color: string;
110
+ opacity: number;
111
+ erase: boolean;
112
+ seed: number;
113
+ visible: boolean;
114
+ }
115
+ export interface PixelBuffer {
116
+ width: number;
117
+ height: number;
118
+ pixels: Uint8Array;
119
+ }
120
+ export interface PixelRegion {
121
+ x: number;
122
+ y: number;
123
+ width: number;
124
+ height: number;
125
+ }
126
+ /** Straight-alpha, sRGB RGBA8 pixels; matrix maps source pixels into layer coordinates. */
127
+ export interface RasterSurface extends PixelBuffer {
128
+ kind: "raster-surface";
129
+ id: Id;
130
+ name?: string;
131
+ matrix: AffineMatrix;
132
+ opacity: number;
133
+ visible: boolean;
134
+ }
135
+ export interface VectorStroke extends ElementPlacement {
136
+ kind: "vector-stroke";
137
+ id: Id;
138
+ name?: string;
139
+ points: Point[];
140
+ color: string;
141
+ width: number;
142
+ opacity: number;
143
+ taperStart: number;
144
+ taperEnd: number;
145
+ pressureSize: number;
146
+ closed: boolean;
147
+ fill?: string;
148
+ visible: boolean;
149
+ }
150
+ export type VectorFill = string | {
151
+ kind: "linear";
152
+ from: {
153
+ x: number;
154
+ y: number;
155
+ };
156
+ to: {
157
+ x: number;
158
+ y: number;
159
+ };
160
+ stops: {
161
+ offset: number;
162
+ color: string;
163
+ }[];
164
+ } | {
165
+ kind: "radial";
166
+ from: {
167
+ x: number;
168
+ y: number;
169
+ radius: number;
170
+ };
171
+ to: {
172
+ x: number;
173
+ y: number;
174
+ radius: number;
175
+ };
176
+ stops: {
177
+ offset: number;
178
+ color: string;
179
+ }[];
180
+ };
181
+ export interface VectorPath extends ElementPlacement {
182
+ kind: "vector-path";
183
+ id: Id;
184
+ name?: string;
185
+ commands: PathCommand[];
186
+ fill?: VectorFill;
187
+ stroke?: string;
188
+ strokeWidth: number;
189
+ opacity: number;
190
+ visible: boolean;
191
+ }
192
+ export interface TextElement extends ElementPlacement {
193
+ kind: "text";
194
+ id: Id;
195
+ name?: string;
196
+ x: number;
197
+ y: number;
198
+ text: string;
199
+ color: string;
200
+ font: string;
201
+ align: "left" | "center" | "right";
202
+ opacity: number;
203
+ visible: boolean;
204
+ }
205
+ export type PathCommand = {
206
+ op: "M" | "L";
207
+ x: number;
208
+ y: number;
209
+ } | {
210
+ op: "C";
211
+ x1: number;
212
+ y1: number;
213
+ x2: number;
214
+ y2: number;
215
+ x: number;
216
+ y: number;
217
+ } | {
218
+ op: "Q";
219
+ x1: number;
220
+ y1: number;
221
+ x: number;
222
+ y: number;
223
+ } | {
224
+ op: "Z";
225
+ };
226
+ export type DrawingElement = RasterStroke | RasterSurface | VectorStroke | VectorPath | TextElement;
227
+ export type NewDrawingElement = (Omit<RasterStroke, "id"> & {
228
+ id?: Id;
229
+ }) | (Omit<RasterSurface, "id"> & {
230
+ id?: Id;
231
+ }) | (Omit<VectorStroke, "id"> & {
232
+ id?: Id;
233
+ }) | (Omit<VectorPath, "id"> & {
234
+ id?: Id;
235
+ }) | (Omit<TextElement, "id"> & {
236
+ id?: Id;
237
+ });
238
+ interface LayerBase {
239
+ pivot?: Pivot;
240
+ componentSource?: {
241
+ id: Id;
242
+ version: number;
243
+ };
244
+ id: Id;
245
+ name: string;
246
+ visible: boolean;
247
+ opacity: number;
248
+ blendMode: BlendMode;
249
+ transform: Transform;
250
+ maskLayerId?: Id;
251
+ clipToBelow: boolean;
252
+ keyframes: LayerKeyframe[];
253
+ depth: number;
254
+ exposure: {
255
+ startFrame: number;
256
+ endFrame: number;
257
+ } | null;
258
+ }
259
+ export interface DrawingLayer extends LayerBase {
260
+ kind: "raster" | "vector";
261
+ elements: DrawingElement[];
262
+ }
263
+ export interface GroupLayer extends LayerBase {
264
+ kind: "group";
265
+ children: Layer[];
266
+ drawingSequence?: DrawingExposure[];
267
+ twoBoneRig?: TwoBoneRig;
268
+ }
269
+ export interface TwoBoneRig {
270
+ elbowId: Id;
271
+ upperLength: number;
272
+ lowerLength: number;
273
+ }
274
+ export interface DrawingExposure {
275
+ frame: number;
276
+ drawingId: Id | null;
277
+ }
278
+ export interface DrawingInterval {
279
+ startFrame: number;
280
+ endFrame: number;
281
+ drawingId: Id | null;
282
+ }
283
+ export interface DrawingNeighbors {
284
+ current: DrawingInterval;
285
+ previous: DrawingInterval | null;
286
+ next: DrawingInterval | null;
287
+ }
288
+ export type Layer = DrawingLayer | GroupLayer;
289
+ export type LayerChanges = Partial<Pick<Layer, "name" | "visible" | "opacity" | "blendMode" | "transform" | "clipToBelow" | "pivot">> & {
290
+ maskLayerId?: Id | null;
291
+ };
292
+ export interface MotionAnnotation {
293
+ id: Id;
294
+ label: string;
295
+ from: Point;
296
+ to: Point;
297
+ color: string;
298
+ }
299
+ export interface Panel {
300
+ id: Id;
301
+ shotId: Id;
302
+ number: string;
303
+ title: string;
304
+ width: number;
305
+ height: number;
306
+ durationFrames: number;
307
+ startFrame: number;
308
+ transition: Transition;
309
+ status: "working" | "review" | "approved";
310
+ action: string;
311
+ dialogue: string;
312
+ camera: string;
313
+ notes: string;
314
+ layers: Layer[];
315
+ motion: MotionAnnotation[];
316
+ revision: number;
317
+ }
318
+ export interface Shot {
319
+ id: Id;
320
+ sceneId: Id;
321
+ name: string;
322
+ panelIds: Id[];
323
+ cameraKeyframes: CameraKeyframe[];
324
+ }
325
+ export interface Scene {
326
+ sequenceId: Id;
327
+ id: Id;
328
+ name: string;
329
+ shotIds: Id[];
330
+ }
331
+ export interface Sequence {
332
+ id: Id;
333
+ name: string;
334
+ sceneIds: Id[];
335
+ }
336
+ export interface StoryboardDocument {
337
+ components: DrawingComponent[];
338
+ schemaVersion: 3;
339
+ version: number;
340
+ id: Id;
341
+ title: string;
342
+ author?: string;
343
+ createdAt: string;
344
+ updatedAt: string;
345
+ canvas: {
346
+ width: number;
347
+ height: number;
348
+ background: string;
349
+ };
350
+ seed: number;
351
+ frameRate: number;
352
+ idCounter: number;
353
+ scenes: Scene[];
354
+ sequences: Sequence[];
355
+ shots: Shot[];
356
+ panels: Panel[];
357
+ brushes: BrushPreset[];
358
+ assets: Asset[];
359
+ audioTracks: AudioTrack[];
360
+ comments: ReviewComment[];
361
+ locks: ProjectLock[];
362
+ changes: ChangeEntry[];
363
+ metadata: Record<string, string>;
364
+ }
365
+ export interface DrawingComponent {
366
+ id: Id;
367
+ name: string;
368
+ version: number;
369
+ layers: Layer[];
370
+ }
371
+ export interface ProjectOptions {
372
+ id?: Id;
373
+ title: string;
374
+ author?: string;
375
+ width?: number;
376
+ height?: number;
377
+ background?: string;
378
+ seed?: number;
379
+ frameRate?: number;
380
+ }
381
+ export interface PanelOptions {
382
+ id?: Id;
383
+ number?: string;
384
+ title?: string;
385
+ width?: number;
386
+ height?: number;
387
+ durationFrames?: number;
388
+ action?: string;
389
+ dialogue?: string;
390
+ camera?: string;
391
+ notes?: string;
392
+ }
393
+ export interface LayerOptions {
394
+ pivot?: Pivot;
395
+ depth?: number;
396
+ exposure?: {
397
+ startFrame: number;
398
+ endFrame: number;
399
+ };
400
+ id?: Id;
401
+ opacity?: number;
402
+ blendMode?: BlendMode;
403
+ transform?: Partial<Transform>;
404
+ maskLayerId?: Id;
405
+ clipToBelow?: boolean;
406
+ visible?: boolean;
407
+ }
408
+ export interface StrokeOptions {
409
+ reveal?: {
410
+ startFrame: number;
411
+ endFrame: number;
412
+ };
413
+ id?: Id;
414
+ name?: string;
415
+ color?: string;
416
+ opacity?: number;
417
+ erase?: boolean;
418
+ seed?: number;
419
+ }
420
+ export interface VectorStrokeOptions extends StrokeOptions {
421
+ width?: number;
422
+ taperStart?: number;
423
+ taperEnd?: number;
424
+ pressureSize?: number;
425
+ closed?: boolean;
426
+ fill?: string;
427
+ }
428
+ export interface SheetOptions {
429
+ columns?: number;
430
+ rows?: number;
431
+ pageWidth?: number;
432
+ pageHeight?: number;
433
+ margin?: number;
434
+ gutter?: number;
435
+ captionHeight?: number;
436
+ }
437
+ export interface Transition {
438
+ type: "cut" | "dissolve" | "wipe-left" | "wipe-right";
439
+ durationFrames: number;
440
+ }
441
+ export type Easing = "linear" | "ease-in-out" | "hold" | {
442
+ type: "cubic-bezier";
443
+ x1: number;
444
+ y1: number;
445
+ x2: number;
446
+ y2: number;
447
+ };
448
+ export type CameraChannel = "x" | "y" | "zoom" | "rotation";
449
+ export interface CameraKeyframe {
450
+ id: Id;
451
+ frame: number;
452
+ x?: number;
453
+ y?: number;
454
+ zoom?: number;
455
+ rotation?: number;
456
+ easing: Easing;
457
+ channelEasing?: Partial<Record<CameraChannel, Easing>>;
458
+ }
459
+ export interface LayerKeyframe {
460
+ id: Id;
461
+ frame: number;
462
+ transform: Partial<Transform>;
463
+ opacity?: number;
464
+ depth?: number;
465
+ easing: Easing;
466
+ channelEasing?: Partial<Record<LayerChannel, Easing>>;
467
+ }
468
+ export type LayerChannel = keyof Transform | "opacity" | "depth";
469
+ export interface Asset {
470
+ id: Id;
471
+ kind: "image" | "audio";
472
+ name: string;
473
+ path: string;
474
+ mimeType: string;
475
+ source: "linked" | "managed";
476
+ checksum?: string;
477
+ }
478
+ export interface AudioClip {
479
+ id: Id;
480
+ assetId: Id;
481
+ name: string;
482
+ startFrame: number;
483
+ sourceInFrame: number;
484
+ durationFrames: number;
485
+ volume: number;
486
+ fadeInFrames: number;
487
+ fadeOutFrames: number;
488
+ }
489
+ export interface AudioTrack {
490
+ id: Id;
491
+ name: string;
492
+ muted: boolean;
493
+ locked: boolean;
494
+ clips: AudioClip[];
495
+ }
496
+ export interface AudioTrackSummary extends Omit<AudioTrack, "clips"> {
497
+ clipCount: number;
498
+ }
499
+ export interface AudioClipQuery extends PageOptions {
500
+ frame?: number;
501
+ assetId?: Id;
502
+ }
503
+ export interface ReviewComment {
504
+ id: Id;
505
+ author: string;
506
+ body: string;
507
+ status: "open" | "resolved";
508
+ anchor: {
509
+ panelId?: Id;
510
+ layerId?: Id;
511
+ elementId?: Id;
512
+ frame?: number;
513
+ x?: number;
514
+ y?: number;
515
+ };
516
+ createdAt: string;
517
+ resolvedAt?: string;
518
+ }
519
+ export interface ProjectLock {
520
+ id: Id;
521
+ targetType: "project" | "panel" | "layer";
522
+ targetId: Id;
523
+ owner: string;
524
+ reason: string;
525
+ createdAt: string;
526
+ }
527
+ export interface ChangeEntry {
528
+ id: Id;
529
+ version: number;
530
+ actor: string;
531
+ operation: string;
532
+ targetIds: Id[];
533
+ timestamp: string;
534
+ }
535
+ export declare const identityTransform: () => Transform;
536
+ export {};
537
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/model/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export const identityTransform = () => ({
2
+ x: 0,
3
+ y: 0,
4
+ scaleX: 1,
5
+ scaleY: 1,
6
+ rotation: 0,
7
+ });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/model/types.ts"],"names":[],"mappings":"AA+aA,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAc,EAAE,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;CACZ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AudioClip, BrushPreset, GroupLayer, Layer, StoryboardDocument } from "./types.js";
2
+ export declare function parseBrushDefinition(input: unknown): BrushPreset;
3
+ export declare function parseStoryboardDocument(input: unknown): StoryboardDocument;
4
+ export declare function validateAudioFades(clip: AudioClip): void;
5
+ export declare function validateLayerDependencies(layers: ReadonlyMap<string, Layer>): void;
6
+ export declare function validateKeyframePositions(items: {
7
+ frame: number;
8
+ }[], owner: string): void;
9
+ export declare function validateDrawingSequence(layer: GroupLayer): void;
10
+ export declare function validateRelationships(d: StoryboardDocument): void;
11
+ export declare function assertUniqueIds(document: StoryboardDocument): void;
12
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/model/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhG,wBAAgB,oBAAoB,CAAC,KAAK,EAAC,OAAO,GAAE,WAAW,CAI9D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,OAAO,GAAE,kBAAkB,CAKxE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAC,SAAS,GAAE,IAAI,CAEtD;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAC,WAAW,CAAC,MAAM,EAAC,KAAK,CAAC,GAAE,IAAI,CAa/E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAC;IAAC,KAAK,EAAC,MAAM,CAAA;CAAC,EAAE,EAAC,KAAK,EAAC,MAAM,GAAE,IAAI,CAElF;AAQD,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,UAAU,GAAE,IAAI,CAM7D;AAoBD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAuCjE;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAuBlE"}