@shotstack/shotstack-studio 1.2.2 → 1.3.0

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 (30) hide show
  1. package/dist/core/entities/{player.d.ts → base/player.d.ts} +3 -3
  2. package/dist/core/entities/index.d.ts +14 -0
  3. package/dist/core/entities/{audio-player.d.ts → players/audio-player.d.ts} +4 -4
  4. package/dist/core/entities/{html-player.d.ts → players/html-player.d.ts} +4 -4
  5. package/dist/core/entities/{image-player.d.ts → players/image-player.d.ts} +4 -4
  6. package/dist/core/entities/{luma-player.d.ts → players/luma-player.d.ts} +4 -4
  7. package/dist/core/entities/{shape-player.d.ts → players/shape-player.d.ts} +4 -4
  8. package/dist/core/entities/players/text-player.d.ts +19 -0
  9. package/dist/core/entities/{video-player.d.ts → players/video-player.d.ts} +4 -4
  10. package/dist/core/entities/{edit.d.ts → system/edit.d.ts} +7 -7
  11. package/dist/core/entities/{inspector.d.ts → system/inspector.d.ts} +1 -1
  12. package/dist/core/entities/text/text-cursor.d.ts +47 -0
  13. package/dist/core/entities/text/text-editor.d.ts +43 -0
  14. package/dist/core/entities/text/text-input-handler.d.ts +54 -0
  15. package/dist/core/export/video-exporter.d.ts +1 -1
  16. package/dist/core/inputs/controls.d.ts +1 -1
  17. package/dist/core/schemas/asset.d.ts +6 -10
  18. package/dist/core/schemas/audio-asset.d.ts +6 -10
  19. package/dist/core/schemas/clip.d.ts +21 -35
  20. package/dist/core/schemas/edit.d.ts +42 -70
  21. package/dist/core/schemas/track.d.ts +21 -35
  22. package/dist/core/schemas/video-asset.d.ts +6 -10
  23. package/dist/core/shotstack-canvas.d.ts +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/shotstack-studio.es.js +2451 -2032
  26. package/dist/shotstack-studio.umd.js +8 -6
  27. package/package.json +1 -1
  28. package/readme.md +7 -6
  29. package/dist/core/entities/text-player.d.ts +0 -18
  30. /package/dist/core/entities/{entity.d.ts → base/entity.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
- import { type Size, type Vector } from "../layouts/geometry";
2
- import { type Clip } from "../schemas/clip";
3
- import { type Edit } from "./edit";
1
+ import { type Size, type Vector } from "../../layouts/geometry";
2
+ import { type Clip } from "../../schemas/clip";
3
+ import { type Edit } from "../system/edit";
4
4
  import { Entity } from "./entity";
5
5
  /**
6
6
  * TODO: Move handles on UI level (screen space)
@@ -0,0 +1,14 @@
1
+ export { Entity } from './base/entity';
2
+ export { Player } from './base/player';
3
+ export { AudioPlayer } from './players/audio-player';
4
+ export { HtmlPlayer } from './players/html-player';
5
+ export { ImagePlayer } from './players/image-player';
6
+ export { LumaPlayer } from './players/luma-player';
7
+ export { ShapePlayer } from './players/shape-player';
8
+ export { TextPlayer } from './players/text-player';
9
+ export { VideoPlayer } from './players/video-player';
10
+ export { TextCursor } from './text/text-cursor';
11
+ export { TextEditor } from './text/text-editor';
12
+ export { TextInputHandler } from './text/text-input-handler';
13
+ export { Edit } from './system/edit';
14
+ export { Inspector } from './system/inspector';
@@ -1,7 +1,7 @@
1
- import { type Size } from "../layouts/geometry";
2
- import { type Clip } from "../schemas/clip";
3
- import type { Edit } from "./edit";
4
- import { Player } from "./player";
1
+ import { type Size } from "../../layouts/geometry";
2
+ import { type Clip } from "../../schemas/clip";
3
+ import { Player } from "../base/player";
4
+ import type { Edit } from "../system/edit";
5
5
  export declare class AudioPlayer extends Player {
6
6
  private audioResource;
7
7
  private isPlaying;
@@ -1,7 +1,7 @@
1
- import { type Size } from "../layouts/geometry";
2
- import { type Clip } from "../schemas/clip";
3
- import type { Edit } from "./edit";
4
- import { Player } from "./player";
1
+ import { type Size } from "../../layouts/geometry";
2
+ import { type Clip } from "../../schemas/clip";
3
+ import { Player } from "../base/player";
4
+ import type { Edit } from "../system/edit";
5
5
  export declare class HtmlPlayer extends Player {
6
6
  private background;
7
7
  private text;
@@ -1,7 +1,7 @@
1
- import { type Size } from "../layouts/geometry";
2
- import { type Clip } from "../schemas/clip";
3
- import type { Edit } from "./edit";
4
- import { Player } from "./player";
1
+ import { type Size } from "../../layouts/geometry";
2
+ import { type Clip } from "../../schemas/clip";
3
+ import { Player } from "../base/player";
4
+ import type { Edit } from "../system/edit";
5
5
  export declare class ImagePlayer extends Player {
6
6
  private texture;
7
7
  private sprite;
@@ -1,8 +1,8 @@
1
1
  import * as pixi from "pixi.js";
2
- import { type Size } from "../layouts/geometry";
3
- import { type Clip } from "../schemas/clip";
4
- import type { Edit } from "./edit";
5
- import { Player } from "./player";
2
+ import { type Size } from "../../layouts/geometry";
3
+ import { type Clip } from "../../schemas/clip";
4
+ import { Player } from "../base/player";
5
+ import type { Edit } from "../system/edit";
6
6
  export declare class LumaPlayer extends Player {
7
7
  private texture;
8
8
  private sprite;
@@ -1,7 +1,7 @@
1
- import { type Size } from "../layouts/geometry";
2
- import { type Clip } from "../schemas/clip";
3
- import type { Edit } from "./edit";
4
- import { Player } from "./player";
1
+ import { type Size } from "../../layouts/geometry";
2
+ import { type Clip } from "../../schemas/clip";
3
+ import { Player } from "../base/player";
4
+ import type { Edit } from "../system/edit";
5
5
  export declare class ShapePlayer extends Player {
6
6
  private shape;
7
7
  private shapeBackground;
@@ -0,0 +1,19 @@
1
+ import { Player } from "@entities/base/player";
2
+ import { type Size } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
4
+ /**
5
+ * TextPlayer renders and manages editable text elements in the canvas
6
+ */
7
+ export declare class TextPlayer extends Player {
8
+ private background;
9
+ private text;
10
+ private textEditor;
11
+ load(): Promise<void>;
12
+ update(deltaTime: number, elapsed: number): void;
13
+ dispose(): void;
14
+ getSize(): Size;
15
+ protected getFitScale(): number;
16
+ private createTextStyle;
17
+ private positionText;
18
+ updateTextContent(newText: string, initialConfig: Clip): void;
19
+ }
@@ -1,7 +1,7 @@
1
- import { type Size } from "../layouts/geometry";
2
- import { type Clip } from "../schemas/clip";
3
- import type { Edit } from "./edit";
4
- import { Player } from "./player";
1
+ import { type Size } from "../../layouts/geometry";
2
+ import { type Clip } from "../../schemas/clip";
3
+ import { Player } from "../base/player";
4
+ import type { Edit } from "../system/edit";
5
5
  export declare class VideoPlayer extends Player {
6
6
  private texture;
7
7
  private sprite;
@@ -1,11 +1,11 @@
1
1
  import { z } from "zod";
2
- import { EventEmitter } from "../events/event-emitter";
3
- import type { Size } from "../layouts/geometry";
4
- import { AssetLoader } from "../loaders/asset-loader";
5
- import { ClipSchema } from "../schemas/clip";
6
- import { EditSchema } from "../schemas/edit";
7
- import { TrackSchema } from "../schemas/track";
8
- import { Entity } from "./entity";
2
+ import { EventEmitter } from "../../events/event-emitter";
3
+ import type { Size } from "../../layouts/geometry";
4
+ import { AssetLoader } from "../../loaders/asset-loader";
5
+ import { ClipSchema } from "../../schemas/clip";
6
+ import { EditSchema } from "../../schemas/edit";
7
+ import { TrackSchema } from "../../schemas/track";
8
+ import { Entity } from "../base/entity";
9
9
  type EditType = z.infer<typeof EditSchema>;
10
10
  type ClipType = z.infer<typeof ClipSchema>;
11
11
  type TrackType = z.infer<typeof TrackSchema>;
@@ -1,4 +1,4 @@
1
- import { Entity } from "./entity";
1
+ import { Entity } from "../base/entity";
2
2
  export declare class Inspector extends Entity {
3
3
  private static readonly Width;
4
4
  private static readonly Height;
@@ -0,0 +1,47 @@
1
+ import { type Clip } from "@schemas/clip";
2
+ import * as pixi from "pixi.js";
3
+ type TextCursorOptions = {
4
+ width?: number;
5
+ color?: number;
6
+ blinkInterval?: number;
7
+ };
8
+ export declare class TextCursor {
9
+ private static readonly DEFAULT_BLINK_INTERVAL_MS;
10
+ private static readonly DEFAULT_CURSOR_WIDTH_PX;
11
+ private static readonly DEFAULT_CURSOR_COLOR;
12
+ private cursor;
13
+ private parent;
14
+ private textElement;
15
+ private clipConfig;
16
+ private textPosition;
17
+ private pixelX;
18
+ private pixelY;
19
+ private currentLine;
20
+ private isBlinking;
21
+ private blinkInterval;
22
+ private blinkIntervalMs;
23
+ private width;
24
+ private color;
25
+ private isVisible;
26
+ constructor(parent: pixi.Container, textElement: pixi.Text, clipConfig: Clip, options?: TextCursorOptions);
27
+ updatePosition(textPosition: number): void;
28
+ setPosition(x: number, y: number): void;
29
+ show(): void;
30
+ hide(): void;
31
+ setVisible(visible: boolean): void;
32
+ startBlinking(): void;
33
+ stopBlinking(): void;
34
+ setBlinkInterval(intervalMs: number): void;
35
+ dispose(): void;
36
+ private createCursor;
37
+ private validateTextPosition;
38
+ private calculateAndApplyPixelPosition;
39
+ private calculatePixelPositionFromText;
40
+ private updateGraphicsPosition;
41
+ private startBlinkingAnimation;
42
+ private stopBlinkingAnimation;
43
+ private measureText;
44
+ isInitialized(): boolean;
45
+ getState(): object;
46
+ }
47
+ export {};
@@ -0,0 +1,43 @@
1
+ import type { TextPlayer } from "@entities/players/text-player";
2
+ import { type Clip } from "@schemas/clip";
3
+ import * as pixi from "pixi.js";
4
+ export declare enum HorizontalAlignment {
5
+ LEFT = "left",
6
+ CENTER = "center",
7
+ RIGHT = "right"
8
+ }
9
+ export declare enum VerticalAlignment {
10
+ TOP = "top",
11
+ CENTER = "center",
12
+ BOTTOM = "bottom"
13
+ }
14
+ export declare class TextEditor {
15
+ private static readonly DOUBLE_CLICK_THRESHOLD_MS;
16
+ private static readonly EDITING_BG_PADDING_PX;
17
+ private static readonly EDITING_BG_ALPHA;
18
+ private static readonly CLICK_HANDLER_DELAY_MS;
19
+ private parent;
20
+ private targetText;
21
+ private clipConfig;
22
+ private isEditing;
23
+ private lastClickTime;
24
+ private editingContainer;
25
+ private editableText;
26
+ private textCursor;
27
+ private textInputHandler;
28
+ private outsideClickHandler;
29
+ constructor(parent: TextPlayer, targetText: pixi.Text, clipConfig: Clip);
30
+ dispose(): void;
31
+ private startEditing;
32
+ private stopEditing;
33
+ private checkForDoubleClick;
34
+ private setupOutsideClickHandler;
35
+ private createEditingEnvironment;
36
+ private setupEditingContainer;
37
+ private setupTextInputHandler;
38
+ private updateTextAlignment;
39
+ private calculateHorizontalPosition;
40
+ private calculateVerticalPosition;
41
+ private getContainerDimensions;
42
+ private getAlignmentSettings;
43
+ }
@@ -0,0 +1,54 @@
1
+ type TextInputHandlerOptions = {
2
+ initialText?: string;
3
+ autoFocus?: boolean;
4
+ focusDelay?: number;
5
+ };
6
+ type TextChangeCallback = (text: string, cursorPosition: number) => void;
7
+ type KeyboardEventHandlers = {
8
+ onTextInput?: TextChangeCallback;
9
+ onCursorMove?: (direction: "left" | "right" | "up" | "down", event: KeyboardEvent) => void;
10
+ onEnter?: (event: KeyboardEvent) => void;
11
+ onEscape?: (event: KeyboardEvent) => void;
12
+ onDelete?: (type: "backspace" | "delete", event: KeyboardEvent) => void;
13
+ onFocus?: (event: FocusEvent) => void;
14
+ onBlur?: (event: FocusEvent) => void;
15
+ onTabNavigation?: (direction: "forward" | "backward") => void;
16
+ onCustomKey?: (key: string, event: KeyboardEvent) => boolean;
17
+ };
18
+ export declare class TextInputHandler {
19
+ private static readonly DEFAULT_FOCUS_DELAY_MS;
20
+ private hiddenInput;
21
+ private isFocused;
22
+ private focusRetryCount;
23
+ private maxFocusRetries;
24
+ private focusDelay;
25
+ private eventHandlers;
26
+ private abortController;
27
+ private textChangeCallback;
28
+ private lastSyncedText;
29
+ private isComposing;
30
+ setupInput(initialText: string, options?: TextInputHandlerOptions): void;
31
+ updateInputValue(text: string): void;
32
+ focusInput(): void;
33
+ blurInput(): void;
34
+ setSelectionRange(start: number, end: number): void;
35
+ getCursorPosition(): number;
36
+ getValue(): string;
37
+ setTextInputHandler(callback: TextChangeCallback): void;
38
+ setEventHandlers(handlers: Partial<KeyboardEventHandlers>): void;
39
+ isFocusedInput(): boolean;
40
+ dispose(): void;
41
+ private createHiddenTextarea;
42
+ private setupEventListeners;
43
+ private removeAllEventListeners;
44
+ private handleTextInput;
45
+ private handleKeyDown;
46
+ private handleKeyboardShortcuts;
47
+ private handleCompositionStart;
48
+ private handleCompositionEnd;
49
+ private handleFocus;
50
+ private handleBlur;
51
+ private handlePaste;
52
+ private selectAll;
53
+ }
54
+ export {};
@@ -1,4 +1,4 @@
1
- import { Edit } from "../entities/edit";
1
+ import { Edit } from "@entities/system/edit";
2
2
  import { Canvas } from "../shotstack-canvas";
3
3
  export declare class VideoExporter {
4
4
  private readonly ffmpeg;
@@ -1,4 +1,4 @@
1
- import { Edit } from "../entities/edit";
1
+ import { Edit } from "@entities/system/edit";
2
2
  export declare class Controls {
3
3
  private edit;
4
4
  private seekDistance;
@@ -327,17 +327,15 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
327
327
  bottom?: number | undefined;
328
328
  left?: number | undefined;
329
329
  }>>;
330
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
331
- from: zod.ZodNumber;
332
- to: zod.ZodNumber;
330
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
333
331
  start: zod.ZodNumber;
334
332
  length: zod.ZodNumber;
335
333
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
336
334
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
337
- }, {
335
+ } & {
338
336
  from: zod.ZodNumber;
339
337
  to: zod.ZodNumber;
340
- }>, "strip", zod.ZodTypeAny, {
338
+ }, "strip", zod.ZodTypeAny, {
341
339
  length: number;
342
340
  from: number;
343
341
  to: number;
@@ -401,17 +399,15 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
401
399
  type: zod.ZodLiteral<"audio">;
402
400
  src: zod.ZodString;
403
401
  trim: zod.ZodOptional<zod.ZodNumber>;
404
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
405
- from: zod.ZodNumber;
406
- to: zod.ZodNumber;
402
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
407
403
  start: zod.ZodNumber;
408
404
  length: zod.ZodNumber;
409
405
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
410
406
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
411
- }, {
407
+ } & {
412
408
  from: zod.ZodNumber;
413
409
  to: zod.ZodNumber;
414
- }>, "strip", zod.ZodTypeAny, {
410
+ }, "strip", zod.ZodTypeAny, {
415
411
  length: number;
416
412
  from: number;
417
413
  to: number;
@@ -1,16 +1,14 @@
1
1
  import * as zod from "zod";
2
2
  export declare const AudioAssetUrlSchema: zod.ZodString;
3
- export declare const AudioAssetVolumeSchema: zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
4
- from: zod.ZodNumber;
5
- to: zod.ZodNumber;
3
+ export declare const AudioAssetVolumeSchema: zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
6
4
  start: zod.ZodNumber;
7
5
  length: zod.ZodNumber;
8
6
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
9
7
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
10
- }, {
8
+ } & {
11
9
  from: zod.ZodNumber;
12
10
  to: zod.ZodNumber;
13
- }>, "strip", zod.ZodTypeAny, {
11
+ }, "strip", zod.ZodTypeAny, {
14
12
  length: number;
15
13
  from: number;
16
14
  to: number;
@@ -29,17 +27,15 @@ export declare const AudioAssetSchema: zod.ZodObject<{
29
27
  type: zod.ZodLiteral<"audio">;
30
28
  src: zod.ZodString;
31
29
  trim: zod.ZodOptional<zod.ZodNumber>;
32
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
33
- from: zod.ZodNumber;
34
- to: zod.ZodNumber;
30
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
35
31
  start: zod.ZodNumber;
36
32
  length: zod.ZodNumber;
37
33
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
38
34
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
39
- }, {
35
+ } & {
40
36
  from: zod.ZodNumber;
41
37
  to: zod.ZodNumber;
42
- }>, "strip", zod.ZodTypeAny, {
38
+ }, "strip", zod.ZodTypeAny, {
43
39
  length: number;
44
40
  from: number;
45
41
  to: number;
@@ -333,17 +333,15 @@ export declare const ClipSchema: zod.ZodObject<{
333
333
  bottom?: number | undefined;
334
334
  left?: number | undefined;
335
335
  }>>;
336
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
337
- from: zod.ZodNumber;
338
- to: zod.ZodNumber;
336
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
339
337
  start: zod.ZodNumber;
340
338
  length: zod.ZodNumber;
341
339
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
342
340
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
343
- }, {
341
+ } & {
344
342
  from: zod.ZodNumber;
345
343
  to: zod.ZodNumber;
346
- }>, "strip", zod.ZodTypeAny, {
344
+ }, "strip", zod.ZodTypeAny, {
347
345
  length: number;
348
346
  from: number;
349
347
  to: number;
@@ -407,17 +405,15 @@ export declare const ClipSchema: zod.ZodObject<{
407
405
  type: zod.ZodLiteral<"audio">;
408
406
  src: zod.ZodString;
409
407
  trim: zod.ZodOptional<zod.ZodNumber>;
410
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
411
- from: zod.ZodNumber;
412
- to: zod.ZodNumber;
408
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
413
409
  start: zod.ZodNumber;
414
410
  length: zod.ZodNumber;
415
411
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
416
412
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
417
- }, {
413
+ } & {
418
414
  from: zod.ZodNumber;
419
415
  to: zod.ZodNumber;
420
- }>, "strip", zod.ZodTypeAny, {
416
+ }, "strip", zod.ZodTypeAny, {
421
417
  length: number;
422
418
  from: number;
423
419
  to: number;
@@ -656,17 +652,15 @@ export declare const ClipSchema: zod.ZodObject<{
656
652
  position: zod.ZodOptional<zod.ZodDefault<zod.ZodEnum<["topLeft", "top", "topRight", "left", "center", "right", "bottomLeft", "bottom", "bottomRight"]>>>;
657
653
  fit: zod.ZodOptional<zod.ZodDefault<zod.ZodEnum<["crop", "cover", "contain", "none"]>>>;
658
654
  offset: zod.ZodOptional<zod.ZodDefault<zod.ZodObject<{
659
- x: zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
660
- from: zod.ZodNumber;
661
- to: zod.ZodNumber;
655
+ x: zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
662
656
  start: zod.ZodNumber;
663
657
  length: zod.ZodNumber;
664
658
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
665
659
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
666
- }, {
660
+ } & {
667
661
  from: zod.ZodDefault<zod.ZodNumber>;
668
662
  to: zod.ZodDefault<zod.ZodNumber>;
669
- }>, "strip", zod.ZodTypeAny, {
663
+ }, "strip", zod.ZodTypeAny, {
670
664
  length: number;
671
665
  from: number;
672
666
  to: number;
@@ -681,17 +675,15 @@ export declare const ClipSchema: zod.ZodObject<{
681
675
  interpolation?: "linear" | "bezier" | "constant" | undefined;
682
676
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
683
677
  }>, "many">, zod.ZodDefault<zod.ZodNumber>]>>;
684
- y: zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
685
- from: zod.ZodNumber;
686
- to: zod.ZodNumber;
678
+ y: zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
687
679
  start: zod.ZodNumber;
688
680
  length: zod.ZodNumber;
689
681
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
690
682
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
691
- }, {
683
+ } & {
692
684
  from: zod.ZodDefault<zod.ZodNumber>;
693
685
  to: zod.ZodDefault<zod.ZodNumber>;
694
- }>, "strip", zod.ZodTypeAny, {
686
+ }, "strip", zod.ZodTypeAny, {
695
687
  length: number;
696
688
  from: number;
697
689
  to: number;
@@ -741,17 +733,15 @@ export declare const ClipSchema: zod.ZodObject<{
741
733
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
742
734
  }[] | undefined;
743
735
  }>>>;
744
- opacity: zod.ZodOptional<zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
745
- from: zod.ZodNumber;
746
- to: zod.ZodNumber;
736
+ opacity: zod.ZodOptional<zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
747
737
  start: zod.ZodNumber;
748
738
  length: zod.ZodNumber;
749
739
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
750
740
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
751
- }, {
741
+ } & {
752
742
  from: zod.ZodNumber;
753
743
  to: zod.ZodNumber;
754
- }>, "strip", zod.ZodTypeAny, {
744
+ }, "strip", zod.ZodTypeAny, {
755
745
  length: number;
756
746
  from: number;
757
747
  to: number;
@@ -766,17 +756,15 @@ export declare const ClipSchema: zod.ZodObject<{
766
756
  interpolation?: "linear" | "bezier" | "constant" | undefined;
767
757
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
768
758
  }>, "many">, zod.ZodNumber]>>>;
769
- scale: zod.ZodOptional<zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
770
- from: zod.ZodNumber;
771
- to: zod.ZodNumber;
759
+ scale: zod.ZodOptional<zod.ZodDefault<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
772
760
  start: zod.ZodNumber;
773
761
  length: zod.ZodNumber;
774
762
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
775
763
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
776
- }, {
764
+ } & {
777
765
  from: zod.ZodNumber;
778
766
  to: zod.ZodNumber;
779
- }>, "strip", zod.ZodTypeAny, {
767
+ }, "strip", zod.ZodTypeAny, {
780
768
  length: number;
781
769
  from: number;
782
770
  to: number;
@@ -793,17 +781,15 @@ export declare const ClipSchema: zod.ZodObject<{
793
781
  }>, "many">, zod.ZodNumber]>>>;
794
782
  transform: zod.ZodOptional<zod.ZodDefault<zod.ZodObject<{
795
783
  rotate: zod.ZodDefault<zod.ZodObject<{
796
- angle: zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
797
- from: zod.ZodNumber;
798
- to: zod.ZodNumber;
784
+ angle: zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
799
785
  start: zod.ZodNumber;
800
786
  length: zod.ZodNumber;
801
787
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
802
788
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
803
- }, {
789
+ } & {
804
790
  from: zod.ZodNumber;
805
791
  to: zod.ZodNumber;
806
- }>, "strip", zod.ZodTypeAny, {
792
+ }, "strip", zod.ZodTypeAny, {
807
793
  length: number;
808
794
  from: number;
809
795
  to: number;