remotion 4.0.520 → 4.0.522

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.
@@ -0,0 +1,425 @@
1
+ export type HiddenFieldSchema = {
2
+ type: 'hidden';
3
+ keyframable?: boolean;
4
+ };
5
+ export type NumberFieldSchema = {
6
+ type: 'number';
7
+ min?: number;
8
+ max?: number;
9
+ step?: number;
10
+ default: number | null | undefined;
11
+ description?: string;
12
+ hiddenFromList: boolean;
13
+ keyframable?: boolean;
14
+ };
15
+ export type BooleanFieldSchema = {
16
+ type: 'boolean';
17
+ default: boolean;
18
+ description?: string;
19
+ keyframable?: boolean;
20
+ };
21
+ export type RotationCssFieldSchema = {
22
+ type: 'rotation-css';
23
+ step?: number;
24
+ default: string | undefined;
25
+ description?: string;
26
+ keyframable?: boolean;
27
+ };
28
+ export type RotationDegreesFieldSchema = {
29
+ type: 'rotation-degrees';
30
+ min?: number;
31
+ max?: number;
32
+ step?: number;
33
+ default: number | undefined;
34
+ description?: string;
35
+ keyframable?: boolean;
36
+ };
37
+ export type TranslateFieldSchema = {
38
+ type: 'translate';
39
+ step?: number;
40
+ default: string | undefined;
41
+ description?: string;
42
+ keyframable?: boolean;
43
+ };
44
+ export type TransformOriginFieldSchema = {
45
+ type: 'transform-origin';
46
+ step?: number;
47
+ default: string | undefined;
48
+ description?: string;
49
+ keyframable?: boolean;
50
+ };
51
+ export type ScaleFieldSchema = {
52
+ type: 'scale';
53
+ min?: number;
54
+ max?: number;
55
+ step?: number;
56
+ default: number | string | undefined;
57
+ description?: string;
58
+ keyframable?: boolean;
59
+ };
60
+ export type UvCoordinateFieldSchema = {
61
+ type: 'uv-coordinate';
62
+ min?: number;
63
+ max?: number;
64
+ step?: number;
65
+ lineTo?: string;
66
+ default: readonly [number, number] | undefined;
67
+ description?: string;
68
+ keyframable?: boolean;
69
+ };
70
+ export type ColorFieldSchema = {
71
+ type: 'color';
72
+ default: string | undefined;
73
+ description?: string;
74
+ keyframable?: boolean;
75
+ };
76
+ export type EnumFieldSchema = {
77
+ type: 'enum';
78
+ default: string;
79
+ description?: string;
80
+ variants: Record<string, SequenceSchema>;
81
+ keyframable?: boolean;
82
+ };
83
+ export type NumberArrayItemSchema = Omit<NumberFieldSchema, 'default' | 'description' | 'hiddenFromList' | 'keyframable'>;
84
+ export type BooleanArrayItemSchema = Omit<BooleanFieldSchema, 'default' | 'description' | 'keyframable'>;
85
+ export type RotationCssArrayItemSchema = Omit<RotationCssFieldSchema, 'default' | 'description' | 'keyframable'>;
86
+ export type RotationDegreesArrayItemSchema = Omit<RotationDegreesFieldSchema, 'default' | 'description' | 'keyframable'>;
87
+ export type TranslateArrayItemSchema = Omit<TranslateFieldSchema, 'default' | 'description' | 'keyframable'>;
88
+ export type UvCoordinateArrayItemSchema = Omit<UvCoordinateFieldSchema, 'default' | 'description' | 'keyframable'>;
89
+ export type ColorArrayItemSchema = Omit<ColorFieldSchema, 'default' | 'description' | 'keyframable'>;
90
+ export type EnumArrayItemSchema = {
91
+ type: 'enum';
92
+ variants: readonly string[];
93
+ };
94
+ export type ArrayItemFieldSchema = NumberArrayItemSchema | BooleanArrayItemSchema | RotationCssArrayItemSchema | RotationDegreesArrayItemSchema | TranslateArrayItemSchema | UvCoordinateArrayItemSchema | ColorArrayItemSchema | EnumArrayItemSchema;
95
+ export type ArrayFieldSchema = {
96
+ type: 'array';
97
+ item: ArrayItemFieldSchema;
98
+ default: readonly unknown[] | undefined;
99
+ minLength?: number;
100
+ maxLength?: number;
101
+ newItemDefault: unknown;
102
+ description?: string;
103
+ keyframable?: false;
104
+ };
105
+ export type VisibleFieldSchema = NumberFieldSchema | BooleanFieldSchema | RotationCssFieldSchema | RotationDegreesFieldSchema | TranslateFieldSchema | TransformOriginFieldSchema | ScaleFieldSchema | UvCoordinateFieldSchema | ColorFieldSchema | ArrayFieldSchema | EnumFieldSchema;
106
+ export type SequenceFieldSchema = VisibleFieldSchema | HiddenFieldSchema;
107
+ export type SequenceSchema = {
108
+ [key: string]: SequenceFieldSchema;
109
+ };
110
+ export type SchemaKeysRecord<S extends SequenceSchema> = Record<keyof S, unknown>;
111
+ export declare const sequenceVisualStyleSchema: {
112
+ readonly 'style.transformOrigin': {
113
+ readonly type: "transform-origin";
114
+ readonly step: 1;
115
+ readonly default: "50% 50%";
116
+ readonly description: "Transform origin";
117
+ };
118
+ readonly 'style.translate': {
119
+ readonly type: "translate";
120
+ readonly step: 1;
121
+ readonly default: "0px 0px";
122
+ readonly description: "Offset";
123
+ };
124
+ readonly 'style.scale': {
125
+ readonly type: "scale";
126
+ readonly max: 100;
127
+ readonly step: 0.01;
128
+ readonly default: 1;
129
+ readonly description: "Scale";
130
+ };
131
+ readonly 'style.rotate': {
132
+ readonly type: "rotation-css";
133
+ readonly step: 1;
134
+ readonly default: "0deg";
135
+ readonly description: "Rotation";
136
+ };
137
+ readonly 'style.opacity': {
138
+ readonly type: "number";
139
+ readonly min: 0;
140
+ readonly max: 1;
141
+ readonly step: 0.01;
142
+ readonly default: 1;
143
+ readonly description: "Opacity";
144
+ readonly hiddenFromList: false;
145
+ };
146
+ };
147
+ export declare const sequencePremountSchema: {
148
+ readonly premountFor: {
149
+ readonly type: "number";
150
+ readonly default: 0;
151
+ readonly description: "Premount For";
152
+ readonly min: 0;
153
+ readonly step: 1;
154
+ readonly hiddenFromList: false;
155
+ };
156
+ readonly postmountFor: {
157
+ readonly type: "number";
158
+ readonly default: 0;
159
+ readonly min: 0;
160
+ readonly step: 1;
161
+ readonly hiddenFromList: true;
162
+ };
163
+ readonly styleWhilePremounted: {
164
+ readonly type: "hidden";
165
+ };
166
+ readonly styleWhilePostmounted: {
167
+ readonly type: "hidden";
168
+ };
169
+ };
170
+ export declare const sequenceStyleSchema: {
171
+ readonly 'style.transformOrigin': {
172
+ readonly type: "transform-origin";
173
+ readonly step: 1;
174
+ readonly default: "50% 50%";
175
+ readonly description: "Transform origin";
176
+ };
177
+ readonly 'style.translate': {
178
+ readonly type: "translate";
179
+ readonly step: 1;
180
+ readonly default: "0px 0px";
181
+ readonly description: "Offset";
182
+ };
183
+ readonly 'style.scale': {
184
+ readonly type: "scale";
185
+ readonly max: 100;
186
+ readonly step: 0.01;
187
+ readonly default: 1;
188
+ readonly description: "Scale";
189
+ };
190
+ readonly 'style.rotate': {
191
+ readonly type: "rotation-css";
192
+ readonly step: 1;
193
+ readonly default: "0deg";
194
+ readonly description: "Rotation";
195
+ };
196
+ readonly 'style.opacity': {
197
+ readonly type: "number";
198
+ readonly min: 0;
199
+ readonly max: 1;
200
+ readonly step: 0.01;
201
+ readonly default: 1;
202
+ readonly description: "Opacity";
203
+ readonly hiddenFromList: false;
204
+ };
205
+ readonly premountFor: {
206
+ readonly type: "number";
207
+ readonly default: 0;
208
+ readonly description: "Premount For";
209
+ readonly min: 0;
210
+ readonly step: 1;
211
+ readonly hiddenFromList: false;
212
+ };
213
+ readonly postmountFor: {
214
+ readonly type: "number";
215
+ readonly default: 0;
216
+ readonly min: 0;
217
+ readonly step: 1;
218
+ readonly hiddenFromList: true;
219
+ };
220
+ readonly styleWhilePremounted: {
221
+ readonly type: "hidden";
222
+ };
223
+ readonly styleWhilePostmounted: {
224
+ readonly type: "hidden";
225
+ };
226
+ };
227
+ export declare const hiddenField: SequenceFieldSchema;
228
+ export declare const sequenceNameField: SequenceFieldSchema;
229
+ export declare const extendSchemaWithSequenceName: <S extends SequenceSchema>(schema: S) => S & {
230
+ name: SequenceFieldSchema;
231
+ };
232
+ export declare const durationInFramesField: {
233
+ readonly type: "number";
234
+ readonly default: undefined;
235
+ readonly min: 1;
236
+ readonly step: 1;
237
+ readonly hiddenFromList: true;
238
+ };
239
+ export declare const fromField: {
240
+ readonly type: "number";
241
+ readonly default: 0;
242
+ readonly step: 1;
243
+ readonly hiddenFromList: true;
244
+ };
245
+ export declare const freezeField: {
246
+ readonly type: "number";
247
+ readonly default: null;
248
+ readonly step: 1;
249
+ readonly hiddenFromList: true;
250
+ };
251
+ export declare const sequenceSchema: {
252
+ readonly hidden: BooleanFieldSchema;
253
+ readonly showInTimeline: HiddenFieldSchema;
254
+ readonly from: {
255
+ readonly type: "number";
256
+ readonly default: 0;
257
+ readonly step: 1;
258
+ readonly hiddenFromList: true;
259
+ };
260
+ readonly freeze: {
261
+ readonly type: "number";
262
+ readonly default: null;
263
+ readonly step: 1;
264
+ readonly hiddenFromList: true;
265
+ };
266
+ readonly durationInFrames: {
267
+ readonly type: "number";
268
+ readonly default: undefined;
269
+ readonly min: 1;
270
+ readonly step: 1;
271
+ readonly hiddenFromList: true;
272
+ };
273
+ readonly layout: {
274
+ readonly type: "enum";
275
+ readonly default: "absolute-fill";
276
+ readonly description: "Layout";
277
+ readonly variants: {
278
+ readonly 'absolute-fill': {
279
+ readonly 'style.transformOrigin': {
280
+ readonly type: "transform-origin";
281
+ readonly step: 1;
282
+ readonly default: "50% 50%";
283
+ readonly description: "Transform origin";
284
+ };
285
+ readonly 'style.translate': {
286
+ readonly type: "translate";
287
+ readonly step: 1;
288
+ readonly default: "0px 0px";
289
+ readonly description: "Offset";
290
+ };
291
+ readonly 'style.scale': {
292
+ readonly type: "scale";
293
+ readonly max: 100;
294
+ readonly step: 0.01;
295
+ readonly default: 1;
296
+ readonly description: "Scale";
297
+ };
298
+ readonly 'style.rotate': {
299
+ readonly type: "rotation-css";
300
+ readonly step: 1;
301
+ readonly default: "0deg";
302
+ readonly description: "Rotation";
303
+ };
304
+ readonly 'style.opacity': {
305
+ readonly type: "number";
306
+ readonly min: 0;
307
+ readonly max: 1;
308
+ readonly step: 0.01;
309
+ readonly default: 1;
310
+ readonly description: "Opacity";
311
+ readonly hiddenFromList: false;
312
+ };
313
+ readonly premountFor: {
314
+ readonly type: "number";
315
+ readonly default: 0;
316
+ readonly description: "Premount For";
317
+ readonly min: 0;
318
+ readonly step: 1;
319
+ readonly hiddenFromList: false;
320
+ };
321
+ readonly postmountFor: {
322
+ readonly type: "number";
323
+ readonly default: 0;
324
+ readonly min: 0;
325
+ readonly step: 1;
326
+ readonly hiddenFromList: true;
327
+ };
328
+ readonly styleWhilePremounted: {
329
+ readonly type: "hidden";
330
+ };
331
+ readonly styleWhilePostmounted: {
332
+ readonly type: "hidden";
333
+ };
334
+ };
335
+ readonly none: {};
336
+ };
337
+ };
338
+ } & {
339
+ name: SequenceFieldSchema;
340
+ };
341
+ export declare const sequenceSchemaWithoutFrom: {
342
+ readonly hidden: BooleanFieldSchema;
343
+ readonly showInTimeline: HiddenFieldSchema;
344
+ readonly freeze: {
345
+ readonly type: "number";
346
+ readonly default: null;
347
+ readonly step: 1;
348
+ readonly hiddenFromList: true;
349
+ };
350
+ readonly durationInFrames: {
351
+ readonly type: "number";
352
+ readonly default: undefined;
353
+ readonly min: 1;
354
+ readonly step: 1;
355
+ readonly hiddenFromList: true;
356
+ };
357
+ readonly layout: {
358
+ readonly type: "enum";
359
+ readonly default: "absolute-fill";
360
+ readonly description: "Layout";
361
+ readonly variants: {
362
+ readonly 'absolute-fill': {
363
+ readonly 'style.transformOrigin': {
364
+ readonly type: "transform-origin";
365
+ readonly step: 1;
366
+ readonly default: "50% 50%";
367
+ readonly description: "Transform origin";
368
+ };
369
+ readonly 'style.translate': {
370
+ readonly type: "translate";
371
+ readonly step: 1;
372
+ readonly default: "0px 0px";
373
+ readonly description: "Offset";
374
+ };
375
+ readonly 'style.scale': {
376
+ readonly type: "scale";
377
+ readonly max: 100;
378
+ readonly step: 0.01;
379
+ readonly default: 1;
380
+ readonly description: "Scale";
381
+ };
382
+ readonly 'style.rotate': {
383
+ readonly type: "rotation-css";
384
+ readonly step: 1;
385
+ readonly default: "0deg";
386
+ readonly description: "Rotation";
387
+ };
388
+ readonly 'style.opacity': {
389
+ readonly type: "number";
390
+ readonly min: 0;
391
+ readonly max: 1;
392
+ readonly step: 0.01;
393
+ readonly default: 1;
394
+ readonly description: "Opacity";
395
+ readonly hiddenFromList: false;
396
+ };
397
+ readonly premountFor: {
398
+ readonly type: "number";
399
+ readonly default: 0;
400
+ readonly description: "Premount For";
401
+ readonly min: 0;
402
+ readonly step: 1;
403
+ readonly hiddenFromList: false;
404
+ };
405
+ readonly postmountFor: {
406
+ readonly type: "number";
407
+ readonly default: 0;
408
+ readonly min: 0;
409
+ readonly step: 1;
410
+ readonly hiddenFromList: true;
411
+ };
412
+ readonly styleWhilePremounted: {
413
+ readonly type: "hidden";
414
+ };
415
+ readonly styleWhilePostmounted: {
416
+ readonly type: "hidden";
417
+ };
418
+ };
419
+ readonly none: {};
420
+ };
421
+ };
422
+ } & {
423
+ name: SequenceFieldSchema;
424
+ };
425
+ export declare const sequenceSchemaDefaultLayoutNone: SequenceSchema;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sequenceSchemaDefaultLayoutNone = exports.sequenceSchemaWithoutFrom = exports.sequenceSchema = exports.freezeField = exports.fromField = exports.durationInFramesField = exports.extendSchemaWithSequenceName = exports.sequenceNameField = exports.hiddenField = exports.sequenceStyleSchema = exports.sequencePremountSchema = exports.sequenceVisualStyleSchema = void 0;
4
+ exports.sequenceVisualStyleSchema = {
5
+ 'style.transformOrigin': {
6
+ type: 'transform-origin',
7
+ step: 1,
8
+ default: '50% 50%',
9
+ description: 'Transform origin',
10
+ },
11
+ 'style.translate': {
12
+ type: 'translate',
13
+ step: 1,
14
+ default: '0px 0px',
15
+ description: 'Offset',
16
+ },
17
+ 'style.scale': {
18
+ type: 'scale',
19
+ max: 100,
20
+ step: 0.01,
21
+ default: 1,
22
+ description: 'Scale',
23
+ },
24
+ 'style.rotate': {
25
+ type: 'rotation-css',
26
+ step: 1,
27
+ default: '0deg',
28
+ description: 'Rotation',
29
+ },
30
+ 'style.opacity': {
31
+ type: 'number',
32
+ min: 0,
33
+ max: 1,
34
+ step: 0.01,
35
+ default: 1,
36
+ description: 'Opacity',
37
+ hiddenFromList: false,
38
+ },
39
+ };
40
+ exports.sequencePremountSchema = {
41
+ premountFor: {
42
+ type: 'number',
43
+ default: 0,
44
+ description: 'Premount For',
45
+ min: 0,
46
+ step: 1,
47
+ hiddenFromList: false,
48
+ },
49
+ postmountFor: {
50
+ type: 'number',
51
+ default: 0,
52
+ min: 0,
53
+ step: 1,
54
+ hiddenFromList: true,
55
+ },
56
+ styleWhilePremounted: {
57
+ type: 'hidden',
58
+ },
59
+ styleWhilePostmounted: {
60
+ type: 'hidden',
61
+ },
62
+ };
63
+ exports.sequenceStyleSchema = {
64
+ ...exports.sequenceVisualStyleSchema,
65
+ ...exports.sequencePremountSchema,
66
+ };
67
+ exports.hiddenField = {
68
+ type: 'boolean',
69
+ default: false,
70
+ description: 'Hidden',
71
+ };
72
+ const showInTimelineField = {
73
+ type: 'hidden',
74
+ };
75
+ exports.sequenceNameField = {
76
+ type: 'hidden',
77
+ };
78
+ const extendSchemaWithSequenceName = (schema) => {
79
+ return {
80
+ name: exports.sequenceNameField,
81
+ ...schema,
82
+ };
83
+ };
84
+ exports.extendSchemaWithSequenceName = extendSchemaWithSequenceName;
85
+ exports.durationInFramesField = {
86
+ type: 'number',
87
+ default: undefined,
88
+ min: 1,
89
+ step: 1,
90
+ hiddenFromList: true,
91
+ };
92
+ exports.fromField = {
93
+ type: 'number',
94
+ default: 0,
95
+ step: 1,
96
+ hiddenFromList: true,
97
+ };
98
+ exports.freezeField = {
99
+ type: 'number',
100
+ default: null,
101
+ step: 1,
102
+ hiddenFromList: true,
103
+ };
104
+ exports.sequenceSchema = (0, exports.extendSchemaWithSequenceName)({
105
+ hidden: exports.hiddenField,
106
+ showInTimeline: showInTimelineField,
107
+ from: exports.fromField,
108
+ freeze: exports.freezeField,
109
+ durationInFrames: exports.durationInFramesField,
110
+ layout: {
111
+ type: 'enum',
112
+ default: 'absolute-fill',
113
+ description: 'Layout',
114
+ variants: {
115
+ 'absolute-fill': exports.sequenceStyleSchema,
116
+ none: {},
117
+ },
118
+ },
119
+ });
120
+ exports.sequenceSchemaWithoutFrom = (0, exports.extendSchemaWithSequenceName)({
121
+ hidden: exports.hiddenField,
122
+ showInTimeline: showInTimelineField,
123
+ freeze: exports.freezeField,
124
+ durationInFrames: exports.durationInFramesField,
125
+ layout: exports.sequenceSchema.layout,
126
+ });
127
+ exports.sequenceSchemaDefaultLayoutNone = {
128
+ ...exports.sequenceSchema,
129
+ layout: {
130
+ ...exports.sequenceSchema.layout,
131
+ default: 'none',
132
+ },
133
+ };
@@ -101,6 +101,11 @@ const useMediaPlayback = ({ mediaRef, src, mediaType, playbackRate: localPlaybac
101
101
  // and it is also in a useLayoutEffect.
102
102
  (0, react_1.useLayoutEffect)(() => {
103
103
  const playbackRateToSet = Math.max(0, playbackRate);
104
+ // Loading a resource resets playbackRate to defaultPlaybackRate.
105
+ if (mediaRef.current &&
106
+ mediaRef.current.defaultPlaybackRate !== playbackRateToSet) {
107
+ mediaRef.current.defaultPlaybackRate = playbackRateToSet;
108
+ }
104
109
  if (mediaRef.current &&
105
110
  mediaRef.current.playbackRate !== playbackRateToSet) {
106
111
  mediaRef.current.playbackRate = playbackRateToSet;
@@ -3,4 +3,4 @@
3
3
  * @see [Documentation](https://remotion.dev/docs/version)
4
4
  * @returns {string} The current version of the remotion package
5
5
  */
6
- export declare const VERSION = "4.0.520";
6
+ export declare const VERSION = "4.0.522";
@@ -7,4 +7,4 @@ exports.VERSION = void 0;
7
7
  * @see [Documentation](https://remotion.dev/docs/version)
8
8
  * @returns {string} The current version of the remotion package
9
9
  */
10
- exports.VERSION = '4.0.520';
10
+ exports.VERSION = '4.0.522';
@@ -16,3 +16,4 @@ export type VideoConfig = {
16
16
  defaultProResProfile: ProResProfile | null;
17
17
  defaultSampleRate: number | null;
18
18
  };
19
+ export type VideoConfigValues = Pick<VideoConfig, 'durationInFrames' | 'fps' | 'height' | 'width'>;
@@ -47,6 +47,7 @@ const SequenceManager_js_1 = require("./SequenceManager.js");
47
47
  const use_current_frame_js_1 = require("./use-current-frame.js");
48
48
  const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
49
49
  const use_schema_js_1 = require("./use-schema.js");
50
+ const use_unsafe_video_config_js_1 = require("./use-unsafe-video-config.js");
50
51
  const getNestedValue = (obj, key) => {
51
52
  const parts = key.split('.');
52
53
  let current = obj;
@@ -156,6 +157,24 @@ const withInteractivitySchema = ({ Component, componentName, componentIdentity,
156
157
  const nodePathMapping = (0, react_1.useContext)(sequence_node_path_js_1.OverrideIdsToNodePathsGettersContext);
157
158
  // eslint-disable-next-line react-hooks/rules-of-hooks
158
159
  const frame = (0, use_current_frame_js_1.useCurrentFrame)();
160
+ // eslint-disable-next-line react-hooks/rules-of-hooks
161
+ const videoConfig = (0, use_unsafe_video_config_js_1.useUnsafeVideoConfig)();
162
+ const durationInFrames = videoConfig === null || videoConfig === void 0 ? void 0 : videoConfig.durationInFrames;
163
+ const fps = videoConfig === null || videoConfig === void 0 ? void 0 : videoConfig.fps;
164
+ const height = videoConfig === null || videoConfig === void 0 ? void 0 : videoConfig.height;
165
+ const width = videoConfig === null || videoConfig === void 0 ? void 0 : videoConfig.width;
166
+ // eslint-disable-next-line react-hooks/rules-of-hooks
167
+ const videoConfigValues = (0, react_1.useMemo)(() => durationInFrames === undefined ||
168
+ fps === undefined ||
169
+ height === undefined ||
170
+ width === undefined
171
+ ? null
172
+ : {
173
+ durationInFrames,
174
+ fps,
175
+ height,
176
+ width,
177
+ }, [durationInFrames, fps, height, width]);
159
178
  // If the parent has passed `controls`, we should not override it.
160
179
  // @ts-expect-error
161
180
  if (cleanProps.controls) {
@@ -212,12 +231,18 @@ const withInteractivitySchema = ({ Component, componentName, componentIdentity,
212
231
  schema: schemaWithSequenceName,
213
232
  currentRuntimeValueDotNotation,
214
233
  runtimeValues: runtimeValueStore.store,
234
+ videoConfigValues,
215
235
  overrideId,
216
236
  supportsEffects,
217
237
  componentIdentity,
218
238
  componentName,
219
239
  };
220
- }, [currentRuntimeValueDotNotation, overrideId, runtimeValueStore.store]);
240
+ }, [
241
+ currentRuntimeValueDotNotation,
242
+ overrideId,
243
+ runtimeValueStore.store,
244
+ videoConfigValues,
245
+ ]);
221
246
  (0, enable_sequence_stack_traces_js_1.setStackForControls)(controls, internalStack);
222
247
  // 3. Apply drag/code overrides on top of the runtime values.
223
248
  // eslint-disable-next-line react-hooks/rules-of-hooks
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { SequenceControls } from './CompositionManager.js';
3
+ import { type SequenceSchema } from './sequence-field-schema.js';
4
+ export declare const getNestedValue: (obj: Record<string, unknown>, key: string) => unknown;
5
+ export declare const readValuesFromProps: (props: Record<string, unknown>, keys: string[]) => Record<string, unknown>;
6
+ export declare const selectActiveKeys: (schema: SequenceSchema, values: Record<string, unknown>) => string[];
7
+ export declare const mergeValues: ({ props, valuesDotNotation, schemaKeys, propsToDelete, }: {
8
+ props: Record<string, unknown>;
9
+ valuesDotNotation: Record<string, unknown>;
10
+ schemaKeys: string[];
11
+ propsToDelete: Set<string>;
12
+ }) => Record<string, unknown>;
13
+ export declare const wrapInSchema: <S extends SequenceSchema, Props extends object>({ Component, componentIdentity, schema, supportsEffects, }: {
14
+ Component: React.ComponentType<Props & {
15
+ readonly _experimentalControls: SequenceControls | undefined;
16
+ }>;
17
+ componentIdentity: string | null;
18
+ schema: S;
19
+ supportsEffects: boolean;
20
+ }) => React.ComponentType<Props>;