ugcinc-render 1.8.6 → 1.8.8
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/dist/{index-C5NlUiZT.d.mts → index-DB7cs12s.d.mts} +1 -1
- package/dist/{index-C5NlUiZT.d.ts → index-DB7cs12s.d.ts} +1 -1
- package/dist/index.d.mts +23 -3
- package/dist/index.d.ts +23 -3
- package/dist/index.js +160 -14
- package/dist/index.mjs +155 -10
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -278,7 +278,7 @@ interface CropBounds {
|
|
|
278
278
|
/**
|
|
279
279
|
* Dimension preset keys for image editor
|
|
280
280
|
*/
|
|
281
|
-
type DimensionPresetKey = '
|
|
281
|
+
type DimensionPresetKey = '9:16' | '1:1' | '4:5' | '16:9' | 'custom';
|
|
282
282
|
/**
|
|
283
283
|
* Dimension preset configuration
|
|
284
284
|
*/
|
|
@@ -278,7 +278,7 @@ interface CropBounds {
|
|
|
278
278
|
/**
|
|
279
279
|
* Dimension preset keys for image editor
|
|
280
280
|
*/
|
|
281
|
-
type DimensionPresetKey = '
|
|
281
|
+
type DimensionPresetKey = '9:16' | '1:1' | '4:5' | '16:9' | 'custom';
|
|
282
282
|
/**
|
|
283
283
|
* Dimension preset configuration
|
|
284
284
|
*/
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as SegmentType, T as TimeValue, R as RelativePositionConfigX, a as RelativePositionConfigY, F as FitMode, B as BorderRadiusConfig, b as TextStyleProperties, D as DynamicCropConfig, I as ImageEditorElement, A as AutoCaptionCompositionProps, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-
|
|
2
|
-
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, J as CropAxisConfig, G as CropBoundary, K as CropBounds, aC as DEFAULT_CAPTION_STYLE, p as DIMENSION_PRESETS, o as DimensionPreset, n as DimensionPresetKey, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, c as FontType, d as FontWeight, j as HorizontalAnchor, k as HorizontalSelfAnchor, H as Hyphenation, a6 as IMAGE_DEFAULTS, m as ImageEditorNodeConfig, an as PositionResolutionError, E as SegmentTimelinePosition, a5 as TEXT_DEFAULTS, e as TextAlignment, f as TextDirection, h as TextOverflow, g as TextWrap, q as TimeMode, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, V as VerticalAlignment, i as VerticalAnchor, l as VerticalSelfAnchor, u as VideoEditorAudioSegment, r as VideoEditorBaseSegment, y as VideoEditorChannel, v as VideoEditorImageSegment, z as VideoEditorNodeConfig, x as VideoEditorSegment, w as VideoEditorTextSegment, t as VideoEditorVideoSegment, s as VideoEditorVisualSegment, W as WordBreak, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from './index-
|
|
1
|
+
import { S as SegmentType, T as TimeValue, R as RelativePositionConfigX, a as RelativePositionConfigY, F as FitMode, B as BorderRadiusConfig, b as TextStyleProperties, D as DynamicCropConfig, I as ImageEditorElement, A as AutoCaptionCompositionProps, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-DB7cs12s.mjs';
|
|
2
|
+
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, J as CropAxisConfig, G as CropBoundary, K as CropBounds, aC as DEFAULT_CAPTION_STYLE, p as DIMENSION_PRESETS, o as DimensionPreset, n as DimensionPresetKey, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, c as FontType, d as FontWeight, j as HorizontalAnchor, k as HorizontalSelfAnchor, H as Hyphenation, a6 as IMAGE_DEFAULTS, m as ImageEditorNodeConfig, an as PositionResolutionError, E as SegmentTimelinePosition, a5 as TEXT_DEFAULTS, e as TextAlignment, f as TextDirection, h as TextOverflow, g as TextWrap, q as TimeMode, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, V as VerticalAlignment, i as VerticalAnchor, l as VerticalSelfAnchor, u as VideoEditorAudioSegment, r as VideoEditorBaseSegment, y as VideoEditorChannel, v as VideoEditorImageSegment, z as VideoEditorNodeConfig, x as VideoEditorSegment, w as VideoEditorTextSegment, t as VideoEditorVideoSegment, s as VideoEditorVisualSegment, W as WordBreak, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from './index-DB7cs12s.mjs';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
|
|
@@ -620,6 +620,26 @@ declare function AutoCaptionComposition({ videoUrl, captions, style, }: AutoCapt
|
|
|
620
620
|
*/
|
|
621
621
|
declare function AutoCaptionCompositionWithVideo({ videoUrl, captions, style, }: AutoCaptionCompositionProps): react_jsx_runtime.JSX.Element;
|
|
622
622
|
|
|
623
|
+
/**
|
|
624
|
+
* ScreenshotAnimationComposition
|
|
625
|
+
*
|
|
626
|
+
* Simulates an iPhone screenshot animation:
|
|
627
|
+
* 1. Flash - Screen flashes white
|
|
628
|
+
* 2. Shrink - Content scales down to a thumbnail
|
|
629
|
+
* 3. Slide - Thumbnail moves to bottom-left corner
|
|
630
|
+
* 4. Pause - Thumbnail sits briefly
|
|
631
|
+
* 5. Dismiss - Thumbnail slides off-screen to the left
|
|
632
|
+
*/
|
|
633
|
+
interface ScreenshotAnimationCompositionProps {
|
|
634
|
+
/** The image URL to show being "screenshotted" */
|
|
635
|
+
imageUrl: string;
|
|
636
|
+
/** Canvas width */
|
|
637
|
+
width?: number;
|
|
638
|
+
/** Canvas height */
|
|
639
|
+
height?: number;
|
|
640
|
+
}
|
|
641
|
+
declare function ScreenshotAnimationComposition({ imageUrl, width, height, }: ScreenshotAnimationCompositionProps): react_jsx_runtime.JSX.Element;
|
|
642
|
+
|
|
623
643
|
interface TextElementProps {
|
|
624
644
|
segment: TextSegment;
|
|
625
645
|
/** Optional scale for high-DPI rendering */
|
|
@@ -752,4 +772,4 @@ declare function useResolvedPositions(elements: ImageEditorElement[], textValues
|
|
|
752
772
|
|
|
753
773
|
declare const RenderRoot: React.FC;
|
|
754
774
|
|
|
755
|
-
export { type Acceleration, type AudioConfig, type AudioSegment, AutoCaptionComposition, AutoCaptionCompositionProps, AutoCaptionCompositionWithVideo, type BaseEditorConfig, type BaseSegment, type BlendMode, BorderRadiusConfig, CaptionOverlay, CaptionOverlayProps, type Channel, type ColorFilterConfig, type ColorShiftConfig, type CropConfig, type CuttingConfig, DEDUPLICATION_LEVELS, type DeduplicationConfig, type DeduplicationInput, type DeduplicationLevel, type DiagonalFilterConfig, type DiagonalFilterType, DynamicCropConfig, type EditorConfig, type EditorSegment, type EnhanceLevel, type EnhancementConfig, FitMode, type FrameManipulationConfig, type GifOverlayConfig, type GifSource, type GradientOverlayConfig, ImageEditorComposition, type ImageEditorCompositionProps, type ImageEditorConfig, ImageEditorElement, ImageElement, type ImageElementProps, type ImageSegment, LEVEL_1_CONFIG, LEVEL_2_CONFIG, LEVEL_3_CONFIG, LEVEL_4_CONFIG, LEVEL_5_CONFIG, type LensCorrectionConfig, type MobileEncodingConfig, type ParticleOverlayConfig, type PhoneConfig, type PhoneModel, type PhoneType, type PictureSegment, PositionResolutionResult, RelativePositionConfigX, RelativePositionConfigY, RenderRoot, type Segment, SegmentType, type SpeedConfig, type StaticSegment, TextElement, type TextElementProps, type TextSegment, TextStyleProperties, TimeValue, type TraceRemovalConfig, type VideoCodec, VideoEditorComposition, type VideoEditorCompositionProps, type VideoEditorConfig, VideoElement, type VideoElementProps, type VideoExtension, type VideoSegment, type VisualAdjustmentsConfig, type VisualSegment, type VisualSegmentUnion, isDeduplicationLevel, resolveDeduplicationConfig, useFontsLoaded, useImageLoader, useImagePreloader, useResolvedPositions };
|
|
775
|
+
export { type Acceleration, type AudioConfig, type AudioSegment, AutoCaptionComposition, AutoCaptionCompositionProps, AutoCaptionCompositionWithVideo, type BaseEditorConfig, type BaseSegment, type BlendMode, BorderRadiusConfig, CaptionOverlay, CaptionOverlayProps, type Channel, type ColorFilterConfig, type ColorShiftConfig, type CropConfig, type CuttingConfig, DEDUPLICATION_LEVELS, type DeduplicationConfig, type DeduplicationInput, type DeduplicationLevel, type DiagonalFilterConfig, type DiagonalFilterType, DynamicCropConfig, type EditorConfig, type EditorSegment, type EnhanceLevel, type EnhancementConfig, FitMode, type FrameManipulationConfig, type GifOverlayConfig, type GifSource, type GradientOverlayConfig, ImageEditorComposition, type ImageEditorCompositionProps, type ImageEditorConfig, ImageEditorElement, ImageElement, type ImageElementProps, type ImageSegment, LEVEL_1_CONFIG, LEVEL_2_CONFIG, LEVEL_3_CONFIG, LEVEL_4_CONFIG, LEVEL_5_CONFIG, type LensCorrectionConfig, type MobileEncodingConfig, type ParticleOverlayConfig, type PhoneConfig, type PhoneModel, type PhoneType, type PictureSegment, PositionResolutionResult, RelativePositionConfigX, RelativePositionConfigY, RenderRoot, ScreenshotAnimationComposition, type ScreenshotAnimationCompositionProps, type Segment, SegmentType, type SpeedConfig, type StaticSegment, TextElement, type TextElementProps, type TextSegment, TextStyleProperties, TimeValue, type TraceRemovalConfig, type VideoCodec, VideoEditorComposition, type VideoEditorCompositionProps, type VideoEditorConfig, VideoElement, type VideoElementProps, type VideoExtension, type VideoSegment, type VisualAdjustmentsConfig, type VisualSegment, type VisualSegmentUnion, isDeduplicationLevel, resolveDeduplicationConfig, useFontsLoaded, useImageLoader, useImagePreloader, useResolvedPositions };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as SegmentType, T as TimeValue, R as RelativePositionConfigX, a as RelativePositionConfigY, F as FitMode, B as BorderRadiusConfig, b as TextStyleProperties, D as DynamicCropConfig, I as ImageEditorElement, A as AutoCaptionCompositionProps, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-
|
|
2
|
-
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, J as CropAxisConfig, G as CropBoundary, K as CropBounds, aC as DEFAULT_CAPTION_STYLE, p as DIMENSION_PRESETS, o as DimensionPreset, n as DimensionPresetKey, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, c as FontType, d as FontWeight, j as HorizontalAnchor, k as HorizontalSelfAnchor, H as Hyphenation, a6 as IMAGE_DEFAULTS, m as ImageEditorNodeConfig, an as PositionResolutionError, E as SegmentTimelinePosition, a5 as TEXT_DEFAULTS, e as TextAlignment, f as TextDirection, h as TextOverflow, g as TextWrap, q as TimeMode, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, V as VerticalAlignment, i as VerticalAnchor, l as VerticalSelfAnchor, u as VideoEditorAudioSegment, r as VideoEditorBaseSegment, y as VideoEditorChannel, v as VideoEditorImageSegment, z as VideoEditorNodeConfig, x as VideoEditorSegment, w as VideoEditorTextSegment, t as VideoEditorVideoSegment, s as VideoEditorVisualSegment, W as WordBreak, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from './index-
|
|
1
|
+
import { S as SegmentType, T as TimeValue, R as RelativePositionConfigX, a as RelativePositionConfigY, F as FitMode, B as BorderRadiusConfig, b as TextStyleProperties, D as DynamicCropConfig, I as ImageEditorElement, A as AutoCaptionCompositionProps, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-DB7cs12s.js';
|
|
2
|
+
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, J as CropAxisConfig, G as CropBoundary, K as CropBounds, aC as DEFAULT_CAPTION_STYLE, p as DIMENSION_PRESETS, o as DimensionPreset, n as DimensionPresetKey, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, c as FontType, d as FontWeight, j as HorizontalAnchor, k as HorizontalSelfAnchor, H as Hyphenation, a6 as IMAGE_DEFAULTS, m as ImageEditorNodeConfig, an as PositionResolutionError, E as SegmentTimelinePosition, a5 as TEXT_DEFAULTS, e as TextAlignment, f as TextDirection, h as TextOverflow, g as TextWrap, q as TimeMode, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, V as VerticalAlignment, i as VerticalAnchor, l as VerticalSelfAnchor, u as VideoEditorAudioSegment, r as VideoEditorBaseSegment, y as VideoEditorChannel, v as VideoEditorImageSegment, z as VideoEditorNodeConfig, x as VideoEditorSegment, w as VideoEditorTextSegment, t as VideoEditorVideoSegment, s as VideoEditorVisualSegment, W as WordBreak, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from './index-DB7cs12s.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
|
|
@@ -620,6 +620,26 @@ declare function AutoCaptionComposition({ videoUrl, captions, style, }: AutoCapt
|
|
|
620
620
|
*/
|
|
621
621
|
declare function AutoCaptionCompositionWithVideo({ videoUrl, captions, style, }: AutoCaptionCompositionProps): react_jsx_runtime.JSX.Element;
|
|
622
622
|
|
|
623
|
+
/**
|
|
624
|
+
* ScreenshotAnimationComposition
|
|
625
|
+
*
|
|
626
|
+
* Simulates an iPhone screenshot animation:
|
|
627
|
+
* 1. Flash - Screen flashes white
|
|
628
|
+
* 2. Shrink - Content scales down to a thumbnail
|
|
629
|
+
* 3. Slide - Thumbnail moves to bottom-left corner
|
|
630
|
+
* 4. Pause - Thumbnail sits briefly
|
|
631
|
+
* 5. Dismiss - Thumbnail slides off-screen to the left
|
|
632
|
+
*/
|
|
633
|
+
interface ScreenshotAnimationCompositionProps {
|
|
634
|
+
/** The image URL to show being "screenshotted" */
|
|
635
|
+
imageUrl: string;
|
|
636
|
+
/** Canvas width */
|
|
637
|
+
width?: number;
|
|
638
|
+
/** Canvas height */
|
|
639
|
+
height?: number;
|
|
640
|
+
}
|
|
641
|
+
declare function ScreenshotAnimationComposition({ imageUrl, width, height, }: ScreenshotAnimationCompositionProps): react_jsx_runtime.JSX.Element;
|
|
642
|
+
|
|
623
643
|
interface TextElementProps {
|
|
624
644
|
segment: TextSegment;
|
|
625
645
|
/** Optional scale for high-DPI rendering */
|
|
@@ -752,4 +772,4 @@ declare function useResolvedPositions(elements: ImageEditorElement[], textValues
|
|
|
752
772
|
|
|
753
773
|
declare const RenderRoot: React.FC;
|
|
754
774
|
|
|
755
|
-
export { type Acceleration, type AudioConfig, type AudioSegment, AutoCaptionComposition, AutoCaptionCompositionProps, AutoCaptionCompositionWithVideo, type BaseEditorConfig, type BaseSegment, type BlendMode, BorderRadiusConfig, CaptionOverlay, CaptionOverlayProps, type Channel, type ColorFilterConfig, type ColorShiftConfig, type CropConfig, type CuttingConfig, DEDUPLICATION_LEVELS, type DeduplicationConfig, type DeduplicationInput, type DeduplicationLevel, type DiagonalFilterConfig, type DiagonalFilterType, DynamicCropConfig, type EditorConfig, type EditorSegment, type EnhanceLevel, type EnhancementConfig, FitMode, type FrameManipulationConfig, type GifOverlayConfig, type GifSource, type GradientOverlayConfig, ImageEditorComposition, type ImageEditorCompositionProps, type ImageEditorConfig, ImageEditorElement, ImageElement, type ImageElementProps, type ImageSegment, LEVEL_1_CONFIG, LEVEL_2_CONFIG, LEVEL_3_CONFIG, LEVEL_4_CONFIG, LEVEL_5_CONFIG, type LensCorrectionConfig, type MobileEncodingConfig, type ParticleOverlayConfig, type PhoneConfig, type PhoneModel, type PhoneType, type PictureSegment, PositionResolutionResult, RelativePositionConfigX, RelativePositionConfigY, RenderRoot, type Segment, SegmentType, type SpeedConfig, type StaticSegment, TextElement, type TextElementProps, type TextSegment, TextStyleProperties, TimeValue, type TraceRemovalConfig, type VideoCodec, VideoEditorComposition, type VideoEditorCompositionProps, type VideoEditorConfig, VideoElement, type VideoElementProps, type VideoExtension, type VideoSegment, type VisualAdjustmentsConfig, type VisualSegment, type VisualSegmentUnion, isDeduplicationLevel, resolveDeduplicationConfig, useFontsLoaded, useImageLoader, useImagePreloader, useResolvedPositions };
|
|
775
|
+
export { type Acceleration, type AudioConfig, type AudioSegment, AutoCaptionComposition, AutoCaptionCompositionProps, AutoCaptionCompositionWithVideo, type BaseEditorConfig, type BaseSegment, type BlendMode, BorderRadiusConfig, CaptionOverlay, CaptionOverlayProps, type Channel, type ColorFilterConfig, type ColorShiftConfig, type CropConfig, type CuttingConfig, DEDUPLICATION_LEVELS, type DeduplicationConfig, type DeduplicationInput, type DeduplicationLevel, type DiagonalFilterConfig, type DiagonalFilterType, DynamicCropConfig, type EditorConfig, type EditorSegment, type EnhanceLevel, type EnhancementConfig, FitMode, type FrameManipulationConfig, type GifOverlayConfig, type GifSource, type GradientOverlayConfig, ImageEditorComposition, type ImageEditorCompositionProps, type ImageEditorConfig, ImageEditorElement, ImageElement, type ImageElementProps, type ImageSegment, LEVEL_1_CONFIG, LEVEL_2_CONFIG, LEVEL_3_CONFIG, LEVEL_4_CONFIG, LEVEL_5_CONFIG, type LensCorrectionConfig, type MobileEncodingConfig, type ParticleOverlayConfig, type PhoneConfig, type PhoneModel, type PhoneType, type PictureSegment, PositionResolutionResult, RelativePositionConfigX, RelativePositionConfigY, RenderRoot, ScreenshotAnimationComposition, type ScreenshotAnimationCompositionProps, type Segment, SegmentType, type SpeedConfig, type StaticSegment, TextElement, type TextElementProps, type TextSegment, TextStyleProperties, TimeValue, type TraceRemovalConfig, type VideoCodec, VideoEditorComposition, type VideoEditorCompositionProps, type VideoEditorConfig, VideoElement, type VideoElementProps, type VideoExtension, type VideoSegment, type VisualAdjustmentsConfig, type VisualSegment, type VisualSegmentUnion, isDeduplicationLevel, resolveDeduplicationConfig, useFontsLoaded, useImageLoader, useImagePreloader, useResolvedPositions };
|
package/dist/index.js
CHANGED
|
@@ -49,6 +49,7 @@ __export(index_exports, {
|
|
|
49
49
|
LEVEL_4_CONFIG: () => LEVEL_4_CONFIG,
|
|
50
50
|
LEVEL_5_CONFIG: () => LEVEL_5_CONFIG,
|
|
51
51
|
RenderRoot: () => RenderRoot,
|
|
52
|
+
ScreenshotAnimationComposition: () => ScreenshotAnimationComposition,
|
|
52
53
|
TEXT_DEFAULTS: () => TEXT_DEFAULTS,
|
|
53
54
|
TextElement: () => TextElement,
|
|
54
55
|
VIDEO_DEFAULTS: () => VIDEO_DEFAULTS,
|
|
@@ -102,11 +103,10 @@ module.exports = __toCommonJS(index_exports);
|
|
|
102
103
|
|
|
103
104
|
// src/types/element.ts
|
|
104
105
|
var DIMENSION_PRESETS = {
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"twitter": { width: 1200, height: 675, label: "Twitter/X (1200\xD7675)", ratio: "16:9" }
|
|
106
|
+
"9:16": { width: 1080, height: 1920, label: "Portrait (1080\xD71920)", ratio: "9:16" },
|
|
107
|
+
"1:1": { width: 1080, height: 1080, label: "Square (1080\xD71080)", ratio: "1:1" },
|
|
108
|
+
"4:5": { width: 1080, height: 1350, label: "Portrait 4:5 (1080\xD71350)", ratio: "4:5" },
|
|
109
|
+
"16:9": { width: 1920, height: 1080, label: "Landscape (1920\xD71080)", ratio: "16:9" }
|
|
110
110
|
};
|
|
111
111
|
|
|
112
112
|
// src/types/deduplication.ts
|
|
@@ -2246,6 +2246,133 @@ function AutoCaptionCompositionWithVideo({
|
|
|
2246
2246
|
] });
|
|
2247
2247
|
}
|
|
2248
2248
|
|
|
2249
|
+
// src/compositions/ScreenshotAnimationComposition.tsx
|
|
2250
|
+
var import_remotion7 = require("remotion");
|
|
2251
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2252
|
+
function ScreenshotAnimationComposition({
|
|
2253
|
+
imageUrl,
|
|
2254
|
+
width = 1080,
|
|
2255
|
+
height = 1920
|
|
2256
|
+
}) {
|
|
2257
|
+
const frame = (0, import_remotion7.useCurrentFrame)();
|
|
2258
|
+
const { fps } = (0, import_remotion7.useVideoConfig)();
|
|
2259
|
+
const flashDuration = Math.round(fps * 0.1);
|
|
2260
|
+
const shrinkDuration = Math.round(fps * 0.3);
|
|
2261
|
+
const pauseDuration = Math.round(fps * 0.8);
|
|
2262
|
+
const dismissDuration = Math.round(fps * 0.25);
|
|
2263
|
+
const flashStart = 0;
|
|
2264
|
+
const flashEnd = flashDuration;
|
|
2265
|
+
const shrinkStart = flashEnd;
|
|
2266
|
+
const shrinkEnd = shrinkStart + shrinkDuration;
|
|
2267
|
+
const pauseEnd = shrinkEnd + pauseDuration;
|
|
2268
|
+
const dismissEnd = pauseEnd + dismissDuration;
|
|
2269
|
+
const flashOpacity = (0, import_remotion7.interpolate)(
|
|
2270
|
+
frame,
|
|
2271
|
+
[flashStart, flashEnd],
|
|
2272
|
+
[1, 0],
|
|
2273
|
+
{ extrapolateRight: "clamp" }
|
|
2274
|
+
);
|
|
2275
|
+
const shrinkProgress = (0, import_remotion7.spring)({
|
|
2276
|
+
frame: frame - shrinkStart,
|
|
2277
|
+
fps,
|
|
2278
|
+
config: {
|
|
2279
|
+
damping: 15,
|
|
2280
|
+
stiffness: 120,
|
|
2281
|
+
mass: 0.8
|
|
2282
|
+
},
|
|
2283
|
+
durationInFrames: shrinkDuration
|
|
2284
|
+
});
|
|
2285
|
+
const scale = (0, import_remotion7.interpolate)(
|
|
2286
|
+
shrinkProgress,
|
|
2287
|
+
[0, 1],
|
|
2288
|
+
[1, 0.15],
|
|
2289
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2290
|
+
);
|
|
2291
|
+
const thumbnailPadding = 20;
|
|
2292
|
+
const thumbnailWidth = width * 0.15;
|
|
2293
|
+
const thumbnailHeight = height * 0.15;
|
|
2294
|
+
const finalX = thumbnailPadding + thumbnailWidth / 2 - width / 2;
|
|
2295
|
+
const finalY = height / 2 - thumbnailHeight / 2 - thumbnailPadding - 80;
|
|
2296
|
+
const translateX = (0, import_remotion7.interpolate)(
|
|
2297
|
+
shrinkProgress,
|
|
2298
|
+
[0, 1],
|
|
2299
|
+
[0, finalX],
|
|
2300
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2301
|
+
);
|
|
2302
|
+
const translateY = (0, import_remotion7.interpolate)(
|
|
2303
|
+
shrinkProgress,
|
|
2304
|
+
[0, 1],
|
|
2305
|
+
[0, finalY],
|
|
2306
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2307
|
+
);
|
|
2308
|
+
const dismissProgress = (0, import_remotion7.interpolate)(
|
|
2309
|
+
frame,
|
|
2310
|
+
[pauseEnd, dismissEnd],
|
|
2311
|
+
[0, 1],
|
|
2312
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2313
|
+
);
|
|
2314
|
+
const dismissX = (0, import_remotion7.interpolate)(
|
|
2315
|
+
dismissProgress,
|
|
2316
|
+
[0, 1],
|
|
2317
|
+
[0, -thumbnailWidth - thumbnailPadding - 50],
|
|
2318
|
+
// Slide fully off screen
|
|
2319
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2320
|
+
);
|
|
2321
|
+
const borderRadius = (0, import_remotion7.interpolate)(
|
|
2322
|
+
shrinkProgress,
|
|
2323
|
+
[0, 0.5, 1],
|
|
2324
|
+
[0, 20, 24],
|
|
2325
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2326
|
+
);
|
|
2327
|
+
const shadowOpacity = (0, import_remotion7.interpolate)(
|
|
2328
|
+
shrinkProgress,
|
|
2329
|
+
[0, 0.5, 1],
|
|
2330
|
+
[0, 0.3, 0.5],
|
|
2331
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
2332
|
+
);
|
|
2333
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_remotion7.AbsoluteFill, { style: { backgroundColor: "#000" }, children: [
|
|
2334
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2335
|
+
"div",
|
|
2336
|
+
{
|
|
2337
|
+
style: {
|
|
2338
|
+
position: "absolute",
|
|
2339
|
+
left: "50%",
|
|
2340
|
+
top: "50%",
|
|
2341
|
+
width,
|
|
2342
|
+
height,
|
|
2343
|
+
marginLeft: -width / 2,
|
|
2344
|
+
marginTop: -height / 2,
|
|
2345
|
+
transform: `translate(${translateX + dismissX}px, ${translateY}px) scale(${scale})`,
|
|
2346
|
+
transformOrigin: "center center",
|
|
2347
|
+
borderRadius,
|
|
2348
|
+
overflow: "hidden",
|
|
2349
|
+
boxShadow: `0 10px 60px rgba(0, 0, 0, ${shadowOpacity})`
|
|
2350
|
+
},
|
|
2351
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2352
|
+
import_remotion7.Img,
|
|
2353
|
+
{
|
|
2354
|
+
src: imageUrl,
|
|
2355
|
+
style: {
|
|
2356
|
+
width: "100%",
|
|
2357
|
+
height: "100%",
|
|
2358
|
+
objectFit: "cover"
|
|
2359
|
+
}
|
|
2360
|
+
}
|
|
2361
|
+
)
|
|
2362
|
+
}
|
|
2363
|
+
),
|
|
2364
|
+
frame < flashEnd && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2365
|
+
import_remotion7.AbsoluteFill,
|
|
2366
|
+
{
|
|
2367
|
+
style: {
|
|
2368
|
+
backgroundColor: "#fff",
|
|
2369
|
+
opacity: flashOpacity
|
|
2370
|
+
}
|
|
2371
|
+
}
|
|
2372
|
+
)
|
|
2373
|
+
] });
|
|
2374
|
+
}
|
|
2375
|
+
|
|
2249
2376
|
// src/utils/fit.ts
|
|
2250
2377
|
function calculateFitDimensions({
|
|
2251
2378
|
sourceWidth,
|
|
@@ -2611,8 +2738,8 @@ function useResolvedPositions(elements, textValues) {
|
|
|
2611
2738
|
}
|
|
2612
2739
|
|
|
2613
2740
|
// src/Root.tsx
|
|
2614
|
-
var
|
|
2615
|
-
var
|
|
2741
|
+
var import_remotion8 = require("remotion");
|
|
2742
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
2616
2743
|
var defaultImageProps = {
|
|
2617
2744
|
config: {
|
|
2618
2745
|
width: 1080,
|
|
@@ -2654,9 +2781,15 @@ var defaultAutoCaptionProps = {
|
|
|
2654
2781
|
wordsPerPage: 3
|
|
2655
2782
|
}
|
|
2656
2783
|
};
|
|
2784
|
+
var defaultScreenshotAnimationProps = {
|
|
2785
|
+
imageUrl: "https://images.unsplash.com/photo-1611162617474-5b21e879e113?w=1080&h=1920&fit=crop",
|
|
2786
|
+
width: 1080,
|
|
2787
|
+
height: 1920
|
|
2788
|
+
};
|
|
2657
2789
|
var ImageComp = ImageEditorComposition;
|
|
2658
2790
|
var VideoComp = VideoEditorComposition;
|
|
2659
2791
|
var AutoCaptionComp = AutoCaptionComposition;
|
|
2792
|
+
var ScreenshotAnimationComp = ScreenshotAnimationComposition;
|
|
2660
2793
|
var calculateImageMetadata = async ({ props }) => {
|
|
2661
2794
|
console.log("[calculateMetadata] Starting metadata calculation...");
|
|
2662
2795
|
const canvasWidth = props.width ?? props.config?.width ?? 1080;
|
|
@@ -2707,9 +2840,9 @@ var calculateImageMetadata = async ({ props }) => {
|
|
|
2707
2840
|
};
|
|
2708
2841
|
};
|
|
2709
2842
|
var RenderRoot = () => {
|
|
2710
|
-
return /* @__PURE__ */ (0,
|
|
2711
|
-
/* @__PURE__ */ (0,
|
|
2712
|
-
|
|
2843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
2844
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2845
|
+
import_remotion8.Composition,
|
|
2713
2846
|
{
|
|
2714
2847
|
id: "ImageEditorComposition",
|
|
2715
2848
|
component: ImageComp,
|
|
@@ -2721,8 +2854,8 @@ var RenderRoot = () => {
|
|
|
2721
2854
|
defaultProps: defaultImageProps
|
|
2722
2855
|
}
|
|
2723
2856
|
),
|
|
2724
|
-
/* @__PURE__ */ (0,
|
|
2725
|
-
|
|
2857
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2858
|
+
import_remotion8.Composition,
|
|
2726
2859
|
{
|
|
2727
2860
|
id: "VideoEditorComposition",
|
|
2728
2861
|
component: VideoComp,
|
|
@@ -2733,8 +2866,8 @@ var RenderRoot = () => {
|
|
|
2733
2866
|
defaultProps: defaultVideoProps
|
|
2734
2867
|
}
|
|
2735
2868
|
),
|
|
2736
|
-
/* @__PURE__ */ (0,
|
|
2737
|
-
|
|
2869
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2870
|
+
import_remotion8.Composition,
|
|
2738
2871
|
{
|
|
2739
2872
|
id: "AutoCaptionComposition",
|
|
2740
2873
|
component: AutoCaptionComp,
|
|
@@ -2744,6 +2877,18 @@ var RenderRoot = () => {
|
|
|
2744
2877
|
height: 1920,
|
|
2745
2878
|
defaultProps: defaultAutoCaptionProps
|
|
2746
2879
|
}
|
|
2880
|
+
),
|
|
2881
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2882
|
+
import_remotion8.Composition,
|
|
2883
|
+
{
|
|
2884
|
+
id: "ScreenshotAnimationComposition",
|
|
2885
|
+
component: ScreenshotAnimationComp,
|
|
2886
|
+
durationInFrames: 60,
|
|
2887
|
+
fps: 30,
|
|
2888
|
+
width: 1080,
|
|
2889
|
+
height: 1920,
|
|
2890
|
+
defaultProps: defaultScreenshotAnimationProps
|
|
2891
|
+
}
|
|
2747
2892
|
)
|
|
2748
2893
|
] });
|
|
2749
2894
|
};
|
|
@@ -2768,6 +2913,7 @@ var RenderRoot = () => {
|
|
|
2768
2913
|
LEVEL_4_CONFIG,
|
|
2769
2914
|
LEVEL_5_CONFIG,
|
|
2770
2915
|
RenderRoot,
|
|
2916
|
+
ScreenshotAnimationComposition,
|
|
2771
2917
|
TEXT_DEFAULTS,
|
|
2772
2918
|
TextElement,
|
|
2773
2919
|
VIDEO_DEFAULTS,
|
package/dist/index.mjs
CHANGED
|
@@ -48,11 +48,10 @@ import {
|
|
|
48
48
|
|
|
49
49
|
// src/types/element.ts
|
|
50
50
|
var DIMENSION_PRESETS = {
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"twitter": { width: 1200, height: 675, label: "Twitter/X (1200\xD7675)", ratio: "16:9" }
|
|
51
|
+
"9:16": { width: 1080, height: 1920, label: "Portrait (1080\xD71920)", ratio: "9:16" },
|
|
52
|
+
"1:1": { width: 1080, height: 1080, label: "Square (1080\xD71080)", ratio: "1:1" },
|
|
53
|
+
"4:5": { width: 1080, height: 1350, label: "Portrait 4:5 (1080\xD71350)", ratio: "4:5" },
|
|
54
|
+
"16:9": { width: 1920, height: 1080, label: "Landscape (1920\xD71080)", ratio: "16:9" }
|
|
56
55
|
};
|
|
57
56
|
|
|
58
57
|
// src/types/deduplication.ts
|
|
@@ -1384,6 +1383,133 @@ function AutoCaptionCompositionWithVideo({
|
|
|
1384
1383
|
] });
|
|
1385
1384
|
}
|
|
1386
1385
|
|
|
1386
|
+
// src/compositions/ScreenshotAnimationComposition.tsx
|
|
1387
|
+
import { AbsoluteFill as AbsoluteFill4, Img as Img3, interpolate as interpolate2, spring, useCurrentFrame as useCurrentFrame5, useVideoConfig as useVideoConfig5 } from "remotion";
|
|
1388
|
+
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1389
|
+
function ScreenshotAnimationComposition({
|
|
1390
|
+
imageUrl,
|
|
1391
|
+
width = 1080,
|
|
1392
|
+
height = 1920
|
|
1393
|
+
}) {
|
|
1394
|
+
const frame = useCurrentFrame5();
|
|
1395
|
+
const { fps } = useVideoConfig5();
|
|
1396
|
+
const flashDuration = Math.round(fps * 0.1);
|
|
1397
|
+
const shrinkDuration = Math.round(fps * 0.3);
|
|
1398
|
+
const pauseDuration = Math.round(fps * 0.8);
|
|
1399
|
+
const dismissDuration = Math.round(fps * 0.25);
|
|
1400
|
+
const flashStart = 0;
|
|
1401
|
+
const flashEnd = flashDuration;
|
|
1402
|
+
const shrinkStart = flashEnd;
|
|
1403
|
+
const shrinkEnd = shrinkStart + shrinkDuration;
|
|
1404
|
+
const pauseEnd = shrinkEnd + pauseDuration;
|
|
1405
|
+
const dismissEnd = pauseEnd + dismissDuration;
|
|
1406
|
+
const flashOpacity = interpolate2(
|
|
1407
|
+
frame,
|
|
1408
|
+
[flashStart, flashEnd],
|
|
1409
|
+
[1, 0],
|
|
1410
|
+
{ extrapolateRight: "clamp" }
|
|
1411
|
+
);
|
|
1412
|
+
const shrinkProgress = spring({
|
|
1413
|
+
frame: frame - shrinkStart,
|
|
1414
|
+
fps,
|
|
1415
|
+
config: {
|
|
1416
|
+
damping: 15,
|
|
1417
|
+
stiffness: 120,
|
|
1418
|
+
mass: 0.8
|
|
1419
|
+
},
|
|
1420
|
+
durationInFrames: shrinkDuration
|
|
1421
|
+
});
|
|
1422
|
+
const scale = interpolate2(
|
|
1423
|
+
shrinkProgress,
|
|
1424
|
+
[0, 1],
|
|
1425
|
+
[1, 0.15],
|
|
1426
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1427
|
+
);
|
|
1428
|
+
const thumbnailPadding = 20;
|
|
1429
|
+
const thumbnailWidth = width * 0.15;
|
|
1430
|
+
const thumbnailHeight = height * 0.15;
|
|
1431
|
+
const finalX = thumbnailPadding + thumbnailWidth / 2 - width / 2;
|
|
1432
|
+
const finalY = height / 2 - thumbnailHeight / 2 - thumbnailPadding - 80;
|
|
1433
|
+
const translateX = interpolate2(
|
|
1434
|
+
shrinkProgress,
|
|
1435
|
+
[0, 1],
|
|
1436
|
+
[0, finalX],
|
|
1437
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1438
|
+
);
|
|
1439
|
+
const translateY = interpolate2(
|
|
1440
|
+
shrinkProgress,
|
|
1441
|
+
[0, 1],
|
|
1442
|
+
[0, finalY],
|
|
1443
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1444
|
+
);
|
|
1445
|
+
const dismissProgress = interpolate2(
|
|
1446
|
+
frame,
|
|
1447
|
+
[pauseEnd, dismissEnd],
|
|
1448
|
+
[0, 1],
|
|
1449
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1450
|
+
);
|
|
1451
|
+
const dismissX = interpolate2(
|
|
1452
|
+
dismissProgress,
|
|
1453
|
+
[0, 1],
|
|
1454
|
+
[0, -thumbnailWidth - thumbnailPadding - 50],
|
|
1455
|
+
// Slide fully off screen
|
|
1456
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1457
|
+
);
|
|
1458
|
+
const borderRadius = interpolate2(
|
|
1459
|
+
shrinkProgress,
|
|
1460
|
+
[0, 0.5, 1],
|
|
1461
|
+
[0, 20, 24],
|
|
1462
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1463
|
+
);
|
|
1464
|
+
const shadowOpacity = interpolate2(
|
|
1465
|
+
shrinkProgress,
|
|
1466
|
+
[0, 0.5, 1],
|
|
1467
|
+
[0, 0.3, 0.5],
|
|
1468
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
1469
|
+
);
|
|
1470
|
+
return /* @__PURE__ */ jsxs6(AbsoluteFill4, { style: { backgroundColor: "#000" }, children: [
|
|
1471
|
+
/* @__PURE__ */ jsx8(
|
|
1472
|
+
"div",
|
|
1473
|
+
{
|
|
1474
|
+
style: {
|
|
1475
|
+
position: "absolute",
|
|
1476
|
+
left: "50%",
|
|
1477
|
+
top: "50%",
|
|
1478
|
+
width,
|
|
1479
|
+
height,
|
|
1480
|
+
marginLeft: -width / 2,
|
|
1481
|
+
marginTop: -height / 2,
|
|
1482
|
+
transform: `translate(${translateX + dismissX}px, ${translateY}px) scale(${scale})`,
|
|
1483
|
+
transformOrigin: "center center",
|
|
1484
|
+
borderRadius,
|
|
1485
|
+
overflow: "hidden",
|
|
1486
|
+
boxShadow: `0 10px 60px rgba(0, 0, 0, ${shadowOpacity})`
|
|
1487
|
+
},
|
|
1488
|
+
children: /* @__PURE__ */ jsx8(
|
|
1489
|
+
Img3,
|
|
1490
|
+
{
|
|
1491
|
+
src: imageUrl,
|
|
1492
|
+
style: {
|
|
1493
|
+
width: "100%",
|
|
1494
|
+
height: "100%",
|
|
1495
|
+
objectFit: "cover"
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
)
|
|
1499
|
+
}
|
|
1500
|
+
),
|
|
1501
|
+
frame < flashEnd && /* @__PURE__ */ jsx8(
|
|
1502
|
+
AbsoluteFill4,
|
|
1503
|
+
{
|
|
1504
|
+
style: {
|
|
1505
|
+
backgroundColor: "#fff",
|
|
1506
|
+
opacity: flashOpacity
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
)
|
|
1510
|
+
] });
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1387
1513
|
// src/hooks/index.ts
|
|
1388
1514
|
import { useEffect as useEffect2, useState as useState2, useMemo as useMemo7 } from "react";
|
|
1389
1515
|
function useFontsLoaded() {
|
|
@@ -1467,7 +1593,7 @@ function useResolvedPositions(elements, textValues) {
|
|
|
1467
1593
|
|
|
1468
1594
|
// src/Root.tsx
|
|
1469
1595
|
import { Composition } from "remotion";
|
|
1470
|
-
import { Fragment, jsx as
|
|
1596
|
+
import { Fragment, jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1471
1597
|
var defaultImageProps = {
|
|
1472
1598
|
config: {
|
|
1473
1599
|
width: 1080,
|
|
@@ -1509,9 +1635,15 @@ var defaultAutoCaptionProps = {
|
|
|
1509
1635
|
wordsPerPage: 3
|
|
1510
1636
|
}
|
|
1511
1637
|
};
|
|
1638
|
+
var defaultScreenshotAnimationProps = {
|
|
1639
|
+
imageUrl: "https://images.unsplash.com/photo-1611162617474-5b21e879e113?w=1080&h=1920&fit=crop",
|
|
1640
|
+
width: 1080,
|
|
1641
|
+
height: 1920
|
|
1642
|
+
};
|
|
1512
1643
|
var ImageComp = ImageEditorComposition;
|
|
1513
1644
|
var VideoComp = VideoEditorComposition;
|
|
1514
1645
|
var AutoCaptionComp = AutoCaptionComposition;
|
|
1646
|
+
var ScreenshotAnimationComp = ScreenshotAnimationComposition;
|
|
1515
1647
|
var calculateImageMetadata = async ({ props }) => {
|
|
1516
1648
|
console.log("[calculateMetadata] Starting metadata calculation...");
|
|
1517
1649
|
const canvasWidth = props.width ?? props.config?.width ?? 1080;
|
|
@@ -1562,8 +1694,8 @@ var calculateImageMetadata = async ({ props }) => {
|
|
|
1562
1694
|
};
|
|
1563
1695
|
};
|
|
1564
1696
|
var RenderRoot = () => {
|
|
1565
|
-
return /* @__PURE__ */
|
|
1566
|
-
/* @__PURE__ */
|
|
1697
|
+
return /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
1698
|
+
/* @__PURE__ */ jsx9(
|
|
1567
1699
|
Composition,
|
|
1568
1700
|
{
|
|
1569
1701
|
id: "ImageEditorComposition",
|
|
@@ -1576,7 +1708,7 @@ var RenderRoot = () => {
|
|
|
1576
1708
|
defaultProps: defaultImageProps
|
|
1577
1709
|
}
|
|
1578
1710
|
),
|
|
1579
|
-
/* @__PURE__ */
|
|
1711
|
+
/* @__PURE__ */ jsx9(
|
|
1580
1712
|
Composition,
|
|
1581
1713
|
{
|
|
1582
1714
|
id: "VideoEditorComposition",
|
|
@@ -1588,7 +1720,7 @@ var RenderRoot = () => {
|
|
|
1588
1720
|
defaultProps: defaultVideoProps
|
|
1589
1721
|
}
|
|
1590
1722
|
),
|
|
1591
|
-
/* @__PURE__ */
|
|
1723
|
+
/* @__PURE__ */ jsx9(
|
|
1592
1724
|
Composition,
|
|
1593
1725
|
{
|
|
1594
1726
|
id: "AutoCaptionComposition",
|
|
@@ -1599,6 +1731,18 @@ var RenderRoot = () => {
|
|
|
1599
1731
|
height: 1920,
|
|
1600
1732
|
defaultProps: defaultAutoCaptionProps
|
|
1601
1733
|
}
|
|
1734
|
+
),
|
|
1735
|
+
/* @__PURE__ */ jsx9(
|
|
1736
|
+
Composition,
|
|
1737
|
+
{
|
|
1738
|
+
id: "ScreenshotAnimationComposition",
|
|
1739
|
+
component: ScreenshotAnimationComp,
|
|
1740
|
+
durationInFrames: 60,
|
|
1741
|
+
fps: 30,
|
|
1742
|
+
width: 1080,
|
|
1743
|
+
height: 1920,
|
|
1744
|
+
defaultProps: defaultScreenshotAnimationProps
|
|
1745
|
+
}
|
|
1602
1746
|
)
|
|
1603
1747
|
] });
|
|
1604
1748
|
};
|
|
@@ -1622,6 +1766,7 @@ export {
|
|
|
1622
1766
|
LEVEL_4_CONFIG,
|
|
1623
1767
|
LEVEL_5_CONFIG,
|
|
1624
1768
|
RenderRoot,
|
|
1769
|
+
ScreenshotAnimationComposition,
|
|
1625
1770
|
TEXT_DEFAULTS,
|
|
1626
1771
|
TextElement,
|
|
1627
1772
|
VIDEO_DEFAULTS,
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, aC as DEFAULT_CAPTION_STYLE, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, a6 as IMAGE_DEFAULTS, an as PositionResolutionError, P as PositionResolutionResult, a5 as TEXT_DEFAULTS, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from '../index-
|
|
1
|
+
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, aC as DEFAULT_CAPTION_STYLE, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, a6 as IMAGE_DEFAULTS, an as PositionResolutionError, P as PositionResolutionResult, a5 as TEXT_DEFAULTS, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from '../index-DB7cs12s.mjs';
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, aC as DEFAULT_CAPTION_STYLE, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, a6 as IMAGE_DEFAULTS, an as PositionResolutionError, P as PositionResolutionResult, a5 as TEXT_DEFAULTS, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from '../index-
|
|
1
|
+
export { Y as APPLE_EMOJI_FONT, aB as CAPTION_PRESETS, Q as CaptionFontWeight, M as CaptionPage, O as CaptionPosition, N as CaptionPreset, U as CaptionStyle, L as CaptionWord, aC as DEFAULT_CAPTION_STYLE, X as FONT_FAMILIES, $ as FONT_URLS, a4 as FitDimensions, a6 as IMAGE_DEFAULTS, an as PositionResolutionError, P as PositionResolutionResult, a5 as TEXT_DEFAULTS, a7 as VIDEO_DEFAULTS, a8 as VISUAL_DEFAULTS, aa as applyImageDefaults, a9 as applyTextDefaults, ab as applyVideoDefaults, a1 as areFontsLoaded, _ as buildFontString, ai as calculateAutoWidthDimensions, ao as calculateCropBounds, av as calculateEstimatedDuration, a3 as calculateFitDimensions, ad as calculateLineWidth, aw as calculateTimelineContentEnd, aj as canSetAsReference, a2 as debugFontStatus, aq as defaultOffset, ax as formatTime, aA as generateOverlayId, az as generateSegmentId, ar as getBaseSegments, ae as getBorderRadii, aE as getCaptionPresetNames, ak as getDependentElements, Z as getFontFamily, as as getOverlays, al as getReferenceElementX, am as getReferenceElementY, at as getSegmentTimelinePosition, ag as hexToRgba, ap as isDynamicCropEnabled, au as isSegmentVisibleAtTime, aF as isValidCaptionPreset, af as parseHexColor, ay as parseTime, a0 as preloadFonts, aD as resolveCaptionStyle, ah as resolveElementPositions, ac as wrapText } from '../index-DB7cs12s.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugcinc-render",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.8",
|
|
4
4
|
"description": "Unified rendering package for UGC Inc - shared types, components, and compositions for pixel-perfect client/server rendering",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|