@remotion/promo-pages 4.0.490 → 4.0.491

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.
@@ -35,7 +35,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
35
35
  // ../design/dist/esm/index.mjs
36
36
  import * as React23 from "react";
37
37
  import * as React3 from "react";
38
- import { Fragment as Fragment2, jsx as jsx43 } from "react/jsx-runtime";
38
+ import { Fragment as Fragment22, jsx as jsx43 } from "react/jsx-runtime";
39
39
  import React52, { useCallback as useCallback27, useRef as useRef210, useState as useState22 } from "react";
40
40
 
41
41
  // ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
@@ -4383,13 +4383,12 @@ import { jsx as jsx34 } from "react/jsx-runtime";
4383
4383
  import { jsx as jsx35 } from "react/jsx-runtime";
4384
4384
  import React39, { useMemo as useMemo37 } from "react";
4385
4385
  import { jsx as jsx36 } from "react/jsx-runtime";
4386
- import {
4387
- Children,
4386
+ import React41, {
4388
4387
  forwardRef as forwardRef14,
4389
4388
  useMemo as useMemo38
4390
4389
  } from "react";
4391
4390
  import React40 from "react";
4392
- import { jsx as jsx37 } from "react/jsx-runtime";
4391
+ import { jsx as jsx37, jsxs as jsxs3, Fragment } from "react/jsx-runtime";
4393
4392
  import React42 from "react";
4394
4393
  import { forwardRef as forwardRef16, useCallback as useCallback25, useContext as useContext39 } from "react";
4395
4394
  import {
@@ -5565,7 +5564,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
5565
5564
  var addSequenceStackTraces = (component) => {
5566
5565
  componentsToAddStacksTo.push(component);
5567
5566
  };
5568
- var VERSION = "4.0.490";
5567
+ var VERSION = "4.0.491";
5569
5568
  var checkMultipleRemotionVersions = () => {
5570
5569
  if (typeof globalThis === "undefined") {
5571
5570
  return;
@@ -6178,7 +6177,7 @@ var SequenceManagerRefContext = React11.createContext({
6178
6177
  current: []
6179
6178
  });
6180
6179
  var makeSequencePropsSubscriptionKey = (key) => {
6181
- return `${key.nodePath.join(".")}.${key.sequenceKeys.join(".")}.${key.effectKeys.map((keys) => keys.join(".")).join(".")}`;
6180
+ return `${key.absolutePath}\x00${key.nodePath.join(".")}\x00${key.sequenceKeys.join(".")}\x00${key.effectKeys.map((keys) => keys.join(".")).join(".")}`;
6182
6181
  };
6183
6182
  var VisualModePropStatusesContext = React11.createContext({
6184
6183
  propStatuses: {}
@@ -8791,6 +8790,7 @@ var RegularSequenceRefForwardingFunction = ({
8791
8790
  src: isMedia.data.src,
8792
8791
  getStack: () => stackRef.current,
8793
8792
  startMediaFrom: startMediaFrom ?? isMedia.data.startMediaFrom,
8793
+ mediaFrameAtSequenceZero,
8794
8794
  volume: isMedia.data.volumes,
8795
8795
  refForOutline: refForOutline ?? null,
8796
8796
  isInsideSeries,
@@ -8854,6 +8854,7 @@ var RegularSequenceRefForwardingFunction = ({
8854
8854
  isInsideSeries,
8855
8855
  registeredFrozenFrame,
8856
8856
  startMediaFrom,
8857
+ mediaFrameAtSequenceZero,
8857
8858
  frozenMediaFrame
8858
8859
  ]);
8859
8860
  const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
@@ -10804,7 +10805,9 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
10804
10805
  return;
10805
10806
  }
10806
10807
  if (data === undefined) {
10807
- current.src = EMPTY_AUDIO;
10808
+ if (current.src !== EMPTY_AUDIO) {
10809
+ current.src = EMPTY_AUDIO;
10810
+ }
10808
10811
  return;
10809
10812
  }
10810
10813
  if (!data) {
@@ -10873,7 +10876,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
10873
10876
  if (prevA.id === id) {
10874
10877
  const isTheSame = compareProps(aud, prevA.props) && prevA.premounting === premounting && prevA.postmounting === postmounting;
10875
10878
  if (isTheSame) {
10876
- return prevA;
10879
+ return prevA.audioMounted === audioMounted ? prevA : { ...prevA, audioMounted };
10877
10880
  }
10878
10881
  changed = true;
10879
10882
  return {
@@ -10885,7 +10888,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
10885
10888
  audioMounted
10886
10889
  };
10887
10890
  }
10888
- return prevA;
10891
+ return prevA.audioMounted === audioMounted ? prevA : { ...prevA, audioMounted };
10889
10892
  });
10890
10893
  if (changed) {
10891
10894
  rerenderAudios();
@@ -10924,16 +10927,19 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
10924
10927
  unregisterAudio,
10925
10928
  updateAudio
10926
10929
  ]);
10930
+ const sharedAudioTagElements = useMemo21(() => {
10931
+ return refs.map(({ id, ref }) => {
10932
+ return /* @__PURE__ */ jsx19("audio", {
10933
+ ref,
10934
+ preload: "metadata",
10935
+ src: EMPTY_AUDIO
10936
+ }, id);
10937
+ });
10938
+ }, [refs]);
10927
10939
  return /* @__PURE__ */ jsxs2(SharedAudioTagsContext.Provider, {
10928
10940
  value: audioTagsValue,
10929
10941
  children: [
10930
- refs.map(({ id, ref }) => {
10931
- return /* @__PURE__ */ jsx19("audio", {
10932
- ref,
10933
- preload: "metadata",
10934
- src: EMPTY_AUDIO
10935
- }, id);
10936
- }),
10942
+ sharedAudioTagElements,
10937
10943
  children
10938
10944
  ]
10939
10945
  });
@@ -11394,6 +11400,7 @@ var useMediaInTimeline = ({
11394
11400
  showInTimeline: true,
11395
11401
  nonce: nonce.get(),
11396
11402
  startMediaFrom: 0 - startsAt,
11403
+ mediaFrameAtSequenceZero: null,
11397
11404
  doesVolumeChange,
11398
11405
  loopDisplay,
11399
11406
  playbackRate,
@@ -13027,16 +13034,16 @@ var isMissingPaintRecordError = (error2) => {
13027
13034
  return error2 instanceof DOMException && error2.name === "InvalidStateError";
13028
13035
  };
13029
13036
  var missingPaintRecordMessage = "HtmlInCanvas: Expected the element to be inside the viewport during rendering, but Chrome had no cached paint record for it.";
13030
- var resizeOffscreenCanvas = ({
13031
- offscreen,
13037
+ var resizePaintTarget = ({
13038
+ target,
13032
13039
  width,
13033
13040
  height
13034
13041
  }) => {
13035
- if (offscreen.width !== width) {
13036
- offscreen.width = width;
13042
+ if (target.width !== width) {
13043
+ target.width = width;
13037
13044
  }
13038
- if (offscreen.height !== height) {
13039
- offscreen.height = height;
13045
+ if (target.height !== height) {
13046
+ target.height = height;
13040
13047
  }
13041
13048
  };
13042
13049
  var defaultOnPaint = ({
@@ -13052,7 +13059,7 @@ var defaultOnPaint = ({
13052
13059
  const transform = ctx.drawElementImage(elementImage, 0, 0);
13053
13060
  element.style.transform = transform.toString();
13054
13061
  };
13055
- var HtmlInCanvasAncestorContext = createContext23(false);
13062
+ var HtmlInCanvasAncestorContext = createContext23(null);
13056
13063
  var HtmlInCanvasContent = forwardRef9(({
13057
13064
  width,
13058
13065
  height,
@@ -13064,20 +13071,22 @@ var HtmlInCanvasContent = forwardRef9(({
13064
13071
  controls,
13065
13072
  style
13066
13073
  }, ref) => {
13067
- const isInsideAncestorHtmlInCanvas = useContext31(HtmlInCanvasAncestorContext);
13074
+ const ancestor = useContext31(HtmlInCanvasAncestorContext);
13068
13075
  assertHtmlInCanvasDimensions(width, height);
13069
13076
  const resolvedPixelDensity = resolveHtmlInCanvasPixelDensity(pixelDensity);
13070
13077
  const canvasWidth = Math.ceil(width * resolvedPixelDensity);
13071
13078
  const canvasHeight = Math.ceil(height * resolvedPixelDensity);
13072
13079
  const { continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
13073
- const { isRendering } = useRemotionEnvironment();
13080
+ const { isClientSideRendering, isRendering } = useRemotionEnvironment();
13081
+ const canRetryMissingPaintRecord = !isRendering || isClientSideRendering;
13082
+ const usesDirectLayoutCanvas = onPaint === undefined && onInit === undefined;
13074
13083
  if (!isHtmlInCanvasSupported()) {
13075
13084
  cancelRender2(new Error(HTML_IN_CANVAS_UNSUPPORTED_MESSAGE));
13076
13085
  }
13077
13086
  const canvas2dRef = useRef22(null);
13078
- const offscreenRef = useRef22(null);
13087
+ const paintTargetRef = useRef22(null);
13079
13088
  const divRef = useRef22(null);
13080
- const canvasSizeKey = `${width}x${height}@${resolvedPixelDensity}`;
13089
+ const canvasSizeKey = `${width}x${height}@${resolvedPixelDensity}-${usesDirectLayoutCanvas ? "direct" : "offscreen"}`;
13081
13090
  const setLayoutCanvasRef = useCallback16((node) => {
13082
13091
  canvas2dRef.current = node;
13083
13092
  if (typeof ref === "function") {
@@ -13100,17 +13109,19 @@ var HtmlInCanvasContent = forwardRef9(({
13100
13109
  const initializedRef = useRef22(false);
13101
13110
  const onInitCleanupRef = useRef22(null);
13102
13111
  const unmountedRef = useRef22(false);
13112
+ const ancestorRef = useRef22(ancestor);
13113
+ ancestorRef.current = ancestor;
13103
13114
  const onPaintCb = useCallback16(async () => {
13104
13115
  const element = divRef.current;
13105
13116
  if (!element) {
13106
13117
  throw new Error("Canvas or scene element not found");
13107
13118
  }
13108
- const offscreen = offscreenRef.current;
13109
- if (!offscreen) {
13110
- throw new Error("HtmlInCanvas: offscreen canvas not ready (transferControlToOffscreen failed or canvas is remounting)");
13119
+ const paintTarget = paintTargetRef.current;
13120
+ if (!paintTarget) {
13121
+ throw new Error("HtmlInCanvas: paint target is not ready because the canvas is remounting");
13111
13122
  }
13112
- resizeOffscreenCanvas({
13113
- offscreen,
13123
+ resizePaintTarget({
13124
+ target: paintTarget,
13114
13125
  width: canvasWidth,
13115
13126
  height: canvasHeight
13116
13127
  });
@@ -13121,22 +13132,30 @@ var HtmlInCanvasContent = forwardRef9(({
13121
13132
  }
13122
13133
  const handle = delayRender("onPaint");
13123
13134
  if (!initializedRef.current) {
13124
- let initImage = null;
13125
- try {
13126
- initImage = placeholderCanvas.captureElementImage(element);
13127
- } catch (error2) {
13128
- if (isMissingPaintRecordError(error2) && !isRendering) {} else if (isMissingPaintRecordError(error2)) {
13129
- throw new Error(missingPaintRecordMessage);
13130
- } else {
13135
+ const currentOnInit = onInitRef.current;
13136
+ if (!currentOnInit) {
13137
+ initializedRef.current = true;
13138
+ } else {
13139
+ let initImage;
13140
+ try {
13141
+ initImage = placeholderCanvas.captureElementImage(element);
13142
+ } catch (error2) {
13143
+ if (isMissingPaintRecordError(error2) && canRetryMissingPaintRecord) {
13144
+ continueRender2(handle);
13145
+ return;
13146
+ }
13147
+ if (isMissingPaintRecordError(error2)) {
13148
+ throw new Error(missingPaintRecordMessage);
13149
+ }
13131
13150
  throw error2;
13132
13151
  }
13133
- }
13134
- if (initImage) {
13135
13152
  initializedRef.current = true;
13136
- const currentOnInit = onInitRef.current;
13137
- if (currentOnInit) {
13153
+ try {
13154
+ if (paintTarget instanceof HTMLCanvasElement) {
13155
+ throw new Error("HtmlInCanvas: onInit requires an OffscreenCanvas paint target");
13156
+ }
13138
13157
  const cleanup = await currentOnInit({
13139
- canvas: offscreen,
13158
+ canvas: paintTarget,
13140
13159
  element,
13141
13160
  elementImage: initImage,
13142
13161
  pixelDensity: resolvedPixelDensity
@@ -13149,15 +13168,16 @@ var HtmlInCanvasContent = forwardRef9(({
13149
13168
  } else {
13150
13169
  onInitCleanupRef.current = cleanup;
13151
13170
  }
13171
+ } finally {
13172
+ initImage.close();
13152
13173
  }
13153
13174
  }
13154
13175
  }
13155
- const handler = onPaintRef.current ?? defaultOnPaint;
13156
13176
  let elImage;
13157
13177
  try {
13158
13178
  elImage = placeholderCanvas.captureElementImage(element);
13159
13179
  } catch (error2) {
13160
- if (isMissingPaintRecordError(error2) && !isRendering) {
13180
+ if (isMissingPaintRecordError(error2) && canRetryMissingPaintRecord) {
13161
13181
  continueRender2(handle);
13162
13182
  return;
13163
13183
  }
@@ -13166,20 +13186,41 @@ var HtmlInCanvasContent = forwardRef9(({
13166
13186
  }
13167
13187
  throw error2;
13168
13188
  }
13169
- await handler({
13170
- canvas: offscreen,
13171
- element,
13172
- elementImage: elImage,
13173
- pixelDensity: resolvedPixelDensity
13174
- });
13175
- await runEffectChain({
13176
- state: chainState.get(canvasWidth, canvasHeight),
13177
- source: offscreen,
13178
- effects: effectsRef.current,
13179
- output: offscreen,
13180
- width: canvasWidth,
13181
- height: canvasHeight
13182
- });
13189
+ try {
13190
+ const currentOnPaint = onPaintRef.current;
13191
+ if (currentOnPaint) {
13192
+ if (paintTarget instanceof HTMLCanvasElement) {
13193
+ throw new Error("HtmlInCanvas: onPaint requires an OffscreenCanvas paint target");
13194
+ }
13195
+ const paintResult = currentOnPaint({
13196
+ canvas: paintTarget,
13197
+ element,
13198
+ elementImage: elImage,
13199
+ pixelDensity: resolvedPixelDensity
13200
+ });
13201
+ if (paintResult) {
13202
+ await paintResult;
13203
+ }
13204
+ } else {
13205
+ defaultOnPaint({
13206
+ canvas: paintTarget,
13207
+ element,
13208
+ elementImage: elImage,
13209
+ pixelDensity: resolvedPixelDensity
13210
+ });
13211
+ }
13212
+ await runEffectChain({
13213
+ state: chainState.get(canvasWidth, canvasHeight),
13214
+ source: paintTarget,
13215
+ effects: effectsRef.current,
13216
+ output: paintTarget,
13217
+ width: canvasWidth,
13218
+ height: canvasHeight
13219
+ });
13220
+ } finally {
13221
+ elImage.close();
13222
+ }
13223
+ ancestorRef.current?.requestParentPaint();
13183
13224
  continueRender2(handle);
13184
13225
  } catch (error2) {
13185
13226
  cancelRender2(error2);
@@ -13191,7 +13232,7 @@ var HtmlInCanvasContent = forwardRef9(({
13191
13232
  continueRender2,
13192
13233
  cancelRender2,
13193
13234
  resolvedPixelDensity,
13194
- isRendering
13235
+ canRetryMissingPaintRecord
13195
13236
  ]);
13196
13237
  useLayoutEffect9(() => {
13197
13238
  const placeholder = canvas2dRef.current;
@@ -13199,10 +13240,10 @@ var HtmlInCanvasContent = forwardRef9(({
13199
13240
  throw new Error("Canvas not found");
13200
13241
  }
13201
13242
  placeholder.layoutSubtree = true;
13202
- const offscreen = placeholder.transferControlToOffscreen();
13203
- offscreenRef.current = offscreen;
13204
- resizeOffscreenCanvas({
13205
- offscreen,
13243
+ const paintTarget = usesDirectLayoutCanvas ? placeholder : placeholder.transferControlToOffscreen();
13244
+ paintTargetRef.current = paintTarget;
13245
+ resizePaintTarget({
13246
+ target: paintTarget,
13206
13247
  width: canvasWidth,
13207
13248
  height: canvasHeight
13208
13249
  });
@@ -13211,13 +13252,19 @@ var HtmlInCanvasContent = forwardRef9(({
13211
13252
  placeholder.addEventListener("paint", onPaintCb);
13212
13253
  return () => {
13213
13254
  placeholder.removeEventListener("paint", onPaintCb);
13214
- offscreenRef.current = null;
13255
+ paintTargetRef.current = null;
13215
13256
  initializedRef.current = false;
13216
13257
  unmountedRef.current = true;
13217
13258
  onInitCleanupRef.current?.();
13218
13259
  onInitCleanupRef.current = null;
13219
13260
  };
13220
- }, [onPaintCb, cancelRender2, canvasWidth, canvasHeight]);
13261
+ }, [
13262
+ onPaintCb,
13263
+ cancelRender2,
13264
+ canvasWidth,
13265
+ canvasHeight,
13266
+ usesDirectLayoutCanvas
13267
+ ]);
13221
13268
  const onPaintChangedRef = useRef22(false);
13222
13269
  useLayoutEffect9(() => {
13223
13270
  if (!onPaintChangedRef.current) {
@@ -13256,11 +13303,15 @@ var HtmlInCanvasContent = forwardRef9(({
13256
13303
  ...style ?? {}
13257
13304
  };
13258
13305
  }, [height, style, width]);
13259
- if (isInsideAncestorHtmlInCanvas) {
13260
- throw new Error("<HtmlInCanvas> effects cannot be nested together. Chrome will only display the outer effect. Consider merging the effects into one if you can.");
13261
- }
13306
+ const ancestorValue = useMemo30(() => {
13307
+ return {
13308
+ requestParentPaint: () => {
13309
+ canvas2dRef.current?.requestPaint?.();
13310
+ }
13311
+ };
13312
+ }, []);
13262
13313
  return /* @__PURE__ */ jsx25(HtmlInCanvasAncestorContext.Provider, {
13263
- value: true,
13314
+ value: ancestorValue,
13264
13315
  children: /* @__PURE__ */ jsx25("canvas", {
13265
13316
  ref: setLayoutCanvasRef,
13266
13317
  width: canvasWidth,
@@ -15630,66 +15681,130 @@ var flattenChildren = (children) => {
15630
15681
  return flatChildren;
15631
15682
  }, []);
15632
15683
  };
15633
- var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
15684
+ var seriesSequenceSchema = {
15685
+ durationInFrames: Interactive.baseSchema.durationInFrames,
15686
+ name: Interactive.sequenceSchema.name,
15687
+ hidden: Interactive.sequenceSchema.hidden,
15688
+ showInTimeline: Interactive.sequenceSchema.showInTimeline,
15689
+ freeze: Interactive.baseSchema.freeze,
15690
+ layout: Interactive.sequenceSchema.layout
15691
+ };
15692
+ var SeriesSequenceInner = forwardRef14(({
15693
+ offset = 0,
15694
+ className = "",
15695
+ stack = null,
15696
+ _remotionInternalRender = null,
15697
+ ...props2
15698
+ }, ref) => {
15634
15699
  useRequireToBeInsideSeries();
15700
+ if (_remotionInternalRender) {
15701
+ return _remotionInternalRender({ ...props2, offset, className: className || undefined, stack }, ref);
15702
+ }
15635
15703
  return /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
15636
- children
15704
+ children: props2.children
15637
15705
  });
15638
- };
15639
- var SeriesSequence = forwardRef14(SeriesSequenceRefForwardingFunction);
15706
+ });
15707
+ var SeriesSequence = Interactive.withSchema({
15708
+ Component: SeriesSequenceInner,
15709
+ componentName: "<Series.Sequence>",
15710
+ componentIdentity: "dev.remotion.remotion.Series.Sequence",
15711
+ schema: seriesSequenceSchema,
15712
+ supportsEffects: false
15713
+ });
15640
15714
  var SequenceWithoutSchemaWithRef = SequenceWithoutSchema;
15715
+ var validateSeriesSequenceProps = ({
15716
+ durationInFrames,
15717
+ offset: offsetProp,
15718
+ index,
15719
+ childrenLength
15720
+ }) => {
15721
+ const debugInfo = `index = ${index}, duration = ${durationInFrames}`;
15722
+ if (index !== childrenLength - 1 || durationInFrames !== Infinity) {
15723
+ validateDurationInFrames(durationInFrames, {
15724
+ component: `of a <Series.Sequence /> component`,
15725
+ allowFloats: true
15726
+ });
15727
+ }
15728
+ const offset = offsetProp ?? 0;
15729
+ if (Number.isNaN(offset)) {
15730
+ throw new TypeError(`The "offset" property of a <Series.Sequence /> must not be NaN, but got NaN (${debugInfo}).`);
15731
+ }
15732
+ if (!Number.isFinite(offset)) {
15733
+ throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
15734
+ }
15735
+ if (offset % 1 !== 0) {
15736
+ throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
15737
+ }
15738
+ return offset;
15739
+ };
15641
15740
  var SeriesInner = (props2) => {
15642
15741
  const childrenValue = useMemo38(() => {
15643
- let startFrame = 0;
15644
15742
  const flattenedChildren = flattenChildren(props2.children);
15645
- return Children.map(flattenedChildren, (child, i) => {
15743
+ const renderChildren = (i, startFrame) => {
15744
+ if (i === flattenedChildren.length) {
15745
+ return null;
15746
+ }
15747
+ const child = flattenedChildren[i];
15646
15748
  const castedChild = child;
15647
15749
  if (typeof castedChild === "string") {
15648
15750
  if (castedChild.trim() === "") {
15649
- return null;
15751
+ return renderChildren(i + 1, startFrame);
15650
15752
  }
15651
15753
  throw new TypeError(`The <Series /> component only accepts a list of <Series.Sequence /> components as its children, but you passed a string "${castedChild}"`);
15652
15754
  }
15653
15755
  if (castedChild.type !== SeriesSequence) {
15654
15756
  throw new TypeError(`The <Series /> component only accepts a list of <Series.Sequence /> components as its children, but got ${castedChild} instead`);
15655
15757
  }
15656
- const debugInfo = `index = ${i}, duration = ${castedChild.props.durationInFrames}`;
15657
- const durationInFramesProp = castedChild.props.durationInFrames;
15658
- const {
15659
- durationInFrames,
15660
- children: _children,
15661
- from,
15662
- name,
15663
- ...passedProps
15664
- } = castedChild.props;
15665
- if (i !== flattenedChildren.length - 1 || durationInFramesProp !== Infinity) {
15666
- validateDurationInFrames(durationInFramesProp, {
15667
- component: `of a <Series.Sequence /> component`,
15668
- allowFloats: true
15669
- });
15670
- }
15671
- const offset = castedChild.props.offset ?? 0;
15672
- if (Number.isNaN(offset)) {
15673
- throw new TypeError(`The "offset" property of a <Series.Sequence /> must not be NaN, but got NaN (${debugInfo}).`);
15674
- }
15675
- if (!Number.isFinite(offset)) {
15676
- throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
15677
- }
15678
- if (offset % 1 !== 0) {
15679
- throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
15680
- }
15681
- const currentStartFrame = startFrame + offset;
15682
- startFrame += durationInFramesProp + offset;
15683
- return /* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
15684
- ref: castedChild.ref,
15685
- name: name || "<Series.Sequence>",
15686
- _remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
15687
- from: currentStartFrame,
15688
- durationInFrames: durationInFramesProp,
15689
- ...passedProps,
15690
- children: child
15758
+ const castedElement = castedChild;
15759
+ validateSeriesSequenceProps({
15760
+ durationInFrames: castedElement.props.durationInFrames,
15761
+ offset: castedElement.props.offset,
15762
+ index: i,
15763
+ childrenLength: flattenedChildren.length
15691
15764
  });
15692
- });
15765
+ return React41.cloneElement(castedElement, {
15766
+ _remotionInternalRender: (resolvedProps, ref) => {
15767
+ const durationInFramesProp = resolvedProps.durationInFrames;
15768
+ const {
15769
+ durationInFrames: _durationInFrames,
15770
+ children: sequenceChildren,
15771
+ offset: offsetProp,
15772
+ controls,
15773
+ stack,
15774
+ from: _from,
15775
+ name,
15776
+ ...passedProps
15777
+ } = resolvedProps;
15778
+ const offset = validateSeriesSequenceProps({
15779
+ durationInFrames: durationInFramesProp,
15780
+ offset: offsetProp,
15781
+ index: i,
15782
+ childrenLength: flattenedChildren.length
15783
+ });
15784
+ const currentStartFrame = startFrame + offset;
15785
+ const nextStartFrame = startFrame + durationInFramesProp + offset;
15786
+ return /* @__PURE__ */ jsxs3(Fragment, {
15787
+ children: [
15788
+ /* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
15789
+ ref,
15790
+ name: name || "<Series.Sequence>",
15791
+ _remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
15792
+ _remotionInternalStack: stack ?? undefined,
15793
+ controls: controls ?? undefined,
15794
+ from: currentStartFrame,
15795
+ durationInFrames: durationInFramesProp,
15796
+ ...passedProps,
15797
+ children: /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
15798
+ children: sequenceChildren
15799
+ })
15800
+ }),
15801
+ renderChildren(i + 1, nextStartFrame)
15802
+ ]
15803
+ });
15804
+ }
15805
+ });
15806
+ };
15807
+ return renderChildren(0, 0);
15693
15808
  }, [props2.children]);
15694
15809
  return /* @__PURE__ */ jsx37(IsInsideSeriesContainer, {
15695
15810
  children: /* @__PURE__ */ jsx37(Sequence, {
@@ -16290,7 +16405,7 @@ addSequenceStackTraces(Folder);
16290
16405
  // ../shapes/dist/esm/index.mjs
16291
16406
  import React, { useCallback as useCallback26, useMemo as useMemo40, useRef as useRef29 } from "react";
16292
16407
  import { version } from "react-dom";
16293
- import { jsx as jsx40, jsxs as jsxs3 } from "react/jsx-runtime";
16408
+ import { jsx as jsx40, jsxs as jsxs4 } from "react/jsx-runtime";
16294
16409
  import { jsx as jsx210 } from "react/jsx-runtime";
16295
16410
  import { jsx as jsx310 } from "react/jsx-runtime";
16296
16411
  import { jsx as jsx42 } from "react/jsx-runtime";
@@ -16492,7 +16607,7 @@ var RenderSvg = ({
16492
16607
  const memoizedEffectDefinitions = Internals.useMemoizedEffectDefinitions(effects);
16493
16608
  const videoConfig = Internals.useUnsafeVideoConfig();
16494
16609
  const reactSupportsTransformOrigin = doesReactSupportTransformOriginProperty(version);
16495
- const svg = /* @__PURE__ */ jsxs3("svg", {
16610
+ const svg = /* @__PURE__ */ jsxs4("svg", {
16496
16611
  ref: effects.length === 0 || !videoConfig ? setSvgRef : undefined,
16497
16612
  width,
16498
16613
  height,
@@ -16518,7 +16633,7 @@ var RenderSvg = ({
16518
16633
  }
16519
16634
  const prevX = prevInstruction.x;
16520
16635
  const prevY = prevInstruction.y;
16521
- return /* @__PURE__ */ jsxs3(React.Fragment, {
16636
+ return /* @__PURE__ */ jsxs4(React.Fragment, {
16522
16637
  children: [
16523
16638
  /* @__PURE__ */ jsx40("path", {
16524
16639
  d: `M ${prevX} ${prevY} ${i.cp1x} ${i.cp1y}`,
@@ -19200,7 +19315,7 @@ var extrudeAndTransformElement = (options) => {
19200
19315
 
19201
19316
  // ../design/dist/esm/index.mjs
19202
19317
  import { jsx as jsx212, Fragment as Fragment3 } from "react/jsx-runtime";
19203
- import { jsx as jsx312, jsxs as jsxs5 } from "react/jsx-runtime";
19318
+ import { jsx as jsx312, jsxs as jsxs6 } from "react/jsx-runtime";
19204
19319
  import { useEffect as useEffect22, useMemo as useMemo210, useRef as useRef31 } from "react";
19205
19320
  import { jsx as jsx44 } from "react/jsx-runtime";
19206
19321
  import { jsx as jsx53, jsxs as jsxs22 } from "react/jsx-runtime";
@@ -19259,11 +19374,11 @@ import * as React302 from "react";
19259
19374
  import * as React342 from "react";
19260
19375
  import * as React332 from "react";
19261
19376
  import * as React322 from "react";
19262
- import { Fragment as Fragment8, jsx as jsx242, jsxs as jsxs4 } from "react/jsx-runtime";
19377
+ import { Fragment as Fragment8, jsx as jsx242, jsxs as jsxs42 } from "react/jsx-runtime";
19263
19378
  import { forwardRef as forwardRef142, createElement as createElement7 } from "react";
19264
19379
  import { forwardRef as forwardRef132, createElement as createElement6 } from "react";
19265
19380
  import * as React372 from "react";
19266
- import { jsx as jsx252, jsxs as jsxs52 } from "react/jsx-runtime";
19381
+ import { jsx as jsx252, jsxs as jsxs5 } from "react/jsx-runtime";
19267
19382
  import { jsx as jsx262 } from "react/jsx-runtime";
19268
19383
  import * as React49 from "react";
19269
19384
  import * as React38 from "react";
@@ -19271,12 +19386,12 @@ import { jsx as jsx272 } from "react/jsx-runtime";
19271
19386
  import * as React47 from "react";
19272
19387
  import React402 from "react";
19273
19388
  import * as React392 from "react";
19274
- import { Fragment as Fragment22, jsx as jsx282 } from "react/jsx-runtime";
19389
+ import { Fragment as Fragment222, jsx as jsx282 } from "react/jsx-runtime";
19275
19390
  import { jsx as jsx292 } from "react/jsx-runtime";
19276
19391
  import React210 from "react";
19277
19392
  import { jsx as jsx2102 } from "react/jsx-runtime";
19278
19393
  import * as React422 from "react";
19279
- import * as React41 from "react";
19394
+ import * as React412 from "react";
19280
19395
  import * as React43 from "react";
19281
19396
  import * as ReactDOM5 from "react-dom";
19282
19397
  import { jsx as jsx302 } from "react/jsx-runtime";
@@ -19386,7 +19501,7 @@ function createSlotClone(ownerName) {
19386
19501
  var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
19387
19502
  function createSlottable(ownerName) {
19388
19503
  const Slottable2 = ({ children }) => {
19389
- return /* @__PURE__ */ jsx43(Fragment2, { children });
19504
+ return /* @__PURE__ */ jsx43(Fragment22, { children });
19390
19505
  };
19391
19506
  Slottable2.displayName = `${ownerName}.Slottable`;
19392
19507
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -19683,7 +19798,7 @@ var Outer = ({
19683
19798
  description: "rect",
19684
19799
  transformations: centerOriented
19685
19800
  });
19686
- return /* @__PURE__ */ jsxs5("div", {
19801
+ return /* @__PURE__ */ jsxs6("div", {
19687
19802
  className: "relative",
19688
19803
  style: { width, height },
19689
19804
  children: [
@@ -23731,7 +23846,7 @@ var Select = (props) => {
23731
23846
  const isFormControl = trigger ? Boolean(trigger.closest("form")) : true;
23732
23847
  const [nativeOptionsSet, setNativeOptionsSet] = React36.useState(/* @__PURE__ */ new Set);
23733
23848
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
23734
- return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */ jsxs4(SelectProvider, {
23849
+ return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */ jsxs42(SelectProvider, {
23735
23850
  required,
23736
23851
  scope: __scopeSelect,
23737
23852
  trigger,
@@ -23763,7 +23878,7 @@ var Select = (props) => {
23763
23878
  }, []),
23764
23879
  children
23765
23880
  }) }),
23766
- isFormControl ? /* @__PURE__ */ jsxs4(BubbleSelect, {
23881
+ isFormControl ? /* @__PURE__ */ jsxs42(BubbleSelect, {
23767
23882
  "aria-hidden": true,
23768
23883
  required,
23769
23884
  tabIndex: -1,
@@ -24271,7 +24386,7 @@ var SelectViewport = React36.forwardRef((props, forwardedRef) => {
24271
24386
  const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
24272
24387
  const composedRefs = useComposedRefs2(forwardedRef, contentContext.onViewportChange);
24273
24388
  const prevScrollTopRef = React36.useRef(0);
24274
- return /* @__PURE__ */ jsxs4(Fragment8, { children: [
24389
+ return /* @__PURE__ */ jsxs42(Fragment8, { children: [
24275
24390
  /* @__PURE__ */ jsx242("style", {
24276
24391
  dangerouslySetInnerHTML: {
24277
24392
  __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`
@@ -24428,7 +24543,7 @@ var SelectItemText = React36.forwardRef((props, forwardedRef) => {
24428
24543
  onNativeOptionAdd(nativeOption);
24429
24544
  return () => onNativeOptionRemove(nativeOption);
24430
24545
  }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
24431
- return /* @__PURE__ */ jsxs4(Fragment8, { children: [
24546
+ return /* @__PURE__ */ jsxs42(Fragment8, { children: [
24432
24547
  /* @__PURE__ */ jsx242(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
24433
24548
  itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM4.createPortal(itemTextProps.children, context.valueNode) : null
24434
24549
  ] });
@@ -24687,7 +24802,7 @@ var ChevronDown = createLucideIcon("ChevronDown", [
24687
24802
  var ChevronUp = createLucideIcon("ChevronUp", [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]]);
24688
24803
  var Select2 = Root222;
24689
24804
  var SelectValue2 = Value;
24690
- var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Trigger, {
24805
+ var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Trigger, {
24691
24806
  ref,
24692
24807
  className: cn("flex h-10 w-full items-center justify-between rounded-md border-black border-2 border-b-4 bg-card-bg px-3 py-5 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 font-brand", className),
24693
24808
  ...props,
@@ -24721,7 +24836,7 @@ var SelectScrollDownButton2 = React372.forwardRef(({ className, ...props }, ref)
24721
24836
  }));
24722
24837
  SelectScrollDownButton2.displayName = ScrollDownButton.displayName;
24723
24838
  var SelectContent2 = React372.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
24724
- children: /* @__PURE__ */ jsxs52(Content2, {
24839
+ children: /* @__PURE__ */ jsxs5(Content2, {
24725
24840
  ref,
24726
24841
  className: cn(" border-2 border-black relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md font-brand bg-card-bg text-text shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
24727
24842
  position,
@@ -24743,7 +24858,7 @@ var SelectLabel2 = React372.forwardRef(({ className, ...props }, ref) => /* @__P
24743
24858
  ...props
24744
24859
  }));
24745
24860
  SelectLabel2.displayName = Label.displayName;
24746
- var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Item, {
24861
+ var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Item, {
24747
24862
  ref,
24748
24863
  className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-slate-200 dark:focus:bg-white/10 data-disabled:pointer-events-none data-disabled:opacity-50 font-brand", className),
24749
24864
  ...props,
@@ -25285,7 +25400,7 @@ function toSafeIndex(array, index2) {
25285
25400
  function toSafeInteger(number) {
25286
25401
  return number !== number || number === 0 ? 0 : Math.trunc(number);
25287
25402
  }
25288
- var useLayoutEffect222 = globalThis?.document ? React41.useLayoutEffect : () => {};
25403
+ var useLayoutEffect222 = globalThis?.document ? React412.useLayoutEffect : () => {};
25289
25404
  var useReactId2 = React422[" useId ".trim().toString()] || (() => {
25290
25405
  return;
25291
25406
  });
@@ -27269,7 +27384,7 @@ var useMobileLayout = () => {
27269
27384
  };
27270
27385
 
27271
27386
  // src/components/BackButton.tsx
27272
- import { jsx as jsx45, jsxs as jsxs6 } from "react/jsx-runtime";
27387
+ import { jsx as jsx45, jsxs as jsxs7 } from "react/jsx-runtime";
27273
27388
  var BackButton = ({ color, text, link }) => {
27274
27389
  return /* @__PURE__ */ jsx45("div", {
27275
27390
  className: "justify-center items-center font-medium mb-4 block",
@@ -27281,7 +27396,7 @@ var BackButton = ({ color, text, link }) => {
27281
27396
  children: /* @__PURE__ */ jsx45(Button, {
27282
27397
  href: link,
27283
27398
  className: "px-4 rounded-full text-sm h-10",
27284
- children: /* @__PURE__ */ jsxs6("div", {
27399
+ children: /* @__PURE__ */ jsxs7("div", {
27285
27400
  className: "flex row items-center justify-center px-4",
27286
27401
  children: [
27287
27402
  /* @__PURE__ */ jsx45("svg", {
@@ -27466,9 +27581,9 @@ var MuxVideoForward = ({ muxId, ...props }, ref) => {
27466
27581
  var MuxVideo = forwardRef37(MuxVideoForward);
27467
27582
 
27468
27583
  // src/components/icons/tailwind.tsx
27469
- import { jsx as jsx49, jsxs as jsxs7 } from "react/jsx-runtime";
27584
+ import { jsx as jsx49, jsxs as jsxs8 } from "react/jsx-runtime";
27470
27585
  var Tailwind = (props) => {
27471
- return /* @__PURE__ */ jsxs7("svg", {
27586
+ return /* @__PURE__ */ jsxs8("svg", {
27472
27587
  viewBox: "0 0 51 31",
27473
27588
  fill: "none",
27474
27589
  xmlns: "http://www.w3.org/2000/svg",
@@ -27487,7 +27602,7 @@ var Tailwind = (props) => {
27487
27602
  };
27488
27603
 
27489
27604
  // src/components/template-modal-content.tsx
27490
- import { jsx as jsx50, jsxs as jsxs8, Fragment as Fragment9 } from "react/jsx-runtime";
27605
+ import { jsx as jsx50, jsxs as jsxs9, Fragment as Fragment9 } from "react/jsx-runtime";
27491
27606
  var RESERVED_FOR_SIDEBAR = 350;
27492
27607
  var GithubIcon = () => {
27493
27608
  return /* @__PURE__ */ jsx50("svg", {
@@ -27549,7 +27664,7 @@ var TemplateModalContent = ({ template }) => {
27549
27664
  const npmCommand = `npx create-video@latest --${template.cliId}`;
27550
27665
  const pnpmCommand = `pnpm create video --${template.cliId}`;
27551
27666
  const bunCommand = `bun create video --${template.cliId}`;
27552
- return /* @__PURE__ */ jsxs8("div", {
27667
+ return /* @__PURE__ */ jsxs9("div", {
27553
27668
  children: [
27554
27669
  /* @__PURE__ */ jsx50(BackButton, {
27555
27670
  link: "/templates",
@@ -27560,10 +27675,10 @@ var TemplateModalContent = ({ template }) => {
27560
27675
  className: "mt-0",
27561
27676
  children: template.shortName
27562
27677
  }),
27563
- /* @__PURE__ */ jsxs8(Card, {
27678
+ /* @__PURE__ */ jsxs9(Card, {
27564
27679
  className: "mb-7 overflow-hidden w-full",
27565
27680
  children: [
27566
- /* @__PURE__ */ jsxs8("div", {
27681
+ /* @__PURE__ */ jsxs9("div", {
27567
27682
  className: `mb-0 flex overflow-auto ${mobileLayout ? "flex-col h-full left-0 top-0" : "flex-row"} w-full border-b-2 border-black`,
27568
27683
  children: [
27569
27684
  /* @__PURE__ */ jsx50("div", {
@@ -27591,7 +27706,7 @@ var TemplateModalContent = ({ template }) => {
27591
27706
  className: "w-full h-auto border border-[var(--ifm-color-emphasis-300)]"
27592
27707
  })
27593
27708
  }),
27594
- /* @__PURE__ */ jsxs8("div", {
27709
+ /* @__PURE__ */ jsxs9("div", {
27595
27710
  className: `overflow-auto ${mobileLayout ? "w-full" : ""} p-5 font-brand`,
27596
27711
  style: {
27597
27712
  width: mobileLayout ? "100%" : RESERVED_FOR_SIDEBAR
@@ -27599,14 +27714,14 @@ var TemplateModalContent = ({ template }) => {
27599
27714
  children: [
27600
27715
  /* @__PURE__ */ jsx50("div", {
27601
27716
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27602
- children: /* @__PURE__ */ jsxs8("a", {
27717
+ children: /* @__PURE__ */ jsxs9("a", {
27603
27718
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27604
27719
  onPointerDown: () => copyCommand(npmCommand),
27605
27720
  children: [
27606
27721
  /* @__PURE__ */ jsx50("div", {
27607
27722
  className: "w-6 h-9 mr-3 inline-flex items-center justify-center",
27608
27723
  children: /* @__PURE__ */ jsx50(CommandCopyButton, {
27609
- customSvg: /* @__PURE__ */ jsxs8("svg", {
27724
+ customSvg: /* @__PURE__ */ jsxs9("svg", {
27610
27725
  viewBox: "0 0 2500 2500",
27611
27726
  xmlns: "http://www.w3.org/2000/svg",
27612
27727
  className: "h-5",
@@ -27633,7 +27748,7 @@ var TemplateModalContent = ({ template }) => {
27633
27748
  }),
27634
27749
  /* @__PURE__ */ jsx50("div", {
27635
27750
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27636
- children: /* @__PURE__ */ jsxs8("a", {
27751
+ children: /* @__PURE__ */ jsxs9("a", {
27637
27752
  target: "_blank",
27638
27753
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27639
27754
  onPointerDown: () => copyCommand(bunCommand),
@@ -27641,7 +27756,7 @@ var TemplateModalContent = ({ template }) => {
27641
27756
  /* @__PURE__ */ jsx50("div", {
27642
27757
  className: "w-6 h-9 mr-3 inline-flex items-center justify-center",
27643
27758
  children: /* @__PURE__ */ jsx50(CommandCopyButton, {
27644
- customSvg: /* @__PURE__ */ jsxs8("svg", {
27759
+ customSvg: /* @__PURE__ */ jsxs9("svg", {
27645
27760
  id: "Bun",
27646
27761
  xmlns: "http://www.w3.org/2000/svg",
27647
27762
  viewBox: "0 0 80 70",
@@ -27651,7 +27766,7 @@ var TemplateModalContent = ({ template }) => {
27651
27766
  id: "Shadow",
27652
27767
  d: "M71.09,20.74c-.16-.17-.33-.34-.5-.5s-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5A26.46,26.46,0,0,1,75.5,35.7c0,16.57-16.82,30.05-37.5,30.05-11.58,0-21.94-4.23-28.83-10.86l.5.5.5.5.5.5.5.5.5.5.5.5.5.5C19.55,65.3,30.14,69.75,42,69.75c20.68,0,37.5-13.48,37.5-30C79.5,32.69,76.46,26,71.09,20.74Z"
27653
27768
  }),
27654
- /* @__PURE__ */ jsxs8("g", {
27769
+ /* @__PURE__ */ jsxs9("g", {
27655
27770
  id: "Body",
27656
27771
  children: [
27657
27772
  /* @__PURE__ */ jsx50("path", {
@@ -27682,7 +27797,7 @@ var TemplateModalContent = ({ template }) => {
27682
27797
  })
27683
27798
  ]
27684
27799
  }),
27685
- /* @__PURE__ */ jsxs8("g", {
27800
+ /* @__PURE__ */ jsxs9("g", {
27686
27801
  id: "Mouth",
27687
27802
  children: [
27688
27803
  /* @__PURE__ */ jsx50("g", {
@@ -27693,7 +27808,7 @@ var TemplateModalContent = ({ template }) => {
27693
27808
  style: { fill: "#b71422" }
27694
27809
  })
27695
27810
  }),
27696
- /* @__PURE__ */ jsxs8("g", {
27811
+ /* @__PURE__ */ jsxs9("g", {
27697
27812
  id: "Tongue",
27698
27813
  children: [
27699
27814
  /* @__PURE__ */ jsx50("path", {
@@ -27716,7 +27831,7 @@ var TemplateModalContent = ({ template }) => {
27716
27831
  })
27717
27832
  ]
27718
27833
  }),
27719
- /* @__PURE__ */ jsxs8("g", {
27834
+ /* @__PURE__ */ jsxs9("g", {
27720
27835
  id: "Face",
27721
27836
  children: [
27722
27837
  /* @__PURE__ */ jsx50("ellipse", {
@@ -27763,14 +27878,14 @@ var TemplateModalContent = ({ template }) => {
27763
27878
  }),
27764
27879
  /* @__PURE__ */ jsx50("div", {
27765
27880
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27766
- children: /* @__PURE__ */ jsxs8("a", {
27881
+ children: /* @__PURE__ */ jsxs9("a", {
27767
27882
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27768
27883
  onPointerDown: () => copyCommand(pnpmCommand),
27769
27884
  children: [
27770
27885
  /* @__PURE__ */ jsx50("div", {
27771
27886
  className: "w-6 h-9 mr-3 inline-flex items-center justify-center",
27772
27887
  children: /* @__PURE__ */ jsx50(CommandCopyButton, {
27773
- customSvg: /* @__PURE__ */ jsxs8("svg", {
27888
+ customSvg: /* @__PURE__ */ jsxs9("svg", {
27774
27889
  version: "1.1",
27775
27890
  xmlns: "http://www.w3.org/2000/svg",
27776
27891
  preserveAspectRatio: "xMidYMid meet",
@@ -27779,7 +27894,7 @@ var TemplateModalContent = ({ template }) => {
27779
27894
  height: "160",
27780
27895
  className: "h-5",
27781
27896
  children: [
27782
- /* @__PURE__ */ jsxs8("defs", {
27897
+ /* @__PURE__ */ jsxs9("defs", {
27783
27898
  children: [
27784
27899
  /* @__PURE__ */ jsx50("path", {
27785
27900
  d: "M237.6 95L187.6 95L187.6 45L237.6 45L237.6 95Z",
@@ -27815,7 +27930,7 @@ var TemplateModalContent = ({ template }) => {
27815
27930
  })
27816
27931
  ]
27817
27932
  }),
27818
- /* @__PURE__ */ jsxs8("g", {
27933
+ /* @__PURE__ */ jsxs9("g", {
27819
27934
  children: [
27820
27935
  /* @__PURE__ */ jsx50("g", {
27821
27936
  children: /* @__PURE__ */ jsx50("use", {
@@ -27897,7 +28012,7 @@ var TemplateModalContent = ({ template }) => {
27897
28012
  }),
27898
28013
  /* @__PURE__ */ jsx50("div", {
27899
28014
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27900
- children: /* @__PURE__ */ jsxs8("a", {
28015
+ children: /* @__PURE__ */ jsxs9("a", {
27901
28016
  target: "_blank",
27902
28017
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27903
28018
  href: `https://github.com/${template.org}/${template.repoName}/generate`,
@@ -27913,7 +28028,7 @@ var TemplateModalContent = ({ template }) => {
27913
28028
  }),
27914
28029
  /* @__PURE__ */ jsx50("div", {
27915
28030
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27916
- children: /* @__PURE__ */ jsxs8("a", {
28031
+ children: /* @__PURE__ */ jsxs9("a", {
27917
28032
  target: "_blank",
27918
28033
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27919
28034
  href: `https://github.com/${template.org}/${template.repoName}`,
@@ -27931,18 +28046,18 @@ var TemplateModalContent = ({ template }) => {
27931
28046
  target: "_blank",
27932
28047
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27933
28048
  href: template.previewURL,
27934
- children: /* @__PURE__ */ jsxs8("div", {
28049
+ children: /* @__PURE__ */ jsxs9("div", {
27935
28050
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27936
28051
  children: [
27937
28052
  /* @__PURE__ */ jsx50("div", {
27938
28053
  className: "w-6 h-9 mr-3 inline-flex items-center justify-center",
27939
28054
  children: /* @__PURE__ */ jsx50(PreviewIcon, {})
27940
28055
  }),
27941
- template.previewLabel ?? /* @__PURE__ */ jsxs8(Fragment9, {
28056
+ template.previewLabel ?? /* @__PURE__ */ jsxs9(Fragment9, {
27942
28057
  children: [
27943
28058
  "See Preview",
27944
28059
  " ",
27945
- /* @__PURE__ */ jsxs8("span", {
28060
+ /* @__PURE__ */ jsxs9("span", {
27946
28061
  className: "whitespace-pre text-[var(--light-text-color)]",
27947
28062
  children: [
27948
28063
  " ",
@@ -27958,7 +28073,7 @@ var TemplateModalContent = ({ template }) => {
27958
28073
  target: "_blank",
27959
28074
  className: "text-inherit inline-flex flex-row items-center cursor-pointer select-none",
27960
28075
  href: `https://stackblitz.com/github/${template.org}/${template.repoName}`,
27961
- children: /* @__PURE__ */ jsxs8("div", {
28076
+ children: /* @__PURE__ */ jsxs9("div", {
27962
28077
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27963
28078
  children: [
27964
28079
  /* @__PURE__ */ jsx50("div", {
@@ -27967,7 +28082,7 @@ var TemplateModalContent = ({ template }) => {
27967
28082
  }),
27968
28083
  "Try online",
27969
28084
  " ",
27970
- /* @__PURE__ */ jsxs8("span", {
28085
+ /* @__PURE__ */ jsxs9("span", {
27971
28086
  className: "whitespace-pre text-[var(--light-text-color)]",
27972
28087
  children: [
27973
28088
  " ",
@@ -27977,7 +28092,7 @@ var TemplateModalContent = ({ template }) => {
27977
28092
  ]
27978
28093
  })
27979
28094
  }) : null,
27980
- template.allowEnableTailwind ? /* @__PURE__ */ jsxs8("div", {
28095
+ template.allowEnableTailwind ? /* @__PURE__ */ jsxs9("div", {
27981
28096
  className: "flex flex-row items-center pt-1 pb-1 align-middle pr-4",
27982
28097
  children: [
27983
28098
  /* @__PURE__ */ jsx50("div", {
@@ -27991,7 +28106,7 @@ var TemplateModalContent = ({ template }) => {
27991
28106
  })
27992
28107
  ]
27993
28108
  }),
27994
- /* @__PURE__ */ jsxs8("div", {
28109
+ /* @__PURE__ */ jsxs9("div", {
27995
28110
  className: cn2("flex flex-row w-full", template.contributedBy !== null && mobileLayout ? "flex-col" : "flex-row"),
27996
28111
  children: [
27997
28112
  /* @__PURE__ */ jsx50("div", {
@@ -28003,14 +28118,14 @@ var TemplateModalContent = ({ template }) => {
28003
28118
  /* @__PURE__ */ jsx50("div", {
28004
28119
  style: { width: mobileLayout ? "100%" : RESERVED_FOR_SIDEBAR },
28005
28120
  className: cn2(mobileLayout && template.contributedBy === null ? "hidden" : "flex", template.contributedBy !== null && mobileLayout ? "border-t-2 border-black w-full py-4 justify-start px-5" : "pl-5 pr-8 justify-end ", "items-center text-brand dark:text-white gap-2"),
28006
- children: template.contributedBy ? /* @__PURE__ */ jsxs8("div", {
28121
+ children: template.contributedBy ? /* @__PURE__ */ jsxs9("div", {
28007
28122
  className: cn2("flex flex-row pt-1 pb-1 pr-4 gap-2 text-text font-brand items-center"),
28008
28123
  children: [
28009
28124
  /* @__PURE__ */ jsx50("img", {
28010
28125
  src: `https://github.com/${template.contributedBy}.png`,
28011
28126
  className: "w-6 h-6 rounded-full"
28012
28127
  }),
28013
- /* @__PURE__ */ jsxs8("div", {
28128
+ /* @__PURE__ */ jsxs9("div", {
28014
28129
  className: "text-text leading-tight",
28015
28130
  children: [
28016
28131
  "Thanks to",