ugcinc-render 1.8.216 → 1.8.218

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.
@@ -927,7 +927,10 @@ function getBaseSegments(channel) {
927
927
  return channel.segments.filter((s) => s.parentId === void 0);
928
928
  }
929
929
  function getOverlays(channel, parentId) {
930
- return channel.segments.filter((s) => s.parentId === (parentId ?? void 0));
930
+ if (parentId === null) {
931
+ return channel.segments.filter((s) => s.parentId === null);
932
+ }
933
+ return channel.segments.filter((s) => s.parentId === parentId);
931
934
  }
932
935
  function getSegmentTimelinePosition(segment, baseSegments, channel) {
933
936
  if (segment.parentId) {
@@ -466,8 +466,8 @@ interface VideoEditorBaseSegment {
466
466
  timeMode?: TimeMode;
467
467
  /** UI-only: whether this segment's input is optional (default: false = required) */
468
468
  optional?: boolean;
469
- /** Parent segment ID for overlays */
470
- parentId?: string;
469
+ /** Parent segment ID for overlays (string = per-segment overlay, null = global overlay, undefined = base segment) */
470
+ parentId?: string | null;
471
471
  /** Relative start (0-1) within parent for overlays */
472
472
  relativeStart?: number;
473
473
  /** Relative end (0-1) within parent for overlays */
@@ -497,6 +497,10 @@ interface VideoEditorVideoSegment extends VideoEditorVisualSegment {
497
497
  inputRef?: string;
498
498
  /** Actual source URL (set after inputRef is resolved) */
499
499
  source?: string;
500
+ /** UI-only: whether this segment uses a variable input (default: true for backwards compat) */
501
+ isVariable?: boolean;
502
+ /** UI-only: static media items when isVariable is false */
503
+ staticMedia?: StaticMediaItem[];
500
504
  fit?: FitMode;
501
505
  speed?: number;
502
506
  volume?: number;
@@ -511,6 +515,10 @@ interface VideoEditorAudioSegment extends VideoEditorBaseSegment {
511
515
  inputRef?: string;
512
516
  /** Actual source URL (set after inputRef is resolved) */
513
517
  source?: string;
518
+ /** UI-only: whether this segment uses a variable input (default: true for backwards compat) */
519
+ isVariable?: boolean;
520
+ /** UI-only: static media items when isVariable is false */
521
+ staticMedia?: StaticMediaItem[];
514
522
  volume?: number;
515
523
  }
516
524
  /**
@@ -522,6 +530,10 @@ interface VideoEditorImageSegment extends VideoEditorVisualSegment {
522
530
  inputRef?: string;
523
531
  /** Actual source URL (set after inputRef is resolved) */
524
532
  source?: string;
533
+ /** UI-only: whether this segment uses a variable input (default: true for backwards compat) */
534
+ isVariable?: boolean;
535
+ /** UI-only: static media items when isVariable is false */
536
+ staticMedia?: StaticMediaItem[];
525
537
  fit?: FitMode;
526
538
  loop?: boolean;
527
539
  borderRadius?: number | BorderRadiusConfig;
@@ -538,6 +550,8 @@ interface VideoEditorTextSegment extends VideoEditorVisualSegment, TextStyleProp
538
550
  textInputRef?: string;
539
551
  /** Actual text content (set after textInputRef is resolved) */
540
552
  text?: string;
553
+ /** UI-only: whether this segment uses a variable text input (default: true for backwards compat) */
554
+ textIsVariable?: boolean;
541
555
  }
542
556
  /**
543
557
  * Image sequence segment (UI) - plays an array of images sequentially
@@ -466,8 +466,8 @@ interface VideoEditorBaseSegment {
466
466
  timeMode?: TimeMode;
467
467
  /** UI-only: whether this segment's input is optional (default: false = required) */
468
468
  optional?: boolean;
469
- /** Parent segment ID for overlays */
470
- parentId?: string;
469
+ /** Parent segment ID for overlays (string = per-segment overlay, null = global overlay, undefined = base segment) */
470
+ parentId?: string | null;
471
471
  /** Relative start (0-1) within parent for overlays */
472
472
  relativeStart?: number;
473
473
  /** Relative end (0-1) within parent for overlays */
@@ -497,6 +497,10 @@ interface VideoEditorVideoSegment extends VideoEditorVisualSegment {
497
497
  inputRef?: string;
498
498
  /** Actual source URL (set after inputRef is resolved) */
499
499
  source?: string;
500
+ /** UI-only: whether this segment uses a variable input (default: true for backwards compat) */
501
+ isVariable?: boolean;
502
+ /** UI-only: static media items when isVariable is false */
503
+ staticMedia?: StaticMediaItem[];
500
504
  fit?: FitMode;
501
505
  speed?: number;
502
506
  volume?: number;
@@ -511,6 +515,10 @@ interface VideoEditorAudioSegment extends VideoEditorBaseSegment {
511
515
  inputRef?: string;
512
516
  /** Actual source URL (set after inputRef is resolved) */
513
517
  source?: string;
518
+ /** UI-only: whether this segment uses a variable input (default: true for backwards compat) */
519
+ isVariable?: boolean;
520
+ /** UI-only: static media items when isVariable is false */
521
+ staticMedia?: StaticMediaItem[];
514
522
  volume?: number;
515
523
  }
516
524
  /**
@@ -522,6 +530,10 @@ interface VideoEditorImageSegment extends VideoEditorVisualSegment {
522
530
  inputRef?: string;
523
531
  /** Actual source URL (set after inputRef is resolved) */
524
532
  source?: string;
533
+ /** UI-only: whether this segment uses a variable input (default: true for backwards compat) */
534
+ isVariable?: boolean;
535
+ /** UI-only: static media items when isVariable is false */
536
+ staticMedia?: StaticMediaItem[];
525
537
  fit?: FitMode;
526
538
  loop?: boolean;
527
539
  borderRadius?: number | BorderRadiusConfig;
@@ -538,6 +550,8 @@ interface VideoEditorTextSegment extends VideoEditorVisualSegment, TextStyleProp
538
550
  textInputRef?: string;
539
551
  /** Actual text content (set after textInputRef is resolved) */
540
552
  text?: string;
553
+ /** UI-only: whether this segment uses a variable text input (default: true for backwards compat) */
554
+ textIsVariable?: boolean;
541
555
  }
542
556
  /**
543
557
  * Image sequence segment (UI) - plays an array of images sequentially
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 ScreenshotAnimationProps, d as FontWeight, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-BdKUIyCn.mjs';
2
- export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, N as CropAxisConfig, M as CropBoundary, O as CropBounds, aK as DEFAULT_CAPTION_STYLE, r as DIMENSION_PRESETS, q as DimensionPreset, p as DimensionPresetKey, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, e as FontType, k as HorizontalAnchor, l as HorizontalSelfAnchor, H as Hyphenation, ad as IMAGE_DEFAULTS, n as ImageEditorNodeConfig, av as PositionResolutionError, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, L as SegmentTimelinePosition, o as StaticMediaItem, ac as TEXT_DEFAULTS, f as TextAlignment, g as TextDirection, i as TextOverflow, h as TextWrap, s as TimeMode, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, V as VerticalAlignment, j as VerticalAnchor, m as VerticalSelfAnchor, w as VideoEditorAudioSegment, t as VideoEditorBaseSegment, J as VideoEditorChannel, x as VideoEditorImageSegment, z as VideoEditorImageSequenceSegment, K as VideoEditorNodeConfig, G as VideoEditorSegment, y as VideoEditorTextSegment, v as VideoEditorVideoSegment, E as VideoEditorVideoSequenceSegment, u as VideoEditorVisualSegment, W as WordBreak, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from './index-BdKUIyCn.mjs';
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 ScreenshotAnimationProps, d as FontWeight, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-DTYstCYC.mjs';
2
+ export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, N as CropAxisConfig, M as CropBoundary, O as CropBounds, aK as DEFAULT_CAPTION_STYLE, r as DIMENSION_PRESETS, q as DimensionPreset, p as DimensionPresetKey, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, e as FontType, k as HorizontalAnchor, l as HorizontalSelfAnchor, H as Hyphenation, ad as IMAGE_DEFAULTS, n as ImageEditorNodeConfig, av as PositionResolutionError, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, L as SegmentTimelinePosition, o as StaticMediaItem, ac as TEXT_DEFAULTS, f as TextAlignment, g as TextDirection, i as TextOverflow, h as TextWrap, s as TimeMode, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, V as VerticalAlignment, j as VerticalAnchor, m as VerticalSelfAnchor, w as VideoEditorAudioSegment, t as VideoEditorBaseSegment, J as VideoEditorChannel, x as VideoEditorImageSegment, z as VideoEditorImageSequenceSegment, K as VideoEditorNodeConfig, G as VideoEditorSegment, y as VideoEditorTextSegment, v as VideoEditorVideoSegment, E as VideoEditorVideoSequenceSegment, u as VideoEditorVisualSegment, W as WordBreak, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from './index-DTYstCYC.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import React from 'react';
5
5
 
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 ScreenshotAnimationProps, d as FontWeight, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-BdKUIyCn.js';
2
- export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, N as CropAxisConfig, M as CropBoundary, O as CropBounds, aK as DEFAULT_CAPTION_STYLE, r as DIMENSION_PRESETS, q as DimensionPreset, p as DimensionPresetKey, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, e as FontType, k as HorizontalAnchor, l as HorizontalSelfAnchor, H as Hyphenation, ad as IMAGE_DEFAULTS, n as ImageEditorNodeConfig, av as PositionResolutionError, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, L as SegmentTimelinePosition, o as StaticMediaItem, ac as TEXT_DEFAULTS, f as TextAlignment, g as TextDirection, i as TextOverflow, h as TextWrap, s as TimeMode, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, V as VerticalAlignment, j as VerticalAnchor, m as VerticalSelfAnchor, w as VideoEditorAudioSegment, t as VideoEditorBaseSegment, J as VideoEditorChannel, x as VideoEditorImageSegment, z as VideoEditorImageSequenceSegment, K as VideoEditorNodeConfig, G as VideoEditorSegment, y as VideoEditorTextSegment, v as VideoEditorVideoSegment, E as VideoEditorVideoSequenceSegment, u as VideoEditorVisualSegment, W as WordBreak, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from './index-BdKUIyCn.js';
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 ScreenshotAnimationProps, d as FontWeight, C as CaptionOverlayProps, P as PositionResolutionResult } from './index-DTYstCYC.js';
2
+ export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, N as CropAxisConfig, M as CropBoundary, O as CropBounds, aK as DEFAULT_CAPTION_STYLE, r as DIMENSION_PRESETS, q as DimensionPreset, p as DimensionPresetKey, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, e as FontType, k as HorizontalAnchor, l as HorizontalSelfAnchor, H as Hyphenation, ad as IMAGE_DEFAULTS, n as ImageEditorNodeConfig, av as PositionResolutionError, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, L as SegmentTimelinePosition, o as StaticMediaItem, ac as TEXT_DEFAULTS, f as TextAlignment, g as TextDirection, i as TextOverflow, h as TextWrap, s as TimeMode, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, V as VerticalAlignment, j as VerticalAnchor, m as VerticalSelfAnchor, w as VideoEditorAudioSegment, t as VideoEditorBaseSegment, J as VideoEditorChannel, x as VideoEditorImageSegment, z as VideoEditorImageSequenceSegment, K as VideoEditorNodeConfig, G as VideoEditorSegment, y as VideoEditorTextSegment, v as VideoEditorVideoSegment, E as VideoEditorVideoSequenceSegment, u as VideoEditorVisualSegment, W as WordBreak, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from './index-DTYstCYC.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import React from 'react';
5
5
 
package/dist/index.js CHANGED
@@ -7555,7 +7555,10 @@ function getBaseSegments(channel) {
7555
7555
  return channel.segments.filter((s) => s.parentId === void 0);
7556
7556
  }
7557
7557
  function getOverlays(channel, parentId) {
7558
- return channel.segments.filter((s) => s.parentId === (parentId ?? void 0));
7558
+ if (parentId === null) {
7559
+ return channel.segments.filter((s) => s.parentId === null);
7560
+ }
7561
+ return channel.segments.filter((s) => s.parentId === parentId);
7559
7562
  }
7560
7563
  function getSegmentTimelinePosition(segment, baseSegments, channel) {
7561
7564
  if (segment.parentId) {
package/dist/index.mjs CHANGED
@@ -47,7 +47,7 @@ import {
47
47
  resolveCaptionStyle,
48
48
  resolveElementPositions,
49
49
  wrapText
50
- } from "./chunk-QLJ7MHUG.mjs";
50
+ } from "./chunk-CVT6NFIF.mjs";
51
51
 
52
52
  // src/types/element.ts
53
53
  var DIMENSION_PRESETS = {
@@ -1 +1 @@
1
- export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, aK as DEFAULT_CAPTION_STYLE, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, ad as IMAGE_DEFAULTS, av as PositionResolutionError, P as PositionResolutionResult, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, c as ScreenshotAnimationProps, ac as TEXT_DEFAULTS, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from '../index-BdKUIyCn.mjs';
1
+ export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, aK as DEFAULT_CAPTION_STYLE, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, ad as IMAGE_DEFAULTS, av as PositionResolutionError, P as PositionResolutionResult, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, c as ScreenshotAnimationProps, ac as TEXT_DEFAULTS, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from '../index-DTYstCYC.mjs';
@@ -1 +1 @@
1
- export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, aK as DEFAULT_CAPTION_STYLE, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, ad as IMAGE_DEFAULTS, av as PositionResolutionError, P as PositionResolutionResult, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, c as ScreenshotAnimationProps, ac as TEXT_DEFAULTS, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from '../index-BdKUIyCn.js';
1
+ export { a3 as APPLE_EMOJI_FONT, aJ as CAPTION_PRESETS, Z as CaptionFontWeight, U as CaptionPage, Y as CaptionPosition, X as CaptionPreset, _ as CaptionStyle, Q as CaptionWord, aK as DEFAULT_CAPTION_STYLE, a2 as FONT_FAMILIES, a6 as FONT_URLS, ab as FitDimensions, ad as IMAGE_DEFAULTS, av as PositionResolutionError, P as PositionResolutionResult, a0 as SCREENSHOT_ANIMATION_DEFAULTS, $ as ScreenshotAnimationConfig, c as ScreenshotAnimationProps, ac as TEXT_DEFAULTS, ae as VIDEO_DEFAULTS, af as VISUAL_DEFAULTS, ah as applyImageDefaults, ag as applyTextDefaults, ai as applyVideoDefaults, a8 as areFontsLoaded, a5 as buildFontString, aq as calculateAutoWidthDimensions, aw as calculateCropBounds, aD as calculateEstimatedDuration, aa as calculateFitDimensions, ak as calculateLineWidth, a1 as calculateScreenshotAnimationDuration, aE as calculateTimelineContentEnd, ar as canSetAsReference, a9 as debugFontStatus, ay as defaultOffset, aF as formatTime, aI as generateOverlayId, aH as generateSegmentId, az as getBaseSegments, al as getBorderRadii, aM as getCaptionPresetNames, as as getDependentElements, a4 as getFontFamily, aA as getOverlays, at as getReferenceElementX, au as getReferenceElementY, ao as getSFProLetterSpacing, aB as getSegmentTimelinePosition, an as hexToRgba, ax as isDynamicCropEnabled, aC as isSegmentVisibleAtTime, aN as isValidCaptionPreset, am as parseHexColor, aG as parseTime, a7 as preloadFonts, aL as resolveCaptionStyle, ap as resolveElementPositions, aj as wrapText } from '../index-DTYstCYC.js';
@@ -1000,7 +1000,10 @@ function getBaseSegments(channel) {
1000
1000
  return channel.segments.filter((s) => s.parentId === void 0);
1001
1001
  }
1002
1002
  function getOverlays(channel, parentId) {
1003
- return channel.segments.filter((s) => s.parentId === (parentId ?? void 0));
1003
+ if (parentId === null) {
1004
+ return channel.segments.filter((s) => s.parentId === null);
1005
+ }
1006
+ return channel.segments.filter((s) => s.parentId === parentId);
1004
1007
  }
1005
1008
  function getSegmentTimelinePosition(segment, baseSegments, channel) {
1006
1009
  if (segment.parentId) {
@@ -47,7 +47,7 @@ import {
47
47
  resolveCaptionStyle,
48
48
  resolveElementPositions,
49
49
  wrapText
50
- } from "../chunk-QLJ7MHUG.mjs";
50
+ } from "../chunk-CVT6NFIF.mjs";
51
51
  export {
52
52
  APPLE_EMOJI_FONT,
53
53
  CAPTION_PRESETS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc-render",
3
- "version": "1.8.216",
3
+ "version": "1.8.218",
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",