visualfries 0.1.10120 → 0.3.2

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 (133) hide show
  1. package/README.md +97 -0
  2. package/bin/visualfries.js +1570 -0
  3. package/dist/DIContainer.d.ts +2 -1
  4. package/dist/DIContainer.js +16 -5
  5. package/dist/SceneBuilder.svelte.d.ts +70 -1
  6. package/dist/SceneBuilder.svelte.js +96 -29
  7. package/dist/agent/audioMixer.d.ts +34 -0
  8. package/dist/agent/audioMixer.js +308 -0
  9. package/dist/agent/broll.d.ts +35 -0
  10. package/dist/agent/broll.js +226 -0
  11. package/dist/agent/capabilities.d.ts +34 -0
  12. package/dist/agent/capabilities.js +246 -0
  13. package/dist/agent/captionScene.d.ts +23 -0
  14. package/dist/agent/captionScene.js +204 -0
  15. package/dist/agent/catalog.d.ts +24 -0
  16. package/dist/agent/catalog.js +67 -0
  17. package/dist/agent/cueFiles.d.ts +54 -0
  18. package/dist/agent/cueFiles.js +219 -0
  19. package/dist/agent/cuePresets.d.ts +7 -0
  20. package/dist/agent/cuePresets.js +50 -0
  21. package/dist/agent/deterministicMedia.d.ts +61 -0
  22. package/dist/agent/deterministicMedia.js +303 -0
  23. package/dist/agent/index.d.ts +18 -0
  24. package/dist/agent/index.js +18 -0
  25. package/dist/agent/inspectScene.d.ts +36 -0
  26. package/dist/agent/inspectScene.js +139 -0
  27. package/dist/agent/localRender.d.ts +82 -0
  28. package/dist/agent/localRender.js +702 -0
  29. package/dist/agent/overlays.d.ts +40 -0
  30. package/dist/agent/overlays.js +325 -0
  31. package/dist/agent/productionPlan.d.ts +131 -0
  32. package/dist/agent/productionPlan.js +322 -0
  33. package/dist/agent/renderPlan.d.ts +27 -0
  34. package/dist/agent/renderPlan.js +68 -0
  35. package/dist/agent/renderRanges.d.ts +24 -0
  36. package/dist/agent/renderRanges.js +73 -0
  37. package/dist/agent/runtimeSupport.d.ts +19 -0
  38. package/dist/agent/runtimeSupport.js +192 -0
  39. package/dist/agent/streamingEncoder.d.ts +31 -0
  40. package/dist/agent/streamingEncoder.js +208 -0
  41. package/dist/agent/transcripts.d.ts +29 -0
  42. package/dist/agent/transcripts.js +146 -0
  43. package/dist/agent/transitions.d.ts +20 -0
  44. package/dist/agent/transitions.js +169 -0
  45. package/dist/animations/PixiAnimationTarget.d.ts +29 -0
  46. package/dist/animations/PixiAnimationTarget.js +63 -0
  47. package/dist/animations/builders/LineHighlighterAnimationBuilder.js +20 -3
  48. package/dist/animations/builders/WordHighlighterAnimationBuilder.js +15 -2
  49. package/dist/browser/browserExport.d.ts +73 -0
  50. package/dist/browser/browserExport.js +180 -0
  51. package/dist/browser/glTransitions.d.ts +37 -0
  52. package/dist/browser/glTransitions.js +261 -0
  53. package/dist/browser/index.d.ts +3 -0
  54. package/dist/browser/index.js +3 -0
  55. package/dist/browser/mediaDecode.d.ts +31 -0
  56. package/dist/browser/mediaDecode.js +152 -0
  57. package/dist/builders/PixiComponentBuilder.d.ts +6 -0
  58. package/dist/builders/PixiComponentBuilder.js +12 -0
  59. package/dist/builders/_ComponentState.svelte.d.ts +7 -5
  60. package/dist/builders/_ComponentState.svelte.js +29 -15
  61. package/dist/builders/html/StyleBuilder.js +9 -8
  62. package/dist/builders/html/TextComponentHtmlBuilder.js +4 -2
  63. package/dist/builders/html/processors/AppearanceStyleProcessor.js +1 -1
  64. package/dist/builders/html/processors/TextAppearanceStyleProcessor.js +7 -0
  65. package/dist/builders/html/processors/TextEffectsStyleProcessor.js +32 -13
  66. package/dist/commands/ReplaceSourceOnTimeCommand.js +9 -1
  67. package/dist/commands/SeekCommand.js +19 -6
  68. package/dist/components/AnimatedGIF.d.ts +3 -0
  69. package/dist/components/AnimatedGIF.js +28 -1
  70. package/dist/components/Component.svelte.d.ts +5 -5
  71. package/dist/components/Component.svelte.js +29 -13
  72. package/dist/components/ComponentContext.svelte.js +68 -23
  73. package/dist/components/hooks/AnimationHook.js +1 -1
  74. package/dist/components/hooks/CanvasFillHook.d.ts +12 -0
  75. package/dist/components/hooks/CanvasFillHook.js +75 -0
  76. package/dist/components/hooks/DeterministicMediaFrameHook.js +3 -0
  77. package/dist/components/hooks/HtmlTextHook.js +11 -3
  78. package/dist/components/hooks/HtmlToCanvasHook.js +8 -25
  79. package/dist/components/hooks/MediaHook.js +172 -47
  80. package/dist/components/hooks/MediaSeekingHook.js +138 -88
  81. package/dist/components/hooks/PixiGifHook.js +4 -4
  82. package/dist/components/hooks/PixiSplitScreenDisplayObjectHook.js +73 -6
  83. package/dist/components/hooks/PixiVideoTextureHook.js +10 -4
  84. package/dist/components/hooks/PixiVisualTransformHook.d.ts +16 -0
  85. package/dist/components/hooks/PixiVisualTransformHook.js +102 -0
  86. package/dist/components/hooks/SubtitlesHook.js +48 -24
  87. package/dist/components/hooks/VerifyMediaHook.js +2 -2
  88. package/dist/directors/ComponentDirector.d.ts +1 -0
  89. package/dist/directors/ComponentDirector.js +41 -8
  90. package/dist/fonts/fontDiscovery.js +12 -1
  91. package/dist/layers/Layer.svelte.d.ts +54 -0
  92. package/dist/layers/Layer.svelte.js +2 -25
  93. package/dist/managers/AppManager.svelte.js +8 -5
  94. package/dist/managers/ComponentsManager.svelte.d.ts +7 -7
  95. package/dist/managers/ComponentsManager.svelte.js +29 -15
  96. package/dist/managers/DeterministicMediaManager.js +38 -3
  97. package/dist/managers/EventManager.js +3 -1
  98. package/dist/managers/LayersManager.svelte.d.ts +54 -0
  99. package/dist/managers/RenderManager.d.ts +5 -0
  100. package/dist/managers/RenderManager.js +67 -21
  101. package/dist/managers/StateManager.svelte.d.ts +56 -0
  102. package/dist/managers/StateManager.svelte.js +60 -58
  103. package/dist/managers/SubtitlesManager.svelte.js +1 -3
  104. package/dist/managers/TimeManager.svelte.d.ts +4 -0
  105. package/dist/managers/TimeManager.svelte.js +23 -7
  106. package/dist/schemas/runtime/deterministic.js +5 -1
  107. package/dist/schemas/runtime/types.d.ts +36 -15
  108. package/dist/schemas/scene/components.d.ts +126 -0
  109. package/dist/schemas/scene/components.js +11 -0
  110. package/dist/schemas/scene/core.d.ts +109 -10
  111. package/dist/schemas/scene/core.js +1 -1
  112. package/dist/utils/mediaWindow.d.ts +13 -0
  113. package/dist/utils/mediaWindow.js +25 -0
  114. package/dist/utils/svgGenerator.js +1 -1
  115. package/dist/utils/timelineWindow.d.ts +2 -0
  116. package/dist/utils/timelineWindow.js +7 -0
  117. package/dist/utils/utils.js +2 -4
  118. package/docs/AGENT_PATTERNS.md +243 -0
  119. package/docs/AGENT_WORKFLOW.md +364 -0
  120. package/docs/AUTHORING_BEST_PRACTICES.md +188 -0
  121. package/docs/AUTHORING_SYSTEM_AUDIT.md +98 -0
  122. package/docs/BROWSER_EXPORT_SPIKE.md +55 -0
  123. package/docs/DETERMINISTIC_RENDERER.md +83 -0
  124. package/docs/NEXT_RELEASE.md +28 -0
  125. package/docs/PROPOSED_VISUALFRIES_SKILL.md +68 -0
  126. package/docs/examples/agent-cues.json +49 -0
  127. package/docs/examples/agent-transcript.json +23 -0
  128. package/docs/examples/agent-transcript.srt +7 -0
  129. package/docs/examples/agent-transcript.vtt +7 -0
  130. package/docs/examples/image-animation.json +87 -0
  131. package/docs/examples/native-text-metric-badge.json +109 -0
  132. package/package.json +133 -100
  133. package/skills/visualfries/SKILL.md +328 -0
@@ -1,15 +1,31 @@
1
1
  export class TimeManager {
2
2
  fps = $state(30); // Default
3
3
  duration = $state(0);
4
- transformTime(time, skipDurationCheck = false) {
5
- // Round to nearest frame boundary (1/fps seconds)
6
- let frameAdjustedTime = Math.round(time * this.fps) / this.fps;
7
- frameAdjustedTime = Math.max(frameAdjustedTime, 0);
4
+ static FRAME_EPSILON = 1e-4;
5
+ getFrameIndex(time, mode = 'nearest', skipDurationCheck = false) {
6
+ let adjustedTime = Math.max(time, 0);
7
+ if (!skipDurationCheck) {
8
+ adjustedTime = Math.min(adjustedTime, this.duration);
9
+ }
10
+ const scaledTime = adjustedTime * this.fps;
11
+ if (mode === 'current') {
12
+ return Math.max(0, Math.floor(scaledTime + TimeManager.FRAME_EPSILON));
13
+ }
14
+ return Math.max(0, Math.round(scaledTime));
15
+ }
16
+ getTimeForFrame(frame, skipDurationCheck = false) {
17
+ const frameTime = Math.max(0, frame) / this.fps;
8
18
  if (!skipDurationCheck) {
9
- // Keep duration check since endTime is always <= duration
10
- return frameAdjustedTime > this.duration ? this.duration : frameAdjustedTime;
19
+ return frameTime > this.duration ? this.duration : frameTime;
11
20
  }
12
- return frameAdjustedTime;
21
+ return frameTime;
22
+ }
23
+ transformTime(time, skipDurationCheck = false) {
24
+ const frame = this.getFrameIndex(time, 'current', skipDurationCheck);
25
+ return this.getTimeForFrame(frame, skipDurationCheck);
26
+ }
27
+ getCurrentFrameTime(time, skipDurationCheck = false) {
28
+ return this.transformTime(time, skipDurationCheck);
13
29
  }
14
30
  updateTimeConfig(newFps, newDuration) {
15
31
  this.fps = newFps;
@@ -8,7 +8,11 @@ export const DeterministicMediaConfigShape = z.object({
8
8
  loadingMaxAttempts: z.number().int().positive().prefault(2),
9
9
  readyYieldMs: z.number().int().nonnegative().prefault(0),
10
10
  blurDownscale: z.number().positive().max(1).prefault(0.33),
11
- provider: z.custom().optional()
11
+ provider: z
12
+ .custom((value) => typeof value === 'object' &&
13
+ value !== null &&
14
+ typeof value.getFrame === 'function', 'provider must implement getFrame(request)')
15
+ .optional()
12
16
  }).prefault({});
13
17
  export const defaultDeterministicMediaConfig = DeterministicMediaConfigShape.parse(undefined);
14
18
  export class DeterministicRenderError extends Error {
@@ -4,6 +4,7 @@ import type { ComponentsManager } from '../../managers/ComponentsManager.svelte.
4
4
  import type { LayersManager } from '../../managers/LayersManager.svelte.js';
5
5
  import type { SubtitlesManager } from '../../managers/SubtitlesManager.svelte.js';
6
6
  import type { EventManager } from '../../managers/EventManager.js';
7
+ import type { PixiAnimationTarget } from '../../animations/PixiAnimationTarget.js';
7
8
  import type { Component as SceneLayerComponent, ComponentBase, AppearanceInput, Scene, RenderEnvironment, ComponentInput, SceneLayerInput, SceneLayer, VideoComponentShape, ImageComponentShape, GifComponentShape, Subtitle } from '../..';
8
9
  import type { DeterministicMediaConfig, DeterministicFrameProvider, DeterministicDiagnosticsReport, FrameImageEncodingOptions, RenderFrameRangeOptions, RenderFrameRangeSummary } from './deterministic.js';
9
10
  declare const SCENE_LAYER_COMPONENT_TYPE: readonly ["IMAGE", "GIF", "VIDEO", "TEXT", "SHAPE", "AUDIO", "COLOR", "GRADIENT", "SUBTITLES"];
@@ -88,7 +89,7 @@ export interface ResourceManager<T, D, F> {
88
89
  get(id: string): T | undefined;
89
90
  getAll(): T[];
90
91
  update(id: string, data: Partial<F>, refreshType?: ComponentRefreshType): void;
91
- delete(id: string): void;
92
+ delete(id: string): void | Promise<void>;
92
93
  create(data: D): Promise<T | null>;
93
94
  setOrder(id: string, newOrder: number): void;
94
95
  moveUp(id: string): void;
@@ -99,7 +100,7 @@ export interface ResourceManager<T, D, F> {
99
100
  id: string;
100
101
  data: Partial<F>;
101
102
  }>): void;
102
- bulkDelete(ids: string[]): void;
103
+ bulkDelete(ids: string[]): void | Promise<void>;
103
104
  hide(id: string): void;
104
105
  show(id: string): void;
105
106
  toggle(id: string): void;
@@ -109,14 +110,16 @@ export type ComponentData = SceneLayerComponent;
109
110
  export type ComponentProps = ComponentBase & {
110
111
  checksum: string;
111
112
  duration: number;
113
+ sourceUrl?: string | undefined;
114
+ sourceStartAt?: number | undefined;
112
115
  setStart(start: number): void;
113
116
  setEnd(end: number): void;
114
117
  getData(): ComponentData;
115
118
  update(data: Partial<AppearanceInput>): void;
116
- updateText(text: string): Promise<void>;
117
- updateAppearance(appearance: Partial<AppearanceInput>): Promise<void>;
118
- setVisible(visible: boolean): Promise<void>;
119
- setOrder(order: number): Promise<void>;
119
+ updateText(text: string): void;
120
+ updateAppearance(appearance: Partial<AppearanceInput>): void;
121
+ setVisible(visible: boolean): void;
122
+ setOrder(order: number): void;
120
123
  };
121
124
  export interface PixiComponent {
122
125
  displayObject: Container;
@@ -131,6 +134,7 @@ export interface ComponentBuilder {
131
134
  withHtmlText(): ComponentBuilder;
132
135
  withHtmlAnimation(): ComponentBuilder;
133
136
  withAnimation(): ComponentBuilder;
137
+ withPixiAnimationTarget(): ComponentBuilder;
134
138
  withSubtitles(): ComponentBuilder;
135
139
  withDisplayObject(): ComponentBuilder;
136
140
  withTexture(): ComponentBuilder;
@@ -139,6 +143,7 @@ export interface ComponentBuilder {
139
143
  withGif(): ComponentBuilder;
140
144
  withShape(): ComponentBuilder;
141
145
  withCanvasShape(): ComponentBuilder;
146
+ withCanvasFill(): ComponentBuilder;
142
147
  withProgressShape(): ComponentBuilder;
143
148
  withHtmlToCanvasHook(): ComponentBuilder;
144
149
  }
@@ -155,14 +160,14 @@ export interface Component {
155
160
  setup(): void;
156
161
  update(): void;
157
162
  refresh(type?: ComponentRefreshType): void;
158
- destroy(): void;
163
+ destroy(): Promise<void>;
159
164
  setStart(start: number): Component;
160
165
  setEnd(end: number): Component;
161
- updateAppearance(appearance: Partial<AppearanceInput>): Promise<Component>;
162
- updateText(text: string): Promise<Component>;
163
- setText(text: string): Promise<Component>;
164
- setVisible(visible: boolean): Promise<Component>;
165
- setOrder(order: number): Promise<Component>;
166
+ updateAppearance(appearance: Partial<AppearanceInput>): Component;
167
+ updateText(text: string): Component;
168
+ setText(text: string): Component;
169
+ setVisible(visible: boolean): Component;
170
+ setOrder(order: number): Component;
166
171
  onChange(callback: (changes: ComponentData) => void): () => void;
167
172
  onTimelineChange(callback: (time: number) => void): () => void;
168
173
  }
@@ -193,7 +198,7 @@ export interface ResourceTypes {
193
198
  pixiContainer: Container | undefined;
194
199
  wrapperHtmlEl: HTMLElement | undefined;
195
200
  htmlEl: HTMLElement | undefined;
196
- animationTarget: HTMLElement | Container | undefined;
201
+ animationTarget: HTMLElement | Container | PixiAnimationTarget | undefined;
197
202
  animationData: Record<string, any> | undefined;
198
203
  pixiRenderObject: Container | undefined;
199
204
  htmlRenderObject: HTMLDivElement | undefined;
@@ -228,6 +233,21 @@ type Zone = {
228
233
  start: number;
229
234
  end: number;
230
235
  };
236
+ export type ComponentAnimationExplanation = {
237
+ componentId: string;
238
+ type: ComponentData['type'];
239
+ time: number;
240
+ active: boolean;
241
+ relativeTime: number;
242
+ targetKind: 'html' | 'pixi' | 'none';
243
+ targetOwner: 'wrapper' | 'element' | 'pixi' | 'none';
244
+ computed: Record<string, number | string>;
245
+ animations: Array<{
246
+ id: string;
247
+ enabled: boolean;
248
+ startAt: number;
249
+ }>;
250
+ };
231
251
  export interface SceneBuilder {
232
252
  readonly sceneData: Scene;
233
253
  readonly environment: RenderEnvironment;
@@ -245,7 +265,7 @@ export interface SceneBuilder {
245
265
  readonly components: ComponentsManager;
246
266
  readonly subtitles: SubtitlesManager;
247
267
  readonly htmlContainer: HTMLElement;
248
- readonly canvasContainer: HTMLElement;
268
+ readonly canvasContainer: HTMLCanvasElement;
249
269
  readonly disabledTimeZones: Zone[];
250
270
  syncChanges: () => void;
251
271
  addExcludedTimestamp(start: number, end: number): void;
@@ -259,6 +279,7 @@ export interface SceneBuilder {
259
279
  markDirty(): void;
260
280
  initialize(): Promise<void>;
261
281
  seek(time: number): Promise<void>;
282
+ explainComponentState(componentId: string): ComponentAnimationExplanation | null;
262
283
  replaceSourceOnTime(time: number, componentId: string, base64data: string): Promise<void>;
263
284
  setDeterministicFrameProvider(provider: DeterministicFrameProvider | null): void;
264
285
  getDeterministicFrameProvider(): DeterministicFrameProvider | null;
@@ -276,7 +297,7 @@ export interface SceneBuilder {
276
297
  removeLoadingComponent(componentId: string): void;
277
298
  buildCharactersList(): void;
278
299
  render(): void;
279
- destroy(): void;
300
+ destroy(): Promise<void>;
280
301
  addComponent(componentData: ComponentInput): Promise<ComponentData | undefined>;
281
302
  addLayer(layerInput: SceneLayerInput): Promise<Layer | undefined>;
282
303
  addNewLayerWithComponents(components: ComponentInput[]): Promise<Layer | undefined>;
@@ -133,6 +133,12 @@ export declare const TextAppearanceShape: z.ZodObject<{
133
133
  lowercase: "lowercase";
134
134
  capitalize: "capitalize";
135
135
  }>>;
136
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
137
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
138
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
139
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
140
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
141
+ }, z.core.$strip>]>>;
136
142
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
137
143
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
138
144
  preset: z.ZodOptional<z.ZodString>;
@@ -532,6 +538,12 @@ export declare const AppearanceShape: z.ZodObject<{
532
538
  lowercase: "lowercase";
533
539
  capitalize: "capitalize";
534
540
  }>>;
541
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
542
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
543
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
544
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
545
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
546
+ }, z.core.$strip>]>>;
535
547
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
536
548
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
537
549
  preset: z.ZodOptional<z.ZodString>;
@@ -2542,6 +2554,12 @@ export declare const ComponentBaseShape: z.ZodObject<{
2542
2554
  lowercase: "lowercase";
2543
2555
  capitalize: "capitalize";
2544
2556
  }>>;
2557
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
2558
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
2559
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
2560
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
2561
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
2562
+ }, z.core.$strip>]>>;
2545
2563
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2546
2564
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
2547
2565
  preset: z.ZodOptional<z.ZodString>;
@@ -3678,6 +3696,12 @@ export declare const TextComponentShape: z.ZodObject<{
3678
3696
  lowercase: "lowercase";
3679
3697
  capitalize: "capitalize";
3680
3698
  }>>;
3699
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
3700
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
3701
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
3702
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
3703
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
3704
+ }, z.core.$strip>]>>;
3681
3705
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3682
3706
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
3683
3707
  preset: z.ZodOptional<z.ZodString>;
@@ -4829,6 +4853,12 @@ export declare const ImageComponentShape: z.ZodObject<{
4829
4853
  lowercase: "lowercase";
4830
4854
  capitalize: "capitalize";
4831
4855
  }>>;
4856
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
4857
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
4858
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
4859
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
4860
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
4861
+ }, z.core.$strip>]>>;
4832
4862
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4833
4863
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
4834
4864
  preset: z.ZodOptional<z.ZodString>;
@@ -5987,6 +6017,12 @@ export declare const GifComponentShape: z.ZodObject<{
5987
6017
  lowercase: "lowercase";
5988
6018
  capitalize: "capitalize";
5989
6019
  }>>;
6020
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
6021
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
6022
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
6023
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
6024
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
6025
+ }, z.core.$strip>]>>;
5990
6026
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5991
6027
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
5992
6028
  preset: z.ZodOptional<z.ZodString>;
@@ -7143,6 +7179,12 @@ export declare const VideoComponentShape: z.ZodObject<{
7143
7179
  lowercase: "lowercase";
7144
7180
  capitalize: "capitalize";
7145
7181
  }>>;
7182
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
7183
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
7184
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
7185
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
7186
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
7187
+ }, z.core.$strip>]>>;
7146
7188
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7147
7189
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
7148
7190
  preset: z.ZodOptional<z.ZodString>;
@@ -8497,6 +8539,12 @@ export declare const ShapeComponentShape: z.ZodObject<{
8497
8539
  lowercase: "lowercase";
8498
8540
  capitalize: "capitalize";
8499
8541
  }>>;
8542
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
8543
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
8544
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
8545
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
8546
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
8547
+ }, z.core.$strip>]>>;
8500
8548
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8501
8549
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
8502
8550
  preset: z.ZodOptional<z.ZodString>;
@@ -9663,6 +9711,12 @@ export declare const AudioComponentShape: z.ZodObject<{
9663
9711
  lowercase: "lowercase";
9664
9712
  capitalize: "capitalize";
9665
9713
  }>>;
9714
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
9715
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
9716
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
9717
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
9718
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
9719
+ }, z.core.$strip>]>>;
9666
9720
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
9667
9721
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
9668
9722
  preset: z.ZodOptional<z.ZodString>;
@@ -10720,6 +10774,12 @@ export declare const ColorComponentShape: z.ZodObject<{
10720
10774
  lowercase: "lowercase";
10721
10775
  capitalize: "capitalize";
10722
10776
  }>>;
10777
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
10778
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
10779
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
10780
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
10781
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
10782
+ }, z.core.$strip>]>>;
10723
10783
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
10724
10784
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
10725
10785
  preset: z.ZodOptional<z.ZodString>;
@@ -11776,6 +11836,12 @@ export declare const GradientComponentShape: z.ZodObject<{
11776
11836
  lowercase: "lowercase";
11777
11837
  capitalize: "capitalize";
11778
11838
  }>>;
11839
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
11840
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
11841
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
11842
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
11843
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
11844
+ }, z.core.$strip>]>>;
11779
11845
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
11780
11846
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
11781
11847
  preset: z.ZodOptional<z.ZodString>;
@@ -12954,6 +13020,12 @@ export declare const SubtitleComponentShape: z.ZodObject<{
12954
13020
  lowercase: "lowercase";
12955
13021
  capitalize: "capitalize";
12956
13022
  }>>;
13023
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
13024
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
13025
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
13026
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
13027
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
13028
+ }, z.core.$strip>]>>;
12957
13029
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
12958
13030
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
12959
13031
  preset: z.ZodOptional<z.ZodString>;
@@ -14144,6 +14216,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
14144
14216
  lowercase: "lowercase";
14145
14217
  capitalize: "capitalize";
14146
14218
  }>>;
14219
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
14220
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
14221
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
14222
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
14223
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
14224
+ }, z.core.$strip>]>>;
14147
14225
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
14148
14226
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
14149
14227
  preset: z.ZodOptional<z.ZodString>;
@@ -15291,6 +15369,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
15291
15369
  lowercase: "lowercase";
15292
15370
  capitalize: "capitalize";
15293
15371
  }>>;
15372
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
15373
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
15374
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
15375
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
15376
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
15377
+ }, z.core.$strip>]>>;
15294
15378
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
15295
15379
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
15296
15380
  preset: z.ZodOptional<z.ZodString>;
@@ -16445,6 +16529,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
16445
16529
  lowercase: "lowercase";
16446
16530
  capitalize: "capitalize";
16447
16531
  }>>;
16532
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
16533
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
16534
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
16535
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
16536
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
16537
+ }, z.core.$strip>]>>;
16448
16538
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
16449
16539
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
16450
16540
  preset: z.ZodOptional<z.ZodString>;
@@ -17597,6 +17687,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
17597
17687
  lowercase: "lowercase";
17598
17688
  capitalize: "capitalize";
17599
17689
  }>>;
17690
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
17691
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
17692
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
17693
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
17694
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
17695
+ }, z.core.$strip>]>>;
17600
17696
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
17601
17697
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
17602
17698
  preset: z.ZodOptional<z.ZodString>;
@@ -18819,6 +18915,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
18819
18915
  lowercase: "lowercase";
18820
18916
  capitalize: "capitalize";
18821
18917
  }>>;
18918
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
18919
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
18920
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
18921
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
18922
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
18923
+ }, z.core.$strip>]>>;
18822
18924
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
18823
18925
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
18824
18926
  preset: z.ZodOptional<z.ZodString>;
@@ -19981,6 +20083,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
19981
20083
  lowercase: "lowercase";
19982
20084
  capitalize: "capitalize";
19983
20085
  }>>;
20086
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
20087
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
20088
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
20089
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
20090
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
20091
+ }, z.core.$strip>]>>;
19984
20092
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
19985
20093
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
19986
20094
  preset: z.ZodOptional<z.ZodString>;
@@ -21034,6 +21142,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
21034
21142
  lowercase: "lowercase";
21035
21143
  capitalize: "capitalize";
21036
21144
  }>>;
21145
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
21146
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
21147
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
21148
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
21149
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
21150
+ }, z.core.$strip>]>>;
21037
21151
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
21038
21152
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
21039
21153
  preset: z.ZodOptional<z.ZodString>;
@@ -22086,6 +22200,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
22086
22200
  lowercase: "lowercase";
22087
22201
  capitalize: "capitalize";
22088
22202
  }>>;
22203
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
22204
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
22205
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
22206
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
22207
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
22208
+ }, z.core.$strip>]>>;
22089
22209
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
22090
22210
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
22091
22211
  preset: z.ZodOptional<z.ZodString>;
@@ -23260,6 +23380,12 @@ export declare const ComponentShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
23260
23380
  lowercase: "lowercase";
23261
23381
  capitalize: "capitalize";
23262
23382
  }>>;
23383
+ padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>, z.ZodObject<{
23384
+ top: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
23385
+ right: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
23386
+ bottom: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
23387
+ left: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedNumber<unknown>>;
23388
+ }, z.core.$strip>]>>;
23263
23389
  shadow: z.ZodOptional<z.ZodNullable<z.ZodObject<{
23264
23390
  enabled: z.ZodOptional<z.ZodPrefault<z.ZodBoolean>>;
23265
23391
  preset: z.ZodOptional<z.ZodString>;
@@ -67,6 +67,17 @@ export const TextAppearanceShape = z.object({
67
67
  color: ColorTypeShape,
68
68
  textAlign: z.enum(['left', 'center', 'right', 'justify']),
69
69
  textTransform: z.enum(['none', 'uppercase', 'lowercase', 'capitalize']).optional(),
70
+ padding: z
71
+ .union([
72
+ coerceNonNegativeNumber(),
73
+ z.object({
74
+ top: coerceNonNegativeNumber(),
75
+ right: coerceNonNegativeNumber(),
76
+ bottom: coerceNonNegativeNumber(),
77
+ left: coerceNonNegativeNumber()
78
+ })
79
+ ])
80
+ .optional(),
70
81
  shadow: StructuredShadowShape.nullable().optional(),
71
82
  outline: StructuredOutlineShape.nullable().optional(),
72
83
  activeLine: z