@depths/waves 0.2.0 → 0.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.
- package/README.md +118 -19
- package/dist/{chunk-7QPNRHMW.mjs → chunk-QP54QRAP.mjs} +73 -5
- package/dist/{chunk-PKLHVWMD.mjs → chunk-YYS6AVTN.mjs} +792 -604
- package/dist/cli.js +1098 -756
- package/dist/cli.mjs +90 -3
- package/dist/index.d.mts +13 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +1010 -755
- package/dist/index.mjs +2 -2
- package/dist/remotion/index.d.mts +5 -0
- package/dist/remotion/index.d.ts +5 -0
- package/dist/remotion/index.js +1032 -807
- package/dist/remotion/index.mjs +49 -8
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -174,14 +174,16 @@ var WavesEngine = class {
|
|
|
174
174
|
onProgress: () => void 0
|
|
175
175
|
});
|
|
176
176
|
const compositionId = validatedIR.video.id ?? "main";
|
|
177
|
+
const inputProps = options.inputProps ?? {};
|
|
177
178
|
const composition = await (0, import_renderer.selectComposition)({
|
|
178
179
|
serveUrl: bundleLocation,
|
|
179
180
|
id: compositionId,
|
|
180
|
-
inputProps
|
|
181
|
+
inputProps
|
|
181
182
|
});
|
|
182
183
|
await (0, import_renderer.renderMedia)({
|
|
183
184
|
composition,
|
|
184
185
|
serveUrl: bundleLocation,
|
|
186
|
+
inputProps,
|
|
185
187
|
codec: options.codec ?? "h264",
|
|
186
188
|
outputLocation: options.outputPath,
|
|
187
189
|
crf: options.crf ?? null,
|
|
@@ -194,6 +196,70 @@ var WavesEngine = class {
|
|
|
194
196
|
await import_promises.default.rm(tmpDir, { recursive: true, force: true });
|
|
195
197
|
}
|
|
196
198
|
}
|
|
199
|
+
async renderStills(ir, options) {
|
|
200
|
+
if (this.registry !== globalRegistry) {
|
|
201
|
+
throw new WavesRenderError("WavesEngine currently requires using globalRegistry", {
|
|
202
|
+
hint: "Use `registerBuiltInComponents()` + `globalRegistry` for both validation and rendering."
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
const validationResult = this.validator.validate(ir);
|
|
206
|
+
if (!validationResult.success) {
|
|
207
|
+
throw new WavesRenderError("IR validation failed", { errors: validationResult.errors });
|
|
208
|
+
}
|
|
209
|
+
const validatedIR = validationResult.data;
|
|
210
|
+
const requiredTypes = collectComponentTypes(validatedIR);
|
|
211
|
+
for (const type of requiredTypes) {
|
|
212
|
+
if (!this.registry.has(type)) {
|
|
213
|
+
throw new WavesRenderError("Unknown component type", { type });
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
const rootDir = options.rootDir ?? process.cwd();
|
|
217
|
+
const tmpDir = await import_promises.default.mkdtemp(import_node_path.default.join(rootDir, ".waves-tmp-"));
|
|
218
|
+
const entryPoint = import_node_path.default.join(tmpDir, "entry.tsx");
|
|
219
|
+
try {
|
|
220
|
+
await import_promises.default.writeFile(entryPoint, generateEntryPoint(validatedIR, options), "utf-8");
|
|
221
|
+
await import_promises.default.mkdir(options.outputDir, { recursive: true });
|
|
222
|
+
const bundleLocation = await (0, import_bundler.bundle)({
|
|
223
|
+
entryPoint,
|
|
224
|
+
rootDir,
|
|
225
|
+
publicDir: options.publicDir ?? null,
|
|
226
|
+
onProgress: () => void 0
|
|
227
|
+
});
|
|
228
|
+
const compositionId = validatedIR.video.id ?? "main";
|
|
229
|
+
const inputProps = options.inputProps ?? {};
|
|
230
|
+
const composition = await (0, import_renderer.selectComposition)({
|
|
231
|
+
serveUrl: bundleLocation,
|
|
232
|
+
id: compositionId,
|
|
233
|
+
inputProps
|
|
234
|
+
});
|
|
235
|
+
const frames = Array.from(new Set(options.frames)).sort((a, b) => a - b);
|
|
236
|
+
const written = [];
|
|
237
|
+
for (const frame of frames) {
|
|
238
|
+
const clamped = Math.max(0, Math.min(composition.durationInFrames - 1, Math.floor(frame)));
|
|
239
|
+
const imageFormat = options.imageFormat ?? "png";
|
|
240
|
+
const filename = `${compositionId}-frame-${String(clamped).padStart(6, "0")}.${imageFormat}`;
|
|
241
|
+
const outPath = import_node_path.default.join(options.outputDir, filename);
|
|
242
|
+
const stillOptions = {
|
|
243
|
+
composition,
|
|
244
|
+
serveUrl: bundleLocation,
|
|
245
|
+
inputProps,
|
|
246
|
+
frame: clamped,
|
|
247
|
+
output: outPath,
|
|
248
|
+
imageFormat,
|
|
249
|
+
scale: options.scale ?? 1,
|
|
250
|
+
overwrite: true,
|
|
251
|
+
...imageFormat === "jpeg" ? { jpegQuality: options.jpegQuality ?? 80 } : {}
|
|
252
|
+
};
|
|
253
|
+
await (0, import_renderer.renderStill)(stillOptions);
|
|
254
|
+
written.push(outPath);
|
|
255
|
+
}
|
|
256
|
+
return written;
|
|
257
|
+
} catch (error) {
|
|
258
|
+
throw new WavesRenderError("Rendering failed", { originalError: error });
|
|
259
|
+
} finally {
|
|
260
|
+
await import_promises.default.rm(tmpDir, { recursive: true, force: true });
|
|
261
|
+
}
|
|
262
|
+
}
|
|
197
263
|
};
|
|
198
264
|
function collectComponentTypes(ir) {
|
|
199
265
|
const types = /* @__PURE__ */ new Set();
|
|
@@ -228,8 +294,10 @@ registerBuiltInComponents();
|
|
|
228
294
|
const ir = ${JSON.stringify(ir, null, 2)};
|
|
229
295
|
const compositionId = ${JSON.stringify(compositionId)};
|
|
230
296
|
|
|
231
|
-
const Root = () => {
|
|
232
|
-
|
|
297
|
+
const Root = (props) => {
|
|
298
|
+
const debugBounds = Boolean(props?.__wavesDebugBounds);
|
|
299
|
+
const debugLabels = Boolean(props?.__wavesDebugLabels);
|
|
300
|
+
return <WavesComposition ir={ir} registry={globalRegistry} debug={{ bounds: debugBounds, labels: debugLabels }} />;
|
|
233
301
|
};
|
|
234
302
|
|
|
235
303
|
export const RemotionRoot = () => {
|
|
@@ -653,19 +721,77 @@ var AudioComponentMetadata = {
|
|
|
653
721
|
};
|
|
654
722
|
|
|
655
723
|
// src/components/primitives/Box.tsx
|
|
724
|
+
var import_react = __toESM(require("react"));
|
|
656
725
|
var import_zod4 = require("zod");
|
|
726
|
+
|
|
727
|
+
// src/remotion/Fill.tsx
|
|
657
728
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
729
|
+
var Fill = ({ style, children }) => {
|
|
730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
731
|
+
"div",
|
|
732
|
+
{
|
|
733
|
+
style: {
|
|
734
|
+
width: "100%",
|
|
735
|
+
height: "100%",
|
|
736
|
+
position: "relative",
|
|
737
|
+
boxSizing: "border-box",
|
|
738
|
+
...style ?? {}
|
|
739
|
+
},
|
|
740
|
+
children
|
|
741
|
+
}
|
|
742
|
+
);
|
|
743
|
+
};
|
|
744
|
+
|
|
745
|
+
// src/components/primitives/Box.tsx
|
|
746
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
658
747
|
var BoxPropsSchema = import_zod4.z.object({
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
width: import_zod4.z.number().positive().optional().describe("Width in pixels (omit for auto)"),
|
|
662
|
-
height: import_zod4.z.number().positive().optional().describe("Height in pixels (omit for auto)"),
|
|
748
|
+
width: import_zod4.z.number().positive().optional().describe("Width in pixels (optional)"),
|
|
749
|
+
height: import_zod4.z.number().positive().optional().describe("Height in pixels (optional)"),
|
|
663
750
|
padding: import_zod4.z.number().min(0).default(0).describe("Padding in pixels"),
|
|
664
|
-
backgroundColor: import_zod4.z.string().optional().describe("CSS color (e.g. #RRGGBB)"),
|
|
751
|
+
backgroundColor: import_zod4.z.string().optional().describe("CSS color (e.g. #RRGGBB, rgba())"),
|
|
665
752
|
borderRadius: import_zod4.z.number().min(0).default(0).describe("Border radius in pixels"),
|
|
666
753
|
opacity: import_zod4.z.number().min(0).max(1).default(1).describe("Opacity 0..1")
|
|
667
754
|
});
|
|
668
|
-
var Box = ({
|
|
755
|
+
var Box = ({ width, height, padding, backgroundColor, borderRadius, opacity, children }) => {
|
|
756
|
+
const layers = import_react.default.Children.toArray(children);
|
|
757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
758
|
+
Fill,
|
|
759
|
+
{
|
|
760
|
+
style: {
|
|
761
|
+
width,
|
|
762
|
+
height,
|
|
763
|
+
padding,
|
|
764
|
+
backgroundColor,
|
|
765
|
+
borderRadius,
|
|
766
|
+
opacity
|
|
767
|
+
},
|
|
768
|
+
children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i))
|
|
769
|
+
}
|
|
770
|
+
);
|
|
771
|
+
};
|
|
772
|
+
var BoxComponentMetadata = {
|
|
773
|
+
kind: "primitive",
|
|
774
|
+
category: "layout",
|
|
775
|
+
acceptsChildren: true,
|
|
776
|
+
description: "Flow container for layout and backgrounds (layout-safe)",
|
|
777
|
+
llmGuidance: "Use Box as a container inside Grid/Stack. Box participates in layout flow. For x/y positioning, use Frame."
|
|
778
|
+
};
|
|
779
|
+
|
|
780
|
+
// src/components/primitives/Frame.tsx
|
|
781
|
+
var import_react2 = __toESM(require("react"));
|
|
782
|
+
var import_zod5 = require("zod");
|
|
783
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
784
|
+
var FramePropsSchema = import_zod5.z.object({
|
|
785
|
+
x: import_zod5.z.number().default(0).describe("Left offset in pixels"),
|
|
786
|
+
y: import_zod5.z.number().default(0).describe("Top offset in pixels"),
|
|
787
|
+
width: import_zod5.z.number().positive().optional().describe("Width in pixels (optional)"),
|
|
788
|
+
height: import_zod5.z.number().positive().optional().describe("Height in pixels (optional)"),
|
|
789
|
+
padding: import_zod5.z.number().min(0).default(0).describe("Padding in pixels"),
|
|
790
|
+
backgroundColor: import_zod5.z.string().optional().describe("CSS color (e.g. #RRGGBB, rgba())"),
|
|
791
|
+
borderRadius: import_zod5.z.number().min(0).default(0).describe("Border radius in pixels"),
|
|
792
|
+
opacity: import_zod5.z.number().min(0).max(1).default(1).describe("Opacity 0..1")
|
|
793
|
+
});
|
|
794
|
+
var Frame = ({
|
|
669
795
|
x,
|
|
670
796
|
y,
|
|
671
797
|
width,
|
|
@@ -676,7 +802,8 @@ var Box = ({
|
|
|
676
802
|
opacity,
|
|
677
803
|
children
|
|
678
804
|
}) => {
|
|
679
|
-
|
|
805
|
+
const layers = import_react2.default.Children.toArray(children);
|
|
806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
680
807
|
"div",
|
|
681
808
|
{
|
|
682
809
|
style: {
|
|
@@ -691,29 +818,28 @@ var Box = ({
|
|
|
691
818
|
opacity,
|
|
692
819
|
boxSizing: "border-box"
|
|
693
820
|
},
|
|
694
|
-
children
|
|
821
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Fill, { children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) })
|
|
695
822
|
}
|
|
696
823
|
);
|
|
697
824
|
};
|
|
698
|
-
var
|
|
825
|
+
var FrameComponentMetadata = {
|
|
699
826
|
kind: "primitive",
|
|
700
827
|
category: "layout",
|
|
701
828
|
acceptsChildren: true,
|
|
702
|
-
description: "
|
|
703
|
-
llmGuidance: "Use
|
|
829
|
+
description: "Absolute-positioned container (x/y placement)",
|
|
830
|
+
llmGuidance: "Use Frame for precise pixel placement (x/y). Use Box for normal layout flow inside Grid/Stack."
|
|
704
831
|
};
|
|
705
832
|
|
|
706
833
|
// src/components/primitives/Grid.tsx
|
|
707
|
-
var
|
|
708
|
-
var
|
|
709
|
-
var
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
justify: import_zod5.z.enum(["start", "center", "end", "stretch"]).default("stretch")
|
|
834
|
+
var import_zod6 = require("zod");
|
|
835
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
836
|
+
var GridPropsSchema = import_zod6.z.object({
|
|
837
|
+
columns: import_zod6.z.number().int().min(1).max(12).default(2),
|
|
838
|
+
rows: import_zod6.z.number().int().min(1).max(12).default(1),
|
|
839
|
+
gap: import_zod6.z.number().min(0).default(24),
|
|
840
|
+
padding: import_zod6.z.number().min(0).default(0),
|
|
841
|
+
align: import_zod6.z.enum(["start", "center", "end", "stretch"]).default("stretch"),
|
|
842
|
+
justify: import_zod6.z.enum(["start", "center", "end", "stretch"]).default("stretch")
|
|
717
843
|
});
|
|
718
844
|
var mapAlign = (a) => {
|
|
719
845
|
if (a === "start") return "start";
|
|
@@ -728,8 +854,8 @@ var mapJustify = (j) => {
|
|
|
728
854
|
return "stretch";
|
|
729
855
|
};
|
|
730
856
|
var Grid = ({ columns, rows, gap, padding, align, justify, children }) => {
|
|
731
|
-
return /* @__PURE__ */ (0,
|
|
732
|
-
|
|
857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
858
|
+
Fill,
|
|
733
859
|
{
|
|
734
860
|
style: {
|
|
735
861
|
display: "grid",
|
|
@@ -754,19 +880,19 @@ var GridComponentMetadata = {
|
|
|
754
880
|
};
|
|
755
881
|
|
|
756
882
|
// src/components/primitives/Image.tsx
|
|
757
|
-
var
|
|
758
|
-
var
|
|
759
|
-
var
|
|
760
|
-
var ImagePropsSchema =
|
|
761
|
-
src:
|
|
762
|
-
fit:
|
|
763
|
-
borderRadius:
|
|
764
|
-
opacity:
|
|
883
|
+
var import_remotion2 = require("remotion");
|
|
884
|
+
var import_zod7 = require("zod");
|
|
885
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
886
|
+
var ImagePropsSchema = import_zod7.z.object({
|
|
887
|
+
src: import_zod7.z.string().min(1),
|
|
888
|
+
fit: import_zod7.z.enum(["cover", "contain"]).default("cover"),
|
|
889
|
+
borderRadius: import_zod7.z.number().min(0).default(0),
|
|
890
|
+
opacity: import_zod7.z.number().min(0).max(1).default(1)
|
|
765
891
|
});
|
|
766
|
-
var resolveAsset = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
892
|
+
var resolveAsset = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion2.staticFile)(staticFileInputFromAssetPath(value));
|
|
767
893
|
var Image = ({ src, fit, borderRadius, opacity }) => {
|
|
768
|
-
return /* @__PURE__ */ (0,
|
|
769
|
-
|
|
894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Fill, { style: { opacity }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
895
|
+
import_remotion2.Img,
|
|
770
896
|
{
|
|
771
897
|
src: resolveAsset(src),
|
|
772
898
|
style: { width: "100%", height: "100%", objectFit: fit, borderRadius }
|
|
@@ -780,32 +906,91 @@ var ImageComponentMetadata = {
|
|
|
780
906
|
llmGuidance: 'Use Image for pictures and backgrounds. Use fit="cover" for full-bleed, fit="contain" to avoid cropping.'
|
|
781
907
|
};
|
|
782
908
|
|
|
909
|
+
// src/components/primitives/Layer.tsx
|
|
910
|
+
var import_react3 = __toESM(require("react"));
|
|
911
|
+
var import_zod8 = require("zod");
|
|
912
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
913
|
+
var LayerPropsSchema = import_zod8.z.object({
|
|
914
|
+
zIndex: import_zod8.z.number().int().default(0).describe("Higher zIndex renders on top"),
|
|
915
|
+
inset: import_zod8.z.number().min(0).default(0).describe("Inset from all sides in pixels"),
|
|
916
|
+
opacity: import_zod8.z.number().min(0).max(1).default(1),
|
|
917
|
+
pointerEvents: import_zod8.z.enum(["none", "auto"]).default("none")
|
|
918
|
+
});
|
|
919
|
+
var Layer = ({ zIndex, inset, opacity, pointerEvents, children }) => {
|
|
920
|
+
const layers = import_react3.default.Children.toArray(children);
|
|
921
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
922
|
+
"div",
|
|
923
|
+
{
|
|
924
|
+
style: {
|
|
925
|
+
position: "absolute",
|
|
926
|
+
left: inset,
|
|
927
|
+
right: inset,
|
|
928
|
+
top: inset,
|
|
929
|
+
bottom: inset,
|
|
930
|
+
zIndex,
|
|
931
|
+
opacity,
|
|
932
|
+
pointerEvents,
|
|
933
|
+
boxSizing: "border-box"
|
|
934
|
+
},
|
|
935
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Fill, { children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) })
|
|
936
|
+
}
|
|
937
|
+
);
|
|
938
|
+
};
|
|
939
|
+
var LayerComponentMetadata = {
|
|
940
|
+
kind: "primitive",
|
|
941
|
+
category: "layout",
|
|
942
|
+
acceptsChildren: true,
|
|
943
|
+
minChildren: 1,
|
|
944
|
+
description: "One overlay layer with explicit zIndex inside Layers",
|
|
945
|
+
llmGuidance: "Use Layer inside Layers to control stacking. Put exactly one child in a Layer (recommended)."
|
|
946
|
+
};
|
|
947
|
+
|
|
948
|
+
// src/components/primitives/Layers.tsx
|
|
949
|
+
var import_zod9 = require("zod");
|
|
950
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
951
|
+
var LayersPropsSchema = import_zod9.z.object({
|
|
952
|
+
overflow: import_zod9.z.enum(["visible", "hidden"]).default("visible").describe("Clip layers to bounds")
|
|
953
|
+
});
|
|
954
|
+
var Layers = ({ overflow, children }) => {
|
|
955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Fill, { style: { overflow }, children });
|
|
956
|
+
};
|
|
957
|
+
var LayersComponentMetadata = {
|
|
958
|
+
kind: "primitive",
|
|
959
|
+
category: "layout",
|
|
960
|
+
acceptsChildren: true,
|
|
961
|
+
minChildren: 1,
|
|
962
|
+
description: "Overlay container for stacking children (use Layer for zIndex)",
|
|
963
|
+
llmGuidance: "Use Layers to stack background/content/overlays. Prefer Layer children with explicit zIndex."
|
|
964
|
+
};
|
|
965
|
+
|
|
783
966
|
// src/components/primitives/Scene.tsx
|
|
784
|
-
var
|
|
785
|
-
var
|
|
786
|
-
var
|
|
787
|
-
var
|
|
967
|
+
var import_react4 = __toESM(require("react"));
|
|
968
|
+
var import_remotion3 = require("remotion");
|
|
969
|
+
var import_zod10 = require("zod");
|
|
970
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
971
|
+
var ScenePropsSchema = import_zod10.z.object({
|
|
788
972
|
background: BackgroundSpecSchema
|
|
789
973
|
});
|
|
790
974
|
var resolveAsset2 = (value) => {
|
|
791
|
-
return isRemoteAssetPath(value) ? value : (0,
|
|
975
|
+
return isRemoteAssetPath(value) ? value : (0, import_remotion3.staticFile)(staticFileInputFromAssetPath(value));
|
|
792
976
|
};
|
|
793
977
|
var Scene = ({ background, children }) => {
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
978
|
+
const layers = import_react4.default.Children.toArray(children);
|
|
979
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_remotion3.AbsoluteFill, { children: [
|
|
980
|
+
background.type === "color" ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_remotion3.AbsoluteFill, { style: { backgroundColor: background.value } }) : background.type === "image" ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
981
|
+
import_remotion3.Img,
|
|
797
982
|
{
|
|
798
983
|
src: resolveAsset2(background.value),
|
|
799
984
|
style: { width: "100%", height: "100%", objectFit: "cover" }
|
|
800
985
|
}
|
|
801
|
-
) : /* @__PURE__ */ (0,
|
|
802
|
-
|
|
986
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
987
|
+
import_remotion3.Video,
|
|
803
988
|
{
|
|
804
989
|
src: resolveAsset2(background.value),
|
|
805
990
|
style: { width: "100%", height: "100%", objectFit: "cover" }
|
|
806
991
|
}
|
|
807
992
|
),
|
|
808
|
-
/* @__PURE__ */ (0,
|
|
993
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_remotion3.AbsoluteFill, { children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_remotion3.AbsoluteFill, { children: child }, i)) })
|
|
809
994
|
] });
|
|
810
995
|
};
|
|
811
996
|
var SceneComponentMetadata = {
|
|
@@ -817,37 +1002,37 @@ var SceneComponentMetadata = {
|
|
|
817
1002
|
};
|
|
818
1003
|
|
|
819
1004
|
// src/components/primitives/Segment.tsx
|
|
820
|
-
var
|
|
821
|
-
var
|
|
822
|
-
var
|
|
823
|
-
var TransitionPropsSchema =
|
|
824
|
-
type:
|
|
825
|
-
durationInFrames:
|
|
826
|
-
props:
|
|
1005
|
+
var import_remotion4 = require("remotion");
|
|
1006
|
+
var import_zod11 = require("zod");
|
|
1007
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1008
|
+
var TransitionPropsSchema = import_zod11.z.object({
|
|
1009
|
+
type: import_zod11.z.string().min(1),
|
|
1010
|
+
durationInFrames: import_zod11.z.number().int().positive(),
|
|
1011
|
+
props: import_zod11.z.record(import_zod11.z.string(), import_zod11.z.unknown()).optional()
|
|
827
1012
|
});
|
|
828
|
-
var SegmentPropsSchema =
|
|
1013
|
+
var SegmentPropsSchema = import_zod11.z.object({
|
|
829
1014
|
enterTransition: TransitionPropsSchema.optional(),
|
|
830
1015
|
exitTransition: TransitionPropsSchema.optional()
|
|
831
1016
|
});
|
|
832
1017
|
function getSlideOptions(raw) {
|
|
833
|
-
const parsed =
|
|
834
|
-
direction:
|
|
835
|
-
distance:
|
|
1018
|
+
const parsed = import_zod11.z.object({
|
|
1019
|
+
direction: import_zod11.z.enum(["left", "right", "up", "down"]).default("left"),
|
|
1020
|
+
distance: import_zod11.z.number().int().min(1).max(2e3).default(80)
|
|
836
1021
|
}).safeParse(raw ?? {});
|
|
837
1022
|
if (parsed.success) return parsed.data;
|
|
838
1023
|
return { direction: "left", distance: 80 };
|
|
839
1024
|
}
|
|
840
1025
|
function getZoomOptions(raw) {
|
|
841
|
-
const parsed =
|
|
842
|
-
type:
|
|
1026
|
+
const parsed = import_zod11.z.object({
|
|
1027
|
+
type: import_zod11.z.enum(["zoomIn", "zoomOut"]).default("zoomIn")
|
|
843
1028
|
}).safeParse(raw ?? {});
|
|
844
1029
|
if (parsed.success) return parsed.data;
|
|
845
1030
|
return { type: "zoomIn" };
|
|
846
1031
|
}
|
|
847
1032
|
function getWipeOptions(raw) {
|
|
848
|
-
const parsed =
|
|
849
|
-
direction:
|
|
850
|
-
softEdge:
|
|
1033
|
+
const parsed = import_zod11.z.object({
|
|
1034
|
+
direction: import_zod11.z.enum(["left", "right", "up", "down", "diagonal"]).default("right"),
|
|
1035
|
+
softEdge: import_zod11.z.boolean().default(false)
|
|
851
1036
|
}).safeParse(raw ?? {});
|
|
852
1037
|
if (parsed.success) return parsed.data;
|
|
853
1038
|
return { direction: "right", softEdge: false };
|
|
@@ -860,18 +1045,18 @@ function clipFor(direction, p) {
|
|
|
860
1045
|
return `polygon(0 0, ${100 * p}% 0, 0 ${100 * p}%)`;
|
|
861
1046
|
}
|
|
862
1047
|
function getCircularOptions(raw) {
|
|
863
|
-
const parsed =
|
|
864
|
-
direction:
|
|
865
|
-
center:
|
|
866
|
-
x:
|
|
867
|
-
y:
|
|
1048
|
+
const parsed = import_zod11.z.object({
|
|
1049
|
+
direction: import_zod11.z.enum(["open", "close"]).default("open"),
|
|
1050
|
+
center: import_zod11.z.object({
|
|
1051
|
+
x: import_zod11.z.number().min(0).max(1).default(0.5),
|
|
1052
|
+
y: import_zod11.z.number().min(0).max(1).default(0.5)
|
|
868
1053
|
}).default({ x: 0.5, y: 0.5 })
|
|
869
1054
|
}).safeParse(raw ?? {});
|
|
870
1055
|
if (parsed.success) return parsed.data;
|
|
871
1056
|
return { direction: "open", center: { x: 0.5, y: 0.5 } };
|
|
872
1057
|
}
|
|
873
1058
|
var Segment = ({ enterTransition, exitTransition, children, __wavesDurationInFrames }) => {
|
|
874
|
-
const frame = (0,
|
|
1059
|
+
const frame = (0, import_remotion4.useCurrentFrame)();
|
|
875
1060
|
const durationInFrames = __wavesDurationInFrames ?? 0;
|
|
876
1061
|
let opacity = 1;
|
|
877
1062
|
let translateX = 0;
|
|
@@ -882,35 +1067,35 @@ var Segment = ({ enterTransition, exitTransition, children, __wavesDurationInFra
|
|
|
882
1067
|
if (enterTransition) {
|
|
883
1068
|
const d = enterTransition.durationInFrames;
|
|
884
1069
|
if (enterTransition.type === "FadeTransition") {
|
|
885
|
-
opacity *= (0,
|
|
1070
|
+
opacity *= (0, import_remotion4.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
886
1071
|
}
|
|
887
1072
|
if (enterTransition.type === "SlideTransition") {
|
|
888
1073
|
const opts = getSlideOptions(enterTransition.props);
|
|
889
|
-
const t = (0,
|
|
1074
|
+
const t = (0, import_remotion4.interpolate)(frame, [0, d], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
890
1075
|
const delta = opts.distance * t;
|
|
891
1076
|
if (opts.direction === "left") translateX += -delta;
|
|
892
1077
|
if (opts.direction === "right") translateX += delta;
|
|
893
1078
|
if (opts.direction === "up") translateY += -delta;
|
|
894
1079
|
if (opts.direction === "down") translateY += delta;
|
|
895
|
-
opacity *= (0,
|
|
1080
|
+
opacity *= (0, import_remotion4.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
896
1081
|
}
|
|
897
1082
|
if (enterTransition.type === "ZoomTransition") {
|
|
898
1083
|
const opts = getZoomOptions(enterTransition.props);
|
|
899
1084
|
const fromScale = opts.type === "zoomIn" ? 1.2 : 0.85;
|
|
900
|
-
const t = (0,
|
|
1085
|
+
const t = (0, import_remotion4.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
901
1086
|
scale *= fromScale + (1 - fromScale) * t;
|
|
902
1087
|
opacity *= t;
|
|
903
1088
|
}
|
|
904
1089
|
if (enterTransition.type === "WipeTransition") {
|
|
905
1090
|
const opts = getWipeOptions(enterTransition.props);
|
|
906
|
-
const t = (0,
|
|
1091
|
+
const t = (0, import_remotion4.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
907
1092
|
clipPath = clipFor(opts.direction, t);
|
|
908
1093
|
filter = opts.softEdge ? "blur(0.4px)" : void 0;
|
|
909
1094
|
}
|
|
910
1095
|
if (enterTransition.type === "CircularReveal") {
|
|
911
1096
|
const opts = getCircularOptions(enterTransition.props);
|
|
912
1097
|
const open = opts.direction === "open";
|
|
913
|
-
const t = (0,
|
|
1098
|
+
const t = (0, import_remotion4.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
914
1099
|
const radiusPct = open ? 150 * t : 150 * (1 - t);
|
|
915
1100
|
clipPath = `circle(${radiusPct}% at ${Math.round(opts.center.x * 100)}% ${Math.round(opts.center.y * 100)}%)`;
|
|
916
1101
|
}
|
|
@@ -919,41 +1104,41 @@ var Segment = ({ enterTransition, exitTransition, children, __wavesDurationInFra
|
|
|
919
1104
|
const d = exitTransition.durationInFrames;
|
|
920
1105
|
const start = Math.max(0, durationInFrames - d);
|
|
921
1106
|
if (exitTransition.type === "FadeTransition") {
|
|
922
|
-
opacity *= (0,
|
|
1107
|
+
opacity *= (0, import_remotion4.interpolate)(frame, [start, durationInFrames], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
923
1108
|
}
|
|
924
1109
|
if (exitTransition.type === "SlideTransition") {
|
|
925
1110
|
const opts = getSlideOptions(exitTransition.props);
|
|
926
|
-
const t = (0,
|
|
1111
|
+
const t = (0, import_remotion4.interpolate)(frame, [start, durationInFrames], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
927
1112
|
const delta = opts.distance * t;
|
|
928
1113
|
if (opts.direction === "left") translateX += delta;
|
|
929
1114
|
if (opts.direction === "right") translateX += -delta;
|
|
930
1115
|
if (opts.direction === "up") translateY += delta;
|
|
931
1116
|
if (opts.direction === "down") translateY += -delta;
|
|
932
|
-
opacity *= (0,
|
|
1117
|
+
opacity *= (0, import_remotion4.interpolate)(frame, [start, durationInFrames], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
933
1118
|
}
|
|
934
1119
|
if (exitTransition.type === "ZoomTransition") {
|
|
935
1120
|
const opts = getZoomOptions(exitTransition.props);
|
|
936
1121
|
const toScale = opts.type === "zoomIn" ? 1.25 : 0.75;
|
|
937
|
-
const t = (0,
|
|
1122
|
+
const t = (0, import_remotion4.interpolate)(frame, [start, durationInFrames], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
938
1123
|
scale *= 1 + (toScale - 1) * t;
|
|
939
1124
|
opacity *= 1 - t;
|
|
940
1125
|
}
|
|
941
1126
|
if (exitTransition.type === "WipeTransition") {
|
|
942
1127
|
const opts = getWipeOptions(exitTransition.props);
|
|
943
|
-
const t = (0,
|
|
1128
|
+
const t = (0, import_remotion4.interpolate)(frame, [start, durationInFrames], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
944
1129
|
clipPath = clipFor(opts.direction, t);
|
|
945
1130
|
filter = opts.softEdge ? "blur(0.4px)" : void 0;
|
|
946
1131
|
}
|
|
947
1132
|
if (exitTransition.type === "CircularReveal") {
|
|
948
1133
|
const opts = getCircularOptions(exitTransition.props);
|
|
949
1134
|
const open = opts.direction === "open";
|
|
950
|
-
const t = (0,
|
|
1135
|
+
const t = (0, import_remotion4.interpolate)(frame, [start, durationInFrames], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
951
1136
|
const radiusPct = open ? 150 * (1 - t) : 150 * t;
|
|
952
1137
|
clipPath = `circle(${radiusPct}% at ${Math.round(opts.center.x * 100)}% ${Math.round(opts.center.y * 100)}%)`;
|
|
953
1138
|
}
|
|
954
1139
|
}
|
|
955
1140
|
const transform = `translate(${translateX}px, ${translateY}px) scale(${scale})`;
|
|
956
|
-
return /* @__PURE__ */ (0,
|
|
1141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_remotion4.AbsoluteFill, { style: { opacity, transform, clipPath, filter }, children });
|
|
957
1142
|
};
|
|
958
1143
|
var SegmentComponentMetadata = {
|
|
959
1144
|
kind: "primitive",
|
|
@@ -966,18 +1151,18 @@ var SegmentComponentMetadata = {
|
|
|
966
1151
|
};
|
|
967
1152
|
|
|
968
1153
|
// src/components/primitives/Shape.tsx
|
|
969
|
-
var
|
|
970
|
-
var
|
|
971
|
-
var ShapePropsSchema =
|
|
972
|
-
shape:
|
|
973
|
-
x:
|
|
974
|
-
y:
|
|
975
|
-
width:
|
|
976
|
-
height:
|
|
977
|
-
fill:
|
|
978
|
-
strokeColor:
|
|
979
|
-
strokeWidth:
|
|
980
|
-
opacity:
|
|
1154
|
+
var import_zod12 = require("zod");
|
|
1155
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1156
|
+
var ShapePropsSchema = import_zod12.z.object({
|
|
1157
|
+
shape: import_zod12.z.enum(["rect", "circle"]).default("rect"),
|
|
1158
|
+
x: import_zod12.z.number().default(0),
|
|
1159
|
+
y: import_zod12.z.number().default(0),
|
|
1160
|
+
width: import_zod12.z.number().positive().default(100),
|
|
1161
|
+
height: import_zod12.z.number().positive().default(100),
|
|
1162
|
+
fill: import_zod12.z.string().default("#FFFFFF"),
|
|
1163
|
+
strokeColor: import_zod12.z.string().optional(),
|
|
1164
|
+
strokeWidth: import_zod12.z.number().min(0).default(0),
|
|
1165
|
+
opacity: import_zod12.z.number().min(0).max(1).default(1)
|
|
981
1166
|
});
|
|
982
1167
|
var Shape = ({
|
|
983
1168
|
shape,
|
|
@@ -990,7 +1175,7 @@ var Shape = ({
|
|
|
990
1175
|
strokeWidth,
|
|
991
1176
|
opacity
|
|
992
1177
|
}) => {
|
|
993
|
-
return /* @__PURE__ */ (0,
|
|
1178
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
994
1179
|
"div",
|
|
995
1180
|
{
|
|
996
1181
|
style: {
|
|
@@ -1015,15 +1200,14 @@ var ShapeComponentMetadata = {
|
|
|
1015
1200
|
};
|
|
1016
1201
|
|
|
1017
1202
|
// src/components/primitives/Stack.tsx
|
|
1018
|
-
var
|
|
1019
|
-
var
|
|
1020
|
-
var
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
justify: import_zod10.z.enum(["start", "center", "end", "between"]).default("center")
|
|
1203
|
+
var import_zod13 = require("zod");
|
|
1204
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1205
|
+
var StackPropsSchema = import_zod13.z.object({
|
|
1206
|
+
direction: import_zod13.z.enum(["row", "column"]).default("column"),
|
|
1207
|
+
gap: import_zod13.z.number().min(0).default(24),
|
|
1208
|
+
padding: import_zod13.z.number().min(0).default(0),
|
|
1209
|
+
align: import_zod13.z.enum(["start", "center", "end", "stretch"]).default("center"),
|
|
1210
|
+
justify: import_zod13.z.enum(["start", "center", "end", "between"]).default("center")
|
|
1027
1211
|
});
|
|
1028
1212
|
var mapAlign2 = (a) => {
|
|
1029
1213
|
if (a === "start") return "flex-start";
|
|
@@ -1038,8 +1222,8 @@ var mapJustify2 = (j) => {
|
|
|
1038
1222
|
return "center";
|
|
1039
1223
|
};
|
|
1040
1224
|
var Stack = ({ direction, gap, padding, align, justify, children }) => {
|
|
1041
|
-
return /* @__PURE__ */ (0,
|
|
1042
|
-
|
|
1225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1226
|
+
Fill,
|
|
1043
1227
|
{
|
|
1044
1228
|
style: {
|
|
1045
1229
|
display: "flex",
|
|
@@ -1063,17 +1247,22 @@ var StackComponentMetadata = {
|
|
|
1063
1247
|
};
|
|
1064
1248
|
|
|
1065
1249
|
// src/components/primitives/Text.tsx
|
|
1066
|
-
var
|
|
1067
|
-
var
|
|
1068
|
-
var
|
|
1069
|
-
var TextPropsSchema =
|
|
1070
|
-
content:
|
|
1071
|
-
fontSize:
|
|
1072
|
-
color:
|
|
1073
|
-
|
|
1074
|
-
|
|
1250
|
+
var import_remotion5 = require("remotion");
|
|
1251
|
+
var import_zod14 = require("zod");
|
|
1252
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1253
|
+
var TextPropsSchema = import_zod14.z.object({
|
|
1254
|
+
content: import_zod14.z.string(),
|
|
1255
|
+
fontSize: import_zod14.z.number().default(48),
|
|
1256
|
+
color: import_zod14.z.string().default("#FFFFFF"),
|
|
1257
|
+
fontFamily: import_zod14.z.string().default("Inter"),
|
|
1258
|
+
position: import_zod14.z.enum(["top", "center", "bottom", "left", "right"]).default("center"),
|
|
1259
|
+
animation: import_zod14.z.enum(["none", "fade", "slide", "zoom"]).default("fade"),
|
|
1260
|
+
maxWidthPct: import_zod14.z.number().min(0.1).max(1).default(0.9),
|
|
1261
|
+
safeInsetPct: import_zod14.z.number().min(0).max(0.25).default(0.06),
|
|
1262
|
+
textAlign: import_zod14.z.enum(["left", "center", "right"]).default("center")
|
|
1075
1263
|
});
|
|
1076
|
-
var getPositionStyles = (position) => {
|
|
1264
|
+
var getPositionStyles = (position, safeInsetPct) => {
|
|
1265
|
+
const inset = `${(safeInsetPct * 100).toFixed(2)}%`;
|
|
1077
1266
|
const base = {
|
|
1078
1267
|
display: "flex",
|
|
1079
1268
|
justifyContent: "center",
|
|
@@ -1081,13 +1270,13 @@ var getPositionStyles = (position) => {
|
|
|
1081
1270
|
};
|
|
1082
1271
|
switch (position) {
|
|
1083
1272
|
case "top":
|
|
1084
|
-
return { ...base, alignItems: "flex-start", paddingTop:
|
|
1273
|
+
return { ...base, alignItems: "flex-start", paddingTop: inset };
|
|
1085
1274
|
case "bottom":
|
|
1086
|
-
return { ...base, alignItems: "flex-end", paddingBottom:
|
|
1275
|
+
return { ...base, alignItems: "flex-end", paddingBottom: inset };
|
|
1087
1276
|
case "left":
|
|
1088
|
-
return { ...base, justifyContent: "flex-start", paddingLeft:
|
|
1277
|
+
return { ...base, justifyContent: "flex-start", paddingLeft: inset };
|
|
1089
1278
|
case "right":
|
|
1090
|
-
return { ...base, justifyContent: "flex-end", paddingRight:
|
|
1279
|
+
return { ...base, justifyContent: "flex-end", paddingRight: inset };
|
|
1091
1280
|
default:
|
|
1092
1281
|
return base;
|
|
1093
1282
|
}
|
|
@@ -1096,29 +1285,29 @@ var getAnimationStyle = (frame, animation) => {
|
|
|
1096
1285
|
const animDuration = 30;
|
|
1097
1286
|
switch (animation) {
|
|
1098
1287
|
case "fade": {
|
|
1099
|
-
const opacity = (0,
|
|
1288
|
+
const opacity = (0, import_remotion5.interpolate)(frame, [0, animDuration], [0, 1], {
|
|
1100
1289
|
extrapolateLeft: "clamp",
|
|
1101
1290
|
extrapolateRight: "clamp"
|
|
1102
1291
|
});
|
|
1103
1292
|
return { opacity };
|
|
1104
1293
|
}
|
|
1105
1294
|
case "slide": {
|
|
1106
|
-
const translateY = (0,
|
|
1295
|
+
const translateY = (0, import_remotion5.interpolate)(frame, [0, animDuration], [50, 0], {
|
|
1107
1296
|
extrapolateLeft: "clamp",
|
|
1108
1297
|
extrapolateRight: "clamp"
|
|
1109
1298
|
});
|
|
1110
|
-
const opacity = (0,
|
|
1299
|
+
const opacity = (0, import_remotion5.interpolate)(frame, [0, animDuration], [0, 1], {
|
|
1111
1300
|
extrapolateLeft: "clamp",
|
|
1112
1301
|
extrapolateRight: "clamp"
|
|
1113
1302
|
});
|
|
1114
1303
|
return { transform: `translateY(${translateY}px)`, opacity };
|
|
1115
1304
|
}
|
|
1116
1305
|
case "zoom": {
|
|
1117
|
-
const scale = (0,
|
|
1306
|
+
const scale = (0, import_remotion5.interpolate)(frame, [0, animDuration], [0.8, 1], {
|
|
1118
1307
|
extrapolateLeft: "clamp",
|
|
1119
1308
|
extrapolateRight: "clamp"
|
|
1120
1309
|
});
|
|
1121
|
-
const opacity = (0,
|
|
1310
|
+
const opacity = (0, import_remotion5.interpolate)(frame, [0, animDuration], [0, 1], {
|
|
1122
1311
|
extrapolateLeft: "clamp",
|
|
1123
1312
|
extrapolateRight: "clamp"
|
|
1124
1313
|
});
|
|
@@ -1128,18 +1317,32 @@ var getAnimationStyle = (frame, animation) => {
|
|
|
1128
1317
|
return {};
|
|
1129
1318
|
}
|
|
1130
1319
|
};
|
|
1131
|
-
var Text = ({
|
|
1132
|
-
|
|
1133
|
-
|
|
1320
|
+
var Text = ({
|
|
1321
|
+
content,
|
|
1322
|
+
fontSize,
|
|
1323
|
+
color,
|
|
1324
|
+
fontFamily,
|
|
1325
|
+
position,
|
|
1326
|
+
animation,
|
|
1327
|
+
maxWidthPct,
|
|
1328
|
+
safeInsetPct,
|
|
1329
|
+
textAlign
|
|
1330
|
+
}) => {
|
|
1331
|
+
const frame = (0, import_remotion5.useCurrentFrame)();
|
|
1332
|
+
const positionStyles6 = getPositionStyles(position, safeInsetPct);
|
|
1134
1333
|
const animationStyles = getAnimationStyle(frame, animation);
|
|
1135
|
-
return /* @__PURE__ */ (0,
|
|
1334
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Fill, { style: positionStyles6, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1136
1335
|
"div",
|
|
1137
1336
|
{
|
|
1138
1337
|
style: {
|
|
1139
1338
|
fontSize,
|
|
1140
1339
|
color,
|
|
1340
|
+
fontFamily,
|
|
1141
1341
|
fontWeight: 600,
|
|
1142
|
-
textAlign
|
|
1342
|
+
textAlign,
|
|
1343
|
+
maxWidth: `${Math.round(maxWidthPct * 100)}%`,
|
|
1344
|
+
overflowWrap: "anywhere",
|
|
1345
|
+
wordBreak: "break-word",
|
|
1143
1346
|
...animationStyles
|
|
1144
1347
|
},
|
|
1145
1348
|
children: content
|
|
@@ -1170,20 +1373,20 @@ var TextComponentMetadata = {
|
|
|
1170
1373
|
};
|
|
1171
1374
|
|
|
1172
1375
|
// src/components/primitives/Video.tsx
|
|
1173
|
-
var
|
|
1174
|
-
var
|
|
1175
|
-
var
|
|
1176
|
-
var VideoPropsSchema =
|
|
1177
|
-
src:
|
|
1178
|
-
fit:
|
|
1179
|
-
borderRadius:
|
|
1180
|
-
opacity:
|
|
1181
|
-
muted:
|
|
1376
|
+
var import_remotion6 = require("remotion");
|
|
1377
|
+
var import_zod15 = require("zod");
|
|
1378
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1379
|
+
var VideoPropsSchema = import_zod15.z.object({
|
|
1380
|
+
src: import_zod15.z.string().min(1),
|
|
1381
|
+
fit: import_zod15.z.enum(["cover", "contain"]).default("cover"),
|
|
1382
|
+
borderRadius: import_zod15.z.number().min(0).default(0),
|
|
1383
|
+
opacity: import_zod15.z.number().min(0).max(1).default(1),
|
|
1384
|
+
muted: import_zod15.z.boolean().default(true)
|
|
1182
1385
|
});
|
|
1183
|
-
var resolveAsset3 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
1386
|
+
var resolveAsset3 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion6.staticFile)(staticFileInputFromAssetPath(value));
|
|
1184
1387
|
var Video2 = ({ src, fit, borderRadius, opacity, muted }) => {
|
|
1185
|
-
return /* @__PURE__ */ (0,
|
|
1186
|
-
|
|
1388
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Fill, { style: { opacity }, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1389
|
+
import_remotion6.Video,
|
|
1187
1390
|
{
|
|
1188
1391
|
src: resolveAsset3(src),
|
|
1189
1392
|
muted,
|
|
@@ -1199,19 +1402,19 @@ var VideoComponentMetadata = {
|
|
|
1199
1402
|
};
|
|
1200
1403
|
|
|
1201
1404
|
// src/components/composites/AnimatedCounter.tsx
|
|
1202
|
-
var
|
|
1203
|
-
var
|
|
1204
|
-
var
|
|
1205
|
-
var AnimatedCounterPropsSchema =
|
|
1206
|
-
from:
|
|
1207
|
-
to:
|
|
1208
|
-
fontSize:
|
|
1209
|
-
color:
|
|
1210
|
-
fontFamily:
|
|
1211
|
-
fontWeight:
|
|
1212
|
-
icon:
|
|
1213
|
-
suffix:
|
|
1214
|
-
animationType:
|
|
1405
|
+
var import_remotion7 = require("remotion");
|
|
1406
|
+
var import_zod16 = require("zod");
|
|
1407
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1408
|
+
var AnimatedCounterPropsSchema = import_zod16.z.object({
|
|
1409
|
+
from: import_zod16.z.number().default(0),
|
|
1410
|
+
to: import_zod16.z.number().default(100),
|
|
1411
|
+
fontSize: import_zod16.z.number().min(8).max(300).default(96),
|
|
1412
|
+
color: import_zod16.z.string().default("#FFFFFF"),
|
|
1413
|
+
fontFamily: import_zod16.z.string().default("Inter"),
|
|
1414
|
+
fontWeight: import_zod16.z.number().int().min(100).max(900).default(700),
|
|
1415
|
+
icon: import_zod16.z.string().optional(),
|
|
1416
|
+
suffix: import_zod16.z.string().optional(),
|
|
1417
|
+
animationType: import_zod16.z.enum(["spring", "linear"]).default("spring")
|
|
1215
1418
|
});
|
|
1216
1419
|
var AnimatedCounter = ({
|
|
1217
1420
|
from,
|
|
@@ -1225,16 +1428,16 @@ var AnimatedCounter = ({
|
|
|
1225
1428
|
animationType,
|
|
1226
1429
|
__wavesDurationInFrames
|
|
1227
1430
|
}) => {
|
|
1228
|
-
const frame = (0,
|
|
1229
|
-
const { fps } = (0,
|
|
1431
|
+
const frame = (0, import_remotion7.useCurrentFrame)();
|
|
1432
|
+
const { fps } = (0, import_remotion7.useVideoConfig)();
|
|
1230
1433
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1231
|
-
const progress = animationType === "spring" ? (0,
|
|
1434
|
+
const progress = animationType === "spring" ? (0, import_remotion7.spring)({ frame, fps, config: { damping: 14, stiffness: 110, mass: 0.9 } }) : (0, import_remotion7.interpolate)(frame, [0, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1232
1435
|
const value = from + (to - from) * Math.max(0, Math.min(1, progress));
|
|
1233
1436
|
const rounded = Math.round(value);
|
|
1234
1437
|
const label = `${rounded.toLocaleString()}${suffix ?? ""}`;
|
|
1235
|
-
return /* @__PURE__ */ (0,
|
|
1236
|
-
icon ? /* @__PURE__ */ (0,
|
|
1237
|
-
/* @__PURE__ */ (0,
|
|
1438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Fill, { style: { display: "flex", alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { textAlign: "center" }, children: [
|
|
1439
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { fontSize: Math.round(fontSize * 0.5), marginBottom: 18 }, children: icon }) : null,
|
|
1440
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { style: { fontSize, color, fontFamily, fontWeight, lineHeight: 1 }, children: label })
|
|
1238
1441
|
] }) });
|
|
1239
1442
|
};
|
|
1240
1443
|
var AnimatedCounterComponentMetadata = {
|
|
@@ -1249,27 +1452,27 @@ var AnimatedCounterComponentMetadata = {
|
|
|
1249
1452
|
};
|
|
1250
1453
|
|
|
1251
1454
|
// src/components/composites/BarChart.tsx
|
|
1252
|
-
var
|
|
1253
|
-
var
|
|
1254
|
-
var
|
|
1255
|
-
var BarChartPropsSchema =
|
|
1256
|
-
data:
|
|
1257
|
-
label:
|
|
1258
|
-
value:
|
|
1259
|
-
color:
|
|
1455
|
+
var import_remotion8 = require("remotion");
|
|
1456
|
+
var import_zod17 = require("zod");
|
|
1457
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1458
|
+
var BarChartPropsSchema = import_zod17.z.object({
|
|
1459
|
+
data: import_zod17.z.array(import_zod17.z.object({
|
|
1460
|
+
label: import_zod17.z.string().min(1),
|
|
1461
|
+
value: import_zod17.z.number(),
|
|
1462
|
+
color: import_zod17.z.string().optional()
|
|
1260
1463
|
})).min(2).max(8),
|
|
1261
|
-
orientation:
|
|
1262
|
-
showValues:
|
|
1263
|
-
showGrid:
|
|
1264
|
-
maxValue:
|
|
1464
|
+
orientation: import_zod17.z.enum(["horizontal", "vertical"]).default("vertical"),
|
|
1465
|
+
showValues: import_zod17.z.boolean().default(true),
|
|
1466
|
+
showGrid: import_zod17.z.boolean().default(false),
|
|
1467
|
+
maxValue: import_zod17.z.number().optional()
|
|
1265
1468
|
});
|
|
1266
1469
|
var BarChart = ({ data, orientation, showValues, showGrid, maxValue }) => {
|
|
1267
|
-
const frame = (0,
|
|
1268
|
-
const { fps } = (0,
|
|
1470
|
+
const frame = (0, import_remotion8.useCurrentFrame)();
|
|
1471
|
+
const { fps } = (0, import_remotion8.useVideoConfig)();
|
|
1269
1472
|
const max = maxValue ?? Math.max(...data.map((d) => d.value));
|
|
1270
|
-
return /* @__PURE__ */ (0,
|
|
1271
|
-
showGrid ? /* @__PURE__ */ (0,
|
|
1272
|
-
/* @__PURE__ */ (0,
|
|
1473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Fill, { style: { padding: 90, boxSizing: "border-box" }, children: [
|
|
1474
|
+
showGrid ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { position: "absolute", left: 90, right: 90, top: 90, bottom: 90, opacity: 0.15, backgroundImage: "linear-gradient(#fff 1px, transparent 1px)", backgroundSize: "100% 60px" } }) : null,
|
|
1475
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1273
1476
|
"div",
|
|
1274
1477
|
{
|
|
1275
1478
|
style: {
|
|
@@ -1282,13 +1485,13 @@ var BarChart = ({ data, orientation, showValues, showGrid, maxValue }) => {
|
|
|
1282
1485
|
justifyContent: "space-between"
|
|
1283
1486
|
},
|
|
1284
1487
|
children: data.map((d, i) => {
|
|
1285
|
-
const p = (0,
|
|
1488
|
+
const p = (0, import_remotion8.spring)({ frame: frame - i * 4, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
1286
1489
|
const ratio = max === 0 ? 0 : d.value / max * p;
|
|
1287
1490
|
const color = d.color ?? "#0A84FF";
|
|
1288
|
-
return /* @__PURE__ */ (0,
|
|
1289
|
-
orientation === "vertical" ? /* @__PURE__ */ (0,
|
|
1290
|
-
/* @__PURE__ */ (0,
|
|
1291
|
-
showValues ? /* @__PURE__ */ (0,
|
|
1491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { flex: 1, display: "flex", flexDirection: "column", alignItems: "center", gap: 10 }, children: [
|
|
1492
|
+
orientation === "vertical" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { width: "100%", flex: 1, display: "flex", alignItems: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { width: "100%", height: `${Math.round(ratio * 100)}%`, backgroundColor: color, borderRadius: 12 } }) }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { width: "100%", display: "flex", alignItems: "center", gap: 12 }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { flex: 1, height: 18, backgroundColor: "rgba(255,255,255,0.15)", borderRadius: 9999, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { width: `${Math.round(ratio * 100)}%`, height: "100%", backgroundColor: color } }) }) }),
|
|
1493
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { color: "#FFFFFF", fontWeight: 700, fontSize: 22, opacity: 0.9 }, children: d.label }),
|
|
1494
|
+
showValues ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { color: "#FFFFFF", fontWeight: 800, fontSize: 26 }, children: Math.round(d.value).toLocaleString() }) : null
|
|
1292
1495
|
] }, d.label);
|
|
1293
1496
|
})
|
|
1294
1497
|
}
|
|
@@ -1303,31 +1506,31 @@ var BarChartComponentMetadata = {
|
|
|
1303
1506
|
};
|
|
1304
1507
|
|
|
1305
1508
|
// src/components/composites/CardStack.tsx
|
|
1306
|
-
var
|
|
1307
|
-
var
|
|
1308
|
-
var
|
|
1309
|
-
var CardSchema =
|
|
1310
|
-
title:
|
|
1311
|
-
content:
|
|
1312
|
-
backgroundColor:
|
|
1509
|
+
var import_remotion9 = require("remotion");
|
|
1510
|
+
var import_zod18 = require("zod");
|
|
1511
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1512
|
+
var CardSchema = import_zod18.z.object({
|
|
1513
|
+
title: import_zod18.z.string().min(1),
|
|
1514
|
+
content: import_zod18.z.string().min(1),
|
|
1515
|
+
backgroundColor: import_zod18.z.string().optional()
|
|
1313
1516
|
});
|
|
1314
|
-
var CardStackPropsSchema =
|
|
1315
|
-
cards:
|
|
1316
|
-
transition:
|
|
1317
|
-
displayDuration:
|
|
1517
|
+
var CardStackPropsSchema = import_zod18.z.object({
|
|
1518
|
+
cards: import_zod18.z.array(CardSchema).min(2).max(5),
|
|
1519
|
+
transition: import_zod18.z.enum(["flip", "slide", "fade"]).default("flip"),
|
|
1520
|
+
displayDuration: import_zod18.z.number().int().min(30).max(150).default(90)
|
|
1318
1521
|
});
|
|
1319
1522
|
var CardStack = ({ cards, transition, displayDuration }) => {
|
|
1320
|
-
const frame = (0,
|
|
1321
|
-
const { fps } = (0,
|
|
1523
|
+
const frame = (0, import_remotion9.useCurrentFrame)();
|
|
1524
|
+
const { fps } = (0, import_remotion9.useVideoConfig)();
|
|
1322
1525
|
const index = Math.min(cards.length - 1, Math.floor(frame / displayDuration));
|
|
1323
1526
|
const local = frame - index * displayDuration;
|
|
1324
|
-
const p = (0,
|
|
1527
|
+
const p = (0, import_remotion9.spring)({ frame: local, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
1325
1528
|
const card = cards[index];
|
|
1326
1529
|
const bg = card.backgroundColor ?? "rgba(255,255,255,0.1)";
|
|
1327
1530
|
const opacity = transition === "fade" ? p : 1;
|
|
1328
|
-
const slideX = transition === "slide" ? (0,
|
|
1329
|
-
const rotateY = transition === "flip" ? (0,
|
|
1330
|
-
return /* @__PURE__ */ (0,
|
|
1531
|
+
const slideX = transition === "slide" ? (0, import_remotion9.interpolate)(p, [0, 1], [80, 0]) : 0;
|
|
1532
|
+
const rotateY = transition === "flip" ? (0, import_remotion9.interpolate)(p, [0, 1], [70, 0]) : 0;
|
|
1533
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Fill, { style: { display: "flex", justifyContent: "center", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1331
1534
|
"div",
|
|
1332
1535
|
{
|
|
1333
1536
|
style: {
|
|
@@ -1344,8 +1547,8 @@ var CardStack = ({ cards, transition, displayDuration }) => {
|
|
|
1344
1547
|
opacity
|
|
1345
1548
|
},
|
|
1346
1549
|
children: [
|
|
1347
|
-
/* @__PURE__ */ (0,
|
|
1348
|
-
/* @__PURE__ */ (0,
|
|
1550
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { fontSize: 56, fontWeight: 900, marginBottom: 22 }, children: card.title }),
|
|
1551
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { fontSize: 30, fontWeight: 700, opacity: 0.9, lineHeight: 1.3 }, children: card.content })
|
|
1349
1552
|
]
|
|
1350
1553
|
}
|
|
1351
1554
|
) });
|
|
@@ -1358,18 +1561,19 @@ var CardStackComponentMetadata = {
|
|
|
1358
1561
|
};
|
|
1359
1562
|
|
|
1360
1563
|
// src/components/composites/CircularReveal.tsx
|
|
1361
|
-
var
|
|
1362
|
-
var
|
|
1363
|
-
var
|
|
1364
|
-
var
|
|
1365
|
-
|
|
1366
|
-
|
|
1564
|
+
var import_react5 = __toESM(require("react"));
|
|
1565
|
+
var import_remotion10 = require("remotion");
|
|
1566
|
+
var import_zod19 = require("zod");
|
|
1567
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1568
|
+
var CenterSchema = import_zod19.z.object({
|
|
1569
|
+
x: import_zod19.z.number().min(0).max(1).default(0.5),
|
|
1570
|
+
y: import_zod19.z.number().min(0).max(1).default(0.5)
|
|
1367
1571
|
});
|
|
1368
|
-
var CircularRevealPropsSchema =
|
|
1369
|
-
durationInFrames:
|
|
1370
|
-
direction:
|
|
1572
|
+
var CircularRevealPropsSchema = import_zod19.z.object({
|
|
1573
|
+
durationInFrames: import_zod19.z.number().int().min(10).max(60).default(30),
|
|
1574
|
+
direction: import_zod19.z.enum(["open", "close"]).default("open"),
|
|
1371
1575
|
center: CenterSchema.optional(),
|
|
1372
|
-
phase:
|
|
1576
|
+
phase: import_zod19.z.enum(["in", "out", "inOut"]).default("inOut")
|
|
1373
1577
|
});
|
|
1374
1578
|
var CircularReveal = ({
|
|
1375
1579
|
durationInFrames,
|
|
@@ -1379,22 +1583,23 @@ var CircularReveal = ({
|
|
|
1379
1583
|
children,
|
|
1380
1584
|
__wavesDurationInFrames
|
|
1381
1585
|
}) => {
|
|
1382
|
-
const
|
|
1586
|
+
const layers = import_react5.default.Children.toArray(children);
|
|
1587
|
+
const frame = (0, import_remotion10.useCurrentFrame)();
|
|
1383
1588
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1384
1589
|
const d = Math.min(durationInFrames, total);
|
|
1385
1590
|
const c = center ?? { x: 0.5, y: 0.5 };
|
|
1386
1591
|
const open = direction === "open";
|
|
1387
1592
|
let radiusPct = open ? 0 : 150;
|
|
1388
1593
|
if (phase === "in" || phase === "inOut") {
|
|
1389
|
-
const t = (0,
|
|
1594
|
+
const t = (0, import_remotion10.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1390
1595
|
radiusPct = open ? 150 * t : 150 * (1 - t);
|
|
1391
1596
|
}
|
|
1392
1597
|
if (phase === "out" || phase === "inOut") {
|
|
1393
1598
|
const start = Math.max(0, total - d);
|
|
1394
|
-
const t = (0,
|
|
1599
|
+
const t = (0, import_remotion10.interpolate)(frame, [start, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1395
1600
|
radiusPct = open ? 150 * (1 - t) : 150 * t;
|
|
1396
1601
|
}
|
|
1397
|
-
return /* @__PURE__ */ (0,
|
|
1602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Fill, { style: { clipPath: `circle(${radiusPct}% at ${Math.round(c.x * 100)}% ${Math.round(c.y * 100)}%)` }, children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) });
|
|
1398
1603
|
};
|
|
1399
1604
|
var CircularRevealComponentMetadata = {
|
|
1400
1605
|
kind: "composite",
|
|
@@ -1406,21 +1611,21 @@ var CircularRevealComponentMetadata = {
|
|
|
1406
1611
|
};
|
|
1407
1612
|
|
|
1408
1613
|
// src/components/composites/CountUpText.tsx
|
|
1409
|
-
var
|
|
1410
|
-
var
|
|
1411
|
-
var
|
|
1412
|
-
var CountUpTextPropsSchema =
|
|
1413
|
-
from:
|
|
1414
|
-
to:
|
|
1415
|
-
fontSize:
|
|
1416
|
-
color:
|
|
1417
|
-
fontFamily:
|
|
1418
|
-
fontWeight:
|
|
1419
|
-
position:
|
|
1420
|
-
format:
|
|
1421
|
-
decimals:
|
|
1422
|
-
prefix:
|
|
1423
|
-
suffix:
|
|
1614
|
+
var import_remotion11 = require("remotion");
|
|
1615
|
+
var import_zod20 = require("zod");
|
|
1616
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1617
|
+
var CountUpTextPropsSchema = import_zod20.z.object({
|
|
1618
|
+
from: import_zod20.z.number().default(0),
|
|
1619
|
+
to: import_zod20.z.number().default(100),
|
|
1620
|
+
fontSize: import_zod20.z.number().min(8).max(240).default(72),
|
|
1621
|
+
color: import_zod20.z.string().default("#FFFFFF"),
|
|
1622
|
+
fontFamily: import_zod20.z.string().default("Inter"),
|
|
1623
|
+
fontWeight: import_zod20.z.number().int().min(100).max(900).default(700),
|
|
1624
|
+
position: import_zod20.z.enum(["top", "center", "bottom"]).default("center"),
|
|
1625
|
+
format: import_zod20.z.enum(["integer", "decimal", "currency", "percentage"]).default("integer"),
|
|
1626
|
+
decimals: import_zod20.z.number().int().min(0).max(4).default(0),
|
|
1627
|
+
prefix: import_zod20.z.string().optional(),
|
|
1628
|
+
suffix: import_zod20.z.string().optional()
|
|
1424
1629
|
});
|
|
1425
1630
|
var positionStyles = (position) => {
|
|
1426
1631
|
if (position === "top") return { justifyContent: "center", alignItems: "flex-start", paddingTop: 90 };
|
|
@@ -1447,15 +1652,15 @@ var CountUpText = ({
|
|
|
1447
1652
|
suffix,
|
|
1448
1653
|
__wavesDurationInFrames
|
|
1449
1654
|
}) => {
|
|
1450
|
-
const frame = (0,
|
|
1451
|
-
const { fps } = (0,
|
|
1655
|
+
const frame = (0, import_remotion11.useCurrentFrame)();
|
|
1656
|
+
const { fps } = (0, import_remotion11.useVideoConfig)();
|
|
1452
1657
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1453
|
-
const p = (0,
|
|
1658
|
+
const p = (0, import_remotion11.spring)({ frame, fps, config: { damping: 14, stiffness: 110, mass: 0.9 } });
|
|
1454
1659
|
const progress = Math.max(0, Math.min(1, p));
|
|
1455
1660
|
const value = from + (to - from) * progress;
|
|
1456
|
-
const fade = (0,
|
|
1661
|
+
const fade = (0, import_remotion11.interpolate)(frame, [0, Math.min(12, total)], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1457
1662
|
const label = `${prefix ?? ""}${formatValue(value, format, decimals)}${suffix ?? ""}`;
|
|
1458
|
-
return /* @__PURE__ */ (0,
|
|
1663
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Fill, { style: { display: "flex", ...positionStyles(position) }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: { fontSize, color, fontFamily, fontWeight, opacity: fade, lineHeight: 1 }, children: label }) });
|
|
1459
1664
|
};
|
|
1460
1665
|
var CountUpTextComponentMetadata = {
|
|
1461
1666
|
kind: "composite",
|
|
@@ -1465,10 +1670,11 @@ var CountUpTextComponentMetadata = {
|
|
|
1465
1670
|
};
|
|
1466
1671
|
|
|
1467
1672
|
// src/components/composites/FadeTransition.tsx
|
|
1468
|
-
var
|
|
1469
|
-
var
|
|
1470
|
-
var
|
|
1471
|
-
var
|
|
1673
|
+
var import_react6 = __toESM(require("react"));
|
|
1674
|
+
var import_remotion12 = require("remotion");
|
|
1675
|
+
var import_zod21 = require("zod");
|
|
1676
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1677
|
+
var EasingSchema = import_zod21.z.enum(["linear", "easeIn", "easeOut", "easeInOut"]);
|
|
1472
1678
|
function ease(t, easing) {
|
|
1473
1679
|
const x = Math.max(0, Math.min(1, t));
|
|
1474
1680
|
if (easing === "linear") return x;
|
|
@@ -1476,10 +1682,10 @@ function ease(t, easing) {
|
|
|
1476
1682
|
if (easing === "easeOut") return 1 - (1 - x) * (1 - x);
|
|
1477
1683
|
return x < 0.5 ? 2 * x * x : 1 - 2 * (1 - x) * (1 - x);
|
|
1478
1684
|
}
|
|
1479
|
-
var FadeTransitionPropsSchema =
|
|
1480
|
-
durationInFrames:
|
|
1685
|
+
var FadeTransitionPropsSchema = import_zod21.z.object({
|
|
1686
|
+
durationInFrames: import_zod21.z.number().int().min(10).max(60).default(30),
|
|
1481
1687
|
easing: EasingSchema.default("easeInOut"),
|
|
1482
|
-
phase:
|
|
1688
|
+
phase: import_zod21.z.enum(["in", "out", "inOut"]).default("inOut")
|
|
1483
1689
|
});
|
|
1484
1690
|
var FadeTransition = ({
|
|
1485
1691
|
durationInFrames,
|
|
@@ -1488,20 +1694,21 @@ var FadeTransition = ({
|
|
|
1488
1694
|
children,
|
|
1489
1695
|
__wavesDurationInFrames
|
|
1490
1696
|
}) => {
|
|
1491
|
-
const
|
|
1697
|
+
const layers = import_react6.default.Children.toArray(children);
|
|
1698
|
+
const frame = (0, import_remotion12.useCurrentFrame)();
|
|
1492
1699
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1493
1700
|
const d = Math.min(durationInFrames, total);
|
|
1494
1701
|
let opacity = 1;
|
|
1495
1702
|
if (phase === "in" || phase === "inOut") {
|
|
1496
|
-
const t = (0,
|
|
1703
|
+
const t = (0, import_remotion12.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1497
1704
|
opacity *= ease(t, easing);
|
|
1498
1705
|
}
|
|
1499
1706
|
if (phase === "out" || phase === "inOut") {
|
|
1500
1707
|
const start = Math.max(0, total - d);
|
|
1501
|
-
const t = (0,
|
|
1708
|
+
const t = (0, import_remotion12.interpolate)(frame, [start, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1502
1709
|
opacity *= 1 - ease(t, easing);
|
|
1503
1710
|
}
|
|
1504
|
-
return /* @__PURE__ */ (0,
|
|
1711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Fill, { style: { opacity }, children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) });
|
|
1505
1712
|
};
|
|
1506
1713
|
var FadeTransitionComponentMetadata = {
|
|
1507
1714
|
kind: "composite",
|
|
@@ -1513,17 +1720,17 @@ var FadeTransitionComponentMetadata = {
|
|
|
1513
1720
|
};
|
|
1514
1721
|
|
|
1515
1722
|
// src/components/composites/GlitchText.tsx
|
|
1516
|
-
var
|
|
1517
|
-
var
|
|
1518
|
-
var
|
|
1519
|
-
var GlitchTextPropsSchema =
|
|
1520
|
-
content:
|
|
1521
|
-
fontSize:
|
|
1522
|
-
color:
|
|
1523
|
-
fontFamily:
|
|
1524
|
-
position:
|
|
1525
|
-
intensity:
|
|
1526
|
-
glitchDuration:
|
|
1723
|
+
var import_remotion13 = require("remotion");
|
|
1724
|
+
var import_zod22 = require("zod");
|
|
1725
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1726
|
+
var GlitchTextPropsSchema = import_zod22.z.object({
|
|
1727
|
+
content: import_zod22.z.string().max(100),
|
|
1728
|
+
fontSize: import_zod22.z.number().min(8).max(240).default(72),
|
|
1729
|
+
color: import_zod22.z.string().default("#FFFFFF"),
|
|
1730
|
+
fontFamily: import_zod22.z.string().default("monospace"),
|
|
1731
|
+
position: import_zod22.z.enum(["top", "center", "bottom"]).default("center"),
|
|
1732
|
+
intensity: import_zod22.z.number().int().min(1).max(10).default(5),
|
|
1733
|
+
glitchDuration: import_zod22.z.number().int().min(5).max(30).default(10)
|
|
1527
1734
|
});
|
|
1528
1735
|
var positionStyles2 = (position) => {
|
|
1529
1736
|
if (position === "top") return { justifyContent: "center", alignItems: "flex-start", paddingTop: 90 };
|
|
@@ -1543,7 +1750,7 @@ var GlitchText = ({
|
|
|
1543
1750
|
intensity,
|
|
1544
1751
|
glitchDuration
|
|
1545
1752
|
}) => {
|
|
1546
|
-
const frame = (0,
|
|
1753
|
+
const frame = (0, import_remotion13.useCurrentFrame)();
|
|
1547
1754
|
const active = frame < glitchDuration;
|
|
1548
1755
|
const seed = frame + 1;
|
|
1549
1756
|
const jitter = active ? (pseudoRandom(seed) - 0.5) * intensity * 6 : 0;
|
|
@@ -1557,10 +1764,10 @@ var GlitchText = ({
|
|
|
1557
1764
|
textTransform: "uppercase",
|
|
1558
1765
|
textAlign: "center"
|
|
1559
1766
|
};
|
|
1560
|
-
return /* @__PURE__ */ (0,
|
|
1561
|
-
/* @__PURE__ */ (0,
|
|
1562
|
-
/* @__PURE__ */ (0,
|
|
1563
|
-
/* @__PURE__ */ (0,
|
|
1767
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Fill, { style: { display: "flex", ...positionStyles2(position) }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { position: "relative" }, children: [
|
|
1768
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { ...baseStyle, color, transform: `translate(${jitter}px, ${jitterY}px)` }, children: content }),
|
|
1769
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { ...baseStyle, color: "#FF3B30", transform: `translate(${jitter + 4}px, ${jitterY}px)`, mixBlendMode: "screen", opacity: active ? 0.9 : 0 }, children: content }),
|
|
1770
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { ...baseStyle, color: "#0A84FF", transform: `translate(${jitter - 4}px, ${jitterY}px)`, mixBlendMode: "screen", opacity: active ? 0.9 : 0 }, children: content })
|
|
1564
1771
|
] }) });
|
|
1565
1772
|
};
|
|
1566
1773
|
var GlitchTextComponentMetadata = {
|
|
@@ -1571,17 +1778,16 @@ var GlitchTextComponentMetadata = {
|
|
|
1571
1778
|
};
|
|
1572
1779
|
|
|
1573
1780
|
// src/components/composites/GridLayout.tsx
|
|
1574
|
-
var
|
|
1575
|
-
var
|
|
1576
|
-
var
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
padding: import_zod20.z.number().min(0).max(100).default(40)
|
|
1781
|
+
var import_zod23 = require("zod");
|
|
1782
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1783
|
+
var GridLayoutPropsSchema = import_zod23.z.object({
|
|
1784
|
+
columns: import_zod23.z.number().int().min(1).max(4).default(2),
|
|
1785
|
+
rows: import_zod23.z.number().int().min(1).max(4).default(2),
|
|
1786
|
+
gap: import_zod23.z.number().min(0).max(50).default(20),
|
|
1787
|
+
padding: import_zod23.z.number().min(0).max(100).default(40)
|
|
1582
1788
|
});
|
|
1583
1789
|
var GridLayout = ({ columns, rows, gap, padding, children }) => {
|
|
1584
|
-
return /* @__PURE__ */ (0,
|
|
1790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Fill, { style: { padding, boxSizing: "border-box" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1585
1791
|
"div",
|
|
1586
1792
|
{
|
|
1587
1793
|
style: {
|
|
@@ -1606,23 +1812,23 @@ var GridLayoutComponentMetadata = {
|
|
|
1606
1812
|
};
|
|
1607
1813
|
|
|
1608
1814
|
// src/components/composites/ImageCollage.tsx
|
|
1609
|
-
var
|
|
1610
|
-
var
|
|
1611
|
-
var
|
|
1612
|
-
var ImageCollagePropsSchema =
|
|
1613
|
-
images:
|
|
1614
|
-
layout:
|
|
1615
|
-
stagger:
|
|
1815
|
+
var import_remotion14 = require("remotion");
|
|
1816
|
+
var import_zod24 = require("zod");
|
|
1817
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1818
|
+
var ImageCollagePropsSchema = import_zod24.z.object({
|
|
1819
|
+
images: import_zod24.z.array(import_zod24.z.object({ src: import_zod24.z.string().min(1), caption: import_zod24.z.string().optional() })).min(2).max(9),
|
|
1820
|
+
layout: import_zod24.z.enum(["grid", "stack", "scatter"]).default("grid"),
|
|
1821
|
+
stagger: import_zod24.z.number().int().min(2).max(10).default(5)
|
|
1616
1822
|
});
|
|
1617
|
-
var resolveAsset4 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
1823
|
+
var resolveAsset4 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion14.staticFile)(staticFileInputFromAssetPath(value));
|
|
1618
1824
|
var ImageCollage = ({ images, layout, stagger }) => {
|
|
1619
|
-
const frame = (0,
|
|
1620
|
-
const { fps } = (0,
|
|
1825
|
+
const frame = (0, import_remotion14.useCurrentFrame)();
|
|
1826
|
+
const { fps } = (0, import_remotion14.useVideoConfig)();
|
|
1621
1827
|
const n = images.length;
|
|
1622
1828
|
const cols = Math.ceil(Math.sqrt(n));
|
|
1623
1829
|
const rows = Math.ceil(n / cols);
|
|
1624
1830
|
if (layout === "grid") {
|
|
1625
|
-
return /* @__PURE__ */ (0,
|
|
1831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Fill, { style: { padding: 80, boxSizing: "border-box" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1626
1832
|
"div",
|
|
1627
1833
|
{
|
|
1628
1834
|
style: {
|
|
@@ -1634,21 +1840,21 @@ var ImageCollage = ({ images, layout, stagger }) => {
|
|
|
1634
1840
|
height: "100%"
|
|
1635
1841
|
},
|
|
1636
1842
|
children: images.map((img, i) => {
|
|
1637
|
-
const p = (0,
|
|
1638
|
-
return /* @__PURE__ */ (0,
|
|
1639
|
-
/* @__PURE__ */ (0,
|
|
1640
|
-
img.caption ? /* @__PURE__ */ (0,
|
|
1843
|
+
const p = (0, import_remotion14.spring)({ frame: frame - i * stagger, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
1844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { style: { position: "relative", overflow: "hidden", borderRadius: 18, opacity: p, transform: `scale(${0.92 + 0.08 * p})` }, children: [
|
|
1845
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_remotion14.Img, { src: resolveAsset4(img.src), style: { width: "100%", height: "100%", objectFit: "cover" } }),
|
|
1846
|
+
img.caption ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { style: { position: "absolute", left: 0, right: 0, bottom: 0, padding: 12, background: "linear-gradient(transparent, rgba(0,0,0,0.7))", color: "#fff", fontWeight: 700 }, children: img.caption }) : null
|
|
1641
1847
|
] }, i);
|
|
1642
1848
|
})
|
|
1643
1849
|
}
|
|
1644
1850
|
) });
|
|
1645
1851
|
}
|
|
1646
|
-
return /* @__PURE__ */ (0,
|
|
1647
|
-
const p = (0,
|
|
1852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Fill, { children: images.map((img, i) => {
|
|
1853
|
+
const p = (0, import_remotion14.spring)({ frame: frame - i * stagger, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
1648
1854
|
const baseRotate = layout === "stack" ? (i - (n - 1) / 2) * 4 : i * 17 % 20 - 10;
|
|
1649
1855
|
const baseX = layout === "scatter" ? i * 137 % 300 - 150 : 0;
|
|
1650
1856
|
const baseY = layout === "scatter" ? (i + 3) * 89 % 200 - 100 : 0;
|
|
1651
|
-
return /* @__PURE__ */ (0,
|
|
1857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1652
1858
|
"div",
|
|
1653
1859
|
{
|
|
1654
1860
|
style: {
|
|
@@ -1663,7 +1869,7 @@ var ImageCollage = ({ images, layout, stagger }) => {
|
|
|
1663
1869
|
overflow: "hidden",
|
|
1664
1870
|
boxShadow: "0 20px 60px rgba(0,0,0,0.35)"
|
|
1665
1871
|
},
|
|
1666
|
-
children: /* @__PURE__ */ (0,
|
|
1872
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_remotion14.Img, { src: resolveAsset4(img.src), style: { width: "100%", height: "100%", objectFit: "cover" } })
|
|
1667
1873
|
},
|
|
1668
1874
|
i
|
|
1669
1875
|
);
|
|
@@ -1677,20 +1883,20 @@ var ImageCollageComponentMetadata = {
|
|
|
1677
1883
|
};
|
|
1678
1884
|
|
|
1679
1885
|
// src/components/composites/ImageReveal.tsx
|
|
1680
|
-
var
|
|
1681
|
-
var
|
|
1682
|
-
var
|
|
1683
|
-
var ImageRevealPropsSchema =
|
|
1684
|
-
src:
|
|
1685
|
-
direction:
|
|
1686
|
-
revealType:
|
|
1886
|
+
var import_remotion15 = require("remotion");
|
|
1887
|
+
var import_zod25 = require("zod");
|
|
1888
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1889
|
+
var ImageRevealPropsSchema = import_zod25.z.object({
|
|
1890
|
+
src: import_zod25.z.string().min(1),
|
|
1891
|
+
direction: import_zod25.z.enum(["left", "right", "top", "bottom", "center"]).default("left"),
|
|
1892
|
+
revealType: import_zod25.z.enum(["wipe", "expand", "iris"]).default("wipe")
|
|
1687
1893
|
});
|
|
1688
|
-
var resolveAsset5 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
1894
|
+
var resolveAsset5 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion15.staticFile)(staticFileInputFromAssetPath(value));
|
|
1689
1895
|
var ImageReveal = ({ src, direction, revealType, __wavesDurationInFrames }) => {
|
|
1690
|
-
const frame = (0,
|
|
1896
|
+
const frame = (0, import_remotion15.useCurrentFrame)();
|
|
1691
1897
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1692
1898
|
const d = Math.min(30, total);
|
|
1693
|
-
const p = (0,
|
|
1899
|
+
const p = (0, import_remotion15.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1694
1900
|
let clipPath;
|
|
1695
1901
|
let transform = "none";
|
|
1696
1902
|
let transformOrigin = "center center";
|
|
@@ -1713,8 +1919,8 @@ var ImageReveal = ({ src, direction, revealType, __wavesDurationInFrames }) => {
|
|
|
1713
1919
|
clipPath = `circle(${Math.round(150 * p)}% at 50% 50%)`;
|
|
1714
1920
|
}
|
|
1715
1921
|
const opacity = revealType === "expand" ? p : 1;
|
|
1716
|
-
return /* @__PURE__ */ (0,
|
|
1717
|
-
|
|
1922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Fill, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1923
|
+
import_remotion15.Img,
|
|
1718
1924
|
{
|
|
1719
1925
|
src: resolveAsset5(src),
|
|
1720
1926
|
style: {
|
|
@@ -1737,27 +1943,27 @@ var ImageRevealComponentMetadata = {
|
|
|
1737
1943
|
};
|
|
1738
1944
|
|
|
1739
1945
|
// src/components/composites/ImageSequence.tsx
|
|
1740
|
-
var
|
|
1741
|
-
var
|
|
1742
|
-
var
|
|
1743
|
-
var ImageSequencePropsSchema =
|
|
1744
|
-
basePath:
|
|
1745
|
-
frameCount:
|
|
1746
|
-
filePattern:
|
|
1747
|
-
fps:
|
|
1946
|
+
var import_remotion16 = require("remotion");
|
|
1947
|
+
var import_zod26 = require("zod");
|
|
1948
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1949
|
+
var ImageSequencePropsSchema = import_zod26.z.object({
|
|
1950
|
+
basePath: import_zod26.z.string().min(1),
|
|
1951
|
+
frameCount: import_zod26.z.number().int().positive(),
|
|
1952
|
+
filePattern: import_zod26.z.string().default("frame_{frame}.png"),
|
|
1953
|
+
fps: import_zod26.z.number().int().min(1).max(120).default(30)
|
|
1748
1954
|
});
|
|
1749
1955
|
function joinPath(base, file) {
|
|
1750
1956
|
if (base.endsWith("/")) return `${base}${file}`;
|
|
1751
1957
|
return `${base}/${file}`;
|
|
1752
1958
|
}
|
|
1753
|
-
var resolveAsset6 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
1959
|
+
var resolveAsset6 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion16.staticFile)(staticFileInputFromAssetPath(value));
|
|
1754
1960
|
var ImageSequence = ({ basePath, frameCount, filePattern, fps }) => {
|
|
1755
|
-
const frame = (0,
|
|
1756
|
-
const { fps: compFps } = (0,
|
|
1961
|
+
const frame = (0, import_remotion16.useCurrentFrame)();
|
|
1962
|
+
const { fps: compFps } = (0, import_remotion16.useVideoConfig)();
|
|
1757
1963
|
const index = Math.min(frameCount - 1, Math.max(0, Math.floor(frame * fps / compFps)));
|
|
1758
1964
|
const file = filePattern.replace("{frame}", String(index));
|
|
1759
1965
|
const src = joinPath(basePath, file);
|
|
1760
|
-
return /* @__PURE__ */ (0,
|
|
1966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Fill, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_remotion16.Img, { src: resolveAsset6(src), style: { width: "100%", height: "100%", objectFit: "cover" } }) });
|
|
1761
1967
|
};
|
|
1762
1968
|
var ImageSequenceComponentMetadata = {
|
|
1763
1969
|
kind: "composite",
|
|
@@ -1767,26 +1973,26 @@ var ImageSequenceComponentMetadata = {
|
|
|
1767
1973
|
};
|
|
1768
1974
|
|
|
1769
1975
|
// src/components/composites/ImageWithCaption.tsx
|
|
1770
|
-
var
|
|
1771
|
-
var
|
|
1772
|
-
var
|
|
1773
|
-
var CaptionStyleSchema =
|
|
1774
|
-
fontSize:
|
|
1775
|
-
color:
|
|
1776
|
-
backgroundColor:
|
|
1976
|
+
var import_remotion17 = require("remotion");
|
|
1977
|
+
var import_zod27 = require("zod");
|
|
1978
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1979
|
+
var CaptionStyleSchema = import_zod27.z.object({
|
|
1980
|
+
fontSize: import_zod27.z.number().min(12).max(80).default(32),
|
|
1981
|
+
color: import_zod27.z.string().default("#FFFFFF"),
|
|
1982
|
+
backgroundColor: import_zod27.z.string().default("rgba(0,0,0,0.7)")
|
|
1777
1983
|
});
|
|
1778
|
-
var ImageWithCaptionPropsSchema =
|
|
1779
|
-
src:
|
|
1780
|
-
caption:
|
|
1781
|
-
captionPosition:
|
|
1984
|
+
var ImageWithCaptionPropsSchema = import_zod27.z.object({
|
|
1985
|
+
src: import_zod27.z.string().min(1),
|
|
1986
|
+
caption: import_zod27.z.string().max(200),
|
|
1987
|
+
captionPosition: import_zod27.z.enum(["top", "bottom", "overlay"]).default("bottom"),
|
|
1782
1988
|
captionStyle: CaptionStyleSchema.optional()
|
|
1783
1989
|
});
|
|
1784
|
-
var resolveAsset7 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
1990
|
+
var resolveAsset7 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion17.staticFile)(staticFileInputFromAssetPath(value));
|
|
1785
1991
|
var ImageWithCaption = ({ src, caption, captionPosition, captionStyle }) => {
|
|
1786
|
-
const frame = (0,
|
|
1787
|
-
const p = (0,
|
|
1992
|
+
const frame = (0, import_remotion17.useCurrentFrame)();
|
|
1993
|
+
const p = (0, import_remotion17.interpolate)(frame, [8, 24], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1788
1994
|
const style = captionStyle ?? { fontSize: 32, color: "#FFFFFF", backgroundColor: "rgba(0,0,0,0.7)" };
|
|
1789
|
-
const captionBox = /* @__PURE__ */ (0,
|
|
1995
|
+
const captionBox = /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1790
1996
|
"div",
|
|
1791
1997
|
{
|
|
1792
1998
|
style: {
|
|
@@ -1803,15 +2009,15 @@ var ImageWithCaption = ({ src, caption, captionPosition, captionStyle }) => {
|
|
|
1803
2009
|
}
|
|
1804
2010
|
);
|
|
1805
2011
|
if (captionPosition === "top" || captionPosition === "bottom") {
|
|
1806
|
-
return /* @__PURE__ */ (0,
|
|
2012
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Fill, { style: { display: "flex", flexDirection: "column" }, children: [
|
|
1807
2013
|
captionPosition === "top" ? captionBox : null,
|
|
1808
|
-
/* @__PURE__ */ (0,
|
|
2014
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { style: { flex: 1, position: "relative" }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_remotion17.Img, { src: resolveAsset7(src), style: { width: "100%", height: "100%", objectFit: "cover" } }) }),
|
|
1809
2015
|
captionPosition === "bottom" ? captionBox : null
|
|
1810
2016
|
] });
|
|
1811
2017
|
}
|
|
1812
|
-
return /* @__PURE__ */ (0,
|
|
1813
|
-
/* @__PURE__ */ (0,
|
|
1814
|
-
/* @__PURE__ */ (0,
|
|
2018
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Fill, { children: [
|
|
2019
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_remotion17.Img, { src: resolveAsset7(src), style: { width: "100%", height: "100%", objectFit: "cover" } }),
|
|
2020
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { style: { position: "absolute", left: 0, right: 0, bottom: 0 }, children: captionBox })
|
|
1815
2021
|
] });
|
|
1816
2022
|
};
|
|
1817
2023
|
var ImageWithCaptionComponentMetadata = {
|
|
@@ -1822,19 +2028,19 @@ var ImageWithCaptionComponentMetadata = {
|
|
|
1822
2028
|
};
|
|
1823
2029
|
|
|
1824
2030
|
// src/components/composites/InstagramStory.tsx
|
|
1825
|
-
var
|
|
1826
|
-
var
|
|
1827
|
-
var
|
|
1828
|
-
var InstagramStoryPropsSchema =
|
|
1829
|
-
backgroundImage:
|
|
1830
|
-
backgroundColor:
|
|
1831
|
-
profilePic:
|
|
1832
|
-
username:
|
|
1833
|
-
text:
|
|
1834
|
-
sticker:
|
|
1835
|
-
musicTrack:
|
|
2031
|
+
var import_remotion18 = require("remotion");
|
|
2032
|
+
var import_zod28 = require("zod");
|
|
2033
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2034
|
+
var InstagramStoryPropsSchema = import_zod28.z.object({
|
|
2035
|
+
backgroundImage: import_zod28.z.string().optional(),
|
|
2036
|
+
backgroundColor: import_zod28.z.string().default("#000000"),
|
|
2037
|
+
profilePic: import_zod28.z.string().optional(),
|
|
2038
|
+
username: import_zod28.z.string().optional(),
|
|
2039
|
+
text: import_zod28.z.string().max(100).optional(),
|
|
2040
|
+
sticker: import_zod28.z.enum(["none", "poll", "question", "countdown"]).default("none"),
|
|
2041
|
+
musicTrack: import_zod28.z.string().optional()
|
|
1836
2042
|
});
|
|
1837
|
-
var resolveAsset8 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
2043
|
+
var resolveAsset8 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion18.staticFile)(staticFileInputFromAssetPath(value));
|
|
1838
2044
|
var InstagramStory = ({
|
|
1839
2045
|
backgroundImage,
|
|
1840
2046
|
backgroundColor,
|
|
@@ -1844,17 +2050,17 @@ var InstagramStory = ({
|
|
|
1844
2050
|
sticker,
|
|
1845
2051
|
musicTrack
|
|
1846
2052
|
}) => {
|
|
1847
|
-
const frame = (0,
|
|
1848
|
-
const fade = (0,
|
|
1849
|
-
return /* @__PURE__ */ (0,
|
|
1850
|
-
musicTrack ? /* @__PURE__ */ (0,
|
|
1851
|
-
backgroundImage ? /* @__PURE__ */ (0,
|
|
1852
|
-
/* @__PURE__ */ (0,
|
|
1853
|
-
profilePic || username ? /* @__PURE__ */ (0,
|
|
1854
|
-
profilePic ? /* @__PURE__ */ (0,
|
|
1855
|
-
/* @__PURE__ */ (0,
|
|
2053
|
+
const frame = (0, import_remotion18.useCurrentFrame)();
|
|
2054
|
+
const fade = (0, import_remotion18.interpolate)(frame, [0, 20], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Fill, { style: { backgroundColor }, children: [
|
|
2056
|
+
musicTrack ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_remotion18.Audio, { src: resolveAsset8(musicTrack), volume: 0.6 }) : null,
|
|
2057
|
+
backgroundImage ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_remotion18.Img, { src: resolveAsset8(backgroundImage), style: { width: "100%", height: "100%", objectFit: "cover", opacity: fade } }) : null,
|
|
2058
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Fill, { style: { padding: 60, boxSizing: "border-box" }, children: [
|
|
2059
|
+
profilePic || username ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 18 }, children: [
|
|
2060
|
+
profilePic ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_remotion18.Img, { src: resolveAsset8(profilePic), style: { width: 78, height: 78, borderRadius: 9999, objectFit: "cover" } }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { style: { width: 78, height: 78, borderRadius: 9999, backgroundColor: "rgba(255,255,255,0.2)" } }),
|
|
2061
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { style: { color: "#FFFFFF", fontWeight: 800, fontSize: 34 }, children: username ?? "username" })
|
|
1856
2062
|
] }) : null,
|
|
1857
|
-
text ? /* @__PURE__ */ (0,
|
|
2063
|
+
text ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1858
2064
|
"div",
|
|
1859
2065
|
{
|
|
1860
2066
|
style: {
|
|
@@ -1868,7 +2074,7 @@ var InstagramStory = ({
|
|
|
1868
2074
|
children: text
|
|
1869
2075
|
}
|
|
1870
2076
|
) : null,
|
|
1871
|
-
sticker !== "none" ? /* @__PURE__ */ (0,
|
|
2077
|
+
sticker !== "none" ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1872
2078
|
"div",
|
|
1873
2079
|
{
|
|
1874
2080
|
style: {
|
|
@@ -1897,18 +2103,18 @@ var InstagramStoryComponentMetadata = {
|
|
|
1897
2103
|
};
|
|
1898
2104
|
|
|
1899
2105
|
// src/components/composites/IntroScene.tsx
|
|
1900
|
-
var
|
|
1901
|
-
var
|
|
1902
|
-
var
|
|
1903
|
-
var IntroScenePropsSchema =
|
|
1904
|
-
logoSrc:
|
|
1905
|
-
companyName:
|
|
1906
|
-
tagline:
|
|
1907
|
-
backgroundColor:
|
|
1908
|
-
primaryColor:
|
|
1909
|
-
musicTrack:
|
|
2106
|
+
var import_remotion19 = require("remotion");
|
|
2107
|
+
var import_zod29 = require("zod");
|
|
2108
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2109
|
+
var IntroScenePropsSchema = import_zod29.z.object({
|
|
2110
|
+
logoSrc: import_zod29.z.string().min(1),
|
|
2111
|
+
companyName: import_zod29.z.string().min(1),
|
|
2112
|
+
tagline: import_zod29.z.string().optional(),
|
|
2113
|
+
backgroundColor: import_zod29.z.string().default("#000000"),
|
|
2114
|
+
primaryColor: import_zod29.z.string().default("#FFFFFF"),
|
|
2115
|
+
musicTrack: import_zod29.z.string().optional()
|
|
1910
2116
|
});
|
|
1911
|
-
var resolveAsset9 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
2117
|
+
var resolveAsset9 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion19.staticFile)(staticFileInputFromAssetPath(value));
|
|
1912
2118
|
var IntroScene = ({
|
|
1913
2119
|
logoSrc,
|
|
1914
2120
|
companyName,
|
|
@@ -1918,25 +2124,25 @@ var IntroScene = ({
|
|
|
1918
2124
|
musicTrack,
|
|
1919
2125
|
__wavesDurationInFrames
|
|
1920
2126
|
}) => {
|
|
1921
|
-
const frame = (0,
|
|
1922
|
-
const { fps } = (0,
|
|
2127
|
+
const frame = (0, import_remotion19.useCurrentFrame)();
|
|
2128
|
+
const { fps } = (0, import_remotion19.useVideoConfig)();
|
|
1923
2129
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1924
|
-
const logoP = (0,
|
|
1925
|
-
const nameOpacity = (0,
|
|
1926
|
-
const taglineY = (0,
|
|
1927
|
-
const outroFade = (0,
|
|
1928
|
-
return /* @__PURE__ */ (0,
|
|
1929
|
-
musicTrack ? /* @__PURE__ */ (0,
|
|
1930
|
-
/* @__PURE__ */ (0,
|
|
1931
|
-
/* @__PURE__ */ (0,
|
|
1932
|
-
|
|
2130
|
+
const logoP = (0, import_remotion19.spring)({ frame, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
2131
|
+
const nameOpacity = (0, import_remotion19.interpolate)(frame, [20, 60], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2132
|
+
const taglineY = (0, import_remotion19.interpolate)(frame, [50, 80], [20, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2133
|
+
const outroFade = (0, import_remotion19.interpolate)(frame, [Math.max(0, total - 20), total], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Fill, { style: { backgroundColor, display: "flex", justifyContent: "center", alignItems: "center" }, children: [
|
|
2135
|
+
musicTrack ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_remotion19.Audio, { src: resolveAsset9(musicTrack), volume: 0.7 }) : null,
|
|
2136
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: { textAlign: "center", opacity: outroFade }, children: [
|
|
2137
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2138
|
+
import_remotion19.Img,
|
|
1933
2139
|
{
|
|
1934
2140
|
src: resolveAsset9(logoSrc),
|
|
1935
2141
|
style: { width: 280, height: 280, objectFit: "contain", transform: `scale(${logoP})` }
|
|
1936
2142
|
}
|
|
1937
2143
|
),
|
|
1938
|
-
/* @__PURE__ */ (0,
|
|
1939
|
-
tagline ? /* @__PURE__ */ (0,
|
|
2144
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { style: { marginTop: 24, color: primaryColor, fontSize: 64, fontWeight: 900, opacity: nameOpacity }, children: companyName }),
|
|
2145
|
+
tagline ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1940
2146
|
"div",
|
|
1941
2147
|
{
|
|
1942
2148
|
style: {
|
|
@@ -1961,17 +2167,17 @@ var IntroSceneComponentMetadata = {
|
|
|
1961
2167
|
};
|
|
1962
2168
|
|
|
1963
2169
|
// src/components/composites/KenBurnsImage.tsx
|
|
1964
|
-
var
|
|
1965
|
-
var
|
|
1966
|
-
var
|
|
1967
|
-
var KenBurnsImagePropsSchema =
|
|
1968
|
-
src:
|
|
1969
|
-
startScale:
|
|
1970
|
-
endScale:
|
|
1971
|
-
panDirection:
|
|
1972
|
-
panAmount:
|
|
2170
|
+
var import_remotion20 = require("remotion");
|
|
2171
|
+
var import_zod30 = require("zod");
|
|
2172
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2173
|
+
var KenBurnsImagePropsSchema = import_zod30.z.object({
|
|
2174
|
+
src: import_zod30.z.string().min(1),
|
|
2175
|
+
startScale: import_zod30.z.number().min(1).max(2).default(1),
|
|
2176
|
+
endScale: import_zod30.z.number().min(1).max(2).default(1.2),
|
|
2177
|
+
panDirection: import_zod30.z.enum(["none", "left", "right", "up", "down"]).default("none"),
|
|
2178
|
+
panAmount: import_zod30.z.number().min(0).max(100).default(50)
|
|
1973
2179
|
});
|
|
1974
|
-
var resolveAsset10 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
2180
|
+
var resolveAsset10 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion20.staticFile)(staticFileInputFromAssetPath(value));
|
|
1975
2181
|
var KenBurnsImage = ({
|
|
1976
2182
|
src,
|
|
1977
2183
|
startScale,
|
|
@@ -1980,14 +2186,14 @@ var KenBurnsImage = ({
|
|
|
1980
2186
|
panAmount,
|
|
1981
2187
|
__wavesDurationInFrames
|
|
1982
2188
|
}) => {
|
|
1983
|
-
const frame = (0,
|
|
2189
|
+
const frame = (0, import_remotion20.useCurrentFrame)();
|
|
1984
2190
|
const duration = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
1985
|
-
const t = (0,
|
|
2191
|
+
const t = (0, import_remotion20.interpolate)(frame, [0, duration], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
1986
2192
|
const scale = startScale + (endScale - startScale) * t;
|
|
1987
2193
|
const dx = panDirection === "left" ? -panAmount * t : panDirection === "right" ? panAmount * t : 0;
|
|
1988
2194
|
const dy = panDirection === "up" ? -panAmount * t : panDirection === "down" ? panAmount * t : 0;
|
|
1989
|
-
return /* @__PURE__ */ (0,
|
|
1990
|
-
|
|
2195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fill, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2196
|
+
import_remotion20.Img,
|
|
1991
2197
|
{
|
|
1992
2198
|
src: resolveAsset10(src),
|
|
1993
2199
|
style: {
|
|
@@ -2008,20 +2214,20 @@ var KenBurnsImageComponentMetadata = {
|
|
|
2008
2214
|
};
|
|
2009
2215
|
|
|
2010
2216
|
// src/components/composites/KineticTypography.tsx
|
|
2011
|
-
var
|
|
2012
|
-
var
|
|
2013
|
-
var
|
|
2014
|
-
var WordSchema =
|
|
2015
|
-
text:
|
|
2016
|
-
emphasis:
|
|
2217
|
+
var import_remotion21 = require("remotion");
|
|
2218
|
+
var import_zod31 = require("zod");
|
|
2219
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2220
|
+
var WordSchema = import_zod31.z.object({
|
|
2221
|
+
text: import_zod31.z.string().min(1),
|
|
2222
|
+
emphasis: import_zod31.z.enum(["normal", "bold", "giant"]).default("normal")
|
|
2017
2223
|
});
|
|
2018
|
-
var KineticTypographyPropsSchema =
|
|
2019
|
-
words:
|
|
2020
|
-
fontSize:
|
|
2021
|
-
color:
|
|
2022
|
-
fontFamily:
|
|
2023
|
-
timing:
|
|
2024
|
-
transition:
|
|
2224
|
+
var KineticTypographyPropsSchema = import_zod31.z.object({
|
|
2225
|
+
words: import_zod31.z.array(WordSchema).min(1).max(50),
|
|
2226
|
+
fontSize: import_zod31.z.number().min(12).max(140).default(48),
|
|
2227
|
+
color: import_zod31.z.string().default("#FFFFFF"),
|
|
2228
|
+
fontFamily: import_zod31.z.string().default("Inter"),
|
|
2229
|
+
timing: import_zod31.z.array(import_zod31.z.number().int().min(0)).min(1).describe("Frame timing for each word"),
|
|
2230
|
+
transition: import_zod31.z.enum(["fade", "scale", "slideLeft", "slideRight"]).default("scale")
|
|
2025
2231
|
});
|
|
2026
2232
|
var KineticTypography = ({
|
|
2027
2233
|
words,
|
|
@@ -2031,8 +2237,8 @@ var KineticTypography = ({
|
|
|
2031
2237
|
timing,
|
|
2032
2238
|
transition
|
|
2033
2239
|
}) => {
|
|
2034
|
-
const frame = (0,
|
|
2035
|
-
const { fps } = (0,
|
|
2240
|
+
const frame = (0, import_remotion21.useCurrentFrame)();
|
|
2241
|
+
const { fps } = (0, import_remotion21.useVideoConfig)();
|
|
2036
2242
|
const starts = (() => {
|
|
2037
2243
|
if (timing.length >= words.length) return timing.slice(0, words.length);
|
|
2038
2244
|
const last = timing.length ? timing[timing.length - 1] : 0;
|
|
@@ -2045,13 +2251,13 @@ var KineticTypography = ({
|
|
|
2045
2251
|
}
|
|
2046
2252
|
const word = words[activeIndex];
|
|
2047
2253
|
const start = starts[activeIndex] ?? 0;
|
|
2048
|
-
const p = (0,
|
|
2254
|
+
const p = (0, import_remotion21.spring)({ frame: frame - start, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
2049
2255
|
const progress = Math.max(0, Math.min(1, p));
|
|
2050
2256
|
const scaleBase = word.emphasis === "giant" ? 2 : word.emphasis === "bold" ? 1.3 : 1;
|
|
2051
2257
|
const opacity = transition === "fade" ? progress : 1;
|
|
2052
2258
|
const scale = transition === "scale" ? (0.85 + 0.15 * progress) * scaleBase : 1 * scaleBase;
|
|
2053
2259
|
const tx = transition === "slideLeft" ? 40 * (1 - progress) : transition === "slideRight" ? -40 * (1 - progress) : 0;
|
|
2054
|
-
return /* @__PURE__ */ (0,
|
|
2260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Fill, { style: { display: "flex", justifyContent: "center", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2055
2261
|
"div",
|
|
2056
2262
|
{
|
|
2057
2263
|
style: {
|
|
@@ -2076,17 +2282,17 @@ var KineticTypographyComponentMetadata = {
|
|
|
2076
2282
|
};
|
|
2077
2283
|
|
|
2078
2284
|
// src/components/composites/LineGraph.tsx
|
|
2079
|
-
var
|
|
2080
|
-
var
|
|
2081
|
-
var
|
|
2082
|
-
var PointSchema =
|
|
2083
|
-
var LineGraphPropsSchema =
|
|
2084
|
-
data:
|
|
2085
|
-
color:
|
|
2086
|
-
strokeWidth:
|
|
2087
|
-
showDots:
|
|
2088
|
-
fillArea:
|
|
2089
|
-
animate:
|
|
2285
|
+
var import_remotion22 = require("remotion");
|
|
2286
|
+
var import_zod32 = require("zod");
|
|
2287
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2288
|
+
var PointSchema = import_zod32.z.object({ x: import_zod32.z.number(), y: import_zod32.z.number() });
|
|
2289
|
+
var LineGraphPropsSchema = import_zod32.z.object({
|
|
2290
|
+
data: import_zod32.z.array(PointSchema).min(2).max(50),
|
|
2291
|
+
color: import_zod32.z.string().default("#00FF00"),
|
|
2292
|
+
strokeWidth: import_zod32.z.number().min(1).max(10).default(3),
|
|
2293
|
+
showDots: import_zod32.z.boolean().default(true),
|
|
2294
|
+
fillArea: import_zod32.z.boolean().default(false),
|
|
2295
|
+
animate: import_zod32.z.enum(["draw", "reveal"]).default("draw")
|
|
2090
2296
|
});
|
|
2091
2297
|
function normalize(data, w, h, pad) {
|
|
2092
2298
|
const xs = data.map((d) => d.x);
|
|
@@ -2112,9 +2318,9 @@ var LineGraph = ({
|
|
|
2112
2318
|
animate,
|
|
2113
2319
|
__wavesDurationInFrames
|
|
2114
2320
|
}) => {
|
|
2115
|
-
const frame = (0,
|
|
2321
|
+
const frame = (0, import_remotion22.useCurrentFrame)();
|
|
2116
2322
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
2117
|
-
const progress = (0,
|
|
2323
|
+
const progress = (0, import_remotion22.interpolate)(frame, [0, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2118
2324
|
const w = 1e3;
|
|
2119
2325
|
const h = 520;
|
|
2120
2326
|
const pad = 30;
|
|
@@ -2122,9 +2328,9 @@ var LineGraph = ({
|
|
|
2122
2328
|
const d = toPath(pts);
|
|
2123
2329
|
const dash = 3e3;
|
|
2124
2330
|
const dashOffset = dash * (1 - progress);
|
|
2125
|
-
return /* @__PURE__ */ (0,
|
|
2126
|
-
/* @__PURE__ */ (0,
|
|
2127
|
-
fillArea ? /* @__PURE__ */ (0,
|
|
2331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Fill, { style: { display: "flex", justifyContent: "center", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("svg", { viewBox: `0 0 ${w} ${h}`, style: { width: "100%", height: "100%" }, children: [
|
|
2332
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("clipPath", { id: "waves-line-reveal", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("rect", { x: "0", y: "0", width: w * progress, height: h }) }) }),
|
|
2333
|
+
fillArea ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2128
2334
|
"path",
|
|
2129
2335
|
{
|
|
2130
2336
|
d: `${d} L ${pts[pts.length - 1].x} ${h - pad} L ${pts[0].x} ${h - pad} Z`,
|
|
@@ -2133,7 +2339,7 @@ var LineGraph = ({
|
|
|
2133
2339
|
clipPath: animate === "reveal" ? "url(#waves-line-reveal)" : void 0
|
|
2134
2340
|
}
|
|
2135
2341
|
) : null,
|
|
2136
|
-
/* @__PURE__ */ (0,
|
|
2342
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2137
2343
|
"path",
|
|
2138
2344
|
{
|
|
2139
2345
|
d,
|
|
@@ -2147,7 +2353,7 @@ var LineGraph = ({
|
|
|
2147
2353
|
clipPath: animate === "reveal" ? "url(#waves-line-reveal)" : void 0
|
|
2148
2354
|
}
|
|
2149
2355
|
),
|
|
2150
|
-
showDots ? /* @__PURE__ */ (0,
|
|
2356
|
+
showDots ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("g", { clipPath: animate === "reveal" ? "url(#waves-line-reveal)" : void 0, children: pts.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("circle", { cx: p.x, cy: p.y, r: 6, fill: color }, i)) }) : null
|
|
2151
2357
|
] }) });
|
|
2152
2358
|
};
|
|
2153
2359
|
var LineGraphComponentMetadata = {
|
|
@@ -2158,28 +2364,28 @@ var LineGraphComponentMetadata = {
|
|
|
2158
2364
|
};
|
|
2159
2365
|
|
|
2160
2366
|
// src/components/composites/LogoReveal.tsx
|
|
2161
|
-
var
|
|
2162
|
-
var
|
|
2163
|
-
var
|
|
2164
|
-
var LogoRevealPropsSchema =
|
|
2165
|
-
logoSrc:
|
|
2166
|
-
effect:
|
|
2167
|
-
backgroundColor:
|
|
2168
|
-
soundEffect:
|
|
2367
|
+
var import_remotion23 = require("remotion");
|
|
2368
|
+
var import_zod33 = require("zod");
|
|
2369
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2370
|
+
var LogoRevealPropsSchema = import_zod33.z.object({
|
|
2371
|
+
logoSrc: import_zod33.z.string().min(1),
|
|
2372
|
+
effect: import_zod33.z.enum(["fade", "scale", "rotate", "slide"]).default("scale"),
|
|
2373
|
+
backgroundColor: import_zod33.z.string().default("#000000"),
|
|
2374
|
+
soundEffect: import_zod33.z.string().optional()
|
|
2169
2375
|
});
|
|
2170
|
-
var resolveAsset11 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
2376
|
+
var resolveAsset11 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion23.staticFile)(staticFileInputFromAssetPath(value));
|
|
2171
2377
|
var LogoReveal = ({ logoSrc, effect, backgroundColor, soundEffect }) => {
|
|
2172
|
-
const frame = (0,
|
|
2173
|
-
const { fps } = (0,
|
|
2174
|
-
const p = (0,
|
|
2378
|
+
const frame = (0, import_remotion23.useCurrentFrame)();
|
|
2379
|
+
const { fps } = (0, import_remotion23.useVideoConfig)();
|
|
2380
|
+
const p = (0, import_remotion23.spring)({ frame, fps, config: { damping: 14, stiffness: 110, mass: 0.9 } });
|
|
2175
2381
|
const opacity = effect === "fade" ? p : Math.min(1, Math.max(0, p));
|
|
2176
2382
|
const scale = effect === "scale" ? p : 1;
|
|
2177
2383
|
const rotate = effect === "rotate" ? (1 - p) * 360 : 0;
|
|
2178
2384
|
const translateY = effect === "slide" ? -200 * (1 - p) : 0;
|
|
2179
|
-
return /* @__PURE__ */ (0,
|
|
2180
|
-
soundEffect ? /* @__PURE__ */ (0,
|
|
2181
|
-
/* @__PURE__ */ (0,
|
|
2182
|
-
|
|
2385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Fill, { style: { backgroundColor, display: "flex", justifyContent: "center", alignItems: "center" }, children: [
|
|
2386
|
+
soundEffect ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_remotion23.Audio, { src: resolveAsset11(soundEffect), volume: 1 }) : null,
|
|
2387
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
2388
|
+
import_remotion23.Img,
|
|
2183
2389
|
{
|
|
2184
2390
|
src: resolveAsset11(logoSrc),
|
|
2185
2391
|
style: {
|
|
@@ -2201,32 +2407,32 @@ var LogoRevealComponentMetadata = {
|
|
|
2201
2407
|
};
|
|
2202
2408
|
|
|
2203
2409
|
// src/components/composites/OutroScene.tsx
|
|
2204
|
-
var
|
|
2205
|
-
var
|
|
2206
|
-
var
|
|
2207
|
-
var CtaSchema =
|
|
2208
|
-
var HandleSchema =
|
|
2209
|
-
platform:
|
|
2210
|
-
handle:
|
|
2410
|
+
var import_remotion24 = require("remotion");
|
|
2411
|
+
var import_zod34 = require("zod");
|
|
2412
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2413
|
+
var CtaSchema = import_zod34.z.object({ text: import_zod34.z.string().min(1), icon: import_zod34.z.string().optional() });
|
|
2414
|
+
var HandleSchema = import_zod34.z.object({
|
|
2415
|
+
platform: import_zod34.z.enum(["twitter", "instagram", "youtube", "linkedin"]),
|
|
2416
|
+
handle: import_zod34.z.string().min(1)
|
|
2211
2417
|
});
|
|
2212
|
-
var OutroScenePropsSchema =
|
|
2213
|
-
logoSrc:
|
|
2214
|
-
message:
|
|
2215
|
-
ctaButtons:
|
|
2216
|
-
socialHandles:
|
|
2217
|
-
backgroundColor:
|
|
2418
|
+
var OutroScenePropsSchema = import_zod34.z.object({
|
|
2419
|
+
logoSrc: import_zod34.z.string().min(1),
|
|
2420
|
+
message: import_zod34.z.string().default("Thank You"),
|
|
2421
|
+
ctaButtons: import_zod34.z.array(CtaSchema).max(3).optional(),
|
|
2422
|
+
socialHandles: import_zod34.z.array(HandleSchema).max(4).optional(),
|
|
2423
|
+
backgroundColor: import_zod34.z.string().default("#000000")
|
|
2218
2424
|
});
|
|
2219
|
-
var resolveAsset12 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
2425
|
+
var resolveAsset12 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion24.staticFile)(staticFileInputFromAssetPath(value));
|
|
2220
2426
|
var OutroScene = ({ logoSrc, message, ctaButtons, socialHandles, backgroundColor }) => {
|
|
2221
|
-
const frame = (0,
|
|
2222
|
-
const { fps } = (0,
|
|
2223
|
-
const logoP = (0,
|
|
2224
|
-
const msgP = (0,
|
|
2225
|
-
const ctaP = (0,
|
|
2226
|
-
return /* @__PURE__ */ (0,
|
|
2227
|
-
/* @__PURE__ */ (0,
|
|
2228
|
-
/* @__PURE__ */ (0,
|
|
2229
|
-
ctaButtons?.length ? /* @__PURE__ */ (0,
|
|
2427
|
+
const frame = (0, import_remotion24.useCurrentFrame)();
|
|
2428
|
+
const { fps } = (0, import_remotion24.useVideoConfig)();
|
|
2429
|
+
const logoP = (0, import_remotion24.spring)({ frame, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
2430
|
+
const msgP = (0, import_remotion24.spring)({ frame: frame - 18, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
2431
|
+
const ctaP = (0, import_remotion24.spring)({ frame: frame - 40, fps, config: { damping: 14, stiffness: 120, mass: 0.9 } });
|
|
2432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Fill, { style: { backgroundColor, display: "flex", justifyContent: "center", alignItems: "center", padding: 80, boxSizing: "border-box" }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { style: { textAlign: "center" }, children: [
|
|
2433
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_remotion24.Img, { src: resolveAsset12(logoSrc), style: { width: 220, height: 220, objectFit: "contain", transform: `scale(${logoP})` } }),
|
|
2434
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { style: { marginTop: 24, color: "#FFFFFF", fontSize: 72, fontWeight: 1e3, opacity: msgP }, children: message }),
|
|
2435
|
+
ctaButtons?.length ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { style: { marginTop: 34, display: "flex", gap: 18, justifyContent: "center", opacity: ctaP }, children: ctaButtons.map((b, i) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
2230
2436
|
"div",
|
|
2231
2437
|
{
|
|
2232
2438
|
style: {
|
|
@@ -2244,7 +2450,7 @@ var OutroScene = ({ logoSrc, message, ctaButtons, socialHandles, backgroundColor
|
|
|
2244
2450
|
},
|
|
2245
2451
|
i
|
|
2246
2452
|
)) }) : null,
|
|
2247
|
-
socialHandles?.length ? /* @__PURE__ */ (0,
|
|
2453
|
+
socialHandles?.length ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { style: { marginTop: 50, display: "flex", flexDirection: "column", gap: 10, opacity: ctaP }, children: socialHandles.map((h, i) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { style: { color: "rgba(255,255,255,0.85)", fontSize: 26, fontWeight: 800 }, children: [
|
|
2248
2454
|
h.platform,
|
|
2249
2455
|
": ",
|
|
2250
2456
|
h.handle
|
|
@@ -2259,19 +2465,19 @@ var OutroSceneComponentMetadata = {
|
|
|
2259
2465
|
};
|
|
2260
2466
|
|
|
2261
2467
|
// src/components/composites/OutlineText.tsx
|
|
2262
|
-
var
|
|
2263
|
-
var
|
|
2264
|
-
var
|
|
2265
|
-
var OutlineTextPropsSchema =
|
|
2266
|
-
content:
|
|
2267
|
-
fontSize:
|
|
2268
|
-
outlineColor:
|
|
2269
|
-
fillColor:
|
|
2270
|
-
fontFamily:
|
|
2271
|
-
fontWeight:
|
|
2272
|
-
position:
|
|
2273
|
-
animation:
|
|
2274
|
-
strokeWidth:
|
|
2468
|
+
var import_remotion25 = require("remotion");
|
|
2469
|
+
var import_zod35 = require("zod");
|
|
2470
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2471
|
+
var OutlineTextPropsSchema = import_zod35.z.object({
|
|
2472
|
+
content: import_zod35.z.string().max(50),
|
|
2473
|
+
fontSize: import_zod35.z.number().min(8).max(240).default(96),
|
|
2474
|
+
outlineColor: import_zod35.z.string().default("#FFFFFF"),
|
|
2475
|
+
fillColor: import_zod35.z.string().default("#000000"),
|
|
2476
|
+
fontFamily: import_zod35.z.string().default("Inter"),
|
|
2477
|
+
fontWeight: import_zod35.z.number().int().min(100).max(900).default(800),
|
|
2478
|
+
position: import_zod35.z.enum(["top", "center", "bottom"]).default("center"),
|
|
2479
|
+
animation: import_zod35.z.enum(["draw", "fill"]).default("draw"),
|
|
2480
|
+
strokeWidth: import_zod35.z.number().min(1).max(10).default(3)
|
|
2275
2481
|
});
|
|
2276
2482
|
var positionStyles3 = (position) => {
|
|
2277
2483
|
if (position === "top") return { justifyContent: "center", alignItems: "flex-start", paddingTop: 90 };
|
|
@@ -2289,12 +2495,12 @@ var OutlineText = ({
|
|
|
2289
2495
|
animation,
|
|
2290
2496
|
strokeWidth
|
|
2291
2497
|
}) => {
|
|
2292
|
-
const frame = (0,
|
|
2293
|
-
const t = (0,
|
|
2498
|
+
const frame = (0, import_remotion25.useCurrentFrame)();
|
|
2499
|
+
const t = (0, import_remotion25.interpolate)(frame, [0, 24], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2294
2500
|
const strokeOpacity = animation === "draw" ? t : 1;
|
|
2295
2501
|
const fillOpacity = animation === "fill" ? t : 0;
|
|
2296
|
-
return /* @__PURE__ */ (0,
|
|
2297
|
-
/* @__PURE__ */ (0,
|
|
2502
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Fill, { style: { display: "flex", ...positionStyles3(position) }, children: [
|
|
2503
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2298
2504
|
"div",
|
|
2299
2505
|
{
|
|
2300
2506
|
style: {
|
|
@@ -2311,7 +2517,7 @@ var OutlineText = ({
|
|
|
2311
2517
|
children: content
|
|
2312
2518
|
}
|
|
2313
2519
|
),
|
|
2314
|
-
/* @__PURE__ */ (0,
|
|
2520
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2315
2521
|
"div",
|
|
2316
2522
|
{
|
|
2317
2523
|
style: {
|
|
@@ -2338,16 +2544,16 @@ var OutlineTextComponentMetadata = {
|
|
|
2338
2544
|
};
|
|
2339
2545
|
|
|
2340
2546
|
// src/components/composites/ProgressBar.tsx
|
|
2341
|
-
var
|
|
2342
|
-
var
|
|
2343
|
-
var
|
|
2344
|
-
var ProgressBarPropsSchema =
|
|
2345
|
-
label:
|
|
2346
|
-
color:
|
|
2347
|
-
backgroundColor:
|
|
2348
|
-
height:
|
|
2349
|
-
position:
|
|
2350
|
-
showPercentage:
|
|
2547
|
+
var import_remotion26 = require("remotion");
|
|
2548
|
+
var import_zod36 = require("zod");
|
|
2549
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2550
|
+
var ProgressBarPropsSchema = import_zod36.z.object({
|
|
2551
|
+
label: import_zod36.z.string().optional(),
|
|
2552
|
+
color: import_zod36.z.string().default("#00FF00"),
|
|
2553
|
+
backgroundColor: import_zod36.z.string().default("rgba(255,255,255,0.2)"),
|
|
2554
|
+
height: import_zod36.z.number().min(5).max(50).default(10),
|
|
2555
|
+
position: import_zod36.z.enum(["top", "bottom"]).default("bottom"),
|
|
2556
|
+
showPercentage: import_zod36.z.boolean().default(true)
|
|
2351
2557
|
});
|
|
2352
2558
|
var ProgressBar = ({
|
|
2353
2559
|
label,
|
|
@@ -2358,17 +2564,17 @@ var ProgressBar = ({
|
|
|
2358
2564
|
showPercentage,
|
|
2359
2565
|
__wavesDurationInFrames
|
|
2360
2566
|
}) => {
|
|
2361
|
-
const frame = (0,
|
|
2567
|
+
const frame = (0, import_remotion26.useCurrentFrame)();
|
|
2362
2568
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
2363
|
-
const p = (0,
|
|
2569
|
+
const p = (0, import_remotion26.interpolate)(frame, [0, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2364
2570
|
const pct = Math.round(p * 100);
|
|
2365
2571
|
const yStyle = position === "top" ? { top: 50 } : { bottom: 50 };
|
|
2366
|
-
return /* @__PURE__ */ (0,
|
|
2367
|
-
label || showPercentage ? /* @__PURE__ */ (0,
|
|
2368
|
-
/* @__PURE__ */ (0,
|
|
2369
|
-
/* @__PURE__ */ (0,
|
|
2572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Fill, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { style: { position: "absolute", left: 80, right: 80, ...yStyle }, children: [
|
|
2573
|
+
label || showPercentage ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: 10, color: "#FFFFFF", fontWeight: 700 }, children: [
|
|
2574
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: label ?? "" }),
|
|
2575
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: showPercentage ? `${pct}%` : "" })
|
|
2370
2576
|
] }) : null,
|
|
2371
|
-
/* @__PURE__ */ (0,
|
|
2577
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { width: "100%", height, backgroundColor, borderRadius: 9999, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { width: `${pct}%`, height: "100%", backgroundColor: color } }) })
|
|
2372
2578
|
] }) });
|
|
2373
2579
|
};
|
|
2374
2580
|
var ProgressBarComponentMetadata = {
|
|
@@ -2379,16 +2585,16 @@ var ProgressBarComponentMetadata = {
|
|
|
2379
2585
|
};
|
|
2380
2586
|
|
|
2381
2587
|
// src/components/composites/ProgressRing.tsx
|
|
2382
|
-
var
|
|
2383
|
-
var
|
|
2384
|
-
var
|
|
2385
|
-
var ProgressRingPropsSchema =
|
|
2386
|
-
percentage:
|
|
2387
|
-
size:
|
|
2388
|
-
strokeWidth:
|
|
2389
|
-
color:
|
|
2390
|
-
backgroundColor:
|
|
2391
|
-
showLabel:
|
|
2588
|
+
var import_remotion27 = require("remotion");
|
|
2589
|
+
var import_zod37 = require("zod");
|
|
2590
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2591
|
+
var ProgressRingPropsSchema = import_zod37.z.object({
|
|
2592
|
+
percentage: import_zod37.z.number().min(0).max(100),
|
|
2593
|
+
size: import_zod37.z.number().min(100).max(500).default(200),
|
|
2594
|
+
strokeWidth: import_zod37.z.number().min(5).max(50).default(20),
|
|
2595
|
+
color: import_zod37.z.string().default("#00FF00"),
|
|
2596
|
+
backgroundColor: import_zod37.z.string().default("rgba(255,255,255,0.2)"),
|
|
2597
|
+
showLabel: import_zod37.z.boolean().default(true)
|
|
2392
2598
|
});
|
|
2393
2599
|
var ProgressRing = ({
|
|
2394
2600
|
percentage,
|
|
@@ -2399,17 +2605,17 @@ var ProgressRing = ({
|
|
|
2399
2605
|
showLabel,
|
|
2400
2606
|
__wavesDurationInFrames
|
|
2401
2607
|
}) => {
|
|
2402
|
-
const frame = (0,
|
|
2608
|
+
const frame = (0, import_remotion27.useCurrentFrame)();
|
|
2403
2609
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
2404
|
-
const p = (0,
|
|
2610
|
+
const p = (0, import_remotion27.interpolate)(frame, [0, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2405
2611
|
const current = percentage * p;
|
|
2406
2612
|
const r = (size - strokeWidth) / 2;
|
|
2407
2613
|
const c = 2 * Math.PI * r;
|
|
2408
2614
|
const dash = c;
|
|
2409
2615
|
const offset = c - current / 100 * c;
|
|
2410
|
-
return /* @__PURE__ */ (0,
|
|
2411
|
-
/* @__PURE__ */ (0,
|
|
2412
|
-
/* @__PURE__ */ (0,
|
|
2616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Fill, { style: { display: "flex", justifyContent: "center", alignItems: "center" }, children: [
|
|
2617
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, children: [
|
|
2618
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2413
2619
|
"circle",
|
|
2414
2620
|
{
|
|
2415
2621
|
cx: size / 2,
|
|
@@ -2420,7 +2626,7 @@ var ProgressRing = ({
|
|
|
2420
2626
|
fill: "transparent"
|
|
2421
2627
|
}
|
|
2422
2628
|
),
|
|
2423
|
-
/* @__PURE__ */ (0,
|
|
2629
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2424
2630
|
"circle",
|
|
2425
2631
|
{
|
|
2426
2632
|
cx: size / 2,
|
|
@@ -2436,7 +2642,7 @@ var ProgressRing = ({
|
|
|
2436
2642
|
}
|
|
2437
2643
|
)
|
|
2438
2644
|
] }),
|
|
2439
|
-
showLabel ? /* @__PURE__ */ (0,
|
|
2645
|
+
showLabel ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { style: { position: "absolute", color: "#FFFFFF", fontWeight: 800, fontSize: Math.round(size * 0.22) }, children: [
|
|
2440
2646
|
Math.round(current),
|
|
2441
2647
|
"%"
|
|
2442
2648
|
] }) : null
|
|
@@ -2450,14 +2656,15 @@ var ProgressRingComponentMetadata = {
|
|
|
2450
2656
|
};
|
|
2451
2657
|
|
|
2452
2658
|
// src/components/composites/SlideTransition.tsx
|
|
2453
|
-
var
|
|
2454
|
-
var
|
|
2455
|
-
var
|
|
2456
|
-
var
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2659
|
+
var import_react7 = __toESM(require("react"));
|
|
2660
|
+
var import_remotion28 = require("remotion");
|
|
2661
|
+
var import_zod38 = require("zod");
|
|
2662
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2663
|
+
var SlideTransitionPropsSchema = import_zod38.z.object({
|
|
2664
|
+
durationInFrames: import_zod38.z.number().int().min(10).max(60).default(30),
|
|
2665
|
+
direction: import_zod38.z.enum(["left", "right", "up", "down"]).default("left"),
|
|
2666
|
+
distance: import_zod38.z.number().int().min(1).max(2e3).default(160),
|
|
2667
|
+
phase: import_zod38.z.enum(["in", "out", "inOut"]).default("inOut")
|
|
2461
2668
|
});
|
|
2462
2669
|
function translateFor(direction, delta) {
|
|
2463
2670
|
if (direction === "left") return { x: -delta, y: 0 };
|
|
@@ -2473,29 +2680,30 @@ var SlideTransition = ({
|
|
|
2473
2680
|
children,
|
|
2474
2681
|
__wavesDurationInFrames
|
|
2475
2682
|
}) => {
|
|
2476
|
-
const
|
|
2683
|
+
const layers = import_react7.default.Children.toArray(children);
|
|
2684
|
+
const frame = (0, import_remotion28.useCurrentFrame)();
|
|
2477
2685
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
2478
2686
|
const d = Math.min(durationInFrames, total);
|
|
2479
2687
|
let opacity = 1;
|
|
2480
2688
|
let tx = 0;
|
|
2481
2689
|
let ty = 0;
|
|
2482
2690
|
if (phase === "in" || phase === "inOut") {
|
|
2483
|
-
const t = (0,
|
|
2691
|
+
const t = (0, import_remotion28.interpolate)(frame, [0, d], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2484
2692
|
const { x, y } = translateFor(direction, distance * t);
|
|
2485
2693
|
tx += x;
|
|
2486
2694
|
ty += y;
|
|
2487
|
-
opacity *= (0,
|
|
2695
|
+
opacity *= (0, import_remotion28.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2488
2696
|
}
|
|
2489
2697
|
if (phase === "out" || phase === "inOut") {
|
|
2490
2698
|
const start = Math.max(0, total - d);
|
|
2491
|
-
const t = (0,
|
|
2699
|
+
const t = (0, import_remotion28.interpolate)(frame, [start, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2492
2700
|
const opposite = direction === "left" ? "right" : direction === "right" ? "left" : direction === "up" ? "down" : "up";
|
|
2493
2701
|
const { x, y } = translateFor(opposite, distance * t);
|
|
2494
2702
|
tx += x;
|
|
2495
2703
|
ty += y;
|
|
2496
|
-
opacity *= (0,
|
|
2704
|
+
opacity *= (0, import_remotion28.interpolate)(frame, [start, total], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2497
2705
|
}
|
|
2498
|
-
return /* @__PURE__ */ (0,
|
|
2706
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Fill, { style: { opacity, transform: `translate(${tx}px, ${ty}px)` }, children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) });
|
|
2499
2707
|
};
|
|
2500
2708
|
var SlideTransitionComponentMetadata = {
|
|
2501
2709
|
kind: "composite",
|
|
@@ -2507,16 +2715,15 @@ var SlideTransitionComponentMetadata = {
|
|
|
2507
2715
|
};
|
|
2508
2716
|
|
|
2509
2717
|
// src/components/composites/SplitScreen.tsx
|
|
2510
|
-
var
|
|
2511
|
-
var
|
|
2512
|
-
var
|
|
2513
|
-
var
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
dividerColor: import_zod36.z.string().optional()
|
|
2718
|
+
var import_react8 = __toESM(require("react"));
|
|
2719
|
+
var import_zod39 = require("zod");
|
|
2720
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2721
|
+
var SplitScreenPropsSchema = import_zod39.z.object({
|
|
2722
|
+
orientation: import_zod39.z.enum(["vertical", "horizontal"]).default("vertical"),
|
|
2723
|
+
split: import_zod39.z.number().min(0.1).max(0.9).default(0.5),
|
|
2724
|
+
gap: import_zod39.z.number().min(0).default(48),
|
|
2725
|
+
padding: import_zod39.z.number().min(0).default(80),
|
|
2726
|
+
dividerColor: import_zod39.z.string().optional()
|
|
2520
2727
|
});
|
|
2521
2728
|
var SplitScreen = ({
|
|
2522
2729
|
orientation,
|
|
@@ -2526,14 +2733,14 @@ var SplitScreen = ({
|
|
|
2526
2733
|
dividerColor,
|
|
2527
2734
|
children
|
|
2528
2735
|
}) => {
|
|
2529
|
-
const items =
|
|
2736
|
+
const items = import_react8.default.Children.toArray(children);
|
|
2530
2737
|
const first = items[0] ?? null;
|
|
2531
2738
|
const second = items[1] ?? null;
|
|
2532
2739
|
const isVertical = orientation === "vertical";
|
|
2533
2740
|
const flexDirection = isVertical ? "row" : "column";
|
|
2534
|
-
return /* @__PURE__ */ (0,
|
|
2535
|
-
/* @__PURE__ */ (0,
|
|
2536
|
-
dividerColor ? /* @__PURE__ */ (0,
|
|
2741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Fill, { style: { padding, boxSizing: "border-box" }, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { style: { display: "flex", flexDirection, gap, width: "100%", height: "100%" }, children: [
|
|
2742
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { style: { flex: split, position: "relative" }, children: first }),
|
|
2743
|
+
dividerColor ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2537
2744
|
"div",
|
|
2538
2745
|
{
|
|
2539
2746
|
style: {
|
|
@@ -2544,7 +2751,7 @@ var SplitScreen = ({
|
|
|
2544
2751
|
}
|
|
2545
2752
|
}
|
|
2546
2753
|
) : null,
|
|
2547
|
-
/* @__PURE__ */ (0,
|
|
2754
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { style: { flex: 1 - split, position: "relative" }, children: second })
|
|
2548
2755
|
] }) });
|
|
2549
2756
|
};
|
|
2550
2757
|
var SplitScreenComponentMetadata = {
|
|
@@ -2558,22 +2765,25 @@ var SplitScreenComponentMetadata = {
|
|
|
2558
2765
|
};
|
|
2559
2766
|
|
|
2560
2767
|
// src/components/composites/SplitText.tsx
|
|
2561
|
-
var
|
|
2562
|
-
var
|
|
2563
|
-
var
|
|
2564
|
-
var SplitTextPropsSchema =
|
|
2565
|
-
content:
|
|
2566
|
-
fontSize:
|
|
2567
|
-
color:
|
|
2568
|
-
fontFamily:
|
|
2569
|
-
position:
|
|
2570
|
-
splitBy:
|
|
2571
|
-
stagger:
|
|
2572
|
-
animation:
|
|
2768
|
+
var import_remotion29 = require("remotion");
|
|
2769
|
+
var import_zod40 = require("zod");
|
|
2770
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2771
|
+
var SplitTextPropsSchema = import_zod40.z.object({
|
|
2772
|
+
content: import_zod40.z.string().max(200),
|
|
2773
|
+
fontSize: import_zod40.z.number().min(8).max(200).default(48),
|
|
2774
|
+
color: import_zod40.z.string().default("#FFFFFF"),
|
|
2775
|
+
fontFamily: import_zod40.z.string().default("Inter"),
|
|
2776
|
+
position: import_zod40.z.enum(["top", "center", "bottom"]).default("center"),
|
|
2777
|
+
splitBy: import_zod40.z.enum(["word", "letter"]).default("word"),
|
|
2778
|
+
stagger: import_zod40.z.number().int().min(1).max(10).default(3),
|
|
2779
|
+
animation: import_zod40.z.enum(["fade", "slideUp", "slideDown", "scale", "rotate"]).default("slideUp"),
|
|
2780
|
+
maxWidthPct: import_zod40.z.number().min(0.1).max(1).default(0.9),
|
|
2781
|
+
safeInsetPct: import_zod40.z.number().min(0).max(0.25).default(0.06)
|
|
2573
2782
|
});
|
|
2574
|
-
var positionStyles4 = (position) => {
|
|
2575
|
-
|
|
2576
|
-
if (position === "
|
|
2783
|
+
var positionStyles4 = (position, safeInsetPct) => {
|
|
2784
|
+
const inset = `${(safeInsetPct * 100).toFixed(2)}%`;
|
|
2785
|
+
if (position === "top") return { justifyContent: "center", alignItems: "flex-start", paddingTop: inset };
|
|
2786
|
+
if (position === "bottom") return { justifyContent: "center", alignItems: "flex-end", paddingBottom: inset };
|
|
2577
2787
|
return { justifyContent: "center", alignItems: "center" };
|
|
2578
2788
|
};
|
|
2579
2789
|
function getItemStyle(progress, animation) {
|
|
@@ -2600,12 +2810,14 @@ var SplitText = ({
|
|
|
2600
2810
|
position,
|
|
2601
2811
|
splitBy,
|
|
2602
2812
|
stagger,
|
|
2603
|
-
animation
|
|
2813
|
+
animation,
|
|
2814
|
+
maxWidthPct,
|
|
2815
|
+
safeInsetPct
|
|
2604
2816
|
}) => {
|
|
2605
|
-
const frame = (0,
|
|
2606
|
-
const { fps } = (0,
|
|
2817
|
+
const frame = (0, import_remotion29.useCurrentFrame)();
|
|
2818
|
+
const { fps } = (0, import_remotion29.useVideoConfig)();
|
|
2607
2819
|
const items = splitBy === "letter" ? content.split("") : content.trim().split(/\s+/);
|
|
2608
|
-
return /* @__PURE__ */ (0,
|
|
2820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Fill, { style: { display: "flex", ...positionStyles4(position, safeInsetPct) }, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2609
2821
|
"div",
|
|
2610
2822
|
{
|
|
2611
2823
|
style: {
|
|
@@ -2613,19 +2825,22 @@ var SplitText = ({
|
|
|
2613
2825
|
flexWrap: "wrap",
|
|
2614
2826
|
justifyContent: "center",
|
|
2615
2827
|
gap: splitBy === "letter" ? 0 : 12,
|
|
2828
|
+
maxWidth: `${Math.round(maxWidthPct * 100)}%`,
|
|
2616
2829
|
fontSize,
|
|
2617
2830
|
color,
|
|
2618
2831
|
fontFamily,
|
|
2619
2832
|
fontWeight: 700,
|
|
2620
|
-
textAlign: "center"
|
|
2833
|
+
textAlign: "center",
|
|
2834
|
+
overflowWrap: "anywhere",
|
|
2835
|
+
wordBreak: "break-word"
|
|
2621
2836
|
},
|
|
2622
2837
|
children: items.map((t, i) => {
|
|
2623
|
-
const progress = (0,
|
|
2838
|
+
const progress = (0, import_remotion29.spring)({
|
|
2624
2839
|
frame: frame - i * stagger,
|
|
2625
2840
|
fps,
|
|
2626
2841
|
config: { damping: 14, stiffness: 120, mass: 0.9 }
|
|
2627
2842
|
});
|
|
2628
|
-
return /* @__PURE__ */ (0,
|
|
2843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2629
2844
|
"span",
|
|
2630
2845
|
{
|
|
2631
2846
|
style: {
|
|
@@ -2653,19 +2868,19 @@ var SplitTextComponentMetadata = {
|
|
|
2653
2868
|
};
|
|
2654
2869
|
|
|
2655
2870
|
// src/components/composites/SubtitleText.tsx
|
|
2656
|
-
var
|
|
2657
|
-
var
|
|
2658
|
-
var
|
|
2659
|
-
var SubtitleTextPropsSchema =
|
|
2660
|
-
text:
|
|
2661
|
-
fontSize:
|
|
2662
|
-
color:
|
|
2663
|
-
backgroundColor:
|
|
2664
|
-
fontFamily:
|
|
2665
|
-
position:
|
|
2666
|
-
maxWidth:
|
|
2667
|
-
padding:
|
|
2668
|
-
highlightWords:
|
|
2871
|
+
var import_remotion30 = require("remotion");
|
|
2872
|
+
var import_zod41 = require("zod");
|
|
2873
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2874
|
+
var SubtitleTextPropsSchema = import_zod41.z.object({
|
|
2875
|
+
text: import_zod41.z.string().max(200),
|
|
2876
|
+
fontSize: import_zod41.z.number().min(12).max(80).default(36),
|
|
2877
|
+
color: import_zod41.z.string().default("#FFFFFF"),
|
|
2878
|
+
backgroundColor: import_zod41.z.string().default("rgba(0,0,0,0.7)"),
|
|
2879
|
+
fontFamily: import_zod41.z.string().default("Inter"),
|
|
2880
|
+
position: import_zod41.z.enum(["top", "bottom"]).default("bottom"),
|
|
2881
|
+
maxWidth: import_zod41.z.number().min(200).max(1200).default(800),
|
|
2882
|
+
padding: import_zod41.z.number().min(0).max(80).default(20),
|
|
2883
|
+
highlightWords: import_zod41.z.array(import_zod41.z.string()).optional()
|
|
2669
2884
|
});
|
|
2670
2885
|
function normalizeWord(w) {
|
|
2671
2886
|
return w.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
@@ -2682,15 +2897,15 @@ var SubtitleText = ({
|
|
|
2682
2897
|
highlightWords,
|
|
2683
2898
|
__wavesDurationInFrames
|
|
2684
2899
|
}) => {
|
|
2685
|
-
const frame = (0,
|
|
2900
|
+
const frame = (0, import_remotion30.useCurrentFrame)();
|
|
2686
2901
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
2687
|
-
const inFade = (0,
|
|
2688
|
-
const outFade = (0,
|
|
2902
|
+
const inFade = (0, import_remotion30.interpolate)(frame, [0, 10], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2903
|
+
const outFade = (0, import_remotion30.interpolate)(frame, [Math.max(0, total - 10), total], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2689
2904
|
const opacity = inFade * outFade;
|
|
2690
2905
|
const highlights = new Set((highlightWords ?? []).map(normalizeWord));
|
|
2691
2906
|
const tokens = text.split(/\s+/);
|
|
2692
2907
|
const yStyle = position === "top" ? { top: 70 } : { bottom: 90 };
|
|
2693
|
-
return /* @__PURE__ */ (0,
|
|
2908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Fill, { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { style: { position: "absolute", left: "50%", transform: "translateX(-50%)", maxWidth, width: "100%", ...yStyle }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2694
2909
|
"div",
|
|
2695
2910
|
{
|
|
2696
2911
|
style: {
|
|
@@ -2709,7 +2924,7 @@ var SubtitleText = ({
|
|
|
2709
2924
|
children: tokens.map((t, i) => {
|
|
2710
2925
|
const n = normalizeWord(t);
|
|
2711
2926
|
const isHighlighted = highlights.has(n);
|
|
2712
|
-
return /* @__PURE__ */ (0,
|
|
2927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { style: { color: isHighlighted ? "#FFD60A" : color, marginRight: 8 }, children: t }, i);
|
|
2713
2928
|
})
|
|
2714
2929
|
}
|
|
2715
2930
|
) }) });
|
|
@@ -2722,17 +2937,19 @@ var SubtitleTextComponentMetadata = {
|
|
|
2722
2937
|
};
|
|
2723
2938
|
|
|
2724
2939
|
// src/components/composites/TikTokCaption.tsx
|
|
2725
|
-
var
|
|
2726
|
-
var
|
|
2727
|
-
var
|
|
2728
|
-
var TikTokCaptionPropsSchema =
|
|
2729
|
-
text:
|
|
2730
|
-
fontSize:
|
|
2731
|
-
color:
|
|
2732
|
-
strokeColor:
|
|
2733
|
-
strokeWidth:
|
|
2734
|
-
position:
|
|
2735
|
-
highlightStyle:
|
|
2940
|
+
var import_remotion31 = require("remotion");
|
|
2941
|
+
var import_zod42 = require("zod");
|
|
2942
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2943
|
+
var TikTokCaptionPropsSchema = import_zod42.z.object({
|
|
2944
|
+
text: import_zod42.z.string().max(150),
|
|
2945
|
+
fontSize: import_zod42.z.number().min(12).max(120).default(48),
|
|
2946
|
+
color: import_zod42.z.string().default("#FFFFFF"),
|
|
2947
|
+
strokeColor: import_zod42.z.string().default("#000000"),
|
|
2948
|
+
strokeWidth: import_zod42.z.number().min(0).max(10).default(3),
|
|
2949
|
+
position: import_zod42.z.enum(["center", "bottom"]).default("center"),
|
|
2950
|
+
highlightStyle: import_zod42.z.enum(["word", "bounce", "none"]).default("word"),
|
|
2951
|
+
maxWidthPct: import_zod42.z.number().min(0.1).max(1).default(0.92),
|
|
2952
|
+
safeInsetPct: import_zod42.z.number().min(0).max(0.25).default(0.06)
|
|
2736
2953
|
});
|
|
2737
2954
|
var TikTokCaption = ({
|
|
2738
2955
|
text,
|
|
@@ -2742,18 +2959,21 @@ var TikTokCaption = ({
|
|
|
2742
2959
|
strokeWidth,
|
|
2743
2960
|
position,
|
|
2744
2961
|
highlightStyle,
|
|
2962
|
+
maxWidthPct,
|
|
2963
|
+
safeInsetPct,
|
|
2745
2964
|
__wavesDurationInFrames
|
|
2746
2965
|
}) => {
|
|
2747
|
-
const frame = (0,
|
|
2966
|
+
const frame = (0, import_remotion31.useCurrentFrame)();
|
|
2748
2967
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
2749
|
-
const p = (0,
|
|
2968
|
+
const p = (0, import_remotion31.interpolate)(frame, [0, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2750
2969
|
const words = text.trim().split(/\s+/);
|
|
2751
2970
|
const idx = highlightStyle === "none" ? -1 : Math.min(words.length - 1, Math.floor(p * words.length));
|
|
2752
|
-
const
|
|
2753
|
-
|
|
2971
|
+
const inset = `${(safeInsetPct * 100).toFixed(2)}%`;
|
|
2972
|
+
const yStyle = position === "bottom" ? { alignItems: "flex-end", paddingBottom: inset } : { alignItems: "center" };
|
|
2973
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Fill, { style: { display: "flex", justifyContent: "center", ...yStyle }, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { style: { textAlign: "center", paddingLeft: inset, paddingRight: inset, maxWidth: `${Math.round(maxWidthPct * 100)}%`, fontWeight: 900, lineHeight: 1.1, overflowWrap: "anywhere", wordBreak: "break-word" }, children: words.map((w, i) => {
|
|
2754
2974
|
const isActive = i === idx && highlightStyle !== "none";
|
|
2755
|
-
const bounce = isActive && highlightStyle === "bounce" ? (0,
|
|
2756
|
-
return /* @__PURE__ */ (0,
|
|
2975
|
+
const bounce = isActive && highlightStyle === "bounce" ? (0, import_remotion31.interpolate)(frame % 18, [0, 9, 18], [1, 1.08, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" }) : 1;
|
|
2976
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
2757
2977
|
"span",
|
|
2758
2978
|
{
|
|
2759
2979
|
style: {
|
|
@@ -2778,20 +2998,20 @@ var TikTokCaptionComponentMetadata = {
|
|
|
2778
2998
|
};
|
|
2779
2999
|
|
|
2780
3000
|
// src/components/composites/ThirdLowerBanner.tsx
|
|
2781
|
-
var
|
|
2782
|
-
var
|
|
2783
|
-
var
|
|
2784
|
-
var ThirdLowerBannerPropsSchema =
|
|
2785
|
-
name:
|
|
2786
|
-
title:
|
|
2787
|
-
backgroundColor:
|
|
2788
|
-
primaryColor:
|
|
2789
|
-
secondaryColor:
|
|
2790
|
-
accentColor:
|
|
2791
|
-
showAvatar:
|
|
2792
|
-
avatarSrc:
|
|
3001
|
+
var import_remotion32 = require("remotion");
|
|
3002
|
+
var import_zod43 = require("zod");
|
|
3003
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
3004
|
+
var ThirdLowerBannerPropsSchema = import_zod43.z.object({
|
|
3005
|
+
name: import_zod43.z.string().max(50),
|
|
3006
|
+
title: import_zod43.z.string().max(100),
|
|
3007
|
+
backgroundColor: import_zod43.z.string().default("rgba(0,0,0,0.8)"),
|
|
3008
|
+
primaryColor: import_zod43.z.string().default("#FFFFFF"),
|
|
3009
|
+
secondaryColor: import_zod43.z.string().default("#CCCCCC"),
|
|
3010
|
+
accentColor: import_zod43.z.string().default("#FF0000"),
|
|
3011
|
+
showAvatar: import_zod43.z.boolean().default(false),
|
|
3012
|
+
avatarSrc: import_zod43.z.string().optional()
|
|
2793
3013
|
});
|
|
2794
|
-
var resolveAsset13 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
3014
|
+
var resolveAsset13 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion32.staticFile)(staticFileInputFromAssetPath(value));
|
|
2795
3015
|
var ThirdLowerBanner = ({
|
|
2796
3016
|
name,
|
|
2797
3017
|
title,
|
|
@@ -2802,11 +3022,11 @@ var ThirdLowerBanner = ({
|
|
|
2802
3022
|
showAvatar,
|
|
2803
3023
|
avatarSrc
|
|
2804
3024
|
}) => {
|
|
2805
|
-
const frame = (0,
|
|
2806
|
-
const slide = (0,
|
|
2807
|
-
const opacity = (0,
|
|
3025
|
+
const frame = (0, import_remotion32.useCurrentFrame)();
|
|
3026
|
+
const slide = (0, import_remotion32.interpolate)(frame, [0, 18], [-600, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3027
|
+
const opacity = (0, import_remotion32.interpolate)(frame, [0, 10], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
2808
3028
|
const avatar = showAvatar && typeof avatarSrc === "string" && avatarSrc.length > 0 ? avatarSrc : null;
|
|
2809
|
-
return /* @__PURE__ */ (0,
|
|
3029
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Fill, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
2810
3030
|
"div",
|
|
2811
3031
|
{
|
|
2812
3032
|
style: {
|
|
@@ -2823,17 +3043,17 @@ var ThirdLowerBanner = ({
|
|
|
2823
3043
|
backgroundColor
|
|
2824
3044
|
},
|
|
2825
3045
|
children: [
|
|
2826
|
-
/* @__PURE__ */ (0,
|
|
2827
|
-
avatar ? /* @__PURE__ */ (0,
|
|
2828
|
-
|
|
3046
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { style: { width: 10, backgroundColor: accentColor } }),
|
|
3047
|
+
avatar ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { style: { width: 160, display: "flex", alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
3048
|
+
import_remotion32.Img,
|
|
2829
3049
|
{
|
|
2830
3050
|
src: resolveAsset13(avatar),
|
|
2831
3051
|
style: { width: 110, height: 110, borderRadius: 9999, objectFit: "cover" }
|
|
2832
3052
|
}
|
|
2833
3053
|
) }) : null,
|
|
2834
|
-
/* @__PURE__ */ (0,
|
|
2835
|
-
/* @__PURE__ */ (0,
|
|
2836
|
-
/* @__PURE__ */ (0,
|
|
3054
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { style: { padding: "28px 36px", display: "flex", flexDirection: "column", justifyContent: "center" }, children: [
|
|
3055
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { style: { color: primaryColor, fontSize: 54, fontWeight: 800, lineHeight: 1 }, children: name }),
|
|
3056
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { style: { marginTop: 10, color: secondaryColor, fontSize: 28, fontWeight: 600 }, children: title })
|
|
2837
3057
|
] })
|
|
2838
3058
|
]
|
|
2839
3059
|
}
|
|
@@ -2851,22 +3071,25 @@ var ThirdLowerBannerComponentMetadata = {
|
|
|
2851
3071
|
};
|
|
2852
3072
|
|
|
2853
3073
|
// src/components/composites/TypewriterText.tsx
|
|
2854
|
-
var
|
|
2855
|
-
var
|
|
2856
|
-
var
|
|
2857
|
-
var TypewriterTextPropsSchema =
|
|
2858
|
-
content:
|
|
2859
|
-
fontSize:
|
|
2860
|
-
color:
|
|
2861
|
-
fontFamily:
|
|
2862
|
-
position:
|
|
2863
|
-
speed:
|
|
2864
|
-
showCursor:
|
|
2865
|
-
cursorColor:
|
|
3074
|
+
var import_remotion33 = require("remotion");
|
|
3075
|
+
var import_zod44 = require("zod");
|
|
3076
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
3077
|
+
var TypewriterTextPropsSchema = import_zod44.z.object({
|
|
3078
|
+
content: import_zod44.z.string().max(500),
|
|
3079
|
+
fontSize: import_zod44.z.number().min(8).max(200).default(48),
|
|
3080
|
+
color: import_zod44.z.string().default("#FFFFFF"),
|
|
3081
|
+
fontFamily: import_zod44.z.string().default("Inter"),
|
|
3082
|
+
position: import_zod44.z.enum(["top", "center", "bottom"]).default("center"),
|
|
3083
|
+
speed: import_zod44.z.number().min(0.5).max(5).default(2),
|
|
3084
|
+
showCursor: import_zod44.z.boolean().default(true),
|
|
3085
|
+
cursorColor: import_zod44.z.string().default("#FFFFFF"),
|
|
3086
|
+
maxWidthPct: import_zod44.z.number().min(0.1).max(1).default(0.9),
|
|
3087
|
+
safeInsetPct: import_zod44.z.number().min(0).max(0.25).default(0.06)
|
|
2866
3088
|
});
|
|
2867
|
-
var positionStyles5 = (position) => {
|
|
2868
|
-
|
|
2869
|
-
if (position === "
|
|
3089
|
+
var positionStyles5 = (position, safeInsetPct) => {
|
|
3090
|
+
const inset = `${(safeInsetPct * 100).toFixed(2)}%`;
|
|
3091
|
+
if (position === "top") return { justifyContent: "center", alignItems: "flex-start", paddingTop: inset };
|
|
3092
|
+
if (position === "bottom") return { justifyContent: "center", alignItems: "flex-end", paddingBottom: inset };
|
|
2870
3093
|
return { justifyContent: "center", alignItems: "center" };
|
|
2871
3094
|
};
|
|
2872
3095
|
var TypewriterText = ({
|
|
@@ -2877,17 +3100,19 @@ var TypewriterText = ({
|
|
|
2877
3100
|
position,
|
|
2878
3101
|
speed,
|
|
2879
3102
|
showCursor,
|
|
2880
|
-
cursorColor
|
|
3103
|
+
cursorColor,
|
|
3104
|
+
maxWidthPct,
|
|
3105
|
+
safeInsetPct
|
|
2881
3106
|
}) => {
|
|
2882
|
-
const frame = (0,
|
|
3107
|
+
const frame = (0, import_remotion33.useCurrentFrame)();
|
|
2883
3108
|
const charCount = Math.min(content.length, Math.max(0, Math.floor(frame * speed)));
|
|
2884
3109
|
const shown = content.slice(0, charCount);
|
|
2885
3110
|
const cursorVisible = showCursor && charCount < content.length ? frame % 30 < 15 : false;
|
|
2886
3111
|
const cursorOpacity = cursorVisible ? 1 : 0;
|
|
2887
|
-
const cursorFade = (0,
|
|
2888
|
-
return /* @__PURE__ */ (0,
|
|
3112
|
+
const cursorFade = (0, import_remotion33.interpolate)(frame % 30, [0, 5], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Fill, { style: { display: "flex", ...positionStyles5(position, safeInsetPct) }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { style: { fontSize, color, fontFamily, fontWeight: 600, textAlign: "center", whiteSpace: "pre-wrap", maxWidth: `${Math.round(maxWidthPct * 100)}%`, overflowWrap: "anywhere", wordBreak: "break-word" }, children: [
|
|
2889
3114
|
shown,
|
|
2890
|
-
showCursor ? /* @__PURE__ */ (0,
|
|
3115
|
+
showCursor ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { style: { color: cursorColor, opacity: cursorOpacity * cursorFade }, children: "|" }) : null
|
|
2891
3116
|
] }) });
|
|
2892
3117
|
};
|
|
2893
3118
|
var TypewriterTextComponentMetadata = {
|
|
@@ -2902,21 +3127,21 @@ var TypewriterTextComponentMetadata = {
|
|
|
2902
3127
|
};
|
|
2903
3128
|
|
|
2904
3129
|
// src/components/composites/TwitterCard.tsx
|
|
2905
|
-
var
|
|
2906
|
-
var
|
|
2907
|
-
var
|
|
2908
|
-
var TwitterCardPropsSchema =
|
|
2909
|
-
author:
|
|
2910
|
-
handle:
|
|
2911
|
-
avatarSrc:
|
|
2912
|
-
tweet:
|
|
2913
|
-
image:
|
|
2914
|
-
timestamp:
|
|
2915
|
-
verified:
|
|
3130
|
+
var import_remotion34 = require("remotion");
|
|
3131
|
+
var import_zod45 = require("zod");
|
|
3132
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
3133
|
+
var TwitterCardPropsSchema = import_zod45.z.object({
|
|
3134
|
+
author: import_zod45.z.string().min(1),
|
|
3135
|
+
handle: import_zod45.z.string().min(1),
|
|
3136
|
+
avatarSrc: import_zod45.z.string().optional(),
|
|
3137
|
+
tweet: import_zod45.z.string().max(280),
|
|
3138
|
+
image: import_zod45.z.string().optional(),
|
|
3139
|
+
timestamp: import_zod45.z.string().optional(),
|
|
3140
|
+
verified: import_zod45.z.boolean().default(false)
|
|
2916
3141
|
});
|
|
2917
|
-
var resolveAsset14 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
3142
|
+
var resolveAsset14 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion34.staticFile)(staticFileInputFromAssetPath(value));
|
|
2918
3143
|
var TwitterCard = ({ author, handle, avatarSrc, tweet, image, timestamp, verified }) => {
|
|
2919
|
-
return /* @__PURE__ */ (0,
|
|
3144
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Fill, { style: { backgroundColor: "#0B0F14", display: "flex", justifyContent: "center", alignItems: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
2920
3145
|
"div",
|
|
2921
3146
|
{
|
|
2922
3147
|
style: {
|
|
@@ -2928,19 +3153,19 @@ var TwitterCard = ({ author, handle, avatarSrc, tweet, image, timestamp, verifie
|
|
|
2928
3153
|
boxShadow: "0 30px 90px rgba(0,0,0,0.35)"
|
|
2929
3154
|
},
|
|
2930
3155
|
children: [
|
|
2931
|
-
/* @__PURE__ */ (0,
|
|
2932
|
-
avatarSrc ? /* @__PURE__ */ (0,
|
|
2933
|
-
/* @__PURE__ */ (0,
|
|
2934
|
-
/* @__PURE__ */ (0,
|
|
2935
|
-
/* @__PURE__ */ (0,
|
|
2936
|
-
verified ? /* @__PURE__ */ (0,
|
|
3156
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { style: { display: "flex", gap: 18, alignItems: "center" }, children: [
|
|
3157
|
+
avatarSrc ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_remotion34.Img, { src: resolveAsset14(avatarSrc), style: { width: 78, height: 78, borderRadius: 9999, objectFit: "cover" } }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { width: 78, height: 78, borderRadius: 9999, backgroundColor: "#E5E7EB" } }),
|
|
3158
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
3159
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { style: { display: "flex", gap: 10, alignItems: "center" }, children: [
|
|
3160
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { fontSize: 34, fontWeight: 900, color: "#111827" }, children: author }),
|
|
3161
|
+
verified ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { fontSize: 26, color: "#1D9BF0", fontWeight: 900 }, children: "\u2713" }) : null
|
|
2937
3162
|
] }),
|
|
2938
|
-
/* @__PURE__ */ (0,
|
|
3163
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { fontSize: 26, color: "#6B7280", fontWeight: 800 }, children: handle })
|
|
2939
3164
|
] })
|
|
2940
3165
|
] }),
|
|
2941
|
-
/* @__PURE__ */ (0,
|
|
2942
|
-
image ? /* @__PURE__ */ (0,
|
|
2943
|
-
timestamp ? /* @__PURE__ */ (0,
|
|
3166
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { marginTop: 28, fontSize: 36, lineHeight: 1.25, color: "#111827", fontWeight: 700 }, children: tweet }),
|
|
3167
|
+
image ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { marginTop: 28, width: "100%", height: 520, overflow: "hidden", borderRadius: 22, backgroundColor: "#F3F4F6" }, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_remotion34.Img, { src: resolveAsset14(image), style: { width: "100%", height: "100%", objectFit: "cover" } }) }) : null,
|
|
3168
|
+
timestamp ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { marginTop: 22, fontSize: 22, color: "#6B7280", fontWeight: 700 }, children: timestamp }) : null
|
|
2944
3169
|
]
|
|
2945
3170
|
}
|
|
2946
3171
|
) });
|
|
@@ -2953,19 +3178,19 @@ var TwitterCardComponentMetadata = {
|
|
|
2953
3178
|
};
|
|
2954
3179
|
|
|
2955
3180
|
// src/components/composites/Watermark.tsx
|
|
2956
|
-
var
|
|
2957
|
-
var
|
|
2958
|
-
var
|
|
2959
|
-
var WatermarkPropsSchema =
|
|
2960
|
-
type:
|
|
2961
|
-
src:
|
|
2962
|
-
text:
|
|
2963
|
-
position:
|
|
2964
|
-
opacity:
|
|
2965
|
-
size:
|
|
2966
|
-
color:
|
|
3181
|
+
var import_remotion35 = require("remotion");
|
|
3182
|
+
var import_zod46 = require("zod");
|
|
3183
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
3184
|
+
var WatermarkPropsSchema = import_zod46.z.object({
|
|
3185
|
+
type: import_zod46.z.enum(["logo", "text"]).default("logo"),
|
|
3186
|
+
src: import_zod46.z.string().optional(),
|
|
3187
|
+
text: import_zod46.z.string().optional(),
|
|
3188
|
+
position: import_zod46.z.enum(["topLeft", "topRight", "bottomLeft", "bottomRight"]).default("bottomRight"),
|
|
3189
|
+
opacity: import_zod46.z.number().min(0.1).max(1).default(0.5),
|
|
3190
|
+
size: import_zod46.z.number().min(30).max(150).default(60),
|
|
3191
|
+
color: import_zod46.z.string().default("#FFFFFF")
|
|
2967
3192
|
});
|
|
2968
|
-
var resolveAsset15 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
3193
|
+
var resolveAsset15 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion35.staticFile)(staticFileInputFromAssetPath(value));
|
|
2969
3194
|
function posStyle(position) {
|
|
2970
3195
|
const offset = 30;
|
|
2971
3196
|
if (position === "topLeft") return { left: offset, top: offset };
|
|
@@ -2980,8 +3205,8 @@ var Watermark = ({ type, src, text, position, opacity, size, color }) => {
|
|
|
2980
3205
|
opacity,
|
|
2981
3206
|
pointerEvents: "none"
|
|
2982
3207
|
};
|
|
2983
|
-
return /* @__PURE__ */ (0,
|
|
2984
|
-
|
|
3208
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Fill, { children: type === "text" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { style: { ...style, fontSize: Math.round(size * 0.6), color, fontWeight: 700 }, children: text ?? "" }) : src ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
3209
|
+
import_remotion35.Img,
|
|
2985
3210
|
{
|
|
2986
3211
|
src: resolveAsset15(src),
|
|
2987
3212
|
style: { ...style, width: size, height: size, objectFit: "contain" }
|
|
@@ -2995,19 +3220,20 @@ var WatermarkComponentMetadata = {
|
|
|
2995
3220
|
llmGuidance: "Use subtle opacity (0.3-0.6). bottomRight is standard.",
|
|
2996
3221
|
examples: [
|
|
2997
3222
|
{ type: "text", text: "@depths.ai", position: "bottomRight", opacity: 0.4, size: 60 },
|
|
2998
|
-
{ type: "logo", src: "/assets/logo.
|
|
3223
|
+
{ type: "logo", src: "/assets/logo.svg", position: "topLeft", opacity: 0.5, size: 70 }
|
|
2999
3224
|
]
|
|
3000
3225
|
};
|
|
3001
3226
|
|
|
3002
3227
|
// src/components/composites/WipeTransition.tsx
|
|
3003
|
-
var
|
|
3004
|
-
var
|
|
3005
|
-
var
|
|
3006
|
-
var
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3228
|
+
var import_react9 = __toESM(require("react"));
|
|
3229
|
+
var import_remotion36 = require("remotion");
|
|
3230
|
+
var import_zod47 = require("zod");
|
|
3231
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
3232
|
+
var WipeTransitionPropsSchema = import_zod47.z.object({
|
|
3233
|
+
durationInFrames: import_zod47.z.number().int().min(10).max(60).default(30),
|
|
3234
|
+
direction: import_zod47.z.enum(["left", "right", "up", "down", "diagonal"]).default("right"),
|
|
3235
|
+
softEdge: import_zod47.z.boolean().default(false),
|
|
3236
|
+
phase: import_zod47.z.enum(["in", "out", "inOut"]).default("inOut")
|
|
3011
3237
|
});
|
|
3012
3238
|
function clipFor2(direction, p) {
|
|
3013
3239
|
if (direction === "left") return `inset(0 ${100 * (1 - p)}% 0 0)`;
|
|
@@ -3024,20 +3250,21 @@ var WipeTransition = ({
|
|
|
3024
3250
|
children,
|
|
3025
3251
|
__wavesDurationInFrames
|
|
3026
3252
|
}) => {
|
|
3027
|
-
const
|
|
3253
|
+
const layers = import_react9.default.Children.toArray(children);
|
|
3254
|
+
const frame = (0, import_remotion36.useCurrentFrame)();
|
|
3028
3255
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
3029
3256
|
const d = Math.min(durationInFrames, total);
|
|
3030
3257
|
let clipPath;
|
|
3031
3258
|
if (phase === "in" || phase === "inOut") {
|
|
3032
|
-
const t = (0,
|
|
3259
|
+
const t = (0, import_remotion36.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3033
3260
|
clipPath = clipFor2(direction, t);
|
|
3034
3261
|
}
|
|
3035
3262
|
if (phase === "out" || phase === "inOut") {
|
|
3036
3263
|
const start = Math.max(0, total - d);
|
|
3037
|
-
const t = (0,
|
|
3264
|
+
const t = (0, import_remotion36.interpolate)(frame, [start, total], [1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3038
3265
|
clipPath = clipFor2(direction, t);
|
|
3039
3266
|
}
|
|
3040
|
-
return /* @__PURE__ */ (0,
|
|
3267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Fill, { style: { clipPath, filter: softEdge ? "blur(0.4px)" : void 0 }, children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) });
|
|
3041
3268
|
};
|
|
3042
3269
|
var WipeTransitionComponentMetadata = {
|
|
3043
3270
|
kind: "composite",
|
|
@@ -3049,18 +3276,18 @@ var WipeTransitionComponentMetadata = {
|
|
|
3049
3276
|
};
|
|
3050
3277
|
|
|
3051
3278
|
// src/components/composites/YouTubeThumbnail.tsx
|
|
3052
|
-
var
|
|
3053
|
-
var
|
|
3054
|
-
var
|
|
3055
|
-
var YouTubeThumbnailPropsSchema =
|
|
3056
|
-
backgroundImage:
|
|
3057
|
-
title:
|
|
3058
|
-
subtitle:
|
|
3059
|
-
thumbnailFace:
|
|
3060
|
-
accentColor:
|
|
3061
|
-
style:
|
|
3279
|
+
var import_remotion37 = require("remotion");
|
|
3280
|
+
var import_zod48 = require("zod");
|
|
3281
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
3282
|
+
var YouTubeThumbnailPropsSchema = import_zod48.z.object({
|
|
3283
|
+
backgroundImage: import_zod48.z.string().min(1),
|
|
3284
|
+
title: import_zod48.z.string().max(60),
|
|
3285
|
+
subtitle: import_zod48.z.string().max(40).optional(),
|
|
3286
|
+
thumbnailFace: import_zod48.z.string().optional(),
|
|
3287
|
+
accentColor: import_zod48.z.string().default("#FF0000"),
|
|
3288
|
+
style: import_zod48.z.enum(["bold", "minimal", "dramatic"]).default("bold")
|
|
3062
3289
|
});
|
|
3063
|
-
var resolveAsset16 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
3290
|
+
var resolveAsset16 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion37.staticFile)(staticFileInputFromAssetPath(value));
|
|
3064
3291
|
var YouTubeThumbnail = ({
|
|
3065
3292
|
backgroundImage,
|
|
3066
3293
|
title,
|
|
@@ -3069,18 +3296,18 @@ var YouTubeThumbnail = ({
|
|
|
3069
3296
|
accentColor,
|
|
3070
3297
|
style
|
|
3071
3298
|
}) => {
|
|
3072
|
-
return /* @__PURE__ */ (0,
|
|
3073
|
-
/* @__PURE__ */ (0,
|
|
3074
|
-
style === "dramatic" ? /* @__PURE__ */ (0,
|
|
3075
|
-
thumbnailFace ? /* @__PURE__ */ (0,
|
|
3076
|
-
|
|
3299
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Fill, { children: [
|
|
3300
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_remotion37.Img, { src: resolveAsset16(backgroundImage), style: { width: "100%", height: "100%", objectFit: "cover" } }),
|
|
3301
|
+
style === "dramatic" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { style: { position: "absolute", inset: 0, backgroundColor: "rgba(0,0,0,0.35)" } }) : null,
|
|
3302
|
+
thumbnailFace ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3303
|
+
import_remotion37.Img,
|
|
3077
3304
|
{
|
|
3078
3305
|
src: resolveAsset16(thumbnailFace),
|
|
3079
3306
|
style: { position: "absolute", right: 60, bottom: 0, width: 520, height: 720, objectFit: "cover" }
|
|
3080
3307
|
}
|
|
3081
3308
|
) : null,
|
|
3082
|
-
/* @__PURE__ */ (0,
|
|
3083
|
-
/* @__PURE__ */ (0,
|
|
3309
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { style: { position: "absolute", left: 70, top: 90, width: 1100 }, children: [
|
|
3310
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
3084
3311
|
"div",
|
|
3085
3312
|
{
|
|
3086
3313
|
style: {
|
|
@@ -3095,9 +3322,9 @@ var YouTubeThumbnail = ({
|
|
|
3095
3322
|
children: title
|
|
3096
3323
|
}
|
|
3097
3324
|
),
|
|
3098
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
3325
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { style: { marginTop: 26, fontSize: 52, fontWeight: 900, color: accentColor, textShadow: "0 10px 30px rgba(0,0,0,0.6)" }, children: subtitle }) : null
|
|
3099
3326
|
] }),
|
|
3100
|
-
style !== "minimal" ? /* @__PURE__ */ (0,
|
|
3327
|
+
style !== "minimal" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { style: { position: "absolute", left: 70, bottom: 80, width: 260, height: 18, backgroundColor: accentColor, borderRadius: 9999 } }) : null
|
|
3101
3328
|
] });
|
|
3102
3329
|
};
|
|
3103
3330
|
var YouTubeThumbnailComponentMetadata = {
|
|
@@ -3108,37 +3335,39 @@ var YouTubeThumbnailComponentMetadata = {
|
|
|
3108
3335
|
};
|
|
3109
3336
|
|
|
3110
3337
|
// src/components/composites/VideoWithOverlay.tsx
|
|
3111
|
-
var
|
|
3112
|
-
var
|
|
3113
|
-
var
|
|
3114
|
-
var OverlaySchema =
|
|
3115
|
-
type:
|
|
3116
|
-
content:
|
|
3117
|
-
opacity:
|
|
3118
|
-
position:
|
|
3338
|
+
var import_remotion38 = require("remotion");
|
|
3339
|
+
var import_zod49 = require("zod");
|
|
3340
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
3341
|
+
var OverlaySchema = import_zod49.z.object({
|
|
3342
|
+
type: import_zod49.z.enum(["text", "logo", "gradient"]),
|
|
3343
|
+
content: import_zod49.z.string().optional(),
|
|
3344
|
+
opacity: import_zod49.z.number().min(0).max(1).default(0.3),
|
|
3345
|
+
position: import_zod49.z.enum(["top", "bottom", "center", "full"]).default("bottom")
|
|
3119
3346
|
});
|
|
3120
|
-
var VideoWithOverlayPropsSchema =
|
|
3121
|
-
src:
|
|
3347
|
+
var VideoWithOverlayPropsSchema = import_zod49.z.object({
|
|
3348
|
+
src: import_zod49.z.string().min(1),
|
|
3122
3349
|
overlay: OverlaySchema.optional(),
|
|
3123
|
-
volume:
|
|
3124
|
-
playbackRate:
|
|
3350
|
+
volume: import_zod49.z.number().min(0).max(1).default(1),
|
|
3351
|
+
playbackRate: import_zod49.z.number().min(0.5).max(2).default(1)
|
|
3125
3352
|
});
|
|
3126
|
-
var resolveAsset17 = (value) => isRemoteAssetPath(value) ? value : (0,
|
|
3353
|
+
var resolveAsset17 = (value) => isRemoteAssetPath(value) ? value : (0, import_remotion38.staticFile)(staticFileInputFromAssetPath(value));
|
|
3127
3354
|
var VideoWithOverlay = ({ src, overlay, volume, playbackRate }) => {
|
|
3128
|
-
const frame = (0,
|
|
3129
|
-
const fade = (0,
|
|
3130
|
-
const
|
|
3131
|
-
|
|
3355
|
+
const frame = (0, import_remotion38.useCurrentFrame)();
|
|
3356
|
+
const fade = (0, import_remotion38.interpolate)(frame, [0, 20], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3357
|
+
const overlayFill = { position: "absolute", inset: 0 };
|
|
3358
|
+
const overlayNode = overlay ? overlay.type === "gradient" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
3359
|
+
"div",
|
|
3132
3360
|
{
|
|
3133
3361
|
style: {
|
|
3362
|
+
...overlayFill,
|
|
3134
3363
|
opacity: overlay.opacity,
|
|
3135
3364
|
background: overlay.position === "top" ? "linear-gradient(rgba(0,0,0,0.85), transparent)" : overlay.position === "bottom" ? "linear-gradient(transparent, rgba(0,0,0,0.85))" : "linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6))"
|
|
3136
3365
|
}
|
|
3137
3366
|
}
|
|
3138
|
-
) : overlay.type === "logo" && overlay.content ? /* @__PURE__ */ (0,
|
|
3139
|
-
return /* @__PURE__ */ (0,
|
|
3140
|
-
/* @__PURE__ */ (0,
|
|
3141
|
-
|
|
3367
|
+
) : overlay.type === "logo" && overlay.content ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { style: { ...overlayFill, display: "flex", justifyContent: "center", alignItems: "center", opacity: overlay.opacity }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_remotion38.Img, { src: resolveAsset17(overlay.content), style: { width: 220, height: 220, objectFit: "contain" } }) }) : overlay.type === "text" && overlay.content ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { style: { ...overlayFill, display: "flex", justifyContent: "center", alignItems: "center", opacity: overlay.opacity }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { style: { color: "#FFFFFF", fontSize: 56, fontWeight: 900, textAlign: "center", padding: "0 80px" }, children: overlay.content }) }) : null : null;
|
|
3368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Fill, { children: [
|
|
3369
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
3370
|
+
import_remotion38.Video,
|
|
3142
3371
|
{
|
|
3143
3372
|
src: resolveAsset17(src),
|
|
3144
3373
|
style: { width: "100%", height: "100%", objectFit: "cover", opacity: fade },
|
|
@@ -3157,13 +3386,14 @@ var VideoWithOverlayComponentMetadata = {
|
|
|
3157
3386
|
};
|
|
3158
3387
|
|
|
3159
3388
|
// src/components/composites/ZoomTransition.tsx
|
|
3160
|
-
var
|
|
3161
|
-
var
|
|
3162
|
-
var
|
|
3163
|
-
var
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3389
|
+
var import_react10 = __toESM(require("react"));
|
|
3390
|
+
var import_remotion39 = require("remotion");
|
|
3391
|
+
var import_zod50 = require("zod");
|
|
3392
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
3393
|
+
var ZoomTransitionPropsSchema = import_zod50.z.object({
|
|
3394
|
+
durationInFrames: import_zod50.z.number().int().min(10).max(60).default(30),
|
|
3395
|
+
type: import_zod50.z.enum(["zoomIn", "zoomOut"]).default("zoomIn"),
|
|
3396
|
+
phase: import_zod50.z.enum(["in", "out", "inOut"]).default("inOut")
|
|
3167
3397
|
});
|
|
3168
3398
|
var ZoomTransition = ({
|
|
3169
3399
|
durationInFrames,
|
|
@@ -3172,7 +3402,8 @@ var ZoomTransition = ({
|
|
|
3172
3402
|
children,
|
|
3173
3403
|
__wavesDurationInFrames
|
|
3174
3404
|
}) => {
|
|
3175
|
-
const
|
|
3405
|
+
const layers = import_react10.default.Children.toArray(children);
|
|
3406
|
+
const frame = (0, import_remotion39.useCurrentFrame)();
|
|
3176
3407
|
const total = Math.max(1, __wavesDurationInFrames ?? 1);
|
|
3177
3408
|
const d = Math.min(durationInFrames, total);
|
|
3178
3409
|
let opacity = 1;
|
|
@@ -3180,17 +3411,17 @@ var ZoomTransition = ({
|
|
|
3180
3411
|
const enterFrom = type === "zoomIn" ? 1.2 : 0.85;
|
|
3181
3412
|
const exitTo = type === "zoomIn" ? 1.25 : 0.75;
|
|
3182
3413
|
if (phase === "in" || phase === "inOut") {
|
|
3183
|
-
const t = (0,
|
|
3414
|
+
const t = (0, import_remotion39.interpolate)(frame, [0, d], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3184
3415
|
scale *= enterFrom + (1 - enterFrom) * t;
|
|
3185
3416
|
opacity *= t;
|
|
3186
3417
|
}
|
|
3187
3418
|
if (phase === "out" || phase === "inOut") {
|
|
3188
3419
|
const start = Math.max(0, total - d);
|
|
3189
|
-
const t = (0,
|
|
3420
|
+
const t = (0, import_remotion39.interpolate)(frame, [start, total], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" });
|
|
3190
3421
|
scale *= 1 + (exitTo - 1) * t;
|
|
3191
3422
|
opacity *= 1 - t;
|
|
3192
3423
|
}
|
|
3193
|
-
return /* @__PURE__ */ (0,
|
|
3424
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Fill, { style: { opacity, transform: `scale(${scale})` }, children: layers.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { style: { position: "absolute", inset: 0 }, children: child }, i)) });
|
|
3194
3425
|
};
|
|
3195
3426
|
var ZoomTransitionComponentMetadata = {
|
|
3196
3427
|
kind: "composite",
|
|
@@ -3219,6 +3450,14 @@ function registerBuiltInComponents() {
|
|
|
3219
3450
|
metadata: BoxComponentMetadata
|
|
3220
3451
|
});
|
|
3221
3452
|
}
|
|
3453
|
+
if (!globalRegistry.has("Frame")) {
|
|
3454
|
+
globalRegistry.register({
|
|
3455
|
+
type: "Frame",
|
|
3456
|
+
component: Frame,
|
|
3457
|
+
propsSchema: FramePropsSchema,
|
|
3458
|
+
metadata: FrameComponentMetadata
|
|
3459
|
+
});
|
|
3460
|
+
}
|
|
3222
3461
|
if (!globalRegistry.has("Stack")) {
|
|
3223
3462
|
globalRegistry.register({
|
|
3224
3463
|
type: "Stack",
|
|
@@ -3235,6 +3474,22 @@ function registerBuiltInComponents() {
|
|
|
3235
3474
|
metadata: GridComponentMetadata
|
|
3236
3475
|
});
|
|
3237
3476
|
}
|
|
3477
|
+
if (!globalRegistry.has("Layers")) {
|
|
3478
|
+
globalRegistry.register({
|
|
3479
|
+
type: "Layers",
|
|
3480
|
+
component: Layers,
|
|
3481
|
+
propsSchema: LayersPropsSchema,
|
|
3482
|
+
metadata: LayersComponentMetadata
|
|
3483
|
+
});
|
|
3484
|
+
}
|
|
3485
|
+
if (!globalRegistry.has("Layer")) {
|
|
3486
|
+
globalRegistry.register({
|
|
3487
|
+
type: "Layer",
|
|
3488
|
+
component: Layer,
|
|
3489
|
+
propsSchema: LayerPropsSchema,
|
|
3490
|
+
metadata: LayerComponentMetadata
|
|
3491
|
+
});
|
|
3492
|
+
}
|
|
3238
3493
|
if (!globalRegistry.has("Image")) {
|
|
3239
3494
|
globalRegistry.register({
|
|
3240
3495
|
type: "Image",
|